Wed Oct 21 23:33:32 2009 UTC ()
pmap(9): G/C pmap_collect, bump date.


(rmind)
diff -r1.38 -r1.39 src/share/man/man9/pmap.9

cvs diff -r1.38 -r1.39 src/share/man/man9/pmap.9 (expand / switch to unified diff)

--- src/share/man/man9/pmap.9 2009/08/03 22:08:57 1.38
+++ src/share/man/man9/pmap.9 2009/10/21 23:33:32 1.39
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1.\" $NetBSD: pmap.9,v 1.38 2009/08/03 22:08:57 pooka Exp $ 1.\" $NetBSD: pmap.9,v 1.39 2009/10/21 23:33:32 rmind Exp $
2.\" 2.\"
3.\" Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc. 3.\" Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
4.\" All rights reserved. 4.\" All rights reserved.
5.\" 5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation 6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Jason R. Thorpe. 7.\" by Jason R. Thorpe.
8.\" 8.\"
9.\" Redistribution and use in source and binary forms, with or without 9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions 10.\" modification, are permitted provided that the following conditions
11.\" are met: 11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright 12.\" 1. Redistributions of source code must retain the above copyright
13.\" notice, this list of conditions and the following disclaimer. 13.\" notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright 14.\" 2. Redistributions in binary form must reproduce the above copyright
@@ -17,27 +17,27 @@ @@ -17,27 +17,27 @@
17.\" 17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE. 28.\" POSSIBILITY OF SUCH DAMAGE.
29.\" 29.\"
30.Dd August 3, 2009 30.Dd October 22, 2009
31.Dt PMAP 9 31.Dt PMAP 9
32.Os 32.Os
33.Sh NAME 33.Sh NAME
34.Nm pmap 34.Nm pmap
35.Nd machine-dependent portion of the virtual memory system 35.Nd machine-dependent portion of the virtual memory system
36.Sh SYNOPSIS 36.Sh SYNOPSIS
37.In sys/param.h 37.In sys/param.h
38.In uvm/uvm_extern.h 38.In uvm/uvm_extern.h
39.Ft void 39.Ft void
40.Fn "pmap_init" "void" 40.Fn "pmap_init" "void"
41.Ft void 41.Ft void
42.Fn "pmap_virtual_space" "vaddr_t *vstartp" "vaddr_t *vendp" 42.Fn "pmap_virtual_space" "vaddr_t *vstartp" "vaddr_t *vendp"
43.Ft vaddr_t 43.Ft vaddr_t
@@ -69,28 +69,26 @@ @@ -69,28 +69,26 @@
69.Fn "pmap_protect" "pmap_t pmap" "vaddr_t sva" "vaddr_t eva" "vm_prot_t prot" 69.Fn "pmap_protect" "pmap_t pmap" "vaddr_t sva" "vaddr_t eva" "vm_prot_t prot"
70.Ft void 70.Ft void
71.Fn "pmap_unwire" "pmap_t pmap" "vaddr_t va" 71.Fn "pmap_unwire" "pmap_t pmap" "vaddr_t va"
72.Ft bool 72.Ft bool
73.Fn "pmap_extract" "pmap_t pmap" "vaddr_t va" "paddr_t *pap" 73.Fn "pmap_extract" "pmap_t pmap" "vaddr_t va" "paddr_t *pap"
74.Ft void 74.Ft void
75.Fn "pmap_kenter_pa" "vaddr_t va" "paddr_t pa" "vm_prot_t prot" 75.Fn "pmap_kenter_pa" "vaddr_t va" "paddr_t pa" "vm_prot_t prot"
76.Ft void 76.Ft void
77.Fn "pmap_kremove" "vaddr_t va" "vsize_t size" 77.Fn "pmap_kremove" "vaddr_t va" "vsize_t size"
78.Ft void 78.Ft void
79.Fn "pmap_copy" "pmap_t dst_map" "pmap_t src_map" "vaddr_t dst_addr" \ 79.Fn "pmap_copy" "pmap_t dst_map" "pmap_t src_map" "vaddr_t dst_addr" \
80 "vsize_t len" "vaddr_t src_addr" 80 "vsize_t len" "vaddr_t src_addr"
81.Ft void 81.Ft void
82.Fn "pmap_collect" "pmap_t pmap" 
83.Ft void 
84.Fn "pmap_update" "pmap_t pmap" 82.Fn "pmap_update" "pmap_t pmap"
85.Ft void 83.Ft void
86.Fn "pmap_activate" "struct lwp *l" 84.Fn "pmap_activate" "struct lwp *l"
87.Ft void 85.Ft void
88.Fn "pmap_deactivate" "struct lwp *l" 86.Fn "pmap_deactivate" "struct lwp *l"
89.Ft void 87.Ft void
90.Fn "pmap_zero_page" "paddr_t pa" 88.Fn "pmap_zero_page" "paddr_t pa"
91.Ft void 89.Ft void
92.Fn "pmap_copy_page" "paddr_t src" "paddr_t dst" 90.Fn "pmap_copy_page" "paddr_t src" "paddr_t dst"
93.Ft void 91.Ft void
94.Fn "pmap_page_protect" "struct vm_page *pg" "vm_prot_t prot" 92.Fn "pmap_page_protect" "struct vm_page *pg" "vm_prot_t prot"
95.Ft bool 93.Ft bool
96.Fn "pmap_clear_modify" "struct vm_page *pg" 94.Fn "pmap_clear_modify" "struct vm_page *pg"
@@ -667,49 +665,26 @@ bytes into @@ -667,49 +665,26 @@ bytes into
667.Fa dst_map 665.Fa dst_map
668starting at 666starting at
669.Fa dst_addr . 667.Fa dst_addr .
670.Pp 668.Pp
671Note that while this function is required to be provided by a 669Note that while this function is required to be provided by a
672.Nm 670.Nm
673implementation, it is not actually required to do anything. 671implementation, it is not actually required to do anything.
674.Fn pmap_copy 672.Fn pmap_copy
675is merely advisory (it is used in the 673is merely advisory (it is used in the
676.Xr fork 2 674.Xr fork 2
677path to 675path to
678.Dq pre-fault 676.Dq pre-fault
679the child's address space). 677the child's address space).
680.It void Fn "pmap_collect" "pmap_t pmap" 
681This function is called just before a process is swapped out to 
682allow the 
683.Nm 
684module to release resources used to map the process's address space. 
685The implementation may choose to remove physical mappings in order 
686to free for example page tables back to the system. 
687Note, however, that wired mappings must 
688.Em not 
689be removed when 
690.Fn pmap_collect 
691is called. 
692.Pp 
693Note that while this function is required to be provided by a 
694.Nm 
695implementation, it is not actually required to do anything. 
696.Fn pmap_collect 
697is merely advisory. 
698It is recommended, however, that 
699.Fn pmap_collect 
700be fully implemented by a 
701.Nm 
702implementation. 
703.It void Fn "pmap_update" "pmap_t pmap" 678.It void Fn "pmap_update" "pmap_t pmap"
704This function is used to inform the 679This function is used to inform the
705.Nm 680.Nm
706module that all physical mappings, for the specified pmap, must now be 681module that all physical mappings, for the specified pmap, must now be
707correct. 682correct.
708That is, all delayed virtual-to-physical mappings updates (such as TLB 683That is, all delayed virtual-to-physical mappings updates (such as TLB
709invalidation or address space identifier updates) must be completed. 684invalidation or address space identifier updates) must be completed.
710This routine must be used after calls to 685This routine must be used after calls to
711.Fn pmap_enter , 686.Fn pmap_enter ,
712.Fn pmap_remove , 687.Fn pmap_remove ,
713.Fn pmap_protect , 688.Fn pmap_protect ,
714.Fn pmap_kenter_pa , 689.Fn pmap_kenter_pa ,
715and 690and