32#include "ove_config.h"
44#ifdef CONFIG_OVE_QUEUE
68 size_t item_size,
unsigned int max_items) OVE_NONNULL(1, 2, 3);
159 uint64_t deadline_ns)
209 uint64_t deadline_ns)
OVE_NODISCARD int ove_queue_send_from_isr(ove_queue_t q, const void *data) OVE_NONNULL(1
Send an item to the queue from an interrupt service routine.
OVE_NODISCARD int OVE_NODISCARD int ove_queue_receive_from_isr(ove_queue_t q, void *buf) OVE_NONNULL(1
Receive an item from the queue from an interrupt service routine.
OVE_NODISCARD int static OVE_NODISCARD int ove_queue_send_until(ove_queue_t q, const void *data, uint64_t deadline_ns)
Deadline-based variant of ove_queue_send.
Definition queue.h:158
void ove_queue_destroy(ove_queue_t q)
Destroy and free a queue allocated with ove_queue_create().
OVE_NODISCARD int OVE_NODISCARD int int ove_queue_set_notify(ove_queue_t q, ove_notify_cb cb, void *user_data) OVE_NONNULL(1)
Register a notify callback fired after every successful send.
OVE_NODISCARD int ove_queue_init(ove_queue_t *q, ove_queue_storage_t *storage, void *buffer, size_t item_size, unsigned int max_items) OVE_NONNULL(1
Initialise a queue using caller-supplied static storage and data buffer.
struct ove_queue * ove_queue_t
Opaque handle for a message queue object.
Definition queue.h:40
OVE_NODISCARD int ove_queue_receive(ove_queue_t q, void *buf, uint64_t timeout_ns) OVE_NONNULL(1
Receive (remove) an item from the front of the queue, blocking if it is empty.
OVE_NODISCARD int ove_queue_create(ove_queue_t *q, size_t item_size, unsigned int max_items) OVE_NONNULL(1)
Allocate and initialise a queue from the heap.
OVE_NODISCARD int ove_queue_send(ove_queue_t q, const void *data, uint64_t timeout_ns) OVE_NONNULL(1
Send an item to the back of the queue, blocking if it is full.
OVE_NODISCARD int void ove_queue_deinit(ove_queue_t q)
Release resources held by a queue initialised with ove_queue_init().
OVE_NODISCARD int static OVE_NODISCARD int ove_queue_receive_until(ove_queue_t q, void *buf, uint64_t deadline_ns)
Deadline-based variant of ove_queue_receive.
Definition queue.h:208
static uint64_t ove_time_deadline_to_timeout_ns(uint64_t deadline_ns)
Convert a steady-clock deadline to a duration suitable for the existing timeout_ns-taking APIs.
Definition time.h:162
void(* ove_notify_cb)(void *user_data)
Notify-callback signature used by the _set_notify variants of the comm primitives (stream / queue / e...
Definition types.h:298
@ OVE_ERR_NOT_SUPPORTED
Definition types.h:98