Lines Matching refs:field

107 #define	QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field)			\  argument
109 (head)->lh_first->field.le_prev != &(head)->lh_first) \
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) \
116 if (*(elm)->field.le_prev != (elm)) \
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
132 QUEUEDEBUG_LIST_OP((listelm), field) \
133 if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \
134 (listelm)->field.le_next->field.le_prev = \
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
141 QUEUEDEBUG_LIST_OP((listelm), field) \
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;\
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) \
165 #define LIST_FOREACH(var, head, field) \ argument
168 (var) = ((var)->field.le_next))
175 #define LIST_NEXT(elm, field) ((elm)->field.le_next) argument
177 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
179 (var) && ((tvar) = LIST_NEXT((var), field), 1); \
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; \
215 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
216 (head)->slh_first = (head)->slh_first->field.sle_next; \
219 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
221 SLIST_REMOVE_HEAD((head), field); \
225 while(curelm->field.sle_next != (elm)) \
226 curelm = curelm->field.sle_next; \
227 curelm->field.sle_next = \
228 curelm->field.sle_next->field.sle_next; \
232 #define SLIST_REMOVE_AFTER(slistelm, field) do { \ argument
233 (slistelm)->field.sle_next = \
234 SLIST_NEXT(SLIST_NEXT((slistelm), field), field); \
237 #define SLIST_FOREACH(var, head, field) \ argument
238 for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
240 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
242 (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
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; \
283 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
284 (elm)->field.stqe_next = NULL; \
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); \
295 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
296 if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
300 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
302 STAILQ_REMOVE_HEAD((head), field); \
305 while (curelm->field.stqe_next != (elm)) \
306 curelm = curelm->field.stqe_next; \
307 if ((curelm->field.stqe_next = \
308 curelm->field.stqe_next->field.stqe_next) == NULL) \
309 (head)->stqh_last = &(curelm)->field.stqe_next; \
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); \
319 #define STAILQ_FOREACH(var, head, field) \ argument
322 (var) = ((var)->field.stqe_next))
324 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
326 (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
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; \
375 #define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ argument
376 (elm)->field.sqe_next = NULL; \
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); \
387 #define SIMPLEQ_REMOVE_HEAD(head, field) do { \ argument
388 if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
392 #define SIMPLEQ_REMOVE(head, elm, type, field) do { \ argument
394 SIMPLEQ_REMOVE_HEAD((head), field); \
397 while (curelm->field.sqe_next != (elm)) \
398 curelm = curelm->field.sqe_next; \
399 if ((curelm->field.sqe_next = \
400 curelm->field.sqe_next->field.sqe_next) == NULL) \
401 (head)->sqh_last = &(curelm)->field.sqe_next; \
405 #define SIMPLEQ_FOREACH(var, head, field) \ argument
408 (var) = ((var)->field.sqe_next))
415 #define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) argument
441 #define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) \ argument
443 (head)->tqh_first->field.tqe_prev != &(head)->tqh_first) \
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) \
453 if (*(elm)->field.tqe_prev != (elm)) \
455 #define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) \ argument
456 if ((elm)->field.tqe_next == NULL && \
457 (head)->tqh_last != &(elm)->field.tqe_next) \
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) \
479 (head)->tqh_first->field.tqe_prev = \
480 &(elm)->field.tqe_next; \
482 (head)->tqh_last = &(elm)->field.tqe_next; \
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; \
492 (head)->tqh_last = &(elm)->field.tqe_next; \
495 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
496 QUEUEDEBUG_TAILQ_OP((listelm), field) \
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
507 QUEUEDEBUG_TAILQ_OP((listelm), field) \
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); \
526 #define TAILQ_FOREACH(var, head, field) \ argument
529 (var) = ((var)->field.tqe_next))
531 #define TAILQ_FOREACH_SAFE(var, head, field, next) \ argument
533 (var) != NULL && ((next) = TAILQ_NEXT(var, field), 1); \
536 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
539 (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
541 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, prev) \ argument
543 (var) && ((prev) = TAILQ_PREV((var), headname, field), 1);\
546 #define TAILQ_CONCAT(head1, head2, field) do { \ argument
549 (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
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))
571 #define QUEUEDEBUG_CIRCLEQ_HEAD(head, field) \ argument
573 (head)->cqh_first->field.cqe_prev != (void *)(head)) \
577 (head)->cqh_last->field.cqe_next != (void *)(head)) \
580 #define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field) \ argument
581 if ((elm)->field.cqe_next == (void *)(head)) { \
586 if ((elm)->field.cqe_next->field.cqe_prev != (elm)) \
590 if ((elm)->field.cqe_prev == (void *)(head)) { \
595 if ((elm)->field.cqe_prev->field.cqe_next != (elm)) \
599 #define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field) \ argument
600 (elm)->field.cqe_next = (void *)1L; \
601 (elm)->field.cqe_prev = (void *)1L;
603 #define QUEUEDEBUG_CIRCLEQ_HEAD(head, field) argument
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
632 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
633 QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field) \
634 (elm)->field.cqe_next = (listelm)->field.cqe_next; \
635 (elm)->field.cqe_prev = (listelm); \
636 if ((listelm)->field.cqe_next == (void *)(head)) \
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
644 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
645 QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field) \
646 (elm)->field.cqe_next = (listelm); \
647 (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
648 if ((listelm)->field.cqe_prev == (void *)(head)) \
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
656 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
657 (elm)->field.cqe_next = (head)->cqh_first; \
658 (elm)->field.cqe_prev = (void *)(head); \
662 (head)->cqh_first->field.cqe_prev = (elm); \
666 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
667 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
668 (elm)->field.cqe_next = (void *)(head); \
669 (elm)->field.cqe_prev = (head)->cqh_last; \
673 (head)->cqh_last->field.cqe_next = (elm); \
677 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
678 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
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) \
693 #define CIRCLEQ_FOREACH(var, head, field) \ argument
696 (var) = ((var)->field.cqe_next))
698 #define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ argument
701 (var) = ((var)->field.cqe_prev))
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))