52#define EVENT_SOURCE_INIT { 0 }
60#define EVENT_SOURCE_SUBSCRIBER_INIT(e, q) { .event = (event_t *)e, .queue = q }
#define container_of(PTR, TYPE, MEMBER)
Returns the container of a pointer to a member.
MAYBE_INLINE void irq_restore(unsigned state)
This function restores the IRQ disable bit in the status register to the value contained within passe...
MAYBE_INLINE unsigned irq_disable(void)
This function sets the IRQ disable bit in the status register.
void event_post(event_queue_t *queue, event_t *event)
Queue an event.
static void list_add(list_node_t *node, list_node_t *new_node)
Insert object into list.
static list_node_t * list_remove(list_node_t *list, list_node_t *node)
Removes the node from the list.
static void event_source_attach(event_source_t *source, event_source_subscriber_t *event)
Attach an event to an event source.
static void event_source_trigger(event_source_t *source)
Trigger all events registered on the event source.
static void event_source_detach(event_source_t *source, event_source_subscriber_t *event)
Remove a subscription from the event source.
Subscriber of an event source.
list_node_t node
event subscriber list node
event_t * event
pointer to event that should be triggered
event_queue_t * queue
event queue to be used for the event
list_node_t list
event source list node
struct list_node * next
pointer to next list entry