From 1d1e01b2350e40711fcf19e200e46e2edfd887b2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 21 Jun 2016 11:33:30 -0400 Subject: [PATCH] list: add first/last entry macros Signed-off-by: Rob Clark --- util_double_list.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/util_double_list.h b/util_double_list.h index 27e0761b..5d01f52d 100644 --- a/util_double_list.h +++ b/util_double_list.h @@ -98,6 +98,12 @@ static inline void list_delinit(struct list_head *item) #define LIST_ENTRY(__type, __item, __field) \ ((__type *)(((char *)(__item)) - offsetof(__type, __field))) +#define LIST_FIRST_ENTRY(__ptr, __type, __field) \ + LIST_ENTRY(__type, (__ptr)->next, __field) + +#define LIST_LAST_ENTRY(__ptr, __type, __field) \ + LIST_ENTRY(__type, (__ptr)->prev, __field) + #define LIST_IS_EMPTY(__list) \ ((__list)->next == (__list))