Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages

OpenSolaris 2009.06 - man page for setcontext (opensolaris section 2)

getcontext(2)				   System Calls 			    getcontext(2)

       getcontext, setcontext - get and set current user context

       #include <ucontext.h>

       int getcontext(ucontext_t *ucp);

       int setcontext(const ucontext_t *ucp);

       The  getcontext() function initializes the structure pointed to by ucp to the current user
       context of the calling process.	The ucontext_t type that ucp points to defines	the  user
       context	and  includes  the contents of the calling process' machine registers, the signal
       mask, and the current execution stack.

       The setcontext() function restores the user context pointed to by ucp.  A successful  call
       to  setcontext()  does not return; program execution resumes at the point specified by the
       ucp argument passed to setcontext(). The ucp argument should be created either by a  prior
       call  to  getcontext(),	or by being passed as an argument to a signal handler. If the ucp
       argument was created with getcontext(), program execution continues as if the  correspond-
       ing call of getcontext() had just returned.  If the ucp argument was created with makecon-
       text(3C), program execution continues with the function passed  to  makecontext(3C).  When
       that  function  returns, the process continues as if after a call to setcontext() with the
       ucp argument that was input to makecontext(3C). If the ucp argument was passed to a signal
       handler,  program  execution continues with the program instruction following the instruc-
       tion interrupted by the signal.	If the uc_link member of the ucontext_t structure pointed
       to  by  the  ucp  argument  is  equal to 0, then this context is the main context, and the
       process will exit when this context returns.   The  effects  of	passing  a  ucp  argument
       obtained from any other source are unspecified.

       On  successful completion, setcontext() does not return and getcontext() returns 0. Other-
       wise, -1 is returned.

       No errors are defined.

       When a signal handler is executed, the current user context is saved and a new context  is
       created.   If  the thread leaves the signal handler via longjmp(3UCB), then it is unspeci-
       fied whether the context at the time of the corresponding setjmp(3UCB)  call  is  restored
       and  thus  whether future calls to getcontext() will provide an accurate representation of
       the current context, since the context restored by longjmp(3UCB) may not contain  all  the
       information  that  setcontext()	requires.   Signal  handlers  should  use  siglongjmp(3C)

       Portable applications should not modify or access the uc_mcontext member of ucontext_t.	A
       portable  application  cannot  assume  that context includes any process-wide static data,
       possibly including errno. Users manipulating contexts should take  care	to  handle  these
       explicitly when required.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Standard			   |

       sigaction(2),	sigaltstack(2),    sigprocmask(2),    bsd_signal(3C),	 makecontext(3C),
       setjmp(3UCB), sigsetjmp(3C), ucontext.h(3HEAD), attributes(5), standards(5)

SunOS 5.11				    5 Feb 2001				    getcontext(2)

All times are GMT -4. The time now is 05:39 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password