Lines Matching refs:_radix

143 #define genradix_init(_radix)					\  argument
145 *(_radix) = (typeof(*_radix)) __GENRADIX_INITIALIZER; \
156 #define genradix_free(_radix) __genradix_free(&(_radix)->tree) argument
175 #define __genradix_cast(_radix) (typeof((_radix)->type[0]) *) argument
176 #define __genradix_obj_size(_radix) sizeof((_radix)->type[0]) argument
177 #define __genradix_objs_per_page(_radix) \ argument
178 (GENRADIX_NODE_SIZE / sizeof((_radix)->type[0]))
179 #define __genradix_page_remainder(_radix) \ argument
180 (GENRADIX_NODE_SIZE % sizeof((_radix)->type[0]))
182 #define __genradix_idx_to_offset(_radix, _idx) \ argument
183 __idx_to_offset(_idx, __genradix_obj_size(_radix))
204 #define genradix_ptr_inlined(_radix, _idx) \ argument
205 (__genradix_cast(_radix) \
206 __genradix_ptr_inlined(&(_radix)->tree, \
207 __genradix_idx_to_offset(_radix, _idx)))
218 #define genradix_ptr(_radix, _idx) \ argument
219 (__genradix_cast(_radix) \
220 __genradix_ptr(&(_radix)->tree, \
221 __genradix_idx_to_offset(_radix, _idx)))
226 #define genradix_ptr_alloc_inlined(_radix, _idx, _gfp) \ argument
227 (__genradix_cast(_radix) \
228 (__genradix_ptr_inlined(&(_radix)->tree, \
229 __genradix_idx_to_offset(_radix, _idx)) ?: \
230 __genradix_ptr_alloc(&(_radix)->tree, \
231 __genradix_idx_to_offset(_radix, _idx), \
234 #define genradix_ptr_alloc_preallocated_inlined(_radix, _idx, _new_node, _gfp)\ argument
235 (__genradix_cast(_radix) \
236 (__genradix_ptr_inlined(&(_radix)->tree, \
237 __genradix_idx_to_offset(_radix, _idx)) ?: \
238 __genradix_ptr_alloc(&(_radix)->tree, \
239 __genradix_idx_to_offset(_radix, _idx), \
251 #define genradix_ptr_alloc(_radix, _idx, _gfp) \ argument
252 (__genradix_cast(_radix) \
253 __genradix_ptr_alloc(&(_radix)->tree, \
254 __genradix_idx_to_offset(_radix, _idx), \
257 #define genradix_ptr_alloc_preallocated(_radix, _idx, _new_node, _gfp)\ argument
258 (__genradix_cast(_radix) \
259 __genradix_ptr_alloc(&(_radix)->tree, \
260 __genradix_idx_to_offset(_radix, _idx), \
273 #define genradix_iter_init(_radix, _idx) \ argument
276 .offset = __genradix_idx_to_offset((_radix), (_idx)),\
289 #define genradix_iter_peek(_iter, _radix) \ argument
290 (__genradix_cast(_radix) \
291 __genradix_iter_peek(_iter, &(_radix)->tree, \
292 __genradix_objs_per_page(_radix)))
305 #define genradix_iter_peek_prev(_iter, _radix) \ argument
306 (__genradix_cast(_radix) \
307 __genradix_iter_peek_prev(_iter, &(_radix)->tree, \
308 __genradix_objs_per_page(_radix), \
309 __genradix_obj_size(_radix) + \
310 __genradix_page_remainder(_radix)))
330 #define genradix_iter_advance(_iter, _radix) \ argument
331 __genradix_iter_advance(_iter, __genradix_obj_size(_radix))
349 #define genradix_iter_rewind(_iter, _radix) \ argument
350 __genradix_iter_rewind(_iter, __genradix_obj_size(_radix))
352 #define genradix_for_each_from(_radix, _iter, _p, _start) \ argument
353 for (_iter = genradix_iter_init(_radix, _start); \
354 (_p = genradix_iter_peek(&_iter, _radix)) != NULL; \
355 genradix_iter_advance(&_iter, _radix))
366 #define genradix_for_each(_radix, _iter, _p) \ argument
367 genradix_for_each_from(_radix, _iter, _p, 0)
369 #define genradix_last_pos(_radix) \ argument
370 (SIZE_MAX / GENRADIX_NODE_SIZE * __genradix_objs_per_page(_radix) - 1)
381 #define genradix_for_each_reverse(_radix, _iter, _p) \ argument
382 for (_iter = genradix_iter_init(_radix, genradix_last_pos(_radix));\
383 (_p = genradix_iter_peek_prev(&_iter, _radix)) != NULL;\
384 genradix_iter_rewind(&_iter, _radix))
396 #define genradix_prealloc(_radix, _nr, _gfp) \ argument
397 __genradix_prealloc(&(_radix)->tree, \
398 __genradix_idx_to_offset(_radix, _nr + 1),\