1 2 #ifndef QUEUE_H 3 #define QUEUE_H 4 5 #ifdef __cplusplus 6 extern "C" { 7 #endif 8 9 #include <stdint.h> 10 11 #define QUEUE_LEN 255 12 13 typedef struct { 14 uint8_t head; 15 uint8_t tail; 16 uint16_t count; 17 uint8_t data[QUEUE_LEN]; 18 } queue_t; 19 20 void queue_init(queue_t *queue); 21 void queue_enqueue(queue_t *queue, uint8_t value); 22 uint8_t queue_dequeue(queue_t *queue); 23 uint8_t queue_peek(queue_t *queue); 24 uint8_t queue_is_empty(queue_t *queue); 25 uint16_t queue_count(queue_t *queue); 26 27 #ifdef __cplusplus 28 } 29 #endif 30 31 #endif // QUEUE_H
