我正在开发一个 Linux 驱动程序可加载模块,我必须在我的驱动程序中使用另一个设备。(某种驱动程序堆叠在另一个驱动程序上)
如何在我的驱动程序中调用/使用其他驱动程序?我认为它们都在内核中,所以可能有一种方法可以直接使用另一个驱动程序。
您将需要EXPORT_SYMBOL
(or EXPORT_SYMBOL_GPL
)宏。例如:
/* mod1.c */
#include <linux/module.h>
#include <linux/kernel.h>
#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 <linux/module.h>
#include <linux/kernel.h>
#include "mod1.h"
#include "mod2.h"
int init_module(void)
{
mod1_foo();
...
这应该是一帆风顺的,但是您当然必须小心名称空间 - 踩踏其他人的内核模块符号将是不幸的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)