Lines Matching refs:head

129 #define	QMD_TRACE_HEAD(head) do {					\  argument
130 (head)->trace.prevline = (head)->trace.lastline; \
131 (head)->trace.prevfile = (head)->trace.lastfile; \
132 (head)->trace.lastline = __LINE__; \
133 (head)->trace.lastfile = __FILE__; \
145 #define QMD_TRACE_HEAD(head) argument
174 #define SLIST_HEAD_INITIALIZER(head) \ argument
203 #define SLIST_EMPTY(head) ((head)->slh_first == NULL) argument
205 #define SLIST_FIRST(head) ((head)->slh_first) argument
207 #define SLIST_FOREACH(var, head, field) \ argument
208 for ((var) = SLIST_FIRST((head)); \
212 #define SLIST_FOREACH_FROM(var, head, field) \ argument
213 for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \
217 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
218 for ((var) = SLIST_FIRST((head)); \
222 #define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
223 for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \
227 #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ argument
228 for ((varp) = &SLIST_FIRST((head)); \
232 #define SLIST_INIT(head) do { \ argument
233 SLIST_FIRST((head)) = NULL; \
241 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
242 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
243 SLIST_FIRST((head)) = (elm); \
248 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
250 if (SLIST_FIRST((head)) == (elm)) { \
251 SLIST_REMOVE_HEAD((head), field); \
254 QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head); \
267 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
268 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
443 #define QMD_LIST_CHECK_HEAD(head, field) do { \ argument
444 if (LIST_FIRST((head)) != NULL && \
445 LIST_FIRST((head))->field.le_prev != \
446 &LIST_FIRST((head))) \
447 panic("Bad list head %p first->prev != head", (head)); \
462 #define QMD_LIST_CHECK_HEAD(head, field) argument
484 #define LIST_EMPTY(head) ((head)->lh_first == NULL) argument
486 #define LIST_FIRST(head) ((head)->lh_first) argument
488 #define LIST_FOREACH(var, head, field) \ argument
489 for ((var) = LIST_FIRST((head)); \
493 #define LIST_FOREACH_FROM(var, head, field) \ argument
494 for ((var) = ((var) ? (var) : LIST_FIRST((head))); \
498 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
499 for ((var) = LIST_FIRST((head)); \
503 #define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
504 for ((var) = ((var) ? (var) : LIST_FIRST((head))); \
508 #define LIST_INIT(head) do { \ argument
509 LIST_FIRST((head)) = NULL; \
529 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
530 QMD_LIST_CHECK_HEAD((head), field); \
531 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
532 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
533 LIST_FIRST((head)) = (elm); \
534 (elm)->field.le_prev = &LIST_FIRST((head)); \
539 #define LIST_PREV(elm, head, type, field) \ argument
540 ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \
584 #define TAILQ_HEAD_INITIALIZER(head) \ argument
585 { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
605 #define QMD_TAILQ_CHECK_HEAD(head, field) do { \ argument
606 if (!TAILQ_EMPTY(head) && \
607 TAILQ_FIRST((head))->field.tqe_prev != \
608 &TAILQ_FIRST((head))) \
609 panic("Bad tailq head %p first->prev != head", (head)); \
612 #define QMD_TAILQ_CHECK_TAIL(head, field) do { \ argument
613 if (*(head)->tqh_last != NULL) \
614 panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \
629 #define QMD_TAILQ_CHECK_HEAD(head, field) argument
630 #define QMD_TAILQ_CHECK_TAIL(head, headname) argument
646 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) argument
648 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
650 #define TAILQ_FOREACH(var, head, field) \ argument
651 for ((var) = TAILQ_FIRST((head)); \
655 #define TAILQ_FOREACH_FROM(var, head, field) \ argument
656 for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \
660 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
661 for ((var) = TAILQ_FIRST((head)); \
665 #define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
666 for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \
670 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
671 for ((var) = TAILQ_LAST((head), headname); \
675 #define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ argument
676 for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \
680 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
681 for ((var) = TAILQ_LAST((head), headname); \
685 #define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar) \ argument
686 for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \
690 #define TAILQ_INIT(head) do { \ argument
691 TAILQ_FIRST((head)) = NULL; \
692 (head)->tqh_last = &TAILQ_FIRST((head)); \
693 QMD_TRACE_HEAD(head); \
696 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
702 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
703 QMD_TRACE_HEAD(head); \
721 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
722 QMD_TAILQ_CHECK_HEAD(head, field); \
723 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
724 TAILQ_FIRST((head))->field.tqe_prev = \
727 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
728 TAILQ_FIRST((head)) = (elm); \
729 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
730 QMD_TRACE_HEAD(head); \
734 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
735 QMD_TAILQ_CHECK_TAIL(head, field); \
737 (elm)->field.tqe_prev = (head)->tqh_last; \
738 *(head)->tqh_last = (elm); \
739 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
740 QMD_TRACE_HEAD(head); \
744 #define TAILQ_LAST(head, headname) \ argument
745 (*(((struct headname *)((head)->tqh_last))->tqh_last))
752 #define TAILQ_REMOVE(head, elm, field) do { \ argument
761 (head)->tqh_last = (elm)->field.tqe_prev; \
762 QMD_TRACE_HEAD(head); \