Lines Matching refs:elm
176 #define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ argument
177 if (*(prevp) != (elm)) \
179 (prevp), *(prevp), (elm)); \
182 #define QMD_SLIST_CHECK_PREVPTR(prevp, elm) argument
231 #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ argument
232 SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \
233 SLIST_NEXT((slistelm), field) = (elm); \
236 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
237 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
238 SLIST_FIRST((head)) = (elm); \
241 #define SLIST_NEXT(elm, field) ((elm)->field.sle_next) argument
243 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
244 QMD_SAVELINK(oldnext, (elm)->field.sle_next); \
245 if (SLIST_FIRST((head)) == (elm)) { \
250 while (SLIST_NEXT(curelm, field) != (elm)) \
257 #define SLIST_REMOVE_AFTER(elm, field) do { \ argument
258 SLIST_NEXT(elm, field) = \
259 SLIST_NEXT(SLIST_NEXT(elm, field), field); \
266 #define SLIST_REMOVE_PREVPTR(prevp, elm, field) do { \ argument
267 QMD_SLIST_CHECK_PREVPTR(prevp, elm); \
268 *(prevp) = SLIST_NEXT(elm, field); \
269 TRASHIT((elm)->field.sle_next); \
346 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
347 if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
348 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
349 STAILQ_NEXT((tqelm), field) = (elm); \
352 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
353 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
354 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
355 STAILQ_FIRST((head)) = (elm); \
358 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
359 STAILQ_NEXT((elm), field) = NULL; \
360 *(head)->stqh_last = (elm); \
361 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
369 #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) argument
371 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
372 QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \
373 if (STAILQ_FIRST((head)) == (elm)) { \
378 while (STAILQ_NEXT(curelm, field) != (elm)) \
385 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ argument
386 if ((STAILQ_NEXT(elm, field) = \
387 STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \
388 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
463 #define QMD_LIST_CHECK_NEXT(elm, field) do { \ argument
464 if (LIST_NEXT((elm), field) != NULL && \
465 LIST_NEXT((elm), field)->field.le_prev != \
466 &((elm)->field.le_next)) \
467 panic("Bad link elm %p next->prev != elm", (elm)); \
475 #define QMD_LIST_CHECK_PREV(elm, field) do { \ argument
476 if (*(elm)->field.le_prev != (elm)) \
477 panic("Bad link elm %p prev->next != elm", (elm)); \
481 #define QMD_LIST_CHECK_NEXT(elm, field) argument
482 #define QMD_LIST_CHECK_PREV(elm, field) argument
530 #define LIST_INSERT_AFTER(listelm, elm, field) do { \ argument
532 if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
534 &LIST_NEXT((elm), field); \
535 LIST_NEXT((listelm), field) = (elm); \
536 (elm)->field.le_prev = &LIST_NEXT((listelm), field); \
539 #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ argument
541 (elm)->field.le_prev = (listelm)->field.le_prev; \
542 LIST_NEXT((elm), field) = (listelm); \
543 *(listelm)->field.le_prev = (elm); \
544 (listelm)->field.le_prev = &LIST_NEXT((elm), field); \
547 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
549 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
550 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
551 LIST_FIRST((head)) = (elm); \
552 (elm)->field.le_prev = &LIST_FIRST((head)); \
555 #define LIST_NEXT(elm, field) ((elm)->field.le_next) argument
557 #define LIST_PREV(elm, head, type, field) \ argument
558 ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \
559 __containerof((elm)->field.le_prev, \
562 #define LIST_REMOVE(elm, field) do { \ argument
563 QMD_SAVELINK(oldnext, (elm)->field.le_next); \
564 QMD_SAVELINK(oldprev, (elm)->field.le_prev); \
565 QMD_LIST_CHECK_NEXT(elm, field); \
566 QMD_LIST_CHECK_PREV(elm, field); \
567 if (LIST_NEXT((elm), field) != NULL) \
568 LIST_NEXT((elm), field)->field.le_prev = \
569 (elm)->field.le_prev; \
570 *(elm)->field.le_prev = LIST_NEXT((elm), field); \
652 #define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ argument
653 if (TAILQ_NEXT((elm), field) != NULL && \
654 TAILQ_NEXT((elm), field)->field.tqe_prev != \
655 &((elm)->field.tqe_next)) \
656 panic("Bad link elm %p next->prev != elm", (elm)); \
664 #define QMD_TAILQ_CHECK_PREV(elm, field) do { \ argument
665 if (*(elm)->field.tqe_prev != (elm)) \
666 panic("Bad link elm %p prev->next != elm", (elm)); \
671 #define QMD_TAILQ_CHECK_NEXT(elm, field) argument
672 #define QMD_TAILQ_CHECK_PREV(elm, field) argument
736 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
738 if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
739 TAILQ_NEXT((elm), field)->field.tqe_prev = \
740 &TAILQ_NEXT((elm), field); \
742 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
745 TAILQ_NEXT((listelm), field) = (elm); \
746 (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \
747 QMD_TRACE_ELEM(&(elm)->field); \
751 #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ argument
753 (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
754 TAILQ_NEXT((elm), field) = (listelm); \
755 *(listelm)->field.tqe_prev = (elm); \
756 (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \
757 QMD_TRACE_ELEM(&(elm)->field); \
761 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
763 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
765 &TAILQ_NEXT((elm), field); \
767 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
768 TAILQ_FIRST((head)) = (elm); \
769 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
771 QMD_TRACE_ELEM(&(elm)->field); \
774 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
776 TAILQ_NEXT((elm), field) = NULL; \
777 (elm)->field.tqe_prev = (head)->tqh_last; \
778 *(head)->tqh_last = (elm); \
779 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
781 QMD_TRACE_ELEM(&(elm)->field); \
797 #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) argument
799 #define TAILQ_PREV(elm, headname, field) \ argument
800 (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
802 #define TAILQ_PREV_FAST(elm, head, type, field) \ argument
803 ((elm)->field.tqe_prev == &(head)->tqh_first ? NULL : \
804 __containerof((elm)->field.tqe_prev, QUEUE_TYPEOF(type), field.tqe_next))
806 #define TAILQ_REMOVE(head, elm, field) do { \ argument
807 QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \
808 QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \
809 QMD_TAILQ_CHECK_NEXT(elm, field); \
810 QMD_TAILQ_CHECK_PREV(elm, field); \
811 if ((TAILQ_NEXT((elm), field)) != NULL) \
812 TAILQ_NEXT((elm), field)->field.tqe_prev = \
813 (elm)->field.tqe_prev; \
815 (head)->tqh_last = (elm)->field.tqe_prev; \
818 *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \
821 QMD_TRACE_ELEM(&(elm)->field); \