XXX
发布时间:2013-03-21 11:32:59
#define MACRO_NAME(para) do{macro content}while(0)的格式,总结了以下几个原因:1,空的宏定义避免warning: #define foo() do{}while(0) 2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3,如果出现在判断语句过后的宏,这样可以保证作为一个整体来是实现: #define foo(x) \&......【阅读全文】
发布时间:2013-03-21 11:27:35
大家用source insight看linux源码的时候都遇到这么一个麻烦,makefile和kconfig中的文字在搜索的时候不能找到,这是因为source insight默认是不选makefile的,也没有konfig这种类型的文件。下面就讲一下 如何添加makefile: 打开Source Insight,在新建工程之前,进入Options -> Document Options-> 点击Document Type的下拉框,然后选择Make File,在右边的File Filter中,在原先的*.mak后面加上一个分号,即多个不同过滤规则以分号间隔......【阅读全文】
发布时间:2013-03-21 11:24:18
点击(此处)折叠或打开#include <linux/types.h> //dev_t,MAJOR,MINOR,MKDEV#include <linux/fs.h> //file_operations,struct file,struct indoe,register/unregister_chrdev,register/alloc/unregister_chrdev_regino,#include <linux/cdev.......【阅读全文】
发布时间:2013-03-21 11:23:48
关于内核模块挂载出现“no symbol version for”问题的研究 (2011-11-19 09:18) 标签: Linux no symbol version 分类: Linux设备驱动程序 前几天一个同事问我:如果一个模块要调用另一个模块的函数,要不要做什么特别的处理?我当时只是知道需要将被调用的函数EXPORT_SYMBOL();。但是由于具体的模块实验自己还没有做过,我就立马做了一个给他看,自己也验证一下。这实验一做,问题就来了:虽然在编译通过了(有警告:WARNING......【阅读全文】