diff options
-rw-r--r-- | src/util/list.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/util/list.h b/src/util/list.h index 73b6272ca19..946034710ef 100644 --- a/src/util/list.h +++ b/src/util/list.h @@ -40,6 +40,7 @@ #include <stdbool.h> #include <stddef.h> +#include <assert.h> struct list_head @@ -107,6 +108,14 @@ static inline unsigned list_length(struct list_head *list) return length; } +static inline void list_validate(struct list_head *list) +{ + struct list_head *node; + assert(list->next->prev == list && list->prev->next == list); + for (node = list->next; node != list; node = node->next) + assert(node->next->prev == node && node->prev->next == node); +} + #define LIST_INITHEAD(__item) list_inithead(__item) #define LIST_ADD(__item, __list) list_add(__item, __list) #define LIST_ADDTAIL(__item, __list) list_addtail(__item, __list) |