НАЗВАНИЕ
timod - модуль псевдоустройства для взаимодействия с Транспортным Интерфейсом
ОПИСАНИЕ
Timod - это модуль псевдоустройства, обеспечивающий использование функций Транспортного Интерфейса библиотеки сетевых услуг. Модуль timod преобразует набор системных вызовов в сообщения псевдоустройств, которые затем передаются модулю, обеспечивающему транспортный интерфейс. Эта схема позволяет выполнять функции Транспортного Интерфейса как атомарные, неделимые действия.
Модуль timod должен использоваться в потоке, который завершается модулем, обеспечивающим Транспортный Интерфейс [см. ].
Модуль timod передает следующему модулю потока без изменений все сообщения псевдоустройств, кроме перечисленных ниже, генерируемых по системному вызову . Сообщения от перечисленных ниже команд 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.