diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/list.h | 15 |
1 files changed, 15 insertions, 0 deletions
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 <stdbool.h> #include <stddef.h> @@ -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) |