diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/lists.c | 9 | ||||
-rw-r--r-- | lib/lists.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/lists.c b/lib/lists.c index 200576cf..fe2b692b 100644 --- a/lib/lists.c +++ b/lib/lists.c @@ -109,6 +109,15 @@ add_head(list *l, node *n) l->head = n; } +LIST_INLINE void +self_link(node *n) +{ + ASSUME(n->prev == NULL); + ASSUME(n->next == NULL); + + n->prev = n->next = n; +} + /** * insert_node - insert a node to a list * @n: a new list node diff --git a/lib/lists.h b/lib/lists.h index 479f4ed1..64b4a981 100644 --- a/lib/lists.h +++ b/lib/lists.h @@ -78,6 +78,7 @@ typedef union list { /* In fact two overlayed nodes */ #define LIST_INLINE void add_tail(list *, node *); void add_head(list *, node *); +void self_link(node *); void rem_node(node *); void add_tail_list(list *, list *); void init_list(list *); |