Event API. More...
Event API.
Definition in file event.h.
#include <stdio.h>#include <stdint.h>#include <stdbool.h>#include <string.h>#include "assert.h"#include "clist.h"#include "irq.h"#include "thread.h"#include "thread_flags.h"#include "ptrtag.h"#include "ztimer.h"
 Include dependency graph for event.h:Go to the source code of this file.
Data Structures | |
| struct | event | 
| event structure  More... | |
| struct | PTRTAG | 
| event queue structure  More... | |
Macros | |
| #define | THREAD_FLAG_EVENT (0x1) | 
| Thread flag use to notify available events in an event queue.  | |
| #define | EVENT_QUEUE_INIT { .waiter = thread_get_active() } | 
| event_queue_t static initializer  | |
| #define | EVENT_QUEUE_INIT_DETACHED { .waiter = NULL } | 
| static initializer for detached event queues  | |
Typedefs | |
| typedef struct event | event_t | 
| event structure forward declaration  | |
| typedef void(* | event_handler_t) (event_t *) | 
| event handler type definition  | |
| typedef struct PTRTAG | event_queue_t | 
| event queue structure  | |
Functions | |
| static void | event_queues_init (event_queue_t *queues, size_t n_queues) | 
| Initialize an array of event queues.  More... | |
| static void | event_queue_init (event_queue_t *queue) | 
| Initialize an event queue.  More... | |
| static void | event_queues_init_detached (event_queue_t *queues, size_t n_queues) | 
| Initialize an array of event queues not binding it to a thread.  More... | |
| static void | event_queue_init_detached (event_queue_t *queue) | 
| Initialize an event queue not binding it to a thread.  More... | |
| static void | event_queues_claim (event_queue_t *queues, size_t n_queues) | 
| Bind an array of event queues to the calling thread.  More... | |
| static void | event_queue_claim (event_queue_t *queue) | 
| Bind an event queue to the calling thread.  More... | |
| void | event_post (event_queue_t *queue, event_t *event) | 
| Queue an event.  More... | |
| void | event_cancel (event_queue_t *queue, event_t *event) | 
| Cancel a queued event.  More... | |
| bool | event_is_queued (const event_queue_t *queue, const event_t *event) | 
| Check if an event is already queued.  More... | |
| event_t * | event_get (event_queue_t *queue) | 
| Get next event from event queue, non-blocking.  More... | |
| event_t * | event_wait_multi (event_queue_t *queues, size_t n_queues) | 
| Get next event from the given event queues, blocking.  More... | |
| static event_t * | event_wait (event_queue_t *queue) | 
| Get next event from event queue, blocking.  More... | |
| event_t * | event_wait_timeout (event_queue_t *queue, uint32_t timeout) | 
| Get next event from event queue, blocking until timeout expires.  More... | |
| event_t * | event_wait_timeout64 (event_queue_t *queue, uint64_t timeout) | 
| Get next event from event queue, blocking until timeout expires.  More... | |
| event_t * | event_wait_timeout_ztimer (event_queue_t *queue, ztimer_clock_t *clock, uint32_t timeout) | 
| Get next event from event queue, blocking until timeout expires.  More... | |
| static void | event_loop_multi (event_queue_t *queues, size_t n_queues) | 
| Simple event loop with multiple queues.  More... | |
| static void | event_loop (event_queue_t *queue) | 
| Simple event loop.  More... | |
| void | event_sync (event_queue_t *queue) | 
| Synchronize with the last event on the queue.  More... | |