Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sigaction(2)

sigaltstack(2)

sigprocmask(2)

ucontext(5)



getcontext(2)                  DG/UX R4.11MU05                 getcontext(2)


NAME
       getcontext, setcontext - get and set current user context

SYNOPSIS
       #include <ucontext.h>
       int getcontext(ucontext_t *ucp);
       int setcontext(ucontext_t *ucp);

   where:
       ucp    The name of a structure to contain user context information

DESCRIPTION
       These functions are useful for implementing user level context
       switching between multiple threads of control within a process.

       getcontext initializes the structure pointed to by ucp to the current
       user context of the calling process.  The user context is defined by
       ucontext(5) and includes the contents of the calling process's
       machine registers, signal mask and execution stack.

       setcontext restores the user context pointed to by ucp.  The call to
       setcontext does not return;  program execution resumes at the point
       specified by the context structure passed to setcontext.  The context
       structure should have been one created either by a prior call to
       getcontext or passed as the third argument to a signal handler [see
       sigaction(2)].  If the context structure was one created with
       getcontext, program execution continues as if the corresponding call
       of getcontext had just returned.

ACCESS CONTROL
       No access checking is performed.

RETURN VALUE
       On successful completion, setcontext does not return and getcontext
       returns 0.  Otherwise, a value of -1 is returned and errno is set to
       indicate the error.

DIAGNOSTICS
       Under the following conditions, getcontext and setcontext fail and
       set errno to:

       EFAULT         ucp points to an invalid address.

NOTES
       When a signal handler is executed, the current user context is saved
       and a new context is created by the kernel.  If the process leaves
       the signal handler via longjmp(3C) the original context will not be
       restored, and future calls to getcontext will not be reliable.
       Signal handlers should use siglongjmp(3C) or setcontext instead.

SEE ALSO
       sigaction(2), sigaltstack(2), sigprocmask(2), ucontext(5).


Licensed material--property of copyright holder(s)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026