From: Benjamin Poirier Date: Tue, 16 Apr 2013 14:07:23 +0000 (-0400) Subject: menuconfig: Add "breadcrumbs" navigation aid X-Git-Tag: 1.9.9~37 X-Git-Url: https://jxself.org/git/?p=carl9170fw.git;a=commitdiff_plain;h=804ea83f028087bf20b21ede2a41f9ab5efe0df1 menuconfig: Add "breadcrumbs" navigation aid Displays a trail of the menu entries used to get to the current menu. Signed-off-by: Benjamin Poirier Tested-by: "Yann E. MORIN" [yann.morin.1998@free.fr: small, trivial code re-ordering] Signed-off-by: "Yann E. MORIN" Signed-off-by: Christian Lamparter --- 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