I've written three kernel modules. A, B, C. B needs some functions from A and C also. How to achieve this. Please be code specific. Any help is appreciated.
1 Answer
Below the function implementation in A, export it:
#include "moduleA_header.h"
int foo(void)
{
printk(KERN_NOTICE "Hi there!\n");
}
EXPORT_SYMBOL(foo);
Make sure that the prototype of your function is declared in a header file that you can include in module B. Also, make sure module A gets loaded before module B.
Just make sure that your include has the path right to the moduleA_header.h file.
6 Comments
mlemboy
Could you please show me the directory structure. Should these modules be in same directory (and also header file too)?
Asblarf
@mahesh The modules don't need to be in the same directory. All you need for that to work is to be able to include the definition of
int foo() into the code of your module B.mlemboy
How to return character arrays? While compiling it says return address of local variable.
Asblarf
@mahesh I am afraid your last comment is beyond the scope of the original question.
mlemboy
So should I ask another question?
|