• Home
  • Raw
  • Download

Lines Matching refs:head

89 #define	LIST_HEAD_INITIALIZER(head)					\  argument
101 #define LIST_INIT(head) do { \ argument
102 (head)->lh_first = NULL; \
120 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
121 if (((elm)->field.le_next = (head)->lh_first) != NULL) \
122 (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
123 (head)->lh_first = (elm); \
124 (elm)->field.le_prev = &(head)->lh_first; \
134 #define LIST_FOREACH(var, head, field) \ argument
135 for ((var) = ((head)->lh_first); \
142 #define LIST_EMPTY(head) ((head)->lh_first == NULL) argument
143 #define LIST_FIRST(head) ((head)->lh_first) argument
155 #define SLIST_HEAD_INITIALIZER(head) \ argument
166 #define SLIST_INIT(head) do { \ argument
167 (head)->slh_first = NULL; \
175 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
176 (elm)->field.sle_next = (head)->slh_first; \
177 (head)->slh_first = (elm); \
180 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
181 (head)->slh_first = (head)->slh_first->field.sle_next; \
184 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
185 if ((head)->slh_first == (elm)) { \
186 SLIST_REMOVE_HEAD((head), field); \
189 struct type *curelm = (head)->slh_first; \
197 #define SLIST_FOREACH(var, head, field) \ argument
198 for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
203 #define SLIST_EMPTY(head) ((head)->slh_first == NULL) argument
204 #define SLIST_FIRST(head) ((head)->slh_first) argument
217 #define STAILQ_HEAD_INITIALIZER(head) \ argument
218 { NULL, &(head).stqh_first }
228 #define STAILQ_INIT(head) do { \ argument
229 (head)->stqh_first = NULL; \
230 (head)->stqh_last = &(head)->stqh_first; \
233 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
234 if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \
235 (head)->stqh_last = &(elm)->field.stqe_next; \
236 (head)->stqh_first = (elm); \
239 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
241 *(head)->stqh_last = (elm); \
242 (head)->stqh_last = &(elm)->field.stqe_next; \
245 #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
247 (head)->stqh_last = &(elm)->field.stqe_next; \
251 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
252 if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
253 (head)->stqh_last = &(head)->stqh_first; \
256 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
257 if ((head)->stqh_first == (elm)) { \
258 STAILQ_REMOVE_HEAD((head), field); \
260 struct type *curelm = (head)->stqh_first; \
265 (head)->stqh_last = &(curelm)->field.stqe_next; \
269 #define STAILQ_FOREACH(var, head, field) \ argument
270 for ((var) = ((head)->stqh_first); \
285 #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) argument
286 #define STAILQ_FIRST(head) ((head)->stqh_first) argument
299 #define SIMPLEQ_HEAD_INITIALIZER(head) \ argument
300 { NULL, &(head).sqh_first }
310 #define SIMPLEQ_INIT(head) do { \ argument
311 (head)->sqh_first = NULL; \
312 (head)->sqh_last = &(head)->sqh_first; \
315 #define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ argument
316 if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
317 (head)->sqh_last = &(elm)->field.sqe_next; \
318 (head)->sqh_first = (elm); \
321 #define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ argument
323 *(head)->sqh_last = (elm); \
324 (head)->sqh_last = &(elm)->field.sqe_next; \
327 #define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
329 (head)->sqh_last = &(elm)->field.sqe_next; \
333 #define SIMPLEQ_REMOVE_HEAD(head, field) do { \ argument
334 if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
335 (head)->sqh_last = &(head)->sqh_first; \
338 #define SIMPLEQ_REMOVE(head, elm, type, field) do { \ argument
339 if ((head)->sqh_first == (elm)) { \
340 SIMPLEQ_REMOVE_HEAD((head), field); \
342 struct type *curelm = (head)->sqh_first; \
347 (head)->sqh_last = &(curelm)->field.sqe_next; \
351 #define SIMPLEQ_FOREACH(var, head, field) \ argument
352 for ((var) = ((head)->sqh_first); \
359 #define SIMPLEQ_EMPTY(head) ((head)->sqh_first == NULL) argument
360 #define SIMPLEQ_FIRST(head) ((head)->sqh_first) argument
374 #define TAILQ_HEAD_INITIALIZER(head) \ argument
375 { NULL, &(head).tqh_first }
387 #define TAILQ_INIT(head) do { \ argument
388 (head)->tqh_first = NULL; \
389 (head)->tqh_last = &(head)->tqh_first; \
392 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
393 if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
394 (head)->tqh_first->field.tqe_prev = \
397 (head)->tqh_last = &(elm)->field.tqe_next; \
398 (head)->tqh_first = (elm); \
399 (elm)->field.tqe_prev = &(head)->tqh_first; \
402 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
404 (elm)->field.tqe_prev = (head)->tqh_last; \
405 *(head)->tqh_last = (elm); \
406 (head)->tqh_last = &(elm)->field.tqe_next; \
409 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
414 (head)->tqh_last = &(elm)->field.tqe_next; \
426 #define TAILQ_REMOVE(head, elm, field) do { \ argument
431 (head)->tqh_last = (elm)->field.tqe_prev; \
435 #define TAILQ_FOREACH(var, head, field) \ argument
436 for ((var) = ((head)->tqh_first); \
440 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
441 for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
457 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) argument
458 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
461 #define TAILQ_LAST(head, headname) \ argument
462 (*(((struct headname *)((head)->tqh_last))->tqh_last))
476 #define CIRCLEQ_HEAD_INITIALIZER(head) \ argument
477 { (void *)&head, (void *)&head }
488 #define CIRCLEQ_INIT(head) do { \ argument
489 (head)->cqh_first = (void *)(head); \
490 (head)->cqh_last = (void *)(head); \
493 #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
496 if ((listelm)->field.cqe_next == (void *)(head)) \
497 (head)->cqh_last = (elm); \
503 #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ argument
506 if ((listelm)->field.cqe_prev == (void *)(head)) \
507 (head)->cqh_first = (elm); \
513 #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ argument
514 (elm)->field.cqe_next = (head)->cqh_first; \
515 (elm)->field.cqe_prev = (void *)(head); \
516 if ((head)->cqh_last == (void *)(head)) \
517 (head)->cqh_last = (elm); \
519 (head)->cqh_first->field.cqe_prev = (elm); \
520 (head)->cqh_first = (elm); \
523 #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ argument
524 (elm)->field.cqe_next = (void *)(head); \
525 (elm)->field.cqe_prev = (head)->cqh_last; \
526 if ((head)->cqh_first == (void *)(head)) \
527 (head)->cqh_first = (elm); \
529 (head)->cqh_last->field.cqe_next = (elm); \
530 (head)->cqh_last = (elm); \
533 #define CIRCLEQ_REMOVE(head, elm, field) do { \ argument
534 if ((elm)->field.cqe_next == (void *)(head)) \
535 (head)->cqh_last = (elm)->field.cqe_prev; \
539 if ((elm)->field.cqe_prev == (void *)(head)) \
540 (head)->cqh_first = (elm)->field.cqe_next; \
546 #define CIRCLEQ_FOREACH(var, head, field) \ argument
547 for ((var) = ((head)->cqh_first); \
548 (var) != (const void *)(head); \
551 #define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ argument
552 for ((var) = ((head)->cqh_last); \
553 (var) != (const void *)(head); \
559 #define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head)) argument
560 #define CIRCLEQ_FIRST(head) ((head)->cqh_first) argument
561 #define CIRCLEQ_LAST(head) ((head)->cqh_last) argument
565 #define CIRCLEQ_LOOP_NEXT(head, elm, field) \ argument
566 (((elm)->field.cqe_next == (void *)(head)) \
567 ? ((head)->cqh_first) \
569 #define CIRCLEQ_LOOP_PREV(head, elm, field) \ argument
570 (((elm)->field.cqe_prev == (void *)(head)) \
571 ? ((head)->cqh_last) \