Man page - ioperm(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

ioperm

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
ВЕРСИИ
СТАНДАРТЫ
ИСТОРИЯ
ПРИМЕЧАНИЯ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

ioperm - устанавливает права на работу с портами ввода/вывода

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#include <sys/io.h>

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) (но смотрите ЗАМЕЧАНИЯ). Права сохраняются при вызове execve (2); это полезно для предоставления доступа к портам ввода-вывода непривилегированным программам.

Данный вызов, в основном, предназначен для архитектуры i386. На большинстве других архитектур он не существует или будет возвращать ошибку.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении возвращается 0. При ошибке возвращается -1, а в errno содержится код ошибки.

ОШИБКИ

EINVAL

Неверные значения from или num .

EIO

(на PowerPC) Этот системный вызов не поддерживается.

ENOMEM

Не хватает памяти.

EPERM

Вызывающая нить не имеет достаточно прав.

ВЕРСИИ

glibc имеет прототип ioperm () как в <sys/io.h> , так и в <sys/perm.h> . Избегайте последнего, он доступен только на i386.

СТАНДАРТЫ

Linux.

ИСТОРИЯ

До Linux 2.4 права не наследовались потомком, созданным fork (2).

ПРИМЕЧАНИЯ

В /proc/ioports показываются все порты ввода-вывода, которые выделены в системе в настоящий момент.

СМОТРИТЕ ТАКЖЕ

iopl (2), outb (2), capabilities (7)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .