Voltar à lista
Linux x86_64Sistema & diversos#313

finit_module

Carrega um módulo do kernel a partir de um descritor de arquivo, em vez de um buffer já em memória.

Descrição

Evita ter que ler o módulo inteiro para a memória do processo antes de carregá-lo, como `init_module` exige — o kernel lê diretamente do arquivo referenciado pelo descritor.

man 2Desde o kernel 3.8

Assinatura

int finit_module(int fd, const char * param_values, int flags);

Parâmetros

ParâmetroTipoDescrição
fdintDescritor de arquivo aberto no módulo (imagem ELF).
param_valuesconst char *String de parâmetros do módulo.
flagsintMODULE_INIT_IGNORE_MODVERSIONS, MODULE_INIT_IGNORE_VERMAGIC.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fdint
rsiargumento 2param_valuesconst char *
rdxargumento 3flagsint

Valor de retorno

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

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EEXIST(17)
Arquivo já existe.
EPERM(1)
Operação não permitida (falta de privilégio).
EBADMSG(74)
Mensagem inválida/corrompida.

Relacionadas