TIMOD(7)

НАЗВАНИЕ
timod - модуль псевдоустройства для взаимодействия с Транспортным Интерфейсом

ОПИСАНИЕ
Timod - это модуль псевдоустройства, обеспечивающий использование функций Транспортного Интерфейса библиотеки сетевых услуг. Модуль timod преобразует набор системных вызовов ioctl(2) в сообщения псевдоустройств, которые затем передаются модулю, обеспечивающему транспортный интерфейс. Эта схема позволяет выполнять функции Транспортного Интерфейса как атомарные, неделимые действия.

Модуль timod должен использоваться в потоке, который завершается модулем, обеспечивающим Транспортный Интерфейс [см. intro(2)].

Модуль timod передает следующему модулю потока без изменений все сообщения псевдоустройств, кроме перечисленных ниже, генерируемых по системному вызову ioctl(2). Сообщения от перечисленных ниже команд ioctl распознаются и обрабатываются модулем timod. Формат вызова ioctl следующий:


     #include <sys/stropts.h>

     

     struct strioctl strioctl;

     

     strioctl.ic_cmd = команда;

     strioctl.ic_timeout = INFTIM;

     strioctl.ic_len = размер;

     strioctl.ic_dp  = (char *) буфер;

     

     ioctl (fildes, I_STR, &strioctl);

В поле ic_len указывается размер сообщения, передаваемого модулю Транспортного Интерфейса, при возврате это поле содержит размер ответного сообщения, полученного от модуля Транспортного Интерфейса. В поле ic_dp помещается ссылка на буфер, содержащий посылаемое сообщение. Размер буфера должен быть достаточен для приема ответного сообщения. Возможные типы сообщений определены во включаемом файле <sys/tihdr.h>. Ниже перечислены допустимые значения поля ic_cmd:

TI_BIND
Присоединить адрес к нижележащему транспортному протоколу. Сообщение, выдаваемое по команде TI_BIND, имеет тип T_BIND_REQ. Сообщение, возвращаемое при нормальном завершении системного вызова ioctl, имеет тип T_BIND_ACK.
TI_UNBIND
Отсоединить адрес от нижележащего транспортного протокола. Сообщение, выдаваемое по команде TI_UNBIND, имеет тип T_UNBIND_REQ. Сообщение, возвращаемое при нормальном завершении системного вызова ioctl, имеет тип T_OK_ACK.
TI_GETINFO
Получить информацию о состоянии транспортного протокола. Сообщение, выдаваемое по команде TI_GETINFO, имеет тип T_INFO_REQ. Сообщение, возвращаемое при нормальном завершении системного вызова ioctl, имеет тип T_INFO_ACK.
TI_OPTMGMT
Выполнить специфические операции транспортного протокола. Сообщение, выдаваемое по команде TI_OPTMGMT, имеет тип T_OPTMGMT_REQ. Сообщение, возвращаемое при нормальном завершении системного вызова ioctl, имеет тип T_OPTMGMT_ACK.

ФАЙЛЫ


<sys/timod.h>

<sys/tiuser.h>

<sys/tihdr.h>

<sys/errno.h>

СМ. ТАКЖЕ
tirdwr(7).

ДИАГНОСТИКА
Если системный вызов ioctl возвращает значение, большее 0, то младшие 8 бит этого значения содержат код ошибки Транспортного Интерфейса (коды ошибок определены во включаемом файле <sys/tiuser.h>). Если код ошибки имеет значение TSYSERR, следующие 8 бит возвращаемого значения содержат системный код ошибки [системные коды ошибок определены во включаемом файле <sys/errno.h>, см. intro(2)].