Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ makecontect(3C) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exit(2)

getcontext(2)

sigaction(2)

sigprocmask(2)

ucontext(5)



makecontext(3C)                  UNIX System V                  makecontext(3C)


NAME
      makecontext, swapcontext - manipulate user contexts

SYNOPSIS
      #include <ucontext.h>

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

      int swapcontext (ucontextt *oucp, ucontextt *ucp);

DESCRIPTION
      These functions are useful for implementing user-level context 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.  Before a call is made to
      makecontext, the context being modified should have a stack allocated for
      it.  The integer value of argc must match the number of arguments that
      follow argc.  Otherwise the behavior is undefined.

      The uclink field is used to determine the context that will be resumed
      when the context being modified by makecontext returns. The uclink field
      should be initialized prior to the call to makecontext.

      swapcontext saves the current context in the context structure 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 complete the
                     operation.

      EFAULT         ucp or oucp points to an invalid address.

SEE ALSO
      exit(2), getcontext(2), sigaction(2), sigprocmask(2), ucontext(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 ucontextt 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.






10/89                                                                    Page 1





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