36 #ifndef __INCLUDE_QUEUE_H 37 #define __INCLUDE_QUEUE_H 43 #include <sys/types.h> 55 #define sq_init(q) do { (q)->head = NULL; (q)->tail = NULL; } while (0) 56 #define dq_init(q) do { (q)->head = NULL; (q)->tail = NULL; } while (0) 58 #define sq_next(p) ((p)->flink) 59 #define dq_next(p) ((p)->flink) 60 #define dq_prev(p) ((p)->blink) 62 #define sq_empty(q) ((q)->head == NULL) 63 #define dq_empty(q) ((q)->head == NULL) 65 #define sq_peek(q) ((q)->head) 66 #define dq_peek(q) ((q)->head) 103 #define EXTERN extern "C" 106 #define EXTERN extern 109 EXTERN
void sq_addfirst(FAR sq_entry_t *node, sq_queue_t *queue);
110 EXTERN
void dq_addfirst(FAR dq_entry_t *node, dq_queue_t *queue);
111 EXTERN
void sq_addlast(FAR sq_entry_t *node, sq_queue_t *queue);
112 EXTERN
void dq_addlast(FAR dq_entry_t *node, dq_queue_t *queue);
113 EXTERN
void sq_addafter(FAR sq_entry_t *prev, FAR sq_entry_t *node,
115 EXTERN
void dq_addafter(FAR dq_entry_t *prev, FAR dq_entry_t *node,
117 EXTERN
void dq_addbefore(FAR dq_entry_t *next, FAR dq_entry_t *node,
120 EXTERN FAR sq_entry_t *sq_remafter(FAR sq_entry_t *node, sq_queue_t *queue);
121 EXTERN
void sq_rem(FAR sq_entry_t *node, sq_queue_t *queue);
122 EXTERN
void dq_rem(FAR dq_entry_t *node, dq_queue_t *queue);
123 EXTERN FAR sq_entry_t *sq_remlast(sq_queue_t *queue);
124 EXTERN FAR dq_entry_t *dq_remlast(dq_queue_t *queue);
125 EXTERN FAR sq_entry_t *sq_remfirst(sq_queue_t *queue);
126 EXTERN FAR dq_entry_t *dq_remfirst(dq_queue_t *queue);