Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

makecontext(2)

NAME

makecontext, swapcontext − manipulate user contexts

SYNOPSIS

#include <ucontext.h>

void makecontext(ucontext_t *ucp, (void *func)(), int argc, ...);

int swapcontext(ucontext_t *oucp, const ucontext_t *ucp);

DESCRIPTION

The makecontext() function modifies the context specified by ucp, which has been initialised using tcontext().  When this context is resumed using swapcontext() or setcontext(), program execution continues by calling func(), passing it the arguments that follow argc in  the makecontext() 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 behaviour 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 initialised 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. 

ERRORS

The makecontext() and swapcontext() functions will fail if:

[ENOMEM] The ucp argument does not have enough stack left to complete the operation. 

SEE ALSO

exit(), getcontext(), sigaction(), sigprocmask(), <ucontext.h>. 

CHANGE HISTORY

First released in Issue 4, Version 2. 

Hewlett-Packard Company  —  HP-UX Release 10.20:  July 1996

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026