bus_adjust_resource(9) adjust resource allocated from a parent bus

SYNOPSIS

In sys/param.h In sys/bus.h

In machine/bus.h In sys/rman.h In machine/resource.h Ft int Fn bus_adjust_resource device_t dev int type struct resource *r u_long start u_long end

DESCRIPTION

This function is used to ask the parent bus to adjust the resource range assigned to an allocated resource. The resource Fa r should have been allocated by a previous call to bus_alloc_resource9. The new resource range must overlap the existing range of Fa r . The Fa type argument should match the Fa type argument passed to bus_alloc_resource9 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 Fn bus_adjust_resource . It is the caller's responsibility to enforce any such requirements.

RETURN VALUES

The Fn 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

Fn bus_adjust_resource will fail if:

Bq Er EINVAL
The Fa dev device does not have a parent device.
Bq Er EINVAL
The Fa r resource is a shared resource.
Bq Er EINVAL
The new address range does not overlap with the existing address range of Fa r .
Bq Er EBUSY
The new address range conflicts with another allocated resource.