Linux x86_64Dispositivos & ioctl#172
iopl
Ajusta o nível de privilégio de E/S (I/O privilege level) da thread atual, específico de x86.
Descrição
Controla se instruções de E/S com porta (`in`/`out`) executadas em modo usuário são permitidas, sem passar pelo mecanismo de bitmap de `ioperm`. Historicamente usado por servidores X e drivers em espaço de usuário; hoje quase sempre substituído por interfaces de kernel mais seguras.
Header:
sys/io.hman 2Nota
Exige CAP_SYS_RAWIO. Disponível apenas em x86; em outras arquiteturas a chamada nem existe.
Assinatura
int iopl(int level);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| level | int | Novo nível de privilégio de E/S desejado (0–3). |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | levelint |
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).