Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Шрифт:
Классификация: Функция установления соединения (синтезируется ядром и библиотекой)
Обработчик
Вспомогательные функции: iofunc_unblock
Клиентская функция: Нет (вызывается ядром вследствие сигнала или тайм-аута)
Сообщения: Нет (синтезируется библиотекой)
Структура данных: (см. вариант io_unblock для ввода/вывода, ниже)
Описание: Это версия разблокирующего вызова в форме сообщения установления соединения, синтезируемая библиотекой в ответ на импульс от ядра, возникший в результате желания клиента разблокироваться на этапе установления соединения. См. вариант этой функции для ввода/вывода ниже.
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
См. подробное обсуждение стратегий разблокирования в главе «Обмен сообщениями», параграф «Применение флага _NTO_MI_UNBLOCK_REQ».
Классификация: Функция ввода/вывода (синтезируется ядром и библиотекой)
Обработчик по умолчанию: iofunc_unblock_default
Вспомогательные функции: iofunc_unblock
Клиентская функция: Нет (реакция ядра на сигнал или тайм-аут)
Сообщения: Нет (синтезируется библиотекой)
Структура данных: указательна структуру, содержащую прерываемое сообщение
Описание: Это версия разблокирующего вызова для сообщения ввода/вывода, синтезируемая библиотекой в результате импульса от ядра, возникшего вследствие попытки клиента разблокироваться на этапе ввода/вывода. Обработчик io_unblock для фазы установления соединения почти аналогичен (см. предыдущий параграф).
Общим для обеих обработчиков разблокировки (как для функций установления соединения, так и для функций ввода/вывода) является желание клиента разблокироваться с разрешения администратора ресурсов. Администратор ресурсов обязан ответить на клиентское сообщение, чтобы разблокировать клиента. (Мы это обсуждали в главе «Обмен сообщениями», когда говорили о флагах функции ChannelCreate — в частности, о флаге _NTO_CHF_UNBLOCK).
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Подробное обсуждение стратегий разблокирования см. в разделе «Применение флага _NTO_MI_UNBLOCK_REQ» в главе «Обмен сообщениями».
Классификация:
Функция установления соединенияОбработчик по умолчанию: Нет
Вспомогательные функции: iofunc_unlink
Клиентская функция: unlink
Сообщение: _IO_CONNECT, подтип _IO_CONNECT_UNLINK
Структура данных:
Описание: Отвечает за уничтожение связей (unlinking) файла, имя пути которого передается в поле path структуры входящего сообщения.
Возвращает: Состояние по применению вспомогательного макроса _RESMGR_STATUS.
Классификация: Функция ввода/вывода (синтезируется библиотекой)
Обработчик по умолчанию: iofunc_unlock_ocb_default
Вспомогательные функции: Нет
Клиентская функция: Все
Сообщения: Нет (синтезируется библиотекой)
Структура данных: Нет
Описание: Действует противоположно вышеописанной функции io_lock_ocb, т.е. отвечает за разблокирование атрибутной записи, на которую указывает OCB. Эта операция освобождает атрибутную запись, чтобы другие администратора ресурсов могли с ней работать. Подробности см. выше в разделе «Составные сообщения».