extern void queue_destroy(q_t *q, void (*callback)(void *));
#define queue_free(q) queue_destroy((q), free)
extern qnode_t *enqueue(q_t *q, void *data);
extern void queue_destroy(q_t *q, void (*callback)(void *));
#define queue_free(q) queue_destroy((q), free)
extern qnode_t *enqueue(q_t *q, void *data);