include/list: add list_entry_is_first() and list_count_entries()

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2018-12-07 11:37:24 +01:00
parent 3bb882be44
commit 7ca122ba84
1 changed files with 21 additions and 0 deletions

View 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
/*