diff options
author | alc <alc@FreeBSD.org> | 2008-01-03 07:34:34 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2008-01-03 07:34:34 +0000 |
commit | 545d26e30bb60df264b73543bf214c7e006f18fb (patch) | |
tree | 46a2b299e20f99257e0a9e31f02276471aed28a1 | |
parent | 9699ca07d2cae2224f351d0a332b8265c829f9a8 (diff) | |
download | FreeBSD-src-545d26e30bb60df264b73543bf214c7e006f18fb.zip FreeBSD-src-545d26e30bb60df264b73543bf214c7e006f18fb.tar.gz |
Add an access type parameter to pmap_enter(). It will be used to implement
superpage promotion.
Correct a style error in kmem_malloc(): pmap_enter()'s last parameter is
a Boolean.
-rw-r--r-- | sys/amd64/amd64/pmap.c | 4 | ||||
-rw-r--r-- | sys/arm/arm/pmap.c | 4 | ||||
-rw-r--r-- | sys/i386/i386/pmap.c | 4 | ||||
-rw-r--r-- | sys/ia64/ia64/pmap.c | 4 | ||||
-rw-r--r-- | sys/powerpc/powerpc/pmap_dispatch.c | 4 | ||||
-rw-r--r-- | sys/sparc64/sparc64/pmap.c | 4 | ||||
-rw-r--r-- | sys/sun4v/sun4v/pmap.c | 4 | ||||
-rw-r--r-- | sys/vm/pmap.h | 4 | ||||
-rw-r--r-- | sys/vm/vm_fault.c | 7 | ||||
-rw-r--r-- | sys/vm/vm_kern.c | 3 |
10 files changed, 22 insertions, 20 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index ed2f808..2c8a294 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2250,8 +2250,8 @@ retry: * insert this page into the given map NOW. */ void -pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, - boolean_t wired) +pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t m, + vm_prot_t prot, boolean_t wired) { vm_paddr_t pa; pd_entry_t *pde; diff --git a/sys/arm/arm/pmap.c b/sys/arm/arm/pmap.c index 4e4495d..5ad1c83 100644 --- a/sys/arm/arm/pmap.c +++ b/sys/arm/arm/pmap.c @@ -3324,8 +3324,8 @@ pmap_protect(pmap_t pm, vm_offset_t sva, vm_offset_t eva, vm_prot_t prot) */ void -pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, - boolean_t wired) +pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t m, + vm_prot_t prot, boolean_t wired) { vm_page_lock_queues(); diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 93e841d..a21df83 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -2302,8 +2302,8 @@ retry: * insert this page into the given map NOW. */ void -pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, - boolean_t wired) +pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t m, + vm_prot_t prot, boolean_t wired) { vm_paddr_t pa; pd_entry_t *pde; diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c index 72e5cbd..c5bfba1 100644 --- a/sys/ia64/ia64/pmap.c +++ b/sys/ia64/ia64/pmap.c @@ -1555,8 +1555,8 @@ pmap_protect(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, vm_prot_t prot) * insert this page into the given map NOW. */ void -pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, - boolean_t wired) +pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t m, + vm_prot_t prot, boolean_t wired) { pmap_t oldpmap; vm_offset_t pa; diff --git a/sys/powerpc/powerpc/pmap_dispatch.c b/sys/powerpc/powerpc/pmap_dispatch.c index c102b17..eab6689 100644 --- a/sys/powerpc/powerpc/pmap_dispatch.c +++ b/sys/powerpc/powerpc/pmap_dispatch.c @@ -107,8 +107,8 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) } void -pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t p, vm_prot_t prot, - boolean_t wired) +pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t p, + vm_prot_t prot, boolean_t wired) { MMU_ENTER(mmu_obj, pmap, va, p, prot, wired); } diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c index ffa1517..dc71b80 100644 --- a/sys/sparc64/sparc64/pmap.c +++ b/sys/sparc64/sparc64/pmap.c @@ -1273,8 +1273,8 @@ pmap_protect(pmap_t pm, vm_offset_t sva, vm_offset_t eva, vm_prot_t prot) * will be wired down. */ void -pmap_enter(pmap_t pm, vm_offset_t va, vm_page_t m, vm_prot_t prot, - boolean_t wired) +pmap_enter(pmap_t pm, vm_offset_t va, vm_prot_t access, vm_page_t m, + vm_prot_t prot, boolean_t wired) { vm_page_lock_queues(); diff --git a/sys/sun4v/sun4v/pmap.c b/sys/sun4v/sun4v/pmap.c index 1b88115..1b74374 100644 --- a/sys/sun4v/sun4v/pmap.c +++ b/sys/sun4v/sun4v/pmap.c @@ -1039,8 +1039,8 @@ pmap_add_tte(pmap_t pmap, vm_offset_t va, vm_page_t m, tte_t *tte_data, int wire * will be wired down. */ void -pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, - boolean_t wired) +pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t m, + vm_prot_t prot, boolean_t wired) { vm_paddr_t pa, opa; uint64_t tte_data, otte_data; diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h index d45c0f9..0438d11 100644 --- a/sys/vm/pmap.h +++ b/sys/vm/pmap.h @@ -95,8 +95,8 @@ void pmap_clear_modify(vm_page_t m); void pmap_clear_reference(vm_page_t m); void pmap_copy(pmap_t, pmap_t, vm_offset_t, vm_size_t, vm_offset_t); void pmap_copy_page(vm_page_t, vm_page_t); -void pmap_enter(pmap_t, vm_offset_t, vm_page_t, vm_prot_t, - boolean_t); +void pmap_enter(pmap_t, vm_offset_t, vm_prot_t, vm_page_t, + vm_prot_t, boolean_t); void pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot); void pmap_enter_object(pmap_t pmap, vm_offset_t start, diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index d2a8220..faa28da 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -888,7 +888,7 @@ readrest: * back on the active queue until later so that the pageout daemon * won't find it (yet). */ - pmap_enter(fs.map->pmap, vaddr, fs.m, prot, wired); + pmap_enter(fs.map->pmap, vaddr, fault_type, fs.m, prot, wired); if (((fault_flags & VM_FAULT_WIRE_MASK) == 0) && (wired == 0)) { vm_fault_prefault(fs.map->pmap, vaddr, fs.entry); } @@ -1177,9 +1177,10 @@ vm_fault_copy_entry(dst_map, src_map, dst_entry, src_entry) VM_OBJECT_UNLOCK(dst_object); /* - * Enter it in the pmap... + * Enter it in the pmap as a read and/or execute access. */ - pmap_enter(dst_map->pmap, vaddr, dst_m, prot, FALSE); + pmap_enter(dst_map->pmap, vaddr, prot & ~VM_PROT_WRITE, dst_m, + prot, FALSE); /* * Mark it no longer busy, and put it on the active list. diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 3b6de83..44694f5 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -406,7 +406,8 @@ retry: /* * Because this is kernel_pmap, this call will not block. */ - pmap_enter(kernel_pmap, addr + i, m, VM_PROT_ALL, 1); + pmap_enter(kernel_pmap, addr + i, VM_PROT_ALL, m, VM_PROT_ALL, + TRUE); vm_page_wakeup(m); } VM_OBJECT_UNLOCK(kmem_object); |