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)].