summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2008-01-03 07:34:34 +0000
committeralc <alc@FreeBSD.org>2008-01-03 07:34:34 +0000
commit545d26e30bb60df264b73543bf214c7e006f18fb (patch)
tree46a2b299e20f99257e0a9e31f02276471aed28a1 /sys
parent9699ca07d2cae2224f351d0a332b8265c829f9a8 (diff)
downloadFreeBSD-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.
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/amd64/pmap.c4
-rw-r--r--sys/arm/arm/pmap.c4
-rw-r--r--sys/i386/i386/pmap.c4
-rw-r--r--sys/ia64/ia64/pmap.c4
-rw-r--r--sys/powerpc/powerpc/pmap_dispatch.c4
-rw-r--r--sys/sparc64/sparc64/pmap.c4
-rw-r--r--sys/sun4v/sun4v/pmap.c4
-rw-r--r--sys/vm/pmap.h4
-rw-r--r--sys/vm/vm_fault.c7
-rw-r--r--sys/vm/vm_kern.c3
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);
OpenPOWER on IntegriCloud