Provided by: manpages-pt-dev_20040726-2_all bug

NOME

       iopl - altera o nível de privilégio de E/S

SINOPSE

       #include <unistd.h> /* for libc5 */
       #include <sys/io.h> /* for glibc */

       int iopl(int level);

DESCRIÇÃO

       iopl  altera  o  nível de privilégio de E/S de um processo aatual, como
       especificado em level.

       Esta  chamada  é  necessária  para  permitir  a   compatibilidade   que
       servidores  X  8514  rodem  no  Linux.  Desde  então estes servidores X
       acessam todas as portas de E/S do  65536,  a  chamada  ioperm  não  foi
       suficiente.

       Em adição a concessão de acesso as portas de E/S irrestrito, rodando em
       um  alto  nível  de  privilégio  de  E/S  também  permite  ao  processo
       desabilitar  interrupções. Isto irá provavelmente derrubar o sistema, e
       não é recomendado.

       Permissões são herdadas através de fork e exec.

       O nível de privilégio de E/S para um processo normal é 0.

VALORES RETORNADOS

       Em caso de sucesso, zero é retornado. Caso contrário, -1 é retornado, e
       errno é selecionado adequamente.

ERROS

       EINVAL level é maior que 3.

       EPERM  O usuário autal não é o superusuário.

NOTAS VINDAS DO FONTE DO KERNEL

       iopl ela tem que ser usada quando você procura acessar as portas de E/S
       além do intervalo 0x3ff: para obter o mapa de bits  completo  do  65536
       você  precisaria  de 8kB de mapa de bits/processo,o que é um excesso de
       bits.

DE ACORDO COM

       iopl é específica do Linux e não deveria ser  usada  em  processos  que
       pretendem ser portáveis.

NOTAS

       Libc5  trata  com  uma  chamada  de  sistema e tem um tipo primitivo em
       <unistd.h>.  Glibc1 não tem um  tipo  primitivo.  Glibc2  tem  um  tipo
       primitivo  em <sys/io.h> e em <sys/perm.h>.  Evitar o segundo, ele está
       disponível somente nos i386.

VEJA TAMBÉM

       ioperm(2)