Module Name: src Committed By: uebayasi Date: Thu Nov 11 16:20:28 UTC 2010
Modified Files: src/sys/uvm [uebayasi-xip]: uvm_page.c Log Message: Use vm_physseg accessors. Remove confusing comments. To generate a diff of this commit: cvs rdiff -u -r1.153.2.60 -r1.153.2.61 src/sys/uvm/uvm_page.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/uvm/uvm_page.c diff -u src/sys/uvm/uvm_page.c:1.153.2.60 src/sys/uvm/uvm_page.c:1.153.2.61 --- src/sys/uvm/uvm_page.c:1.153.2.60 Thu Nov 4 11:57:49 2010 +++ src/sys/uvm/uvm_page.c Thu Nov 11 16:20:28 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_page.c,v 1.153.2.60 2010/11/04 11:57:49 uebayasi Exp $ */ +/* $NetBSD: uvm_page.c,v 1.153.2.61 2010/11/11 16:20:28 uebayasi Exp $ */ /* * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -97,7 +97,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.153.2.60 2010/11/04 11:57:49 uebayasi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.153.2.61 2010/11/11 16:20:28 uebayasi Exp $"); #include "opt_ddb.h" #include "opt_uvmhist.h" @@ -433,7 +433,7 @@ freepages = 0; for (lcv = 0 ; lcv < vm_nphysmem ; lcv++) { - seg = vm_physmem_ptrs[lcv]; + seg = VM_PHYSMEM_PTR(lcv); freepages += (seg->end - seg->start); } @@ -480,7 +480,7 @@ */ for (lcv = 0 ; lcv < vm_nphysmem ; lcv++) { - seg = vm_physmem_ptrs[lcv]; + seg = VM_PHYSMEM_PTR(lcv); n = seg->end - seg->start; /* set up page array pointers */ @@ -490,7 +490,7 @@ seg->endpg = seg->pgs + n; /* init and free vm_pages (we've already zeroed them) */ - paddr = ctob(vm_physmem_ptrs[lcv]->start); + paddr = ctob(seg->start); for (i = 0 ; i < n ; i++, paddr += PAGE_SIZE) { seg->pgs[i].phys_addr = paddr; #ifdef __HAVE_VM_PAGE_MD @@ -684,7 +684,7 @@ for (lcv = 0 ; lcv < vm_nphysmem ; lcv++) #endif { - seg = vm_physmem_ptrs[lcv]; + seg = VM_PHYSMEM_PTR(lcv); if (uvm.page_init_done == true) panic("uvm_page_physget: called _after_ bootstrap"); @@ -704,7 +704,7 @@ panic("uvm_page_physget: out of memory!"); vm_nphysmem--; for (x = lcv ; x < vm_nphysmem ; x++) - vm_physmem_ptrs[x] = vm_physmem_ptrs[x+1]; + VM_PHYSMEM_PTR_SWAP(x, x + 1); } return (true); } @@ -721,7 +721,7 @@ panic("uvm_page_physget: out of memory!"); vm_nphysmem--; for (x = lcv ; x < vm_nphysmem ; x++) - vm_physmem_ptrs[x] = vm_physmem_ptrs[x+1]; + VM_PHYSMEM_PTR_SWAP(x, x + 1); } return (true); } @@ -734,7 +734,7 @@ for (lcv = 0 ; lcv < vm_nphysmem ; lcv++) #endif { - seg = vm_physmem_ptrs[lcv]; + seg = VM_PHYSMEM_PTR(lcv); /* any room in this bank? */ if (seg->avail_start >= seg->avail_end) @@ -751,7 +751,7 @@ panic("uvm_page_physget: out of memory!"); vm_nphysmem--; for (x = lcv ; x < vm_nphysmem ; x++) - vm_physmem_ptrs[x] = vm_physmem_ptrs[x+1]; + VM_PHYSMEM_PTR_SWAP(x, x + 1); } return (true); } @@ -801,14 +801,15 @@ * check to see if this is a "preload" (i.e. uvm_page_init hasn't been * called yet, so malloc is not available). */ - for (lcv = 0; lcv < vm_nphysmem; lcv++) { - if (vm_physmem_ptrs[lcv]->pgs) + + for (lcv = 0 ; lcv < vm_nphysmem ; lcv++) { + if (VM_PHYSMEM_PTR(lcv)->pgs) break; } if (lcv == vm_nphysmem) { seg->pgs = NULL; seg->endpg = NULL; - seg->free_list = free_list; /* XXX */ + seg->free_list = free_list; } else { panic("uvm_page_physload: " "tried to add RAM after uvm_page_init"); @@ -824,8 +825,6 @@ panic("memory unload is not supported yet"); - /* XXX */ - uvm_physseg_free(&vm_physmem_freelist, vm_physmem_ptrs, seg); vm_nphysmem--; } @@ -841,7 +840,7 @@ KASSERT(seg != NULL); seg->prot = prot; - seg->flags = flags; /* XXXUEBS BUS_SPACE_MAP_* */ + seg->flags = flags; /* * Managed device page metadata initialization @@ -921,7 +920,6 @@ "\tincrease VM_PHYSSEG_MAX\n", VM_PHYSSEG_MAX, (long long)start, (long long)end); - /* XXXUEBS too early to use RUN_ONCE(9)? */ if (uvm_physseg_inited == 0) { uvm_physseg_inited = 1; uvm_physseg_init(); @@ -1193,10 +1191,10 @@ psi = vm_physseg_find_device(pf, &off); if (psi != -1) - return(&vm_physdev_ptrs[psi]->pgs[off]); + return(&VM_PHYSDEV_PTR(psi)->pgs[off]); psi = vm_physseg_find(pf, &off); if (psi != -1) - return(&vm_physmem_ptrs[psi]->pgs[off]); + return(&VM_PHYSMEM_PTR(psi)->pgs[off]); return(NULL); } @@ -2234,7 +2232,7 @@ lcv = vm_physseg_find(atop(VM_PAGE_TO_PHYS(pg)), NULL); KASSERT(lcv != -1); - return (vm_physmem_ptrs[lcv]->free_list); + return (VM_PHYSMEM_PTR(lcv)->free_list); } #if defined(DDB) || defined(DEBUGPRINT) @@ -2341,7 +2339,7 @@ #endif "\n", "PAGE", "FLAG", "PQ", "UOBJECT", "UANON"); for (i = 0; i < vm_nphysmem; i++) { - for (pg = vm_physmem_ptrs[i]->pgs; pg < vm_physmem_ptrs[i]->endpg; pg++) { + for (pg = VM_PHYSMEM_PTR(i)->pgs; pg < VM_PHYSMEM_PTR(i)->endpg; pg++) { (*pr)("%18p %04x %04x %18p %18p", pg, pg->flags, pg->pqflags, pg->uobject, pg->uanon);