Manual Page Result
0
Command: ucontext | Section: 2 | Source: NetBSD | File: ucontext.2
UCONTEXT(2) FreeBSD System Calls Manual UCONTEXT(2)
NAME
ucontext - user context
SYNOPSIS
#include <ucontext.h>
_UC_MACHINE_SP(&uc);
_UC_MACHINE_FP(&uc);
_UC_MACHINE_PC(&uc);
_UC_MACHINE_INTRV(&uc);
_UC_MACHINE_SET_PC(&uc);
DESCRIPTION
The ucontext_t is a structure type which is used to describe the context
of a thread of control within the execution of a process. A thread's
context includes its stack, saved registers, and list of blocked signals.
The ucontext_t structure includes the following members:
ucontext_t *uc_link
sigset_t uc_sigmask
stack_t uc_stack
mcontext_t uc_mcontext
The uc_link member points to the context that will be resumed after the
function specified when modifying a context using makecontext(3) has
returned. If uc_link is a NULL pointer, then the context is the main
context, and the process will exit with an exit status of 0 upon return.
The uc_sigmask member is the set of signals that are blocked when the
context is activated. Further information can be found in
sigprocmask(2).
The uc_stack member defines the stack used by the context. Further
information can be found in sigaltstack(2).
The uc_mcontext member defines the machine state associated with the
context; it may consist of general registers, floating point registers
and other machine-specific information. Its description is beyond the
scope of this manual page; portable applications should not access this
structure member.
The following auxiliary macros are available to access some of that
machine-specific information:
_UC_MACHINE_SP() -- read stack pointer,
_UC_MACHINE_FP() -- read frame pointer (base pointer),
_UC_MACHINE_PC() -- read program counter,
_UC_MACHINE_INTRV()
-- read integer return value,
_UC_MACHINE_SET_PC()
-- write program counter.
The frame pointer macro does not guarantee to retrieve a reliable value
and should not be used in a code unless no other debugging format is
easily accessible. A compiler might optimize the frame pointer register
in a function, reusing it as a general purpose register storage
(-fomit-frame-pointer) or emit function prologues only before parts that
need them (-fshrink-wrap).
SEE ALSO
_exit(2), getcontext(2), setcontext(2), sigaltstack(2), sigprocmask(2),
makecontext(3), swapcontext(3)
STANDARDS
The ucontext_t type conforms to X/Open System Interfaces and Headers
Issue 5 ("XSH5") and IEEE Std 1003.1-2001 ("POSIX.1"). The IEEE Std
1003.1-2008 ("POSIX.1") revision removed the ucontext_t from the
specification.
FreeBSD 14.1-RELEASE-p8 February 25, 2018 FreeBSD 14.1-RELEASE-p8