From 2c2cd368aad9167816547aa86009c9cb489255c0 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 27 Apr 2015 20:40:11 -0700 Subject: util/list: Add a list validation function Acked-by: Connor Abbott Reviewed-by: Rob Clark --- src/util/list.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/util/list.h') 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 #include +#include 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) -- cgit v1.2.3