xref: /netbsd-src/share/man/man2/ucontext.2 (revision 23c8222edbfb0f0932d88a8351d3a0cf817dfb9e)
1.\"	$NetBSD: ucontext.2,v 1.1 2003/10/14 14:59:04 wiz Exp $
2.\"
3.\" Copyright (c) 2001 The NetBSD Foundation, Inc.
4.\" All rights reserved.
5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Klaus Klein.
8.\"
9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions
11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright
13.\"    notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\"    notice, this list of conditions and the following disclaimer in the
16.\"    documentation and/or other materials provided with the distribution.
17.\" 3. All advertising materials mentioning features or use of this software
18.\"    must display the following acknowledgement:
19.\"        This product includes software developed by the NetBSD
20.\"        Foundation, Inc. and its contributors.
21.\" 4. Neither the name of The NetBSD Foundation nor the names of its
22.\"    contributors may be used to endorse or promote products derived
23.\"    from this software without specific prior written permission.
24.\"
25.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
26.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
27.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
29.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35.\" POSSIBILITY OF SUCH DAMAGE.
36.\"
37.Dd June 13, 2001
38.Dt UCONTEXT 2
39.Os
40.Sh NAME
41.Nm ucontext
42.Nd user context
43.Sh SYNOPSIS
44.In ucontext.h
45.Sh DESCRIPTION
46.Nm ucontext_t
47is a structure type which is used to describe the context of a
48thread of control within the execution of a process.
49.Pp
50.Nm ucontext_t
51includes the following members:
52.Bd -literal -offset indent
53ucontext_t *  uc_link
54sigset_t      uc_sigmask
55stack_t       uc_stack
56mcontext_t    uc_mcontext
57.Ed
58.Pp
59The
60.Fa uc_link
61member points to the context that will be resumed after the function
62specified when modifying a context using
63.Xr makecontext 3
64has returned.
65If
66.Fa uc_link
67is a null pointer, then the context is the main context,
68and the process will exit with an exit status of 0 upon return.
69.Pp
70The
71.Fa uc_sigmask
72member is the set of signals that are blocked when the context is
73activated.
74Further information can be found in
75.Xr sigprocmask 2 .
76.Pp
77The
78.Fa uc_stack
79member defines the stack used by the context.
80Further information can be found in
81.Xr sigaltstack 2 .
82.Pp
83The
84.Fa uc_mcontext
85member defines the machine state associated with the context;
86it may consist of general registers, floating point registers
87and other machine-specific infomation.
88Its description is beyond the scope of this manual page;
89portable applications should not access this structure member.
90.Sh SEE ALSO
91.Xr _exit 2 ,
92.Xr getcontext 2 ,
93.Xr setcontext 2 ,
94.Xr sigaltstack 2 ,
95.Xr sigprocmask 2 ,
96.Xr makecontext 3 ,
97.Xr swapcontext 3
98.Sh STANDARDS
99The
100.Nm ucontext_t
101type conforms to
102.St -xsh5 .
103.Sh HISTORY
104The
105.Fn makecontext
106and
107.Fn swapcontext
108functions first appeared in
109.At V.4 .
110