我正在尝试编写2个简单的内核模块:acumulator.c
和client.c
。
acumulator.c有2个功能:void acumulate();
和int consult();
加上init_module
和cleanup_module
。
acumulate
函数在每次调用时将变量acumulador
的值递增1,consult
函数返回变量acumulador
的当前值。
在模块Client.c
中调用这两个函数。
Client.c
只有init_module()
和cleanup_module
,当init_module
开始时,它会调用acumulate
函数和consult
函数这些是在acumulator.c
当我编译文件时:acumulator.c
它编译没有错误但是client.c
给了我2个错误:
Implicit declaration of function acumulate()
Implicit declaration of function consult()
我不知道如何解决这个问题。
我的内核版本是2.6.38
acumulator.c
的代码是:
static int acumulador = 0;
void acumulate() {
acumulador += 1;
}
int consult() {
return acumulador;
}
int init_module() {
printk("\loading module acumulator\n");
return 0;
}
void cleanup_module() {
printk("\unloading modul acumulator\n");
}
并且Client.c
的代码是
int init_module()
{
acumulate();
printk("\loading module client:\Acumulate Value is = %d\n", consult());
return 0;
}
void cleanup_module()
{
printk("\unloading modul client\n");
}