Provided by: manpages-pt-dev_20040726-4_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)