summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/alpha/alpha/pmap.c5
-rw-r--r--sys/amd64/amd64/pmap.c5
-rw-r--r--sys/i386/i386/pmap.c5
-rw-r--r--sys/ia64/ia64/pmap.c5
-rw-r--r--sys/sparc64/sparc64/pmap.c5
-rw-r--r--sys/vm/pmap.h3
6 files changed, 17 insertions, 11 deletions
diff --git a/sys/alpha/alpha/pmap.c b/sys/alpha/alpha/pmap.c
index a2f5a50..82ab789 100644
--- a/sys/alpha/alpha/pmap.c
+++ b/sys/alpha/alpha/pmap.c
@@ -815,10 +815,11 @@ pmap_extract(pmap, va)
* Routine: pmap_extract_and_hold
* Function:
* Atomically extract and hold the physical page
- * with the given pmap and virtual address.
+ * with the given pmap and virtual address pair
+ * if that mapping permits the given protection.
*/
vm_page_t
-pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
+pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
{
vm_paddr_t pa;
vm_page_t m;
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index fed7dac..76e5d26 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -753,10 +753,11 @@ pmap_extract(pmap, va)
* Routine: pmap_extract_and_hold
* Function:
* Atomically extract and hold the physical page
- * with the given pmap and virtual address.
+ * with the given pmap and virtual address pair
+ * if that mapping permits the given protection.
*/
vm_page_t
-pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
+pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
{
vm_paddr_t pa;
vm_page_t m;
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index 924a14f..b0d6526 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -865,10 +865,11 @@ pmap_extract(pmap, va)
* Routine: pmap_extract_and_hold
* Function:
* Atomically extract and hold the physical page
- * with the given pmap and virtual address.
+ * with the given pmap and virtual address pair
+ * if that mapping permits the given protection.
*/
vm_page_t
-pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
+pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
{
vm_paddr_t pa;
vm_page_t m;
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c
index aa9653f..b802810 100644
--- a/sys/ia64/ia64/pmap.c
+++ b/sys/ia64/ia64/pmap.c
@@ -1106,10 +1106,11 @@ pmap_extract(pmap, va)
* Routine: pmap_extract_and_hold
* Function:
* Atomically extract and hold the physical page
- * with the given pmap and virtual address.
+ * with the given pmap and virtual address pair
+ * if that mapping permits the given protection.
*/
vm_page_t
-pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
+pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
{
vm_paddr_t pa;
vm_page_t m;
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index f532152..81dd685 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -622,10 +622,11 @@ pmap_extract(pmap_t pm, vm_offset_t va)
/*
* Atomically extract and hold the physical page with the given
- * pmap and virtual address pair.
+ * pmap and virtual address pair if that mapping permits the given
+ * protection.
*/
vm_page_t
-pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
+pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
{
vm_paddr_t pa;
vm_page_t m;
diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h
index 29f20c2..8776966 100644
--- a/sys/vm/pmap.h
+++ b/sys/vm/pmap.h
@@ -106,7 +106,8 @@ void pmap_enter(pmap_t, vm_offset_t, vm_page_t, vm_prot_t,
vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m,
vm_page_t mpte);
vm_paddr_t pmap_extract(pmap_t pmap, vm_offset_t va);
-vm_page_t pmap_extract_and_hold(pmap_t pmap, vm_offset_t va);
+vm_page_t pmap_extract_and_hold(pmap_t pmap, vm_offset_t va,
+ vm_prot_t prot);
void pmap_growkernel(vm_offset_t);
void pmap_init(vm_paddr_t, vm_paddr_t);
boolean_t pmap_is_modified(vm_page_t m);
OpenPOWER on IntegriCloud