diff options
author | archie <archie@FreeBSD.org> | 2002-09-11 21:39:21 +0000 |
---|---|---|
committer | archie <archie@FreeBSD.org> | 2002-09-11 21:39:21 +0000 |
commit | b2c4f4ae74d752a0bcd8d9b06e316c98bd3c4f6e (patch) | |
tree | c0a1a2ecda59cdda3c24fde5dd815ca40b5ad45f /lib/libc/gen/makecontext.3 | |
parent | f185fabd5ba1e9fd15f860872f46027c04833340 (diff) | |
download | FreeBSD-src-b2c4f4ae74d752a0bcd8d9b06e316c98bd3c4f6e.zip FreeBSD-src-b2c4f4ae74d752a0bcd8d9b06e316c98bd3c4f6e.tar.gz |
Add man pages for getcontext()/setcontext(), makecontext()/swapcontext(),
and ucontext_t.
Reviewed by: mini
MFC after: 3 days
Diffstat (limited to 'lib/libc/gen/makecontext.3')
-rw-r--r-- | lib/libc/gen/makecontext.3 | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/lib/libc/gen/makecontext.3 b/lib/libc/gen/makecontext.3 new file mode 100644 index 0000000..05159bc --- /dev/null +++ b/lib/libc/gen/makecontext.3 @@ -0,0 +1,107 @@ +.\" Copyright (c) 2002 Packet Design, LLC. +.\" All rights reserved. +.\" +.\" Subject to the following obligations and disclaimer of warranty, +.\" use and redistribution of this software, in source or object code +.\" forms, with or without modifications are expressly permitted by +.\" Packet Design; provided, however, that: +.\" +.\" (i) Any and all reproductions of the source or object code +.\" must include the copyright notice above and the following +.\" disclaimer of warranties; and +.\" (ii) No rights are granted, in any manner or form, to use +.\" Packet Design trademarks, including the mark "PACKET DESIGN" +.\" on advertising, endorsements, or otherwise except as such +.\" appears in the above copyright notice or in the software. +.\" +.\" THIS SOFTWARE IS BEING PROVIDED BY PACKET DESIGN "AS IS", AND +.\" TO THE MAXIMUM EXTENT PERMITTED BY LAW, PACKET DESIGN MAKES NO +.\" REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING +.\" THIS SOFTWARE, INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED +.\" WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, +.\" OR NON-INFRINGEMENT. PACKET DESIGN DOES NOT WARRANT, GUARANTEE, +.\" OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS +.\" OF THE USE OF THIS SOFTWARE IN TERMS OF ITS CORRECTNESS, ACCURACY, +.\" RELIABILITY OR OTHERWISE. IN NO EVENT SHALL PACKET DESIGN BE +.\" LIABLE FOR ANY DAMAGES RESULTING FROM OR ARISING OUT OF ANY USE +.\" OF THIS SOFTWARE, INCLUDING WITHOUT LIMITATION, ANY DIRECT, +.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE, OR CONSEQUENTIAL +.\" DAMAGES, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF +.\" USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER 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 PACKET DESIGN IS ADVISED OF +.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd Sep 10, 2002 +.Dt MAKECONTEXT 3 +.Os +.Sh NAME +.Nm makecontext +.Nm swapcontext +.Nd modify and exchange user thread contexts +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In ucontext.h +.Ft void +.Fn makecontext "ucontext_t *ucp" "void (*func)()" "int argc" "..." +.Ft int +.Fn swapcontext "ucontext_t *oucp" "const ucontext_t *ucp" +.Sh DESCRIPTION +.Fn makecontext +modifies the user thread context pointed to by +.Fa ucp , +which must have previously been initialized by a call to +.Fn getcontext +and had a stack allocated for it. +The context is modified so that it will continue execution by invoking +.Fn func +with the arguments provided. +.Fa argc +must be equal to the number of additional arguments provided to +.Fn makecontext +and also equal to the number of parameters to +.Fn func , +or else the behavior is undefined. +.Pp +.Fa "ucp->uc_link" +must be initialized before calling +.Fn makecontext +and determines the action to take when +.Fn func +returns: +if equal to +.Dv NULL , +the process exits; +otherwise, +.Fn setcontext "ucp->uc_link" +is implicitly invoked. +.Pp +.Fn swapcontext +saves the current thread context in +.Fa "*oucp" +and makes +.Fa "*ucp" +the currently active context. +.Sh RETURN VALUES +If successful, +.Fn swapcontext +returns zero; +otherwise -1 is returned and +.Va errno +is set appropriately. +.Sh ERRORS +.Fn swapcontext +will fail if: +.Bl -tag -width Er +.It Bq Er ENOMEM +There is not enough stack space in +.Fa ucp +to complete the operation. +.El +.Sh SEE ALSO +.Xr setcontext 3 , +.Xr ucontext 3 |