__register_chrdev_region分析(简单字符设备驱动在内核的工作原理)
__register_chrdev_region分析(简单字符设备驱动在内核的工作原理)
文章《随笔–Linux字符设备驱动开发基础》字符设备驱动注册代码分析一节中我们对旧接口
register_chrdev和新接口register_chrdev_region/alloc_chrdev_region进行了对比,发现其内部都调用了__register_chrdev_region,通过分析归纳出简单字符设备驱动在内核的工作原理
下列代码位于/fs/Char_dev.c

__register_chrdev_region最后返回一个char_device_struct结构体类型的指针变量(存放一个char_device_struct结构体类型的变量的地址),且其值(地址)被放入到内核维护的一个char_device_struct结构体类型的指针数组的某一元素中。应用层以设备号为索引去遍历指针数组从而找到对应驱动,具体如下(即简单字符设备驱动在内核的工作原理):


浙公网安备 33010602011771号