Lines Matching refs:head

185 #define	SLIST_HEAD_INITIALIZER(head)					\  argument
196 #define SLIST_FIRST(head) ((head)->slh_first) argument
197 #define SLIST_END(head) NULL argument
198 #define SLIST_EMPTY(head) (SLIST_FIRST(head) == SLIST_END(head)) argument
201 #define SLIST_FOREACH(var, head, field) \ argument
202 for((var) = SLIST_FIRST(head); \
203 (var) != SLIST_END(head); \
209 #define SLIST_INIT(head) { \ argument
210 SLIST_FIRST(head) = SLIST_END(head); \
218 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
219 (elm)->field.sle_next = (head)->slh_first; \
220 (head)->slh_first = (elm); \
223 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
224 (head)->slh_first = (head)->slh_first->field.sle_next; \
227 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
228 if ((head)->slh_first == (elm)) { \
229 SLIST_REMOVE_HEAD((head), field); \
232 struct type *curelm = (head)->slh_first; \
248 #define LIST_HEAD_INITIALIZER(head) \ argument
260 #define LIST_FIRST(head) ((head)->lh_first) argument
261 #define LIST_END(head) NULL argument
262 #define LIST_EMPTY(head) (LIST_FIRST(head) == LIST_END(head)) argument
265 #define LIST_FOREACH(var, head, field) \ argument
266 for((var) = LIST_FIRST(head); \
267 (var)!= LIST_END(head); \
273 #define LIST_INIT(head) do { \ argument
274 LIST_FIRST(head) = LIST_END(head); \
292 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
293 if (((elm)->field.le_next = (head)->lh_first) != NULL) \
294 (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
295 (head)->lh_first = (elm); \
296 (elm)->field.le_prev = &(head)->lh_first; \
323 #define SIMPLEQ_HEAD_INITIALIZER(head) \ argument
324 { NULL, &(head).sqh_first }
334 #define SIMPLEQ_FIRST(head) ((head)->sqh_first) argument
335 #define SIMPLEQ_END(head) NULL argument
336 #define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head)) argument
339 #define SIMPLEQ_FOREACH(var, head, field) \ argument
340 for((var) = SIMPLEQ_FIRST(head); \
341 (var) != SIMPLEQ_END(head); \
347 #define SIMPLEQ_INIT(head) do { \ argument
348 (head)->sqh_first = NULL; \
349 (head)->sqh_last = &(head)->sqh_first; \
352 #define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ argument
353 if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
354 (head)->sqh_last = &(elm)->field.sqe_next; \
355 (head)->sqh_first = (elm); \
358 #define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ argument
360 *(head)->sqh_last = (elm); \
361 (head)->sqh_last = &(elm)->field.sqe_next; \
364 #define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
366 (head)->sqh_last = &(elm)->field.sqe_next; \
370 #define SIMPLEQ_REMOVE_HEAD(head, elm, field) do { \ argument
371 if (((head)->sqh_first = (elm)->field.sqe_next) == NULL) \
372 (head)->sqh_last = &(head)->sqh_first; \
384 #define TAILQ_HEAD_INITIALIZER(head) \ argument
385 { NULL, &(head).tqh_first }
396 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
397 #define TAILQ_END(head) NULL argument
399 #define TAILQ_LAST(head, headname) \ argument
400 (*(((struct headname *)((head)->tqh_last))->tqh_last))
404 #define TAILQ_EMPTY(head) \ argument
405 (TAILQ_FIRST(head) == TAILQ_END(head))
407 #define TAILQ_FOREACH(var, head, field) \ argument
408 for((var) = TAILQ_FIRST(head); \
409 (var) != TAILQ_END(head); \
412 #define TAILQ_FOREACH_REVERSE(var, head, field, headname) \ argument
413 for((var) = TAILQ_LAST(head, headname); \
414 (var) != TAILQ_END(head); \
420 #define TAILQ_INIT(head) do { \ argument
421 (head)->tqh_first = NULL; \
422 (head)->tqh_last = &(head)->tqh_first; \
425 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
426 if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
427 (head)->tqh_first->field.tqe_prev = \
430 (head)->tqh_last = &(elm)->field.tqe_next; \
431 (head)->tqh_first = (elm); \
432 (elm)->field.tqe_prev = &(head)->tqh_first; \
435 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
437 (elm)->field.tqe_prev = (head)->tqh_last; \
438 *(head)->tqh_last = (elm); \
439 (head)->tqh_last = &(elm)->field.tqe_next; \
442 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
447 (head)->tqh_last = &(elm)->field.tqe_next; \
459 #define TAILQ_REMOVE(head, elm, field) do { \ argument
464 (head)->tqh_last = (elm)->field.tqe_prev; \
468 #define TAILQ_REPLACE(head, elm, elm2, field) do { \ argument
473 (head)->tqh_last = &(elm2)->field.tqe_next; \
487 #define CIRCLEQ_HEAD_INITIALIZER(head) \ argument
488 { CIRCLEQ_END(&head), CIRCLEQ_END(&head) }
499 #define CIRCLEQ_FIRST(head) ((head)->cqh_first) argument
500 #define CIRCLEQ_LAST(head) ((head)->cqh_last) argument
501 #define CIRCLEQ_END(head) ((void *)(head)) argument
504 #define CIRCLEQ_EMPTY(head) \ argument
505 (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head))
507 #define CIRCLEQ_FOREACH(var, head, field) \ argument
508 for((var) = CIRCLEQ_FIRST(head); \
509 (var) != CIRCLEQ_END(head); \
512 #define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ argument
513 for((var) = CIRCLEQ_LAST(head); \
514 (var) != CIRCLEQ_END(head); \
520 #define CIRCLEQ_INIT(head) do { \ argument
521 (head)->cqh_first = CIRCLEQ_END(head); \
522 (head)->cqh_last = CIRCLEQ_END(head); \
525 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
528 if ((listelm)->field.cqe_next == CIRCLEQ_END(head)) \
529 (head)->cqh_last = (elm); \
535 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ argument
538 if ((listelm)->field.cqe_prev == CIRCLEQ_END(head)) \
539 (head)->cqh_first = (elm); \
545 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ argument
546 (elm)->field.cqe_next = (head)->cqh_first; \
547 (elm)->field.cqe_prev = CIRCLEQ_END(head); \
548 if ((head)->cqh_last == CIRCLEQ_END(head)) \
549 (head)->cqh_last = (elm); \
551 (head)->cqh_first->field.cqe_prev = (elm); \
552 (head)->cqh_first = (elm); \
555 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
556 (elm)->field.cqe_next = CIRCLEQ_END(head); \
557 (elm)->field.cqe_prev = (head)->cqh_last; \
558 if ((head)->cqh_first == CIRCLEQ_END(head)) \
559 (head)->cqh_first = (elm); \
561 (head)->cqh_last->field.cqe_next = (elm); \
562 (head)->cqh_last = (elm); \
565 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
566 if ((elm)->field.cqe_next == CIRCLEQ_END(head)) \
567 (head)->cqh_last = (elm)->field.cqe_prev; \
571 if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) \
572 (head)->cqh_first = (elm)->field.cqe_next; \
578 #define CIRCLEQ_REPLACE(head, elm, elm2, field) do { \ argument
580 CIRCLEQ_END(head)) \
581 (head).cqh_last = (elm2); \
585 CIRCLEQ_END(head)) \
586 (head).cqh_first = (elm2); \