allocate_resource — allocate empty slot in the resource tree given range & alignment. The resource will be reallocated with a new size if it was already allocated
int allocate_resource ( | struct resource * root, |
| struct resource * new, | |
| resource_size_t size, | |
| resource_size_t min, | |
| resource_size_t max, | |
| resource_size_t align, | |
resource_size_t (*alignf)
(void *, const struct resource *, resource_size_t, resource_size_t), | |
void * alignf_data); |
struct resource * rootroot resource descriptor
struct resource * newresource descriptor desired by caller
resource_size_t sizerequested resource region size
resource_size_t minminimum boundary to allocate
resource_size_t maxmaximum boundary to allocate
resource_size_t alignalignment requested, in bytes
resource_size_t (*)(void *, const struct resource *, resource_size_t, resource_size_t) alignfalignment function, optional, called if not NULL
void * alignf_data
arbitrary data to pass to the alignf function