makecontext(2)makecontext(2)NAME
makecontext, swapcontext - Manipulate user level context switching
SYNOPSIS
#include <ucontext.h>
void makecontext(
ucontext_t *ucp,
void (*func)(),
int argc ... ); int swapcontext(
ucontext_t *oucp,
const ucontext_t *ucp );
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
makecontext(), swapcontext(): XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
Provides a pointer to a ucontext structure, defined in the <ucontext.h>
header file. The ucontext structure contains the signal mask, execu‐
tion stack, and machine registers. (See ucontext(5) for more informa‐
tion about the format of the ucontext structure.) Specifies a function
to be called when program execution begins in the new context. Speci‐
fies 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 struc‐
ture.
DESCRIPTION
The makecontext() function modifies the context specified by the ucp
parameter. Before you call the makecontext() function, call the get‐
context() 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 ini‐
tialize 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.
RETURN VALUES
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.
ERRORS
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.
SEE ALSO
Functions: exit(2), getcontext(2), sigaction(2), sigprocmask(2)
Files: ucontext(5)
Standards: standards(5)makecontext(2)