chamada de função do módulo do kernel

5

Eu escrevo um módulo do kernel que tem a função inicializar e finalizar. Eu quero mais uma função e quero chamá-lo do processo de espaço do usuário a qualquer momento que eu quiser.

É aplicável? Se sim, como?

Estou trabalhando no CentOS 5.2 e no kernel personalizado, corrigidos do linux 2.6.18.

EDITAR: Para deixar claro, eu quero escrever uma função no módulo do kernel e chamar essa função do arquivo source.c regular.

    
por ykulah 12.03.2013 / 18:11

2 respostas

2

Fazer um módulo do kernel que pode usar o sistema de arquivos /proc parece funcionar para você. O IBM developerWorks possui um artigo sobre esse tópico. Eu trabalhei com o código alguns anos atrás, e funcionou na época. O artigo é datado de 2006 e parece se aplicar aos kernels do Linux 2.6.

O problema que posso prever com o uso de "arquivos" no sistema de arquivos /proc para fazer com que seu módulo faça seu trabalho é que uma API de estilo abrir / ler / fechar provavelmente não corresponde ao que você deseja fazer. Você pode ter que usar um open () em um arquivo /proc para significar "executar WBINVD" ou algo não óbvio como esse.

    
por 12.03.2013 / 20:45
1

A coisa mais simples a fazer é ter um dispositivo de caractere, e escrever nesse dispositivo, então a leitura do driver é chamada e faz o processamento no callback de leitura do dispositivo de caractere no kernel.

    
por 14.03.2013 / 12:29