Linux x86_64Memória#330
pkey_alloc
Aloca uma nova memory protection key (MPK) para uso com pkey_mprotect.
Descrição
Reserva uma das (poucas) chaves de proteção disponíveis em hardware para uso pelo processo.
man 2Desde o kernel 4.9
Nota
Disponível apenas em hardware com suporte a Intel MPK (ou equivalente); retorna ENOSYS/falha em CPUs sem esse recurso.
Assinatura
int pkey_alloc(unsigned int flags, unsigned int access_rights);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| flags | unsigned int | Reservado; deve ser 0. |
| access_rights | unsigned int | Direitos de acesso iniciais da chave (PKEY_DISABLE_ACCESS, PKEY_DISABLE_WRITE). |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | flagsunsigned int |
| rsi | argumento 2 | access_rightsunsigned int |
Valor de retorno
Um identificador de chave em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- ENOSPC(28)
- Sem espaço livre no dispositivo.