mirror of https://github.com/acidanthera/audk.git
OvmfPkg: IndustryStandard/VirtioBlk: introduce topology-related definitions
Based on <https://tools.oasis-open.org/version-control/browse/wsvn/virtio/virtio-v1.0-wd01-part1-specification.txt?rev=159>, which is the last text format revision. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15002 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
1d17076b00
commit
5cf69d4836
|
@ -25,6 +25,13 @@
|
|||
// virtio-0.9.5, Appendix D: Block Device
|
||||
//
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
UINT8 PhysicalBlockExp; // # of logical blocks per physical block (log2)
|
||||
UINT8 AlignmentOffset; // offset of first aligned logical block
|
||||
UINT16 MinIoSize; // suggested minimum I/O size in blocks
|
||||
UINT32 OptIoSize; // optimal (suggested maximum) I/O size in blocks
|
||||
} VIRTIO_BLK_TOPOLOGY;
|
||||
|
||||
typedef struct {
|
||||
UINT64 Capacity;
|
||||
UINT32 SizeMax;
|
||||
|
@ -33,6 +40,7 @@ typedef struct {
|
|||
UINT8 Heads;
|
||||
UINT8 Sectors;
|
||||
UINT32 BlkSize;
|
||||
VIRTIO_BLK_TOPOLOGY Topology;
|
||||
} VIRTIO_BLK_CONFIG;
|
||||
#pragma pack()
|
||||
|
||||
|
@ -47,9 +55,11 @@ typedef struct {
|
|||
#define VIRTIO_BLK_F_BLK_SIZE BIT6 // treated as "logical block size" in
|
||||
// practice; actual host side
|
||||
// implementation negotiates "optimal"
|
||||
// block size separately
|
||||
// block size separately, via
|
||||
// VIRTIO_BLK_F_TOPOLOGY
|
||||
#define VIRTIO_BLK_F_SCSI BIT7
|
||||
#define VIRTIO_BLK_F_FLUSH BIT9 // identical to "write cache enabled"
|
||||
#define VIRTIO_BLK_F_TOPOLOGY BIT10 // information on optimal I/O alignment
|
||||
|
||||
//
|
||||
// We keep the status byte separate from the rest of the virtio-blk request
|
||||
|
|
Loading…
Reference in New Issue