diff options
Diffstat (limited to '')
-rw-r--r-- | list.c | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -0,0 +1,32 @@ +#include <stddef.h> +#include "list.h" + +struct _list { + LINKEDLIST; +}; + +void list_init(struct list *list) { + list->tail = list; + list->head = list; + list->end = list; +} + +void list_insert(void *_next, void *_node) { + struct _list *node = _node; + struct _list *next = _next; + struct _list *prev = next->prev; + next->prev = node; + prev->next = node; + node->next = next; + node->prev = prev; +} + +void list_remove(void *_node) { + struct _list *node = _node; + struct _list *next = node->next; + struct _list *prev = node->prev; + next->prev = prev; + prev->next = next; + node->next = NULL; + node->prev = NULL; +} |