Lines Matching refs:ida
263 struct ida { struct
272 #define DEFINE_IDA(name) struct ida name = IDA_INIT(name) argument
274 int ida_alloc_range(struct ida *, unsigned int min, unsigned int max, gfp_t);
275 void ida_free(struct ida *, unsigned int id);
276 void ida_destroy(struct ida *ida);
277 int ida_find_first_range(struct ida *ida, unsigned int min, unsigned int max);
291 static inline int ida_alloc(struct ida *ida, gfp_t gfp) in ida_alloc() argument
293 return ida_alloc_range(ida, 0, ~0, gfp); in ida_alloc()
309 static inline int ida_alloc_min(struct ida *ida, unsigned int min, gfp_t gfp) in ida_alloc_min() argument
311 return ida_alloc_range(ida, min, ~0, gfp); in ida_alloc_min()
327 static inline int ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp) in ida_alloc_max() argument
329 return ida_alloc_range(ida, 0, max, gfp); in ida_alloc_max()
332 static inline void ida_init(struct ida *ida) in ida_init() argument
334 xa_init_flags(&ida->xa, IDA_INIT_FLAGS); in ida_init()
341 #define ida_simple_get(ida, start, end, gfp) \ argument
342 ida_alloc_range(ida, start, (end) - 1, gfp)
343 #define ida_simple_remove(ida, id) ida_free(ida, id) argument
345 static inline bool ida_is_empty(const struct ida *ida) in ida_is_empty() argument
347 return xa_empty(&ida->xa); in ida_is_empty()
350 static inline bool ida_exists(struct ida *ida, unsigned int id) in ida_exists() argument
352 return ida_find_first_range(ida, id, id) == id; in ida_exists()
355 static inline int ida_find_first(struct ida *ida) in ida_find_first() argument
357 return ida_find_first_range(ida, 0, ~0); in ida_find_first()