summaryrefslogtreecommitdiffstats
path: root/sys/vm/pmap.h
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-09-08 02:45:03 +0000
committeralc <alc@FreeBSD.org>2003-09-08 02:45:03 +0000
commita81d9ad0b98e80387ddd4e42ca6d4d3a2e30c1ec (patch)
treeb2790809d73f520fb71ebb6aa2acc4efb7933854 /sys/vm/pmap.h
parentce0ede96f1c4135dba204423dccf8e16f7dc1dbd (diff)
downloadFreeBSD-src-a81d9ad0b98e80387ddd4e42ca6d4d3a2e30c1ec.zip
FreeBSD-src-a81d9ad0b98e80387ddd4e42ca6d4d3a2e30c1ec.tar.gz
Introduce a new pmap function, pmap_extract_and_hold(). This function
atomically extracts and holds the physical page that is associated with the given pmap and virtual address. Such a function is needed to make the memory mapping optimizations used by, for example, pipes and raw disk I/O MP-safe. Reviewed by: tegge
Diffstat (limited to 'sys/vm/pmap.h')
-rw-r--r--sys/vm/pmap.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h
index af809bb..29f20c2 100644
--- a/sys/vm/pmap.h
+++ b/sys/vm/pmap.h
@@ -106,6 +106,7 @@ 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);
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