iopl - меняет уровень привилегий ввода-вывода
НАЗВАНИЕiopl - меняет уровень привилегий ввода-вывода
СИНТАКСИС
#include
int iopl(int level);
ОПИСАНИЕ
iopl изменяет уровень привилегий ввода/вывода текущего
процесса в соответствии с level. Этот вызов необходим для
того, чтобы 8514-совместимые X-серверы могли работать под
управлением Linux. Этим X-серверам необходим доступ ко
всем 65536-и портам ввода/вывода, соответственно, им
недостаточно вызова ioperm . В дополнение к тому, что на
высоком уровне привилегий процессу разрешен неограниченный
доступ к портам ввода/вывода, он может также запретить
системные прерывания. Скорее всего, это приведет к сбою
системы, поэтому использование этой возможности не
рекомендуется. Эти права наследуются через fork и exec.
Стандартный уровень привилегий ввода/вывода обычного
процесса равен 0.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При удачном завершении работы возвращаемое значение равно
0. При ошибке оно равно -1, а переменная errno приобретает
соответствующее значение.
КОДЫ ОШИБОК
EINVAL Значение level больше 3.
EPERM Пользователь процесса - не суперпользователь.
СООТВЕТСТВИЕ СТАНДАРТАМ
iopl - это функция, специфичная для Linux. Не
рекомендуется использовать ее в программах, переносимых на
другие системы.
ЗАМЕЧАНИЯ
Libc5 воспринимает эту функцию как системный вызов и имеет
прототип в . Glibc1 не имеет прототипа этой
функции. Glibc2 имеет прототип в и в
. Не используйте последнее, этот файл имеется
только на i386.