НАЗВАНИЕ
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:
ФАЙЛЫ
<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)].