summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2003-09-25 19:14:40 +0000
committerbms <bms@FreeBSD.org>2003-09-25 19:14:40 +0000
commitb73973612aa7e3a7e398aba62ebad855c0367d3d (patch)
treee01b4279d0379d99a4b87d84fb66a6d2b44e7b06 /share
parenta3c2b54eb89b24e55e83341d4783f0baaabf6d97 (diff)
downloadFreeBSD-src-b73973612aa7e3a7e398aba62ebad855c0367d3d.zip
FreeBSD-src-b73973612aa7e3a7e398aba62ebad855c0367d3d.tar.gz
Add manual page documentation for the machine-independent PMAP subsystem.
Include documentation of alc's new pmap_extract_and_hold() function. Reviewed by: hmp Approved by: jake (mentor)
Diffstat (limited to 'share')
-rw-r--r--share/man/man9/Makefile16
-rw-r--r--share/man/man9/pmap.9121
-rw-r--r--share/man/man9/pmap_activate.950
-rw-r--r--share/man/man9/pmap_addr_hint.961
-rw-r--r--share/man/man9/pmap_change_wiring.966
-rw-r--r--share/man/man9/pmap_clear_modify.962
-rw-r--r--share/man/man9/pmap_copy.981
-rw-r--r--share/man/man9/pmap_enter.965
-rw-r--r--share/man/man9/pmap_extract.995
-rw-r--r--share/man/man9/pmap_growkernel.950
-rw-r--r--share/man/man9/pmap_init.972
-rw-r--r--share/man/man9/pmap_is_modified.970
-rw-r--r--share/man/man9/pmap_map.978
-rw-r--r--share/man/man9/pmap_mincore.973
-rw-r--r--share/man/man9/pmap_object_init_pt.970
-rw-r--r--share/man/man9/pmap_page_exists_quick.965
-rw-r--r--share/man/man9/pmap_page_protect.965
-rw-r--r--share/man/man9/pmap_pinit.986
-rw-r--r--share/man/man9/pmap_prefault.967
-rw-r--r--share/man/man9/pmap_qenter.978
-rw-r--r--share/man/man9/pmap_release.957
-rw-r--r--share/man/man9/pmap_remove.987
-rw-r--r--share/man/man9/pmap_zero_page.971
23 files changed, 1606 insertions, 0 deletions
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile
index 70d98ee..c21c7b7 100644
--- a/share/man/man9/Makefile
+++ b/share/man/man9/Makefile
@@ -59,6 +59,12 @@ MAN= BUF_LOCK.9 BUF_LOCKFREE.9 BUF_LOCKINIT.9 BUF_REFCNT.9 \
namei.9 \
panic.9 pbuf.9 pci.9 pfil.9 pfind.9 pgfind.9 \
physio.9 printf.9 pseudofs.9 psignal.9 \
+ pmap.9 pmap_activate.9 pmap_addr_hint.9 pmap_change_wiring.9 \
+ pmap_clear_modify.9 pmap_copy.9 pmap_enter.9 pmap_extract.9 \
+ pmap_growkernel.9 pmap_init.9 pmap_is_modified.9 pmap_map.9 \
+ pmap_mincore.9 pmap_object_init_pt.9 pmap_page_exists_quick.9 \
+ pmap_page_protect.9 pmap_pinit.9 pmap_prefault.9 pmap_qenter.9 \
+ pmap_release.9 pmap_remove.9 pmap_zero_page.9 \
random.9 resettodr.9 resource_int_value.9 resource_query_string.9 \
rtalloc.9 rtentry.9 runqueue.9 random_harvest.9 rijndael.9 \
rman.9 \
@@ -203,6 +209,16 @@ MLINKS+=pci.9 pci_get_powerstate.9 pci.9 pci_set_powerstate.9
MLINKS+=pci.9 pci_find_bsf.9 pci.9 pci_find_device.9
MLINKS+=pfil.9 pfil_hook_get.9 pfil.9 pfil_add_hook.9 pfil.9 pfil_remove_hook.9
MLINKS+=pfind.9 zpfind.9
+MLINKS+=pmap_clear_modify.9 pmap_clear_reference.9
+MLINKS+=pmap_copy.9 pmap_copy_page.9
+MLINKS+=pmap_extract.9 pmap_extract_and_hold.9
+MLINKS+=pmap_init.9 pmap_init2.9
+MLINKS+=pmap_is_modified.9 pmap_ts_modified.9
+MLINKS+=pmap_page_protect.9 pmap_protect.9
+MLINKS+=pmap_pinit.9 pmap_pinit0.9 pmap_pinit2.9
+MLINKS+=pmap_qenter.9 pmap_qremove.9
+MLINKS+=pmap_remove.9 pmap_remove_all.9 pmap_remove_pages.9
+MLINKS+=pmap_zero_page.9 pmap_zero_area.9 pmap_zero_idle.9
MLINKS+=psignal.9 gsignal.9 psignal.9 pgsignal.9
MLINKS+=random.9 srandom.9 random.9 arc4random.9 random.9 read_random.9
MLINKS+=random.9 arc4rand.9
diff --git a/share/man/man9/pmap.9 b/share/man/man9/pmap.9
new file mode 100644
index 0000000..464e5cf
--- /dev/null
+++ b/share/man/man9/pmap.9
@@ -0,0 +1,121 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP 9
+.Sh NAME
+.Nm pmap
+.Nd machine-dependent portion of virtual memory subsystem
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Sh DESCRIPTION
+The
+.Nm
+module is the machine-dependent portion of the
+.Fx
+VM (Virtual Memory) sub-system.
+Each function documented herein must have its own
+architecture-dependent implementation.
+.Pp
+The
+.Nm
+module
+is responsible for managing hardware-dependent objects such as page tables,
+address maps, TLBs, etc.
+.Pp
+Machine-dependent code must provide the header file
+.Em <machine/pmap.h> .
+This file contains the definition of the
+.Dv pmap
+structure:
+.Bd -literal -offset indent
+struct pmap {
+ /* Contents defined by pmap implementation. */
+};
+typedef struct pmap *pmap_t;
+.Ed
+.Pp
+This header file may also define other data structures used by the
+.Nm
+implementation.
+.Pp
+The header file
+.Em <vm/pmap.h>
+defines a structure for tracking
+.Nm
+statistics (see below).
+This structure is defined as:
+.Bd -literal -offset indent
+struct pmap_statistics {
+ long resident_count; /* number of mapped pages */
+ long wired_count; /* number of wired pages */
+};
+.Ed
+.Pp
+Each implementation is expected to maintain the statistics in this structure.
+.Sh SEE ALSO
+.Xr pmap 9 ,
+.Xr pmap_activate 9 ,
+.Xr pmap_addr_hint 9 ,
+.Xr pmap_change_wiring 9 ,
+.Xr pmap_clear_modify 9 ,
+.Xr pmap_clear_reference ,
+.Xr pmap_copy 9 ,
+.Xr pmap_copy_page 9 ,
+.Xr pmap_enter 9 ,
+.Xr pmap_extract 9 ,
+.Xr pmap_extract_and_hold 9 ,
+.Xr pmap_growkernel 9 ,
+.Xr pmap_init 9 ,
+.Xr pmap_init2 9 ,
+.Xr pmap_is_modified 9 ,
+.Xr pmap_map 9 ,
+.Xr pmap_mincore 9 ,
+.Xr pmap_object_init_pt 9 ,
+.Xr pmap_page_exists_quick 9 ,
+.Xr pmap_page_protect 9 ,
+.Xr pmap_pinit 9 ,
+.Xr pmap_pinit0 9 ,
+.Xr pmap_pinit2 9 ,
+.Xr pmap_prefault 9 ,
+.Xr pmap_protect 9 ,
+.Xr pmap_qenter 9 ,
+.Xr pmap_qremove 9 ,
+.Xr pmap_release 9 ,
+.Xr pmap_remove 9 ,
+.Xr pmap_remove_all 9 ,
+.Xr pmap_remove_pages 9 ,
+.Xr pmap_ts_modified 9 ,
+.Xr pmap_zero_area 9 ,
+.Xr pmap_zero_page 9 ,
+.Xr pmap_zero_idle 9 ,
+.Xr vm_map 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_activate.9 b/share/man/man9/pmap_activate.9
new file mode 100644
index 0000000..290eb64
--- /dev/null
+++ b/share/man/man9/pmap_activate.9
@@ -0,0 +1,50 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_ACTIVATE 9
+.Sh NAME
+.Nm pmap_activate
+.Nd activate a physical map
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_activate "struct thread *td"
+.Sh DESCRIPTION
+The
+.Fn pmap_activate
+function activates the physical map for a user thread
+.Fa td .
+This function must be called before the thread's address space may be
+accessed.
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_addr_hint.9 b/share/man/man9/pmap_addr_hint.9
new file mode 100644
index 0000000..4449fbd
--- /dev/null
+++ b/share/man/man9/pmap_addr_hint.9
@@ -0,0 +1,61 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_ADDR_HINT 9
+.Sh NAME
+.Nm pmap_addr_hint
+.Nd get a hint for the best-fit mapping of a VM object
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft vm_offset_t
+.Fn pmap_addr_hint "vm_object_t obj" "vm_offset_t addr" "vm_size_t size"
+.Sh DESCRIPTION
+The
+.Fn pmap_addr_hint
+function returns a hint for the best address at which to map the object
+.Fa obj
+at address
+.Fa addr
+of
+.Fa size
+bytes.
+.Sh IMPLEMENTATION NOTES
+This function is typically called on behalf of
+.Fn mmap .
+.Sh RETURN VALUES
+If the implementation can use the address unchanged, it will simply
+return
+.Fa addr .
+.Sh SEE ALSO
+.Xr mmap 2 ,
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_change_wiring.9 b/share/man/man9/pmap_change_wiring.9
new file mode 100644
index 0000000..165ba57
--- /dev/null
+++ b/share/man/man9/pmap_change_wiring.9
@@ -0,0 +1,66 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_CHANGE_WIRING 9
+.Sh NAME
+.Nm pmap_change_wiring
+.Nd change physical wiring for a map or virtual address pair
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_change_wiring "pmap_t pmap" "vm_offset_t va" "boolean_t wired"
+.Sh DESCRIPTION
+The
+.Fn pmap_change_wiring
+function changes the wiring attribute for the page at virtual address
+.Fa va
+in the physical map
+.Fa pmap .
+A wired page gets its name from being
+.Sq wired
+into the system page tables so that it will not be paged out.
+.Pp
+The mapping must already exist in the pmap.
+If
+.Fa wired
+is
+.Dv TRUE ,
+the map's wired page count will be incremented; if
+.Dv FALSE ,
+it will be decremented.
+.Pp
+It is typically called by the
+.Fn vm_fault_unwire
+function.
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_clear_modify.9 b/share/man/man9/pmap_clear_modify.9
new file mode 100644
index 0000000..a3572b2
--- /dev/null
+++ b/share/man/man9/pmap_clear_modify.9
@@ -0,0 +1,62 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_CLEAR_MODIFY 9
+.Sh NAME
+.Nm pmap_clear_modify ,
+.Nm pmap_clear_reference
+.Nd set information about physical pages
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_clear_modify "vm_page_t m"
+.Ft void
+.Fn pmap_clear_reference "vm_page_t m"
+.Sh DESCRIPTION
+The
+.Fn pmap_clear_modify
+function clears the
+.Sq modified
+bit on the physical page
+.Fa m .
+.Pp
+The
+.Fn pmap_clear_reference
+function clears the
+.Sq referenced
+bit on the physical page
+.Fa m .
+.Sh SEE ALSO
+.Xr pmap 9 ,
+.Xr pmap_is_modified 9 ,
+.Xr pmap_ts_referenced 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_copy.9 b/share/man/man9/pmap_copy.9
new file mode 100644
index 0000000..c5738af
--- /dev/null
+++ b/share/man/man9/pmap_copy.9
@@ -0,0 +1,81 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_COPY 9
+.Sh NAME
+.Nm pmap_copy ,
+.Nm pmap_copy_page
+.Nd copy physical memory pages
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_copy "pmap_t dst_pmap" "pmap_t src_pmap" "vm_offset_t dst_addr" \
+"vm_size_t len" "vm_offset_t src_addr"
+.Ft void
+.Fn pmap_copy_page "vm_page_t src" "vm_page_t dst"
+.Sh DESCRIPTION
+The
+.Fn pmap_copy
+function copies the range specified by
+.Fa src_addr
+and
+.Fa len
+from the source physical map
+.Fa src_pmap
+to the destination physical map
+.Fa dst_pmap
+at the address
+.Fa dst_addr .
+.Pp
+The
+.Fn pmap_copy_page
+function
+copies the physical page
+.Fa src
+to the physical page
+.Fa dst ,
+by mapping the page into kernel virtual address space (KVA), and using
+.Fn bcopy
+to copy the page.
+.Sh IMPLEMENTATION NOTES
+The
+.Fn pmap_copy
+routine is only advisory and need not do anything.
+Actually implementing it may seriously reduce system performance.
+.Pp
+The
+.Fn pmap_copy_page
+routine only operates upon a single page.
+.Sh SEE ALSO
+.Xr bcopy 3 ,
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_enter.9 b/share/man/man9/pmap_enter.9
new file mode 100644
index 0000000..c0e857d
--- /dev/null
+++ b/share/man/man9/pmap_enter.9
@@ -0,0 +1,65 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_ENTER 9
+.Sh NAME
+.Nm pmap_enter
+.Nd insert a virtual page into a physical map
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_enter "pmap_t pmap" "vm_offset_t va" "vm_page_t p" "vm_prot_t prot" \
+"boolean_t wired"
+.Sh DESCRIPTION
+The
+.Fn pmap_enter
+function inserts the given physical page
+.Fa p ,
+into the physical map
+.Fa pmap ,
+at the virtual address
+.Fa va ,
+with the protection
+.Fa prot .
+If
+.Fa wired
+is
+.Dv TRUE ,
+then increment the wired count for the page as soon as the mapping
+is inserted into
+.Fa pmap .
+.Sh IMPLEMENTATION NOTES
+This routine MAY NOT lazy-evaluate the entry; it is required by
+specification to make the requested entry at the time it is called.
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_extract.9 b/share/man/man9/pmap_extract.9
new file mode 100644
index 0000000..057ee01
--- /dev/null
+++ b/share/man/man9/pmap_extract.9
@@ -0,0 +1,95 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_EXTRACT 9
+.Sh NAME
+.Nm pmap_extract ,
+.Nm pmap_extract_and_hold
+.Nd map a virtual address to a physical page
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft vm_paddr_t
+.Fn pmap_extract "pmap_t pmap" "vm_offset_t va"
+.Ft vm_paddr_t
+.Fn pmap_extract_and_hold "pmap_t pmap" "vm_offset_t va" "vm_prot_t prot"
+.Sh DESCRIPTION
+The
+.Fn pmap_extract
+function maps a virtual address to a physical page.
+In certain situations, callers may use
+.Fn pmap_extract_and_hold
+instead, to ensure that the returned page is held.
+.Pp
+The
+.Fn pmap_extract_and_hold
+function maps a virtual address to a physical page, and atomically holds
+the returned page for use by the caller, only if the mapping permits
+the given page protection.
+.Sh IMPLEMENTATION NOTES
+Currently, the page protection requested by the caller is not verified.
+.Pp
+In the
+.Fn pmap_extract_and_hold
+function, the
+.Dv Giant
+lock is held for the duration of the call to ensure that only a single
+caller is present.
+.Sh RETURN VALUES
+The
+.Fn pmap_extract
+function will return the physical page address associated with the
+virtual address
+.Fa va
+inside the physical map
+.Fa pmap .
+If the mapping does not exist, or if the
+.Fa pmap
+parameter is NULL, then NULL will be returned.
+.Pp
+The
+.Fn pmap_extract_and_hold
+function will return the physical page address associated with the
+virtual address
+.Fa va
+inside the physical map
+.Fa pmap .
+If the mapping does not exist, the result is a no-op, and NULL will
+be returned.
+.Sh SEE ALSO
+.Xr mutex 9 ,
+.Xr pmap 9
+.Sh AUTHORS
+.An -nosplit
+The
+.Fn pmap_extract_and_hold
+function was implemented by
+.An Alan L. Cox Aq alc@imimic.com .
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_growkernel.9 b/share/man/man9/pmap_growkernel.9
new file mode 100644
index 0000000..df5e4e7
--- /dev/null
+++ b/share/man/man9/pmap_growkernel.9
@@ -0,0 +1,50 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_GROWKERNEL 9
+.Sh NAME
+.Nm pmap_growkernel
+.Nd grow the kernel virtual address (KVA) space
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_growkernel "vm_offset_t addr"
+.Sh DESCRIPTION
+The
+.Fn pmap_growkernel
+function grows the kernel virtual address space to the virtual address
+.Fa addr .
+.Pp
+It will allocate more page entries if required.
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_init.9 b/share/man/man9/pmap_init.9
new file mode 100644
index 0000000..27c8245
--- /dev/null
+++ b/share/man/man9/pmap_init.9
@@ -0,0 +1,72 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_INIT 9
+.Sh NAME
+.Nm pmap_init ,
+.Nm pmap_init2
+.Nd initialize the pmap subsystem
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_init "vm_paddr_t phys_start" "vm_paddr_t phys_end"
+.Ft void
+.Fn pmap_init2 "void"
+.Sh DESCRIPTION
+The
+.Fn pmap_init
+function initializes the
+.Xr pmap 9
+sub-system.
+It is called during system initialization by
+.Fn vm_init ,
+to initialize any structures that the
+.Nm
+system needs in order to map between physical and virtual memory.
+.Pp
+The
+.Fn pmap_init
+supports discontiguous physical memory in a fairly consistent way.
+The module will manage the range of physical pages between
+.Fa phys_start
+and
+.Fa phys_end .
+.Pp
+The
+.Fn pmap_init2
+function initializes a zone for the PV entries.
+These are used to implement page sharing at the physical level.
+A high water mark is set so that the system can recover from
+excessive numbers of PV entries.
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_is_modified.9 b/share/man/man9/pmap_is_modified.9
new file mode 100644
index 0000000..e58256f
--- /dev/null
+++ b/share/man/man9/pmap_is_modified.9
@@ -0,0 +1,70 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_IS_MODIFIED 9
+.Sh NAME
+.Nm pmap_is_modified ,
+.Nm pmap_ts_modified
+.Nd return information about physical pages
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft boolean_t
+.Fn pmap_is_modified "vm_page_t m"
+.Ft int
+.Fn pmap_ts_referenced "vm_page_t m"
+.Sh DESCRIPTION
+The
+.Fn pmap_is_modified
+and
+.Fn pmap_ts_referenced
+functions return information about physical pages.
+.Sh RETURN VALUES
+The
+.Fn pmap_is_modified
+function returns the status of the
+.Sq "page modified"
+bit for the physical page
+.Fa m .
+.Pp
+The
+.Fn pmap_ts_referenced
+function returns a count of reference bits for a page
+.Fa m ,
+clearing those bits.
+It is not necessary for every reference bit to be cleared, but it is
+necessary that 0 only be returned when there are no remaining reference
+bits set on the page.
+.Sh SEE ALSO
+.Xr pmap 9 ,
+.Xr pmap_clear_modify 9 ,
+.Xr pmap_clear_reference 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_map.9 b/share/man/man9/pmap_map.9
new file mode 100644
index 0000000..8872323
--- /dev/null
+++ b/share/man/man9/pmap_map.9
@@ -0,0 +1,78 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_MAP 9
+.Sh NAME
+.Nm pmap_map
+.Nd map a physical memory range into kernel virtual address (KVA) space
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft vm_offset_t
+.Fn pmap_map "vm_offset_t *virt" "vm_paddr_t start" "vm_paddr_t end" \
+"int prot"
+.Sh DESCRIPTION
+The
+.Fn pmap_map
+function maps a range of physical addresses into kernel virtual address (KVA)
+space, from
+.Fa start
+to
+.Fa end ,
+with protection bits
+.Fa prot .
+.Pp
+The value passed in
+.Fa *virt
+is treated as a hint for the virtual address of the beginning of the mapping.
+.Sh IMPLEMENTATION NOTES
+The
+.Fa prot
+argument is currently ignored by machine-dependent implementations.
+.Pp
+Architectures which can support a direct mapped physical to virtual
+region can return the appropriate address within that region, leaving
+.Fa *virt
+unchanged.
+.Sh RETURN VALUES
+The
+.Fn pmap_map
+function returns the virtual address of the beginning of the mapping, if
+the mapping was successfully made;
+.Fa *virt
+will also be updated with the first usable address after the mapped region.
+.Pp
+If the function is unsuccessful,
+.Dv NULL
+is returned.
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_mincore.9 b/share/man/man9/pmap_mincore.9
new file mode 100644
index 0000000..d1ad399
--- /dev/null
+++ b/share/man/man9/pmap_mincore.9
@@ -0,0 +1,73 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_MINCORE 9
+.Sh NAME
+.Nm pmap_mincore
+.Nd determine if a virtual address is resident in physical memory
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft int
+.Fn pmap_mincore "pmap_t pmap" "vm_offset_t addr"
+.Sh DESCRIPTION
+The
+.Fn pmap_mincore
+function determines if the page at the virtual address
+.Fa addr
+in the physical map
+.Fa pmap
+is resident in physical memory.
+It is the machine-dependent interface used by
+.Xr mincore 2
+system call.
+.Sh RETURN VALUES
+If the page is resident in physical memory,
+a mask of flags is returned,
+whose meaning is documented in
+.Xr mincore 2 ;
+otherwise,
+.Ql 0
+is returned.
+.Pp
+The
+.Fa pmap
+must exist and
+.Fa addr
+must be mapped into the
+.Fa pmap .
+If any error occurs, the machine-dependent implementation should
+return
+.Ql 0 .
+.Sh SEE ALSO
+.Xr mincore 2 ,
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_object_init_pt.9 b/share/man/man9/pmap_object_init_pt.9
new file mode 100644
index 0000000..1745ab8
--- /dev/null
+++ b/share/man/man9/pmap_object_init_pt.9
@@ -0,0 +1,70 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_OBJECT_INIT_PT 9
+.Sh NAME
+.Nm pmap_object_init_pt
+.Nd initialize page tables for a VM object
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_object_init_pt "pmap_t pmap" "vm_offset_t addr" "vm_object_t object" \
+"vm_pindex_t pindex" "vm_size_t size" "int limit"
+.Sh DESCRIPTION
+The
+.Fn pmap_object_init_pt
+function preloads the page table entries into the specified physical map
+.Fa pmap ,
+for the given
+.Fa object
+at the virtual address
+.Fa addr ,
+for
+.Fa size
+bytes, beginning at the page index
+.Fa pindex
+within the object.
+The map bits
+.Fa limit
+are heeded when creating the mapping.
+.Sh IMPLEMENTATION NOTES
+This function is not strictly required by an architecture's
+.Xr pmap 9
+implementation, but it does provide performance benefits if implemented.
+.Pp
+It is intended to eliminate the blast of soft faults on process
+startup, and immediately following a call to
+.Xr mmap 2 .
+.Sh SEE ALSO
+.Xr pmap 9 ,
+.Xr vm_map 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_page_exists_quick.9 b/share/man/man9/pmap_page_exists_quick.9
new file mode 100644
index 0000000..fe73792
--- /dev/null
+++ b/share/man/man9/pmap_page_exists_quick.9
@@ -0,0 +1,65 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_PAGE_EXISTS_QUICK 9
+.Sh NAME
+.Nm pmap_page_exists_quick
+.Nd determine if a page exists in a physical map
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft boolean_t
+.Fn pmap_page_exists_quick "pmap_t pmap" "vm_page_t m"
+.Sh DESCRIPTION
+The
+.Fn pmap_page_exists_quick
+function is used to quickly determine if the page
+.Fa m
+exists in the physical map
+.Fa pmap .
+It is typically called from the VM paging code.
+.Sh RETURN VALUES
+The
+.Fn pmap_page_exists_quick
+returns
+.Dv TRUE
+only if the PV entry for the physical map
+.Fa pmap
+is one of the first 16 PVs linked from the page
+.Fa m .
+.Sh IMPLEMENTATION NOTES
+The PV count used above may be changed upwards or downwards in future;
+it is only necessary that
+.Dv TRUE
+be returned for a small subset of pmaps for proper page aging.
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_page_protect.9 b/share/man/man9/pmap_page_protect.9
new file mode 100644
index 0000000..6b04752
--- /dev/null
+++ b/share/man/man9/pmap_page_protect.9
@@ -0,0 +1,65 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_PROTECT 9
+.Sh NAME
+.Nm pmap_page_protect ,
+.Nm pmap_protect
+.Nd set physical page protection
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_page_protect "vm_page_t m" "vm_prot_t prot"
+.Ft void
+.Fn pmap_protect "pmap_t pmap" "vm_offset_t sva" "vm_offset_t eva" \
+"vm_prot_t pr"
+.Sh DESCRIPTION
+The
+.Fn pmap_page_protect
+function lowers the physical page permissions to
+.Fa prot
+for all mappings of a given page
+.Fa m .
+.Pp
+The
+.Fn pmap_protect
+function sets the physical page permissions to
+.Fa prot
+for all physical pages in the physical map
+.Fa pmap
+in the virtual address range between
+.Fa sva
+and
+.Fa eva .
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_pinit.9 b/share/man/man9/pmap_pinit.9
new file mode 100644
index 0000000..b4b4876
--- /dev/null
+++ b/share/man/man9/pmap_pinit.9
@@ -0,0 +1,86 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_PINIT 9
+.Sh NAME
+.Nm pmap_pinit ,
+.Nm pmap_pinit0 ,
+.Nm pmap_pinit2
+.Nd initialize pmap structures
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_pinit "pmap_t pmap"
+.Ft void
+.Fn pmap_pinit0 "pmap_t pm"
+.Ft void
+.Fn pmap_pinit2 "pmap_t pmap"
+.Sh DESCRIPTION
+The
+.Fn pmap_pinit
+function initializes the preallocated and zeroed structure
+.Fa pmap ,
+such as one in a
+.Vt vmspace
+structure.
+.Pp
+The
+.Fn pmap_pinit0
+function initializes the physical map
+.Fa pm ,
+associated with process 0, the first process created in the system.
+.Pp
+The
+.Fn pmap_pinit2
+function wires in kernel global address entries for the physical map
+.Fa pmap ,
+which must be associated with a user process.
+It is called during process creation.
+.Pp
+To avoid a race condition between
+.Fa pmap
+intialization and
+.Fn pmap_growkernel ,
+.Fn pmap_pinit2
+should be called after the vmspace
+is attached to the process but before this
+.Fa pmap
+is activated.
+.Sh IMPLEMENTATION NOTES
+The
+.Fn pmap_pinit2
+function has been deprecated, and should be implemented as a stub
+until further notice.
+.Sh SEE ALSO
+.Xr pmap 9 ,
+.Xr pmap_growkernel 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_prefault.9 b/share/man/man9/pmap_prefault.9
new file mode 100644
index 0000000..eef370f
--- /dev/null
+++ b/share/man/man9/pmap_prefault.9
@@ -0,0 +1,67 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_PREFAULT 9
+.Sh NAME
+.Nm pmap_prefault
+.Nd cluster page faults into a process's address space
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_prefault "pmap_t pmap" "vm_offset_t addra" "vm_map_entry_t entry"
+.Sh DESCRIPTION
+The
+.Fn pmap_prefault
+function provides a means of clustering pagefaults into a process's
+address space.
+It operates upon the physical map
+.Fa pmap .
+The
+.Fa entry
+argument specifies the entry to be prefaulted; the
+.Fa addra
+argument specifies the beginning of the mapping in the process's virtual
+address space.
+.Pp
+It is typically called by
+.Fn vm_fault
+after the first page fault.
+It benefits the
+.Fn exec
+system call by eliminating repetitive calls to
+.Fn vm_fault ,
+which would otherwise be made to bring the process's executable pages
+into physical memory.
+.Sh SEE ALSO
+.Xr execve 2 ,
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_qenter.9 b/share/man/man9/pmap_qenter.9
new file mode 100644
index 0000000..c1e2344
--- /dev/null
+++ b/share/man/man9/pmap_qenter.9
@@ -0,0 +1,78 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_QENTER 9
+.Sh NAME
+.Nm pmap_qenter ,
+.Nm pmap_qremove
+.Nd manage temporary kernel space mappings
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_qenter "vm_offset_t sva" "vm_page_t *m" "int count"
+.Ft void
+.Fn pmap_qremove "vm_offset_t sva" "int count"
+.Sh DESCRIPTION
+The
+.Fn pmap_qenter
+function accepts a linear array of
+.Fa count
+pointers to wired pages
+.Fa *m ,
+and enters each of these pages into the kernel virtual address (KVA) space,
+beginning at the address
+.Fa sva .
+.Pp
+The
+.Fn pmap_qremove
+function tears out a mapping from the kernel virtual address space,
+beginning at
+.Fa sva
+and for
+.Fa count
+pages.
+.Sh IMPLEMENTATION NOTES
+The
+.Fn pmap_qenter
+function is intended for temporary mappings that do not require page
+modification or reference counting.
+Old mappings are simply overwritten.
+The pages
+.Em must
+be wired into physical memory.
+.Pp
+The corresponding
+.Fn pmap_qremove
+function is intended to remove such temporary mappings.
+.Sh SEE ALSO
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_release.9 b/share/man/man9/pmap_release.9
new file mode 100644
index 0000000..8661a32
--- /dev/null
+++ b/share/man/man9/pmap_release.9
@@ -0,0 +1,57 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_RELEASE 9
+.Sh NAME
+.Nm pmap_release
+.Nd release resources held by a physical map
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_release "pmap_t pmap"
+.Sh DESCRIPTION
+The
+.Fn pmap_release
+function releases any resources held by the physical map
+.Fa pmap .
+This function is
+called when a pmap initialized by the corresponding function,
+.Fn pmap_pinit
+is being released.
+.Sh IMPLEMENTATION NOTES
+This function should only be called if
+.Fa pmap
+no longer contains any valid mappings.
+.Sh SEE ALSO
+.Xr pmap 9 ,
+.Xr pmap_pinit 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_remove.9 b/share/man/man9/pmap_remove.9
new file mode 100644
index 0000000..e7ded34
--- /dev/null
+++ b/share/man/man9/pmap_remove.9
@@ -0,0 +1,87 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_REMOVE 9
+.Sh NAME
+.Nm pmap_remove ,
+.Nm pmap_remove_all ,
+.Nm pmap_remove_pages
+.Nd remove pages from a physical map
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_remove "pmap_t pmap" "vm_offset_t sva" "vm_offset_t eva"
+.Ft void
+.Fn pmap_remove_all "vm_page_t m"
+.Ft void
+.Fn pmap_remove_pages "pmap_t pmap" "vm_offset_t sva" "vm_offset_t eva"
+.Sh DESCRIPTION
+The
+.Fn pmap_remove
+function removes the range of addresses between
+.Fa sva
+and
+.Fa eva
+from the physical map
+.Fa pmap .
+If
+.Fa eva
+is less than
+.Fa sva ,
+then the result is undefined.
+It is assumed that both
+.Fa sva
+and
+.Fa eva
+are page-aligned addresses.
+.Pp
+The
+.Fn pmap_remove_all
+removes the physical page
+.Fa m
+from all physical maps in which it resides, and reflects back the modify
+bits to the appropriate pager.
+.Pp
+The
+.Fn pmap_remove_pages
+function removes all pages from the physical map
+.Fa pmap ,
+within the range of physical addresses bounded by
+.Fa sva
+and
+.Fa eva .
+This function is called when a process exits to run down its address space
+more quickly than would be the case for calling
+.Fn pmap_remove .
+.Sh SEE ALSO
+.Fn pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
diff --git a/share/man/man9/pmap_zero_page.9 b/share/man/man9/pmap_zero_page.9
new file mode 100644
index 0000000..1b6daf6a
--- /dev/null
+++ b/share/man/man9/pmap_zero_page.9
@@ -0,0 +1,71 @@
+.\"
+.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 21, 2003
+.Dt PMAP_ZERO 9
+.Sh NAME
+.Nm pmap_zero_page ,
+.Nm pmap_zero_area ,
+.Nm pmap_zero_idle
+.Nd zero-fill a page using machine-dependent optimizations
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.Ft void
+.Fn pmap_zero_page "vm_page_t m"
+.Ft void
+.Fn pmap_zero_page_area "vm_page_t m" "int off" "int size"
+.Ft void
+.Fn pmap_zero_page_idle "vm_page_t m"
+.Sh DESCRIPTION
+The
+.Fn pmap_zero_page
+function zero-fills an entire page using machine-dependent optimizations.
+The
+.Fn pmap_zero_page_area
+function is used to zero-fill an area of a page.
+The range specified must not cross a page boundary; it must be contained
+entirely within a single page.
+.Pp
+The
+.Fn pmap_zero_page_idle
+interface is used by the
+.Em vm_pagezero
+process.
+The system-wide
+.Fa Giant
+lock should not be required to be held in order to call this interface.
+.Sh IMPLEMENTATION NOTES
+This function is required to be implemented for each architecture supported by
+.Fx .
+.Sh SEE ALSO
+.Xr bzero 3 ,
+.Xr pmap 9
+.Sh AUTHORS
+This manual page was written by
+.An Bruce M Simpson Aq bms@spc.org .
OpenPOWER on IntegriCloud