Lines Matching refs:head

189 #define	SLIST_HEAD_INITIALIZER(head)					\  argument
200 #define SLIST_FIRST(head) ((head)->slh_first) argument
201 #define SLIST_END(head) NULL argument
202 #define SLIST_EMPTY(head) (SLIST_FIRST(head) == SLIST_END(head)) argument
205 #define SLIST_FOREACH(var, head, field) \ argument
206 for((var) = SLIST_FIRST(head); \
207 (var) != SLIST_END(head); \
210 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
211 for ((var) = SLIST_FIRST(head); \
218 #define SLIST_INIT(head) { \ argument
219 SLIST_FIRST(head) = SLIST_END(head); \
227 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
228 (elm)->field.sle_next = (head)->slh_first; \
229 (head)->slh_first = (elm); \
236 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
237 (head)->slh_first = (head)->slh_first->field.sle_next; \
240 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
241 if ((head)->slh_first == (elm)) { \
242 SLIST_REMOVE_HEAD((head), field); \
244 struct type *curelm = (head)->slh_first; \
262 #define LIST_HEAD_INITIALIZER(head) \ argument
274 #define LIST_FIRST(head) ((head)->lh_first) argument
275 #define LIST_END(head) NULL argument
276 #define LIST_EMPTY(head) (LIST_FIRST(head) == LIST_END(head)) argument
279 #define LIST_FOREACH(var, head, field) \ argument
280 for((var) = LIST_FIRST(head); \
281 (var)!= LIST_END(head); \
284 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
285 for ((var) = LIST_FIRST(head); \
292 #define LIST_INIT(head) do { \ argument
293 LIST_FIRST(head) = LIST_END(head); \
311 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
312 if (((elm)->field.le_next = (head)->lh_first) != NULL) \
313 (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
314 (head)->lh_first = (elm); \
315 (elm)->field.le_prev = &(head)->lh_first; \
346 #define SIMPLEQ_HEAD_INITIALIZER(head) \ argument
347 { NULL, &(head).sqh_first }
357 #define SIMPLEQ_FIRST(head) ((head)->sqh_first) argument
358 #define SIMPLEQ_END(head) NULL argument
359 #define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head)) argument
362 #define SIMPLEQ_FOREACH(var, head, field) \ argument
363 for((var) = SIMPLEQ_FIRST(head); \
364 (var) != SIMPLEQ_END(head); \
367 #define SIMPLEQ_FOREACH_SAFE(var, head, field, tvar) \ argument
368 for ((var) = SIMPLEQ_FIRST(head); \
375 #define SIMPLEQ_INIT(head) do { \ argument
376 (head)->sqh_first = NULL; \
377 (head)->sqh_last = &(head)->sqh_first; \
380 #define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ argument
381 if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
382 (head)->sqh_last = &(elm)->field.sqe_next; \
383 (head)->sqh_first = (elm); \
386 #define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ argument
388 *(head)->sqh_last = (elm); \
389 (head)->sqh_last = &(elm)->field.sqe_next; \
392 #define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
394 (head)->sqh_last = &(elm)->field.sqe_next; \
398 #define SIMPLEQ_REMOVE_HEAD(head, field) do { \ argument
399 if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
400 (head)->sqh_last = &(head)->sqh_first; \
403 #define SIMPLEQ_REMOVE_AFTER(head, elm, field) do { \ argument
406 (head)->sqh_last = &(elm)->field.sqe_next; \
418 #define TAILQ_HEAD_INITIALIZER(head) \ argument
419 { NULL, &(head).tqh_first }
430 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
431 #define TAILQ_END(head) NULL argument
433 #define TAILQ_LAST(head, headname) \ argument
434 (*(((struct headname *)((head)->tqh_last))->tqh_last))
438 #define TAILQ_EMPTY(head) \ argument
439 (TAILQ_FIRST(head) == TAILQ_END(head))
441 #define TAILQ_FOREACH(var, head, field) \ argument
442 for((var) = TAILQ_FIRST(head); \
443 (var) != TAILQ_END(head); \
446 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
447 for ((var) = TAILQ_FIRST(head); \
448 (var) != TAILQ_END(head) && \
453 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
454 for((var) = TAILQ_LAST(head, headname); \
455 (var) != TAILQ_END(head); \
458 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
459 for ((var) = TAILQ_LAST(head, headname); \
460 (var) != TAILQ_END(head) && \
467 #define TAILQ_INIT(head) do { \ argument
468 (head)->tqh_first = NULL; \
469 (head)->tqh_last = &(head)->tqh_first; \
472 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
473 if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
474 (head)->tqh_first->field.tqe_prev = \
477 (head)->tqh_last = &(elm)->field.tqe_next; \
478 (head)->tqh_first = (elm); \
479 (elm)->field.tqe_prev = &(head)->tqh_first; \
482 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
484 (elm)->field.tqe_prev = (head)->tqh_last; \
485 *(head)->tqh_last = (elm); \
486 (head)->tqh_last = &(elm)->field.tqe_next; \
489 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
494 (head)->tqh_last = &(elm)->field.tqe_next; \
506 #define TAILQ_REMOVE(head, elm, field) do { \ argument
511 (head)->tqh_last = (elm)->field.tqe_prev; \
517 #define TAILQ_REPLACE(head, elm, elm2, field) do { \ argument
522 (head)->tqh_last = &(elm2)->field.tqe_next; \
538 #define CIRCLEQ_HEAD_INITIALIZER(head) \ argument
539 { CIRCLEQ_END(&head), CIRCLEQ_END(&head) }
550 #define CIRCLEQ_FIRST(head) ((head)->cqh_first) argument
551 #define CIRCLEQ_LAST(head) ((head)->cqh_last) argument
552 #define CIRCLEQ_END(head) ((void *)(head)) argument
555 #define CIRCLEQ_EMPTY(head) \ argument
556 (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head))
558 #define CIRCLEQ_FOREACH(var, head, field) \ argument
559 for((var) = CIRCLEQ_FIRST(head); \
560 (var) != CIRCLEQ_END(head); \
563 #define CIRCLEQ_FOREACH_SAFE(var, head, field, tvar) \ argument
564 for ((var) = CIRCLEQ_FIRST(head); \
565 (var) != CIRCLEQ_END(head) && \
569 #define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ argument
570 for((var) = CIRCLEQ_LAST(head); \
571 (var) != CIRCLEQ_END(head); \
574 #define CIRCLEQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
575 for ((var) = CIRCLEQ_LAST(head, headname); \
576 (var) != CIRCLEQ_END(head) && \
583 #define CIRCLEQ_INIT(head) do { \ argument
584 (head)->cqh_first = CIRCLEQ_END(head); \
585 (head)->cqh_last = CIRCLEQ_END(head); \
588 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
591 if ((listelm)->field.cqe_next == CIRCLEQ_END(head)) \
592 (head)->cqh_last = (elm); \
598 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ argument
601 if ((listelm)->field.cqe_prev == CIRCLEQ_END(head)) \
602 (head)->cqh_first = (elm); \
608 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ argument
609 (elm)->field.cqe_next = (head)->cqh_first; \
610 (elm)->field.cqe_prev = CIRCLEQ_END(head); \
611 if ((head)->cqh_last == CIRCLEQ_END(head)) \
612 (head)->cqh_last = (elm); \
614 (head)->cqh_first->field.cqe_prev = (elm); \
615 (head)->cqh_first = (elm); \
618 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
619 (elm)->field.cqe_next = CIRCLEQ_END(head); \
620 (elm)->field.cqe_prev = (head)->cqh_last; \
621 if ((head)->cqh_first == CIRCLEQ_END(head)) \
622 (head)->cqh_first = (elm); \
624 (head)->cqh_last->field.cqe_next = (elm); \
625 (head)->cqh_last = (elm); \
628 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
629 if ((elm)->field.cqe_next == CIRCLEQ_END(head)) \
630 (head)->cqh_last = (elm)->field.cqe_prev; \
634 if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) \
635 (head)->cqh_first = (elm)->field.cqe_next; \
643 #define CIRCLEQ_REPLACE(head, elm, elm2, field) do { \ argument
645 CIRCLEQ_END(head)) \
646 (head).cqh_last = (elm2); \
650 CIRCLEQ_END(head)) \
651 (head).cqh_first = (elm2); \