|
SimpleKernel 1.17.0
|
块设备配置空间布局 More...
#include <virtio_blk_defs.h>

Public Attributes | ||
| uint64_t | capacity | |
| 设备容量(以 512 字节扇区为单位) | ||
| uint32_t | size_max | |
| 任意单个段的最大字节数(如果 VIRTIO_BLK_F_SIZE_MAX 被协商) | ||
| uint32_t | seg_max | |
| 单个请求中的最大段数(如果 VIRTIO_BLK_F_SEG_MAX 被协商) | ||
| struct { | ||
| uint16_t cylinders | ||
| 柱面数 More... | ||
| uint8_t heads | ||
| 磁头数 More... | ||
| uint8_t sectors | ||
| 每磁道扇区数 More... | ||
| } | geometry | |
| 磁盘几何信息(如果 VIRTIO_BLK_F_GEOMETRY 被协商) | ||
| uint32_t | blk_size | |
| 块大小(字节),用于性能优化(如果 VIRTIO_BLK_F_BLK_SIZE 被协商) | ||
| struct { | ||
| uint8_t physical_block_exp | ||
| 每个物理块包含的逻辑块数 (log2) More... | ||
| uint8_t alignment_offset | ||
| 第一个对齐逻辑块的偏移 More... | ||
| uint16_t min_io_size | ||
| 建议的最小 I/O 大小(块数) More... | ||
| uint32_t opt_io_size | ||
| 建议的最优 I/O 大小(块数) More... | ||
| } | topology | |
| I/O 拓扑信息(如果 VIRTIO_BLK_F_TOPOLOGY 被协商) | ||
| uint8_t | writeback | |
| uint8_t | unused0 [3] | |
| 保留字段,用于填充对齐 | ||
| uint32_t | max_discard_sectors | |
| discard 命令的最大扇区数(如果 VIRTIO_BLK_F_DISCARD 被协商) | ||
| uint32_t | max_discard_seg | |
| discard 命令的最大段数(如果 VIRTIO_BLK_F_DISCARD 被协商) | ||
| uint32_t | discard_sector_alignment | |
| discard 扇区对齐要求(如果 VIRTIO_BLK_F_DISCARD 被协商) | ||
| uint32_t | max_write_zeroes_sectors | |
| write zeroes 命令的最大扇区数(如果 VIRTIO_BLK_F_WRITE_ZEROES 被协商) | ||
| uint32_t | max_write_zeroes_seg | |
| write zeroes 命令的最大段数(如果 VIRTIO_BLK_F_WRITE_ZEROES 被协商) | ||
| uint8_t | write_zeroes_may_unmap | |
| write zeroes 是否可能导致 unmap(如果 VIRTIO_BLK_F_WRITE_ZEROES 被协商) | ||
| uint8_t | unused1 [3] | |
| 保留字段,用于填充对齐 | ||
| uint32_t | max_secure_erase_sectors | |
| secure erase 命令的最大扇区数(如果 VIRTIO_BLK_F_SECURE_ERASE 被协商) | ||
| uint32_t | max_secure_erase_seg | |
| secure erase 命令的最大段数(如果 VIRTIO_BLK_F_SECURE_ERASE 被协商) | ||
| uint32_t | secure_erase_sector_alignment | |
| secure erase 扇区对齐要求(如果 VIRTIO_BLK_F_SECURE_ERASE 被协商) | ||
| uint16_t | num_queues | |
| 请求队列数(如果 VIRTIO_BLK_F_MQ 被协商) | ||
| uint8_t | unused2 [6] | |
| 保留字段,用于未来扩展 | ||
块设备配置空间布局
设备配置空间包含设备的静态配置信息,如容量、最大段大小、 几何信息、拓扑信息等。驱动程序通过传输层读取这些信息。
Definition at line 59 of file virtio_blk_defs.h.
| uint8_t virtio::blk::BlkConfig::alignment_offset |
第一个对齐逻辑块的偏移
Definition at line 85 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::blk_size |
块大小(字节),用于性能优化(如果 VIRTIO_BLK_F_BLK_SIZE 被协商)
Definition at line 78 of file virtio_blk_defs.h.
| uint64_t virtio::blk::BlkConfig::capacity |
设备容量(以 512 字节扇区为单位)
Definition at line 61 of file virtio_blk_defs.h.
| uint16_t virtio::blk::BlkConfig::cylinders |
柱面数
Definition at line 70 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::discard_sector_alignment |
discard 扇区对齐要求(如果 VIRTIO_BLK_F_DISCARD 被协商)
Definition at line 103 of file virtio_blk_defs.h.
| struct { ... } virtio::blk::BlkConfig::geometry |
磁盘几何信息(如果 VIRTIO_BLK_F_GEOMETRY 被协商)
| uint8_t virtio::blk::BlkConfig::heads |
磁头数
Definition at line 72 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::max_discard_sectors |
discard 命令的最大扇区数(如果 VIRTIO_BLK_F_DISCARD 被协商)
Definition at line 99 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::max_discard_seg |
discard 命令的最大段数(如果 VIRTIO_BLK_F_DISCARD 被协商)
Definition at line 101 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::max_secure_erase_sectors |
secure erase 命令的最大扇区数(如果 VIRTIO_BLK_F_SECURE_ERASE 被协商)
Definition at line 115 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::max_secure_erase_seg |
secure erase 命令的最大段数(如果 VIRTIO_BLK_F_SECURE_ERASE 被协商)
Definition at line 117 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::max_write_zeroes_sectors |
write zeroes 命令的最大扇区数(如果 VIRTIO_BLK_F_WRITE_ZEROES 被协商)
Definition at line 106 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::max_write_zeroes_seg |
write zeroes 命令的最大段数(如果 VIRTIO_BLK_F_WRITE_ZEROES 被协商)
Definition at line 108 of file virtio_blk_defs.h.
| uint16_t virtio::blk::BlkConfig::min_io_size |
建议的最小 I/O 大小(块数)
Definition at line 87 of file virtio_blk_defs.h.
| uint16_t virtio::blk::BlkConfig::num_queues |
请求队列数(如果 VIRTIO_BLK_F_MQ 被协商)
Definition at line 122 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::opt_io_size |
建议的最优 I/O 大小(块数)
Definition at line 89 of file virtio_blk_defs.h.
| uint8_t virtio::blk::BlkConfig::physical_block_exp |
每个物理块包含的逻辑块数 (log2)
Definition at line 83 of file virtio_blk_defs.h.
| uint8_t virtio::blk::BlkConfig::sectors |
每磁道扇区数
Definition at line 74 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::secure_erase_sector_alignment |
secure erase 扇区对齐要求(如果 VIRTIO_BLK_F_SECURE_ERASE 被协商)
Definition at line 119 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::seg_max |
单个请求中的最大段数(如果 VIRTIO_BLK_F_SEG_MAX 被协商)
Definition at line 65 of file virtio_blk_defs.h.
| uint32_t virtio::blk::BlkConfig::size_max |
任意单个段的最大字节数(如果 VIRTIO_BLK_F_SIZE_MAX 被协商)
Definition at line 63 of file virtio_blk_defs.h.
| struct { ... } virtio::blk::BlkConfig::topology |
I/O 拓扑信息(如果 VIRTIO_BLK_F_TOPOLOGY 被协商)
| uint8_t virtio::blk::BlkConfig::unused0[3] |
保留字段,用于填充对齐
Definition at line 96 of file virtio_blk_defs.h.
| uint8_t virtio::blk::BlkConfig::unused1[3] |
保留字段,用于填充对齐
Definition at line 112 of file virtio_blk_defs.h.
| uint8_t virtio::blk::BlkConfig::unused2[6] |
保留字段,用于未来扩展
Definition at line 124 of file virtio_blk_defs.h.
| uint8_t virtio::blk::BlkConfig::write_zeroes_may_unmap |
write zeroes 是否可能导致 unmap(如果 VIRTIO_BLK_F_WRITE_ZEROES 被协商)
Definition at line 110 of file virtio_blk_defs.h.
| uint8_t virtio::blk::BlkConfig::writeback |
缓存模式:0=直写(writethrough),1=回写(writeback) (如果 VIRTIO_BLK_F_CONFIG_WCE 被协商)
Definition at line 94 of file virtio_blk_defs.h.