Main index | Section 9 | Options |
#include <sys/param.h>
#include <sys/bus.h>
#include <machine/bus.h>
#include <sys/rman.h>
#include <machine/resource.h>
The arguments are as follows:
dev | |
The device that owns the resource. | |
type | |
The type of resource to map.
It is one of:
| |
SYS_RES_IOPORT | |
for I/O ports | |
SYS_RES_MEMORY | |
for I/O memory | |
r | |
A pointer to the struct resource returned by bus_alloc_resource(9). | |
args | |
A set of optional properties to apply when creating a mapping. This argument can be set to NULL to request a mapping of the entire resource with the default properties. | |
map | |
The resource mapping to create or destroy. | |
The wrapper API for struct resource objects described in bus_activate_resource(9) can also be used with struct resource_map. For example, a pointer to a mapping object can be passed as the first argument to bus_read_4(). This wrapper API is preferred over using the r_bustag and r_bushandle members directly.
offset, length | |
These two members specify a region of the resource to map. By default a mapping is created for the entire resource. The offset is relative to the start of the resource. | |
memattr | |
Specifies a memory attribute to use when mapping the resource. By default memory mappings use the VM_MEMATTR_UNCACHEABLE attribute. | |
struct resource *r; struct resource_map map; struct resource_map_request req; uint32_t val; int rid;rid = PCIR_BAR(0); r = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE | RF_UNMAPPED); resource_init_map_request(&req); req.memattr = VM_MEMATTR_WRITE_COMBINING; bus_map_resource(dev, SYS_RES_MEMORY, r, &req, &map); val = bus_read_4(&map, 0);
BUS_MAP_RESOURCE (9) | February 5, 2018 |
Main index | Section 9 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.