| GETCONTEXT(2) | System Calls Manual | GETCONTEXT(2) | 
getcontext, setcontext —
#include <ucontext.h>
int
  
  getcontext(ucontext_t
    *ucp);
int
  
  setcontext(const
    ucontext_t *ucp);
getcontext() function initializes the object pointed
  to by ucp to the current user context of the calling
  thread. The user context defines a thread's execution environment and includes
  the contents of its machine registers, its signal mask, and its current
  execution stack.
The setcontext() function restores the
    user context defined in the object pointed to by ucp
    as most recently initialized by a previous call to either
    getcontext() or
    makecontext(3). If
    successful, execution of the program resumes as defined in the
    ucp argument, and setcontext()
    will not return. If ucp was initialized by the
    getcontext() function, program execution continues
    as if the corresponding invocation of getcontext()
    had just returned (successfully). If ucp was
    initialized by the
    makecontext(3) function,
    program execution continues with the function (and function arguments)
    passed to
  makecontext(3).
getcontext() returns 0 and
  setcontext() does not return. Otherwise a value of -1
  is returned and errno is set to indicate the error.
getcontext() and
  setcontext() functions will fail if:
EFAULT]The setcontext() function will fail
  if:
EINVAL]getcontext() and
  setcontext() functions conform to
  X/Open System Interfaces and Headers Issue 5
  (“XSH5”) and IEEE Std 1003.1-2001
  (“POSIX.1”). The errno indications
  are an extension to the standard.
The IEEE Std 1003.1-2004
    (“POSIX.1”) revision marked the functions
    getcontext() and
    setcontext() as obsolete, citing portability issues
    and recommending the use of POSIX threads instead. The IEEE
    Std 1003.1-2008 (“POSIX.1”) revision removed the
    functions from the specification.
getcontext() and
  setcontext() functions first appeared in
  AT&T System V Release 4 UNIX.
| April 28, 2010 | NetBSD 9.4 |