iofunc_devctl()

Обработать сообщение _IO_DEVCTL

Прототип:

#include <sys/iofunc.h>
int iofunc_devctl( resmgr_context_t *ctp,
io_devctl_t *msg,
iofunc_ocb_t *ocb,
iofunc_attr_t *attr );

Аргументы:

ctp
A pointer to a resmgr_context_t structure that the resource-manager library uses to pass context information between functions.
msg
A pointer to the io_devctl_t structure that contains the message that the resource manager received.
ocb
A pointer to the iofunc_ocb_t structure for the Open Control Block that was created when the client opened the resource.
attr
A pointer to the iofunc_attr_t structure that describes the characteristics of the device that's associated with your resource manager.

Библиотека:

libc

Описание:

The iofunc_devctl() helper function implements POSIX semantics for the client's devctl() call, which is received as an _IO_DEVCTL message by the resource manager. This function handles the DCMD_ALL_* functionality.

Эта функция обрабатывает следующие управляющие сообщения:

DCMD_ALL_GETFLAGS
Реализует функционал команды получить флаги функции fcntl().
DCMD_ALL_SETFLAGS
Реализует функционал команды установить флаги функции fcntl().
DCMD_ALL_GETMOUNTFLAGS
Возвращает флаги монтирования (mount->flags) для ресурса, если для него определена структура mount, иначе 0.

Поддерживаемые флаги монтирования для DCMD_ALL_GETMOUNTFLAGS включают в себя:

_MOUNT_READONLY
Только чтение.
_MOUNT_NOEXEC
Не запускать исполняемые файлы.
_MOUNT_NOSUID
Не воспринимать setuid биты в файловой системе.

Любые сообщения управляющих устройством возвращают ENOTTY.

Возвращаемое значение:

EOK
Успешное завершение.
EINVAL
An attempt to set the flags for a resource that is synchronized, with no mount structure defined, or no synchronized I/O defined.
ENOTTY
An unsupported device control message was decoded.

Классификация:

ЗОСРВ «Нейтрино»

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

devctl(), io_devctl_t, fcntl(), iofunc_attr_t, iofunc_devctl_default(), iofunc_ocb_t, resmgr_context_t




Предыдущий раздел: Описание API системной библиотеки