Lines Matching refs:head
105 #define QMD_TRACE_HEAD(head) do { \ argument
106 (head)->trace.prevline = (head)->trace.lastline; \
107 (head)->trace.prevfile = (head)->trace.lastfile; \
108 (head)->trace.lastline = __LINE__; \
109 (head)->trace.lastfile = __FILE__; \
121 #define QMD_TRACE_HEAD(head) argument
158 #define SLIST_HEAD_INITIALIZER(head) \ argument
197 #define SLIST_EMPTY(head) ((head)->slh_first == NULL) argument
199 #define SLIST_FIRST(head) ((head)->slh_first) argument
201 #define SLIST_FOREACH(var, head, field) \ argument
202 for ((var) = SLIST_FIRST((head)); \
206 #define SLIST_FOREACH_FROM(var, head, field) \ argument
207 for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \
211 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
212 for ((var) = SLIST_FIRST((head)); \
216 #define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
217 for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \
221 #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ argument
222 for ((varp) = &SLIST_FIRST((head)); \
226 #define SLIST_INIT(head) do { \ argument
227 SLIST_FIRST((head)) = NULL; \
235 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
236 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
237 SLIST_FIRST((head)) = (elm); \
242 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
244 if (SLIST_FIRST((head)) == (elm)) { \
245 SLIST_REMOVE_HEAD((head), field); \
248 QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head); \
261 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
262 SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
292 #define STAILQ_HEAD_INITIALIZER(head) \ argument
293 { NULL, &(head).stqh_first }
316 #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) argument
318 #define STAILQ_FIRST(head) ((head)->stqh_first) argument
320 #define STAILQ_FOREACH(var, head, field) \ argument
321 for((var) = STAILQ_FIRST((head)); \
325 #define STAILQ_FOREACH_FROM(var, head, field) \ argument
326 for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \
330 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
331 for ((var) = STAILQ_FIRST((head)); \
335 #define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
336 for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \
340 #define STAILQ_INIT(head) do { \ argument
341 STAILQ_FIRST((head)) = NULL; \
342 (head)->stqh_last = &STAILQ_FIRST((head)); \
345 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
347 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
351 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
352 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
353 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
354 STAILQ_FIRST((head)) = (elm); \
357 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
359 *(head)->stqh_last = (elm); \
360 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
363 #define STAILQ_LAST(head, type, field) \ argument
364 (STAILQ_EMPTY((head)) ? NULL : \
365 __containerof((head)->stqh_last, \
370 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
372 if (STAILQ_FIRST((head)) == (elm)) { \
373 STAILQ_REMOVE_HEAD((head), field); \
376 QUEUE_TYPEOF(type) *curelm = STAILQ_FIRST(head); \
379 STAILQ_REMOVE_AFTER(head, curelm, field); \
384 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ argument
387 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
390 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
391 if ((STAILQ_FIRST((head)) = \
392 STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
393 (head)->stqh_last = &STAILQ_FIRST((head)); \
423 #define LIST_HEAD_INITIALIZER(head) \ argument
449 #define QMD_LIST_CHECK_HEAD(head, field) do { \ argument
450 if (LIST_FIRST((head)) != NULL && \
451 LIST_FIRST((head))->field.le_prev != \
452 &LIST_FIRST((head))) \
453 panic("Bad list head %p first->prev != head", (head)); \
479 #define QMD_LIST_CHECK_HEAD(head, field) argument
501 #define LIST_EMPTY(head) ((head)->lh_first == NULL) argument
503 #define LIST_FIRST(head) ((head)->lh_first) argument
505 #define LIST_FOREACH(var, head, field) \ argument
506 for ((var) = LIST_FIRST((head)); \
510 #define LIST_FOREACH_FROM(var, head, field) \ argument
511 for ((var) = ((var) ? (var) : LIST_FIRST((head))); \
515 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
516 for ((var) = LIST_FIRST((head)); \
520 #define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
521 for ((var) = ((var) ? (var) : LIST_FIRST((head))); \
525 #define LIST_INIT(head) do { \ argument
526 LIST_FIRST((head)) = NULL; \
546 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
547 QMD_LIST_CHECK_HEAD((head), field); \
548 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
549 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
550 LIST_FIRST((head)) = (elm); \
551 (elm)->field.le_prev = &LIST_FIRST((head)); \
556 #define LIST_PREV(elm, head, type, field) \ argument
557 ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \
601 #define TAILQ_HEAD_INITIALIZER(head) \ argument
602 { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
628 #define QMD_TAILQ_CHECK_HEAD(head, field) do { \ argument
629 if (!TAILQ_EMPTY(head) && \
630 TAILQ_FIRST((head))->field.tqe_prev != \
631 &TAILQ_FIRST((head))) \
632 panic("Bad tailq head %p first->prev != head", (head)); \
640 #define QMD_TAILQ_CHECK_TAIL(head, field) do { \ argument
641 if (*(head)->tqh_last != NULL) \
642 panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \
668 #define QMD_TAILQ_CHECK_HEAD(head, field) argument
669 #define QMD_TAILQ_CHECK_TAIL(head, headname) argument
685 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) argument
687 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
689 #define TAILQ_FOREACH(var, head, field) \ argument
690 for ((var) = TAILQ_FIRST((head)); \
694 #define TAILQ_FOREACH_FROM(var, head, field) \ argument
695 for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \
699 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
700 for ((var) = TAILQ_FIRST((head)); \
704 #define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
705 for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \
709 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
710 for ((var) = TAILQ_LAST((head), headname); \
714 #define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ argument
715 for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \
719 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
720 for ((var) = TAILQ_LAST((head), headname); \
724 #define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar) \ argument
725 for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \
729 #define TAILQ_INIT(head) do { \ argument
730 TAILQ_FIRST((head)) = NULL; \
731 (head)->tqh_last = &TAILQ_FIRST((head)); \
732 QMD_TRACE_HEAD(head); \
735 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
741 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
742 QMD_TRACE_HEAD(head); \
760 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
761 QMD_TAILQ_CHECK_HEAD(head, field); \
762 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
763 TAILQ_FIRST((head))->field.tqe_prev = \
766 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
767 TAILQ_FIRST((head)) = (elm); \
768 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
769 QMD_TRACE_HEAD(head); \
773 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
774 QMD_TAILQ_CHECK_TAIL(head, field); \
776 (elm)->field.tqe_prev = (head)->tqh_last; \
777 *(head)->tqh_last = (elm); \
778 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
779 QMD_TRACE_HEAD(head); \
783 #define TAILQ_LAST(head, headname) \ argument
784 (*(((struct headname *)((head)->tqh_last))->tqh_last))
793 #define TAILQ_LAST_FAST(head, type, field) \ argument
794 (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, QUEUE_TYPEOF(type), field.tqe_next))
801 #define TAILQ_PREV_FAST(elm, head, type, field) \ argument
802 ((elm)->field.tqe_prev == &(head)->tqh_first ? NULL : \
805 #define TAILQ_REMOVE(head, elm, field) do { \ argument
814 (head)->tqh_last = (elm)->field.tqe_prev; \
815 QMD_TRACE_HEAD(head); \