Lines Matching refs:elm

218 #define	SLIST_INSERT_AFTER(slistelm, elm, field) do {			\
219 SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \
220 SLIST_NEXT((slistelm), field) = (elm); \
223 #define SLIST_INSERT_HEAD(head, elm, field) do { \
224 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
225 SLIST_FIRST((head)) = (elm); \
228 #define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
230 #define SLIST_REMOVE(head, elm, type, field) do { \
231 if (SLIST_FIRST((head)) == (elm)) { \
236 while (SLIST_NEXT(curelm, field) != (elm)) \
240 TRASHIT((elm)->field.sle_next); \
243 #define SLIST_REMOVE_AFTER(elm, field) do { \
244 SLIST_NEXT(elm, field) = \
245 SLIST_NEXT(SLIST_NEXT(elm, field), field); \
300 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \
301 if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
302 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
303 STAILQ_NEXT((tqelm), field) = (elm); \
306 #define STAILQ_INSERT_HEAD(head, elm, field) do { \
307 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
308 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
309 STAILQ_FIRST((head)) = (elm); \
312 #define STAILQ_INSERT_TAIL(head, elm, field) do { \
313 STAILQ_NEXT((elm), field) = NULL; \
314 *(head)->stqh_last = (elm); \
315 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
324 #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
326 #define STAILQ_REMOVE(head, elm, type, field) do { \
327 if (STAILQ_FIRST((head)) == (elm)) { \
332 while (STAILQ_NEXT(curelm, field) != (elm)) \
336 TRASHIT((elm)->field.stqe_next); \
345 #define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \
346 if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \
350 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \
351 if ((STAILQ_NEXT(elm, field) = \
352 STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \
353 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
399 #define QMD_LIST_CHECK_NEXT(elm, field) do { \
400 if (LIST_NEXT((elm), field) != NULL && \
401 LIST_NEXT((elm), field)->field.le_prev != \
402 &((elm)->field.le_next)) \
403 panic("Bad link elm %p next->prev != elm", (elm)); \
406 #define QMD_LIST_CHECK_PREV(elm, field) do { \
407 if (*(elm)->field.le_prev != (elm)) \
408 panic("Bad link elm %p prev->next != elm", (elm)); \
412 #define QMD_LIST_CHECK_NEXT(elm, field)
413 #define QMD_LIST_CHECK_PREV(elm, field)
434 #define LIST_INSERT_AFTER(listelm, elm, field) do { \
436 if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
438 &LIST_NEXT((elm), field); \
439 LIST_NEXT((listelm), field) = (elm); \
440 (elm)->field.le_prev = &LIST_NEXT((listelm), field); \
443 #define LIST_INSERT_BEFORE(listelm, elm, field) do { \
445 (elm)->field.le_prev = (listelm)->field.le_prev; \
446 LIST_NEXT((elm), field) = (listelm); \
447 *(listelm)->field.le_prev = (elm); \
448 (listelm)->field.le_prev = &LIST_NEXT((elm), field); \
451 #define LIST_INSERT_HEAD(head, elm, field) do { \
453 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
454 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
455 LIST_FIRST((head)) = (elm); \
456 (elm)->field.le_prev = &LIST_FIRST((head)); \
459 #define LIST_NEXT(elm, field) ((elm)->field.le_next)
461 #define LIST_REMOVE(elm, field) do { \
462 QMD_LIST_CHECK_NEXT(elm, field); \
463 QMD_LIST_CHECK_PREV(elm, field); \
464 if (LIST_NEXT((elm), field) != NULL) \
465 LIST_NEXT((elm), field)->field.le_prev = \
466 (elm)->field.le_prev; \
467 *(elm)->field.le_prev = LIST_NEXT((elm), field); \
468 TRASHIT((elm)->field.le_next); \
469 TRASHIT((elm)->field.le_prev); \
546 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
547 if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
548 TAILQ_NEXT((elm), field)->field.tqe_prev = \
549 &TAILQ_NEXT((elm), field); \
551 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
554 TAILQ_NEXT((listelm), field) = (elm); \
555 (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \
556 QMD_TRACE_ELEM(&(elm)->field); \
560 #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
561 (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
562 TAILQ_NEXT((elm), field) = (listelm); \
563 *(listelm)->field.tqe_prev = (elm); \
564 (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \
565 QMD_TRACE_ELEM(&(elm)->field); \
569 #define TAILQ_INSERT_HEAD(head, elm, field) do { \
570 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
572 &TAILQ_NEXT((elm), field); \
574 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
575 TAILQ_FIRST((head)) = (elm); \
576 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
578 QMD_TRACE_ELEM(&(elm)->field); \
581 #define TAILQ_INSERT_TAIL(head, elm, field) do { \
582 TAILQ_NEXT((elm), field) = NULL; \
583 (elm)->field.tqe_prev = (head)->tqh_last; \
584 *(head)->tqh_last = (elm); \
585 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
587 QMD_TRACE_ELEM(&(elm)->field); \
593 #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
595 #define TAILQ_PREV(elm, headname, field) \
596 (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
598 #define TAILQ_REMOVE(head, elm, field) do { \
599 if ((TAILQ_NEXT((elm), field)) != NULL) \
600 TAILQ_NEXT((elm), field)->field.tqe_prev = \
601 (elm)->field.tqe_prev; \
603 (head)->tqh_last = (elm)->field.tqe_prev; \
606 *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \
607 TRASHIT((elm)->field.tqe_next); \
608 TRASHIT((elm)->field.tqe_prev); \
609 QMD_TRACE_ELEM(&(elm)->field); \
661 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
662 (elm)->field.cqe_next = (listelm)->field.cqe_next; \
663 (elm)->field.cqe_prev = (listelm); \
665 (head)->cqh_last = (elm); \
667 (listelm)->field.cqe_next->field.cqe_prev = (elm); \
668 (listelm)->field.cqe_next = (elm); \
671 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \
672 (elm)->field.cqe_next = (listelm); \
673 (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
675 (head)->cqh_first = (elm); \
677 (listelm)->field.cqe_prev->field.cqe_next = (elm); \
678 (listelm)->field.cqe_prev = (elm); \
681 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \
682 (elm)->field.cqe_next = (head)->cqh_first; \
683 (elm)->field.cqe_prev = (void *)(head); \
685 (head)->cqh_last = (elm); \
687 (head)->cqh_first->field.cqe_prev = (elm); \
688 (head)->cqh_first = (elm); \
691 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \
692 (elm)->field.cqe_next = (void *)(head); \
693 (elm)->field.cqe_prev = (head)->cqh_last; \
695 (head)->cqh_first = (elm); \
697 (head)->cqh_last->field.cqe_next = (elm); \
698 (head)->cqh_last = (elm); \
703 #define CIRCLEQ_NEXT(elm,field) ((elm)->field.cqe_next)
705 #define CIRCLEQ_PREV(elm,field) ((elm)->field.cqe_prev)
707 #define CIRCLEQ_REMOVE(head, elm, field) do { \
708 if ((elm)->field.cqe_next == (void *)(head)) \
709 (head)->cqh_last = (elm)->field.cqe_prev; \
711 (elm)->field.cqe_next->field.cqe_prev = \
712 (elm)->field.cqe_prev; \
713 if ((elm)->field.cqe_prev == (void *)(head)) \
714 (head)->cqh_first = (elm)->field.cqe_next; \
716 (elm)->field.cqe_prev->field.cqe_next = \
717 (elm)->field.cqe_next; \