/* * Helpers to map/unmap bus memory */ int bus_space_map(bus_space_tag_t tag, bus_addr_t address, bus_size_t size, int flags, bus_space_handle_t *handlep) { return (sparc64_bus_mem_map(tag, address, size, flags, 0, handlep)); }
static int sbus_activate_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { void *p; int error; if (type == SYS_RES_IRQ) { return (BUS_ACTIVATE_RESOURCE(device_get_parent(bus), child, type, rid, r)); } if (type == SYS_RES_MEMORY) { /* * Need to memory-map the device space, as some drivers * depend on the virtual address being set and usable. */ error = sparc64_bus_mem_map(rman_get_bustag(r), rman_get_bushandle(r), rman_get_size(r), 0, 0, &p); if (error != 0) return (error); rman_set_virtual(r, p); } return (rman_activate_resource(r)); }