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 <[email protected]>
---
 OvmfPkg/Include/IndustryStandard/VirtioBlk.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/OvmfPkg/Include/IndustryStandard/VirtioBlk.h 
b/OvmfPkg/Include/IndustryStandard/VirtioBlk.h
index a9f91e4..2ce528a 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
-- 
1.8.3.1



------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to