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... | |