99 lines
3.2 KiB
Groff
99 lines
3.2 KiB
Groff
|
.\" 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 UCONTEXT 3
|
||
|
.Os
|
||
|
.Sh NAME
|
||
|
.Nm ucontext
|
||
|
.Nd user thread context
|
||
|
.Sh LIBRARY
|
||
|
.Lb libc
|
||
|
.Sh SYNOPSIS
|
||
|
.In ucontext.h
|
||
|
.Sh DESCRIPTION
|
||
|
The
|
||
|
.Vt ucontext_t
|
||
|
type is a structure type suitable for holding the context for a user
|
||
|
thread of execution.
|
||
|
A thread's context includes its stack, saved registers, and list of
|
||
|
blocked signals.
|
||
|
.Pp
|
||
|
The
|
||
|
.Vt ucontext_t
|
||
|
structure contains at least these fields:
|
||
|
.Bl -tag -compact -offset 3n -width "mcontext_t uc_mcontext"
|
||
|
.Pp
|
||
|
.It "ucontext_t *uc_link"
|
||
|
Context to assume when this one returns
|
||
|
.It "sigset_t uc_sigmask"
|
||
|
Signals being blocked
|
||
|
.It "stack_t uc_stack"
|
||
|
Stack area
|
||
|
.It "mcontext_t uc_mcontext"
|
||
|
Saved registers
|
||
|
.El
|
||
|
.Pp
|
||
|
The
|
||
|
.Fa uc_link
|
||
|
field points to the context to resume when this context's entry point
|
||
|
function returns.
|
||
|
If
|
||
|
.Fa uc_link
|
||
|
is equal to
|
||
|
.Dv NULL ,
|
||
|
then the process exits when this context returns.
|
||
|
.Pp
|
||
|
The
|
||
|
.Fa uc_mcontext
|
||
|
field is machine-dependent and should be treated as opaque by
|
||
|
portable applications.
|
||
|
.Pp
|
||
|
The following functions are defined to manipulate
|
||
|
.Vt ucontext_t
|
||
|
structures:
|
||
|
.Bd -literal -offset xxx
|
||
|
int getcontext(ucontext_t *);
|
||
|
int setcontext(const ucontext_t *);
|
||
|
void makecontext(ucontext_t *, void (*)(void), int, ...);
|
||
|
int swapcontext(ucontext_t *, const ucontext_t *);
|
||
|
.Ed
|
||
|
.Sh SEE ALSO
|
||
|
.Xr sigaltstack 2 ,
|
||
|
.Xr getcontext 3 ,
|
||
|
.Xr makecontext 3
|