Lines Matching refs:field

125 #define	SLIST_NEXT(elm, field)	((elm)->field.sle_next)  argument
127 #define SLIST_FOREACH(var, head, field) \ argument
130 (var) = (var)->field.sle_next)
132 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
135 ((tvar) = SLIST_NEXT((var), field), 1); \
145 #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ argument
146 (elm)->field.sle_next = (slistelm)->field.sle_next; \
147 (slistelm)->field.sle_next = (elm); \
150 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
151 (elm)->field.sle_next = (head)->slh_first; \
155 #define SLIST_REMOVE_AFTER(slistelm, field) do { \ argument
156 (slistelm)->field.sle_next = \
157 SLIST_NEXT(SLIST_NEXT((slistelm), field), field); \
160 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
161 (head)->slh_first = (head)->slh_first->field.sle_next; \
164 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
166 SLIST_REMOVE_HEAD((head), field); \
170 while(curelm->field.sle_next != (elm)) \
171 curelm = curelm->field.sle_next; \
172 curelm->field.sle_next = \
173 curelm->field.sle_next->field.sle_next; \
201 #define LIST_NEXT(elm, field) ((elm)->field.le_next) argument
203 #define LIST_FOREACH(var, head, field) \ argument
206 (var) = ((var)->field.le_next))
208 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
211 ((tvar) = LIST_NEXT((var), field), 1); \
226 #define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field) \ argument
228 (head)->lh_first->field.le_prev != &(head)->lh_first) \
231 #define QUEUEDEBUG_LIST_OP(elm, field) \ argument
232 if ((elm)->field.le_next && \
233 (elm)->field.le_next->field.le_prev != \
234 &(elm)->field.le_next) \
237 if (*(elm)->field.le_prev != (elm)) \
240 #define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) \ argument
241 (elm)->field.le_next = (void *)1L; \
242 (elm)->field.le_prev = (void *)1L;
244 #define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field) argument
245 #define QUEUEDEBUG_LIST_OP(elm, field) argument
246 #define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) argument
253 #define LIST_INSERT_AFTER(listelm, elm, field) do { \ argument
254 QUEUEDEBUG_LIST_OP((listelm), field) \
255 if (((elm)->field.le_next = (listelm)->field.le_next) != \
257 (listelm)->field.le_next->field.le_prev = \
258 &(elm)->field.le_next; \
259 (listelm)->field.le_next = (elm); \
260 (elm)->field.le_prev = &(listelm)->field.le_next; \
263 #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ argument
264 QUEUEDEBUG_LIST_OP((listelm), field) \
265 (elm)->field.le_prev = (listelm)->field.le_prev; \
266 (elm)->field.le_next = (listelm); \
267 *(listelm)->field.le_prev = (elm); \
268 (listelm)->field.le_prev = &(elm)->field.le_next; \
271 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
272 QUEUEDEBUG_LIST_INSERT_HEAD((head), (elm), field) \
273 if (((elm)->field.le_next = (head)->lh_first) != LIST_END(head))\
274 (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
276 (elm)->field.le_prev = &(head)->lh_first; \
279 #define LIST_REMOVE(elm, field) do { \ argument
280 QUEUEDEBUG_LIST_OP((elm), field) \
281 if ((elm)->field.le_next != NULL) \
282 (elm)->field.le_next->field.le_prev = \
283 (elm)->field.le_prev; \
284 *(elm)->field.le_prev = (elm)->field.le_next; \
285 QUEUEDEBUG_LIST_POSTREMOVE((elm), field) \
288 #define LIST_REPLACE(elm, elm2, field) do { \ argument
289 if (((elm2)->field.le_next = (elm)->field.le_next) != NULL) \
290 (elm2)->field.le_next->field.le_prev = \
291 &(elm2)->field.le_next; \
292 (elm2)->field.le_prev = (elm)->field.le_prev; \
293 *(elm2)->field.le_prev = (elm2); \
294 QUEUEDEBUG_LIST_POSTREMOVE((elm), field) \
320 #define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) argument
322 #define SIMPLEQ_FOREACH(var, head, field) \ argument
325 (var) = ((var)->field.sqe_next))
327 #define SIMPLEQ_FOREACH_SAFE(var, head, field, next) \ argument
330 ((next = ((var)->field.sqe_next)), 1); \
341 #define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ argument
342 if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
343 (head)->sqh_last = &(elm)->field.sqe_next; \
347 #define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ argument
348 (elm)->field.sqe_next = NULL; \
350 (head)->sqh_last = &(elm)->field.sqe_next; \
353 #define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
354 if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
355 (head)->sqh_last = &(elm)->field.sqe_next; \
356 (listelm)->field.sqe_next = (elm); \
359 #define SIMPLEQ_REMOVE_HEAD(head, field) do { \ argument
360 if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
364 #define SIMPLEQ_REMOVE_AFTER(head, elm, field) do { \ argument
365 if (((elm)->field.sqe_next = (elm)->field.sqe_next->field.sqe_next) \
367 (head)->sqh_last = &(elm)->field.sqe_next; \
370 #define SIMPLEQ_REMOVE(head, elm, type, field) do { \ argument
372 SIMPLEQ_REMOVE_HEAD((head), field); \
375 while (curelm->field.sqe_next != (elm)) \
376 curelm = curelm->field.sqe_next; \
377 if ((curelm->field.sqe_next = \
378 curelm->field.sqe_next->field.sqe_next) == NULL) \
379 (head)->sqh_last = &(curelm)->field.sqe_next; \
391 #define SIMPLEQ_LAST(head, type, field) \ argument
395 ((char *)((head)->sqh_last) - offsetof(struct type, field))))
422 #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) argument
425 #define TAILQ_PREV(elm, headname, field) \ argument
426 (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
430 #define TAILQ_FOREACH(var, head, field) \ argument
433 (var) = ((var)->field.tqe_next))
435 #define TAILQ_FOREACH_SAFE(var, head, field, next) \ argument
438 ((next) = TAILQ_NEXT(var, field), 1); (var) = (next))
440 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
443 (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
445 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, prev) \ argument
448 ((prev) = TAILQ_PREV((var), headname, field), 1); (var) = (prev))
454 #define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) \ argument
456 (head)->tqh_first->field.tqe_prev != &(head)->tqh_first) \
459 #define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) \ argument
463 #define QUEUEDEBUG_TAILQ_OP(elm, field) \ argument
464 if ((elm)->field.tqe_next && \
465 (elm)->field.tqe_next->field.tqe_prev != \
466 &(elm)->field.tqe_next) \
469 if (*(elm)->field.tqe_prev != (elm)) \
472 #define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) \ argument
473 if ((elm)->field.tqe_next == NULL && \
474 (head)->tqh_last != &(elm)->field.tqe_next) \
477 #define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) \ argument
478 (elm)->field.tqe_next = (void *)1L; \
479 (elm)->field.tqe_prev = (void *)1L;
481 #define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) argument
482 #define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) argument
483 #define QUEUEDEBUG_TAILQ_OP(elm, field) argument
484 #define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) argument
485 #define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) argument
493 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
494 QUEUEDEBUG_TAILQ_INSERT_HEAD((head), (elm), field) \
495 if (((elm)->field.tqe_next = (head)->tqh_first) != TAILQ_END(head))\
496 (head)->tqh_first->field.tqe_prev = \
497 &(elm)->field.tqe_next; \
499 (head)->tqh_last = &(elm)->field.tqe_next; \
501 (elm)->field.tqe_prev = &(head)->tqh_first; \
504 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
505 QUEUEDEBUG_TAILQ_INSERT_TAIL((head), (elm), field) \
506 (elm)->field.tqe_next = TAILQ_END(head); \
507 (elm)->field.tqe_prev = (head)->tqh_last; \
509 (head)->tqh_last = &(elm)->field.tqe_next; \
512 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
513 QUEUEDEBUG_TAILQ_OP((listelm), field) \
514 if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != \
516 (elm)->field.tqe_next->field.tqe_prev = \
517 &(elm)->field.tqe_next; \
519 (head)->tqh_last = &(elm)->field.tqe_next; \
520 (listelm)->field.tqe_next = (elm); \
521 (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
524 #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ argument
525 QUEUEDEBUG_TAILQ_OP((listelm), field) \
526 (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
527 (elm)->field.tqe_next = (listelm); \
528 *(listelm)->field.tqe_prev = (elm); \
529 (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
532 #define TAILQ_REMOVE(head, elm, field) do { \ argument
533 QUEUEDEBUG_TAILQ_PREREMOVE((head), (elm), field) \
534 QUEUEDEBUG_TAILQ_OP((elm), field) \
535 if (((elm)->field.tqe_next) != TAILQ_END(head)) \
536 (elm)->field.tqe_next->field.tqe_prev = \
537 (elm)->field.tqe_prev; \
539 (head)->tqh_last = (elm)->field.tqe_prev; \
540 *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
541 QUEUEDEBUG_TAILQ_POSTREMOVE((elm), field); \
544 #define TAILQ_REPLACE(head, elm, elm2, field) do { \ argument
545 if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != \
547 (elm2)->field.tqe_next->field.tqe_prev = \
548 &(elm2)->field.tqe_next; \
550 (head)->tqh_last = &(elm2)->field.tqe_next; \
551 (elm2)->field.tqe_prev = (elm)->field.tqe_prev; \
552 *(elm2)->field.tqe_prev = (elm2); \
553 QUEUEDEBUG_TAILQ_POSTREMOVE((elm), field); \
556 #define TAILQ_CONCAT(head1, head2, field) do { \ argument
559 (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
587 #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) argument
598 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
599 if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \
600 (head)->stqh_last = &(elm)->field.stqe_next; \
604 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
605 (elm)->field.stqe_next = NULL; \
607 (head)->stqh_last = &(elm)->field.stqe_next; \
610 #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
611 if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
612 (head)->stqh_last = &(elm)->field.stqe_next; \
613 (listelm)->field.stqe_next = (elm); \
616 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
617 if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
621 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
623 STAILQ_REMOVE_HEAD((head), field); \
626 while (curelm->field.stqe_next != (elm)) \
627 curelm = curelm->field.stqe_next; \
628 if ((curelm->field.stqe_next = \
629 curelm->field.stqe_next->field.stqe_next) == NULL) \
630 (head)->stqh_last = &(curelm)->field.stqe_next; \
634 #define STAILQ_FOREACH(var, head, field) \ argument
637 (var) = ((var)->field.stqe_next))
639 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
641 (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
652 #define STAILQ_LAST(head, type, field) \ argument
656 ((char *)((head)->stqh_last) - offsetof(struct type, field))))
690 #define QUEUEDEBUG_CIRCLEQ_HEAD(head, field) \ argument
692 (head)->cqh_first->field.cqe_prev != CIRCLEQ_ENDC(head)) \
696 (head)->cqh_last->field.cqe_next != CIRCLEQ_ENDC(head)) \
699 #define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field) \ argument
700 if ((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) { \
705 if ((elm)->field.cqe_next->field.cqe_prev != (elm)) \
709 if ((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) { \
714 if ((elm)->field.cqe_prev->field.cqe_next != (elm)) \
718 #define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field) \ argument
719 (elm)->field.cqe_next = (void *)1L; \
720 (elm)->field.cqe_prev = (void *)1L;
722 #define QUEUEDEBUG_CIRCLEQ_HEAD(head, field) argument
723 #define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field) argument
724 #define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field) argument
750 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
751 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
752 QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field) \
753 (elm)->field.cqe_next = (listelm)->field.cqe_next; \
754 (elm)->field.cqe_prev = (listelm); \
755 if ((listelm)->field.cqe_next == CIRCLEQ_ENDC(head)) \
758 (listelm)->field.cqe_next->field.cqe_prev = (elm); \
759 (listelm)->field.cqe_next = (elm); \
762 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ argument
763 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
764 QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field) \
765 (elm)->field.cqe_next = (listelm); \
766 (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
767 if ((listelm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \
770 (listelm)->field.cqe_prev->field.cqe_next = (elm); \
771 (listelm)->field.cqe_prev = (elm); \
774 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ argument
775 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
776 (elm)->field.cqe_next = (head)->cqh_first; \
777 (elm)->field.cqe_prev = CIRCLEQ_END(head); \
781 (head)->cqh_first->field.cqe_prev = (elm); \
785 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
786 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
787 (elm)->field.cqe_next = CIRCLEQ_END(head); \
788 (elm)->field.cqe_prev = (head)->cqh_last; \
792 (head)->cqh_last->field.cqe_next = (elm); \
796 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
797 QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
798 QUEUEDEBUG_CIRCLEQ_ELM((head), (elm), field) \
799 if ((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) \
800 (head)->cqh_last = (elm)->field.cqe_prev; \
802 (elm)->field.cqe_next->field.cqe_prev = \
803 (elm)->field.cqe_prev; \
804 if ((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \
805 (head)->cqh_first = (elm)->field.cqe_next; \
807 (elm)->field.cqe_prev->field.cqe_next = \
808 (elm)->field.cqe_next; \
809 QUEUEDEBUG_CIRCLEQ_POSTREMOVE((elm), field) \
812 #define CIRCLEQ_FOREACH(var, head, field) \ argument
815 (var) = ((var)->field.cqe_next))
817 #define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ argument
820 (var) = ((var)->field.cqe_prev))
831 #define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) argument
832 #define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) argument
836 #define CIRCLEQ_LOOP_NEXT(head, elm, field) \ argument
837 (((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) \
839 : (elm->field.cqe_next))
840 #define CIRCLEQ_LOOP_PREV(head, elm, field) \ argument
841 (((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \
843 : (elm->field.cqe_prev))