Name

idr_get_new_above — allocate new idr entry above or equal to a start id

Synopsis

int idr_get_new_above (struct idr * idp,
 void * ptr,
 int starting_id,
 int * id);
 

Arguments

idp

idr handle

ptr

pointer you want associated with the id

starting_id

id to start search at

id

pointer to the allocated handle

Description

This is the allocate id function. It should be called with any required locks.

If allocation from IDR's private freelist fails, idr_get_new_above will return -EAGAIN. The caller should retry the idr_pre_get call to refill IDR's preallocation and then retry the idr_get_new_above call.

If the idr is full idr_get_new_above will return -ENOSPC.

id returns a value in the range starting_id ... 0x7fffffff