ucontext(2) - NetBSD Manual Pages

Command: Section: Arch: Collection:  
UCONTEXT(2)               NetBSD 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 con- text; 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 struc- ture 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 eas- ily 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 speci- fication. NetBSD 9.0 February 25, 2018 NetBSD 9.0
Powered by man-cgi (2021-03-02). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.