Código comum para kernel e userspace [closed]

1

Estou trabalhando em um projeto Linux. Eu quero ter algum código (para ser específico, uma estrutura) e um arquivo de cabeçalho (minha própria implementação) comum ao kernel e ao espaço do usuário. Alguém pode me dizer como implementar isso?

    
por ch2301 22.06.2014 / 13:31

1 resposta

2

A resposta simples é incluir apenas o cabeçalho em ambas as partes (separadamente compiladas) do projeto. Você pode fazer isso como quiser; uma hierarquia óbvia de diretórios pode parecer:

project/
    userspace_stuff/
    kernal_stuff/
    inc/
       project_namespace/

O inc/project_namespace é opcional - você poderia facilmente colocar o cabeçalho no nível superior e usar #include "../myheader.h" nos arquivos de origem nos dois subdiretórios. Pessoalmente, acho que usar caminhos relativos com includes pode ficar confuso, então eu gosto de ter um diretório inc e caminhos absolutos ( #include <project_namespace/myheader.h> ), facilitado pela organização de um makefile de nível superior com algo como:

INC = -Iinc
CFLAGS += $(INC)
    
por 22.06.2014 / 17:50