Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ makecontext(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exit(2)

getcontext(2)

sigaction(2)

sigprocmask(2)

ucontext(5)

makecontext(3C)                                             makecontext(3C)

NAME
     makecontext, swapcontext - Benutzerkontext ändern

SYNTAX
     #include <ucontext.h>

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

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

BESCHREIBUNG
     Diese Funktionen sind nützlich zur Implementierung eines Kontextwech-
     sels zwischen mehreren Kontrollflüssen innerhalb eines Benutzerprozes-
     ses.

     makecontext() verändert den durch ucp angegebenen Kontext, der über
     getcontext() initialisiert wurde; wird dieser Kontext mit
     swapcontext() oder setcontext() aktiviert [siehe getcontext(2)], wird
     die Programmausführung durch Aufruf der Funktion func wieder aufgenom-
     men, wobei die Argumente, die auf argc folgen, an makecontext() über-
     geben werden.

     Vor dem Aufrufen von makecontext() sollte dem zu ändernden Kontext ein
     Stapelspeicher (Stack) zugeordnet werden. Der ganzzahlige Wert von
     argc muß der Anzahl der ganzzahligen Argumente entsprechen, die an
     func übergeben wurden. Ansonsten ist das Verhalten undefiniert.

     Die Komponente uclink wird verwendet, um den Kontext zu ermitteln,
     der wiederaufgenommen werden soll, wenn der durch makecontext() geän-
     derte Kontext zurückgegeben wird. Die Komponente uclink muß vor dem
     Aufrufen von makecontext() initialisiert werden.

     swapcontext() sichert den aktuellen Kontext in der Kontextstruktur,
     auf die oucp zeigt, und setzt den Kontext auf die Kontextstruktur, auf
     die ucp zeigt.

FEHLER
     Diese Funktionen schlagen fehl, wenn eine der folgenden Bedingungen
     erfüllt ist:

     ENOMEM    ucp hat nicht mehr genügend Stapelspeicher, um die Operation
               durchzuführen.

     EFAULT    ucp oder oucp zeigt auf eine ungültige Adresse.

ERGEBNIS
     Nach erfolgreicher Ausführung liefert swapcontext() den Wert Null
     zurück. Ansonsten wird -1 zurückgegeben und errno gesetzt.







Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

makecontext(3C)                                             makecontext(3C)

HINWEISE
     Die Länge der Struktur ucontextt kann sich in zukünftigen Versionen
     ändern. Um eine Binärkompatibilität zu garantieren, müssen die Benut-
     zer dieser Funktionen immer makecontext() oder getcontext() verwenden,
     um neue Kontexte zu erzeugen.

SIEHE AUCH
     exit(2), getcontext(2), sigaction(2), sigprocmask(2), ucontext(5).














































Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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