我正在开发一个Linux驱动程序可加载模块,我必须在我的驱动程序中使用另一个设备.(堆叠在另一个驱动程序上的驱动程序的种类)
如何在我的驱动程序中调用/使用其他驱动程序?我认为它们都在内核中,所以可能有一种方法可以直接使用另一个驱动程序.
您将需要EXPORT_SYMBOL
(或EXPORT_SYMBOL_GPL
)宏.例如:
/* mod1.c */ #include#include #include "mod1.h" .... void mod1_foo(void) { printk(KERN_ALERT "mod1_foo\n"); } EXPORT_SYMBOL(mod1_foo); /* mod2.h */ .... extern void mod1_foo(void); .... /* mod2.c */ #include #include #include "mod1.h" #include "mod2.h" int init_module(void) { mod1_foo(); ...
这应该是一帆风顺的,但你必须小心命名空间 - 踩到别人的内核模块符号会很不幸.