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);
271 static inline int ida_alloc(struct ida *ida, gfp_t gfp) in ida_alloc() argument
273 return ida_alloc_range(ida, 0, ~0, gfp); in ida_alloc()
289 static inline int ida_alloc_min(struct ida *ida, unsigned int min, gfp_t gfp) in ida_alloc_min() argument
291 return ida_alloc_range(ida, min, ~0, gfp); in ida_alloc_min()
307 static inline int ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp) in ida_alloc_max() argument
309 return ida_alloc_range(ida, 0, max, gfp); in ida_alloc_max()
312 static inline void ida_init(struct ida *ida) in ida_init() argument
314 xa_init_flags(&ida->xa, IDA_INIT_FLAGS); in ida_init()
321 #define ida_simple_get(ida, start, end, gfp) \ argument
322 ida_alloc_range(ida, start, (end) - 1, gfp)
323 #define ida_simple_remove(ida, id) ida_free(ida, id) argument
325 static inline bool ida_is_empty(const struct ida *ida) in ida_is_empty() argument
327 return xa_empty(&ida->xa); in ida_is_empty()