]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Allows to enqueue list element instead of pushing on top of the list
authordlezcano <dlezcano>
Tue, 9 Dec 2008 09:41:47 +0000 (09:41 +0000)
committerdlezcano <dlezcano>
Tue, 9 Dec 2008 09:41:47 +0000 (09:41 +0000)
From: Daniel Lezcano <dlezcano@fr.ibm.com>

Added the list_add_tail function to add an element at the end of the list.

Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
src/lxc/lxc_list.h

index 45c04fb1f5b8ecd81f48f11de1da544e69516b41..7dfd22bf04925927b058913dac49c3a025007b0d 100644 (file)
@@ -7,7 +7,7 @@ struct lxc_list {
        struct lxc_list *prev;
 };
 
-#define lxc_init_list(l) { .next = l, .prev = l, }
+#define lxc_init_list(l) { .next = l, .prev = l }
 
 #define lxc_list_for_each(__iterator, __list)                          \
        for (__iterator = (__list)->next;                               \
@@ -35,13 +35,25 @@ static inline int lxc_list_empty(struct lxc_list *list)
        return list == list->next;
 }
 
+static inline void __lxc_list_add(struct lxc_list *new, 
+                                 struct lxc_list *prev, 
+                                 struct lxc_list *next)
+{
+        next->prev = new;
+        new->next = next;
+        new->prev = prev;
+        prev->next = new;
+}
+
 static inline void lxc_list_add(struct lxc_list *head, struct lxc_list *list)
 {
-       struct lxc_list *next = head->next;
-       next->prev = list;
-       list->next = next;
-       list->prev = head;
-       head->next = list;
+       __lxc_list_add(list, head, head->next);
+}
+
+static inline void lxc_list_add_tail(struct lxc_list *head, 
+                                    struct lxc_list *list)
+{
+       __lxc_list_add(list, head->prev, head);
 }
 
 static inline void lxc_list_del(struct lxc_list *list)