tail head cat sleep
QR code linking to this page

Manual Pages  — BUS_ADJUST_RESOURCE

NAME

bus_adjust_resource – adjust resource allocated from a parent bus

CONTENTS

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)

BUS_ADJUST_RESOURCE (9) April 23, 2016

tail head cat sleep
QR code linking to this page


Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

Never write it in C if you can do it in `awk';
Never do it in `awk' if `sed' can handle it;
Never use `sed' when `tr' can do the job;
Never invoke `tr' when `cat' is sufficient;
Avoid using `cat' whenever possible.
— Taylor's Laws of Programming