Lines Matching defs:head
33 #define SLIST_HEAD_INITIALIZER(head) \
48 #define SLIST_EMPTY(head) ((head)->slh_first == NULL)
49 #define SLIST_FIRST(head) ((head)->slh_first)
52 #define SLIST_FOREACH(var, head, field) \
53 for ((var) = SLIST_FIRST(head); (var); (var) = SLIST_NEXT(var, field))
55 #define SLIST_FOREACH_FROM(var, head, field) \
57 (var) = SLIST_FIRST(head); \
60 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \
61 for ((var) = SLIST_FIRST(head); \
64 #define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \
66 (var) = SLIST_FIRST(head); \
85 #define SLIST_INIT(head) \
87 SLIST_FIRST(head) = NULL; \
96 #define SLIST_INSERT_HEAD(head, elem, field) \
98 SLIST_NEXT(elem, field) = SLIST_FIRST(head); \
99 SLIST_FIRST(head) = (elem); \
102 #define SLIST_REMOVE(head, elem, type, field) \
104 if (SLIST_FIRST(head) == (elem)) { \
105 SLIST_REMOVE_HEAD(head, field); \
107 QUEUE_TYPEOF(type) *cur = SLIST_FIRST(head); \
119 #define SLIST_REMOVE_HEAD(head, field) \
121 SLIST_FIRST(head) = SLIST_NEXT(SLIST_FIRST(head), field); \
145 #define STAILQ_HEAD_INITIALIZER(head) \
146 { NULL, &(head).stqh_first }
160 #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL)
161 #define STAILQ_FIRST(head) ((head)->stqh_first)
162 #define STAILQ_LAST(head, type, field) \
163 (STAILQ_EMPTY(head) \
165 : __containerof((head)->stqh_last, QUEUE_TYPEOF(type), field.next))
168 #define STAILQ_FOREACH(var, head, field) \
169 for ((var) = STAILQ_FIRST(head); (var); (var) = STAILQ_NEXT(var, field))
171 #define STAILQ_FOREACH_FROM(var, head, field) \
173 (var) = STAILQ_FIRST(head); \
176 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
177 for ((var) = STAILQ_FIRST(head); \
180 #define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \
182 (var) = STAILQ_FIRST(head); \
196 #define STAILQ_INIT(head) \
198 STAILQ_FIRST(head) = NULL; \
199 (head)->stqh_last = &STAILQ_FIRST(head); \
202 #define STAILQ_INSERT_AFTER(head, listelem, elem, field) \
205 (head)->stqh_last = &STAILQ_NEXT(elem, field); \
209 #define STAILQ_INSERT_HEAD(head, elem, field) \
211 if ((STAILQ_NEXT(elem, field) = STAILQ_FIRST(head)) == NULL) \
212 (head)->stqh_last = &STAILQ_NEXT(elem, field); \
213 STAILQ_FIRST(head) = (elem); \
216 #define STAILQ_INSERT_TAIL(head, elem, field) \
219 *(head)->stqh_last = (elem); \
220 (head)->stqh_last = &STAILQ_NEXT(elem, field); \
223 #define STAILQ_REMOVE(head, elem, type, field) \
225 if (STAILQ_FIRST(head) == (elem)) { \
226 STAILQ_REMOVE_HEAD(head, field); \
228 QUEUE_TYPEOF(type) *cur = STAILQ_FIRST(head); \
231 STAILQ_REMOVE_AFTER(head, cur, field); \
235 #define STAILQ_REMOVE_AFTER(head, elem, field) \
239 (head)->stqh_last = &STAILQ_NEXT(elem, field); \
242 #define STAILQ_REMOVE_HEAD(head, field) \
244 if ((STAILQ_FIRST(head) = STAILQ_NEXT(STAILQ_FIRST(head), field)) == NULL) \
245 (head)->stqh_last = &STAILQ_FIRST(head); \