71 #define LIST_CONCAT2(s1, s2) s1##s2 72 #define LIST_CONCAT(s1, s2) LIST_CONCAT2(s1, s2) 89 static void *LIST_CONCAT(name,_list) = NULL; \ 90 static list_t name = (list_t)&LIST_CONCAT(name,_list) 110 #define LIST_STRUCT(name) \ 111 void *LIST_CONCAT(name,_list); \ 124 #define LIST_STRUCT_INIT(struct_ptr, name) \ 126 (struct_ptr)->name = &((struct_ptr)->LIST_CONCAT(name,_list)); \ 127 (struct_ptr)->LIST_CONCAT(name,_list) = NULL; \ 128 list_init((struct_ptr)->name); \ void list_push(list_t list, void *item)
void list_copy(list_t dest, list_t src)
void list_insert(list_t list, void *previtem, void *newitem)
Insert an item after a specified item on the list.
void * list_tail(list_t list)
void * list_chop(list_t list)
void * list_head(list_t list)
void list_add(list_t list, void *item)
void list_init(list_t list)
void * list_pop(list_t list)
void list_remove(list_t list, void *item)
void * list_item_next(void *item)
Get the next item following this item.
int list_length(list_t list)