bus_adjust_resource(9freebsd)

bus_adjust_resource9freebsd

Adjust resource allocated from a parent bus

Usage

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

Overview

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.

Releases

6 releases since Debian 8 (Jessie); the text changed 3 times.

  1. 8
  2. 9
  3. 10
  4. 11–13

From freebsd-manpages 12.2-2 in Debian 13 (Trixie). Parsed by carta from the page's mdoc source.