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)

生成一个等待队列头wait_queue_head_t,名字为name

posted @ 2019-02-21 10:55  Genebrother  阅读(302)  评论(0)    收藏  举报