Module Name:    src
Committed By:   uebayasi
Date:           Wed Apr 28 08:31:07 UTC 2010

Modified Files:
        src/sys/arch/acorn26/acorn26 [uebayasi-xip]: pmap.c
        src/sys/arch/alpha/alpha [uebayasi-xip]: machdep.c pmap.c
        src/sys/arch/amd64/amd64 [uebayasi-xip]: machdep.c
        src/sys/arch/arm/arm32 [uebayasi-xip]: pmap.c
        src/sys/arch/i386/i386 [uebayasi-xip]: machdep.c
        src/sys/arch/ia64/ia64 [uebayasi-xip]: machdep.c pmap.c
        src/sys/arch/m68k/m68k [uebayasi-xip]: pmap_motorola.c
        src/sys/arch/mips/mips [uebayasi-xip]: mips_machdep.c pmap.c
        src/sys/arch/powerpc/ibm4xx [uebayasi-xip]: pmap.c
        src/sys/arch/powerpc/isa [uebayasi-xip]: isadma_machdep.c
        src/sys/arch/powerpc/marvell [uebayasi-xip]: bus_dma.c
        src/sys/arch/powerpc/oea [uebayasi-xip]: pmap.c
        src/sys/arch/powerpc/powerpc [uebayasi-xip]: bus_dma.c
        src/sys/arch/sh3/sh3 [uebayasi-xip]: mem.c pmap.c
        src/sys/arch/vax/vax [uebayasi-xip]: pmap.c
        src/sys/arch/x68k/x68k [uebayasi-xip]: machdep.c mem.c
        src/sys/uvm [uebayasi-xip]: uvm_page.c uvm_page.h uvm_pglist.c

Log Message:
Always use struct vm_physseg *vm_physmem_ptrs[] in MD code.


To generate a diff of this commit:
cvs rdiff -u -r1.30.2.1 -r1.30.2.2 src/sys/arch/acorn26/acorn26/pmap.c
cvs rdiff -u -r1.325 -r1.325.2.1 src/sys/arch/alpha/alpha/machdep.c
cvs rdiff -u -r1.252.2.1 -r1.252.2.2 src/sys/arch/alpha/alpha/pmap.c
cvs rdiff -u -r1.141 -r1.141.2.1 src/sys/arch/amd64/amd64/machdep.c
cvs rdiff -u -r1.211.2.10 -r1.211.2.11 src/sys/arch/arm/arm32/pmap.c
cvs rdiff -u -r1.681 -r1.681.2.1 src/sys/arch/i386/i386/machdep.c
cvs rdiff -u -r1.22 -r1.22.2.1 src/sys/arch/ia64/ia64/machdep.c
cvs rdiff -u -r1.24.2.1 -r1.24.2.2 src/sys/arch/ia64/ia64/pmap.c
cvs rdiff -u -r1.55.2.1 -r1.55.2.2 src/sys/arch/m68k/m68k/pmap_motorola.c
cvs rdiff -u -r1.225 -r1.225.2.1 src/sys/arch/mips/mips/mips_machdep.c
cvs rdiff -u -r1.188.2.2 -r1.188.2.3 src/sys/arch/mips/mips/pmap.c
cvs rdiff -u -r1.60.2.1 -r1.60.2.2 src/sys/arch/powerpc/ibm4xx/pmap.c
cvs rdiff -u -r1.5 -r1.5.20.1 src/sys/arch/powerpc/isa/isadma_machdep.c
cvs rdiff -u -r1.20 -r1.20.2.1 src/sys/arch/powerpc/marvell/bus_dma.c
cvs rdiff -u -r1.69.2.1 -r1.69.2.2 src/sys/arch/powerpc/oea/pmap.c
cvs rdiff -u -r1.35 -r1.35.2.1 src/sys/arch/powerpc/powerpc/bus_dma.c
cvs rdiff -u -r1.26 -r1.26.64.1 src/sys/arch/sh3/sh3/mem.c
cvs rdiff -u -r1.74.2.2 -r1.74.2.3 src/sys/arch/sh3/sh3/pmap.c
cvs rdiff -u -r1.175 -r1.175.2.1 src/sys/arch/vax/vax/pmap.c
cvs rdiff -u -r1.164 -r1.164.2.1 src/sys/arch/x68k/x68k/machdep.c
cvs rdiff -u -r1.36 -r1.36.64.1 src/sys/arch/x68k/x68k/mem.c
cvs rdiff -u -r1.153.2.26 -r1.153.2.27 src/sys/uvm/uvm_page.c
cvs rdiff -u -r1.59.2.17 -r1.59.2.18 src/sys/uvm/uvm_page.h
cvs rdiff -u -r1.45.2.1 -r1.45.2.2 src/sys/uvm/uvm_pglist.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/acorn26/acorn26/pmap.c
diff -u src/sys/arch/acorn26/acorn26/pmap.c:1.30.2.1 src/sys/arch/acorn26/acorn26/pmap.c:1.30.2.2
--- src/sys/arch/acorn26/acorn26/pmap.c:1.30.2.1	Tue Apr 27 07:19:27 2010
+++ src/sys/arch/acorn26/acorn26/pmap.c	Wed Apr 28 08:31:05 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.30.2.1 2010/04/27 07:19:27 uebayasi Exp $ */
+/* $NetBSD: pmap.c,v 1.30.2.2 2010/04/28 08:31:05 uebayasi Exp $ */
 /*-
  * Copyright (c) 1997, 1998, 2000 Ben Harris
  * All rights reserved.
@@ -102,7 +102,7 @@
 
 #include <sys/param.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.30.2.1 2010/04/27 07:19:27 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.30.2.2 2010/04/28 08:31:05 uebayasi Exp $");
 
 #include <sys/kernel.h> /* for cold */
 #include <sys/malloc.h>
@@ -299,11 +299,11 @@
 	addr = 0;
 	size = round_page(size);
 	for (i = 0; i < vm_nphysseg; i++) {
-		if (vm_physmem[i].avail_start < vm_physmem[i].avail_end) {
+		if (VM_PHYSMEM_PTR(i)->avail_start < VM_PHYSMEM_PTR(i)->avail_end) {
 			addr = (vaddr_t)
 			    ((char*)MEMC_PHYS_BASE +
-				ptoa(vm_physmem[i].avail_start));
-			vm_physmem[i].avail_start++;
+				ptoa(VM_PHYSMEM_PTR(i)->avail_start));
+			VM_PHYSMEM_PTR(i)->avail_start++;
 			break;
 		}
 	}

Index: src/sys/arch/alpha/alpha/machdep.c
diff -u src/sys/arch/alpha/alpha/machdep.c:1.325 src/sys/arch/alpha/alpha/machdep.c:1.325.2.1
--- src/sys/arch/alpha/alpha/machdep.c:1.325	Thu Dec 10 14:13:48 2009
+++ src/sys/arch/alpha/alpha/machdep.c	Wed Apr 28 08:31:05 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.325 2009/12/10 14:13:48 matt Exp $ */
+/* $NetBSD: machdep.c,v 1.325.2.1 2010/04/28 08:31:05 uebayasi Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.325 2009/12/10 14:13:48 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.325.2.1 2010/04/28 08:31:05 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -605,7 +605,7 @@
 		vsize_t sz = (vsize_t)round_page(MSGBUFSIZE);
 		vsize_t reqsz = sz;
 
-		vps = &vm_physmem[vm_nphysseg - 1];
+		vps = VM_PHYSMEM_PTR(vm_nphysseg - 1);
 
 		/* shrink so that it'll fit in the last segment */
 		if ((vps->avail_end - vps->avail_start) < atop(sz))

Index: src/sys/arch/alpha/alpha/pmap.c
diff -u src/sys/arch/alpha/alpha/pmap.c:1.252.2.1 src/sys/arch/alpha/alpha/pmap.c:1.252.2.2
--- src/sys/arch/alpha/alpha/pmap.c:1.252.2.1	Thu Feb 25 03:44:16 2010
+++ src/sys/arch/alpha/alpha/pmap.c	Wed Apr 28 08:31:05 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.252.2.1 2010/02/25 03:44:16 uebayasi Exp $ */
+/* $NetBSD: pmap.c,v 1.252.2.2 2010/04/28 08:31:05 uebayasi Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001, 2007, 2008 The NetBSD Foundation, Inc.
@@ -142,7 +142,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.252.2.1 2010/02/25 03:44:16 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.252.2.2 2010/04/28 08:31:05 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -788,8 +788,8 @@
 	 * the fact that BSEARCH sorts the vm_physmem[] array
 	 * for us.
 	 */
-	avail_start = ptoa(vm_physmem[0].start);
-	avail_end = ptoa(vm_physmem[vm_nphysseg - 1].end);
+	avail_start = ptoa(VM_PHYSMEM_PTR(0)->start);
+	avail_end = ptoa(VM_PHYSMEM_PTR(vm_nphysseg - 1)->end);
 	virtual_end = VM_MIN_KERNEL_ADDRESS + lev3mapsize * PAGE_SIZE;
 
 #if 0
@@ -1028,34 +1028,34 @@
 
 #if 0
 		printf("     bank %d: avail_start 0x%lx, start 0x%lx, "
-		    "avail_end 0x%lx\n", bank, vm_physmem[bank].avail_start,
-		    vm_physmem[bank].start, vm_physmem[bank].avail_end);
+		    "avail_end 0x%lx\n", bank, VM_PHYSMEM_PTR(bank)->avail_start,
+		    VM_PHYSMEM_PTR(bank)->start, VM_PHYSMEM_PTR(bank)->avail_end);
 #endif
 
-		if (vm_physmem[bank].avail_start != vm_physmem[bank].start ||
-		    vm_physmem[bank].avail_start >= vm_physmem[bank].avail_end)
+		if (VM_PHYSMEM_PTR(bank)->avail_start != VM_PHYSMEM_PTR(bank)->start ||
+		    VM_PHYSMEM_PTR(bank)->avail_start >= VM_PHYSMEM_PTR(bank)->avail_end)
 			continue;
 
 #if 0
 		printf("             avail_end - avail_start = 0x%lx\n",
-		    vm_physmem[bank].avail_end - vm_physmem[bank].avail_start);
+		    VM_PHYSMEM_PTR(bank)->avail_end - VM_PHYSMEM_PTR(bank)->avail_start);
 #endif
 
-		if ((vm_physmem[bank].avail_end - vm_physmem[bank].avail_start)
+		if ((VM_PHYSMEM_PTR(bank)->avail_end - VM_PHYSMEM_PTR(bank)->avail_start)
 		    < npgs)
 			continue;
 
 		/*
 		 * There are enough pages here; steal them!
 		 */
-		pa = ptoa(vm_physmem[bank].avail_start);
-		vm_physmem[bank].avail_start += npgs;
-		vm_physmem[bank].start += npgs;
+		pa = ptoa(VM_PHYSMEM_PTR(bank)->avail_start);
+		VM_PHYSMEM_PTR(bank)->avail_start += npgs;
+		VM_PHYSMEM_PTR(bank)->start += npgs;
 
 		/*
 		 * Have we used up this segment?
 		 */
-		if (vm_physmem[bank].avail_start == vm_physmem[bank].end) {
+		if (VM_PHYSMEM_PTR(bank)->avail_start == VM_PHYSMEM_PTR(bank)->end) {
 			if (vm_nphysseg == 1)
 				panic("pmap_steal_memory: out of memory!");
 
@@ -1063,7 +1063,7 @@
 			vm_nphysseg--;
 			for (x = bank; x < vm_nphysseg; x++) {
 				/* structure copy */
-				vm_physmem[x] = vm_physmem[x + 1];
+				vm_physmem_ptrs[x] = vm_physmem_ptrs[x + 1];
 			}
 		}
 
@@ -1114,12 +1114,12 @@
 #if 0
 	for (bank = 0; bank < vm_nphysseg; bank++) {
 		printf("bank %d\n", bank);
-		printf("\tstart = 0x%x\n", ptoa(vm_physmem[bank].start));
-		printf("\tend = 0x%x\n", ptoa(vm_physmem[bank].end));
+		printf("\tstart = 0x%x\n", ptoa(VM_PHYSMEM_PTR(bank)->start));
+		printf("\tend = 0x%x\n", ptoa(VM_PHYSMEM_PTR(bank)->end));
 		printf("\tavail_start = 0x%x\n",
-		    ptoa(vm_physmem[bank].avail_start));
+		    ptoa(VM_PHYSMEM_PTR(bank)->avail_start));
 		printf("\tavail_end = 0x%x\n",
-		    ptoa(vm_physmem[bank].avail_end));
+		    ptoa(VM_PHYSMEM_PTR(bank)->avail_end));
 	}
 #endif
 }

Index: src/sys/arch/amd64/amd64/machdep.c
diff -u src/sys/arch/amd64/amd64/machdep.c:1.141 src/sys/arch/amd64/amd64/machdep.c:1.141.2.1
--- src/sys/arch/amd64/amd64/machdep.c:1.141	Thu Dec 31 01:11:28 2009
+++ src/sys/arch/amd64/amd64/machdep.c	Wed Apr 28 08:31:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.141 2009/12/31 01:11:28 jym Exp $	*/
+/*	$NetBSD: machdep.c,v 1.141.2.1 2010/04/28 08:31:05 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998, 2000, 2006, 2007, 2008
@@ -107,7 +107,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.141 2009/12/31 01:11:28 jym Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.141.2.1 2010/04/28 08:31:05 uebayasi Exp $");
 
 /* #define XENDEBUG_LOW  */
 
@@ -1157,7 +1157,7 @@
 	vps = NULL;
 
 	for (x = 0; x < vm_nphysseg; x++) {
-		vps = &vm_physmem[x];
+		vps = VM_PHYSMEM_PTR(x);
 		if (ptoa(vps->avail_end) == avail_end)
 			break;
 	}
@@ -1176,13 +1176,13 @@
 	/* Remove the last segment if it now has no pages. */
 	if (vps->start == vps->end) {
 		for (vm_nphysseg--; x < vm_nphysseg; x++)
-			vm_physmem[x] = vm_physmem[x + 1];
+			vm_physmem_ptrs[x] = vm_physmem_ptrs[x + 1];
 	}
 
 	/* Now find where the new avail_end is. */
 	for (avail_end = 0, x = 0; x < vm_nphysseg; x++)
-		if (vm_physmem[x].avail_end > avail_end)
-			avail_end = vm_physmem[x].avail_end;
+		if (VM_PHYSMEM_PTR(x)->avail_end > avail_end)
+			avail_end = VM_PHYSMEM_PTR(x)->avail_end;
 	avail_end = ptoa(avail_end);
 
 	if (sz == reqsz)

Index: src/sys/arch/arm/arm32/pmap.c
diff -u src/sys/arch/arm/arm32/pmap.c:1.211.2.10 src/sys/arch/arm/arm32/pmap.c:1.211.2.11
--- src/sys/arch/arm/arm32/pmap.c:1.211.2.10	Tue Apr 27 07:19:28 2010
+++ src/sys/arch/arm/arm32/pmap.c	Wed Apr 28 08:31:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.211.2.10 2010/04/27 07:19:28 uebayasi Exp $	*/
+/*	$NetBSD: pmap.c,v 1.211.2.11 2010/04/28 08:31:05 uebayasi Exp $	*/
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -213,7 +213,7 @@
 #include <machine/param.h>
 #include <arm/arm32/katelib.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.211.2.10 2010/04/27 07:19:28 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.211.2.11 2010/04/28 08:31:05 uebayasi Exp $");
 
 #ifdef PMAP_DEBUG
 
@@ -5380,8 +5380,8 @@
 	 * One could argue whether this should be the entire memory or just
 	 * the memory that is useable in a user process.
 	 */
-	avail_start = ptoa(vm_physmem[0].start);
-	avail_end = ptoa(vm_physmem[vm_nphysseg - 1].end);
+	avail_start = ptoa(VM_PHYSMEM_PTR(0)->start);
+	avail_end = ptoa(VM_PHYSMEM_PTR(vm_nphysseg - 1)->end);
 
 	/*
 	 * Now we need to free enough pv_entry structures to allow us to get
@@ -6561,7 +6561,8 @@
 			break;
 	}
 	KASSERT(mask == 0);
-	for (ps = vm_physmem, i = 0; i < vm_nphysseg; ps++, i++) {
+	for (i = 0; i < vm_nphysseg; i++) {
+		ps = vm_physmem_ptrs[i];
 		if (ps->avail_start == atop(pv->pv_pa + pv->pv_size)
 		    && pv->pv_va + pv->pv_size <= ptoa(ps->avail_end)) {
 			rpv->pv_va = pv->pv_va;

Index: src/sys/arch/i386/i386/machdep.c
diff -u src/sys/arch/i386/i386/machdep.c:1.681 src/sys/arch/i386/i386/machdep.c:1.681.2.1
--- src/sys/arch/i386/i386/machdep.c:1.681	Thu Dec 10 14:13:50 2009
+++ src/sys/arch/i386/i386/machdep.c	Wed Apr 28 08:31:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.681 2009/12/10 14:13:50 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.681.2.1 2010/04/28 08:31:06 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006, 2008, 2009
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.681 2009/12/10 14:13:50 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.681.2.1 2010/04/28 08:31:06 uebayasi Exp $");
 
 #include "opt_beep.h"
 #include "opt_compat_ibcs2.h"
@@ -1194,7 +1194,7 @@
  search_again:
 	vps = NULL;
 	for (x = 0; x < vm_nphysseg; ++x) {
-		vps = &vm_physmem[x];
+		vps = VM_PHYSMEM_PTR(x);
 		if (ptoa(vps->avail_end) == avail_end) {
 			break;
 		}
@@ -1214,13 +1214,13 @@
 	/* Remove the last segment if it now has no pages. */
 	if (vps->start == vps->end) {
 		for (--vm_nphysseg; x < vm_nphysseg; x++)
-			vm_physmem[x] = vm_physmem[x + 1];
+			vm_physmem_ptrs[x] = vm_physmem_ptrs[x + 1];
 	}
 
 	/* Now find where the new avail_end is. */
 	for (avail_end = 0, x = 0; x < vm_nphysseg; x++)
-		if (vm_physmem[x].avail_end > avail_end)
-			avail_end = vm_physmem[x].avail_end;
+		if (VM_PHYSMEM_PTR(x)->avail_end > avail_end)
+			avail_end = VM_PHYSMEM_PTR(x)->avail_end;
 	avail_end = ptoa(avail_end);
 
 	if (sz == reqsz)

Index: src/sys/arch/ia64/ia64/machdep.c
diff -u src/sys/arch/ia64/ia64/machdep.c:1.22 src/sys/arch/ia64/ia64/machdep.c:1.22.2.1
--- src/sys/arch/ia64/ia64/machdep.c:1.22	Thu Dec 10 14:13:50 2009
+++ src/sys/arch/ia64/ia64/machdep.c	Wed Apr 28 08:31:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.22 2009/12/10 14:13:50 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.22.2.1 2010/04/28 08:31:06 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 2003,2004 Marcel Moolenaar
@@ -261,14 +261,14 @@
 
 		printf("Physical memory chunk(s):\n");
 		for (lcv = 0;
-		    lcv < vm_nphysseg || vm_physmem[lcv].avail_end != 0;
+		    lcv < vm_nphysseg || VM_PHYSMEM_PTR(lcv)->avail_end != 0;
 		    lcv++) {
-			sizetmp = vm_physmem[lcv].avail_end -
-			    vm_physmem[lcv].avail_start;
+			sizetmp = VM_PHYSMEM_PTR(lcv)->avail_end -
+			    VM_PHYSMEM_PTR(lcv)->avail_start;
 
 			printf("0x%016lx - 0x%016lx, %ld bytes (%d pages)\n",
-			    ptoa(vm_physmem[lcv].avail_start),
-				ptoa(vm_physmem[lcv].avail_end) - 1,
+			    ptoa(VM_PHYSMEM_PTR(lcv)->avail_start),
+				ptoa(VM_PHYSMEM_PTR(lcv)->avail_end) - 1,
 				    ptoa(sizetmp), sizetmp);
 		}
 		printf("Total number of segments: vm_nphysseg = %d \n",

Index: src/sys/arch/ia64/ia64/pmap.c
diff -u src/sys/arch/ia64/ia64/pmap.c:1.24.2.1 src/sys/arch/ia64/ia64/pmap.c:1.24.2.2
--- src/sys/arch/ia64/ia64/pmap.c:1.24.2.1	Thu Feb 25 04:33:44 2010
+++ src/sys/arch/ia64/ia64/pmap.c	Wed Apr 28 08:31:06 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.24.2.1 2010/02/25 04:33:44 uebayasi Exp $ */
+/* $NetBSD: pmap.c,v 1.24.2.2 2010/04/28 08:31:06 uebayasi Exp $ */
 
 
 /*-
@@ -85,7 +85,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.24.2.1 2010/02/25 04:33:44 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.24.2.2 2010/04/28 08:31:06 uebayasi Exp $");
 
 #include "opt_device_page.h"
 #include "opt_xip.h"
@@ -339,35 +339,35 @@
 
 #if 0
 		printf("     bank %d: avail_start 0x%lx, start 0x%lx, "
-		    "avail_end 0x%lx\n", lcv, vm_physmem[lcv].avail_start,
-		    vm_physmem[lcv].start, vm_physmem[lcv].avail_end);
+		    "avail_end 0x%lx\n", lcv, VM_PHYSMEM_PTR(lcv)->avail_start,
+		    VM_PHYSMEM_PTR(lcv)->start, VM_PHYSMEM_PTR(lcv)->avail_end);
 #endif
 
-		if (vm_physmem[lcv].avail_start != vm_physmem[lcv].start ||
-		    vm_physmem[lcv].avail_start >= vm_physmem[lcv].avail_end)
+		if (VM_PHYSMEM_PTR(lcv)->avail_start != VM_PHYSMEM_PTR(lcv)->start ||
+		    VM_PHYSMEM_PTR(lcv)->avail_start >= VM_PHYSMEM_PTR(lcv)->avail_end)
 			continue;
 
 #if 0
 		printf("             avail_end - avail_start = 0x%lx\n",
-		    vm_physmem[lcv].avail_end - vm_physmem[lcv].avail_start);
+		    VM_PHYSMEM_PTR(lcv)->avail_end - VM_PHYSMEM_PTR(lcv)->avail_start);
 #endif
 
-		if ((vm_physmem[lcv].avail_end - vm_physmem[lcv].avail_start)
+		if ((VM_PHYSMEM_PTR(lcv)->avail_end - VM_PHYSMEM_PTR(lcv)->avail_start)
 		    < npgs)
 			continue;
 
 		/*
 		 * There are enough pages here; steal them!
 		 */
-		pa = ptoa(vm_physmem[lcv].avail_start);
-		vm_physmem[lcv].avail_start += npgs;
-		vm_physmem[lcv].start += npgs;
+		pa = ptoa(VM_PHYSMEM_PTR(lcv)->avail_start);
+		VM_PHYSMEM_PTR(lcv)->avail_start += npgs;
+		VM_PHYSMEM_PTR(lcv)->start += npgs;
 
 
 		/*
 		 * Have we used up this segment?
 		 */
-		if (vm_physmem[lcv].avail_start == vm_physmem[lcv].end) {
+		if (VM_PHYSMEM_PTR(lcv)->avail_start == VM_PHYSMEM_PTR(lcv)->end) {
 			if (vm_nphysseg == 1)
 				panic("pmap_steal_memory: out of memory!");
 
@@ -375,7 +375,7 @@
 			vm_nphysseg--;
 			for (x = lcv; x < vm_nphysseg; x++) {
 				/* structure copy */
-				vm_physmem[x] = vm_physmem[x + 1];
+				vm_physmem_ptrs[x] = vm_physmem_ptrs[x + 1];
 			}
 		}
 
@@ -422,25 +422,25 @@
 
 #if 1
 		printf("     lcv %d: avail_start 0x%lx, start 0x%lx, "
-		    "avail_end 0x%lx\n", lcv, vm_physmem[lcv].avail_start,
-		    vm_physmem[lcv].start, vm_physmem[lcv].avail_end);
+		    "avail_end 0x%lx\n", lcv, VM_PHYSMEM_PTR(lcv)->avail_start,
+		    VM_PHYSMEM_PTR(lcv)->start, VM_PHYSMEM_PTR(lcv)->avail_end);
 		printf("             avail_end - avail_start = 0x%lx\n",
-		    vm_physmem[lcv].avail_end - vm_physmem[lcv].avail_start);
+		    VM_PHYSMEM_PTR(lcv)->avail_end - VM_PHYSMEM_PTR(lcv)->avail_start);
 #endif
 
-		if (vm_physmem[lcv].avail_start != vm_physmem[lcv].start || /* XXX: ??? */
-		    vm_physmem[lcv].avail_start >= vm_physmem[lcv].avail_end)
+		if (VM_PHYSMEM_PTR(lcv)->avail_start != VM_PHYSMEM_PTR(lcv)->start || /* XXX: ??? */
+		    VM_PHYSMEM_PTR(lcv)->avail_start >= VM_PHYSMEM_PTR(lcv)->avail_end)
 			continue;
 
 		/* Break off a VHPT sized, aligned chunk off this segment. */
 
-		start1 = vm_physmem[lcv].avail_start;
+		start1 = VM_PHYSMEM_PTR(lcv)->avail_start;
 
 		/* Align requested start address on requested size boundary */
 		end1 = vhpt_start = roundup(start1, npgs);
 
 		start2 = vhpt_start + npgs;
-		end2 = vm_physmem[lcv].avail_end;
+		end2 = VM_PHYSMEM_PTR(lcv)->avail_end;
 
 
 		/* Case 1: Doesn't fit. skip this segment */
@@ -472,7 +472,7 @@
 		//		physmem -= end2 - start1;
 		for (x = lcv; x < vm_nphysseg; x++) {
 			/* structure copy */
-			vm_physmem[x] = vm_physmem[x + 1];
+			vm_physmem_ptrs[x] = vm_physmem_ptrs[x + 1];
 		}
 
 		/* Case 2: Perfect fit - skip segment reload. */

Index: src/sys/arch/m68k/m68k/pmap_motorola.c
diff -u src/sys/arch/m68k/m68k/pmap_motorola.c:1.55.2.1 src/sys/arch/m68k/m68k/pmap_motorola.c:1.55.2.2
--- src/sys/arch/m68k/m68k/pmap_motorola.c:1.55.2.1	Tue Apr 27 07:19:28 2010
+++ src/sys/arch/m68k/m68k/pmap_motorola.c	Wed Apr 28 08:31:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap_motorola.c,v 1.55.2.1 2010/04/27 07:19:28 uebayasi Exp $        */
+/*	$NetBSD: pmap_motorola.c,v 1.55.2.2 2010/04/28 08:31:06 uebayasi Exp $        */
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -117,7 +117,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.55.2.1 2010/04/27 07:19:28 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.55.2.2 2010/04/28 08:31:06 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -291,7 +291,7 @@
 	int bank, pg = 0;	/* XXX gcc4 -Wuninitialized */
 
 	bank = vm_physseg_find(atop((pa)), &pg);
-	return &vm_physmem[bank].pmseg.pvheader[pg];
+	return &VM_PHYSMEM_PTR(bank)->pmseg.pvheader[pg];
 }
 
 /*
@@ -429,7 +429,7 @@
 	 * initial segment table, pv_head_table and pmap_attributes.
 	 */
 	for (page_cnt = 0, bank = 0; bank < vm_nphysseg; bank++)
-		page_cnt += vm_physmem[bank].end - vm_physmem[bank].start;
+		page_cnt += VM_PHYSMEM_PTR(bank)->end - VM_PHYSMEM_PTR(bank)->start;
 	s = M68K_STSIZE;					/* Segtabzero */
 	s += page_cnt * sizeof(struct pv_header);	/* pv table */
 	s = round_page(s);
@@ -456,8 +456,8 @@
 	 */
 	pvh = pv_table;
 	for (bank = 0; bank < vm_nphysseg; bank++) {
-		npages = vm_physmem[bank].end - vm_physmem[bank].start;
-		vm_physmem[bank].pmseg.pvheader = pvh;
+		npages = VM_PHYSMEM_PTR(bank)->end - VM_PHYSMEM_PTR(bank)->start;
+		VM_PHYSMEM_PTR(bank)->pmseg.pvheader = pvh;
 		pvh += npages;
 	}
 
@@ -1842,8 +1842,8 @@
 
 	s = splvm();
 	for (bank = 0; bank < vm_nphysseg; bank++) {
-		pmap_collect1(pmap_kernel(), ptoa(vm_physmem[bank].start),
-		    ptoa(vm_physmem[bank].end));
+		pmap_collect1(pmap_kernel(), ptoa(VM_PHYSMEM_PTR(bank)->start),
+		    ptoa(VM_PHYSMEM_PTR(bank)->end));
 	}
 	splx(s);
 

Index: src/sys/arch/mips/mips/mips_machdep.c
diff -u src/sys/arch/mips/mips/mips_machdep.c:1.225 src/sys/arch/mips/mips/mips_machdep.c:1.225.2.1
--- src/sys/arch/mips/mips/mips_machdep.c:1.225	Sat Jan 23 15:55:54 2010
+++ src/sys/arch/mips/mips/mips_machdep.c	Wed Apr 28 08:31:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: mips_machdep.c,v 1.225 2010/01/23 15:55:54 mrg Exp $	*/
+/*	$NetBSD: mips_machdep.c,v 1.225.2.1 2010/04/28 08:31:06 uebayasi Exp $	*/
 
 /*
  * Copyright 2002 Wasabi Systems, Inc.
@@ -112,7 +112,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: mips_machdep.c,v 1.225 2010/01/23 15:55:54 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mips_machdep.c,v 1.225.2.1 2010/04/28 08:31:06 uebayasi Exp $");
 
 #include "opt_cputype.h"
 #include "opt_compat_netbsd32.h"
@@ -1615,7 +1615,7 @@
 	vsize_t reqsz = sz;
 	struct vm_physseg *vps;
 
-	vps = &vm_physmem[vm_nphysseg - 1];
+	vps = VM_PHYSMEM_PTR(vm_nphysseg - 1);
 
 	/* shrink so that it'll fit in the last segment */
 	if ((vps->avail_end - vps->avail_start) < atop(sz))

Index: src/sys/arch/mips/mips/pmap.c
diff -u src/sys/arch/mips/mips/pmap.c:1.188.2.2 src/sys/arch/mips/mips/pmap.c:1.188.2.3
--- src/sys/arch/mips/mips/pmap.c:1.188.2.2	Tue Apr 27 07:19:28 2010
+++ src/sys/arch/mips/mips/pmap.c	Wed Apr 28 08:31:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.188.2.2 2010/04/27 07:19:28 uebayasi Exp $	*/
+/*	$NetBSD: pmap.c,v 1.188.2.3 2010/04/28 08:31:06 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.188.2.2 2010/04/27 07:19:28 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.188.2.3 2010/04/28 08:31:06 uebayasi Exp $");
 
 /*
  *	Manages physical address maps.
@@ -340,8 +340,8 @@
 	 * for us.  Must do this before uvm_pageboot_alloc()
 	 * can be called.
 	 */
-	avail_start = ptoa(vm_physmem[0].start);
-	avail_end = ptoa(vm_physmem[vm_nphysseg - 1].end);
+	avail_start = ptoa(VM_PHYSMEM_PTR(0)->start);
+	avail_end = ptoa(VM_PHYSMEM_PTR(vm_nphysseg - 1)->end);
 	virtual_end = VM_MIN_KERNEL_ADDRESS + Sysmapsize * NBPG;
 
 	/*
@@ -449,25 +449,25 @@
 		if (uvm.page_init_done == true)
 			panic("pmap_steal_memory: called _after_ bootstrap");
 
-		if (vm_physmem[bank].avail_start != vm_physmem[bank].start ||
-		    vm_physmem[bank].avail_start >= vm_physmem[bank].avail_end)
+		if (VM_PHYSMEM_PTR(bank)->avail_start != VM_PHYSMEM_PTR(bank)->start ||
+		    VM_PHYSMEM_PTR(bank)->avail_start >= VM_PHYSMEM_PTR(bank)->avail_end)
 			continue;
 
-		if ((vm_physmem[bank].avail_end - vm_physmem[bank].avail_start)
+		if ((VM_PHYSMEM_PTR(bank)->avail_end - VM_PHYSMEM_PTR(bank)->avail_start)
 		    < npgs)
 			continue;
 
 		/*
 		 * There are enough pages here; steal them!
 		 */
-		pa = ptoa(vm_physmem[bank].avail_start);
-		vm_physmem[bank].avail_start += npgs;
-		vm_physmem[bank].start += npgs;
+		pa = ptoa(VM_PHYSMEM_PTR(bank)->avail_start);
+		VM_PHYSMEM_PTR(bank)->avail_start += npgs;
+		VM_PHYSMEM_PTR(bank)->start += npgs;
 
 		/*
 		 * Have we used up this segment?
 		 */
-		if (vm_physmem[bank].avail_start == vm_physmem[bank].end) {
+		if (VM_PHYSMEM_PTR(bank)->avail_start == VM_PHYSMEM_PTR(bank)->end) {
 			if (vm_nphysseg == 1)
 				panic("pmap_steal_memory: out of memory!");
 
@@ -475,7 +475,7 @@
 			vm_nphysseg--;
 			for (x = bank; x < vm_nphysseg; x++) {
 				/* structure copy */
-				vm_physmem[x] = vm_physmem[x + 1];
+				vm_physmem_ptrs[x] = vm_physmem_ptrs[x + 1];
 			}
 		}
 
@@ -522,9 +522,9 @@
 	 */
 	pv = pv_table;
 	for (bank = 0; bank < vm_nphysseg; bank++) {
-		s = vm_physmem[bank].end - vm_physmem[bank].start;
+		s = VM_PHYSMEM_PTR(bank)->end - VM_PHYSMEM_PTR(bank)->start;
 		for (i = 0; i < s; i++)
-			VM_PAGE_TO_MD(&vm_physmem[bank].pgs[i])->pvh_list = pv++;
+			VM_PAGE_TO_MD(&VM_PHYSMEM_PTR(bank)->pgs[i])->pvh_list = pv++;
 	}
 
 	/*

Index: src/sys/arch/powerpc/ibm4xx/pmap.c
diff -u src/sys/arch/powerpc/ibm4xx/pmap.c:1.60.2.1 src/sys/arch/powerpc/ibm4xx/pmap.c:1.60.2.2
--- src/sys/arch/powerpc/ibm4xx/pmap.c:1.60.2.1	Tue Apr 27 07:19:29 2010
+++ src/sys/arch/powerpc/ibm4xx/pmap.c	Wed Apr 28 08:31:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.60.2.1 2010/04/27 07:19:29 uebayasi Exp $	*/
+/*	$NetBSD: pmap.c,v 1.60.2.2 2010/04/28 08:31:06 uebayasi Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.60.2.1 2010/04/27 07:19:29 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.60.2.2 2010/04/28 08:31:06 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/malloc.h>
@@ -194,7 +194,7 @@
 	bank = vm_physseg_find(atop(pa), &pg);
 	if (bank == -1)
 		return NULL;
-	return &vm_physmem[bank].pmseg.pvent[pg];
+	return &VM_PHYSMEM_PTR(bank)->pmseg.pvent[pg];
 }
 
 static inline char *
@@ -205,7 +205,7 @@
 	bank = vm_physseg_find(atop(pa), &pg);
 	if (bank == -1)
 		return NULL;
-	return &vm_physmem[bank].pmseg.attrs[pg];
+	return &VM_PHYSMEM_PTR(bank)->pmseg.attrs[pg];
 }
 
 /*
@@ -471,9 +471,9 @@
 	pv = pv_table;
 	attr = pmap_attrib;
 	for (bank = 0; bank < vm_nphysseg; bank++) {
-		sz = vm_physmem[bank].end - vm_physmem[bank].start;
-		vm_physmem[bank].pmseg.pvent = pv;
-		vm_physmem[bank].pmseg.attrs = attr;
+		sz = VM_PHYSMEM_PTR(bank)->end - VM_PHYSMEM_PTR(bank)->start;
+		VM_PHYSMEM_PTR(bank)->pmseg.pvent = pv;
+		VM_PHYSMEM_PTR(bank)->pmseg.attrs = attr;
 		pv += sz;
 		attr += sz;
 	}

Index: src/sys/arch/powerpc/isa/isadma_machdep.c
diff -u src/sys/arch/powerpc/isa/isadma_machdep.c:1.5 src/sys/arch/powerpc/isa/isadma_machdep.c:1.5.20.1
--- src/sys/arch/powerpc/isa/isadma_machdep.c:1.5	Mon Apr 28 20:23:32 2008
+++ src/sys/arch/powerpc/isa/isadma_machdep.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: isadma_machdep.c,v 1.5 2008/04/28 20:23:32 martin Exp $	*/
+/*	$NetBSD: isadma_machdep.c,v 1.5.20.1 2010/04/28 08:31:07 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: isadma_machdep.c,v 1.5 2008/04/28 20:23:32 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: isadma_machdep.c,v 1.5.20.1 2010/04/28 08:31:07 uebayasi Exp $");
 
 #define ISA_DMA_STATS
 
@@ -169,8 +169,8 @@
 	paddr_t avail_end = 0;
 
 	for (bank = 0; bank < vm_nphysseg; bank++) {
-		if (avail_end < vm_physmem[bank].avail_end << PGSHIFT)
-			avail_end = vm_physmem[bank].avail_end << PGSHIFT;
+		if (avail_end < VM_PHYSMEM_PTR(bank)->avail_end << PGSHIFT)
+			avail_end = VM_PHYSMEM_PTR(bank)->avail_end << PGSHIFT;
 	}
 
 	/* Call common function to create the basic map. */
@@ -597,8 +597,8 @@
 	int bank;
 
 	for (bank = 0; bank < vm_nphysseg; bank++) {
-		if (avail_end < vm_physmem[bank].avail_end << PGSHIFT)
-			avail_end = vm_physmem[bank].avail_end << PGSHIFT;
+		if (avail_end < VM_PHYSMEM_PTR(bank)->avail_end << PGSHIFT)
+			avail_end = VM_PHYSMEM_PTR(bank)->avail_end << PGSHIFT;
 	}
 
 	if (avail_end > ISA_DMA_BOUNCE_THRESHOLD)

Index: src/sys/arch/powerpc/marvell/bus_dma.c
diff -u src/sys/arch/powerpc/marvell/bus_dma.c:1.20 src/sys/arch/powerpc/marvell/bus_dma.c:1.20.2.1
--- src/sys/arch/powerpc/marvell/bus_dma.c:1.20	Wed Mar 18 16:00:14 2009
+++ src/sys/arch/powerpc/marvell/bus_dma.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_dma.c,v 1.20 2009/03/18 16:00:14 cegger Exp $	*/
+/*	$NetBSD: bus_dma.c,v 1.20.2.1 2010/04/28 08:31:07 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.20 2009/03/18 16:00:14 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.20.2.1 2010/04/28 08:31:07 uebayasi Exp $");
 
 #define DEBUG 1
 
@@ -578,10 +578,10 @@
 	int curseg, error, bank;
 
 	for (bank = 0; bank < vm_nphysseg; bank++) {
-		if (avail_start > vm_physmem[bank].avail_start << PGSHIFT)
-			avail_start = vm_physmem[bank].avail_start << PGSHIFT;
-		if (avail_end < vm_physmem[bank].avail_end << PGSHIFT)
-			avail_end = vm_physmem[bank].avail_end << PGSHIFT;
+		if (avail_start > VM_PHYSMEM_PTR(bank)->avail_start << PGSHIFT)
+			avail_start = VM_PHYSMEM_PTR(bank)->avail_start << PGSHIFT;
+		if (avail_end < VM_PHYSMEM_PTR(bank)->avail_end << PGSHIFT)
+			avail_end = VM_PHYSMEM_PTR(bank)->avail_end << PGSHIFT;
 	}
 
 

Index: src/sys/arch/powerpc/oea/pmap.c
diff -u src/sys/arch/powerpc/oea/pmap.c:1.69.2.1 src/sys/arch/powerpc/oea/pmap.c:1.69.2.2
--- src/sys/arch/powerpc/oea/pmap.c:1.69.2.1	Fri Feb 26 14:40:23 2010
+++ src/sys/arch/powerpc/oea/pmap.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.69.2.1 2010/02/26 14:40:23 uebayasi Exp $	*/
+/*	$NetBSD: pmap.c,v 1.69.2.2 2010/04/28 08:31:07 uebayasi Exp $	*/
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -63,7 +63,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.69.2.1 2010/02/26 14:40:23 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.69.2.2 2010/04/28 08:31:07 uebayasi Exp $");
 
 #define	PMAP_NOOPNAMES
 
@@ -2922,7 +2922,8 @@
 	 * PA 0 will never be among those given to UVM so we can use it
 	 * to indicate we couldn't steal any memory.
 	 */
-	for (ps = vm_physmem, bank = 0; bank < vm_nphysseg; bank++, ps++) {
+	for (bank = 0; bank < vm_nphysseg; bank++) {
+		ps = VM_PHYSMEM_PTR(bank);
 		if (ps->free_list == VM_FREELIST_FIRST256 && 
 		    ps->avail_end - ps->avail_start >= npgs) {
 			pa = ptoa(ps->avail_start);
@@ -2959,8 +2960,10 @@
 #ifdef DEBUG
 	if (pmapdebug && npgs > 1) {
 		u_int cnt = 0;
-		for (bank = 0, ps = vm_physmem; bank < vm_nphysseg; bank++, ps++)
+		for (bank = 0; bank < vm_nphysseg; bank++) {
+			ps = VM_PHYSMEM_PTR(bank);
 			cnt += ps->avail_end - ps->avail_start;
+		}
 		printf("pmap_steal_memory: stole %u (total %u) pages (%u left)\n",
 		    npgs, pmap_pages_stolen, cnt);
 	}
@@ -3437,12 +3440,12 @@
 		int bank;
 		char pbuf[9];
 		for (cnt = 0, bank = 0; bank < vm_nphysseg; bank++) {
-			cnt += vm_physmem[bank].avail_end - vm_physmem[bank].avail_start;
+			cnt += VM_PHYSMEM_PTR(bank)->avail_end - VM_PHYSMEM_PTR(bank)->avail_start;
 			printf("pmap_bootstrap: vm_physmem[%d]=%#" _PRIxpa "-%#" _PRIxpa "/%#" _PRIxpa "\n",
 			    bank,
-			    ptoa(vm_physmem[bank].avail_start),
-			    ptoa(vm_physmem[bank].avail_end),
-			    ptoa(vm_physmem[bank].avail_end - vm_physmem[bank].avail_start));
+			    ptoa(VM_PHYSMEM_PTR(bank)->avail_start),
+			    ptoa(VM_PHYSMEM_PTR(bank)->avail_end),
+			    ptoa(VM_PHYSMEM_PTR(bank)->avail_end - VM_PHYSMEM_PTR(bank)->avail_start));
 		}
 		format_bytes(pbuf, sizeof(pbuf), ptoa((u_int64_t) cnt));
 		printf("pmap_bootstrap: UVM memory = %s (%u pages)\n",
@@ -3477,8 +3480,8 @@
 		pm->pm_sr[0] = sr;
 
 		for (bank = 0; bank < vm_nphysseg; bank++) {
-			pa_end = ptoa(vm_physmem[bank].avail_end);
-			pa = ptoa(vm_physmem[bank].avail_start);
+			pa_end = ptoa(VM_PHYSMEM_PTR(bank)->avail_end);
+			pa = ptoa(VM_PHYSMEM_PTR(bank)->avail_start);
 			for (; pa < pa_end; pa += PAGE_SIZE) {
 				ptegidx = va_to_pteg(pm, pa);
 				pmap_pte_create(&pt, pm, pa, pa | PTE_M|PTE_BW);

Index: src/sys/arch/powerpc/powerpc/bus_dma.c
diff -u src/sys/arch/powerpc/powerpc/bus_dma.c:1.35 src/sys/arch/powerpc/powerpc/bus_dma.c:1.35.2.1
--- src/sys/arch/powerpc/powerpc/bus_dma.c:1.35	Sat Nov  7 07:27:46 2009
+++ src/sys/arch/powerpc/powerpc/bus_dma.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_dma.c,v 1.35 2009/11/07 07:27:46 cegger Exp $	*/
+/*	$NetBSD: bus_dma.c,v 1.35.2.1 2010/04/28 08:31:07 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.35 2009/11/07 07:27:46 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.35.2.1 2010/04/28 08:31:07 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -532,10 +532,10 @@
 	int bank;
 
 	for (bank = 0; bank < vm_nphysseg; bank++) {
-		if (avail_start > vm_physmem[bank].avail_start << PGSHIFT)
-			avail_start = vm_physmem[bank].avail_start << PGSHIFT;
-		if (avail_end < vm_physmem[bank].avail_end << PGSHIFT)
-			avail_end = vm_physmem[bank].avail_end << PGSHIFT;
+		if (avail_start > VM_PHYSMEM_PTR(bank)->avail_start << PGSHIFT)
+			avail_start = VM_PHYSMEM_PTR(bank)->avail_start << PGSHIFT;
+		if (avail_end < VM_PHYSMEM_PTR(bank)->avail_end << PGSHIFT)
+			avail_end = VM_PHYSMEM_PTR(bank)->avail_end << PGSHIFT;
 	}
 
 	return _bus_dmamem_alloc_range(t, size, alignment, boundary, segs,

Index: src/sys/arch/sh3/sh3/mem.c
diff -u src/sys/arch/sh3/sh3/mem.c:1.26 src/sys/arch/sh3/sh3/mem.c:1.26.64.1
--- src/sys/arch/sh3/sh3/mem.c:1.26	Sun Mar  4 06:00:41 2007
+++ src/sys/arch/sh3/sh3/mem.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: mem.c,v 1.26 2007/03/04 06:00:41 christos Exp $	*/
+/*	$NetBSD: mem.c,v 1.26.64.1 2010/04/28 08:31:07 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -80,7 +80,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mem.c,v 1.26 2007/03/04 06:00:41 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mem.c,v 1.26.64.1 2010/04/28 08:31:07 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -207,6 +207,6 @@
 __mm_mem_addr(paddr_t pa)
 {
 
-	return ((atop(pa) < vm_physmem[0].start || PHYS_TO_VM_PAGE(pa) != NULL)
+	return ((atop(pa) < VM_PHYSMEM_PTR(0)->start || PHYS_TO_VM_PAGE(pa) != NULL)
 	    ? true : false);
 }

Index: src/sys/arch/sh3/sh3/pmap.c
diff -u src/sys/arch/sh3/sh3/pmap.c:1.74.2.2 src/sys/arch/sh3/sh3/pmap.c:1.74.2.3
--- src/sys/arch/sh3/sh3/pmap.c:1.74.2.2	Tue Apr 27 07:19:29 2010
+++ src/sys/arch/sh3/sh3/pmap.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.74.2.2 2010/04/27 07:19:29 uebayasi Exp $	*/
+/*	$NetBSD: pmap.c,v 1.74.2.3 2010/04/28 08:31:07 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.74.2.2 2010/04/27 07:19:29 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.74.2.3 2010/04/28 08:31:07 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -107,8 +107,8 @@
 	/* Steal msgbuf area */
 	initmsgbuf((void *)uvm_pageboot_alloc(MSGBUFSIZE), MSGBUFSIZE);
 
-	avail_start = ptoa(vm_physmem[0].start);
-	avail_end = ptoa(vm_physmem[vm_nphysseg - 1].end);
+	avail_start = ptoa(VM_PHYSMEM_PTR(0)->start);
+	avail_end = ptoa(VM_PHYSMEM_PTR(vm_nphysseg - 1)->end);
 	__pmap_kve = VM_MIN_KERNEL_ADDRESS;
 
 	pmap_kernel()->pm_refcnt = 1;
@@ -136,7 +136,7 @@
 	size = round_page(size);
 	npage = atop(size);
 
-	for (i = 0, bank = &vm_physmem[i]; i < vm_nphysseg; i++, bank++)
+	for (i = 0, bank = VM_PHYSMEM_PTR(i); i < vm_nphysseg; i++, bank++)
 		if (npage <= bank->avail_end - bank->avail_start)
 			break;
 	KDASSERT(i != vm_nphysseg);
@@ -152,7 +152,7 @@
 		vm_nphysseg--;
 		KDASSERT(vm_nphysseg > 0);
 		for (j = i; i < vm_nphysseg; j++)
-			vm_physmem[j] = vm_physmem[j + 1];
+			vm_physmem_ptrs[j] = vm_physmem_ptrs[j + 1];
 	}
 
 	va = SH3_PHYS_TO_P1SEG(pa);

Index: src/sys/arch/vax/vax/pmap.c
diff -u src/sys/arch/vax/vax/pmap.c:1.175 src/sys/arch/vax/vax/pmap.c:1.175.2.1
--- src/sys/arch/vax/vax/pmap.c:1.175	Fri Nov 27 03:23:14 2009
+++ src/sys/arch/vax/vax/pmap.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.175 2009/11/27 03:23:14 rmind Exp $	   */
+/*	$NetBSD: pmap.c,v 1.175.2.1 2010/04/28 08:31:07 uebayasi Exp $	   */
 /*
  * Copyright (c) 1994, 1998, 1999, 2003 Ludd, University of Lule}, Sweden.
  * All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.175 2009/11/27 03:23:14 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.175.2.1 2010/04/28 08:31:07 uebayasi Exp $");
 
 #include "opt_ddb.h"
 #include "opt_cputype.h"
@@ -467,9 +467,9 @@
 	 * A vax only have one segment of memory.
 	 */
 
-	v = (vm_physmem[0].avail_start << PGSHIFT) | KERNBASE;
-	vm_physmem[0].avail_start += npgs;
-	vm_physmem[0].start += npgs;
+	v = (VM_PHYSMEM_PTR(0)->avail_start << PGSHIFT) | KERNBASE;
+	VM_PHYSMEM_PTR(0)->avail_start += npgs;
+	VM_PHYSMEM_PTR(0)->start += npgs;
 	memset((void *)v, 0, size);
 	return v;
 }

Index: src/sys/arch/x68k/x68k/machdep.c
diff -u src/sys/arch/x68k/x68k/machdep.c:1.164 src/sys/arch/x68k/x68k/machdep.c:1.164.2.1
--- src/sys/arch/x68k/x68k/machdep.c:1.164	Thu Dec 10 14:13:53 2009
+++ src/sys/arch/x68k/x68k/machdep.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.164 2009/12/10 14:13:53 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.164.2.1 2010/04/28 08:31:07 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990, 1993
@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.164 2009/12/10 14:13:53 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.164.2.1 2010/04/28 08:31:07 uebayasi Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -589,9 +589,9 @@
 	m->ram_segs[0].start = lowram;
 	m->ram_segs[0].size = mem_size - lowram;
 	for (i = 1; i < vm_nphysseg; i++) {
-		m->ram_segs[i].start = ctob(vm_physmem[i].start);
-		m->ram_segs[i].size  = ctob(vm_physmem[i].end
-					    - vm_physmem[i].start);
+		m->ram_segs[i].start = ctob(VM_PHYSMEM_PTR(i)->start);
+		m->ram_segs[i].size  = ctob(VM_PHYSMEM_PTR(i)->end
+					    - VM_PHYSMEM_PTR(i)->start);
 	}
 }
 

Index: src/sys/arch/x68k/x68k/mem.c
diff -u src/sys/arch/x68k/x68k/mem.c:1.36 src/sys/arch/x68k/x68k/mem.c:1.36.64.1
--- src/sys/arch/x68k/x68k/mem.c:1.36	Mon Mar  5 12:30:38 2007
+++ src/sys/arch/x68k/x68k/mem.c	Wed Apr 28 08:31:07 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: mem.c,v 1.36 2007/03/05 12:30:38 tsutsui Exp $	*/
+/*	$NetBSD: mem.c,v 1.36.64.1 2010/04/28 08:31:07 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990, 1993
@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mem.c,v 1.36 2007/03/05 12:30:38 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mem.c,v 1.36.64.1 2010/04/28 08:31:07 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -244,8 +244,8 @@
 	int i;
 
 	for (i = 0; i < vm_nphysseg; i++) {
-		if (ctob(vm_physmem[i].start) <= addr &&
-		    addr < ctob(vm_physmem[i].end))
+		if (ctob(VM_PHYSMEM_PTR(i)->start) <= addr &&
+		    addr < ctob(VM_PHYSMEM_PTR(i)->end))
 			return 1;
 	}
 	return 0;

Index: src/sys/uvm/uvm_page.c
diff -u src/sys/uvm/uvm_page.c:1.153.2.26 src/sys/uvm/uvm_page.c:1.153.2.27
--- src/sys/uvm/uvm_page.c:1.153.2.26	Wed Apr 28 05:12:30 2010
+++ src/sys/uvm/uvm_page.c	Wed Apr 28 08:31:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_page.c,v 1.153.2.26 2010/04/28 05:12:30 uebayasi Exp $	*/
+/*	$NetBSD: uvm_page.c,v 1.153.2.27 2010/04/28 08:31:05 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -71,7 +71,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.153.2.26 2010/04/28 05:12:30 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.153.2.27 2010/04/28 08:31:05 uebayasi Exp $");
 
 #include "opt_ddb.h"
 #include "opt_uvmhist.h"
@@ -104,11 +104,11 @@
 /* XXXUEBS merge these two */
 
 struct vm_physseg *vm_physmem_ptrs[VM_PHYSSEG_MAX];
-struct vm_physseg vm_physmem[VM_PHYSSEG_MAX];
+struct vm_physseg vm_physmem_store[VM_PHYSSEG_MAX];
 int vm_nphysmem = 0;
 #ifdef DEVICE_PAGE
 struct vm_physseg *vm_physdev_ptrs[VM_PHYSSEG_MAX];
-struct vm_physseg vm_physdev[VM_PHYSSEG_MAX];
+struct vm_physseg vm_physdev_store[VM_PHYSSEG_MAX];
 int vm_nphysdev = 0;
 #endif
 
@@ -772,7 +772,7 @@
 	struct vm_physseg *seg;
 	int lcv;
 
-	seg = uvm_page_physload_common(vm_physmem, vm_nphysmem, start, end,
+	seg = uvm_page_physload_common(vm_physmem_store, vm_nphysmem, start, end,
 	    avail_start, avail_end, free_list);
 	KASSERT(seg != NULL);
 
@@ -856,11 +856,11 @@
 	int lcv;
 
 	for (lcv = 0; lcv < VM_PHYSSEG_MAX; lcv++) {
-		vm_physmem_ptrs[lcv] = &vm_physmem[lcv];
+		vm_physmem_ptrs[lcv] = &vm_physmem_store[lcv];
 	}
 #ifdef DEVICE_PAGE
 	for (lcv = 0; lcv < VM_PHYSSEG_MAX; lcv++) {
-		vm_physdev_ptrs[lcv] = &vm_physdev[lcv];
+		vm_physdev_ptrs[lcv] = &vm_physdev_store[lcv];
 	}
 #endif
 }

Index: src/sys/uvm/uvm_page.h
diff -u src/sys/uvm/uvm_page.h:1.59.2.17 src/sys/uvm/uvm_page.h:1.59.2.18
--- src/sys/uvm/uvm_page.h:1.59.2.17	Tue Apr 27 08:32:47 2010
+++ src/sys/uvm/uvm_page.h	Wed Apr 28 08:31:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_page.h,v 1.59.2.17 2010/04/27 08:32:47 uebayasi Exp $	*/
+/*	$NetBSD: uvm_page.h,v 1.59.2.18 2010/04/28 08:31:05 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -257,12 +257,13 @@
  * physical memory config is stored in vm_physmem.
  */
 
+#define	VM_PHYSMEM_PTR(i)	(vm_physmem_ptrs[i])
+#define	VM_PHYSDEV_PTR(i)	(vm_physdev_ptrs[i])
+
 extern struct vm_physseg *vm_physmem_ptrs[VM_PHYSSEG_MAX];
-extern struct vm_physseg vm_physmem[VM_PHYSSEG_MAX];
 extern int vm_nphysmem;
 #ifdef DEVICE_PAGE
 extern struct vm_physseg *vm_physdev_ptrs[VM_PHYSSEG_MAX];
-extern struct vm_physseg vm_physdev[VM_PHYSSEG_MAX];
 extern int vm_nphysdev;
 #endif
 

Index: src/sys/uvm/uvm_pglist.c
diff -u src/sys/uvm/uvm_pglist.c:1.45.2.1 src/sys/uvm/uvm_pglist.c:1.45.2.2
--- src/sys/uvm/uvm_pglist.c:1.45.2.1	Tue Feb  9 08:43:33 2010
+++ src/sys/uvm/uvm_pglist.c	Wed Apr 28 08:31:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_pglist.c,v 1.45.2.1 2010/02/09 08:43:33 uebayasi Exp $	*/
+/*	$NetBSD: uvm_pglist.c,v 1.45.2.2 2010/04/28 08:31:05 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_pglist.c,v 1.45.2.1 2010/02/09 08:43:33 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_pglist.c,v 1.45.2.2 2010/04/28 08:31:05 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -129,11 +129,15 @@
 	int pagemask;
 #ifdef DEBUG
 	paddr_t idxpa, lastidxpa;
+#if 0
 	int cidx = 0;	/* XXX: GCC */
 #endif
+#endif
 #ifdef PGALLOC_VERBOSE
+#if 0
 	printf("pgalloc: contig %d pgs from psi %ld\n", num,
-	(long)(ps - vm_physmem));
+	(long)(ps - vm_physmem_store));
+#endif
 #endif
 
 	KASSERT(mutex_owned(&uvm_fpageqlock));
@@ -164,15 +168,19 @@
 		 * Make sure this is a managed physical page.
 		 */
 
-		if (vm_physseg_find(try, &cidx) != ps - vm_physmem)
+#if 0
+		if (vm_physseg_find(try, &cidx) != ps - vm_physmem_store)
 			panic("pgalloc contig: botch1");
 		if (cidx != try - ps->start)
 			panic("pgalloc contig: botch2");
-		if (vm_physseg_find(try + num - 1, &cidx) != ps - vm_physmem)
+#endif
+#if 0
+		if (vm_physseg_find(try + num - 1, &cidx) != ps - vm_physmem_store)
 			panic("pgalloc contig: botch3");
 		if (cidx != try - ps->start + num - 1)
 			panic("pgalloc contig: botch4");
 #endif
+#endif
 		tryidx = try - ps->start;
 		end = tryidx + num;
 		pgs = ps->pgs;
@@ -251,7 +259,7 @@
 		for (psi = 0 ; psi < vm_nphysmem ; psi++)
 #endif
 		{
-			ps = &vm_physmem[psi];
+			ps = vm_physmem_ptrs[psi];
 
 			if (ps->free_list != fl)
 				continue;
@@ -288,11 +296,15 @@
 	int todo, limit, try;
 	struct vm_page *pg;
 #ifdef DEBUG
+#if 0
 	int cidx = 0;	/* XXX: GCC */
 #endif
+#endif
 #ifdef PGALLOC_VERBOSE
+#if 0
 	printf("pgalloc: simple %d pgs from psi %ld\n", num,
-	    (long)(ps - vm_physmem));
+	    (long)(ps - vm_physmem_store));
+#endif
 #endif
 
 	KASSERT(mutex_owned(&uvm_fpageqlock));
@@ -303,11 +315,13 @@
 	for (try = max(atop(low), ps->avail_start);
 	     try < limit; try ++) {
 #ifdef DEBUG
-		if (vm_physseg_find(try, &cidx) != ps - vm_physmem)
+#if 0
+		if (vm_physseg_find(try, &cidx) != ps - vm_physmem_store)
 			panic("pgalloc simple: botch1");
 		if (cidx != (try - ps->start))
 			panic("pgalloc simple: botch2");
 #endif
+#endif
 		pg = &ps->pgs[try - ps->start];
 		if (VM_PAGE_IS_FREE(pg) == 0)
 			continue;
@@ -350,7 +364,7 @@
 		for (psi = 0 ; psi < vm_nphysmem ; psi++)
 #endif
 		{
-			ps = &vm_physmem[psi];
+			ps = vm_physmem_ptrs[psi];
 
 			if (ps->free_list != fl)
 				continue;

Reply via email to