linux块设备驱动之相关结构体间的关系

原创 2015年07月08日 21:29:47

        根据上一篇blog:linux块设备驱动之相关结构体

        前一篇blog中已经贴出这些相关的结构体,但是其中关系还是没有说的很清楚。现在来理一理它们之间的关系,首先是struct gendisk 和 struct block_device 以及struct hd_struct;其中struct  gendisk 表示的是一个块设备,而struct block_device表示是一个分区设备(也可以表示块设备),struct hd_struct表示的是一个分区信息;它们的关系如下面。

       

        下面是struct request 和 struct bio 的关系;其实还有一副图没有贴出,就是表示一个块设备只有一个队列,而该队列中有多个request,每个request都代表了一个请求。而request结构体真正的有效数据是bio,其实request的请求都是bio请求。如果不是硬盘之类的设备,比如闪存、ssd之类不需要对request请求进行排列顺序(因为硬盘请求是要移动磁头的,所以会在队列里把所有的request请求进行排序,一般我们熟悉的就是电梯算法;但是像ssd这样的设备是不需要用磁头的,可以随时访问任何地址,没有什么磁道之类的,也就不需要电梯算法对request请求进行排序之类的。所以不用request,直接用bio进行访问请求)

       


        转载地址:linux块设备驱动之相关结构体间的关系


Linux设备驱动--块设备(二)之相关结构体

上回最后面介绍了相关数据结构,下面再详细介绍 块设备对象结构 block_device 内核用结构block_device实例代表一个块设备对象,如:整个硬盘或特定分区。如果该结构代表一个分区,...

linux内核字符设备驱动相关的函数以及结构体

1. struct cdev {          struct kobject kobj;          struct module *owner;          const stru...

Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析

前面我们学习了字符设备结构体cdev Linux 字符设备驱动开发 (一)—— 字符设备驱动结构(上)  下面继续学习字符设备另外几个重要的数据结构。        先看下面这张图,这是Linux ...

Linux 字符设备驱动结构(一)—— cdev 结构体、设备号相关知识解析

一、字符设备基础知识 1、设备驱动分类       linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序: 字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内...

s3c2410 framebuffer 设备驱动 相关结构体

include/linux/fb.h struct fb_info { int node; /* node成员域标示了特定的FrameBuffer, * 实际上也就是一个Frame...

framebuffer 设备驱动 相关结构体

include/linux/fb.h    struct fb_info {      int node;           /* node成员域标示了特定的FrameBuffer,        ...

LCD设备驱动 相关结构体

1.fb_info 结构体  帧缓冲设备最关键的一个数据结构体是fb_info 结构体(为了便于记忆,我们把它 简称为“FBI”),FBI中包括了关于帧缓冲设备属性和操作的完整描述,这个结构体的 定义...

阅读Linux设备驱动模型源码之 device结构体成员详解

【前言】         我们学习 Linux 设备驱动,很多人在一开始往往急于想找到快速入门的方法,希望能有一个提纲挈领的使用说明来帮助我们快速理解 Linux 设备驱动的设计思路和框架,从而摆脱掉...

linux-2.6.30.4之设备驱动结构体 Cdev【原创】

linux-2.6.30.4之设备驱动结构体 Cdev【原创】     在做linux-2.6.30.4版本的驱动之前,首先我们要抛弃Linux-2.4版本内驱动方式的影响。因为该lin...

linux设备驱动中file_operations结构体分析

struct module *owner 第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块的指针. 这个成员用来在它的操作还在被使用时阻止模块被卸载. 几...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux块设备驱动之相关结构体间的关系
举报原因:
原因补充:

(最多只允许输入30个字)