diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 70d98eec17ee..c21c7b7d812c 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 000000000000..464e5cf27cfc --- /dev/null +++ b/share/man/man9/pmap.9 @@ -0,0 +1,121 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 . +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 +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 000000000000..290eb64c93a1 --- /dev/null +++ b/share/man/man9/pmap_activate.9 @@ -0,0 +1,50 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..4449fbd5f200 --- /dev/null +++ b/share/man/man9/pmap_addr_hint.9 @@ -0,0 +1,61 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..165ba572c388 --- /dev/null +++ b/share/man/man9/pmap_change_wiring.9 @@ -0,0 +1,66 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..a3572b2dd23e --- /dev/null +++ b/share/man/man9/pmap_clear_modify.9 @@ -0,0 +1,62 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..c5738af3f867 --- /dev/null +++ b/share/man/man9/pmap_copy.9 @@ -0,0 +1,81 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..c0e857d4ca19 --- /dev/null +++ b/share/man/man9/pmap_enter.9 @@ -0,0 +1,65 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..057ee013555b --- /dev/null +++ b/share/man/man9/pmap_extract.9 @@ -0,0 +1,95 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..df5e4e76ba2f --- /dev/null +++ b/share/man/man9/pmap_growkernel.9 @@ -0,0 +1,50 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..27c8245e2b62 --- /dev/null +++ b/share/man/man9/pmap_init.9 @@ -0,0 +1,72 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..e58256fa8548 --- /dev/null +++ b/share/man/man9/pmap_is_modified.9 @@ -0,0 +1,70 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..8872323f9e8d --- /dev/null +++ b/share/man/man9/pmap_map.9 @@ -0,0 +1,78 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..d1ad399848cd --- /dev/null +++ b/share/man/man9/pmap_mincore.9 @@ -0,0 +1,73 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..1745ab8f5dc9 --- /dev/null +++ b/share/man/man9/pmap_object_init_pt.9 @@ -0,0 +1,70 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..fe7379212359 --- /dev/null +++ b/share/man/man9/pmap_page_exists_quick.9 @@ -0,0 +1,65 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..6b04752b5aeb --- /dev/null +++ b/share/man/man9/pmap_page_protect.9 @@ -0,0 +1,65 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..b4b4876d4120 --- /dev/null +++ b/share/man/man9/pmap_pinit.9 @@ -0,0 +1,86 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..eef370f3c56c --- /dev/null +++ b/share/man/man9/pmap_prefault.9 @@ -0,0 +1,67 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..c1e2344593f6 --- /dev/null +++ b/share/man/man9/pmap_qenter.9 @@ -0,0 +1,78 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..8661a3223e5c --- /dev/null +++ b/share/man/man9/pmap_release.9 @@ -0,0 +1,57 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..e7ded344dff9 --- /dev/null +++ b/share/man/man9/pmap_remove.9 @@ -0,0 +1,87 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 000000000000..1b6daf6a85cb --- /dev/null +++ b/share/man/man9/pmap_zero_page.9 @@ -0,0 +1,71 @@ +.\" +.\" Copyright (c) 2003 Bruce M Simpson +.\" 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 .