1 #ifndef FIFO_H 2 #define FIFO_H 3 4 typedef struct fifo Fifo; 5 typedef void (*FifoUserFreeFunction) (void *item_data); 6 7 Fifo* fifo_new(void); 8 void fifo_free(Fifo* self, FifoUserFreeFunction data_free); 9 10 void fifo_push(Fifo* self, void* data); 11 void* fifo_pop(Fifo* self); 12 13 void* fifo_peek_first(Fifo *queue); 14 void* fifo_peek_last(Fifo *queue); 15 16 #endif // FIFO_H 17