Lines Matching refs:field

215 #define SLIST_CONCAT(head1, head2, type, field) do {			\  argument
221 while (SLIST_NEXT(curelm, field) != NULL) \
222 curelm = SLIST_NEXT(curelm, field); \
223 SLIST_NEXT(curelm, field) = SLIST_FIRST(head2); \
232 #define SLIST_FOREACH(var, head, field) \ argument
235 (var) = SLIST_NEXT((var), field))
237 #define SLIST_FOREACH_FROM(var, head, field) \ argument
240 (var) = SLIST_NEXT((var), field))
242 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
244 (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
247 #define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
249 (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
252 #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ argument
255 (varp) = &SLIST_NEXT((var), field))
261 #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ argument
262 SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \
263 SLIST_NEXT((slistelm), field) = (elm); \
266 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
267 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
271 #define SLIST_NEXT(elm, field) ((elm)->field.sle_next) argument
273 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
274 QMD_SAVELINK(oldnext, (elm)->field.sle_next); \
276 SLIST_REMOVE_HEAD((head), field); \
280 while (SLIST_NEXT(curelm, field) != (elm)) \
281 curelm = SLIST_NEXT(curelm, field); \
282 SLIST_REMOVE_AFTER(curelm, field); \
287 #define SLIST_REMOVE_AFTER(elm, field) do { \ argument
288 SLIST_NEXT(elm, field) = \
289 SLIST_NEXT(SLIST_NEXT(elm, field), field); \
292 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
293 SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
296 #define SLIST_REMOVE_PREVPTR(prevp, elm, field) do { \ argument
298 *(prevp) = SLIST_NEXT(elm, field); \
299 TRASHIT((elm)->field.sle_next); \
351 #define STAILQ_FOREACH(var, head, field) \ argument
354 (var) = STAILQ_NEXT((var), field))
356 #define STAILQ_FOREACH_FROM(var, head, field) \ argument
359 (var) = STAILQ_NEXT((var), field))
361 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
363 (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
366 #define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
368 (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
376 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
377 if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
378 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
379 STAILQ_NEXT((tqelm), field) = (elm); \
382 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
383 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
384 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
388 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
389 STAILQ_NEXT((elm), field) = NULL; \
391 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
394 #define STAILQ_LAST(head, type, field) \ argument
397 QUEUE_TYPEOF(type), field.stqe_next))
399 #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) argument
401 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
402 QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \
404 STAILQ_REMOVE_HEAD((head), field); \
408 while (STAILQ_NEXT(curelm, field) != (elm)) \
409 curelm = STAILQ_NEXT(curelm, field); \
410 STAILQ_REMOVE_AFTER(head, curelm, field); \
415 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ argument
416 if ((STAILQ_NEXT(elm, field) = \
417 STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \
418 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
421 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
423 STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
479 #define QMD_LIST_CHECK_HEAD(head, field) do { \ argument
481 LIST_FIRST((head))->field.le_prev != \
492 #define QMD_LIST_CHECK_NEXT(elm, field) do { \ argument
493 if (LIST_NEXT((elm), field) != NULL && \
494 LIST_NEXT((elm), field)->field.le_prev != \
495 &((elm)->field.le_next)) \
504 #define QMD_LIST_CHECK_PREV(elm, field) do { \ argument
505 if (*(elm)->field.le_prev != (elm)) \
509 #define QMD_LIST_CHECK_HEAD(head, field) argument
510 #define QMD_LIST_CHECK_NEXT(elm, field) argument
511 #define QMD_LIST_CHECK_PREV(elm, field) argument
514 #define LIST_CONCAT(head1, head2, type, field) do { \ argument
518 LIST_FIRST(head2)->field.le_prev = \
523 while (LIST_NEXT(curelm, field) != NULL) \
524 curelm = LIST_NEXT(curelm, field); \
525 LIST_NEXT(curelm, field) = LIST_FIRST(head2); \
526 LIST_FIRST(head2)->field.le_prev = &LIST_NEXT(curelm, field); \
535 #define LIST_FOREACH(var, head, field) \ argument
538 (var) = LIST_NEXT((var), field))
540 #define LIST_FOREACH_FROM(var, head, field) \ argument
543 (var) = LIST_NEXT((var), field))
545 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
547 (var) && ((tvar) = LIST_NEXT((var), field), 1); \
550 #define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
552 (var) && ((tvar) = LIST_NEXT((var), field), 1); \
559 #define LIST_INSERT_AFTER(listelm, elm, field) do { \ argument
560 QMD_LIST_CHECK_NEXT(listelm, field); \
561 if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
562 LIST_NEXT((listelm), field)->field.le_prev = \
563 &LIST_NEXT((elm), field); \
564 LIST_NEXT((listelm), field) = (elm); \
565 (elm)->field.le_prev = &LIST_NEXT((listelm), field); \
568 #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ argument
569 QMD_LIST_CHECK_PREV(listelm, field); \
570 (elm)->field.le_prev = (listelm)->field.le_prev; \
571 LIST_NEXT((elm), field) = (listelm); \
572 *(listelm)->field.le_prev = (elm); \
573 (listelm)->field.le_prev = &LIST_NEXT((elm), field); \
576 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
577 QMD_LIST_CHECK_HEAD((head), field); \
578 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
579 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
581 (elm)->field.le_prev = &LIST_FIRST((head)); \
584 #define LIST_NEXT(elm, field) ((elm)->field.le_next) argument
586 #define LIST_PREV(elm, head, type, field) \ argument
587 ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \
588 __containerof((elm)->field.le_prev, \
589 QUEUE_TYPEOF(type), field.le_next))
591 #define LIST_REMOVE(elm, field) do { \ argument
592 QMD_SAVELINK(oldnext, (elm)->field.le_next); \
593 QMD_SAVELINK(oldprev, (elm)->field.le_prev); \
594 QMD_LIST_CHECK_NEXT(elm, field); \
595 QMD_LIST_CHECK_PREV(elm, field); \
596 if (LIST_NEXT((elm), field) != NULL) \
597 LIST_NEXT((elm), field)->field.le_prev = \
598 (elm)->field.le_prev; \
599 *(elm)->field.le_prev = LIST_NEXT((elm), field); \
604 #define LIST_SWAP(head1, head2, type, field) do { \ argument
609 swap_tmp->field.le_prev = &LIST_FIRST((head1)); \
611 swap_tmp->field.le_prev = &LIST_FIRST((head2)); \
658 #define QMD_TAILQ_CHECK_HEAD(head, field) do { \ argument
660 TAILQ_FIRST((head))->field.tqe_prev != \
670 #define QMD_TAILQ_CHECK_TAIL(head, field) do { \ argument
681 #define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ argument
682 if (TAILQ_NEXT((elm), field) != NULL && \
683 TAILQ_NEXT((elm), field)->field.tqe_prev != \
684 &((elm)->field.tqe_next)) \
693 #define QMD_TAILQ_CHECK_PREV(elm, field) do { \ argument
694 if (*(elm)->field.tqe_prev != (elm)) \
698 #define QMD_TAILQ_CHECK_HEAD(head, field) argument
700 #define QMD_TAILQ_CHECK_NEXT(elm, field) argument
701 #define QMD_TAILQ_CHECK_PREV(elm, field) argument
704 #define TAILQ_CONCAT(head1, head2, field) do { \ argument
707 (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
719 #define TAILQ_FOREACH(var, head, field) \ argument
722 (var) = TAILQ_NEXT((var), field))
724 #define TAILQ_FOREACH_FROM(var, head, field) \ argument
727 (var) = TAILQ_NEXT((var), field))
729 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
731 (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
734 #define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ argument
736 (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
739 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
742 (var) = TAILQ_PREV((var), headname, field))
744 #define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ argument
747 (var) = TAILQ_PREV((var), headname, field))
749 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
751 (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
754 #define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar) \ argument
756 (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
765 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
766 QMD_TAILQ_CHECK_NEXT(listelm, field); \
767 if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
768 TAILQ_NEXT((elm), field)->field.tqe_prev = \
769 &TAILQ_NEXT((elm), field); \
771 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
774 TAILQ_NEXT((listelm), field) = (elm); \
775 (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \
776 QMD_TRACE_ELEM(&(elm)->field); \
777 QMD_TRACE_ELEM(&(listelm)->field); \
780 #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ argument
781 QMD_TAILQ_CHECK_PREV(listelm, field); \
782 (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
783 TAILQ_NEXT((elm), field) = (listelm); \
784 *(listelm)->field.tqe_prev = (elm); \
785 (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \
786 QMD_TRACE_ELEM(&(elm)->field); \
787 QMD_TRACE_ELEM(&(listelm)->field); \
790 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
791 QMD_TAILQ_CHECK_HEAD(head, field); \
792 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
793 TAILQ_FIRST((head))->field.tqe_prev = \
794 &TAILQ_NEXT((elm), field); \
796 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
798 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
800 QMD_TRACE_ELEM(&(elm)->field); \
803 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
804 QMD_TAILQ_CHECK_TAIL(head, field); \
805 TAILQ_NEXT((elm), field) = NULL; \
806 (elm)->field.tqe_prev = (head)->tqh_last; \
808 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
810 QMD_TRACE_ELEM(&(elm)->field); \
823 #define TAILQ_LAST_FAST(head, type, field) \ argument
824 (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, QUEUE_TYPEOF(type), field.tqe_next))
826 #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) argument
828 #define TAILQ_PREV(elm, headname, field) \ argument
829 (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
831 #define TAILQ_PREV_FAST(elm, head, type, field) \ argument
832 ((elm)->field.tqe_prev == &(head)->tqh_first ? NULL : \
833 __containerof((elm)->field.tqe_prev, QUEUE_TYPEOF(type), field.tqe_next))
835 #define TAILQ_REMOVE(head, elm, field) do { \ argument
836 QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \
837 QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \
838 QMD_TAILQ_CHECK_NEXT(elm, field); \
839 QMD_TAILQ_CHECK_PREV(elm, field); \
840 if ((TAILQ_NEXT((elm), field)) != NULL) \
841 TAILQ_NEXT((elm), field)->field.tqe_prev = \
842 (elm)->field.tqe_prev; \
844 (head)->tqh_last = (elm)->field.tqe_prev; \
847 *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \
850 QMD_TRACE_ELEM(&(elm)->field); \
853 #define TAILQ_SWAP(head1, head2, type, field) do { \ argument
861 swap_first->field.tqe_prev = &(head1)->tqh_first; \
865 swap_first->field.tqe_prev = &(head2)->tqh_first; \