块设备驱动编写

来源:互联网 发布:java无损压缩图片 编辑:程序博客网 时间:2024/05/29 21:33

块设备驱动程序描述符

块设备通常指一些需要以块(如512字节)的方式写入的设备。

 

块设备驱动程序描述符是一个包含在<linux/blkdev.h>中的blk_dev_struct

 

所有块设备的描述符都存放在表struct blk_dev_struct blk_dev[MAX_BLKDEV]中,每个块设备都对应着数组中的一项,可以用主设备号进行检索。

每当用户进程对一个块设备发出一个读写请求时,首先调用块设备所公用的函数generic_file_read()和generic_file_write()。如果数据存在且缓冲区中或缓冲区还可以存放数据,那么就同缓冲区进行数据交换,否则,系统会将相应的请求队列结构添加到其对应项的blk_dev_struct中。

 

块设备驱动编写流程

1.流程说明

块设备驱动程序可分为注册和使用两部分,块设备驱动程序包括一个request请求队列。它是当内核安排一次数据传输时在列表中的一个请求队列,以最大化系统性能为原则进行排序。

 

2.重要数据结构

大部分块设备驱动程序与设备无关的,内核的开发者一般把相同的代码放在头文件<linux/blk.h>中,通过这种方式可以简化驱动程序的代码,所以每个块设备驱动程序都必须包含这个头文件。

 

 

 

原创粉丝点击