Linux x86_64Memória#325
mlock2
Como mlock, mas aceita a flag MLOCK_ONFAULT para travar páginas apenas quando forem efetivamente populadas.
Descrição
Evita travar imediatamente páginas que ainda não foram tocadas (e portanto talvez nem alocadas fisicamente), reduzindo o custo inicial de `mlock` sobre grandes regiões esparsas.
Header:
sys/mman.hman 2Desde o kernel 4.4Assinatura
int mlock2(const void * addr, size_t len, int flags);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| addr | const void * | Início da região, alinhado ao tamanho de página. |
| len | size_t | Tamanho da região. |
| flags | int | 0 ou MLOCK_ONFAULT. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | addrconst void * |
| rsi | argumento 2 | lensize_t |
| rdx | argumento 3 | flagsint |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- ENOMEM(12)
- Memória insuficiente para completar a operação.
- EPERM(1)
- Operação não permitida (falta de privilégio).