Lines Matching refs:head
118 #define QMD_TRACE_HEAD(head) do { \ argument
119 (head)->trace.prevline = (head)->trace.lastline; \
120 (head)->trace.prevfile = (head)->trace.lastfile; \
121 (head)->trace.lastline = __LINE__; \
122 (head)->trace.lastfile = __FILE__; \
134 #define QMD_TRACE_HEAD(head) argument
148 #define SLIST_HEAD_INITIALIZER(head) \ argument
159 #define SLIST_EMPTY(head) ((head)->slh_first == NULL) argument
161 #define SLIST_FIRST(head) ((head)->slh_first) argument
163 #define SLIST_FOREACH(var, head, field) \ argument
164 for ((var) = SLIST_FIRST((head)); \
168 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
169 for ((var) = SLIST_FIRST((head)); \
173 #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ argument
174 for ((varp) = &SLIST_FIRST((head)); \
178 #define SLIST_INIT(head) do { \ argument
179 SLIST_FIRST((head)) = NULL; \
187 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
188 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
189 SLIST_FIRST((head)) = (elm); \
194 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
196 if (SLIST_FIRST((head)) == (elm)) { \
197 SLIST_REMOVE_HEAD((head), field); \
200 struct type *curelm = SLIST_FIRST((head)); \
213 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
214 SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
232 #define STAILQ_HEAD_INITIALIZER(head) \ argument
233 { NULL, &(head).stqh_first }
251 #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) argument
253 #define STAILQ_FIRST(head) ((head)->stqh_first) argument
255 #define STAILQ_FOREACH(var, head, field) \ argument
256 for((var) = STAILQ_FIRST((head)); \
261 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
262 for ((var) = STAILQ_FIRST((head)); \
266 #define STAILQ_INIT(head) do { \ argument
267 STAILQ_FIRST((head)) = NULL; \
268 (head)->stqh_last = &STAILQ_FIRST((head)); \
271 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
273 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
277 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
278 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
279 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
280 STAILQ_FIRST((head)) = (elm); \
283 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
285 *(head)->stqh_last = (elm); \
286 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
289 #define STAILQ_LAST(head, type, field) \ argument
290 (STAILQ_EMPTY((head)) ? \
293 ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
297 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
299 if (STAILQ_FIRST((head)) == (elm)) { \
300 STAILQ_REMOVE_HEAD((head), field); \
303 struct type *curelm = STAILQ_FIRST((head)); \
306 STAILQ_REMOVE_AFTER(head, curelm, field); \
311 #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ argument
314 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
317 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
318 if ((STAILQ_FIRST((head)) = \
319 STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
320 (head)->stqh_last = &STAILQ_FIRST((head)); \
345 #define LIST_HEAD_INITIALIZER(head) \ argument
359 #define QMD_LIST_CHECK_HEAD(head, field) do { \ argument
360 if (LIST_FIRST((head)) != NULL && \
361 LIST_FIRST((head))->field.le_prev != \
362 &LIST_FIRST((head))) \
363 panic("Bad list head %p first->prev != head", (head)); \
378 #define QMD_LIST_CHECK_HEAD(head, field) argument
383 #define LIST_EMPTY(head) ((head)->lh_first == NULL) argument
385 #define LIST_FIRST(head) ((head)->lh_first) argument
387 #define LIST_FOREACH(var, head, field) \ argument
388 for ((var) = LIST_FIRST((head)); \
392 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
393 for ((var) = LIST_FIRST((head)); \
397 #define LIST_INIT(head) do { \ argument
398 LIST_FIRST((head)) = NULL; \
418 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
419 QMD_LIST_CHECK_HEAD((head), field); \
420 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
421 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
422 LIST_FIRST((head)) = (elm); \
423 (elm)->field.le_prev = &LIST_FIRST((head)); \
461 #define TAILQ_HEAD_INITIALIZER(head) \ argument
462 { NULL, &(head).tqh_first }
475 #define QMD_TAILQ_CHECK_HEAD(head, field) do { \ argument
476 if (!TAILQ_EMPTY(head) && \
477 TAILQ_FIRST((head))->field.tqe_prev != \
478 &TAILQ_FIRST((head))) \
479 panic("Bad tailq head %p first->prev != head", (head)); \
482 #define QMD_TAILQ_CHECK_TAIL(head, field) do { \ argument
483 if (*(head)->tqh_last != NULL) \
484 panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \
499 #define QMD_TAILQ_CHECK_HEAD(head, field) argument
500 #define QMD_TAILQ_CHECK_TAIL(head, headname) argument
516 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) argument
518 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
520 #define TAILQ_FOREACH(var, head, field) \ argument
521 for ((var) = TAILQ_FIRST((head)); \
525 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
526 for ((var) = TAILQ_FIRST((head)); \
530 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
531 for ((var) = TAILQ_LAST((head), headname); \
535 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
536 for ((var) = TAILQ_LAST((head), headname); \
540 #define TAILQ_INIT(head) do { \ argument
541 TAILQ_FIRST((head)) = NULL; \
542 (head)->tqh_last = &TAILQ_FIRST((head)); \
543 QMD_TRACE_HEAD(head); \
546 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
552 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
553 QMD_TRACE_HEAD(head); \
571 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
572 QMD_TAILQ_CHECK_HEAD(head, field); \
573 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
574 TAILQ_FIRST((head))->field.tqe_prev = \
577 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
578 TAILQ_FIRST((head)) = (elm); \
579 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
580 QMD_TRACE_HEAD(head); \
584 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
585 QMD_TAILQ_CHECK_TAIL(head, field); \
587 (elm)->field.tqe_prev = (head)->tqh_last; \
588 *(head)->tqh_last = (elm); \
589 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
590 QMD_TRACE_HEAD(head); \
594 #define TAILQ_LAST(head, headname) \ argument
595 (*(((struct headname *)((head)->tqh_last))->tqh_last))
602 #define TAILQ_REMOVE(head, elm, field) do { \ argument
611 (head)->tqh_last = (elm)->field.tqe_prev; \
612 QMD_TRACE_HEAD(head); \