struct _io_connect

Структура сообщения о подключении менеджера ресурсов

Прототип:

struct _io_connect {
uint16_t type;
uint16_t subtype;
uint32_t file_type;
uint16_t reply_max;
uint16_t entry_max;
uint32_t key;
uint32_t handle;
uint32_t ioflag;
uint32_t mode;
uint16_t sflag;
uint16_t access;
uint16_t zero;
uint16_t path_len;
uint8_t eflag;
uint8_t extra_type;
uint16_t extra_len;
char path[1];
};

Описание:

Структура _io_connect используется для описания сообщения о подключении, которое получает и отправляет менеджер ресурсов. Включает в себя:

type
_IO_CONNECT
subtype
Тип соединения, который описывается сообщением; один из:
_IO_CONNECT_COMBINE
объединить с сообщением ввода/вывода.
_IO_CONNECT_COMBINE_CLOSE
объединить с сообщением ввода/вывода и закрыть.
_IO_CONNECT_OPEN
_IO_CONNECT_UNLINK
_IO_CONNECT_RENAME
_IO_CONNECT_MKNOD
_IO_CONNECT_READLINK
_IO_CONNECT_LINK
_IO_CONNECT_RSVD_UNBLOCK
заглушка в таблице переходов.
_IO_CONNECT_MOUNT
file_type
Тип файла. Одно из значений ниже (определено в <sys/ftype.h>):
_FTYPE_ANY
путь может быть любой.
_FTYPE_LINK
зарезервировано для менеджера процессов.
_FTYPE_MOUNT
получить запрос на монтирование пути path (path должен быть NULL).
_FTYPE_MQUEUE
зарезервировано для менеджера очередей сообщений.
_FTYPE_PIPE
зарезервировано для менеджера каналов.
_FTYPE_SEM
зарезервировано для менеджера семафоров.
_FTYPE_SHMEM
зарезервировано для объекта разделяемой памяти.
_FTYPE_SOCKET
зарезервировано для менеджера сокетов.
_FTYPE_SYMLINK
зарезервировано для менеджера процессов.
reply_max
Максимальная длина ответного сообщения.
entry_max
Максимальное число структур _io_connect_entry которое менеджер ресурсов готов принять. Если path ссылается на более чем один менеджер ресурсов, то он возвращает список структур _io_connect_entry указывающих на перекрывающиеся менеджеры ресурсов.
key
Зарезервировано.
handle
Идентификатор возвращаемый resmgr_attach().
ioflag
Следующие два бита изменяются традиционными Unix значениями, наиболее полезные: Обратите внимание, что эта конвертация может быть выполнена без перекрытия с другими флагами o \ _ *. Чтобы проверить разрешения, используйте следующие флаги: Оставшиеся значения ioflag находятся вне этого диапазона и не изменяются. Эти значения:
mode
Содержит тип и разрешения доступа к файлу. Один из:
S_IFBLK
признак блочно-ориентированного файла.
S_IFCHR
признак символьного-ориентированного файла.
S_IFDIR
каталог.
S_IFIFO
признак специального файла FIFO.
S_IFLNK
символическая ссылка.
S_IFMT
маска типа файла.
S_IFNAM
специальный именованный файл.
S_IFREG
обычный файл.
S_IFSOCK
сокет.
Разрешения - это комбинация из:
Владелец Группа Другие Разрешения
S_IRUSR S_IRGRP S_IROTH Чтение
S_IRWXU S_IRWXG S_IRWXO Чтение, запись, выполнение/поиск. Побитное ИЛИ трех констант. (S_IRWXU это ИЛИ IRUSR, S_IWSUR и S_IXUSR.)
S_IWUSR S_IWGRP S_IWOTH Запись
S_IXUSR S_IXGRP S_IXOTH Выполнение/поиск
Следующие биты определяют разные разрешения, используемые другими реализациями:
Бит Эквивалент
S_IEXEC S_IXUSR
S_IREAD S_IRUSR
S_IWRITE S_IWUSR
sflag
Параметры общего доступа к файлу - комбинация следующих бит:
SH_COMPAT
установить режим совместимости.
SH_DENYRW
запретить чтение и запись в файл.
SH_DENYWR
запретить запись в файл.
SH_DENYRD
запретить чтение.
SH_DENYNO
разрешить чтение и запись.
access
Содержит комбинацию битов _IO_FLAG_RD и _IO_FLAG_WR, которые используются внутренними функциями в качестве разрешений доступа.
path_len
Длина path.
eflag
Расширенные флаги:
_IO_CONNECT_EFLAG_DIR
путь указывает на директорию.
_IO_CONNECT_EFLAG_DOT
последний компонент пути . или .. (например текущий или родительский каталог).
extra_type
Один из:
_IO_CONNECT_EXTRA_NONE
_IO_CONNECT_EXTRA_LINK
_IO_CONNECT_EXTRA_SYMLINK
_IO_CONNECT_EXTRA_MQUEUE
_IO_CONNECT_EXTRA_PHOTON
_IO_CONNECT_EXTRA_SOCKET
_IO_CONNECT_EXTRA_SEM
_IO_CONNECT_EXTRA_RESMGR_LINK
_IO_CONNECT_EXTRA_PROC_SYMLINK
_IO_CONNECT_EXTRA_RENAME
_IO_CONNECT_EXTRA_MOUNT
_IO_CONNECT_EXTRA_MOUNT_OCB
extra_len
Длина дополнительных данных в сообщении.
path
Путь, по которому клиент пытается подключиться относительно точки монтирования менеджера ресурсов.

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

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

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

struct _io_connect_ftype_reply, struct _io_connect_link_reply, resmgr_connect_funcs_t




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