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;