diff options
author | Bruce M Simpson <bms@FreeBSD.org> | 2003-09-30 00:51:31 +0000 |
---|---|---|
committer | Bruce M Simpson <bms@FreeBSD.org> | 2003-09-30 00:51:31 +0000 |
commit | 7d216f0fa96866ec5c746054763f80d5cac5cd9a (patch) | |
tree | 98bbca99e2597751865cbedb2cd92ac951eb3877 /share/man/man9/vm_map_stack.9 | |
parent | 9ffa96777e7ffbd3565a956780e930023e71cadb (diff) |
Add manual pages for the vm_map(9) part of the VM.
Reviewed by: juli
Approved by: jake (mentor)
Notes
Notes:
svn path=/head/; revision=120586
Diffstat (limited to 'share/man/man9/vm_map_stack.9')
-rw-r--r-- | share/man/man9/vm_map_stack.9 | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/share/man/man9/vm_map_stack.9 b/share/man/man9/vm_map_stack.9 new file mode 100644 index 000000000000..d74de299436c --- /dev/null +++ b/share/man/man9/vm_map_stack.9 @@ -0,0 +1,128 @@ +.\" +.\" 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 19, 2003 +.Dt vm_map_stack 9 +.Sh NAME +.Nm vm_map_stack , +.Nm vm_map_growstack +.Nd manage process stacks +.Sh SYNOPSIS +.In sys/param.h +.In vm/vm.h +.In vm/vm_map.h +.Ft int +.Fn vm_map_stack "vm_map_t map" "vm_offset_t addrbos" "vm_size_t max_ssize" "vm_prot_t prot" "vm_prot_t max" "int cow" +.Ft int +.Fn vm_map_growstack "struct proc *p" "vm_offset_t addr" +.Sh DESCRIPTION +The +.Fn +function maps a process stack for a new process image. +The stack is mapped +.Fa addrbos +in +.Fa map , +with a maximum size of +.Fa max_ssize . +Copy-on-write flags passed in +.Fa cow +are also applied to the new mapping. +Protection bits are supplied by +.Fa prot +and +.Fa max . +.Pp +It is typically called by +.Xr exec 2 . +.Pp +The +.Fn vm_map_growstack +function is responsible for growing a stack for the process +.Fa p +to the desired address +.Fa addr , +similar to the legacy +.Xr sbrk 2 +call. +.Sh IMPLEMENTATION NOTES +The +.Fn vm_map_stack +function calls +.Xr vm_map_insert 9 +to create its mappings. +.Pp +The +.Fn vm_map_growstack +function acquires the +.Dv Giant +lock, and the process lock on +.Fa p , +for the duration of the call. +.Sh RETURN VALUES +The +.Fn vm_map_stack +function returns +.Dv KERN_SUCCESS +if the mapping was allocated successfully. +.Pp +Otherwise, +if mapping the stack would exceed the process's VMEM resource limit, +or if the specified bottom-of-stack address is out of range for the map, +or if there is already a mapping at the address which would result, +or if +.Fa max_ssize +could not be accomodated within the current mapping, +.Dv KERN_NO_SPACE +is returned. +.Pp +Other possible return values for this function are documented in +.Xr vm_map_insert 9 . +.Pp +The +.Fn vm_map_growstack +function returns +.Dv KERN_SUCCESS +if +.Fa addr +is already mapped, or if the stack was grown successfully. +.Pp +It also returns +.Dv KERN_SUCCESS +if +.Fa addr +is outside the stack range; this is done in order to preserve +compatibility with the deprecated +.Fn grow +function previously located in the file +.Li vm_machdep.c . +.Sh SEE ALSO +.Xr vm_map 9 , +.Xr vm_map_insert 9 +.Sh AUTHORS +This man page was written by +.An Bruce M Simpson Aq bms@spc.org . |