块设备驱动编写

块设备驱动程序描述符

块设备通常指一些需要以块(如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>中,通过这种方式可以简化驱动程序的代码,所以每个块设备驱动程序都必须包含这个头文件。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值