Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Apropos / Subsearch:
optional field

 makecontext(2)						      makecontext(2)

      makecontext, swapcontext - manipulate user contexts

      #include <&lt&lt&lt;ucontext.h>&gt&gt&gt;

      void makecontext(ucontext_t *ucp, (void *func)(), int argc, ...);

      int swapcontext(ucontext_t *oucp, const ucontext_t *ucp);

      The makecontext() function modifies the context specified by ucp,
      which has been initialized using getcontext().  When this context is
      resumed using swapcontext() or setcontext(), program execution
      continues by calling func(), passing it the arguments that follow argc
      in  the makecontext() call.

      Before a call is made to makecontext(), the context being modified
      should have a stack allocated for it.  The value of argc must match
      the number of integer arguments passed to func(), otherwise the
      behavior is undefined.

      The uc_link member is used to determine the context that will be
      resumed when the context being modified by makecontext() returns. The
      uc_link member should be initialized prior to the call to

      The swapcontext() function saves the current context in the context
      structure pointed to by oucp and sets the context to the context
      structure pointed to by ucp.

      On successful completion, swapcontext() returns 0. Otherwise, -1 is
      returned and errno is set to indicate the error.

      Context APIs are not recommended due to possible compatibility
      problems from release to release, because context APIs are very
      architecture-specific.  The context APIs "expose" the architecture to
      the application, such that the application may not be compatible with
      all releases.

      If you must use context APIs, be aware of the following:

      +	 Do not copy the context yourself.  It is not contiguous.  The
	 context may have pointers that may point back to the original
	 context rather than in the copied context; hence, it will be

      +	 The size of the context will vary in length from release to

 Hewlett-Packard Company	    - 1 -   HP-UX Release 11i: November 2000

 makecontext(2)						      makecontext(2)

      The makecontext() and swapcontext() functions will fail if:

	   [ENOMEM]		    The ucp argument does not have enough
				    stack left to complete the operation.

      exit(2), getcontext(2), sigaction(2), sigprocmask(2), <ucontext.h>.

      First released in Issue 4, Version 2.

 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000