57 #ifndef DBL_CIRC_LIST_H_ 58 #define DBL_CIRC_LIST_H_ 79 #define DBL_CIRC_LIST(name) \ 80 static void *name##_dbl_circ_list = NULL; \ 81 static dbl_list_t name = (dbl_circ_list_t)&name##_dbl_circ_list bool dbl_circ_list_is_empty(const dbl_circ_list_t dblcl)
Determine whether a circular, doubly-linked list is empty.
void dbl_circ_list_add_after(dbl_circ_list_t dblcl, void *existing, void *element)
Add element to a circular, doubly-linked list after existing element.
void dbl_circ_list_remove(dbl_circ_list_t dblcl, const void *element)
Remove an element from a circular, doubly-linked list.
void ** dbl_circ_list_t
The doubly-linked list datatype.
void dbl_circ_list_add_tail(dbl_circ_list_t dblcl, void *element)
Add an element to the tail of a circular, doubly-linked list.
void * dbl_circ_list_tail(const dbl_circ_list_t dblcl)
Return the tail of a circular, doubly-linked list.
void dbl_circ_list_init(dbl_circ_list_t dblcl)
Initialise a circular, doubly-linked list.
void dbl_circ_list_add_before(dbl_circ_list_t dblcl, void *existing, void *element)
Add element to a circular, doubly-linked list before existing element.
unsigned long dbl_circ_list_length(const dbl_circ_list_t dblcl)
Get the length of a circular, doubly-linked list.
void * dbl_circ_list_head(const dbl_circ_list_t dblcl)
Return the tail of a circular, doubly-linked list.
void dbl_circ_list_add_head(dbl_circ_list_t dblcl, void *element)
Add an element to the head of a circular, doubly-linked list.