table of contents
other versions
IDR_ALLOC(9) | Basic Kernel Library Functions | IDR_ALLOC(9) |
NAME¶
idr_alloc - allocate new idr entrySYNOPSIS¶
int
idr_alloc(struct idr * idr,
void * ptr, int start,
int end, gfp_t gfp_mask);
ARGUMENTS¶
idrthe (initialized) idr
ptr
pointer to be associated with the new id
start
the minimum id (inclusive)
end
the maximum id (exclusive, <= 0 for max)
gfp_mask
memory allocation flags
DESCRIPTION¶
Allocate an id in [start, end) and associate it with ptr. If no ID is available in the specified range, returns -ENOSPC. On memory allocation failure, returns -ENOMEM. Note that end is treated as max when <= 0. This is to always allow using start + N as end as long as N is inside integer range. The user is responsible for exclusively synchronizing all operations which may modify idr. However, read-only accesses such as idr_find or iteration can be performed under RCU read lock provided the user destroys ptr in RCU-safe way after removal from idr.COPYRIGHT¶
January 2017 | Kernel Hackers Manual 4.8. |