Lines Matching refs:elm

107 #define	QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field)			\  argument
111 #define QUEUEDEBUG_LIST_OP(elm, field) \ argument
112 if ((elm)->field.le_next && \
113 (elm)->field.le_next->field.le_prev != \
114 &(elm)->field.le_next) \
115 panic("LIST_* forw %p %s:%d", (elm), __FILE__, __LINE__);\
116 if (*(elm)->field.le_prev != (elm)) \
117 panic("LIST_* back %p %s:%d", (elm), __FILE__, __LINE__);
118 #define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) \ argument
119 (elm)->field.le_next = (void *)1L; \
120 (elm)->field.le_prev = (void *)1L;
122 #define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field) argument
123 #define QUEUEDEBUG_LIST_OP(elm, field) argument
124 #define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) argument
131 #define LIST_INSERT_AFTER(listelm, elm, field) do { \ argument
133 if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \
135 &(elm)->field.le_next; \
136 (listelm)->field.le_next = (elm); \
137 (elm)->field.le_prev = &(listelm)->field.le_next; \
140 #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ argument
142 (elm)->field.le_prev = (listelm)->field.le_prev; \
143 (elm)->field.le_next = (listelm); \
144 *(listelm)->field.le_prev = (elm); \
145 (listelm)->field.le_prev = &(elm)->field.le_next; \
148 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
149 QUEUEDEBUG_LIST_INSERT_HEAD((head), (elm), field) \
150 if (((elm)->field.le_next = (head)->lh_first) != NULL) \
151 (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
152 (head)->lh_first = (elm); \
153 (elm)->field.le_prev = &(head)->lh_first; \
156 #define LIST_REMOVE(elm, field) do { \ argument
157 QUEUEDEBUG_LIST_OP((elm), field) \
158 if ((elm)->field.le_next != NULL) \
159 (elm)->field.le_next->field.le_prev = \
160 (elm)->field.le_prev; \
161 *(elm)->field.le_prev = (elm)->field.le_next; \
162 QUEUEDEBUG_LIST_POSTREMOVE((elm), field) \
175 #define LIST_NEXT(elm, field) ((elm)->field.le_next) argument
205 #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ argument
206 (elm)->field.sle_next = (slistelm)->field.sle_next; \
207 (slistelm)->field.sle_next = (elm); \
210 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
211 (elm)->field.sle_next = (head)->slh_first; \
212 (head)->slh_first = (elm); \
219 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
220 if ((head)->slh_first == (elm)) { \
225 while(curelm->field.sle_next != (elm)) \
250 #define SLIST_NEXT(elm, field) ((elm)->field.sle_next) argument
277 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
278 if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \
279 (head)->stqh_last = &(elm)->field.stqe_next; \
280 (head)->stqh_first = (elm); \
283 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
284 (elm)->field.stqe_next = NULL; \
285 *(head)->stqh_last = (elm); \
286 (head)->stqh_last = &(elm)->field.stqe_next; \
289 #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
290 if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
291 (head)->stqh_last = &(elm)->field.stqe_next; \
292 (listelm)->field.stqe_next = (elm); \
300 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
301 if ((head)->stqh_first == (elm)) { \
305 while (curelm->field.stqe_next != (elm)) \
313 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ argument
314 if ((STAILQ_NEXT(elm, field) = \
315 STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \
316 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
342 #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) argument
369 #define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ argument
370 if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
371 (head)->sqh_last = &(elm)->field.sqe_next; \
372 (head)->sqh_first = (elm); \
375 #define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ argument
376 (elm)->field.sqe_next = NULL; \
377 *(head)->sqh_last = (elm); \
378 (head)->sqh_last = &(elm)->field.sqe_next; \
381 #define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
382 if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
383 (head)->sqh_last = &(elm)->field.sqe_next; \
384 (listelm)->field.sqe_next = (elm); \
392 #define SIMPLEQ_REMOVE(head, elm, type, field) do { \ argument
393 if ((head)->sqh_first == (elm)) { \
397 while (curelm->field.sqe_next != (elm)) \
415 #define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) argument
441 #define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) \ argument
445 #define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) \ argument
448 #define QUEUEDEBUG_TAILQ_OP(elm, field) \ argument
449 if ((elm)->field.tqe_next && \
450 (elm)->field.tqe_next->field.tqe_prev != \
451 &(elm)->field.tqe_next) \
452 panic("TAILQ_* forw %p %s:%d", (elm), __FILE__, __LINE__);\
453 if (*(elm)->field.tqe_prev != (elm)) \
454 panic("TAILQ_* back %p %s:%d", (elm), __FILE__, __LINE__);
455 #define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) \ argument
456 if ((elm)->field.tqe_next == NULL && \
457 (head)->tqh_last != &(elm)->field.tqe_next) \
459 (head), (elm), __FILE__, __LINE__);
460 #define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) \ argument
461 (elm)->field.tqe_next = (void *)1L; \
462 (elm)->field.tqe_prev = (void *)1L;
464 #define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) argument
465 #define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) argument
466 #define QUEUEDEBUG_TAILQ_OP(elm, field) argument
467 #define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) argument
468 #define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) argument
476 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
477 QUEUEDEBUG_TAILQ_INSERT_HEAD((head), (elm), field) \
478 if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
480 &(elm)->field.tqe_next; \
482 (head)->tqh_last = &(elm)->field.tqe_next; \
483 (head)->tqh_first = (elm); \
484 (elm)->field.tqe_prev = &(head)->tqh_first; \
487 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
488 QUEUEDEBUG_TAILQ_INSERT_TAIL((head), (elm), field) \
489 (elm)->field.tqe_next = NULL; \
490 (elm)->field.tqe_prev = (head)->tqh_last; \
491 *(head)->tqh_last = (elm); \
492 (head)->tqh_last = &(elm)->field.tqe_next; \
495 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
497 if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
498 (elm)->field.tqe_next->field.tqe_prev = \
499 &(elm)->field.tqe_next; \
501 (head)->tqh_last = &(elm)->field.tqe_next; \
502 (listelm)->field.tqe_next = (elm); \
503 (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
506 #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ argument
508 (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
509 (elm)->field.tqe_next = (listelm); \
510 *(listelm)->field.tqe_prev = (elm); \
511 (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
514 #define TAILQ_REMOVE(head, elm, field) do { \ argument
515 QUEUEDEBUG_TAILQ_PREREMOVE((head), (elm), field) \
516 QUEUEDEBUG_TAILQ_OP((elm), field) \
517 if (((elm)->field.tqe_next) != NULL) \
518 (elm)->field.tqe_next->field.tqe_prev = \
519 (elm)->field.tqe_prev; \
521 (head)->tqh_last = (elm)->field.tqe_prev; \
522 *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
523 QUEUEDEBUG_TAILQ_POSTREMOVE((elm), field); \
560 #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) argument
564 #define TAILQ_PREV(elm, headname, field) \ argument
565 (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
580 #define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field) \ argument
581 if ((elm)->field.cqe_next == (void *)(head)) { \
582 if ((head)->cqh_last != (elm)) \
583 panic("CIRCLEQ elm last %p %s:%d", (elm), \
586 if ((elm)->field.cqe_next->field.cqe_prev != (elm)) \
587 panic("CIRCLEQ elm forw %p %s:%d", (elm), \
590 if ((elm)->field.cqe_prev == (void *)(head)) { \
591 if ((head)->cqh_first != (elm)) \
592 panic("CIRCLEQ elm first %p %s:%d", (elm), \
595 if ((elm)->field.cqe_prev->field.cqe_next != (elm)) \
596 panic("CIRCLEQ elm prev %p %s:%d", (elm), \
599 #define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field) \ argument
600 (elm)->field.cqe_next = (void *)1L; \
601 (elm)->field.cqe_prev = (void *)1L;
604 #define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field) argument
605 #define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field) argument
631 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
634 (elm)->field.cqe_next = (listelm)->field.cqe_next; \
635 (elm)->field.cqe_prev = (listelm); \
637 (head)->cqh_last = (elm); \
639 (listelm)->field.cqe_next->field.cqe_prev = (elm); \
640 (listelm)->field.cqe_next = (elm); \
643 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ argument
646 (elm)->field.cqe_next = (listelm); \
647 (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
649 (head)->cqh_first = (elm); \
651 (listelm)->field.cqe_prev->field.cqe_next = (elm); \
652 (listelm)->field.cqe_prev = (elm); \
655 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ argument
657 (elm)->field.cqe_next = (head)->cqh_first; \
658 (elm)->field.cqe_prev = (void *)(head); \
660 (head)->cqh_last = (elm); \
662 (head)->cqh_first->field.cqe_prev = (elm); \
663 (head)->cqh_first = (elm); \
666 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
668 (elm)->field.cqe_next = (void *)(head); \
669 (elm)->field.cqe_prev = (head)->cqh_last; \
671 (head)->cqh_first = (elm); \
673 (head)->cqh_last->field.cqe_next = (elm); \
674 (head)->cqh_last = (elm); \
677 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
679 QUEUEDEBUG_CIRCLEQ_ELM((head), (elm), field) \
680 if ((elm)->field.cqe_next == (void *)(head)) \
681 (head)->cqh_last = (elm)->field.cqe_prev; \
683 (elm)->field.cqe_next->field.cqe_prev = \
684 (elm)->field.cqe_prev; \
685 if ((elm)->field.cqe_prev == (void *)(head)) \
686 (head)->cqh_first = (elm)->field.cqe_next; \
688 (elm)->field.cqe_prev->field.cqe_next = \
689 (elm)->field.cqe_next; \
690 QUEUEDEBUG_CIRCLEQ_POSTREMOVE((elm), field) \
709 #define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) argument
710 #define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) argument
712 #define CIRCLEQ_LOOP_NEXT(head, elm, field) \ argument
713 (((elm)->field.cqe_next == (void *)(head)) \
715 : (elm->field.cqe_next))
716 #define CIRCLEQ_LOOP_PREV(head, elm, field) \ argument
717 (((elm)->field.cqe_prev == (void *)(head)) \
719 : (elm->field.cqe_prev))