Lines Matching refs:elm

187 #define	SLIST_NEXT(elm, field)	((elm)->field.sle_next)  argument
235 #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ argument
236 SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \
237 SLIST_NEXT((slistelm), field) = (elm); \
241 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
242 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
243 SLIST_FIRST((head)) = (elm); \
258 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
259 QMD_SAVELINK(oldnext, SLIST_NEXT((elm), field)); \
260 if (SLIST_FIRST((head)) == (elm)) { \
265 while (SLIST_NEXT(curelm, field) != (elm)) \
312 #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) argument
357 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
358 if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
359 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
360 STAILQ_NEXT((tqelm), field) = (elm); \
364 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
365 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
366 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
367 STAILQ_FIRST((head)) = (elm); \
371 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
372 STAILQ_NEXT((elm), field) = NULL; \
373 *(head)->stqh_last = (elm); \
374 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
390 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ argument
391 if ((STAILQ_NEXT(elm, field) = \
392 STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \
393 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
397 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
398 QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \
399 if (STAILQ_FIRST((head)) == (elm)) { \
403 while (STAILQ_NEXT(curelm, field) != (elm)) \
459 #define LIST_NEXT(elm, field) ((elm)->field.le_next) argument
460 #define LIST_PREV(elm, head, type, field) \ argument
461 ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \
462 __containerof((elm)->field.le_prev, type, field.le_next))
490 #define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field) \ argument
494 #define QUEUEDEBUG_LIST_OP(elm, field) \ argument
495 if ((elm)->field.le_next && \
496 (elm)->field.le_next->field.le_prev != \
497 &(elm)->field.le_next) \
498 panic("LIST_* forw %p %s:%d", (elm), __FILE__, __LINE__);\
499 if (*(elm)->field.le_prev != (elm)) \
500 panic("LIST_* back %p %s:%d", (elm), __FILE__, __LINE__);
501 #define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) \ argument
502 (elm)->field.le_next = (void *)1L; \
503 (elm)->field.le_prev = (void *)1L;
505 #define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field) argument
506 #define QUEUEDEBUG_LIST_OP(elm, field) argument
507 #define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) argument
515 #define LIST_INSERT_AFTER(listelm, elm, field) do { \ argument
517 if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
519 &LIST_NEXT((elm), field); \
520 LIST_NEXT((listelm), field) = (elm); \
521 (elm)->field.le_prev = &LIST_NEXT((listelm), field); \
525 #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ argument
527 (elm)->field.le_prev = (listelm)->field.le_prev; \
528 LIST_NEXT((elm), field) = (listelm); \
529 *(listelm)->field.le_prev = (elm); \
530 (listelm)->field.le_prev = &LIST_NEXT((elm), field); \
534 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
535 QUEUEDEBUG_LIST_INSERT_HEAD((head), (elm), field) \
536 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
537 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
538 LIST_FIRST((head)) = (elm); \
539 (elm)->field.le_prev = &LIST_FIRST((head)); \
543 #define LIST_REMOVE(elm, field) do { \ argument
544 QUEUEDEBUG_LIST_OP((elm), field) \
545 if (LIST_NEXT((elm), field) != NULL) \
546 LIST_NEXT((elm), field)->field.le_prev = \
547 (elm)->field.le_prev; \
548 *(elm)->field.le_prev = LIST_NEXT((elm), field); \
549 QUEUEDEBUG_LIST_POSTREMOVE((elm), field) \
598 #define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) argument
633 #define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ argument
634 if ((SIMPLEQ_NEXT((elm), field) = SIMPLEQ_FIRST((head))) == NULL)\
635 (head)->sqh_last = &SIMPLEQ_NEXT((elm), field); \
636 SIMPLEQ_FIRST((head)) = (elm); \
640 #define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ argument
641 SIMPLEQ_NEXT((elm), field) = NULL; \
642 *(head)->sqh_last = (elm); \
643 (head)->sqh_last = &SIMPLEQ_NEXT((elm), field); \
647 #define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
648 if ((SIMPLEQ_NEXT((elm), field) = SIMPLEQ_NEXT((listelm), field)) == \
650 (head)->sqh_last = &SIMPLEQ_NEXT((elm), field); \
651 SIMPLEQ_NEXT((listelm), field) = (elm); \
662 #define SIMPLEQ_REMOVE_AFTER(head, elm, field) do { \ argument
663 if ((SIMPLEQ_NEXT((elm)) = \
664 SIMPLEQ_NEXT(SIMPLEQ_NEXT((elm), field), field)) == NULL) \
665 (head)->sqh_last = &SIMPLEQ_NEXT((elm), field); \
669 #define SIMPLEQ_REMOVE(head, elm, type, field) do { \ argument
670 if (SIMPLEQ_FIRST((head)) == (elm)) { \
674 while (SIMPLEQ_NEXT(curelm, field) != (elm)) \
735 #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) argument
738 #define TAILQ_PREV(elm, headname, field) \ argument
739 (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
795 #define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) \ argument
800 #define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) \ argument
804 #define QUEUEDEBUG_TAILQ_OP(elm, field) \ argument
805 if ((elm)->field.tqe_next && \
806 (elm)->field.tqe_next->field.tqe_prev != \
807 &(elm)->field.tqe_next) \
808 panic("TAILQ_* forw %p %s:%d", (void *)(elm), \
810 if (*(elm)->field.tqe_prev != (elm)) \
811 panic("TAILQ_* back %p %s:%d", (void *)(elm), \
813 #define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) \ argument
814 if ((elm)->field.tqe_next == NULL && \
815 (head)->tqh_last != &(elm)->field.tqe_next) \
817 (void *)(head), (void *)(elm), __FILE__, __LINE__);
818 #define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) \ argument
819 (elm)->field.tqe_next = (void *)1L; \
820 (elm)->field.tqe_prev = (void *)1L;
822 #define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) argument
823 #define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) argument
824 #define QUEUEDEBUG_TAILQ_OP(elm, field) argument
825 #define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) argument
826 #define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) argument
835 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
836 QUEUEDEBUG_TAILQ_INSERT_HEAD((head), (elm), field) \
837 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
839 &TAILQ_NEXT((elm), field); \
841 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
842 TAILQ_FIRST((head)) = (elm); \
843 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
847 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
848 QUEUEDEBUG_TAILQ_INSERT_TAIL((head), (elm), field) \
849 TAILQ_NEXT((elm), field) = NULL; \
850 (elm)->field.tqe_prev = (head)->tqh_last; \
851 *(head)->tqh_last = (elm); \
852 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
856 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
858 if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
859 TAILQ_NEXT((elm), field)->field.tqe_prev = \
860 &TAILQ_NEXT((elm), field); \
862 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
863 TAILQ_NEXT((listelm), field) = (elm); \
864 (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \
868 #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ argument
870 (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
871 TAILQ_NEXT((elm), field) = (listelm); \
872 *(listelm)->field.tqe_prev = (elm); \
873 (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \
877 #define TAILQ_REMOVE(head, elm, field) do { \ argument
878 QUEUEDEBUG_TAILQ_PREREMOVE((head), (elm), field) \
879 QUEUEDEBUG_TAILQ_OP((elm), field) \
880 if ((TAILQ_NEXT((elm), field)) != NULL) \
881 TAILQ_NEXT((elm), field)->field.tqe_prev = \
882 (elm)->field.tqe_prev; \
884 (head)->tqh_last = (elm)->field.tqe_prev; \
885 *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \
886 QUEUEDEBUG_TAILQ_POSTREMOVE((elm), field); \
934 #define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) argument
935 #define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) argument
937 #define CIRCLEQ_LOOP_NEXT(head, elm, field) \ argument
938 (((elm)->field.cqe_next == (void *)(head)) \
940 : (elm->field.cqe_next))
941 #define CIRCLEQ_LOOP_PREV(head, elm, field) \ argument
942 (((elm)->field.cqe_prev == (void *)(head)) \
944 : (elm->field.cqe_prev))
965 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
966 (elm)->field.cqe_next = (listelm)->field.cqe_next; \
967 (elm)->field.cqe_prev = (listelm); \
969 (head)->cqh_last = (elm); \
971 (listelm)->field.cqe_next->field.cqe_prev = (elm); \
972 (listelm)->field.cqe_next = (elm); \
976 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ argument
977 (elm)->field.cqe_next = (listelm); \
978 (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
980 (head)->cqh_first = (elm); \
982 (listelm)->field.cqe_prev->field.cqe_next = (elm); \
983 (listelm)->field.cqe_prev = (elm); \
987 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ argument
988 (elm)->field.cqe_next = (head)->cqh_first; \
989 (elm)->field.cqe_prev = (void *)(head); \
991 (head)->cqh_last = (elm); \
993 (head)->cqh_first->field.cqe_prev = (elm); \
994 (head)->cqh_first = (elm); \
998 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
999 (elm)->field.cqe_next = (void *)(head); \
1000 (elm)->field.cqe_prev = (head)->cqh_last; \
1002 (head)->cqh_first = (elm); \
1004 (head)->cqh_last->field.cqe_next = (elm); \
1005 (head)->cqh_last = (elm); \
1009 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
1010 if ((elm)->field.cqe_next == (void *)(head)) \
1011 (head)->cqh_last = (elm)->field.cqe_prev; \
1013 (elm)->field.cqe_next->field.cqe_prev = \
1014 (elm)->field.cqe_prev; \
1015 if ((elm)->field.cqe_prev == (void *)(head)) \
1016 (head)->cqh_first = (elm)->field.cqe_next; \
1018 (elm)->field.cqe_prev->field.cqe_next = \
1019 (elm)->field.cqe_next; \