26#define QUEUE_LENGTH 256
45#pragma GCC diagnostic push
48#pragma GCC diagnostic ignored "-Wpedantic"
66#define STATIC_QUEUE_T(name, size) \
70 unsigned char buffer[sizeof(struct Queue) + size];\
73#pragma GCC diagnostic pop
#define QUEUE_LENGTH
Definition queue.h:26
bool queue_send_silent(struct Queue *queue, const void *data)
Fills queue without notifying receivers.
Definition queue.c:7
bool queue_empty(struct Queue *queue)
Returns queue status.
Definition queue.c:72
static bool queue_receive(struct Queue *queue, void *data)
Receive data from queue.
Definition queue.h:150
bool queue_receive_timeout(struct Queue *queue, void *data, uint32_t timeout_us)
Receive data from queue with timeout.
Definition queue.c:38
bool queue_init(struct Queue *queue, uint8_t depth, uint8_t item_size)
Initialize queue structure.
Definition queue.c:83
bool queue_send(struct Queue *queue, const void *data)
Send data via the queue.
Definition queue.c:28
bool queue_full(struct Queue *queue)
Tell if queue is already full.
Definition queue.c:77
Queue with 256 bytes of storage preallocated.
Definition queue.h:52
unsigned char buffer[sizeof(struct Queue)+QUEUE_LENGTH]
Definition queue.h:55
struct Queue q
Definition queue.h:54
Generic queue structure.
Definition queue.h:36
volatile bool empty
Definition queue.h:39
uint8_t depth
Definition queue.h:40
unsigned char content[]
Definition queue.h:42
volatile uint16_t read_cursor
Definition queue.h:38
volatile uint16_t write_cursor
Definition queue.h:37
uint8_t item_size
Definition queue.h:41