Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ swapctl(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

swapctl(2)                                                       swapctl(2)

NAME
     swapctl - Swap-Bereich verwalten

SYNTAX
     #include <sys/stat.h>
     #include <sys/swap.h>

     int swapctl(int cmd, void *arg);

BESCHREIBUNG
     swapctl() addiert, löscht oder liefert Informationen über Swap-
     Ressourcen. cmd gibt dabei eine der folgenden Optionen an, die in der
     Datei sys/swap.h definiert werden:

        SCADD                /* Ressource als Swap-Bereich einrichten */
        SCLIST               /* Die Swap-Ressourcen auflisten */
        SCREMOVE             /* Eine Swap-Ressource entfernen */
        SCGETNSWP            /* Die Anzahl der Swap-Ressourcen
                                 zurückgeben */

     Wenn SCADD oder SCREMOVE angegeben wird, ist arg ein Zeiger auf eine
     swapres-Struktur, welche die folgenden Komponenten enthält:

        char    *srname;     /* Pfadname der Ressourcen */
        offt   srstart;     /* Offset, bei dem der Swap-Bereich
                                 beginnt */
        offt   srlength;    /* Länge des Swap-Bereiches */

     srstart und srlength werden in 512-Byte Blöcken angegeben.

     Wenn SCLIST angegeben wird, ist arg ein Zeiger auf eine swaptable-
     Struktur, welche die folgenden Komponenten enthält:

        int     swtn;             /* Anzahl der Swap-Ressourcen */
        struct  swapent swtent[]; /* Feld der swtn Swap-Ressourcen */

     Eine swapent-Struktur enthält die folgenden Komponenten:

        char    *stepath;     /* Name der Swap-Datei */
        offt   stestart;     /* Anfangsblock zum Swappen */
        offt   stelength;    /* Länge des Swap-Bereichs */
        long    stepages;     /* Anzahl der Seiten zum Swappen */
        long    stefree;      /* Anzahl von stepages frei */
        long    steflags;     /* STINDEL Bit gesetzt, wenn Swap-Datei
                                  nun gelöscht wird */

     SCLIST veranlaßt swapctl() dazu, swtn Einträge zurückzugeben. Der
     Rückgabewert von swapctl() ist die Anzahl der wirklich zurückgeliefer-
     ten Einträge. Das STINDEL-Bit wird in steflags angeschaltet, wenn
     die Swap-Datei gerade gelöscht wird.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

swapctl(2)                                                       swapctl(2)

     Wenn SCGETNSWP angegeben wird, liefert swapctl() als Wert die Anzahl
     der Swap-Ressourcen zurück, die momentan verwendet werden. arg wird
     für diese Operation ignoriert.

     Die SCADD- und SCREMOVE-Funktionen schlagen fehl, wenn der aufru-
     fende Prozeß nicht die entsprechenden Privilegien besitzt.

     Unter den folgenden Bedingungen schlägt die Funktion swapctl() fehl
     und setzt errno auf die folgenden Werte:

     EEXIST        Ein Teil des durch srstart und srlength angegebenen
                   Bereichs auf der angegebenen Ressource wird bereits als
                   Swap-Bereich verwendet (SCADD).

     EFAULT        arg, srname, oder stepath weist über den zugewiesenen
                   Adreßraum des Prozesses hinaus.

     EINVAL        Der angegebene Funktionswert ist nicht gültig, der ange-
                   gebene Pfad ist keine Swap-Ressource (SCREMOVE), Teile
                   des Bereichs, der durch srstart und srlength angegeben
                   wird, liegen außerhalb der angegebenen Ressource
                   (SCADD), oder der angegebene Swap-Bereich ist kleiner
                   als eine Seite (SCADD).

     EISDIR        Der für SCADD angegebene Pfad ist ein Verzeichnis.

     ELOOP         Zu viele symbolische Verweise traten bei der Übersetzung
                   des Pfadnamens für SCADD oder SCREMOVE auf.

     ENAMETOOLONG  Die Länge einer Komponenten im Pfad für SCADD oder
                   SCREMOVE überschreitet NAMEMAX Zeichen, oder die Länge
                   des Pfads überschreitet PATHMAX Zeichen.

     ENOENT        Der Pfadname für SCADD oder SCREMOVE existiert nicht.

     ENOMEM        Eine unzureichende Anzahl von struct-swapent-Strukturen
                   wurde für SCLIST bereitgestellt, oder es stehen unzu-
                   reichende Systemspeicherressourcen während einer SCADD-
                   oder SCREMOVE-Operation zur Verfügung, oder das System
                   hätte nach einer SCREMOVE-Operation einen zu kleinen
                   Swap-Bereich.

     ENOSYS        Der Pfadname für SCADD oder SCREMOVE ist keine Datei
                   oder keine blockorientierte Gerätedatei.

     ENOTDIR       Der Pfadname für SCADD oder SCREMOVE enthält eine Kom-
                   ponente, bei der es sich nicht um ein Verzeichnis han-
                   delt.

     EPERM         Der Prozeß hat keine entsprechenden Privilegien.




Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

swapctl(2)                                                       swapctl(2)

     EROFS         Der Pfadname für SCADD gibt ein Dateisystem an, das nur
                   lesbar ist.

ERGEBNIS
     Nach erfolgreicher Durchführung liefert die Funktion swapctl() den
     Wert 0 für SCADD oder SCREMOVE, die Anzahl der struct swapent-Ein-
     träge für SCLIST, oder die Anzahl der Swap-Ressourcen für SCGETNSWP
     zurück. Bei Fehlern wird -1 zurückgegeben und die Fehlernummer in
     errno abgelegt.













































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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