当前位置: 首页 > news >正文

Linux 块设备操作函数

和字符设备的fil_operations一样,块设备也有操作集,为结构体block_device_operations,此结构体定义在include/linux/blkdev.h中,结构体内容如下:

struct block_device_operations {int (*open) (struct block_device *, fmode_t);void (*release) (struct gendisk *, fmode_t);int (*rw_page)(struct block_device *, sector_t, struct page *, bool);int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);unsigned int (*check_events) (struct gendisk *disk, unsigned int clearing);/* ->media_changed() is DEPRECATED, use ->check_events() instead */int (*media_changed) (struct gendisk *);void (*unlock_native_capacity) (struct gendisk *);int (*revalidate_disk) (struct gendisk *);int (*getgeo)(struct block_device *, struct hd_geometry *);/* this callback is with swap_lock and sometimes page table lock held */void (*swap_slot_free_notify) (struct block_device *, unsigned long);struct module *owner;const struct pr_ops *pr_ops;
};

我们来看一下其中比较重要的几个成员函数:

  • open函数用于打开指定的块设备;
  • release函数用于关闭(释放)指定的块设备;
  • rw_page函数用于读写指定的页;
  • ioctl函数用于块设备的I/O控制
  • compat_ioctl函数和ioctl函数一样,都是用于块设备的I/O控制。区别在于在64位系统上,32位应用程序的ioctl会调用compat_iotl函数。在32位系统上运行的32位应用程序调用的就是ioctl函数;
  • getgeo函数用于获取磁盘信息,包括磁头、柱面和扇区等信息;
  • owner表示此结构体属于哪个模块,一般直接设置为THIS_MODULE
http://www.lryc.cn/news/113082.html

相关文章:

  • linux c++网络编程基础:服务端与客户端的实现
  • 坐标转换-使用geotools读取和转换地理空间表的坐标系(sqlserver、postgresql)
  • JavaScript的主要应用场景有哪些?请描述一下JavaScript的基本数据类型和引用数据类型分别是哪些?
  • webpack性能优化
  • 保存和读取带有透明通道的视频
  • bilibili的评论ip属地显示未知
  • [BabysqliV3.0]phar反序列化
  • 数据库架构演变过程
  • webpack 静态模块打包工具
  • 万界星空科技/免费开源MES系统/免费仓库管理
  • 【暑期每日一练】 Epilogue
  • Go微服务实践 - Rpc核心概念理解
  • Effective Java笔记(27)消除非受检的警告
  • Dapper
  • Python基础知识(一)
  • QTthreadPool 程序
  • python注册机制Registry
  • 【Megatron-DeepSpeed】张量并行工具代码mpu详解(三):张量并行层的实现及测试
  • 【SpringBoot学习笔记】02. yaml配置注入
  • 【初阶C语言】指针的妙用
  • 链表——LinkedList类的概述和实现
  • 快六一啦,学习CSS3实现一个冰淇淋动画特效
  • VSCode CMake vcpkg 整合
  • c++ | win vscode
  • 算法-快速排序
  • SSM项目-博客系统
  • Android Gradle Plugin 编译
  • 如何快速掌握水土保持方案编制
  • 前端笔试---acm模式
  • 国联易安网页防篡改保护系统“渠道招募”启动啦!