Lines Matching refs:field
165 #define SLIST_FOREACH(var, head, field) \ argument
168 (var) = SLIST_NEXT((var), field))
170 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
172 (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
175 #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ argument
178 (varp) = &SLIST_NEXT((var), field))
184 #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ argument
185 SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \
186 SLIST_NEXT((slistelm), field) = (elm); \
189 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
190 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
194 #define SLIST_NEXT(elm, field) ((elm)->field.sle_next) argument
196 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
197 QMD_SAVELINK(oldnext, (elm)->field.sle_next); \
199 SLIST_REMOVE_HEAD((head), field); \
203 while (SLIST_NEXT(curelm, field) != (elm)) \
204 curelm = SLIST_NEXT(curelm, field); \
205 SLIST_REMOVE_AFTER(curelm, field); \
210 #define SLIST_REMOVE_AFTER(elm, field) do { \ argument
211 SLIST_NEXT(elm, field) = \
212 SLIST_NEXT(SLIST_NEXT(elm, field), field); \
215 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
216 SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
257 #define STAILQ_FOREACH(var, head, field) \ argument
260 (var) = STAILQ_NEXT((var), field))
263 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
265 (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
273 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
274 if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
275 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
276 STAILQ_NEXT((tqelm), field) = (elm); \
279 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
280 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
281 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
285 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
286 STAILQ_NEXT((elm), field) = NULL; \
288 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
291 #define STAILQ_LAST(head, type, field) \ argument
295 ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
297 #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) argument
299 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
300 QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \
302 STAILQ_REMOVE_HEAD((head), field); \
306 while (STAILQ_NEXT(curelm, field) != (elm)) \
307 curelm = STAILQ_NEXT(curelm, field); \
308 STAILQ_REMOVE_AFTER(head, curelm, field); \
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_REMOVE_HEAD(head, field) do { \ argument
321 STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
361 #define QMD_LIST_CHECK_HEAD(head, field) do { \ argument
363 LIST_FIRST((head))->field.le_prev != \
368 #define QMD_LIST_CHECK_NEXT(elm, field) do { \ argument
369 if (LIST_NEXT((elm), field) != NULL && \
370 LIST_NEXT((elm), field)->field.le_prev != \
371 &((elm)->field.le_next)) \
375 #define QMD_LIST_CHECK_PREV(elm, field) do { \ argument
376 if (*(elm)->field.le_prev != (elm)) \
380 #define QMD_LIST_CHECK_HEAD(head, field) argument
381 #define QMD_LIST_CHECK_NEXT(elm, field) argument
382 #define QMD_LIST_CHECK_PREV(elm, field) argument
389 #define LIST_FOREACH(var, head, field) \ argument
392 (var) = LIST_NEXT((var), field))
394 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
396 (var) && ((tvar) = LIST_NEXT((var), field), 1); \
403 #define LIST_INSERT_AFTER(listelm, elm, field) do { \ argument
404 QMD_LIST_CHECK_NEXT(listelm, field); \
405 if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
406 LIST_NEXT((listelm), field)->field.le_prev = \
407 &LIST_NEXT((elm), field); \
408 LIST_NEXT((listelm), field) = (elm); \
409 (elm)->field.le_prev = &LIST_NEXT((listelm), field); \
412 #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ argument
413 QMD_LIST_CHECK_PREV(listelm, field); \
414 (elm)->field.le_prev = (listelm)->field.le_prev; \
415 LIST_NEXT((elm), field) = (listelm); \
416 *(listelm)->field.le_prev = (elm); \
417 (listelm)->field.le_prev = &LIST_NEXT((elm), field); \
420 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
421 QMD_LIST_CHECK_HEAD((head), field); \
422 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
423 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
425 (elm)->field.le_prev = &LIST_FIRST((head)); \
428 #define LIST_NEXT(elm, field) ((elm)->field.le_next) argument
430 #define LIST_REMOVE(elm, field) do { \ argument
431 QMD_SAVELINK(oldnext, (elm)->field.le_next); \
432 QMD_SAVELINK(oldprev, (elm)->field.le_prev); \
433 QMD_LIST_CHECK_NEXT(elm, field); \
434 QMD_LIST_CHECK_PREV(elm, field); \
435 if (LIST_NEXT((elm), field) != NULL) \
436 LIST_NEXT((elm), field)->field.le_prev = \
437 (elm)->field.le_prev; \
438 *(elm)->field.le_prev = LIST_NEXT((elm), field); \
443 #define LIST_SWAP(head1, head2, type, field) do { \ argument
448 swap_tmp->field.le_prev = &LIST_FIRST((head1)); \
450 swap_tmp->field.le_prev = &LIST_FIRST((head2)); \
477 #define QMD_TAILQ_CHECK_HEAD(head, field) do { \ argument
479 TAILQ_FIRST((head))->field.tqe_prev != \
484 #define QMD_TAILQ_CHECK_TAIL(head, field) do { \ argument
489 #define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ argument
490 if (TAILQ_NEXT((elm), field) != NULL && \
491 TAILQ_NEXT((elm), field)->field.tqe_prev != \
492 &((elm)->field.tqe_next)) \
496 #define QMD_TAILQ_CHECK_PREV(elm, field) do { \ argument
497 if (*(elm)->field.tqe_prev != (elm)) \
501 #define QMD_TAILQ_CHECK_HEAD(head, field) argument
503 #define QMD_TAILQ_CHECK_NEXT(elm, field) argument
504 #define QMD_TAILQ_CHECK_PREV(elm, field) argument
507 #define TAILQ_CONCAT(head1, head2, field) do { \ argument
510 (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
522 #define TAILQ_FOREACH(var, head, field) \ argument
525 (var) = TAILQ_NEXT((var), field))
527 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
529 (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
532 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
535 (var) = TAILQ_PREV((var), headname, field))
537 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
539 (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
548 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
549 QMD_TAILQ_CHECK_NEXT(listelm, field); \
550 if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
551 TAILQ_NEXT((elm), field)->field.tqe_prev = \
552 &TAILQ_NEXT((elm), field); \
554 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
557 TAILQ_NEXT((listelm), field) = (elm); \
558 (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \
559 QMD_TRACE_ELEM(&(elm)->field); \
560 QMD_TRACE_ELEM(&listelm->field); \
563 #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ argument
564 QMD_TAILQ_CHECK_PREV(listelm, field); \
565 (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
566 TAILQ_NEXT((elm), field) = (listelm); \
567 *(listelm)->field.tqe_prev = (elm); \
568 (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \
569 QMD_TRACE_ELEM(&(elm)->field); \
570 QMD_TRACE_ELEM(&listelm->field); \
573 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
574 QMD_TAILQ_CHECK_HEAD(head, field); \
575 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
576 TAILQ_FIRST((head))->field.tqe_prev = \
577 &TAILQ_NEXT((elm), field); \
579 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
581 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
583 QMD_TRACE_ELEM(&(elm)->field); \
586 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
587 QMD_TAILQ_CHECK_TAIL(head, field); \
588 TAILQ_NEXT((elm), field) = NULL; \
589 (elm)->field.tqe_prev = (head)->tqh_last; \
591 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
593 QMD_TRACE_ELEM(&(elm)->field); \
599 #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) argument
601 #define TAILQ_PREV(elm, headname, field) \ argument
602 (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
604 #define TAILQ_REMOVE(head, elm, field) do { \ argument
605 QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \
606 QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \
607 QMD_TAILQ_CHECK_NEXT(elm, field); \
608 QMD_TAILQ_CHECK_PREV(elm, field); \
609 if ((TAILQ_NEXT((elm), field)) != NULL) \
610 TAILQ_NEXT((elm), field)->field.tqe_prev = \
611 (elm)->field.tqe_prev; \
613 (head)->tqh_last = (elm)->field.tqe_prev; \
616 *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \
619 QMD_TRACE_ELEM(&(elm)->field); \
622 #define TAILQ_SWAP(head1, head2, type, field) do { \ argument
630 swap_first->field.tqe_prev = &(head1)->tqh_first; \
634 swap_first->field.tqe_prev = &(head2)->tqh_first; \