From: Jason Ekstrand Date: Tue, 28 Apr 2015 03:39:37 +0000 (-0700) Subject: util/list: Add list_empty and list_length functions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=addcf410;p=mesa.git 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 --- diff --git a/src/util/list.h b/src/util/list.h index 287a4946dc6..73b6272ca19 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)