BUS_ADJUST_RESOURCE(9FREEBSD) - man page online | system kernel interfaces

Adjust resource allocated from a parent bus.

April 29, 2011
BUS_ADJUST_RESOURCE(9)            BSD Kernel Developer's Manual            BUS_ADJUST_RESOURCE(9)


bus_adjust_resource — adjust resource allocated from a parent bus


#include <sys/param.h> #include <sys/bus.h> #include <machine/bus.h> #include <sys/rman.h> #include <machine/resource.h> int bus_adjust_resource(device_t dev, int type, struct resource *r, u_long start, u_long end);


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 responsibil‐ ity to enforce any such requirements.


The bus_adjust_resource() method returns zero on success or an error code on failure.


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);


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.


bus_alloc_resource(9), bus_release_resource(9), device(9), driver(9)
BSD April 29, 2011 BSD
This manual Reference Other manuals
bus_adjust_resource(9freebsd) referred by bus_alloc_resource(9freebsd) | bus_alloc_resource_any(9freebsd) | rman(9freebsd) | rman_activate_resource(9freebsd) | rman_adjust_resource(9freebsd) | rman_await_resource(9freebsd) | rman_deactivate_resource(9freebsd) | rman_fini(9freebsd) | rman_first_free_region(9freebsd) | rman_get_bushandle(9freebsd) | rman_get_bustag(9freebsd) | rman_get_device(9freebsd) | rman_get_end(9freebsd) | rman_get_flags(9freebsd) | rman_get_rid(9freebsd) | rman_get_size(9freebsd) | rman_get_start(9freebsd) | rman_get_virtual(9freebsd) | rman_init(9freebsd) | rman_init_from_resource(9freebsd)
refer to bus_alloc_resource(9freebsd) | bus_release_resource(9freebsd) | device(9freebsd) | driver(9freebsd)