Lines Matching refs:head

134 #define	QMD_TRACE_HEAD(head) do {					\  argument
135 (head)->trace.prevline = (head)->trace.lastline; \
136 (head)->trace.prevfile = (head)->trace.lastfile; \
137 (head)->trace.lastline = __LINE__; \
138 (head)->trace.lastfile = __FILE__; \
150 #define QMD_TRACE_HEAD(head) argument
191 #define SLIST_HEAD_INITIALIZER(head) \ argument
230 #define SLIST_EMPTY(head) ((head)->slh_first == NULL) argument
232 #define SLIST_FIRST(head) ((head)->slh_first) argument
234 #define SLIST_FOREACH(var, head, field) \ argument
235 for ((var) = SLIST_FIRST((head)); \
239 #define SLIST_FOREACH_FROM(var, head, field) \ argument
240 for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \
244 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
245 for ((var) = SLIST_FIRST((head)); \
249 #define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
250 for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \
254 #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ argument
255 for ((varp) = &SLIST_FIRST((head)); \
259 #define SLIST_INIT(head) do { \ argument
260 SLIST_FIRST((head)) = NULL; \
268 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
269 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
270 SLIST_FIRST((head)) = (elm); \
275 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
277 if (SLIST_FIRST((head)) == (elm)) { \
278 SLIST_REMOVE_HEAD((head), field); \
281 QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head); \
294 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
295 SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
325 #define STAILQ_HEAD_INITIALIZER(head) \ argument
326 { NULL, &(head).stqh_first }
349 #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) argument
351 #define STAILQ_FIRST(head) ((head)->stqh_first) argument
353 #define STAILQ_FOREACH(var, head, field) \ argument
354 for((var) = STAILQ_FIRST((head)); \
358 #define STAILQ_FOREACH_FROM(var, head, field) \ argument
359 for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \
363 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
364 for ((var) = STAILQ_FIRST((head)); \
368 #define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
369 for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \
373 #define STAILQ_INIT(head) do { \ argument
374 STAILQ_FIRST((head)) = NULL; \
375 (head)->stqh_last = &STAILQ_FIRST((head)); \
378 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
380 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
384 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
385 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
386 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
387 STAILQ_FIRST((head)) = (elm); \
390 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
392 *(head)->stqh_last = (elm); \
393 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
396 #define STAILQ_LAST(head, type, field) \ argument
397 (STAILQ_EMPTY((head)) ? NULL : \
398 __containerof((head)->stqh_last, \
403 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
405 if (STAILQ_FIRST((head)) == (elm)) { \
406 STAILQ_REMOVE_HEAD((head), field); \
409 QUEUE_TYPEOF(type) *curelm = STAILQ_FIRST(head); \
412 STAILQ_REMOVE_AFTER(head, curelm, field); \
417 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ argument
420 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
423 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
424 if ((STAILQ_FIRST((head)) = \
425 STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
426 (head)->stqh_last = &STAILQ_FIRST((head)); \
429 #define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ argument
430 if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \
431 (head)->stqh_last = &STAILQ_FIRST((head)); \
461 #define LIST_HEAD_INITIALIZER(head) \ argument
487 #define QMD_LIST_CHECK_HEAD(head, field) do { \ argument
488 if (LIST_FIRST((head)) != NULL && \
489 LIST_FIRST((head))->field.le_prev != \
490 &LIST_FIRST((head))) \
491 panic("Bad list head %p first->prev != head", (head)); \
517 #define QMD_LIST_CHECK_HEAD(head, field) argument
539 #define LIST_EMPTY(head) ((head)->lh_first == NULL) argument
541 #define LIST_FIRST(head) ((head)->lh_first) argument
543 #define LIST_FOREACH(var, head, field) \ argument
544 for ((var) = LIST_FIRST((head)); \
548 #define LIST_FOREACH_FROM(var, head, field) \ argument
549 for ((var) = ((var) ? (var) : LIST_FIRST((head))); \
553 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
554 for ((var) = LIST_FIRST((head)); \
558 #define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
559 for ((var) = ((var) ? (var) : LIST_FIRST((head))); \
563 #define LIST_INIT(head) do { \ argument
564 LIST_FIRST((head)) = NULL; \
584 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
585 QMD_LIST_CHECK_HEAD((head), field); \
586 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
587 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
588 LIST_FIRST((head)) = (elm); \
589 (elm)->field.le_prev = &LIST_FIRST((head)); \
594 #define LIST_PREV(elm, head, type, field) \ argument
595 ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \
639 #define TAILQ_HEAD_INITIALIZER(head) \ argument
640 { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
666 #define QMD_TAILQ_CHECK_HEAD(head, field) do { \ argument
667 if (!TAILQ_EMPTY(head) && \
668 TAILQ_FIRST((head))->field.tqe_prev != \
669 &TAILQ_FIRST((head))) \
670 panic("Bad tailq head %p first->prev != head", (head)); \
678 #define QMD_TAILQ_CHECK_TAIL(head, field) do { \ argument
679 if (*(head)->tqh_last != NULL) \
680 panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \
706 #define QMD_TAILQ_CHECK_HEAD(head, field) argument
707 #define QMD_TAILQ_CHECK_TAIL(head, headname) argument
723 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) argument
725 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
727 #define TAILQ_FOREACH(var, head, field) \ argument
728 for ((var) = TAILQ_FIRST((head)); \
732 #define TAILQ_FOREACH_FROM(var, head, field) \ argument
733 for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \
737 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
738 for ((var) = TAILQ_FIRST((head)); \
742 #define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
743 for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \
747 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
748 for ((var) = TAILQ_LAST((head), headname); \
752 #define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ argument
753 for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \
757 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
758 for ((var) = TAILQ_LAST((head), headname); \
762 #define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar) \ argument
763 for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \
767 #define TAILQ_INIT(head) do { \ argument
768 TAILQ_FIRST((head)) = NULL; \
769 (head)->tqh_last = &TAILQ_FIRST((head)); \
770 QMD_TRACE_HEAD(head); \
773 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
779 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
780 QMD_TRACE_HEAD(head); \
798 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
799 QMD_TAILQ_CHECK_HEAD(head, field); \
800 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
801 TAILQ_FIRST((head))->field.tqe_prev = \
804 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
805 TAILQ_FIRST((head)) = (elm); \
806 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
807 QMD_TRACE_HEAD(head); \
811 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
812 QMD_TAILQ_CHECK_TAIL(head, field); \
814 (elm)->field.tqe_prev = (head)->tqh_last; \
815 *(head)->tqh_last = (elm); \
816 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
817 QMD_TRACE_HEAD(head); \
821 #define TAILQ_LAST(head, headname) \ argument
822 (*(((struct headname *)((head)->tqh_last))->tqh_last))
831 #define TAILQ_LAST_FAST(head, type, field) \ argument
832 (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, QUEUE_TYPEOF(type), field.tqe_next))
839 #define TAILQ_REMOVE(head, elm, field) do { \ argument
848 (head)->tqh_last = (elm)->field.tqe_prev; \
849 QMD_TRACE_HEAD(head); \
892 *head = (struct quehead *)b; in insque() local
894 element->qh_link = head->qh_link; in insque()
895 element->qh_rlink = head; in insque()
896 head->qh_link = element; in insque()