Lines Matching refs:ida
246 struct ida { struct
255 #define DEFINE_IDA(name) struct ida name = IDA_INIT(name) argument
257 int ida_alloc_range(struct ida *, unsigned int min, unsigned int max, gfp_t);
258 void ida_free(struct ida *, unsigned int id);
259 void ida_destroy(struct ida *ida);
273 static inline int ida_alloc(struct ida *ida, gfp_t gfp) in ida_alloc() argument
275 return ida_alloc_range(ida, 0, ~0, gfp); in ida_alloc()
291 static inline int ida_alloc_min(struct ida *ida, unsigned int min, gfp_t gfp) in ida_alloc_min() argument
293 return ida_alloc_range(ida, min, ~0, gfp); in ida_alloc_min()
309 static inline int ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp) in ida_alloc_max() argument
311 return ida_alloc_range(ida, 0, max, gfp); in ida_alloc_max()
314 static inline void ida_init(struct ida *ida) in ida_init() argument
316 xa_init_flags(&ida->xa, IDA_INIT_FLAGS); in ida_init()
323 #define ida_simple_get(ida, start, end, gfp) \ argument
324 ida_alloc_range(ida, start, (end) - 1, gfp)
325 #define ida_simple_remove(ida, id) ida_free(ida, id) argument
327 static inline bool ida_is_empty(const struct ida *ida) in ida_is_empty() argument
329 return xa_empty(&ida->xa); in ida_is_empty()