52     volatile uint8_t * buffer,
 
   53     uint16_t 
const buffer_size_in_bytes
 
  101     if (pq->
length == 0) 
return true;
 
uint8_t QueuePop(volatile Queue_s *SpiFifo)
 
uint16_t QueueLength(volatile Queue_s *pq)
 
bool QueueIsFull(volatile Queue_s *SpiFifo)
 
void QueuePush(volatile Queue_s *SpiFifo, uint8_t data_to_push)
 
volatile Queue_s * QueueInit(volatile uint8_t *buffer, uint16_t const buffer_size_in_bytes)
 
bool QueueIsEmpty(volatile Queue_s *SpiFifo)
 
Queue uses a byte array as a circular buffer.
 
volatile uint8_t max_length
max_length is the maximum number of bytes the queue can hold
 
volatile uint8_t tail
tail advances after a byte is popped from the queue
 
volatile uint8_t length
length is the number of unread bytes in the queue
 
volatile uint8_t * buffer
buffer is the address of the queue's FIFO buffer
 
volatile uint8_t head
head advances after a byte is pushed onto the queue