makecontext.2 (2010 09)
m
makecontext(2) makecontext(2)
(Deprecated)
NAME
makecontext(), swapcontext() - manipulate user contexts
SYNOPSIS
#include <ucontext.h>
void makecontext(ucontext_t *ucp, (void *func)(), int argc, ...);
Deprecated
int swapcontext(ucontext_t *oucp, const ucontext_t *ucp);
Deprecated
DESCRIPTION
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
makecon-
text() 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 .
RETURN VALUE
On successful completion,
swapcontext() returns 0. Otherwise, −1 is returned and
errno is set to
indicate the error.
WARNINGS
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.
ERRORS
The
makecontext() and swapcontext()
functions will fail if:
[ENOMEM] The ucp argument does not have enough stack left to complete the opera-
tion.
SEE ALSO
exit(2), getcontext(2), sigaction(2), sigprocmask(2), <ucontext.h>.
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1