From 778931ae9fdc4dac2706f9cd7794ca6b3917a4e6 Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Tue, 13 Jan 2004 18:45:37 +0000 Subject: [PATCH] Add rman_get_device and rman_get_size, use macros in nexus.c --- sys/i386/i386/nexus.c | 17 +++++++++-------- sys/platform/pc32/i386/nexus.c | 17 +++++++++-------- sys/sys/rman.h | 5 ++++- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/sys/i386/i386/nexus.c b/sys/i386/i386/nexus.c index 252a827ac4..08dcc8ba6c 100644 --- a/sys/i386/i386/nexus.c +++ b/sys/i386/i386/nexus.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/i386/i386/nexus.c,v 1.26.2.10 2003/02/22 13:16:45 imp Exp $ - * $DragonFly: src/sys/i386/i386/Attic/nexus.c,v 1.4 2004/01/13 18:31:58 joerg Exp $ + * $DragonFly: src/sys/i386/i386/Attic/nexus.c,v 1.5 2004/01/13 18:45:37 joerg Exp $ */ /* @@ -443,18 +443,18 @@ nexus_activate_resource(device_t bus, device_t child, int type, int rid, if (rman_get_bustag(r) == I386_BUS_SPACE_MEM) { caddr_t vaddr = 0; - if (r->r_end < 1024 * 1024) { + if (rman_get_end(r) < 1024 * 1024) { /* * The first 1Mb is mapped at KERNBASE. */ - vaddr = (caddr_t)(uintptr_t)(KERNBASE + r->r_start); + vaddr = (caddr_t)(uintptr_t)(KERNBASE + rman_get_start(r)); } else { u_int32_t paddr; u_int32_t psize; u_int32_t poffs; - paddr = r->r_start; - psize = r->r_end - r->r_start; + paddr = rman_get_start(r); + psize = rman_get_size(r); poffs = paddr - trunc_page(paddr); vaddr = (caddr_t) pmap_mapdev(paddr-poffs, psize+poffs) + poffs; @@ -478,10 +478,11 @@ nexus_deactivate_resource(device_t bus, device_t child, int type, int rid, /* * If this is a memory resource, unmap it. */ - if ((rman_get_bustag(r) == I386_BUS_SPACE_MEM) && (r->r_end >= 1024 * 1024)) { + if ((rman_get_bustag(r) == I386_BUS_SPACE_MEM) && + (rman_get_end(r) >= 1024 * 1024)) { u_int32_t psize; - psize = r->r_end - r->r_start; + psize = rman_get_size(r); pmap_unmapdev((vm_offset_t)rman_get_virtual(r), psize); } @@ -492,7 +493,7 @@ static int nexus_release_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { - if (r->r_flags & RF_ACTIVE) { + if (rman_get_flags(r) & RF_ACTIVE) { int error = bus_deactivate_resource(child, type, rid, r); if (error) return error; diff --git a/sys/platform/pc32/i386/nexus.c b/sys/platform/pc32/i386/nexus.c index 376e6077c0..72ea96d805 100644 --- a/sys/platform/pc32/i386/nexus.c +++ b/sys/platform/pc32/i386/nexus.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/i386/i386/nexus.c,v 1.26.2.10 2003/02/22 13:16:45 imp Exp $ - * $DragonFly: src/sys/platform/pc32/i386/nexus.c,v 1.4 2004/01/13 18:31:58 joerg Exp $ + * $DragonFly: src/sys/platform/pc32/i386/nexus.c,v 1.5 2004/01/13 18:45:37 joerg Exp $ */ /* @@ -443,18 +443,18 @@ nexus_activate_resource(device_t bus, device_t child, int type, int rid, if (rman_get_bustag(r) == I386_BUS_SPACE_MEM) { caddr_t vaddr = 0; - if (r->r_end < 1024 * 1024) { + if (rman_get_end(r) < 1024 * 1024) { /* * The first 1Mb is mapped at KERNBASE. */ - vaddr = (caddr_t)(uintptr_t)(KERNBASE + r->r_start); + vaddr = (caddr_t)(uintptr_t)(KERNBASE + rman_get_start(r)); } else { u_int32_t paddr; u_int32_t psize; u_int32_t poffs; - paddr = r->r_start; - psize = r->r_end - r->r_start; + paddr = rman_get_start(r); + psize = rman_get_size(r); poffs = paddr - trunc_page(paddr); vaddr = (caddr_t) pmap_mapdev(paddr-poffs, psize+poffs) + poffs; @@ -478,10 +478,11 @@ nexus_deactivate_resource(device_t bus, device_t child, int type, int rid, /* * If this is a memory resource, unmap it. */ - if ((rman_get_bustag(r) == I386_BUS_SPACE_MEM) && (r->r_end >= 1024 * 1024)) { + if ((rman_get_bustag(r) == I386_BUS_SPACE_MEM) && + (rman_get_end(r) >= 1024 * 1024)) { u_int32_t psize; - psize = r->r_end - r->r_start; + psize = rman_get_size(r); pmap_unmapdev((vm_offset_t)rman_get_virtual(r), psize); } @@ -492,7 +493,7 @@ static int nexus_release_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { - if (r->r_flags & RF_ACTIVE) { + if (rman_get_flags(r) & RF_ACTIVE) { int error = bus_deactivate_resource(child, type, rid, r); if (error) return error; diff --git a/sys/sys/rman.h b/sys/sys/rman.h index e5baa5ba7f..33e9bf4a75 100644 --- a/sys/sys/rman.h +++ b/sys/sys/rman.h @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/sys/rman.h,v 1.5.2.1 2001/06/05 08:06:07 imp Exp $ - * $DragonFly: src/sys/sys/rman.h,v 1.4 2003/07/19 21:14:50 dillon Exp $ + * $DragonFly: src/sys/sys/rman.h,v 1.5 2004/01/13 18:45:37 joerg Exp $ */ #ifndef _SYS_RMAN_H_ @@ -64,6 +64,7 @@ struct resource { #define RF_TIMESHARE 0x0008 /* resource permits time-division sharing */ #define RF_WANTED 0x0010 /* somebody is waiting for this resource */ #define RF_FIRSTSHARE 0x0020 /* first in sharing list */ +#define RF_PREFETCHABLE 0x0040 /* resource is prefetchable */ #define RF_ALIGNMENT_SHIFT 10 /* alignment size bit starts bit 10 */ #define RF_ALIGNMENT_MASK (0x003F << RF_ALIGNMENT_SHIFT) @@ -100,6 +101,8 @@ uint32_t rman_make_alignment_flags(uint32_t size); #define rman_get_start(r) ((r)->r_start) #define rman_get_end(r) ((r)->r_end) +#define rman_get_device(r) ((r)->r_dev) +#define rman_get_size(r) ((r)->r_end - (r)->r_start + 1) #define rman_get_flags(r) ((r)->r_flags) #define rman_set_virtual(r,v) ((r)->r_virtual = (v)) #define rman_get_virtual(r) ((r)->r_virtual) -- 2.35.2