UCONTEXT(3)            FreeBSD Library Functions Manual            UCONTEXT(3)

NAME

     ucontext - user thread context

LIBRARY

     Standard C Library (libc, -lc)

SYNOPSIS

     #include <ucontext.h>

DESCRIPTION

     The 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.

     The ucontext_t structure contains at least these fields:

        ucontext_t *uc_link      context to assume when this one returns
        sigset_t uc_sigmask      signals being blocked
        stack_t uc_stack         stack area
        mcontext_t uc_mcontext   saved registers

     The uc_link field points to the context to resume when this context's
     entry point function returns.  If uc_link is equal to NULL, then the
     process exits when this context returns.

     The uc_mcontext field is machine-dependent and should be treated as
     opaque by portable applications.

     The following functions are defined to manipulate ucontext_t structures:

        int getcontext(ucontext_t *);
        ucontext_t * getcontextx(void);
        int setcontext(const ucontext_t *);
        void makecontext(ucontext_t *, void (*)(void), int, ...);
        int swapcontext(ucontext_t *, const ucontext_t *);

SEE ALSO

     sigaltstack(2), getcontext(3), getcontextx(3), makecontext(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 15.1-STABLE-HBSD        March 23, 2020                     UCONTEXT(3)