Home | History | Annotate | Download | only in libpthread

Lines Matching refs:field

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 = \
72 &(elm)->field.ptqe_next; \
74 (head)->ptqh_last = &(elm)->field.ptqe_next; \
76 (elm)->field.ptqe_prev = &(head)->ptqh_first; \
79 #define PTQ_INSERT_TAIL(head, elm, field) do { \
80 (elm)->field.ptqe_next = NULL; \
83 (elm)->field.ptqe_prev = (head)->ptqh_last; \
85 (head)->ptqh_last = &(elm)->field.ptqe_next; \
88 #define PTQ_INSERT_AFTER(head, listelm, elm, field) do { \
89 if (((elm)->field.ptqe_next = (listelm)->field.ptqe_next) != NULL)\
90 (elm)->field.ptqe_next->field.ptqe_prev = \
91 &(elm)->field.ptqe_next; \
93 (head)->ptqh_last = &(elm)->field.ptqe_next; \
94 (listelm)->field.ptqe_next = (elm); \
95 (elm)->field.ptqe_prev = &(listelm)->field.ptqe_next; \
98 #define PTQ_INSERT_BEFORE(listelm, elm, field) do { \
99 (elm)->field.ptqe_prev = (listelm)->field.ptqe_prev; \
100 (elm)->field.ptqe_next = (listelm); \
101 *(listelm)->field.ptqe_prev = (elm); \
102 (listelm)->field.ptqe_prev = &(elm)->field.ptqe_next; \
105 #define PTQ_REMOVE(head, elm, field) do { \
106 if (((elm)->field.ptqe_next) != NULL) \
107 (elm)->field.ptqe_next->field.ptqe_prev = \
108 (elm)->field.ptqe_prev; \
110 (head)->ptqh_last = (elm)->field.ptqe_prev; \
111 *(elm)->field.ptqe_prev = (elm)->field.ptqe_next; \
120 #define PTQ_NEXT(elm, field) ((elm)->field.ptqe_next)
124 #define PTQ_PREV(elm, headname, field) \
125 (*(((struct headname *)(void *)((elm)->field.ptqe_prev))->ptqh_last))
127 #define PTQ_FOREACH(var, head, field) \
130 (var) = ((var)->field.ptqe_next))
132 #define PTQ_FOREACH_REVERSE(var, head, headname, field) \
135 (var) = (*(((struct headname *)(void *)((var)->field.ptqe_prev))->ptqh_last)))