bus_adjust_resource — adjust resource allocated from a parent bus
Contents
Description
This function is used to ask the parent bus to adjust the resource range assigned to an allocated
resource. The resource r should have been allocated by a previous call to bus_alloc_resource(9). The
new resource range must overlap the existing range of r. The type argument should match the type
argument passed to bus_alloc_resource(9) when the resource was initially allocated.
Note that none of the constraints of the original allocation request such as alignment or boundary
restrictions are checked by bus_adjust_resource(). It is the caller's responsibility to enforce any such
requirements.
Errors
bus_adjust_resource() will fail if:
[EINVAL] The dev device does not have a parent device.
[EINVAL] The r resource is a shared resource.
[EINVAL] The new address range does not overlap with the existing address range of r.
[EBUSY] The new address range conflicts with another allocated resource.
Examples
Grow an existing memory resource by 4096 bytes.
struct resource *res;
int error;
error = bus_adjust_resource(dev, SYS_RES_MEMORY, res,
rman_get_start(res), rman_get_end(res) + 0x1000);
Name
bus_adjust_resource — adjust resource allocated from a parent bus
Return Values
The bus_adjust_resource() method returns zero on success or an error code on failure.
See Also
bus_alloc_resource(9), bus_release_resource(9), device(9), driver(9) Debian April 23, 2016 BUS_ADJUST_RESOURCE(9)
Synopsis
#include<sys/param.h>#include<sys/bus.h>#include<machine/bus.h>#include<sys/rman.h>#include<machine/resource.h>intbus_adjust_resource(device_tdev, inttype, structresource*r, rman_res_tstart, rman_res_tend);
