list: add first/last entry macros
Signed-off-by: Rob Clark <robclark@freedesktop.org>main
parent
dd1f372001
commit
1d1e01b235
|
@ -98,6 +98,12 @@ static inline void list_delinit(struct list_head *item)
|
||||||
#define LIST_ENTRY(__type, __item, __field) \
|
#define LIST_ENTRY(__type, __item, __field) \
|
||||||
((__type *)(((char *)(__item)) - offsetof(__type, __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) \
|
#define LIST_IS_EMPTY(__list) \
|
||||||
((__list)->next == (__list))
|
((__list)->next == (__list))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue