diff options
author | Laszlo Ersek <lersek@redhat.com> | 2013-12-18 19:57:28 +0000 |
---|---|---|
committer | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2013-12-18 19:57:28 +0000 |
commit | 5cf69d48367ced77799af6554a00ad556f657a6c (patch) | |
tree | d05e2afd2d4d821d8f7c94cf4d8124eabe61b6e0 /OvmfPkg/Include | |
parent | 1d17076b0084664a4ea3009117f767f35254f6be (diff) | |
download | edk2-5cf69d48367ced77799af6554a00ad556f657a6c.tar.gz edk2-5cf69d48367ced77799af6554a00ad556f657a6c.tar.bz2 edk2-5cf69d48367ced77799af6554a00ad556f657a6c.zip |
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
Diffstat (limited to 'OvmfPkg/Include')
-rw-r--r-- | OvmfPkg/Include/IndustryStandard/VirtioBlk.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/OvmfPkg/Include/IndustryStandard/VirtioBlk.h b/OvmfPkg/Include/IndustryStandard/VirtioBlk.h index a9f91e4673..2ce528a12e 100644 --- a/OvmfPkg/Include/IndustryStandard/VirtioBlk.h +++ b/OvmfPkg/Include/IndustryStandard/VirtioBlk.h @@ -26,6 +26,13 @@ //
#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;
UINT32 SegMax;
@@ -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
|