56 #ifndef CIRCULAR_LIST_H_ 57 #define CIRCULAR_LIST_H_ 77 #define CIRCULAR_LIST(name) \ 78 static void *name##_circular_list = NULL; \ 79 static circular_list_t name = (circular_list_t)&name##_circular_list void circular_list_init(circular_list_t cl)
Initialise a circular, singly-linked list.
unsigned long circular_list_length(circular_list_t cl)
Get the length of a circular, singly-linked list.
void * circular_list_head(circular_list_t cl)
Return the tail of a circular, singly-linked list.
void circular_list_add(circular_list_t cl, void *element)
Add an element to a circular, singly-linked list.
void * circular_list_tail(circular_list_t cl)
Return the tail of a circular, singly-linked list.
bool circular_list_is_empty(circular_list_t cl)
Determine whether a circular, singly-linked list is empty.
void ** circular_list_t
The circular, singly-linked list datatype.
void circular_list_remove(circular_list_t cl, void *element)
Remove an element from a circular, singly-linked list.