linux内核驱动源码中EXPORT_SYMBOL/LIST_HEAD/DEFINE_MUTEX/ DECLARE_WAIT_QUEUE_HEAD的含义是什么
把内核函数的符号导出,也可以理解成将函数名作为符号导出;符号的意思就是函数的入口地址,或者说是把这些符号和对应的地址保存起来的,在内核运行的过程中,可以找到这些符号对应的地址的。
在1.c里面定义了一个
EXPORT_SYMBOL(input_allocate_device);
在2.c的驱动文件中可以直接调用input_allocate_device这个函数
主要使用于下面这样的场合:
有两个我们自己的模块,其中Module B使用了Module A中的export的函数,因此在Module B的Makefile文件中必须添加:
KBUILD_EXTRA_SYMBOLS += /path/to/ModuleA/Module.symvers
export KBUILD_EXTRA_SYMBOLS
原文:https://blog.csdn.net/kwame211/article/details/77944240
https://blog.csdn.net/zjy900507/article/details/72272389
LIST_HEAD
LIST_HEAD 定义一个链表
DEFINE_MUTEX
DEFINE_MUTEX是来自于include/linux/mutex.h中的一个宏,用它可以定义一把互斥锁,
DECLARE_WAIT_QUEUE_HEAD(name)

浙公网安备 33010602011771号