QUEUE_LIB Embedded C library v1.0.0
Macros | Functions
queue.c File Reference

Generic FIFO queue implementation for embedded safety-critical use. More...

#include "queue.h"
#include <stddef.h>
Include dependency graph for queue.c:

Macros

#define PRIVATE   static
 

Functions

PRIVATE void copy_bytes (uint8_t *dst, const uint8_t *src, uint16_t size)
 Deterministic byte-wise copy of memory. More...
 
queue_status_t queue_init (queue_t *q, void *buffer, uint16_t buffer_element_size, uint16_t queue_capacity)
 Initialize a queue instance. More...
 
queue_status_t queue_push (queue_t *q, const void *item)
 Push (enqueue) one element into the queue. More...
 
queue_status_t queue_pop (queue_t *q, void *item)
 Pop (dequeue) one element from the queue. More...
 
bool queue_is_empty (const queue_t *q)
 Check if queue is empty. More...
 
bool queue_is_full (const queue_t *q)
 Check if queue is full. More...
 

Detailed Description

Generic FIFO queue implementation for embedded safety-critical use.

Version
1.0.3
Date
2025-11-06

Provides deterministic enqueue/dequeue operations on a caller-supplied memory buffer. Implementation uses explicit byte-wise copying and avoids standard library dependencies to ensure predictable timing.

MISRA Deviation: DV-QUEUE-001 (Rule 11.4) Controlled cast from void* to uint8_t* for raw byte access. Safe because data is not type-reinterpreted.

Macro Definition Documentation

◆ PRIVATE

#define PRIVATE   static