Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sad_strm(7) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctl(2)

open(2)

sad_strm(7)                                                     sad_strm(7)

NAME
     sadstrm - Verwaltungstreiber (STREAMS Administrative Driver)

SYNTAX
     #include <sys/types.h>
     #include <sys/conf.h>
     #include <sys/sad.h>
     #include <sys/stropts.h>

     int ioctl (fildes, command, arg);
     int fildes, command;

BESCHREIBUNG
     Der STREAMS-Verwaltungstreiber stellt eine Schnittstelle für Anwendun-
     gen zur Verfügung, über die diese Verwaltungs-Operationen auf
     STREAMS-Modulen und -Treibern ausführen können. Die Schnittstelle wird
     über ioctl(2)-Kommandos realisiert. Privilegierte Operationen können
     auf den sad-Treiber über /dev/sad/admin zugreifen. Unprivilegierte
     Operationen können auf den sad-Treiber über /dev/sad/user zugreifen.

     fildes ist eine offene Dateikennzahl, die auf den sad-Treiber ver-
     weist. command legt die Steuerfunktion fest, die ausgeführt werden
     soll (siehe unten). arg repräsentiert zusätzliche Informationen, die
     vom jeweiligen Kommando benötigt werden. Der Typ von arg hängt vom
     jeweiligen Kommando ab, ist aber generell eine ganze Zahl oder ein
     Zeiger auf eine kommando-spezifische Datenstruktur.

KOMMANDO-FUNKTIONEN
     Die autopush-Eigenschaft [siehe autopush(1M)] erlaubt es, eine Liste
     von Modulen zu konfigurieren, die automatisch in einen Stream einge-
     klinkt werden, wenn ein Treiber zum ersten Mal geöffnet wird. autopush
     wird von den nächsten Kommandos gesteuert.

     SADSAP   Erlaubt dem Systemverwalter, die autopush-Informationen für
               das gegebene Gerät zu konfigurieren. arg zeigt auf eine
               strapush-Struktur, die folgende Komponenten enthält:

               uint   sapcmd;
               long   sapmajor;
               long   sapminor;
               long   saplastminor;
               long   sapnpush;
               uint   saplist[MAXAPUSH] [FMNAMESZ + 1];

               Die sapcmd-Komponente gibt den Typ der durchzuführenden
               Konfiguration an. Sie kann einen der folgenden Werte anneh-
               men:








Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

sad_strm(7)                                                     sad_strm(7)

               SAPONE   Ein Minorgerät eines Treibers konfigurieren.

               SAPRANGE Einen Bereich von Minorgeräten eines Treibers kon-
                         figurieren.

               SAPALL   Alle Minorgeräte eines Treibers konfigurieren.

               SAPCLEAR Konfiguration für einen Treiber zurücknehmen.

               Die sapmajor-Komponente ist die Majornummer des zu konfigu-
               rierenden Geräts. Die sapminor-Komponente ist die Minornum-
               mer des zu konfigurierenden Geräts. Die saplastminor-
               Komponente wird nur dann verwendet, wenn das SAPRANGE-
               Kommando angegeben wird. Mit ihr wird ein Bereich von zu
               konfigurierenden Minorgeräten zwischen sapminor und
               saplastminor (einschließlich) angegeben. Diese Komponenten
               haben für das SAPALL-Kommando keine Bedeutung. Die
               sapnpush-Komponente gibt die Anzahl der Module an, die beim
               Öffnen des Geräts automatisch eingeklinkt werden sollen. Sie
               muß kleiner oder gleich dem Wert MAXAPUSH sein, der in sad.h
               definiert ist. Sie muß auch kleiner oder gleich dem Wert
               NSTRPUSH sein, der maximalen Zahl von Modulen, die in einen
               Stream eingeklinkt werden können. Dieser Wert ist in der
               Hauptdatei des Systemkerns definiert. Die Komponente
               saplist ist ein Vektor von Modulnamen, die in der Reihen-
               folge eingeklinkt werden sollen, in der sie in der Liste
               erscheinen.

               Wenn ein Benutzer das SAPCLEAR-Kommando verwendet, dann
               besetzt er nur sapmajor und sapminor. Dies mach die Konfi-
               guration für jedes andere Kommando rückgängig. Wurde ein
               vorhergehender Eintrag durch SAPALL konfiguriert, dann
               sollte sapminor gleich 0 gesetzt sein. Wurde ein vorherge-
               hender Eintrag durch SAPRANGE konfiguriert, dann sollte
               sapminor gleich der kleinsten Minornummer im konfigurierten
               Bereich gesetzt werden.

               Im Fehlerfall ist errno folgendermaßen besetzt:

               EFAULT    arg zeigt auf einen Punkt außerhalb des reservier-
                         ten Adreßraums.

               EINVAL    Die Majornummer, die Anzahl der Module oder die
                         Liste der Modulnamen ist ungültig.

               ENOSTR    Die Majornummer gehört zu keinem STREAMS-Treiber.

               EEXIST    Das Gerät mit der angegebenen Major- und Minornum-
                         mer ist bereits konfiguriert.





Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

sad_strm(7)                                                     sad_strm(7)

               ERANGE    Das Kommando ist SAPRANGE und saplastminor ist
                         nicht größer als sapminor; oder das Kommando ist
                         SAPCLEAR und sapminor ist nicht gleich der
                         ersten Minornummer im Bereich.

               ENODEV    Das Kommando ist SAPCLEAR und das Gerät ist nicht
                         für autopush konfiguriert.

               ENOSR     Eine interne autopush-Datenstruktur kann nicht
                         reserviert werden.

     SADGAP   Erlaubt es einem Benutzer, den sad-Treiber die Informationen
               zur autopush-Konfiguration für ein gegebenes Gerät ermitteln
               zu lassen. arg zeigt auf eine strapush-Struktur, wie sie
               beim vorigen Kommando beschrieben wurde.

               Der Benutzer sollte die sapmajor- und sapminor-Komponenten
               der strapush-Struktur auf die Major- und Minornummer des
               abzufragenden Gerätes setzen. Nach der Rückkehr ist die
               strapush-Struktur mit den gesamten Informationen gefüllt,
               die zur Konfiguration des Geräts verwendet werden. Nichtbe-
               nutzte Einträge in der Modul-Liste sind mit Nullen gefüllt.

               Im Fehlerfall nimmt errno einen der folgenden Werte an:

               EFAULT    arg zeigt auf einen Punkt außerhalb des reservier-
                         ten Adreßraums.

               EINVAL    Die Majornummer ist ungültig.

               ENOSTR    Die Majornummer gehört zu keinem STREAMS-Treiber.

               ENODEV    Das Gerät ist nicht für autopush konfiguriert.

     SADVML   Erlaubt es jedem Benutzer, eine Modul-Liste zu prüfen (d. h.
               zu prüfen, ob diese Module im System installiert sind). arg
               ist ein Zeiger auf eine strlist-Struktur, die folgende Kom-
               ponenten besitzt:

               int                     slnmods;
               struct strmlist        *slmodlist;

               Die strmlist-Struktur besitzt folgende Komponente:

               char                    lname[FMNAMESZ+1];

               slnmods gibt die Anzahl der Einträge an, die der Benutzer
               im Vektor reserviert hat, und slmodlist zeigt auf den Vek-
               tor von Modulnamen. Das Ergebnis ist 0, wenn die Liste gül-
               tig ist. Wenn die Liste einen ungültigen Modulnamen enthält,
               dann ist das Ergebnis 1, und im Fehlerfall ist das Ergebnis
               -1. Im Fehlerfall nimmt errno einen der folgenden Werte an:


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

sad_strm(7)                                                     sad_strm(7)

               EFAULT    arg zeigt auf einen Punkt außerhalb des reservier-
                         ten Adreßraums.

               EINVAL    Die slnmods-Komponente der strlist-Struktur ist
                         kleiner oder gleich 0.

DIAGNOSE
     Sofern oben nicht anders angegeben, ist das Ergebnis von ioctl bei
     Erfolg der Wert 0 und im Fehlerfall der Wert -1, wobei errno wie ange-
     geben gesetzt ist.

SIEHE AUCH
     introprm2(2), ioctl(2), open(2).

     Leitfaden für Programmierer: STREAMS







































Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

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