19 #include "irq_msg_util.h" 25 #include "nrf_assert.h" 31 #define msgbuf_SIZE 16 34 #if (!(!(msgbuf_SIZE & (msgbuf_SIZE-1)) && msgbuf_SIZE)) 35 #error msgbuf_SIZE must be a power of 2 44 volatile static struct 48 struct message m_entry[msgbuf_SIZE];
51 irq_msg_callbacks cb_list = { NULL, NULL };
57 ASSERT((cb_ptr->next_interval_cb != NULL)
58 && (cb_ptr->state_change_cb != NULL));
60 cb_list.next_interval_cb = cb_ptr->next_interval_cb;
61 cb_list.state_change_cb = cb_ptr->state_change_cb;
69 msg.type = pushed_msg;
70 msg.more_data = more_data;
86 case MSG_NEXT_INTERVAL:
87 cb_list.next_interval_cb(
88 (uint32_t) (msg.more_data));
90 case MSG_STATE_CHANGE:
91 cb_list.state_change_cb(
92 (uint32_t) (msg.more_data));
#define CBUF_Push(cbuf, elem)
#define CRITICAL_REGION_ENTER()
Macro for entering a critical region.
#define CRITICAL_REGION_EXIT()
Macro for leaving a critical region.
#define ASSERT(expression)
Macro for runtime assertion of an expression. If the expression is false the assert_nrf_callback func...
void irq_msg_init(irq_msg_callbacks *cb_ptr)
void irq_msg_process(void)
This file contains global definitions for circular buffer manipulation.
void irq_msg_push(irq_msg_types pushed_msg, void *more_data)