设为首页 加入收藏

TOP

驱动开发学习笔记---块设备(二)
2023-07-23 13:32:06 】 浏览:115
Tags:习笔记 ---
void blk_start_request(struct request *req)

③、一步到位处理请求

blk_fetch_request 函数来一次性完成请求的获取和开启

struct request *blk_fetch_request(struct request_queue *q)
{
struct request *rq;
?
rq = blk_peek_request(q);
if (rq)
blk_start_request(rq);
return rq;
}  

3、 bio 结构

每个 request 里面会有多个 bio, bio 保存着最终要读写的数据、地址等信息。上层应用程序对于块设备的读写会被构造成一个或多个 bio 结构, bio 结构描述了要读写的起始扇区、要读写的扇区数量、是读取还是写入、页偏移、数据长度等等信息。上层会将 bio 提交给 I/O 调度器,I/O 调度器会将这些 bio 构造成 request 结构,而一个物理存储设备对应一个 request_queue,request_queue 里面顺序存放着一系列的 request。新产生的 bio 可能被合并到 request_queue 里现有的 request 中,也可能产生新的 request,然后插入到 request_queue 中合适的位置,这一切都是由 I/O 调度器来完成的。

 
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇痞子衡嵌入式:MCUXpresso IDE下.. 下一篇驱动开发学习笔记---malloc、kmal..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目