网站首页 > linux / 正文
l 块设备主要针对存储设备,块设备的驱动主要就是存储设备的驱动;
l 块设备以块为单位进行读写访问,它是linux虚拟文件系统传输的基本单位,
l 块设备可以随机访问,块设备使用缓存区存放数据,等到一定条件后一次性写入块设备,这样做可以提高块设备的使用寿命。
l 块设备驱动框架
Block_device结构体表示块设备,在这个结构体中最重要的是bd_disk成员变量,该变量为gendisk结构体指针类型,
l 块设备的注册
块设备注册函数register_blkdev,
Int register_blkdev(unsigned int major,const char *name);
Major:主设备号
Name:块设备名字
返回:如果major的值在1到255之间表示自定义主设备号,那么返回0表示注册成功,如果返回负数表示注册失败。
l 注销设备
当块设备不需要使用了,需要注销掉
Void unregister_blkdev(unsigned int major,const char *name)
Major:要注销的块设备主设备号
Name:要注销的块设备名字
l 块设备I/O请求
请求队列request_queue,内核对块设备的读写都发送到请求队列request_queue中,request又包含了bio,bio保存了读写相关数据,比如从块设备哪个地址开始读取,读取的长度,等信息,
Request_queue *blk_init_queue(request_fn_proc *rfn,spinlock_t *lock)
Rfn:请求处理函数指针;
lock:自旋锁指针,
Tags:linux设备驱动开发
猜你喜欢
- 2024-11-26 Intel开发人员用AMD代码优化Linux驱动:部分游戏帧率提升10%
- 2024-11-26 Linux 网络设备驱动开发《网络分层结构》
- 2024-11-26 「正点原子Linux连载」第五十五章设备树下的platform驱动编写
- 2024-11-26 linux驱动开发-1.概念了解
- 2024-11-26 基于Linux的tty架构及UART驱动详解
- 2024-11-26 linux驱动开发-2.驱动框架
- 2024-11-26 linux 内核之驱动开发需要掌握的知识
- 2024-11-26 英伟达开源Linux图形驱动实测,性能媲美专有驱动
- 2024-11-26 从串口驱动到Linux驱动模型,想转Linux的必会
- 2024-11-26 「正点原子Linux连载」第四十一章嵌入式Linux LED驱动开发实验