#pragma once #define LINKEDLIST void *prev, *next, *listhead struct list { void *tail, *head, *end; }; extern void list_init(struct list *list); extern int list_empty(struct list *list); extern int list_singleton(struct list *list); extern void *list_circular_prev(void *_node); extern void *list_circular_next(void *_node); extern void list_insert(void *_next, void *_node); extern void list_remove(void *_node);