Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Шрифт:
Описание: Обрабатывает клиентскую функцию lseek. Отметьте, что администратору ресурса, который обрабатывает каталоги, придется также интерпретировать сообщение _IO_LSEEK для операций с каталогами. Параметры whence
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS, а также (не обязательно) текущее смещение.
Классификация: Функция установления соединения
Обработчик по умолчанию: Нет
Вспомогательные функции: iofunc_mknod
Клиентская функция: mknod, mkdir, mkfifo
Сообщения: _IO_CONNECT, подтип _IO_CONNECT_MKNOD
Структура данных:
Описание: Создает новую точку входа в файловую систему. Сообщение выдается для создания файла с именем, указанным в path, и типом, закодированным в поле mode (оно из «внутренних полей» структуры
Реально это используется только для клиентских функций mkfifo и mkdir.
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Классификация:
Функция ввода/выводаОбработчик по умолчанию: iofunc_mmap_default
Вспомогательные функции: iofunc_mmap
Клиентская функция: mmap, munmap, mmap_device_io, mmap_device_memory
Сообщения: _IO_MMAP
Структура данных:
Описание: Позволяет администратору процессов применять к файлам вашего администратора ресурсов операцию mmap. В общем случае самостоятельно программировать эту функцию не следует (используйте обработчик по умолчанию, предоставляемый iofunc_func_init), если только вы не хотите ее преднамеренно отключить (например, драйвер последовательного порта мог бы запросто возвратить ENOSYS, поэтому для него эта операция не имеет никакого смысла).
Данную функцию администратора ресурсов может вызвать только администратор процессов
Отметим, что побочным результатом вызова этой функции администратором процессов является создание OCB (то есть будет вызвана функция iofunc_ocb_calloc, но для правильно спроектированного администратора ресурсов это не должно иметь никаких последствий.
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Данная функция зарезервирована QSSL для будущего использования. Вам следует инициализировать таблицу функций ввода/вывода, используя iofunc_func_init, и не изменять данную точку входа.