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_head(const_circular_list_t cl)
Return the tail of a circular, singly-linked list.
void * circular_list_tail(const_circular_list_t cl)
Return the tail of a circular, singly-linked list.
void ** circular_list_t
The circular, singly-linked list datatype.
void circular_list_add(circular_list_t cl, void *element)
Add an element to a circular, singly-linked list.
void circular_list_init(circular_list_t cl)
Initialise a circular, singly-linked list.
bool circular_list_is_empty(const_circular_list_t cl)
Determine whether a circular, singly-linked list is empty.
void *const * const_circular_list_t
The non-modifiable circular, singly-linked list datatype.
unsigned long circular_list_length(const_circular_list_t cl)
Get the length of a circular, singly-linked list.
void circular_list_remove(circular_list_t cl, const void *element)
Remove an element from a circular, singly-linked list.