Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 ...
块设备驱动无非就是提供一个接口供vfs调用实现磁盘读写等功能。 首先每个块设备驱动都要创建一个gendisk结构,保存了大部分信息。很明显的有主,次设备号,磁盘分区信息,和一个请求队列request_queue等。 struct gendisk { /* major, first_minor and minors are input parameters only, * don't use directly. Use disk_devt() and disk_max_parts(). */ int major; /* major number of driver */ int first_minor; i...
块设备驱动分析,基于sbull 开始之前先来了解这个块设备中的核心数据结构: struct sbull_dev { int size; /* Device size in sectors */ u8 *data; /* The data array */ short users; /* How many users */ short media_change; /* Flag a media change? */ spinlock_t lock; /* For mutua...
块设备驱动(三) 三、不用一个请求队列 前面, 我们已经讨论了内核所作的在队列中优化请求顺序的工作; 这个工作包括排列请求和, 或许, 甚至延迟队列来允许一个预期的请求到达. 这些技术在处理一个真正的旋转的磁盘驱动器时有助于系统的性能. 但是, 使用一个象 sbull 的设备它们是完全浪费了. 许多面向块的设备, 例如闪存阵列, 用于数字相机的存储卡的读取器, 并且 RAM 盘真正地有随机存取的性能, 包含从高级的请求队列逻辑中获...
块设备驱动(二) 3、排队函数 有非常少的函数来操作队列中的请求 -- 至少, 考虑到驱动. 你必须持有队列锁, 在你调用这些函数之前. 返回要处理的下一个请求的函数是 elv_next_request: struct request *elv_next_request(request_queue_t *queue); 我们已经在简单的 sbull 例子中见到这个函数. 它返回一个指向下一个要处理的请求的指针(由 I/O 调度器所决定的)或者 NULL 如果没有请求要处理. elv_next_request 留这个请求在队列上...
块设备驱动(一) 概括: 块设备驱动第一个工作通常是注册自己到内核,是通过register_blkdev完成的,虽然register_blkdev可用来获得一个主设备号,但是它不使磁盘驱动器对系统可用,有一个分开的注册接口你必须使用来管理单独的驱动器,使用这一接口用到block_device_operations和gendisk结构体,在linux内核中,使用gendisk(通用磁盘)结构体来表示1个独立的磁盘设备(或分区)。 块设备驱动的核心是请求处理函数和“制造请求”...
块设备驱动分析,基于sbull 开始之前先来了解这个块设备中的核心数据结构: struct sbull_dev { int size; /* Device size in sectors */ u8 *data; /* The data array */ short users; /* How many users */ short media_change; /* Flag a media change? */ spinlock_t lock; /* For mutua...
第7章 +---------------------------------------------------+ | 写一个块设备驱动 | +---------------------------------------------------+ | 作者:赵磊 | | email: zhaoleidd@hotmail.com | +---------------------------------------------------+ | 文章版权归原作者所有。 | | 大家可以自由转...
第6章 +---------------------------------------------------+ | 写一个块设备驱动 | +---------------------------------------------------+ | 作者:赵磊 | | email: [email]zhaoleidd@hotmail.com[/email] | +---------------------------------------------------+ | 文章版权归原作者所有。 | |...