]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
include/list: add list_entry_is_first() and list_count_entries()
authorKarel Zak <kzak@redhat.com>
Fri, 7 Dec 2018 10:37:24 +0000 (11:37 +0100)
committerKarel Zak <kzak@redhat.com>
Fri, 7 Dec 2018 11:33:34 +0000 (12:33 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
include/list.h

index f3ffc79859a3366db55013fb508301351fd7013d..96c84e572f57118f6d44a01cd62d6b17e6f231a0 100644 (file)
@@ -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
 
 /*