Lines Matching refs:list
8 * Generic pointer list manipulation code.
14 #define CHECK_TYPE(head,ptr) (void)(&(ptr) == &(head)->list[0])
15 #define PTRLIST_TYPE(head) __typeof__((head)->list[0])
16 #define VRFY_PTR_LIST(head) (void)(sizeof((head)->list[0]))
26 type *list[LIST_NODE_NR]; \
59 #define add_ptr_list(list, ptr) ({ \
60 struct ptr_list** head = (struct ptr_list**)(list); \
61 CHECK_TYPE(*(list),ptr); \
64 #define add_ptr_list_tag(list, ptr, tag) ({ \
65 struct ptr_list** head = (struct ptr_list**)(list); \
66 CHECK_TYPE(*(list),ptr); \
77 #define free_ptr_list(list) do { \
78 VRFY_PTR_LIST(*(list)); \
79 __free_ptr_list((struct ptr_list **)(list)); \
87 #define ptr_list_to_array(list, array, size) ({ \
88 struct ptr_list* head = (struct ptr_list*)(list); \
89 CHECK_TYPE(list, *array); \
143 // It's used when an element of the list must be removed
155 #define FOR_EACH_PTR_NOTAG(list, ptr) FOR_EACH_PTR(list, ptr)
161 #define PTR_ENTRY_NOTAG(h,i) ((h)->list[i])
162 #define PTR_ENTRY_UNTAG(h,i) PTR_UNTAG((h)->list[i])
260 (&__list->list[__nr])
274 __this = __list->list + __nr; \
275 __last = __list->list + __list->nr - 1; \
285 PTRLIST_TYPE(__head) *__this = __list->list + __nr; \
286 PTRLIST_TYPE(__head) *__last = __list->list + __list->nr - 1; \