X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=OvmfPkg%2FInclude%2FIndustryStandard%2FVirtioBlk.h;h=7a904975c314902848f57a4819623950b51f3adf;hb=HEAD;hp=23da619d77a971d707f3551beb1a7b5a06f59c50;hpb=b26f0cf9ee09a180c91a4beeeb1b149e7f92afed;p=mirror_edk2.git diff --git a/OvmfPkg/Include/IndustryStandard/VirtioBlk.h b/OvmfPkg/Include/IndustryStandard/VirtioBlk.h index 23da619d77..7a904975c3 100644 --- a/OvmfPkg/Include/IndustryStandard/VirtioBlk.h +++ b/OvmfPkg/Include/IndustryStandard/VirtioBlk.h @@ -14,46 +14,45 @@ #include - // // 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 + 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; - UINT16 Cylinders; - UINT8 Heads; - UINT8 Sectors; - UINT32 BlkSize; - VIRTIO_BLK_TOPOLOGY Topology; + UINT64 Capacity; + UINT32 SizeMax; + UINT32 SegMax; + UINT16 Cylinders; + UINT8 Heads; + UINT8 Sectors; + UINT32 BlkSize; + VIRTIO_BLK_TOPOLOGY Topology; } VIRTIO_BLK_CONFIG; #pragma pack() -#define OFFSET_OF_VBLK(Field) OFFSET_OF (VIRTIO_BLK_CONFIG, Field) -#define SIZE_OF_VBLK(Field) (sizeof ((VIRTIO_BLK_CONFIG *) 0)->Field) +#define OFFSET_OF_VBLK(Field) OFFSET_OF (VIRTIO_BLK_CONFIG, Field) +#define SIZE_OF_VBLK(Field) (sizeof ((VIRTIO_BLK_CONFIG *) 0)->Field) -#define VIRTIO_BLK_F_BARRIER BIT0 -#define VIRTIO_BLK_F_SIZE_MAX BIT1 -#define VIRTIO_BLK_F_SEG_MAX BIT2 -#define VIRTIO_BLK_F_GEOMETRY BIT4 -#define VIRTIO_BLK_F_RO BIT5 -#define VIRTIO_BLK_F_BLK_SIZE BIT6 // treated as "logical block size" in +#define VIRTIO_BLK_F_BARRIER BIT0 +#define VIRTIO_BLK_F_SIZE_MAX BIT1 +#define VIRTIO_BLK_F_SEG_MAX BIT2 +#define VIRTIO_BLK_F_GEOMETRY BIT4 +#define VIRTIO_BLK_F_RO BIT5 +#define VIRTIO_BLK_F_BLK_SIZE BIT6 // treated as "logical block size" in // practice; actual host side // implementation negotiates "optimal" // 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 +#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 @@ -62,22 +61,22 @@ typedef struct { // #pragma pack(1) typedef struct { - UINT32 Type; - UINT32 IoPrio; - UINT64 Sector; + UINT32 Type; + UINT32 IoPrio; + UINT64 Sector; } VIRTIO_BLK_REQ; #pragma pack() -#define VIRTIO_BLK_T_IN 0x00000000 -#define VIRTIO_BLK_T_OUT 0x00000001 -#define VIRTIO_BLK_T_SCSI_CMD 0x00000002 -#define VIRTIO_BLK_T_SCSI_CMD_OUT 0x00000003 -#define VIRTIO_BLK_T_FLUSH 0x00000004 -#define VIRTIO_BLK_T_FLUSH_OUT 0x00000005 -#define VIRTIO_BLK_T_BARRIER BIT31 +#define VIRTIO_BLK_T_IN 0x00000000 +#define VIRTIO_BLK_T_OUT 0x00000001 +#define VIRTIO_BLK_T_SCSI_CMD 0x00000002 +#define VIRTIO_BLK_T_SCSI_CMD_OUT 0x00000003 +#define VIRTIO_BLK_T_FLUSH 0x00000004 +#define VIRTIO_BLK_T_FLUSH_OUT 0x00000005 +#define VIRTIO_BLK_T_BARRIER BIT31 -#define VIRTIO_BLK_S_OK 0x00 -#define VIRTIO_BLK_S_IOERR 0x01 -#define VIRTIO_BLK_S_UNSUPP 0x02 +#define VIRTIO_BLK_S_OK 0x00 +#define VIRTIO_BLK_S_IOERR 0x01 +#define VIRTIO_BLK_S_UNSUPP 0x02 #endif // _VIRTIO_BLK_H_