makecontext, swapcontext - Manipulate user level context
switching
#include <ucontext.h>
void makecontext(
ucontext_t *ucp,
void (*func)(),
int argc ... ); int swapcontext(
ucontext_t *oucp,
const ucontext_t *ucp );
Interfaces documented on this reference page conform to
industry standards as follows:
makecontext(), swapcontext(): XSH5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Provides a pointer to a ucontext structure, defined in the
<ucontext.h> header file. The ucontext structure contains
the signal mask, execution stack, and machine registers.
(See ucontext(5) for more information about the format of
the ucontext structure.) Specifies a function to be
called when program execution begins in the new context.
Specifies the number of parameters passed to the func()
function. You include the parameters themselves following
the argc parameter. Pointer to the ucontext structure
that holds the current context structure.
The makecontext() function modifies the context specified
by the ucp parameter. Before you call the makecontext()
function, call the getcontext() function to initialize the
ucp parameter.
Before you call the makecontext() function, you should
allocate a stack for the new context. Also, you should
initialize the uc_link member of the ucontext structure.
This member determines the context that is resumed when
the context modified by makecontext() returns. You initialize
the uc_link member by calling the getcontext()
function.
To execute the new context, call the setcontext() or swapcontext()
function. Program execution begins by calling
the function specified in the func parameter. Any parameters
you specify following the argc parameter are passed
to the func() function.
The swapcontext() function switches between two user contexts.
The function stores the current context in the oucp
parameter. It then switches execution to the context
described by the ucp parameter. When the new context finishes
execution, control returns to the context described
by the oucp parameter.
The makecontext() function does not return.
On success, the swapcontext() function returns 0 (zero).
On failure the swapcontext() function returns a value of
-1 and sets errno to indicate the error.
The makecontext() or swapcontext() functions set errno to
the specified values for the following conditions: The ucp
parameter has too little stack left to complete the operation.
Functions: exit(2), getcontext(2), sigaction(2), sigprocmask(2)
Files: ucontext(5)
Standards: standards(5)
makecontext(2)
[ Back ] |