Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Шрифт:
Классификация: Функция ввода/вывода
Обработчик по умолчанию: Нет
Вспомогательные функции: Нет
Клиентская функция: Нет (создается «вручную» и передается посредством MsgSend)
Сообщения: _IO_MSG
Структура данных:
Описание: Интерфейс _IO_MSG является более общей, но менее переносимой вариацией на тему ioctl и devctl. Поле mgrid идентифицирует конкретный администратор — вы не должны выполнять никаких действий по запросам, не соответствующим идентификатору вашего администратора. Поле subtype фактически задает команду, которую клиент хочет выполнить. Любые неявно передаваемые данные следуют за входной структурой. Данные, возвращаемые клиенту, передаются сами по себе; код завершения возвращается через макрос _RESMGR_STATUS. Уникальный «идентификатор администратора» (manager ID) вы можете получить в QSSL.
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Классификация: Функция ввода/вывода
Обработчик по умолчанию: Нет
Вспомогательные функции: iofunc_notify, iofunc_notify_remove, iofunc_notify_trigger
Клиентская функция: select, ionotify
Сообщения: _IO_NOTIFY
Структура данных:
Описание: Данный обработчик отвечает за установку, опрос или удаление обработчика уведомлений. Параметры action (действие) и flags (флаги) определяют тип операции уведомления и условия; параметр event (событие) является структурой типа
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS; флаги возвращается ответным сообщением.
Классификация: Функция установления соединения
Обработчик по умолчанию: iofunc_open_default
Вспомогательные функции: iofunc_open, iofunc_ocb_attach
Клиентская функция: open, fopen, sopen и др.
Сообщения: _IO_CONNECT, подтипы _IO_CONNECT_COMBINE, _IO_CONNECT_COMBINE_CLOSE и _IO_CONNECT_OPEN.
Структура данных:
Описание: Это основная точка входа в администратор ресурсов. Она выполняет проверку, действительно ли клиент имеет соответствующие права на открытие файла, привязывает OCB к внутренним структурам библиотеки (посредством функций resmgr_bind_ocb или iofunc_ocb_attach) и возвращает errno. Отметим, что для данной функции релевантны не все поля структур ввода и вывода.
Возвращает: Код завершения, при помощи вспомогательного макроса _IO_SET_CONNECT_RET.