Lines Matching refs:head
116 #define QMD_TRACE_HEAD(head) do { \ argument
117 (head)->trace.prevline = (head)->trace.lastline; \
118 (head)->trace.prevfile = (head)->trace.lastfile; \
119 (head)->trace.lastline = __LINE__; \
120 (head)->trace.lastfile = __FILE__; \
132 #define QMD_TRACE_HEAD(head) argument
145 #define SLIST_HEAD_INITIALIZER(head) \ argument
156 #define SLIST_EMPTY(head) ((head)->slh_first == NULL) argument
158 #define SLIST_FIRST(head) ((head)->slh_first) argument
160 #define SLIST_FOREACH(var, head, field) \ argument
161 for ((var) = SLIST_FIRST((head)); \
165 #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ argument
166 for ((var) = SLIST_FIRST((head)); \
170 #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ argument
171 for ((varp) = &SLIST_FIRST((head)); \
175 #define SLIST_INIT(head) do { \ argument
176 SLIST_FIRST((head)) = NULL; \
184 #define SLIST_INSERT_HEAD(head, elm, field) do { \ argument
185 SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
186 SLIST_FIRST((head)) = (elm); \
191 #define SLIST_REMOVE(head, elm, type, field) do { \ argument
192 if (SLIST_FIRST((head)) == (elm)) { \
193 SLIST_REMOVE_HEAD((head), field); \
196 struct type *curelm = SLIST_FIRST((head)); \
205 #define SLIST_REMOVE_HEAD(head, field) do { \ argument
206 SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
218 #define STAILQ_HEAD_INITIALIZER(head) \ argument
219 { NULL, &(head).stqh_first }
237 #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) argument
239 #define STAILQ_FIRST(head) ((head)->stqh_first) argument
241 #define STAILQ_FOREACH(var, head, field) \ argument
242 for((var) = STAILQ_FIRST((head)); \
247 #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
248 for ((var) = STAILQ_FIRST((head)); \
252 #define STAILQ_INIT(head) do { \ argument
253 STAILQ_FIRST((head)) = NULL; \
254 (head)->stqh_last = &STAILQ_FIRST((head)); \
257 #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ argument
259 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
263 #define STAILQ_INSERT_HEAD(head, elm, field) do { \ argument
264 if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
265 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
266 STAILQ_FIRST((head)) = (elm); \
269 #define STAILQ_INSERT_TAIL(head, elm, field) do { \ argument
271 *(head)->stqh_last = (elm); \
272 (head)->stqh_last = &STAILQ_NEXT((elm), field); \
275 #define STAILQ_LAST(head, type, field) \ argument
276 (STAILQ_EMPTY((head)) ? \
279 ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
283 #define STAILQ_REMOVE(head, elm, type, field) do { \ argument
284 if (STAILQ_FIRST((head)) == (elm)) { \
285 STAILQ_REMOVE_HEAD((head), field); \
288 struct type *curelm = STAILQ_FIRST((head)); \
293 (head)->stqh_last = &STAILQ_NEXT((curelm), field);\
298 #define STAILQ_REMOVE_HEAD(head, field) do { \ argument
299 if ((STAILQ_FIRST((head)) = \
300 STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
301 (head)->stqh_last = &STAILQ_FIRST((head)); \
304 #define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ argument
305 if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \
306 (head)->stqh_last = &STAILQ_FIRST((head)); \
317 #define LIST_HEAD_INITIALIZER(head) \ argument
331 #define QMD_LIST_CHECK_HEAD(head, field) do { \ argument
332 if (LIST_FIRST((head)) != NULL && \
333 LIST_FIRST((head))->field.le_prev != \
334 &LIST_FIRST((head))) \
335 panic("Bad list head %p first->prev != head", (head)); \
350 #define QMD_LIST_CHECK_HEAD(head, field) argument
355 #define LIST_EMPTY(head) ((head)->lh_first == NULL) argument
357 #define LIST_FIRST(head) ((head)->lh_first) argument
359 #define LIST_FOREACH(var, head, field) \ argument
360 for ((var) = LIST_FIRST((head)); \
364 #define LIST_FOREACH_SAFE(var, head, field, tvar) \ argument
365 for ((var) = LIST_FIRST((head)); \
369 #define LIST_INIT(head) do { \ argument
370 LIST_FIRST((head)) = NULL; \
390 #define LIST_INSERT_HEAD(head, elm, field) do { \ argument
391 QMD_LIST_CHECK_HEAD((head), field); \
392 if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
393 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
394 LIST_FIRST((head)) = (elm); \
395 (elm)->field.le_prev = &LIST_FIRST((head)); \
421 #define TAILQ_HEAD_INITIALIZER(head) \ argument
422 { NULL, &(head).tqh_first }
435 #define QMD_TAILQ_CHECK_HEAD(head, field) do { \ argument
436 if (!TAILQ_EMPTY(head) && \
437 TAILQ_FIRST((head))->field.tqe_prev != \
438 &TAILQ_FIRST((head))) \
439 panic("Bad tailq head %p first->prev != head", (head)); \
442 #define QMD_TAILQ_CHECK_TAIL(head, field) do { \ argument
443 if (*(head)->tqh_last != NULL) \
444 panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \
459 #define QMD_TAILQ_CHECK_HEAD(head, field) argument
460 #define QMD_TAILQ_CHECK_TAIL(head, headname) argument
476 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) argument
478 #define TAILQ_FIRST(head) ((head)->tqh_first) argument
480 #define TAILQ_FOREACH(var, head, field) \ argument
481 for ((var) = TAILQ_FIRST((head)); \
485 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ argument
486 for ((var) = TAILQ_FIRST((head)); \
490 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ argument
491 for ((var) = TAILQ_LAST((head), headname); \
495 #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ argument
496 for ((var) = TAILQ_LAST((head), headname); \
500 #define TAILQ_INIT(head) do { \ argument
501 TAILQ_FIRST((head)) = NULL; \
502 (head)->tqh_last = &TAILQ_FIRST((head)); \
503 QMD_TRACE_HEAD(head); \
506 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ argument
512 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
513 QMD_TRACE_HEAD(head); \
531 #define TAILQ_INSERT_HEAD(head, elm, field) do { \ argument
532 QMD_TAILQ_CHECK_HEAD(head, field); \
533 if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
534 TAILQ_FIRST((head))->field.tqe_prev = \
537 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
538 TAILQ_FIRST((head)) = (elm); \
539 (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
540 QMD_TRACE_HEAD(head); \
544 #define TAILQ_INSERT_TAIL(head, elm, field) do { \ argument
545 QMD_TAILQ_CHECK_TAIL(head, field); \
547 (elm)->field.tqe_prev = (head)->tqh_last; \
548 *(head)->tqh_last = (elm); \
549 (head)->tqh_last = &TAILQ_NEXT((elm), field); \
550 QMD_TRACE_HEAD(head); \
554 #define TAILQ_LAST(head, headname) \ argument
555 (*(((struct headname *)((head)->tqh_last))->tqh_last))
562 #define TAILQ_REMOVE(head, elm, field) do { \ argument
569 (head)->tqh_last = (elm)->field.tqe_prev; \
570 QMD_TRACE_HEAD(head); \