From addcf41066d28a5d2d5ed112a65a3958b056bd19 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 27 Apr 2015 20:39:37 -0700 Subject: [PATCH] util/list: Add list_empty and list_length functions v2: Don't use C99 when iterating over the list Acked-by: Connor Abbott Reviewed-by: Rob Clark --- src/util/list.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/util/list.h b/src/util/list.h index 287a494..73b6272 100644 --- a/src/util/list.h +++ b/src/util/list.h @@ -38,6 +38,7 @@ #define _UTIL_LIST_H_ +#include #include @@ -92,6 +93,20 @@ static inline void list_delinit(struct list_head *item) item->prev = item; } +static inline bool list_empty(struct list_head *list) +{ + return list->next == list; +} + +static inline unsigned list_length(struct list_head *list) +{ + struct list_head *node; + unsigned length = 0; + for (node = list->next; node != list; node = node->next) + length++; + return length; +} + #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) -- 2.7.4