Lines Matching refs:head
89 #define LIST_HEAD_INITIALIZER(head) \ argument
101 #define LIST_INIT(head) do { \ argument
102 (head)->lh_first = NULL; \
120 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
121 if (((elm)->field.le_next = (head)->lh_first) != NULL) \
122 (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
123 (head)->lh_first = (elm); \
124 (elm)->field.le_prev = &(head)->lh_first; \
134 #define LIST_FOREACH(var, head, field) \ argument
135 for ((var) = ((head)->lh_first); \
142 #define LIST_EMPTY(head) ((head)->lh_first == NULL) argument
143 #define LIST_FIRST(head) ((head)->lh_first) argument
155 #define SLIST_HEAD_INITIALIZER(head) \ argument
166 #define SLIST_INIT(head) do { \ argument
167 (head)->slh_first = NULL; \
175 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
176 (elm)->field.sle_next = (head)->slh_first; \
177 (head)->slh_first = (elm); \
180 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
181 (head)->slh_first = (head)->slh_first->field.sle_next; \
184 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
185 if ((head)->slh_first == (elm)) { \
186 SLIST_REMOVE_HEAD((head), field); \
189 struct type *curelm = (head)->slh_first; \
197 #define SLIST_FOREACH(var, head, field) \ argument
198 for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
203 #define SLIST_EMPTY(head) ((head)->slh_first == NULL) argument
204 #define SLIST_FIRST(head) ((head)->slh_first) argument
217 #define STAILQ_HEAD_INITIALIZER(head) \ argument
218 { NULL, &(head).stqh_first }
228 #define STAILQ_INIT(head) do { \ argument
229 (head)->stqh_first = NULL; \
230 (head)->stqh_last = &(head)->stqh_first; \
233 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
234 if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \
235 (head)->stqh_last = &(elm)->field.stqe_next; \
236 (head)->stqh_first = (elm); \
239 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
241 *(head)->stqh_last = (elm); \
242 (head)->stqh_last = &(elm)->field.stqe_next; \
245 #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
247 (head)->stqh_last = &(elm)->field.stqe_next; \
251 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
252 if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
253 (head)->stqh_last = &(head)->stqh_first; \
256 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
257 if ((head)->stqh_first == (elm)) { \
258 STAILQ_REMOVE_HEAD((head), field); \
260 struct type *curelm = (head)->stqh_first; \
265 (head)->stqh_last = &(curelm)->field.stqe_next; \
269 #define STAILQ_FOREACH(var, head, field) \ argument
270 for ((var) = ((head)->stqh_first); \
277 #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) argument
278 #define STAILQ_FIRST(head) ((head)->stqh_first) argument
291 #define SIMPLEQ_HEAD_INITIALIZER(head) \ argument
292 { NULL, &(head).sqh_first }
302 #define SIMPLEQ_INIT(head) do { \ argument
303 (head)->sqh_first = NULL; \
304 (head)->sqh_last = &(head)->sqh_first; \
307 #define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ argument
308 if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
309 (head)->sqh_last = &(elm)->field.sqe_next; \
310 (head)->sqh_first = (elm); \
313 #define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ argument
315 *(head)->sqh_last = (elm); \
316 (head)->sqh_last = &(elm)->field.sqe_next; \
319 #define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
321 (head)->sqh_last = &(elm)->field.sqe_next; \
325 #define SIMPLEQ_REMOVE_HEAD(head, field) do { \ argument
326 if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
327 (head)->sqh_last = &(head)->sqh_first; \
330 #define SIMPLEQ_REMOVE(head, elm, type, field) do { \ argument
331 if ((head)->sqh_first == (elm)) { \
332 SIMPLEQ_REMOVE_HEAD((head), field); \
334 struct type *curelm = (head)->sqh_first; \
339 (head)->sqh_last = &(curelm)->field.sqe_next; \
343 #define SIMPLEQ_FOREACH(var, head, field) \ argument
344 for ((var) = ((head)->sqh_first); \
351 #define SIMPLEQ_EMPTY(head) ((head)->sqh_first == NULL) argument
352 #define SIMPLEQ_FIRST(head) ((head)->sqh_first) argument
366 #define TAILQ_HEAD_INITIALIZER(head) \ argument
367 { NULL, &(head).tqh_first }
379 #define TAILQ_INIT(head) do { \ argument
380 (head)->tqh_first = NULL; \
381 (head)->tqh_last = &(head)->tqh_first; \
384 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
385 if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
386 (head)->tqh_first->field.tqe_prev = \
389 (head)->tqh_last = &(elm)->field.tqe_next; \
390 (head)->tqh_first = (elm); \
391 (elm)->field.tqe_prev = &(head)->tqh_first; \
394 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
396 (elm)->field.tqe_prev = (head)->tqh_last; \
397 *(head)->tqh_last = (elm); \
398 (head)->tqh_last = &(elm)->field.tqe_next; \
401 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
406 (head)->tqh_last = &(elm)->field.tqe_next; \
418 #define TAILQ_REMOVE(head, elm, field) do { \ argument
423 (head)->tqh_last = (elm)->field.tqe_prev; \
427 #define TAILQ_FOREACH(var, head, field) \ argument
428 for ((var) = ((head)->tqh_first); \
432 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
433 for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
440 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) argument
441 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
444 #define TAILQ_LAST(head, headname) \ argument
445 (*(((struct headname *)((head)->tqh_last))->tqh_last))
459 #define CIRCLEQ_HEAD_INITIALIZER(head) \ argument
460 { (void *)&head, (void *)&head }
471 #define CIRCLEQ_INIT(head) do { \ argument
472 (head)->cqh_first = (void *)(head); \
473 (head)->cqh_last = (void *)(head); \
476 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
479 if ((listelm)->field.cqe_next == (void *)(head)) \
480 (head)->cqh_last = (elm); \
486 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ argument
489 if ((listelm)->field.cqe_prev == (void *)(head)) \
490 (head)->cqh_first = (elm); \
496 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ argument
497 (elm)->field.cqe_next = (head)->cqh_first; \
498 (elm)->field.cqe_prev = (void *)(head); \
499 if ((head)->cqh_last == (void *)(head)) \
500 (head)->cqh_last = (elm); \
502 (head)->cqh_first->field.cqe_prev = (elm); \
503 (head)->cqh_first = (elm); \
506 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
507 (elm)->field.cqe_next = (void *)(head); \
508 (elm)->field.cqe_prev = (head)->cqh_last; \
509 if ((head)->cqh_first == (void *)(head)) \
510 (head)->cqh_first = (elm); \
512 (head)->cqh_last->field.cqe_next = (elm); \
513 (head)->cqh_last = (elm); \
516 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
517 if ((elm)->field.cqe_next == (void *)(head)) \
518 (head)->cqh_last = (elm)->field.cqe_prev; \
522 if ((elm)->field.cqe_prev == (void *)(head)) \
523 (head)->cqh_first = (elm)->field.cqe_next; \
529 #define CIRCLEQ_FOREACH(var, head, field) \ argument
530 for ((var) = ((head)->cqh_first); \
531 (var) != (const void *)(head); \
534 #define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ argument
535 for ((var) = ((head)->cqh_last); \
536 (var) != (const void *)(head); \
542 #define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head)) argument
543 #define CIRCLEQ_FIRST(head) ((head)->cqh_first) argument
544 #define CIRCLEQ_LAST(head) ((head)->cqh_last) argument
548 #define CIRCLEQ_LOOP_NEXT(head, elm, field) \ argument
549 (((elm)->field.cqe_next == (void *)(head)) \
550 ? ((head)->cqh_first) \
552 #define CIRCLEQ_LOOP_PREV(head, elm, field) \ argument
553 (((elm)->field.cqe_prev == (void *)(head)) \
554 ? ((head)->cqh_last) \