55 #ifndef DBL_CIRC_LIST_H_ 56 #define DBL_CIRC_LIST_H_ 77 #define DBL_CIRC_LIST(name) \ 78 static void *name##_dbl_circ_list = NULL; \ 79 static dbl_list_t name = (dbl_circ_list_t)&name##_dbl_circ_list unsigned long dbl_circ_list_length(dbl_circ_list_t dblcl)
Get the length of a circular, doubly-linked list.
void dbl_circ_list_add_after(dbl_circ_list_t dblcl, void *existing, void *element)
Add an element to a circular, doubly linked list after an existing element.
void dbl_circ_list_remove(dbl_circ_list_t dblcl, void *element)
Remove an element from a circular, doubly-linked list.
bool dbl_circ_list_is_empty(dbl_circ_list_t dblcl)
Determine whether a circular, doubly-linked list is empty.
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_init(dbl_circ_list_t dblcl)
Initialise a circular, doubly-linked list.
void * dbl_circ_list_head(dbl_circ_list_t dblcl)
Return the tail of a circular, doubly-linked list.
void dbl_circ_list_add_before(dbl_circ_list_t dblcl, void *existing, void *element)
Add an element to a circular, doubly linked list before an existing element.
void * dbl_circ_list_tail(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.