MAKECONTEXT(3C-SVR4)RISC/os Reference Manual MAKECONTEXT(3C-SVR4)
NAME
makecontext, swapcontext - manipulate user contexts
SYNOPSIS
#include <ucontext.h>
void makecontext (ucontext_t *ucp, (void(*)())func, int
argc,...);
int swapcontext (ucontext_t *oucp, ucontext_t *ucp);
DESCRIPTION
These functions are useful for implementing user-level con-
text switching between multiple threads of control within a
process.
makecontext modifies the context specified by ucp, which has
been initialized using getcontext; when this context is
resumed using swapcontext or setcontext [see getcontext(2)],
program execution continues by calling the function func,
passing it the arguments that follow argc in the makecontext
call. The integer value of argc must match the number of
arguments that follow argc. Otherwise the behavior is unde-
fined.
swapcontext saves the current context in the context struc-
ture pointed to by oucp and sets the context to the context
structure pointed to by ucp.
These functions will fail if either of the following is
true:
ENOMEM ucp does not have enough stack left to com-
plete the operation.
EFAULT ucp or oucp points to an invalid address.
SEE ALSO
exit(2), getcontext(2), sigaction(2), sigprocmask(2), ucon-
text(5).
DIAGNOSTICS
On successful completion, swapcontext return a value of
zero. Otherwise, a value of -1 is returned and errno is set
to indicate the error.
NOTES
The size of the ucontext_t structure may change in future
releases. To remain binary compatible, users of these
features must always use makecontext or getcontext to create
new instances of them.
Printed 11/19/92 Page 1