ИМЯ ioperm - устанавливает права на работу с портами ввода/вывода
ОБЗОР #include <sys/io.h> /* для glibc */
int ioperm(unsigned long from, unsigned long num, int turn_on);
ОПИСАНИЕ Вызов ioperm() устанавливает num бит прав доступа вызывающей нити, начиная с адреса порта from. Если turn_on не равно 0, то права для указанных битов устанавливаются, иначе сбрасываются. Если turn_on не равно 0, вызывающая нить должна быть привилегированной (CAP_SYS_RAWIO).
До Linux 2.6.8, можно было указывать только первые 0x3ff портов ввода-вывода. Для остальных портов нужно было использовать системный вызов iopl(2) (с аргументом level равным 3). Начиная с Linux 2.6.8, можно указывать 65536 портов ввода-вывода.
Права наследуются дочерним процессом, созданным fork(2) (но смотрите ЗАМЕЧАНИЯ).
...
Читать дальше »
|
ИМЯ io_getevents - считывает асинхронные события ввода/вывода из очереди выполнения
ОБЗОР #include <linux/aio_abi.h> /* определяет необходимые типы */ #include <linux/time.h> /* определяет «struct timespec» */
int io_getevents(aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов io_getevents() пытается считать, по меньшей мере, от min_nr до nr событий из очереди выполнения контекста AIO, указанном в ctx_id.
В аргументе timeout задаётся время (относительное значение) ожидания событий в виде структуры:
struct timespec { time_t tv_sec; /* секунды */ long tv_nsec; /* наносекунды [0 .. 999999999] */ };
...
Читать дальше »
|
ИМЯ io_destroy - уничтожает асинхронный контекст ввода-вывода
ОБЗОР #include <linux/aio_abi.h> /* определяет необходимые типы */
int io_destroy(aio_context_t ctx_id);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов io_destroy() пытается отменить все невыполненные асинхронные операции ввода-вывода, относящиеся к ctx_id, заблокировать выполнение выполнение всех операций, которые нельзя отменить, и уничтожить ctx_id.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ В случае успешного завершения io_destroy() возвращает 0. В случае ошибки смотрите ЗАМЕЧАНИЯ.
ОШИБКИ EFAULT Указанный контекст некорректен.
EINVAL Некорректен контекст AIO, указанный ctx_id.
ENOSYS io_destroy() не
...
Читать дальше »
|
ИМЯ ioctl_userfaultfd - создаёт файловый дескриптор для обработки страничных ошибок в пользовательском пространстве
ОБЗОР #include <sys/ioctl.h>
int ioctl(int fd, int cmd, ...);
ОПИСАНИЕ Над объектом userfaultfd (созданным вызовом userfaultfd(2)) можно выполнять различные операции ioctl(2) используя вызовы вида:
ioctl(fd, cmd, argp); Здесь fd — файловый дескриптор, ссылающийся на объект userfaultfd, cmd — одна из команд, перечисленных ниже, а argp — указатель на структуру данных, используемую командой cmd.
Операции ioctl(2) описаны ниже. Операции UFFDIO_API, UFFDIO_REGISTER и UFFDIO_UNREGISTER для настройки поведения userfaultfd. Эти операции позволяют вызывающему выбрать какие свойства нужно включить и какие типы событий будут доставляться приложению. О
...
Читать дальше »
|
ИМЯ ioctl_tty - вызовы ioctl для терминалов и последовательных портов
ОБЗОР #include <termios.h>
int ioctl(int fd, int cmd, ...);
ОПИСАНИЕ Вызов ioctl(2) для терминалов и последовательных портов принимает много разных параметров команд. Большинство из них требуют при этом третий аргумент разных типов, далее по тексту называемый argp или arg.
Вызовы ioctl используются только в непереносимых программах. По возможности старайтесь везде использовать интерфейс POSIX, описанный в termios(3).
Определение и установка атрибутов терминала TCGETS struct termios *argp Эквивалентно tcgetattr(fd, argp). Получить текущие настройки последовательного порта.
TCSETS const struct termios *argp Эквивалентно tcsetattr(fd, TCSANOW, argp). Установить новые текущие настройки по
...
Читать дальше »
|
ИМЯ ioctl_ns - операции ioctl() для пространств имён Linux
ОПИСАНИЕ Определение отношений между пространствами имён Следующие операции ioctl(2) позволяют определить порядок отношений между пространствами имён (смотрите user_namespaces(7) и pid_namespaces(7)). Форма вызовов:
new_fd = ioctl(fd, request);
Здесь в каждом случае fd ссылается на файл /proc/[pid]/ns/*. При успешном выполнении обе операции возвращают новый файловый дескриптор.
NS_GET_USERNS (начиная с Linux 4.9) Возвращает файловый дескриптор, ссылающийся на пространство имён пользователя, которое владеет пространством имён, на которое ссылается fd.
NS_GET_PARENT (начиная с Linux 4.9) Возвращает файловый дескриптор, который ссылается на родительское пространство имён для пространства имён, на которое ссылается fd. Эта опера
...
Читать дальше »
|
ИМЯ ioctl_iflags - операции ioctl() для флагов иноды
ОПИСАНИЕ Различные файловые системы Linux поддерживают флаги иноды — атрибуты, которые изменяют смысл файлов и каталогов. Эти флаги можно запросить и изменить с помощью двух операций ioctl(2):
int attr; fd = open("pathname", ...);
ioctl(fd, FS_IOC_GETFLAGS, &attr); /* помещает текущие флаги в 'attr' */ attr |= FS_NOATIME_FL; /* изменяет полученную битовую маску */ ioctl(fd, FS_IOC_SETFLAGS, &attr); /* обновляет флаги иноды, на которую указывает 'fd' */
Команды оболочки lsattr(1) и chattr(1) предоставляют интерфейс к этим двум операциям, позволяя пользователю просматривать и изменять флаги иноды, связанной с файлом.
Поддерживаются следующие флаги (показаны вместе с соответствующей буквой, которой обозначается флаг в
...
Читать дальше »
| « 1 2 ... 34 35 36 37 38 ... 59 60 » |