t_open(3N) t_open(3N)
NAME
topen - Transportendpunkt einrichten
SYNTAX
#include <sys/tiuser.h>
#include <fcntl.h>
int topen(char *path, int oflag, struct tinfo *info);
BESCHREIBUNG
Der Aufruf von topen ist der erste Schritt bei der Initialisierung
eines Transportendpunkts. Die Funktion richtet einen Transportendpunkt
ein, indem sie eine UNIX Datei öffnet, die einen bestimmten Transport-
anbieter kennzeichnet (d. h. das Transportprotokoll). Der Dateide-
skriptor dieser Datei wird zurückgeliefert. Das Öffnen der Datei
/dev/isocots kennzeichnet den Transportanbieter als ein OSI-verbin-
dungsorientiertes Transportprotokoll.
path zeigt auf den Pfadnamen der zu öffnenden Datei, und oflag gibt
die entsprechenden Optionen für das open(2) an. oflag kann aus
ONDELAY oder ONONBLOCK mit einer ODER-Verknüpfung von ORDWR gebil-
det werden. Diese Optionen sind in der Include-Datei <fcntl.h> defi-
niert. topen liefert einen Dateideskriptor zurück, der von allen
nachfolgenden Funktionen für die Identifikation dieses bestimmten
Transportendpunkts verwendet wird.
topen liefert ebenfalls verschiedene Standardeigenschaften des darun-
terliegenden Transportprotokolls zurück, indem es die jeweiligen Fel-
der in der Struktrur tinfo setzt. Das Argument tinfo zeigt auf eine
Struktur tinfo, die folgende Elemente enthält:
long addr; /* max. Länge der Transportprotokolladresse */
long options; /* max. Anzahl Bytes der protokollspezif. Optionen */
long tsdu; /* max. Größe einer Transportdienstdateneinheit
(TSDU) */
long etsdu; /* max. Größe einer vorrangigen Transportdienst-
dateneinheit (ETSDU) */
long connect; /* max. erlaubte Datenmenge bei Verbindungsaufbau-
Funktionen */
long discon; /* max. erlaubte Datenmenge bei den Funktionen
tsnddis und trcvdis */
long servtype; /* von dem Transportanbieter angebotene Diensttyp */
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
t_open(3N) t_open(3N)
Die Werte der Felder haben folgende Bedeutung:
addr Ein Wert größer als oder gleich Null, der die maximale Größe
einer Transportprotokolladresse angibt. Ein Wert -1 zeigt
an, daß es keine Grenze für die Adreßgröße gibt. Ein Wert -2
bedeutet, daß der Transportanbieter keinen Zugriff auf die
Transportprotokolladresse zur Verfügung stellt.
options Ein Wert größer als oder gleich Null, der die maximale
Anzahl von Bytes der protokollspezifischen Optionen angibt,
die von dem Transportanbieter zur Verfügung gestellt werden.
Der Wert -1 bedeutet, daß es keine Grenze für die Options-
größe gibt. Der Wert -2 gibt an, daß der Transportanbieter
keine durch den Benutzer setzbaren Optionen zur Verfügung
stellt.
tsdu Ein Wert größer als Null, der die maximale Größe einer
Transportdienst-Dateneinheit (TSDU) angibt. Der Wert Null
gibt an, daß der Transportanbieter das Konzept der TSDU
nicht anbietet, obgleich sie das Senden von Datenströmen
ohne die Einhaltung logischer Grenzen über eine Verbindung
unterstützt. Der Wert -1 gibt an, daß es keine Grenze für
die Größe einer TSDU gibt. Der Wert -2 gibt an, daß der
Transportanbieter die Übertragung von normalen Daten nicht
anbietet.
etsdu Ein Wert größer als Null, der die maximale Größe einer vor-
rangigen Transportdienst-Dateneinheit (ETSDU) angibt. Ein
Wert Null gibt an, daß der Transportanbieter das Konzept der
ETSDU nicht unterstützt, obgleich sie das Senden von vorran-
gigen Datenströmen ohne die Einhaltung logischer Grenzen
über eine Verbindung unterstützt. Der Wert -1 bedeutet, daß
es keine Grenze für die Größe einer ETSDU gibt. Der Wert -2
gibt an, daß der Transportanbieter die Übertragung von Vor-
rangdaten nicht anbietet.
connect Ein Wert größer als oder gleich Null, der die maximale Menge
an Daten angibt, die mit einer Verbindungsaufbaufunktion
gesendet werden können. Der Wert -1 bedeutet, daß es keine
Grenze für die Datenmenge gibt, die während eines Verbin-
dungsaufbaus gesendet werden kann. Der Wert -2 gibt an, daß
der Transportanbieter nicht erlaubt, Daten während des Ver-
bindungsaufbaus mitzusenden.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
t_open(3N) t_open(3N)
discon Ein Wert größer als oder gleich Null, der die maximale Menge
an Daten angibt, die mit den Funktionen tsnddis und
trcvdis versendet bzw. empfangen werden können. Der Wert -1
bedeutet, daß es keine Grenze für die Datenmenge gibt, die
während eines Verbindungsabbaus gesendet werden kann. Der
Wert -2 gibt an, daß der Transportanbieter nicht erlaubt,
Daten während des Verbindungsabbaus mitzusenden.
servtype Dieses Feld gibt den Diensttyp an, der von dem Transportan-
bieter angeboten wird (siehe unten).
Wenn ein Transportdienstbenutzer protokollunabhängig sein will, kann
auf die obigen Größen zugegriffen werden, um festzustellen, wie groß
die Puffer zur Aufnahme der Daten sein müssen. Alternativ dazu kann
die Funktion talloc verwendet werden, um diese Puffer anzulegen. Es
tritt ein Fehler auf, wenn ein Transportdienstbenutzer die erlaubten
Datengrößen bei einer Funktion überschreitet.
Das Feld servtype von info kann bei der Rückkehr einen der folgenden
Werte enthalten:
TCOTS Der Transportanbieter unterstützt einen verbindungs-
orientierten Dienst, jedoch nicht die optionale Möglich-
keit eines geordneten Verbindungsabbaus.
TCOTSORD Der Transportanbieter unterstützt einen verbindungs-
orientierten Dienst mit der optionalen Möglichkeit eines
geordneten Verbindungsabbaus.
TCLTS Der Transportanbieter unterstützt einen verbindungslosen
Dienst. Für diesen Diensttyp liefert topen bei etsdu,
connect und discon -2 zurück.
Ein einziger Transportendpunkt kann zu einem Zeitpunkt nur einen der
obigen Dienste anbieten.
Wenn info vom Transportbenutzer auf NULL gesetzt wird, wird von topen
keine Protokollinformation zurückgeliefert.
FEHLER
Im Fehlerfall wird terrno auf einen der folgenden Werte gesetzt:
TSYSERR Während der Ausführung dieser Funktion ist ein System-
fehler aufgetreten.
TBADFLAG Es ist eine ungültige Option angegeben worden.
DIAGNOSE
topen liefert bei erfolgreicher Durchführung einen gültigen Dateide-
skriptor zurück. Im Fehlerfall wird -1 zurückgegeben, wobei terrno
gesetzt wird, um den Fehler anzuzeigen.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
t_open(3N) t_open(3N)
HINWEISE
Wenn topen auf einem STREAMS-Geräteknoten verwendet wird, der nicht
konform mit der Schnittstelle der Transportschicht (TLI) ist, können
unvorhergesehene Fehler auftreten.
SIEHE AUCH
open(2).
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98