Lines Matching refs:iter
86 void *__genradix_iter_peek(struct genradix_iter *iter, in __genradix_iter_peek() argument
94 if (iter->offset == SIZE_MAX) in __genradix_iter_peek()
105 if (ilog2(iter->offset) >= genradix_depth_shift(level)) in __genradix_iter_peek()
111 i = (iter->offset >> genradix_depth_shift(level)) & in __genradix_iter_peek()
117 if (iter->offset + objs_per_ptr < iter->offset) { in __genradix_iter_peek()
118 iter->offset = SIZE_MAX; in __genradix_iter_peek()
119 iter->pos = SIZE_MAX; in __genradix_iter_peek()
124 iter->offset = round_down(iter->offset + objs_per_ptr, in __genradix_iter_peek()
126 iter->pos = (iter->offset >> GENRADIX_NODE_SHIFT) * in __genradix_iter_peek()
135 return &n->data[iter->offset & (GENRADIX_NODE_SIZE - 1)]; in __genradix_iter_peek()
139 void *__genradix_iter_peek_prev(struct genradix_iter *iter, in __genradix_iter_peek_prev() argument
148 if (iter->offset == SIZE_MAX) in __genradix_iter_peek_prev()
159 if (ilog2(iter->offset) >= genradix_depth_shift(level)) { in __genradix_iter_peek_prev()
160 iter->offset = genradix_depth_size(level); in __genradix_iter_peek_prev()
161 iter->pos = (iter->offset >> GENRADIX_NODE_SHIFT) * objs_per_page; in __genradix_iter_peek_prev()
163 iter->offset -= obj_size_plus_page_remainder; in __genradix_iter_peek_prev()
164 iter->pos--; in __genradix_iter_peek_prev()
170 i = (iter->offset >> genradix_depth_shift(level)) & in __genradix_iter_peek_prev()
176 iter->offset = round_down(iter->offset, objs_per_ptr); in __genradix_iter_peek_prev()
177 iter->pos = (iter->offset >> GENRADIX_NODE_SHIFT) * objs_per_page; in __genradix_iter_peek_prev()
179 if (!iter->offset) in __genradix_iter_peek_prev()
182 iter->offset -= obj_size_plus_page_remainder; in __genradix_iter_peek_prev()
183 iter->pos--; in __genradix_iter_peek_prev()
193 return &n->data[iter->offset & (GENRADIX_NODE_SIZE - 1)]; in __genradix_iter_peek_prev()