X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/e6dbd781772925dfc07b2facfa0a1350e756ad8f..0eabc11fcf240415e39f3873dfce7cd9384b3042:/lunaix-os/includes/lunaix/ds/llist.h diff --git a/lunaix-os/includes/lunaix/ds/llist.h b/lunaix-os/includes/lunaix/ds/llist.h index 22e0f93..65ba474 100644 --- a/lunaix-os/includes/lunaix/ds/llist.h +++ b/lunaix-os/includes/lunaix/ds/llist.h @@ -50,6 +50,12 @@ llist_prepend(struct llist_header* head, struct llist_header* elem) __llist_add(elem, head, head->next); } +static inline void +llist_insert_after(struct llist_header* head, struct llist_header* elem) +{ + __llist_add(elem, head, head->next); +} + static inline void llist_delete(struct llist_header* elem) { @@ -67,6 +73,12 @@ llist_empty(struct llist_header* elem) return elem->next == elem && elem->prev == elem; } +#define DEFINE_LLIST(name) \ + struct llist_header name = (struct llist_header) \ + { \ + .prev = &name, .next = &name \ + } + /** * list_entry - get the struct for this entry * @ptr: the &struct list_head pointer.