Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > M


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


makecontext(), swapcontext() — manipulate user contexts; DEPRECATED


#include <ucontext.h>

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

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


makecontext() and swapcontext() are deprecated. See the WARNINGS section.


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 makecontext().

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.


makecontext() and swapcontext() are deprecated and should be used only by legacy applications.

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

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


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


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

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.