Next: Input/Output események figyelése
Up: Multiplexer driverek
Previous: Egy multiplexer összerakása
A következokben a multiplexerek kiépítésekor használt STREAMS
ioctl parancsokat, és azok paraméterezését ismertetjük (ld. ehhez
korábbi A STREAMS rendszer vezérlése címu részt) :
-
I_LINK
: Összekapcsol két streamet, ahol fd
paraméter értéke a multiplexer driver streamjének a filedeszkriptorját
tartalmazza, az arg paraméter pedig a multiplexer driverhez
kapcsolandó stream filedeszkriptorját tartalmazza. Sikeres végrehajtás
esetén a hívás egy multiplexer ID értékkel tér vissza, amit a
multiplexer konfiguráció leépítésekor kell megadni, sikertelen
végrehajtás esetén -1-et ad vissza. Hiba esetén az errno
változó lehetséges értékei :
- EINVAL : Az fd stream nem multiplexelheto, vagy valami
egyéb okból nem végrehajtható az összekötés (ld. errol részletesebben
a streamio(7) leírást).
- EAGAIN : A végrehajtáskor épp nem volt elegendo memória.
- ENXIO : Hangup-ot kapott az fd-vel megadott stream.
- ETIME : Timeout. Hiába várt a rendszer a multiplexer driver
visszajelzésére. Visszajelzés nem érkezett a multiplexertol, pedig
kellett volna.
Megjegyzés: az összelinkelés úgy történik, hogy a
multiplexer driver streamtab strukturájában megadott lower write illetve
read queue információk beíródnak a driver alá linkelt stream stream-fej
strukturájába. Ha alulról egy üzenet elérkezik a driver alá belinkelt
stream-fejhez, akkor az üzenetet megkapja a lower read queue put
rutinja, ami majd továbbadhatja azt valamelyik felso queuera.
-
I_UNLINK
: Szétkapcsol egy elozoleg I_LINK
hívással összekapcsolt multiplexer konfigurációt. Itt az fd
paraméter a multiplexerhez kapcsolt stream (multiplexer oldaláról nézve)
filedeszkriptorját, az arg paraméter pedig az elozo pontban
említett multiplexer ID-et tartalmazza. (Ha a multiplexelést létrehozó
program futása befejezodik, akkor minden általa létrehozott multiplexer
kapcsolat automatikusan megszunik.)
Sikertelen végrehajtás esetén -1-et ad vissza. Hiba esetén az
errno változó lehetséges értékei :
- EINVAL : Rossz paramétereket adtunk meg fd-ben vagy
arg-ban (ld. errol részletesebben a streamio(7) leírást).
- ENOSR : A végrehajtáskor épp nem volt elegendo memória (a
STREAMSnek fenntartott memóriaterületen).
- ENXIO : Hangup-ot kapott az fd-vel megadott stream.
- ETIME : Timeout. Hiába várt a rendszer a multiplexer driver
visszajelzésére. Visszajelzés nem érkezett a multiplexertol, pedig
kellett volna.
Next: Input/Output események figyelése
Up: Multiplexer driverek
Previous: Egy multiplexer összerakása
Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996