| UCONTEXT(2) | System Calls Manual | UCONTEXT(2) | 
ucontext —
#include <ucontext.h>
_UC_MACHINE_SP(&uc);
_UC_MACHINE_FP(&uc);
_UC_MACHINE_PC(&uc);
_UC_MACHINE_INTRV(&uc);
_UC_MACHINE_SET_PC(&uc);
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()_UC_MACHINE_FP()_UC_MACHINE_PC()_UC_MACHINE_INTRV()_UC_MACHINE_SET_PC()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).
| February 25, 2018 | NetBSD 9.3 |