77 #define DBL_LIST(name) \ 78 static void *name##_dbl_list = NULL; \ 79 static dbl_list_t name = (dbl_list_t)&name##_dbl_list unsigned long dbl_list_length(dbl_list_t dll)
Get the length of a doubly-linked list.
void dbl_list_init(dbl_list_t dll)
Initialise a doubly-linked list.
void dbl_list_add_tail(dbl_list_t dll, void *element)
Add an element to the tail of a doubly-linked list.
void dbl_list_add_before(dbl_list_t dll, void *existing, void *element)
Add an element to a doubly linked list before an existing element.
void dbl_list_remove(dbl_list_t dll, void *element)
Remove an element from a doubly-linked list.
void dbl_list_add_head(dbl_list_t dll, void *element)
Add an element to the head of a doubly-linked list.
void * dbl_list_tail(dbl_list_t dll)
Return the tail of a doubly-linked list.
void ** dbl_list_t
The doubly-linked list datatype.
void dbl_list_add_after(dbl_list_t dll, void *existing, void *element)
Add an element to a doubly linked list after an existing element.
bool dbl_list_is_empty(dbl_list_t dll)
Determine whether a doubly-linked list is empty.
void * dbl_list_head(dbl_list_t dll)
Return the tail of a doubly-linked list.