oveRTOS C API
Embedded RTOS framework — build system, configuration, and portable C API
Loading...
Searching...
No Matches
Typedefs | Functions
queue.h File Reference
#include "ove/types.h"
#include "ove_config.h"
#include "ove/time.h"
#include "ove/storage.h"
Include dependency graph for queue.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct ove_queue * ove_queue_t
 Opaque handle for a message queue object.
 

Functions

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.
 
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 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.
 
void ove_queue_destroy (ove_queue_t q)
 Destroy and free a queue allocated with ove_queue_create().
 
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 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.
 
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 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.
 
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 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.