Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ hdlcio(7) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctl(2)

open(2)

read(2)

write(2)

hdlcdefs(4)

hios(7)

sih(7)

hdlcio(7)                       (Nur RM400)                       hdlcio(7)

NAME
     hdlcio - HDLC-spezifische ioctl-Aufrufe

SYNTAX
     #include <hdlcio.h>

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

     struct hdlcio *arg;

BESCHREIBUNG
     Die HDLC-spezifischen ioctl-Kommandos dienen zur Einstellung der
     Leitungs- und Protokoll-Parameter und zum Auslesen von Statusinforma-
     tionen. Die Syntax des Systemaufrufs ist kompatibel zum Standard-
     ioctl(2). Dabei werden die einzustellenden bzw. einzulesenden Parame-
     ter in einer Struktur vom Typ struct hdlcio abgelegt, deren Adresse
     als Argument arg übergeben wird.

     Es werden folgende Kommandos unterstützt:

     -  HDLCRSET

     -  HDLCSET

     -  HDLCGET

     -  HDLCWAIT

     -  HDLCINQGET

     Mit den Kommandos HDLCSET und HDLCRSET werden die einem Gerät zugehö-
     rigen HDLC-Parameter eingestellt. Diese beiden Kommandos sind iden-
     tisch und werden nur aus Kompatibilitätsgründen unterstützt.

     Mit dem Kommando HDLCGET können die einem Gerät zugehörigen HDLC-
     Parameter eingelesen werden.

     Mit dem Kommando HDLCINQGET werden die Parameter in die durch arg spe-
     zifizierte hdlcio-Struktur kopiert und zusätzlich die Dateneingabe vom
     Terminal gestoppt. Insbesondere wird die Anzahl der Daten gemeldet,
     die sich in der Inputqueue befinden. Da die Eingabe für dieses Gerät
     blockiert wird, ändert sich diese Anzahl nicht mehr, bis die Daten
     abgeholt werden oder das Gerät geschlossen wird. Sind von der Anwen-
     dung alle Daten abgeholt worden, wird für dieses Gerät die Eingabe
     wieder freigeschaltet und es können wieder Daten empfangen werden.

     Mit dem Kommando HDLCWAIT kann bei einer Anwendung überprüft werden,
     ob ein HDLC-Terminal die Abfragen (polls) der Primary beantwortet.
     Falls ja, kommt das Kommando sofort zurück, anderenfalls wird der Pro-
     zeß solange blockiert, bis das Terminal antwortet.




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

hdlcio(7)                       (Nur RM400)                       hdlcio(7)

     Die einzelnen Parameter sind in der Struktur hdlcio definiert.

     struct hdlcio {
            struct cbcount    hdlciocount;    /* HDLC-Zähler         */
            struct cbltimer  hdlcioltimer;  /* HDLC line timer     */
            struct cbttimer  hdlciottimer;  /* HDLC terminal timer */
            struct cboutput   hdlciooutput;   /* HDLC output flags   */
            struct cbinput    hdlcioinput;    /* HDLC input flags    */
     };

     Die in der Struktur hdlcio verwendeten Strukturen sind folgendermaßen
     definiert:

     struct cbcount {         /* HDLC-spez. Zähler                      */
            ushort ActPCnt;    /* Wiederholungszähler für schnelle Polls */
            byte   RptCnt;     /* Wiederholungszähler für I-Frames       */
            byte   RespTOCnt;  /* Responsetimeout-Zähler                 */
     };

     ACTPCnt    Active Poll Count (Wiederholungszähler für schnelle Abfra-
                gen). Gibt an, wie viele Male nach dem Senden oder Empfan-
                gen eines I-Frames ohne Verzögerung abgefragt werden soll.
                Der Zähler wird bei jedem Senden oder Empfangen eines I-
                Frames neu gesetzt.

                Beim Ablauf des Zählers geht die Primary für dieses Termi-
                nal in den Zustand "inaktiv" über.

                Standard: 2350 (dies entspricht einer Zeit von 2,5 Minuten
                bei einer Abfragefrequenz von 50 ms).

     RptCnt     Repeat Count (Wiederholungszähler für I-Frames). Gibt an,
                wie oft ein nicht quittierter I-Frame wiederholt wird, vor-
                ausgesetzt das Terminal antwortet.

                Beim Ablauf dieses Zählers wird eine Fehlermeldung erzeugt
                und in den "Disconnected Mode" übergegangen.

     RespTOCnt  Response Timeout Count (Responsetimeout-Zähler). Gibt an,
                wie oft ein Auftrag wiederholt wird, falls das Terminal
                nicht antwortet. Dieser Parameter wird nicht mehr ausgewer-
                tet. Es wird der Zähler RptCnt verwendet.

                Standard: 6.










Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

hdlcio(7)                       (Nur RM400)                       hdlcio(7)

     struct cbltimer {         /* Leitungsspez. Timer     */
            ushort   M1Timer;    /* M1-Timer in msec.       */
            ushort   M2Timer;    /* M2-Timer in msec.       */
            ushort   CharTimer;  /* Charactertimer in msec. */
            ushort   LineType;   /* Leitungstyp             */
            ushort   ClockMode;  /* Taktungsart             */
            ushort   TrailPads;  /* verzögerte S2-Rücknahme */
     };

     M1Timer    M1-Überwachungstimer. Gibt die maximale Wartezeit für M1
                (in msec.) an.

                Dieser Parameter wird nicht mehr ausgewertet, aber aus Kom-
                patibilitätsgründen weiter unterstützt.

     M2Timer    M2-Überwachungstimer. Gibt die maximale Wartezeit für die
                M2-Meldung an.

                Falls M2 nicht innerhalb dieser Zeit gesetzt wurde, wird
                der Frame nicht gesendet und in den Fehlerzustand gewech-
                selt.

                Standard: 3000 ms.

     CharTimer  Character Timer. Gibt die maximale Zeit zum Senden und Emp-
                fangen eines Frames an. D. h. das Senden und Empfangen des
                gesamten Frames wird überwacht. Der Character Timer ist
                abhängig von Leitungsgeschwindigkeit und Framelänge. Er
                sollte so groß gewählt werden, daß alle Geschwindigkeiten
                abgedeckt werden. Kann ein Frame in der angegebenen Zeit
                nicht gesendet oder empfangen werden, so wird in den Feh-
                lerzustand gewechselt.

                Standard: 5000 ms.

     LineType   Leitungstyp. Gibt an, ob die Leitung als Vierdraht- oder
                Zweidrahtleitung behandelt werden soll. Falls eine Zwei-
                drahtleitung vorliegt, muß im Gegensatz zu einer Vierdraht-
                leitung nach jedem Senden eines Frames das Signal S2
                zurückgenommen werden.

                Die Einstellung für die Ansteuerung einer Zweidrahtleitung
                wird durch das Setzen von LineType auf den Wert TWOWIRE
                realisiert.

                Die Einstellung für die Ansteuerung einer Vierdrahtleitung
                wird durch das Setzen von LineType auf den Wert FOURWIRE
                realisiert.

                Dieser Parameter betrifft nur den physischen Betrieb der
                Leitung. Logisch wird immer "halbduplex" gearbeitet.



Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

hdlcio(7)                       (Nur RM400)                       hdlcio(7)

                Standard: FOURWIRE.

     ClockMode  Taktungsart. Dieser Parameter wird nicht mehr ausgewertet,
                aber aus Kompatibilitätsgründen weiter unterstützt. Die
                Einstellung der Taktungsart wird über die Auswahl der
                Geschwindigkeit durchgeführt.

                Standard: 0

     TrailPads  Verzögerte S2-Rücknahme. Dieser Parameter wird nicht ausge-
                wertet.

     struct cbttimer {             /* Terminalspez. Timer           */
            ushort   SnrmRespTimer;  /* Responsetimer im DM in msec.  */
            ushort   RespTimer;      /* Responsetimer im NRM in msec. */
            ushort   M5Timer;        /* M5-Timer in msec.             */
            ushort   IActPoll;       /* Pollabstand für               */
                                     /* schnelle Polls in msec.       */
            ushort   IInActPoll;     /* Pollabstand für               */
                                     /* verzögerte Polls in msec.     */
            ushort   INoRspPoll;     /* Pollabstand im                */
                                     /* No-Response-Mod in msec.      */
            ushort   IStdbyPoll;     /* Pollabstand im                */
                                     /* Standby-Poll-Mode in msec.    */
     };

     SnrmRespTimer
                Set Normal Response Mode Timer. Gibt die maximale Wartezeit
                auf einen "kurzen" Response (z. B. UA) an. Nach Ablauf des
                Timer wird der Auftrag wiederholt.

                Standard: 32 ms.

     RespTimer  Responsetimer im Normal Response Mode (NRM). Gibt die maxi-
                male Wartezeit auf einen Response im NRM an, wenn ein I-
                Frame erwartet wird. Nach Ablauf des Timer wird der letzte
                Auftrag wiederholt.

                Standard: 300 ms.

     M5Timer    M5-Überwachungstimer. Gibt die maximale Zeit an, die gewar-
                tet wird, bis der zuletzt abgefragte Secondary das S2-
                Signal wegnimmt. Nach Ablauf des Timers wird der nächste
                Secondary abgefragt. Wird S2 nach der eingestellten Zeit
                nicht zurückgenommen, wird trotzdem der nächste Secondary
                abgefragt.

                Standard: 10 ms.

     IActPoll   Active Poll. Abfragefrequenz für schnelle Abfragen. Gibt
                an, wie schnell ein Terminal, das sich im aktiven Zustand
                befindet, abgefragt werden soll.


Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

hdlcio(7)                       (Nur RM400)                       hdlcio(7)

                Standard: 50 ms.

     IINActPoll Inactive Poll. Abfragefrequenz für verzögerte Abfragen.
                Gibt an, wie schnell ein Terminal, das sich im inaktiven
                Zustand befindet, abgefragt werden soll.

                Ein Terminal befindet sich im inaktiven Zustand, wenn der
                Wiederholungszähler für ACTPCnt abgelaufen ist.

                Standard: 500 ms.

     INoRspPoll No Response Poll. Abfragefrequenz für Terminals im No-
                Response-Mode. Gibt an, wie schnell ein Terminal, das sich
                im No-Response-Mode befindet, abgefragt werden soll.

                Ein Terminal befindet sich im No-Response-Mode, falls es
                längere Zeit nicht auf eine Abfrage geantwortet hat. Es ist
                wahrscheinlich ausgeschaltet oder nicht angeschlossen.

                Standard: 10000 ms.

     IStdbyPoll Standby Poll. Abfragefrequenz für Terminals im Standby-
                Poll-Mode. Gibt an, wie schnell ein Terminal, das sich im
                Standby-Poll-Mode befindet, abgefragt werden soll.

                Ein Terminal befindet sich im Standby-Poll-Mode, falls ein
                open vorliegt, das Terminal aber noch nicht geantwortet hat.

                Standard: 5000 ms.

     struct cboutput {         /* Parameter zur Ausgabesteuerung  */
            byte    oflag;      /* Flag zur Einstellung            */
                                /* von geblocktem write            */
            ushort  SUsrDataL;  /* Länge der Sendedaten            */
                                /* Standard: 100 Zeichen           */
     };

     oflag      output flag. Kennzeichen zur Einstellung von geblocktem
                write/read. Für dieses Flag sind die Werte UNBLOCKED und
                BLOCKED zulässig. Durch UNBLOCKED wird der Standardmodus
                eingestellt. Durch BLOCKED wird der geblockte Modus akti-
                viert, in dem die Applikation die Kontrolle über das Daten-
                feld eines HDLC-Frames erhält.

                Standard: UNBLOCKED.

     SUsrDataL  Send User Data Length. Länge der Sendedaten. Über diesen
                Parameter kann die Applikation die maximale Länge eines
                Frames einstellen. Als Maximalwert ist eine Länge von 1
                KByte zulässig. Wird ein write mit n Daten abgesetzt, so
                kann der write nur korrekt ausgeführt werden, falls n klei-
                ner oder gleich der maximalen Sendeframegröße ist.


Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

hdlcio(7)                       (Nur RM400)                       hdlcio(7)

                Wird über ioctl für SUsrDataL ein Wert >1 KByte gesetzt, so
                wird der ioctl mit dem Fehler EINVAL zurückgewiesen.

                Standard: 100.

     InqAnz     Anzahl der Daten in der Inputqueue. Über dieses Feld kann
                eine Anwendung die Anzahl der in der Inputqueue verfügbaren
                Daten abfragen. Dieses Feld wird nur bei dem Kommando
                HDLCINQGET ausgefüllt.

HINWEISE
     Die link- bzw. leitungs-spezifischen Parameter können über ein belie-
     biges Gerät, das zu diesem Link bzw. zu dieser Leitung gehört, einge-
     stellt werden. Sie werden automatisch für alle an diesem Link bzw.
     dieser Leitung betriebenen Geräte gesetzt.

DATEIEN
     /usr/include/sys/hdlcio.h

SIEHE AUCH
     ioctl(2), open(2), read(2), write(2), hdlcdefs(4), hios(7), sih(7).

































Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

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