Lines Matching refs:current
256 _gcq_next(struct gcq *current, struct gcq_head *head, struct gcq *start) in _gcq_next() argument
260 q = current->q_next; in _gcq_next()
263 if (current != start) in _gcq_next()
264 GCQ_ASSERT(gcq_onlist(current)); in _gcq_next()
269 _gcq_prev(struct gcq *current, struct gcq_head *head, struct gcq *start) in _gcq_prev() argument
273 q = current->q_prev; in _gcq_prev()
276 if (current != start) in _gcq_prev()
277 GCQ_ASSERT(gcq_onlist(current)); in _gcq_prev()
291 #define _GCQ_NP(var, current, head, start, np, fn) \ argument
292 (np(current, head, start) != (start) ? \
293 (var = fn(np(current, head, start)), true) : (var = NULL, false))
294 #define _GCQ_NP_TYPED(tvar, current, head, start, type, name, np, fn) \ argument
295 (np(current, head, start) != (start) ? \
296 (tvar = GCQ_ITEM(fn(np(current, head, start)), type, name), true) : \
307 #define _GCQ_NP_COND(var, current, head, start, np, rem, cond) \ argument
308 (np(current, head, start) != (start) ? \
309 (var = fn(np(current, head, start)), ((cond) ? (rem), true) : \
311 #define _GCQ_NP_COND_TYPED(tvar, current, head, start, type, name, np, \ argument
312 rem, cond) (np(current, head, start) != (start) ? \
313 (tvar = GCQ_ITEM(fn(np(current, head, start)), type, name), \
329 #define GCQ_GOT_NEXT(var, current, head, start) \ argument
330 _GCQ_NP(var, current, head, start, _gcq_next, gcq_q)
331 #define GCQ_GOT_PREV(var, current, head, start) \ argument
332 _GCQ_NP(var, current, head, start, _gcq_prev, gcq_q)
333 #define GCQ_DEQUEUED_NEXT(var, current, head, start) \ argument
334 _GCQ_NP(var, current, head, start, _gcq_next, gcq_remove)
335 #define GCQ_DEQUEUED_PREV(var, current, head, start) \ argument
336 _GCQ_NP(var, current, head, start, _gcq_prev, gcq_remove)
337 #define GCQ_GOT_NEXT_TYPED(tvar, current, head, start, type, name) \ argument
338 _GCQ_NP_TYPED(tvar, current, head, start, type, name, \
340 #define GCQ_GOT_PREV_TYPED(tvar, current, head, start, type, name) \ argument
341 _GCQ_NP_TYPED(tvar, current, head, start, type, name, \
343 #define GCQ_DEQUEUED_NEXT_TYPED(tvar, current, head, start, type, name) \ argument
344 _GCQ_NP_TYPED(tvar, current, head, start, type, name, \
346 #define GCQ_DEQUEUED_PREV_TYPED(tvar, current, head, start, type, name) \ argument
347 _GCQ_NP_TYPED(tvar, current, head, start, type, name, \
368 #define GCQ_GOT_NEXT_COND(var, current, head, start, cond) \ argument
369 _GCQ_NP_COND(var, current, head, start, _gcq_next, ((void)0), cond)
370 #define GCQ_GOT_PREV_COND(var, current, head, start, cond) \ argument
371 _GCQ_NP_COND(var, current, head, start, _gcq_prev, ((void)0), cond)
372 #define GCQ_DEQUEUED_NEXT_COND(var, current, head, start, cond) \ argument
373 _GCQ_NP_COND(var, current, head, start, _gcq_next, gcq_remove(var), \
375 #define GCQ_DEQUEUED_PREV_COND(var, current, head, start, cond) \ argument
376 _GCQ_NP_COND(var, current, head, start, _gcq_prev, gcq_remove(var), \
378 #define GCQ_GOT_NEXT_COND_TYPED(tvar, current, head, start, type, name, \ argument
379 cond) _GCQ_NP_COND_TYPED(tvar, current, head, start, type, name, \
381 #define GCQ_GOT_PREV_COND_TYPED(tvar, current, head, start, type, name, \ argument
382 cond) _GCQ_NP_COND_TYPED(tvar, current, head, start, type, name, \
384 #define GCQ_DEQUEUED_NEXT_COND_TYPED(tvar, current, head, start, type, \ argument
385 name, cond) _GCQ_NP_COND_TYPED(tvar, current, head, start, type, \
387 #define GCQ_DEQUEUED_PREV_COND_TYPED(tvar, current, head, start, type, \ argument
388 name, cond) _GCQ_NP_COND_TYPED(tvar, current, head, start, type, \