Lines Matching refs:id
39 unsigned int id = *nextid; in idr_alloc_u32() local
44 id = (id < base) ? 0 : id - base; in idr_alloc_u32()
45 radix_tree_iter_init(&iter, id); in idr_alloc_u32()
81 u32 id = start; in idr_alloc() local
87 ret = idr_alloc_u32(idr, ptr, &id, end > 0 ? end - 1 : INT_MAX, gfp); in idr_alloc()
91 return id; in idr_alloc()
119 u32 id = idr->idr_next; in idr_alloc_cyclic() local
122 if ((int)id < start) in idr_alloc_cyclic()
123 id = start; in idr_alloc_cyclic()
125 err = idr_alloc_u32(idr, ptr, &id, max, gfp); in idr_alloc_cyclic()
126 if ((err == -ENOSPC) && (id > start)) { in idr_alloc_cyclic()
127 id = start; in idr_alloc_cyclic()
128 err = idr_alloc_u32(idr, ptr, &id, max, gfp); in idr_alloc_cyclic()
133 idr->idr_next = id + 1; in idr_alloc_cyclic()
134 return id; in idr_alloc_cyclic()
152 void *idr_remove(struct idr *idr, unsigned long id) in idr_remove() argument
154 return radix_tree_delete_item(&idr->idr_rt, id - idr->idr_base, NULL); in idr_remove()
172 void *idr_find(const struct idr *idr, unsigned long id) in idr_find() argument
174 return radix_tree_lookup(&idr->idr_rt, id - idr->idr_base); in idr_find()
196 int (*fn)(int id, void *p, void *data), void *data) in idr_for_each() argument
204 unsigned long id = iter.index + base; in idr_for_each() local
206 if (WARN_ON_ONCE(id > INT_MAX)) in idr_for_each()
208 ret = fn(id, rcu_dereference_raw(*slot), data); in idr_for_each()
233 unsigned long id = *nextid; in idr_get_next_ul() local
235 id = (id < base) ? 0 : id - base; in idr_get_next_ul()
236 radix_tree_for_each_slot(slot, &idr->idr_rt, &iter, id) { in idr_get_next_ul()
266 unsigned long id = *nextid; in idr_get_next() local
267 void *entry = idr_get_next_ul(idr, &id); in idr_get_next()
269 if (WARN_ON_ONCE(id > INT_MAX)) in idr_get_next()
271 *nextid = id; in idr_get_next()
290 void *idr_replace(struct idr *idr, void *ptr, unsigned long id) in idr_replace() argument
296 id -= idr->idr_base; in idr_replace()
298 entry = __radix_tree_lookup(&idr->idr_rt, id, &node, &slot); in idr_replace()
299 if (!slot || radix_tree_tag_get(&idr->idr_rt, id, IDR_FREE)) in idr_replace()
484 void ida_free(struct ida *ida, unsigned int id) in ida_free() argument
486 XA_STATE(xas, &ida->xa, id / IDA_BITMAP_BITS); in ida_free()
487 unsigned bit = id % IDA_BITMAP_BITS; in ida_free()
491 BUG_ON((int)id < 0); in ida_free()
521 WARN(1, "ida_free called for id=%d which is not allocated.\n", id); in ida_free()