Module Name:    src
Committed By:   rmind
Date:           Fri Jun  3 18:43:39 UTC 2011

Modified Files:
        src/distrib/sets/lists/comp: mi
        src/share/man/man9: Makefile uvm_km.9 uvm_map.9

Log Message:
Sync (mostly, not fully) uvm_km(9) and uvm_map(9) man pages with reality.


To generate a diff of this commit:
cvs rdiff -u -r1.1627 -r1.1628 src/distrib/sets/lists/comp/mi
cvs rdiff -u -r1.347 -r1.348 src/share/man/man9/Makefile
cvs rdiff -u -r1.1 -r1.2 src/share/man/man9/uvm_km.9 \
    src/share/man/man9/uvm_map.9

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/comp/mi
diff -u src/distrib/sets/lists/comp/mi:1.1627 src/distrib/sets/lists/comp/mi:1.1628
--- src/distrib/sets/lists/comp/mi:1.1627	Wed Jun  1 02:22:19 2011
+++ src/distrib/sets/lists/comp/mi	Fri Jun  3 18:43:38 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: mi,v 1.1627 2011/06/01 02:22:19 rmind Exp $
+#	$NetBSD: mi,v 1.1628 2011/06/03 18:43:38 rmind Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -10195,7 +10195,7 @@
 ./usr/share/man/cat9/uvm_scheduler.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/uvm_setpagesize.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/uvm_swap_init.0		comp-sys-catman		.cat
-./usr/share/man/cat9/uvm_swapin.0		comp-sys-catman		.cat
+./usr/share/man/cat9/uvm_swapin.0		comp-obsolete		obsolete
 ./usr/share/man/cat9/uvm_sysctl.0		comp-obsolete		obsolete
 ./usr/share/man/cat9/uvm_unloan.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/uvm_unmap.0		comp-sys-catman		.cat
@@ -16127,7 +16127,7 @@
 ./usr/share/man/html9/uvm_scheduler.html	comp-sys-htmlman	html
 ./usr/share/man/html9/uvm_setpagesize.html	comp-sys-htmlman	html
 ./usr/share/man/html9/uvm_swap_init.html	comp-sys-htmlman	html
-./usr/share/man/html9/uvm_swapin.html		comp-sys-htmlman	html
+./usr/share/man/html9/uvm_swapin.html		comp-obsolete		obsolete
 ./usr/share/man/html9/uvm_unloan.html		comp-sys-htmlman	html
 ./usr/share/man/html9/uvm_unmap.html		comp-sys-htmlman	html
 ./usr/share/man/html9/uvm_vnp_setsize.html	comp-sys-htmlman	html
@@ -22287,7 +22287,7 @@
 ./usr/share/man/man9/uvm_scheduler.9		comp-sys-man		.man
 ./usr/share/man/man9/uvm_setpagesize.9		comp-sys-man		.man
 ./usr/share/man/man9/uvm_swap_init.9		comp-sys-man		.man
-./usr/share/man/man9/uvm_swapin.9		comp-sys-man		.man
+./usr/share/man/man9/uvm_swapin.9		comp-obsolete		obsolete
 ./usr/share/man/man9/uvm_sysctl.9		comp-obsolete		obsolete
 ./usr/share/man/man9/uvm_unloan.9		comp-sys-man		.man
 ./usr/share/man/man9/uvm_unmap.9		comp-sys-man		.man

Index: src/share/man/man9/Makefile
diff -u src/share/man/man9/Makefile:1.347 src/share/man/man9/Makefile:1.348
--- src/share/man/man9/Makefile:1.347	Wed Jun  1 02:22:18 2011
+++ src/share/man/man9/Makefile	Fri Jun  3 18:43:38 2011
@@ -1,4 +1,4 @@
-#       $NetBSD: Makefile,v 1.347 2011/06/01 02:22:18 rmind Exp $
+#       $NetBSD: Makefile,v 1.348 2011/06/03 18:43:38 rmind Exp $
 
 #	Makefile for section 9 (kernel function and variable) manual pages.
 
@@ -742,7 +742,7 @@
 	uvm.9 uvm_io.9 uvm.9 uvm_pagealloc.9 \
 	uvm.9 uvm_pagerealloc.9 uvm.9 uvm_pagefree.9 uvm.9 uvm_pglistalloc.9 \
 	uvm.9 uvm_pglistfree.9 uvm.9 uvm_page_physload.9 uvm.9 uvm_pageout.9 \
-	uvm.9 uvm_scheduler.9 uvm.9 uvm_swapin.9 uvm.9 uao_create.9 \
+	uvm.9 uvm_scheduler.9 uvm.9 uao_create.9 \
 	uvm.9 uao_detach.9 uvm.9 uao_reference.9 uvm.9 uvm_chgkprot.9 \
 	uvm.9 uvm_kernacc.9 uvm.9 uvm_vslock.9 \
 	uvm.9 uvm_vsunlock.9 uvm.9 uvm_meter.9 \

Index: src/share/man/man9/uvm_km.9
diff -u src/share/man/man9/uvm_km.9:1.1 src/share/man/man9/uvm_km.9:1.2
--- src/share/man/man9/uvm_km.9:1.1	Wed Jun  1 02:22:19 2011
+++ src/share/man/man9/uvm_km.9	Fri Jun  3 18:43:38 2011
@@ -1,4 +1,4 @@
-.\"	$NetBSD: uvm_km.9,v 1.1 2011/06/01 02:22:19 rmind Exp $
+.\"	$NetBSD: uvm_km.9,v 1.2 2011/06/03 18:43:38 rmind Exp $
 .\"
 .\" Copyright (c) 1998 Matthew R. Green
 .\" All rights reserved.
@@ -24,7 +24,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd June 1, 2011
+.Dd June 3, 2011
 .Dt UVM_KM 9
 .Os
 .Sh NAME
@@ -39,7 +39,7 @@
 .Fn uvm_km_free "struct vm_map *map" "vaddr_t addr" "vsize_t size" "uvm_flag_t flags"
 .Ft struct vm_map *
 .Fn uvm_km_suballoc "struct vm_map *map" "vaddr_t *min" "vaddr_t *max" \
-"vsize_t size" "int flags" "bool fixed" "struct vm_map *submap"
+"vsize_t size" "int flags" "bool fixed" "struct vm_map_kernel *submap"
 .Sh DESCRIPTION
 The UVM facility for allocation of kernel memory or address space in pages.
 Both wired and pageable memory can be allocated by this facility, as well
@@ -72,8 +72,8 @@
 .It UVM_KMF_VAONLY
 Virtual address only.
 No physical pages are mapped in the allocated region.
-If necessary, it's the caller's responsibility to enter page mappings.
-It's also the caller's responsibility to clean up the mappings before freeing
+If necessary, it is the caller's responsibility to enter page mappings.
+It is also the caller's responsibility to clean up the mappings before freeing
 the address range.
 .El
 .Pp
@@ -89,16 +89,16 @@
 Request zero-filled memory.
 Only supported for
 .Dv UVM_KMF_WIRED .
-Shouldn't be used with other types.
+Should not be used with other types.
 .It UVM_KMF_TRYLOCK
-Fail if we can't lock the map.
+Fail if cannot lock the map without sleeping.
 .It UVM_KMF_NOWAIT
 Fail immediately if no memory is available.
 .It UVM_KMF_WAITVA
 Sleep to wait for the virtual address resources if needed.
 .El
 .Pp
-(If neither
+If neither
 .Dv UVM_KMF_NOWAIT
 nor
 .Dv UVM_KMF_CANFAIL
@@ -106,7 +106,7 @@
 .Dv UVM_KMF_WAITVA
 is specified,
 .Fn uvm_km_alloc
-will never fail, but rather sleep indefinitely until the allocation succeeds.)
+will never fail, but rather sleep indefinitely until the allocation succeeds.
 .Pp
 Pageability of the pages allocated with
 .Dv UVM_KMF_PAGEABLE
@@ -129,7 +129,7 @@
 .Fa flags
 must be the allocation type used for the corresponding
 .Fn uvm_km_alloc .
-.Pp
+Note that
 .Fn uvm_km_free
 is the only way to free memory ranges allocated by
 .Fn uvm_km_alloc .
@@ -143,7 +143,7 @@
 .Fa submap
 is
 .Dv NULL .
-The addresses of the submap can be specified exactly by setting the
+The addresses of the submap can be specified explicitly by setting the
 .Fa fixed
 argument to true, which causes the
 .Fa min
@@ -161,7 +161,7 @@
 The
 .Fa flags
 are used to initialize the created submap.
-The following flags could be set:
+The following flags can be set:
 .Bl -tag -width VM_MAP_PAGEABLE
 .It VM_MAP_PAGEABLE
 Entries in the map may be paged out.
Index: src/share/man/man9/uvm_map.9
diff -u src/share/man/man9/uvm_map.9:1.1 src/share/man/man9/uvm_map.9:1.2
--- src/share/man/man9/uvm_map.9:1.1	Wed Jun  1 02:22:19 2011
+++ src/share/man/man9/uvm_map.9	Fri Jun  3 18:43:38 2011
@@ -1,4 +1,4 @@
-.\"	$NetBSD: uvm_map.9,v 1.1 2011/06/01 02:22:19 rmind Exp $
+.\"	$NetBSD: uvm_map.9,v 1.2 2011/06/03 18:43:38 rmind Exp $
 .\"
 .\" Copyright (c) 1998 Matthew R. Green
 .\" All rights reserved.
@@ -24,7 +24,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd June 1, 2011
+.Dd June 3, 2011
 .Dt UVM_MAP 9
 .Os
 .Sh NAME
@@ -51,21 +51,25 @@
 .Ft int
 .Fn uvm_deallocate "struct vm_map *map" "vaddr_t start" "vsize_t size"
 .Ft struct vmspace *
-.Fn uvmspace_alloc "vaddr_t min" "vaddr_t max" "int pageable"
+.Fn uvmspace_alloc "vaddr_t min" "vaddr_t max"
 .Ft void
 .Fn uvmspace_exec "struct lwp *l" "vaddr_t start" "vaddr_t end"
 .Ft struct vmspace *
 .Fn uvmspace_fork "struct vmspace *vm"
 .Ft void
-.Fn uvmspace_free "struct vmspace *vm1"
+.Fn uvmspace_free "struct vmspace *vm"
 .Ft void
 .Fn uvmspace_share "struct proc *p1" "struct proc *p2"
-.Ft void
-.Fn uvmspace_unshare "struct lwp *l"
-.Ft bool
-.Fn uvm_uarea_alloc "vaddr_t *uaddrp"
+.\" .Ft void
+.\" .Fn uvmspace_unshare "struct lwp *l"
+.Ft vaddr_t
+.Fn uvm_uarea_alloc "void"
 .Ft void
 .Fn uvm_uarea_free "vaddr_t uaddr"
+.Ft vaddr_t
+.Fn uvm_uarea_system_alloc "void"
+.Ft void
+.Fn uvm_uarea_system_free "vaddr_t uaddr"
 .Sh DESCRIPTION
 The UVM facility for virtual address space management.
 .Sh FUNCTIONS
@@ -111,7 +115,7 @@
 .Fa startp .
 If
 .Fa uoffset
-is any other value, we are doing a normal mapping at this offset.
+is any other value, then a regular mapping is performed at this offset.
 The start address of the map will be returned in
 .Fa startp .
 .Pp
@@ -127,69 +131,99 @@
 passed to
 .Fn uvm_map
 are typically created using the
-.Fn UVM_MAPFLAG "vm_prot_t prot" "vm_prot_t maxprot" "vm_inherit_t inh" "int advice" "int flags"
+.Fn UVM_MAPFLAG "vm_prot_t prot" "vm_prot_t maxprot" "vm_inherit_t inh" \
+"int advice" "int flags"
 macro, which uses the following values.
 The
 .Fa prot
 and
 .Fa maxprot
 can take are:
-.Bd -literal
-#define UVM_PROT_MASK   0x07    /* protection mask */
-#define UVM_PROT_NONE   0x00    /* protection none */
-#define UVM_PROT_ALL    0x07    /* everything */
-#define UVM_PROT_READ   0x01    /* read */
-#define UVM_PROT_WRITE  0x02    /* write */
-#define UVM_PROT_EXEC   0x04    /* exec */
-#define UVM_PROT_R      0x01    /* read */
-#define UVM_PROT_W      0x02    /* write */
-#define UVM_PROT_RW     0x03    /* read-write */
-#define UVM_PROT_X      0x04    /* exec */
-#define UVM_PROT_RX     0x05    /* read-exec */
-#define UVM_PROT_WX     0x06    /* write-exec */
-#define UVM_PROT_RWX    0x07    /* read-write-exec */
-.Ed
+.Bl -tag -width UVM_ADV_SEQUENTIAL
+.It UVM_PROT_NONE
+No protection bits.
+.It UVM_PROT_R
+Read.
+.It UVM_PROT_W
+Write.
+.It UVM_PROT_X
+Exec.
+.It UVM_PROT_MASK
+Mask to extraction the protection bits.
+.El
+.Pp
+Additionally, the following constants for ORed values are available:
+.Dv UVM_PROT_RW ,
+.Dv UVM_PROT_RX ,
+.Dv UVM_PROT_WX
+and
+.Dv UVM_PROT_RWX .
 .Pp
 The values that
 .Fa inh
 can take are:
-.Bd -literal
-#define UVM_INH_MASK    0x30    /* inherit mask */
-#define UVM_INH_SHARE   0x00    /* "share" */
-#define UVM_INH_COPY    0x10    /* "copy" */
-#define UVM_INH_NONE    0x20    /* "none" */
-#define UVM_INH_DONATE  0x30    /* "donate" \*[Lt]\*[Lt] not used */
-.Ed
+.Bl -tag -width UVM_ADV_SEQUENTIAL
+.It UVM_INH_SHARE
+Share the map.
+.It UVM_INH_COPY
+Copy the map.
+.It UVM_INH_NONE
+No inheritance.
+.It UVM_INH_MASK
+Mark to extract inherit flags.
+.El
 .Pp
 The values that
 .Fa advice
 can take are:
-.Bd -literal
-#define UVM_ADV_NORMAL     0x0  /* 'normal' */
-#define UVM_ADV_RANDOM     0x1  /* 'random' */
-#define UVM_ADV_SEQUENTIAL 0x2  /* 'sequential' */
-#define UVM_ADV_MASK       0x7  /* mask */
-.Ed
+.Bl -tag -width UVM_ADV_SEQUENTIAL
+.It UVM_ADV_NORMAL
+"Normal" use.
+.It UVM_ADV_RANDOM
+"Random" access likelyhood.
+.It UVM_ADV_SEQUENTIAL
+"Sequential" access likelyhood.
+.It UVM_ADV_MASK
+Mask to extract the advice flags.
+.El
 .Pp
 The values that
 .Fa flags
 can take are:
-.Bd -literal
-#define UVM_FLAG_FIXED   0x010000 /* find space */
-#define UVM_FLAG_OVERLAY 0x020000 /* establish overlay */
-#define UVM_FLAG_NOMERGE 0x040000 /* don't merge map entries */
-#define UVM_FLAG_COPYONW 0x080000 /* set copy_on_write flag */
-#define UVM_FLAG_AMAPPAD 0x100000 /* for bss: pad amap to reduce malloc() */
-#define UVM_FLAG_TRYLOCK 0x200000 /* fail if we can not lock map */
-.Ed
+.Bl -tag -width UVM_ADV_SEQUENTIAL
+.It UVM_FLAG_FIXED
+Attempt to map on the address specified by
+.Fa startp .
+Otherwise, it is used just as a hint.
+.It UVM_FLAG_OVERLAY
+Establish overlay.
+.It UVM_FLAG_NOMERGE
+Do not merge map entries, if such merge is possible.
+.It UVM_FLAG_COPYONW
+Use copy-on-write i.e. do not fault in the pages immediately.
+.It UVM_FLAG_AMAPPAD
+User for BSS: alocate larger amap, if extending is likely.
+.It UVM_FLAG_TRYLOCK
+Fail if cannot acquire the lock immediately.
+.It UVM_FLAG_NOWAIT
+Not allowed to sleep.
+Fail, in such case.
+.It UVM_FLAG_QUANTUM
+Indicates that map entry cannot be split once mapped.
+.It UVM_FLAG_WAITVA
+Sleep until VA space is available, if it is not.
+.It UVM_FLAG_VAONLY
+Unmap only VA space.
+Used by
+.Fn uvm_unmap .
+.El
 .Pp
 The
 .Dv UVM_MAPFLAG
 macro arguments can be combined with an or operator.
 There are several special purpose macros for checking protection
 combinations, e.g., the
-.Dv UVM_PROT_WX
-macro.
+.Dv UVM_PROT_WX .
 There are also some additional macros to extract bits from the flags.
 The
 .Dv UVM_PROTECTION ,
@@ -200,7 +234,7 @@
 macros return the protection, inheritance, maximum protection and advice,
 respectively.
 .Fn uvm_map
-returns a standard UVM return value.
+returns zero on success or error number otherwise.
 .Pp
 .Fn uvm_unmap
 removes a valid mapping,
@@ -222,7 +256,7 @@
 to
 .Fa new_pageable .
 .Fn uvm_map_pageable
-returns a standard UVM return value.
+returns zero on success or error number otherwise.
 .Pp
 .Fn uvm_map_checkprot
 checks the protection of the range from
@@ -266,14 +300,12 @@
 allocates and returns a new address space, with ranges from
 .Fa min
 to
-.Fa max ,
-setting the pageability of the address space to
-.Fa pageable .
+.Fa max .
 .Pp
 .Fn uvmspace_exec
-either reuses the address space of lwp
+either reuses the address space of thread
 .Fa l
-if there are no other references to it, or creates
+(its process) if there are no other references to it, or creates
 a new one with
 .Fn uvmspace_alloc .
 The range of valid addresses in the address space is reset to
@@ -283,7 +315,7 @@
 .Pp
 .Fn uvmspace_fork
 creates and returns a new address space based upon the
-.Fa vm1
+.Fa vm
 address space, typically used when allocating an address space for a
 child process.
 .Pp
@@ -297,28 +329,26 @@
 .Pa p2
 to share the address space of
 .Fa p1 .
-.Pp
-.Fn uvmspace_unshare
-ensures that lwp
-.Fa l
-has its own, unshared address space, by creating a new one if
-necessary by calling
-.Fn uvmspace_fork .
+.\" .Pp
+.\" .Fn uvmspace_unshare
+.\" ensures that thread
+.\" .Fa l
+.\" has its own, unshared address space, by creating a new one if
+.\" necessary by calling
+.\" .Fn uvmspace_fork .
 .Pp
 .Fn uvm_uarea_alloc
-allocates virtual space for a u-area (i.e., a kernel stack) and stores
-its virtual address in
-.Fa *uaddrp .
-The return value is
-.Dv true
-if the u-area is already backed by wired physical memory, otherwise
-.Dv false .
+allocates memory for a u-area (i.e. kernel stack, PCB, etc) and returns
+the address.
 .Pp
 .Fn uvm_uarea_free
 frees a u-area allocated with
-.Fn uvm_uarea_alloc ,
-freeing both the virtual space and any physical pages which may have been
-allocated to back that virtual space later.
+.Fn uvm_uarea_alloc .
+.Pp
+.Fn uvm_uarea_system_alloc
+and
+.Fn uvm_uarea_system_free
+are optimised routines, which are used for kernel threads.
 .Sh SEE ALSO
 .Xr pmap 9 ,
 .Xr uvm 9 ,

Reply via email to