Linux字符设备驱动程序的框架(新写法)

来源:互联网 发布:淘宝注册商标靠谱吗 编辑:程序博客网 时间:2024/06/07 07:03

这是老版本内核的的Linux驱动注册函数写法:

major = register_chrdev(0, "hello", &hello_fops); /* (major,  0), (major, 1), ..., (major, 255)都对应hello_fops */


新版本内核Linux驱动注册函数写法
#define MAJOR(devid) ((unsigned int) ((devid) >> 20))  /* 主设备号 */

#define MINOR(devid)((unsigned int) ((devid) & MINORMASK))   /* 次设备号,这个定义在内核头文件中 */


static struct cdev hello_cdev;   /* 定义cdev类型的一个结构体变量 */



dev_t  devid;                                           / * 存放主设备号和次设备号 主设备号为高12位,次设备号为低20位 */
MINOR(devid)                         /*取出次设备号*/
MAJOR(devid)                      /*取出主设备号*/
MKDEV(major, 0)                  /*把主设备号和次设备号组合成一个dev_t类型的设备号,这里取得次设备号是0*/

下面给出代码就一目了然了:







2 0
原创粉丝点击