Lines Matching refs:ida
244 struct ida { struct
253 #define DEFINE_IDA(name) struct ida name = IDA_INIT(name) argument
255 int ida_alloc_range(struct ida *, unsigned int min, unsigned int max, gfp_t);
256 void ida_free(struct ida *, unsigned int id);
257 void ida_destroy(struct ida *ida);
270 static inline int ida_alloc(struct ida *ida, gfp_t gfp) in ida_alloc() argument
272 return ida_alloc_range(ida, 0, ~0, gfp); in ida_alloc()
287 static inline int ida_alloc_min(struct ida *ida, unsigned int min, gfp_t gfp) in ida_alloc_min() argument
289 return ida_alloc_range(ida, min, ~0, gfp); in ida_alloc_min()
304 static inline int ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp) in ida_alloc_max() argument
306 return ida_alloc_range(ida, 0, max, gfp); in ida_alloc_max()
309 static inline void ida_init(struct ida *ida) in ida_init() argument
311 xa_init_flags(&ida->xa, IDA_INIT_FLAGS); in ida_init()
314 #define ida_simple_get(ida, start, end, gfp) \ argument
315 ida_alloc_range(ida, start, (end) - 1, gfp)
316 #define ida_simple_remove(ida, id) ida_free(ida, id) argument
318 static inline bool ida_is_empty(const struct ida *ida) in ida_is_empty() argument
320 return xa_empty(&ida->xa); in ida_is_empty()