当前位置:  开发笔记 > 运维 > 正文

如何编写Linux驱动模块调用/使用其他驱动模块?

如何解决《如何编写Linux驱动模块调用/使用其他驱动模块?》经验,为你挑选了1个好方法。

我正在开发一个Linux驱动程序可加载模块,我必须在我的驱动程序中使用另一个设备.(堆叠在另一个驱动程序上的驱动程序的种类)

如何在我的驱动程序中调用/使用其他驱动程序?我认为它们都在内核中,所以可能有一种方法可以直接使用另一个驱动程序.



1> Martin Carpe..:

您将需要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();
    ...

这应该是一帆风顺的,但你必须小心命名空间 - 踩到别人的内核模块符号会很不幸.


需要将`extern `添加到mod2.c文件中.
推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有