可分区块设备驱动开发全解析
1. gendisk 结构体成员解析
在块设备驱动开发中, gendisk 结构体起着关键作用,它包含了许多重要的成员变量,用于描述和管理块设备。以下是对其主要成员的详细解释:
| 成员 | 描述 |
| ---- | ---- |
| int max_p | 最大分区数,通常为 1 << minor_shift 。例如在示例中, max_p 为 16。 |
| struct hd_struct *part | 设备的解码分区表,驱动使用该成员确定通过每个次设备号可访问的磁盘扇区范围。驱动负责该数组的分配和释放,多数驱动将其实现为 max_nr << minor_shift 个结构体的静态数组,且在分区表解码前需初始化为零。 |
| int *sizes | 整数数组,包含与全局 blk_size 数组相同的信息,通常二者为同一数组。驱动负责该数组的分配和释放,设备分区检查会将此指针复制到 blk_size ,因此处理可分区设备的驱动无需单独分配 blk_size 数组。 |
| int nr_real | 实际存在的设备(单元)数量。 |
| void *real_devices | 驱动可用于存储额外信息的私有区域。 |
|
超级会员免费看
订阅专栏 解锁全文
824

被折叠的 条评论
为什么被折叠?



