Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

makecontext(2) [osf1 man page]

makecontext(2)							System Calls Manual						    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 standards 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, exe- cution stack, and machine registers. (See ucontext(5) for more information about the format of the ucontext structure.) Specifies a func- tion 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 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 lit- tle 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)

Check Out this Related Man Page

MAKECONTEXT(3)						     Linux Programmer's Manual						    MAKECONTEXT(3)

NAME
makecontext, swapcontext - manipulate user context SYNOPSIS
#include <ucontext.h> void makecontext(ucontext_t *ucp, void *func(), int argc, ...); int swapcontext (ucontext_t *oucp, ucontext_t *ucp); DESCRIPTION
In a SysV-like environment, one has the type ucontext_t defined in <ucontext.h> and the four functions getcontext(), setcontext(), makecon- text() and swapcontext() that allow user-level context switching between multiple threads of control within a process. For the type and the first two functions, see getcontext(2). The makecontext() function modifies the context pointed to by ucp (which was obtained from a call to getcontext()). Before calling make- context(), one should allocate a new stack for this context, assigning to ucp->uc_stack, and define a successor context, assigning to ucp->uc_link. When this context is later activated (using setcontext() or swapcontext()) then first the function func is called, with the arguments specified following argc (where argc must contain the number of these arguments), and when this function returns, the successor context is activated. When the successor context pointer is NULL, the thread exits. The swapcontext() function saves the current context in the structure pointed to by oucp, and then activates the context pointed to by ucp. RETURN VALUE
When successful, makecontext() returns 0 and swapcontext() does not return. (But we may return later, in case oucp is activated, in which case it looks like swapcontext() returns 0.) On error, both return -1 and set errno appropriately. ERRORS
ENOMEM Insufficient stack space left. NOTES
The interpretation of ucp->uc_stack is just as in sigaltstack(2), namely, this struct contains start and length of a memory area to be used as stack, regardless of the direction of growth of the stack. So, it is not necessary for the user program to worry about this direction. CONFORMING TO
SUSv2, POSIX 1003.1-2001. SEE ALSO
getcontext(2), sigaction(2), sigaltstack(2), sigprocmask(2), sigsetjmp(3) Linux 2.4 2001-11-15 MAKECONTEXT(3)
Man Page