From: Karel Zak Date: Fri, 7 Dec 2018 10:37:24 +0000 (+0100) Subject: include/list: add list_entry_is_first() and list_count_entries() X-Git-Tag: v2.34-rc1~199 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ca122ba843db03d734fdc3f63cfca98a3817fdf;p=thirdparty%2Futil-linux.git include/list: add list_entry_is_first() and list_count_entries() Signed-off-by: Karel Zak --- diff --git a/include/list.h b/include/list.h index f3ffc79859..96c84e572f 100644 --- a/include/list.h +++ b/include/list.h @@ -136,6 +136,16 @@ _INLINE_ int list_entry_is_last(struct list_head *entry, struct list_head *head) return head->prev == entry; } +/** + * list_entry_is_first - tests whether is entry first in the list + * @entry: the entry to test. + * @head: the list to test. + */ +_INLINE_ int list_entry_is_first(struct list_head *entry, struct list_head *head) +{ + return head->next == entry; +} + /** * list_splice - join two lists * @list: the new list to add. @@ -198,6 +208,17 @@ _INLINE_ void list_splice(struct list_head *list, struct list_head *head) for (pos = (head)->next, pnext = pos->next; pos != (head); \ pos = pnext, pnext = pos->next) +_INLINE_ size_t list_count_entries(struct list_head *head) +{ + struct list_head *pos; + size_t ct = 0; + + list_for_each(pos, head) + ct++; + + return ct; +} + #define MAX_LIST_LENGTH_BITS 20 /*