Add rman_get_device and rman_get_size, use macros in nexus.c
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Tue, 13 Jan 2004 18:45:37 +0000 (18:45 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Tue, 13 Jan 2004 18:45:37 +0000 (18:45 +0000)
sys/i386/i386/nexus.c
sys/platform/pc32/i386/nexus.c
sys/sys/rman.h

index 252a827..08dcc8b 100644 (file)
@@ -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;
index 376e607..72ea96d 100644 (file)
@@ -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;
index e5baa5b..33e9bf4 100644 (file)
@@ -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)