Voltar à lista
Linux x86_64Dispositivos & ioctl#173

ioperm

Concede ou revoga permissão para acessar um intervalo de portas de E/S x86 diretamente do espaço de usuário.

Descrição

Ajusta o bitmap de permissões de portas de E/S da tarefa, permitindo instruções `in`/`out` em modo usuário para o intervalo especificado sem precisar de `iopl(3)`. Usado por drivers legados em espaço de usuário (ex.: X server antigo, alguns utilitários de hardware).

Header: sys/io.hman 2

Nota

Exige CAP_SYS_RAWIO. Disponível apenas em x86.

Assinatura

int ioperm(unsigned long from, unsigned long num, int turn_on);

Parâmetros

ParâmetroTipoDescrição
fromunsigned longPrimeira porta de E/S do intervalo.
numunsigned longQuantidade de portas a partir de `from`.
turn_onint1 para conceder acesso, 0 para revogar.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fromunsigned long
rsiargumento 2numunsigned long
rdxargumento 3turn_onint

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EINVAL(22)
Argumento inválido.
ENOSYS(38)
Chamada de sistema não implementada nesta versão do kernel.
EPERM(1)
Operação não permitida (falta de privilégio).
EIO(5)
Erro de E/S físico.

Relacionadas

Mesma categoria