2.block_device_operations结构体

2023-11-07

在块设备驱动中,有一个类似于字符设备驱动中file_operations结构体的block_device_operations结构体,他是对块设备操作的集合。
1.block_device_operations结构体
2.打开和释放

int (*open)(struct block_device *,fmode_t);
void (*release)(struct gendisk *,fmode_t);

3.I/O控制

int (*ioctl)(struct block_device *,fomede_t,unsigned,unsigned long);
int (*compat_ioctl)(struct block_device *,fomde_t,unsigned,unsigned long);

上述函数是ioctl()系统调用的实现,块设备包含大量的标准请求,这些请求由Linux通用块设备层处理,因此大部分块设备驱动的ioctl()函数相当短,当一个64位系统内的32位进程调用ioctl()的时候,调用的是compat_ioctl()
4.介质改变

int (*media_changed)(struct gendisk *gd);

被内核调用以检查驱动器中的介质是否已经改变,该函数已经被checkout_events()替代。老的linux在用户空间里轮询可移动磁盘介质是否存在,而新的内核则在内核空间里轮询。
check_events()函数检查有没有挂起的事件,如果有DISK_event_media_changeDISK_EVENT_EJECT_REQUEST事件,就返回。
5.使介质有效

int (revalidate_disk)(struct gendisk *gd);

revalidate_disk()函数被调用用响应一个介质改变,他给驱动一个机会来进行必要的工作以使新介质准备好。
6.获得驱动器信息

int (*getgeo)(struct block_device*,struct hd_geometry *);

该函数根据驱动器的几何信息填充一个hd_geometry结构体,hd_geometry结构体包含磁头、扇区、柱面等信息,其定义在include/linux/hdreg.h头文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2.block_device_operations结构体 的相关文章

随机推荐

  • DLL的引入方式(DllImport的特殊引入方式)

    Dll引入方式有四种 1 就是普通的比如一个解决方案中有多个项目 将其他项目的引入到该项目中 2 就是软件自带的程序集的引入 3 就是使用dll的引入 普通的本身就是VS的dll文件 4 就是使用dll的引入 不是属于该语言的vs的Dll文
  • 减少GC开销 &&可能出现内存泄漏的情况&&两个对象相互引用会不会被GC

    如何降低java GC开销 减少GC次数 其他详见 如何减少垃圾回收的次数 jvm虚拟机 1 选择一个较好的GC器 Java9在2017年九月发布 G1 Garbage First 垃圾回收器 成为 HotSpot 虚拟机默认的垃圾回收器
  • 还没用熟 TypeScript 社区已经开始抛弃了

    前端Q 我是winty 专注分享前端知识和各类前端资源 乐于分享各种有趣的事 关注我 一起做个有趣的人 公众号 点击上方 前端Q 关注公众号 回复加群 加入前端Q技术交流群 根据 rich harris talks sveltekit an
  • C# 加密解码各种方法

    目录 一 加密解密介绍 二 MD5 三 SHA x系列 四 DES 3DES 五 RC2 六 AES 七 Base64 八 Rsa 九 参考文献 一 加密解密介绍 不可逆加密 MD5 SHA x系列对称式加密 Des 3DES RC2 AE
  • “加密系统”的巨坑

    在来公司之前 我压根就不知道这世界上原来还有 加密系统 这种软件产品存在 学名叫数据防泄漏 也怪我孤陋寡闻了 因为之前在厦门从来没听说过哪家公司有在用加密系统 当然 每家公司都有自己独特的管理需求 也许公司这边也确实重要信息比较多 核心机密
  • java自定义排序

    java中sort的自定义排序 一 Arrays sort nums 的一般用法 二 最大数 力扣179 三 合并区间 力扣59 四 总结 一 Arrays sort nums 的一般用法 整个数组按照升序排序 若需要降序排序 将数组转置即
  • ng-model数据绑定实例

    ng mode的作用是数据绑定 placeholder是默认显示值 在input里面输入任何字符都会对应显示到你下面ng model对应的name中 name
  • Python 3基础教程19-模块导入语法

    本文开始介绍模块导入的一些基本语法 我们现在还在Python自带的IDLE编辑器里写Python代码 如果你要需要一个功能 例如build in的模块 那么你就需要先导入这个模块 然后才能使用这个模块相关方法 不像在Pycharm编辑器了
  • 剑指 Offer 18. 删除链表的节点

    题目链接 18 删除链表的节点 Definition for singly linked list struct ListNode int val ListNode next ListNode int x val x next NULL c
  • 良品铺子年报:将冲击百亿营收门槛 斥资1.8亿现金分红

    雷递网 雷建平 3月23日报道 良品铺子 603719 SH 日前公布2021年度业绩 财报显示 良品铺子2021年公司营收93 24亿元 较2020年的78 94亿元增长18 11 近五年营收翻番 这意味着 良品铺子2022年将冲击百亿门
  • local_irq_save和 local_irq_disable

    如果你要禁止所有的中断该怎么办 在2 6内核中 可以通过下面两个函数中的其中任何一个关闭当前处理器上的所有中断处理 这两个函数定义在
  • constraints java_java-来自javax.validation.constraints的注释不起作用

    java 来自javax validation constraints的注释不起作用 使用id 如name NotNull等 中的注释需要什么配置 这是我的代码 import javax validation constraints Not
  • 深入理解Solidity——创建合约

    Solidity的合约类似于面向对象语言中的类 它们包含存放持久化数据的状态变量和可修改这些变量的函数 调用不同的合约实例上的函数将执行EVM函数调用 从而切换上下文 使得状态变量不可访问 创建合约 Creating Contracts 合
  • 支付宝商户转账给支付宝个人

    首先引入支付宝的jar
  • TorchServe部署pytorch模型

    文件准备 1 model file model py 参考 https github com pytorch serve blob master examples object detector maskrcnn model py 2 se
  • GODIVA论文阅读

    论文链接 GODIVA Generating Open DomaIn Videos from nAtural Descriptions 文章目录 摘要 引言 相关工作 Video to video generation Text to im
  • Hadoop3.2.*安装

    CentOS8系统安装Hadoop 3 2 1伪分布式配置 Hadoop3 2 1版本的环境搭建 Java提升营 博客园 TOC 实验目的 在 Linux VM15pro CentOS8 环境下完成Hadoop 3 2 1伪分布式环境的搭建
  • 格密码学习,抽代基础学习(二)

    今天找到了一个比较新手友好的slides 结合lec1和学姐的笔记一起看 full rank lattice 满格 R n mathbb R n Rn的概念 n维度实数集 每个元素是n维向量 向量中的每个分量是实数 Z
  • 数据分析时,进行数据建模该如何筛选关键特征?

    1 为什么要做关键特征筛选 在数据量与日俱增的时代 我们收集到的数据越来越多 能运用到数据分析挖掘的数据也逐渐丰富起来 但同时 我们也面临着如何从庞大的数据中筛选出与我们业务息息相关的数据 大背景 从数据中挖掘潜在的规律 辅助我们在实际业务
  • 2.block_device_operations结构体

    在块设备驱动中 有一个类似于字符设备驱动中file operations结构体的block device operations结构体 他是对块设备操作的集合 1 block device operations结构体 2 打开和释放 int