Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getcontext(2) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sigaction(2)

sigaltstack(2)

sigprocmask(2)

makecontext(3C)

ucontext(5)



getcontext(2)             SYSTEM CALLS              getcontext(2)



NAME
     getcontext, setcontext - get and set current user context

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

DESCRIPTION
     These   functions,   along    with    those    defined    in
     makecontext(3C), are useful for implementing user level con-
     text 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
     makecontext  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.
     If  the  context structure was one created with makecontext,
     program execution continues with the function  specified  to
     makecontext.

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 origi-
     nal  context  will  not  be  restored,  and  future calls to
     getcontext will not be reliable.  Signal handlers should use
     siglongjmp(3C) or setcontext instead.

     getcontext and setcontext will  fail  if  the  following  is
     true:

     EFAULT         ucp points to an invalid address.

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





                                                                1





getcontext(2)             SYSTEM CALLS              getcontext(2)



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




















































                                                                2



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