Lines Matching refs:head

165 #define QMD_TRACE_HEAD(head) do {                                       \  argument
166 (head)->trace.prevline = (head)->trace.lastline; \
167 (head)->trace.prevfile = (head)->trace.lastfile; \
168 (head)->trace.lastline = __LINE__; \
169 (head)->trace.lastfile = __FILE__; \
181 #define QMD_TRACE_HEAD(head) argument
251 #define SLIST_HEAD_INITIALIZER(head) \ argument
266 #define SLIST_EMPTY(head) ((head)->slh_first == NULL) argument
268 #define SLIST_FIRST(head) ((head)->slh_first) argument
270 #define SLIST_FOREACH(var, head, field) \ argument
271 for ((var) = SLIST_FIRST((head)); \
275 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
276 for ((var) = SLIST_FIRST((head)); \
280 #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ argument
281 for ((varp) = &SLIST_FIRST((head)); \
285 #define SLIST_INIT(head) do { \ argument
286 SLIST_FIRST((head)) = NULL; \
294 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
295 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
296 SLIST_FIRST((head)) = (elm); \
301 #define SLIST_REMOVE(head, elm, type, field) \ argument
305 if (SLIST_FIRST((head)) == (elm)) { \
306 SLIST_REMOVE_HEAD((head), field); \
309 struct type *curelm = SLIST_FIRST((head)); \
324 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
325 SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
341 #define STAILQ_HEAD_INITIALIZER(head) \ argument
342 { NULL, &(head).stqh_first }
364 #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) argument
366 #define STAILQ_FIRST(head) ((head)->stqh_first) argument
368 #define STAILQ_FOREACH(var, head, field) \ argument
369 for((var) = STAILQ_FIRST((head)); \
374 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
375 for ((var) = STAILQ_FIRST((head)); \
379 #define STAILQ_INIT(head) do { \ argument
380 STAILQ_FIRST((head)) = NULL; \
381 (head)->stqh_last = &STAILQ_FIRST((head)); \
384 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
386 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
390 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
391 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
392 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
393 STAILQ_FIRST((head)) = (elm); \
396 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
398 *(head)->stqh_last = (elm); \
399 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
402 #define STAILQ_LAST(head, type, field) \ argument
405 (STAILQ_EMPTY((head)) ? \
408 ((char *)((head)->stqh_last) - __offsetof(struct type, field))))\
414 #define STAILQ_REMOVE(head, elm, type, field) \ argument
418 if (STAILQ_FIRST((head)) == (elm)) { \
419 STAILQ_REMOVE_HEAD((head), field); \
422 struct type *curelm = STAILQ_FIRST((head)); \
425 STAILQ_REMOVE_AFTER(head, curelm, field); \
432 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
433 if ((STAILQ_FIRST((head)) = \
434 STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
435 (head)->stqh_last = &STAILQ_FIRST((head)); \
438 #define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ argument
439 if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \
440 (head)->stqh_last = &STAILQ_FIRST((head)); \
443 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ argument
446 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
480 #define LIST_HEAD_INITIALIZER(head) \ argument
498 #define LIST_CHECK_HEAD(head, field) do { \ argument
500 LIST_FIRST((head)) != NULL && \
501 LIST_FIRST((head))->field.le_prev != \
502 &LIST_FIRST((head)))) \
503 ml_fatal_trap_invalid_list_linkage((uintptr_t)(head)); \
519 #define LIST_CHECK_HEAD(head, field) argument
524 #define LIST_EMPTY(head) ((head)->lh_first == NULL) argument
526 #define LIST_FIRST(head) ((head)->lh_first) argument
528 #define LIST_FOREACH(var, head, field) \ argument
529 for ((var) = LIST_FIRST((head)); \
533 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
534 for ((var) = LIST_FIRST((head)); \
538 #define LIST_INIT(head) do { \ argument
539 LIST_FIRST((head)) = NULL; \
559 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
560 LIST_CHECK_HEAD((head), field); \
561 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
562 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
563 LIST_FIRST((head)) = (elm); \
564 (elm)->field.le_prev = &LIST_FIRST((head)); \
609 #define TAILQ_HEAD_INITIALIZER(head) \ argument
610 { NULL, &(head).tqh_first }
627 #define TAILQ_CHECK_HEAD(head, field) do { \ argument
629 TAILQ_FIRST((head)) != NULL && \
630 TAILQ_FIRST((head))->field.tqe_prev != \
631 &TAILQ_FIRST((head)))) \
632 ml_fatal_trap_invalid_list_linkage((uintptr_t)(head)); \
648 #define TAILQ_CHECK_HEAD(head, field) argument
664 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) argument
666 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
668 #define TAILQ_FOREACH(var, head, field) \ argument
669 for ((var) = TAILQ_FIRST((head)); \
673 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
674 for ((var) = TAILQ_FIRST((head)); \
678 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
679 for ((var) = TAILQ_LAST((head), headname); \
683 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
684 for ((var) = TAILQ_LAST((head), headname); \
694 #define TAILQ_INIT_AFTER_BZERO(head) do { \ argument
695 (head)->tqh_last = &TAILQ_FIRST((head)); \
699 #define TAILQ_INIT(head) do { \ argument
700 TAILQ_FIRST((head)) = NULL; \
701 (head)->tqh_last = &TAILQ_FIRST((head)); \
702 QMD_TRACE_HEAD(head); \
706 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
712 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
713 QMD_TRACE_HEAD(head); \
731 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
732 TAILQ_CHECK_HEAD(head, field); \
733 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
734 TAILQ_FIRST((head))->field.tqe_prev = \
737 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
738 TAILQ_FIRST((head)) = (elm); \
739 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
740 QMD_TRACE_HEAD(head); \
744 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
746 (elm)->field.tqe_prev = (head)->tqh_last; \
747 *(head)->tqh_last = (elm); \
748 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
749 QMD_TRACE_HEAD(head); \
753 #define TAILQ_LAST(head, headname) \ argument
756 (*(((struct headname *)((head)->tqh_last))->tqh_last)) \
769 #define TAILQ_REMOVE(head, elm, field) do { \ argument
776 (head)->tqh_last = (elm)->field.tqe_prev; \
777 QMD_TRACE_HEAD(head); \
837 #define CIRCLEQ_CHECK_HEAD(head, field) do { \ argument
839 CIRCLEQ_FIRST((head)) != ((void*)(head)) && \
840 CIRCLEQ_FIRST((head))->field.cqe_prev != ((void*)(head)))) \
841 ml_fatal_trap_invalid_list_linkage((uintptr_t)(head)); \
843 #define CIRCLEQ_CHECK_NEXT(head, elm, field) do { \ argument
845 CIRCLEQ_NEXT((elm), field) != ((void*)(head)) && \
849 #define CIRCLEQ_CHECK_PREV(head, elm, field) do { \ argument
851 CIRCLEQ_PREV((elm), field) != ((void*)(head)) && \
856 #define CIRCLEQ_CHECK_HEAD(head, field) argument
857 #define CIRCLEQ_CHECK_NEXT(head, elm, field) argument
858 #define CIRCLEQ_CHECK_PREV(head, elm, field) argument
861 #define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head)) argument
863 #define CIRCLEQ_FIRST(head) ((head)->cqh_first) argument
865 #define CIRCLEQ_FOREACH(var, head, field) \ argument
866 for((var) = (head)->cqh_first; \
867 (var) != (void *)(head); \
870 #define CIRCLEQ_INIT(head) do { \ argument
871 (head)->cqh_first = (void *)(head); \
872 (head)->cqh_last = (void *)(head); \
875 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
876 CIRCLEQ_CHECK_NEXT(head, listelm, field); \
879 if ((listelm)->field.cqe_next == (void *)(head)) \
880 (head)->cqh_last = (elm); \
886 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ argument
887 CIRCLEQ_CHECK_PREV(head, listelm, field); \
890 if ((listelm)->field.cqe_prev == (void *)(head)) \
891 (head)->cqh_first = (elm); \
897 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ argument
898 CIRCLEQ_CHECK_HEAD(head, field); \
899 (elm)->field.cqe_next = (head)->cqh_first; \
900 (elm)->field.cqe_prev = (void *)(head); \
901 if ((head)->cqh_last == (void *)(head)) \
902 (head)->cqh_last = (elm); \
904 (head)->cqh_first->field.cqe_prev = (elm); \
905 (head)->cqh_first = (elm); \
908 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
909 (elm)->field.cqe_next = (void *)(head); \
910 (elm)->field.cqe_prev = (head)->cqh_last; \
911 if ((head)->cqh_first == (void *)(head)) \
912 (head)->cqh_first = (elm); \
914 (head)->cqh_last->field.cqe_next = (elm); \
915 (head)->cqh_last = (elm); \
918 #define CIRCLEQ_LAST(head) ((head)->cqh_last) argument
924 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
925 CIRCLEQ_CHECK_NEXT(head, elm, field); \
926 CIRCLEQ_CHECK_PREV(head, elm, field); \
927 if ((elm)->field.cqe_next == (void *)(head)) \
928 (head)->cqh_last = (elm)->field.cqe_prev; \
932 if ((elm)->field.cqe_prev == (void *)(head)) \
933 (head)->cqh_first = (elm)->field.cqe_next; \
983 *head = (struct quehead *)b; in insque() local
984 chkquenext(head); in insque()
986 element->qh_link = head->qh_link; in insque()
987 element->qh_rlink = head; in insque()
988 head->qh_link = element; in insque()