Home | History | Annotate | Download | only in libpthread

Lines Matching refs:head

64 #define	PTQ_INIT(head) do {						\
65 (head)->ptqh_first = NULL; \
66 (head)->ptqh_last = &(head)->ptqh_first; \
69 #define PTQ_INSERT_HEAD(head, elm, field) do { \
70 if (((elm)->field.ptqe_next = (head)->ptqh_first) != NULL) \
71 (head)->ptqh_first->field.ptqe_prev = \
74 (head)->ptqh_last = &(elm)->field.ptqe_next; \
75 (head)->ptqh_first = (elm); \
76 (elm)->field.ptqe_prev = &(head)->ptqh_first; \
79 #define PTQ_INSERT_TAIL(head, elm, field) do { \
81 if ((head)->ptqh_last == NULL) \
82 (head)->ptqh_last = &(head)->ptqh_first; \
83 (elm)->field.ptqe_prev = (head)->ptqh_last; \
84 *(head)->ptqh_last = (elm); \
85 (head)->ptqh_last = &(elm)->field.ptqe_next; \
88 #define PTQ_INSERT_AFTER(head, listelm, elm, field) do { \
93 (head)->ptqh_last = &(elm)->field.ptqe_next; \
105 #define PTQ_REMOVE(head, elm, field) do { \
110 (head)->ptqh_last = (elm)->field.ptqe_prev; \
118 #define PTQ_EMPTY(head) ((head)->ptqh_first == NULL)
119 #define PTQ_FIRST(head) ((head)->ptqh_first)
122 #define PTQ_LAST(head, headname) \
123 (*(((struct headname *)(void *)((head)->ptqh_last))->ptqh_last))
127 #define PTQ_FOREACH(var, head, field) \
128 for ((var) = ((head)->ptqh_first); \
132 #define PTQ_FOREACH_REVERSE(var, head, headname, field) \
133 for ((var) = (*(((struct headname *)(void *)((head)->ptqh_last))->ptqh_last)); \