Lines Matching refs:field

36 #define QLIST_NEXT_RCU(elm, field) (qatomic_rcu_read(&(elm)->field.le_next))  argument
61 #define QLIST_INSERT_AFTER_RCU(listelm, elm, field) do { \ argument
62 (elm)->field.le_next = (listelm)->field.le_next; \
63 (elm)->field.le_prev = &(listelm)->field.le_next; \
64 qatomic_rcu_set(&(listelm)->field.le_next, (elm)); \
65 if ((elm)->field.le_next != NULL) { \
66 (elm)->field.le_next->field.le_prev = \
67 &(elm)->field.le_next; \
77 #define QLIST_INSERT_BEFORE_RCU(listelm, elm, field) do { \ argument
78 (elm)->field.le_prev = (listelm)->field.le_prev; \
79 (elm)->field.le_next = (listelm); \
80 qatomic_rcu_set((listelm)->field.le_prev, (elm)); \
81 (listelm)->field.le_prev = &(elm)->field.le_next; \
90 #define QLIST_INSERT_HEAD_RCU(head, elm, field) do { \ argument
91 (elm)->field.le_prev = &(head)->lh_first; \
92 (elm)->field.le_next = (head)->lh_first; \
94 if ((elm)->field.le_next != NULL) { \
95 (elm)->field.le_next->field.le_prev = \
96 &(elm)->field.le_next; \
105 #define QLIST_REMOVE_RCU(elm, field) do { \ argument
106 if ((elm)->field.le_next != NULL) { \
107 (elm)->field.le_next->field.le_prev = \
108 (elm)->field.le_prev; \
110 qatomic_set((elm)->field.le_prev, (elm)->field.le_next); \
114 #define QLIST_FOREACH_RCU(var, head, field) \ argument
117 (var) = qatomic_rcu_read(&(var)->field.le_next))
120 #define QLIST_FOREACH_SAFE_RCU(var, head, field, next_var) \ argument
123 ((next_var) = qatomic_rcu_read(&(var)->field.le_next), 1); \
134 #define QSIMPLEQ_NEXT_RCU(elm, field) qatomic_rcu_read(&(elm)->field.sqe_next) argument
137 #define QSIMPLEQ_INSERT_HEAD_RCU(head, elm, field) do { \ argument
138 (elm)->field.sqe_next = (head)->sqh_first; \
139 if ((elm)->field.sqe_next == NULL) { \
140 (head)->sqh_last = &(elm)->field.sqe_next; \
145 #define QSIMPLEQ_INSERT_TAIL_RCU(head, elm, field) do { \ argument
146 (elm)->field.sqe_next = NULL; \
148 (head)->sqh_last = &(elm)->field.sqe_next; \
151 #define QSIMPLEQ_INSERT_AFTER_RCU(head, listelm, elm, field) do { \ argument
152 (elm)->field.sqe_next = (listelm)->field.sqe_next; \
153 if ((elm)->field.sqe_next == NULL) { \
154 (head)->sqh_last = &(elm)->field.sqe_next; \
156 qatomic_rcu_set(&(listelm)->field.sqe_next, (elm)); \
159 #define QSIMPLEQ_REMOVE_HEAD_RCU(head, field) do { \ argument
160 qatomic_set(&(head)->sqh_first, (head)->sqh_first->field.sqe_next);\
166 #define QSIMPLEQ_REMOVE_RCU(head, elm, type, field) do { \ argument
168 QSIMPLEQ_REMOVE_HEAD_RCU((head), field); \
171 while (curr->field.sqe_next != (elm)) { \
172 curr = curr->field.sqe_next; \
174 qatomic_set(&curr->field.sqe_next, \
175 curr->field.sqe_next->field.sqe_next); \
176 if (curr->field.sqe_next == NULL) { \
177 (head)->sqh_last = &(curr)->field.sqe_next; \
182 #define QSIMPLEQ_FOREACH_RCU(var, head, field) \ argument
185 (var) = qatomic_rcu_read(&(var)->field.sqe_next))
187 #define QSIMPLEQ_FOREACH_SAFE_RCU(var, head, field, next) \ argument
189 (var) && ((next) = qatomic_rcu_read(&(var)->field.sqe_next), 1);\
199 #define QTAILQ_NEXT_RCU(elm, field) qatomic_rcu_read(&(elm)->field.tqe_next) argument
202 #define QTAILQ_INSERT_HEAD_RCU(head, elm, field) do { \ argument
203 (elm)->field.tqe_next = (head)->tqh_first; \
204 if ((elm)->field.tqe_next != NULL) { \
205 (head)->tqh_first->field.tqe_circ.tql_prev = \
206 &(elm)->field.tqe_circ; \
208 (head)->tqh_circ.tql_prev = &(elm)->field.tqe_circ; \
211 (elm)->field.tqe_circ.tql_prev = &(head)->tqh_circ; \
214 #define QTAILQ_INSERT_TAIL_RCU(head, elm, field) do { \ argument
215 (elm)->field.tqe_next = NULL; \
216 (elm)->field.tqe_circ.tql_prev = (head)->tqh_circ.tql_prev; \
218 (head)->tqh_circ.tql_prev = &(elm)->field.tqe_circ; \
221 #define QTAILQ_INSERT_AFTER_RCU(head, listelm, elm, field) do { \ argument
222 (elm)->field.tqe_next = (listelm)->field.tqe_next; \
223 if ((elm)->field.tqe_next != NULL) { \
224 (elm)->field.tqe_next->field.tqe_circ.tql_prev = \
225 &(elm)->field.tqe_circ; \
227 (head)->tqh_circ.tql_prev = &(elm)->field.tqe_circ; \
229 qatomic_rcu_set(&(listelm)->field.tqe_next, (elm)); \
230 (elm)->field.tqe_circ.tql_prev = &(listelm)->field.tqe_circ; \
233 #define QTAILQ_INSERT_BEFORE_RCU(listelm, elm, field) do { \ argument
234 (elm)->field.tqe_circ.tql_prev = (listelm)->field.tqe_circ.tql_prev; \
235 (elm)->field.tqe_next = (listelm); \
236 qatomic_rcu_set(&(listelm)->field.tqe_circ.tql_prev->tql_next, (elm));\
237 (listelm)->field.tqe_circ.tql_prev = &(elm)->field.tqe_circ; \
240 #define QTAILQ_REMOVE_RCU(head, elm, field) do { \ argument
241 if (((elm)->field.tqe_next) != NULL) { \
242 (elm)->field.tqe_next->field.tqe_circ.tql_prev = \
243 (elm)->field.tqe_circ.tql_prev; \
245 (head)->tqh_circ.tql_prev = (elm)->field.tqe_circ.tql_prev; \
247 qatomic_set(&(elm)->field.tqe_circ.tql_prev->tql_next, \
248 (elm)->field.tqe_next); \
249 (elm)->field.tqe_circ.tql_prev = NULL; \
252 #define QTAILQ_FOREACH_RCU(var, head, field) \ argument
255 (var) = qatomic_rcu_read(&(var)->field.tqe_next))
257 #define QTAILQ_FOREACH_SAFE_RCU(var, head, field, next) \ argument
259 (var) && ((next) = qatomic_rcu_read(&(var)->field.tqe_next), 1);\
269 #define QSLIST_NEXT_RCU(elm, field) qatomic_rcu_read(&(elm)->field.sle_next) argument
272 #define QSLIST_INSERT_HEAD_RCU(head, elm, field) do { \ argument
273 (elm)->field.sle_next = (head)->slh_first; \
277 #define QSLIST_INSERT_AFTER_RCU(head, listelm, elm, field) do { \ argument
278 (elm)->field.sle_next = (listelm)->field.sle_next; \
279 qatomic_rcu_set(&(listelm)->field.sle_next, (elm)); \
282 #define QSLIST_REMOVE_HEAD_RCU(head, field) do { \ argument
283 qatomic_set(&(head)->slh_first, (head)->slh_first->field.sle_next);\
286 #define QSLIST_REMOVE_RCU(head, elm, type, field) do { \ argument
288 QSLIST_REMOVE_HEAD_RCU((head), field); \
291 while (curr->field.sle_next != (elm)) { \
292 curr = curr->field.sle_next; \
294 qatomic_set(&curr->field.sle_next, \
295 curr->field.sle_next->field.sle_next); \
299 #define QSLIST_FOREACH_RCU(var, head, field) \ argument
302 (var) = qatomic_rcu_read(&(var)->field.sle_next))
304 #define QSLIST_FOREACH_SAFE_RCU(var, head, field, next) \ argument
306 (var) && ((next) = qatomic_rcu_read(&(var)->field.sle_next), 1); \