summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorluoqi <luoqi@FreeBSD.org>1999-02-19 14:25:37 +0000
committerluoqi <luoqi@FreeBSD.org>1999-02-19 14:25:37 +0000
commit082d37c1acacd0403f5fb2883c7a0203c86baa10 (patch)
tree43d75fbf23c63e0d76e25bdb477e9f3abea2d101 /sys/vm
parent34a83c58695826a346644074e092787f655b3394 (diff)
downloadFreeBSD-src-082d37c1acacd0403f5fb2883c7a0203c86baa10.zip
FreeBSD-src-082d37c1acacd0403f5fb2883c7a0203c86baa10.tar.gz
Hide access to vmspace:vm_pmap with inline function vmspace_pmap(). This
is the preparation step for moving pmap storage out of vmspace proper. Reviewed by: Alan Cox <alc@cs.rice.edu> Matthew Dillion <dillon@apollo.backplane.com>
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_glue.c5
-rw-r--r--sys/vm/vm_map.c12
-rw-r--r--sys/vm/vm_map.h14
-rw-r--r--sys/vm/vm_mmap.c6
-rw-r--r--sys/vm/vm_pageout.c12
5 files changed, 30 insertions, 19 deletions
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c
index bd592be..e8d8848 100644
--- a/sys/vm/vm_glue.c
+++ b/sys/vm/vm_glue.c
@@ -59,7 +59,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_glue.c,v 1.82 1999/01/21 09:36:23 dillon Exp $
+ * $Id: vm_glue.c,v 1.83 1999/01/26 02:38:12 julian Exp $
*/
#include "opt_rlimit.h"
@@ -511,8 +511,7 @@ swapout(p)
/*
* remember the process resident count
*/
- p->p_vmspace->vm_swrss =
- p->p_vmspace->vm_pmap.pm_stats.resident_count;
+ p->p_vmspace->vm_swrss = vmspace_resident_count(p->p_vmspace);
(void) splhigh();
p->p_flag &= ~P_INMEM;
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index 576c6c8..cbb59cf 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_map.c,v 1.149 1999/02/12 09:51:42 dillon Exp $
+ * $Id: vm_map.c,v 1.150 1999/02/19 03:11:37 dillon Exp $
*/
/*
@@ -200,8 +200,8 @@ vmspace_alloc(min, max)
vm = zalloc(vmspace_zone);
bzero(&vm->vm_map, sizeof vm->vm_map);
vm_map_init(&vm->vm_map, min, max);
- pmap_pinit(&vm->vm_pmap);
- vm->vm_map.pmap = &vm->vm_pmap; /* XXX */
+ pmap_pinit(vmspace_pmap(vm));
+ vm->vm_map.pmap = vmspace_pmap(vm); /* XXX */
vm->vm_refcnt = 1;
vm->vm_shm = NULL;
return (vm);
@@ -240,7 +240,7 @@ vmspace_free(vm)
vm->vm_map.max_offset);
vm_map_unlock(&vm->vm_map);
- pmap_release(&vm->vm_pmap);
+ pmap_release(vmspace_pmap(vm));
zfree(vmspace_zone, vm);
}
}
@@ -2290,7 +2290,7 @@ vmspace_fork(vm1)
vm2 = vmspace_alloc(old_map->min_offset, old_map->max_offset);
bcopy(&vm1->vm_startcopy, &vm2->vm_startcopy,
(caddr_t) (vm1 + 1) - (caddr_t) &vm1->vm_startcopy);
- new_pmap = &vm2->vm_pmap; /* XXX */
+ new_pmap = vmspace_pmap(vm2); /* XXX */
new_map = &vm2->vm_map; /* XXX */
new_map->timestamp = 1;
@@ -3039,7 +3039,7 @@ DB_SHOW_COMMAND(procvm, procvm)
db_printf("p = %p, vmspace = %p, map = %p, pmap = %p\n",
(void *)p, (void *)p->p_vmspace, (void *)&p->p_vmspace->vm_map,
- (void *)&p->p_vmspace->vm_pmap);
+ (void *)vmspace_pmap(p->p_vmspace));
vm_map_print((db_expr_t)(intptr_t)&p->p_vmspace->vm_map, 1, 0, NULL);
}
diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h
index 96c02f7..aac6641 100644
--- a/sys/vm/vm_map.h
+++ b/sys/vm/vm_map.h
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_map.h,v 1.34 1999/01/26 02:49:52 julian Exp $
+ * $Id: vm_map.h,v 1.35 1999/02/07 21:48:22 dillon Exp $
*/
/*
@@ -282,6 +282,18 @@ _vm_map_lock_upgrade(vm_map_t map, struct proc *p) {
#define vm_map_max(map) ((map)->max_offset)
#define vm_map_pmap(map) ((map)->pmap)
+static __inline struct pmap *
+vmspace_pmap(struct vmspace *vmspace)
+{
+ return &vmspace->vm_pmap;
+}
+
+static __inline long
+vmspace_resident_count(struct vmspace *vmspace)
+{
+ return pmap_resident_count(vmspace_pmap(vmspace));
+}
+
/* XXX: number of kernel maps and entries to statically allocate */
#define MAX_KMAP 10
#define MAX_KMAPENT 128
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index 8bf5311..58f066d 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -38,7 +38,7 @@
* from: Utah $Hdr: vm_mmap.c 1.6 91/10/21$
*
* @(#)vm_mmap.c 8.4 (Berkeley) 1/12/94
- * $Id: vm_mmap.c,v 1.88 1999/01/26 02:49:52 julian Exp $
+ * $Id: vm_mmap.c,v 1.89 1999/02/07 21:48:22 dillon Exp $
*/
/*
@@ -644,7 +644,7 @@ madvise(p, uap)
end = round_page((vm_offset_t) uap->addr + uap->len);
map = &p->p_vmspace->vm_map;
- pmap = &p->p_vmspace->vm_pmap;
+ pmap = vmspace_pmap(p->p_vmspace);
vm_map_madvise(map, pmap, start, end, uap->behav);
@@ -693,7 +693,7 @@ mincore(p, uap)
vec = uap->vec;
map = &p->p_vmspace->vm_map;
- pmap = &p->p_vmspace->vm_pmap;
+ pmap = vmspace_pmap(p->p_vmspace);
vm_map_lock(map);
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
index ecb331e..9181635 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -65,7 +65,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_pageout.c,v 1.135 1999/02/07 21:48:23 dillon Exp $
+ * $Id: vm_pageout.c,v 1.136 1999/02/08 00:37:36 dillon Exp $
*/
/*
@@ -482,7 +482,7 @@ vm_pageout_object_deactivate_pages(map, object, desired, map_remove_only)
return;
while (object) {
- if (vm_map_pmap(map)->pm_stats.resident_count <= desired)
+ if (pmap_resident_count(vm_map_pmap(map)) <= desired)
return;
if (object->paging_in_progress)
return;
@@ -497,7 +497,7 @@ vm_pageout_object_deactivate_pages(map, object, desired, map_remove_only)
p = TAILQ_FIRST(&object->memq);
while (p && (rcount-- > 0)) {
int actcount;
- if (vm_map_pmap(map)->pm_stats.resident_count <= desired)
+ if (pmap_resident_count(vm_map_pmap(map)) <= desired)
return;
next = TAILQ_NEXT(p, listq);
cnt.v_pdpages++;
@@ -598,7 +598,7 @@ vm_pageout_map_deactivate_pages(map, desired)
*/
tmpe = map->header.next;
while (tmpe != &map->header) {
- if (vm_map_pmap(map)->pm_stats.resident_count <= desired)
+ if (pmap_resident_count(vm_map_pmap(map)) <= desired)
break;
if ((tmpe->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) {
obj = tmpe->object.vm_object;
@@ -1158,7 +1158,7 @@ rescan0:
/*
* get the process size
*/
- size = p->p_vmspace->vm_pmap.pm_stats.resident_count;
+ size = vmspace_resident_count(p->p_vmspace);
/*
* if the this process is bigger than the biggest one
* remember it.
@@ -1453,7 +1453,7 @@ vm_daemon()
if ((p->p_flag & P_INMEM) == 0)
limit = 0; /* XXX */
- size = p->p_vmspace->vm_pmap.pm_stats.resident_count * PAGE_SIZE;
+ size = vmspace_resident_count(p->p_vmspace) * PAGE_SIZE;
if (limit >= 0 && size >= limit) {
vm_pageout_map_deactivate_pages(&p->p_vmspace->vm_map,
(vm_pindex_t)(limit >> PAGE_SHIFT) );
OpenPOWER on IntegriCloud