Man

Command Section
BUS_ADJUST_RESOURCE(9)                       FreeBSD Kernel Developer's Manual

NAME
     bus_adjust_resource - adjust resource allocated from a parent bus

SYNOPSIS
     #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,
         rman_res_t start, rman_res_t end);

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.

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

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

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.

SEE ALSO
     bus_alloc_resource(9), bus_release_resource(9), device(9), driver(9)

FreeBSD 11.1-RELEASE-p4         April 23, 2016         FreeBSD 11.1-RELEASE-p4
Command Section