Voltar à lista
Linux x86_64Processos & threads#158

arch_prctl

Define ou consulta configurações específicas da arquitetura x86, principalmente os registradores de base FS/GS.

Descrição

Usada pelo runtime do glibc para configurar o ponteiro de thread-local storage (via ARCH_SET_FS), e por depuradores/hipervisores para manipular esses registradores diretamente.

Header: asm/prctl.hman 2

Nota

Exclusiva de x86/x86_64 — outras arquiteturas expõem TLS de formas diferentes (ex.: via clone com CLONE_SETTLS).

Assinatura

int arch_prctl(int code, unsigned long addr);

Parâmetros

ParâmetroTipoDescrição
codeintARCH_SET_FS, ARCH_GET_FS, ARCH_SET_GS, ARCH_GET_GS, ARCH_SET_CPUID, entre outras.
addrunsigned longNovo valor (para SET) ou ponteiro de saída (para GET), conforme `code`.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1codeint
rsiargumento 2addrunsigned long

Valor de retorno

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

Códigos de erro (errno)

EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
EINVAL(22)
Argumento inválido.
ENODEV(19)
Dispositivo inexistente.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas