]> git.ozlabs.org Git - petitboot/blob - lib/list/list.c
Add list insert routines
[petitboot] / lib / list / list.c
1
2 #include "list/list.h"
3
4 void list_init(struct list *list)
5 {
6         list->head.next = &list->head;
7         list->head.prev = &list->head;
8 }
9
10 void list_insert_before(struct list_item *next, struct list_item *new)
11 {
12         new->next = next;
13         new->prev = next->prev;
14         next->prev->next = new;
15         next->prev = new;
16 }
17
18 void list_insert_after(struct list_item *prev, struct list_item *new)
19 {
20         new->next = prev->next;
21         new->prev = prev;
22         prev->next->prev = new;
23         prev->next = new;
24 }
25
26 void list_remove(struct list_item *item)
27 {
28         item->next->prev = item->prev;
29         item->prev->next = item->next;
30 }