X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=config%2Flist.h;fp=config%2Flist.h;h=ea1d58119d20c291d1f185c33e7cb0036e301112;hb=804ea83f028087bf20b21ede2a41f9ab5efe0df1;hp=b87206cc92f464650fad3a8ee4178ecfee6cf973;hpb=6da709bd7e0a559edd4313aa894e56da5606dc7b;p=carl9170fw.git diff --git a/config/list.h b/config/list.h index b87206c..ea1d581 100644 --- a/config/list.h +++ b/config/list.h @@ -101,4 +101,31 @@ static inline void list_add_tail(struct list_head *_new, struct list_head *head) __list_add(_new, head->prev, head); } +/* + * Delete a list entry by making the prev/next entries + * point to each other. + * + * This is only for internal list manipulation where we know + * the prev/next entries already! + */ +static inline void __list_del(struct list_head *prev, struct list_head *next) +{ + next->prev = prev; + prev->next = next; +} + +#define LIST_POISON1 ((void *) 0x00100100) +#define LIST_POISON2 ((void *) 0x00200200) +/** + * list_del - deletes entry from list. + * @entry: the element to delete from the list. + * Note: list_empty() on entry does not return true after this, the entry is + * in an undefined state. + */ +static inline void list_del(struct list_head *entry) +{ + __list_del(entry->prev, entry->next); + entry->next = LIST_POISON1; + entry->prev = LIST_POISON2; +} #endif