Lines Matching refs:iter
165 static inline unsigned int iter_shift(const struct radix_tree_iter *iter) in iter_shift() argument
168 return iter->shift; in iter_shift()
319 struct radix_tree_iter *iter, void __rcu **slot);
341 const struct radix_tree_iter *iter, unsigned int tag);
343 const struct radix_tree_iter *iter, unsigned int tag);
364 struct radix_tree_iter *iter, gfp_t gfp,
381 radix_tree_iter_init(struct radix_tree_iter *iter, unsigned long start) in radix_tree_iter_init() argument
391 iter->index = 0; in radix_tree_iter_init()
392 iter->next_index = start; in radix_tree_iter_init()
410 struct radix_tree_iter *iter, unsigned flags);
424 struct radix_tree_iter *iter, unsigned long index) in radix_tree_iter_lookup() argument
426 radix_tree_iter_init(iter, index); in radix_tree_iter_lookup()
427 return radix_tree_next_chunk(root, iter, RADIX_TREE_ITER_CONTIG); in radix_tree_iter_lookup()
442 struct radix_tree_iter *iter, unsigned long index) in radix_tree_iter_find() argument
444 radix_tree_iter_init(iter, index); in radix_tree_iter_find()
445 return radix_tree_next_chunk(root, iter, 0); in radix_tree_iter_find()
458 void __rcu **radix_tree_iter_retry(struct radix_tree_iter *iter) in radix_tree_iter_retry() argument
460 iter->next_index = iter->index; in radix_tree_iter_retry()
461 iter->tags = 0; in radix_tree_iter_retry()
466 __radix_tree_iter_add(struct radix_tree_iter *iter, unsigned long slots) in __radix_tree_iter_add() argument
468 return iter->index + (slots << iter_shift(iter)); in __radix_tree_iter_add()
482 struct radix_tree_iter *iter);
491 radix_tree_chunk_size(struct radix_tree_iter *iter) in radix_tree_chunk_size() argument
493 return (iter->next_index - iter->index) >> iter_shift(iter); in radix_tree_chunk_size()
498 struct radix_tree_iter *iter, unsigned flags);
502 struct radix_tree_iter *iter, unsigned flags) in __radix_tree_next_slot() argument
528 struct radix_tree_iter *iter, unsigned flags) in radix_tree_next_slot() argument
531 iter->tags >>= 1; in radix_tree_next_slot()
532 if (unlikely(!iter->tags)) in radix_tree_next_slot()
534 if (likely(iter->tags & 1ul)) { in radix_tree_next_slot()
535 iter->index = __radix_tree_iter_add(iter, 1); in radix_tree_next_slot()
540 unsigned offset = __ffs(iter->tags); in radix_tree_next_slot()
542 iter->tags >>= offset++; in radix_tree_next_slot()
543 iter->index = __radix_tree_iter_add(iter, offset); in radix_tree_next_slot()
548 long count = radix_tree_chunk_size(iter); in radix_tree_next_slot()
552 iter->index = __radix_tree_iter_add(iter, 1); in radix_tree_next_slot()
558 iter->next_index = 0; in radix_tree_next_slot()
567 return __radix_tree_next_slot(slot, iter, flags); in radix_tree_next_slot()
581 #define radix_tree_for_each_slot(slot, root, iter, start) \ argument
582 for (slot = radix_tree_iter_init(iter, start) ; \
583 slot || (slot = radix_tree_next_chunk(root, iter, 0)) ; \
584 slot = radix_tree_next_slot(slot, iter, 0))
596 #define radix_tree_for_each_contig(slot, root, iter, start) \ argument
597 for (slot = radix_tree_iter_init(iter, start) ; \
598 slot || (slot = radix_tree_next_chunk(root, iter, \
600 slot = radix_tree_next_slot(slot, iter, \
614 #define radix_tree_for_each_tagged(slot, root, iter, start, tag) \ argument
615 for (slot = radix_tree_iter_init(iter, start) ; \
616 slot || (slot = radix_tree_next_chunk(root, iter, \
618 slot = radix_tree_next_slot(slot, iter, \