]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Register/Amd/Ghcb.h
MdePkg: Apply uncrustify changes
[mirror_edk2.git] / MdePkg / Include / Register / Amd / Ghcb.h
index 8c5f46e4bb537a31ed0142fd69ff44c84b53d426..e7626a2c138b34dd852bb6b62c8766cbe5d337cf 100644 (file)
 #include <Library/DebugLib.h>\r
 \r
 #define UD_EXCEPTION  6\r
-#define GP_EXCEPTION 13\r
-#define VC_EXCEPTION 29\r
+#define GP_EXCEPTION  13\r
+#define VC_EXCEPTION  29\r
 \r
-#define GHCB_VERSION_MIN     1\r
-#define GHCB_VERSION_MAX     1\r
+#define GHCB_VERSION_MIN  1\r
+#define GHCB_VERSION_MAX  1\r
 \r
 #define GHCB_STANDARD_USAGE  0\r
 \r
 //\r
 // SVM Exit Codes\r
 //\r
-#define SVM_EXIT_DR7_READ       0x27ULL\r
-#define SVM_EXIT_DR7_WRITE      0x37ULL\r
-#define SVM_EXIT_RDTSC          0x6EULL\r
-#define SVM_EXIT_RDPMC          0x6FULL\r
-#define SVM_EXIT_CPUID          0x72ULL\r
-#define SVM_EXIT_INVD           0x76ULL\r
-#define SVM_EXIT_IOIO_PROT      0x7BULL\r
-#define SVM_EXIT_MSR            0x7CULL\r
-#define SVM_EXIT_VMMCALL        0x81ULL\r
-#define SVM_EXIT_RDTSCP         0x87ULL\r
-#define SVM_EXIT_WBINVD         0x89ULL\r
-#define SVM_EXIT_MONITOR        0x8AULL\r
-#define SVM_EXIT_MWAIT          0x8BULL\r
-#define SVM_EXIT_NPF            0x400ULL\r
+#define SVM_EXIT_DR7_READ   0x27ULL\r
+#define SVM_EXIT_DR7_WRITE  0x37ULL\r
+#define SVM_EXIT_RDTSC      0x6EULL\r
+#define SVM_EXIT_RDPMC      0x6FULL\r
+#define SVM_EXIT_CPUID      0x72ULL\r
+#define SVM_EXIT_INVD       0x76ULL\r
+#define SVM_EXIT_IOIO_PROT  0x7BULL\r
+#define SVM_EXIT_MSR        0x7CULL\r
+#define SVM_EXIT_VMMCALL    0x81ULL\r
+#define SVM_EXIT_RDTSCP     0x87ULL\r
+#define SVM_EXIT_WBINVD     0x89ULL\r
+#define SVM_EXIT_MONITOR    0x8AULL\r
+#define SVM_EXIT_MWAIT      0x8BULL\r
+#define SVM_EXIT_NPF        0x400ULL\r
 \r
 //\r
 // VMG Special Exit Codes\r
 //\r
-#define SVM_EXIT_MMIO_READ                      0x80000001ULL\r
-#define SVM_EXIT_MMIO_WRITE                     0x80000002ULL\r
-#define SVM_EXIT_NMI_COMPLETE                   0x80000003ULL\r
-#define SVM_EXIT_AP_RESET_HOLD                  0x80000004ULL\r
-#define SVM_EXIT_AP_JUMP_TABLE                  0x80000005ULL\r
-#define SVM_EXIT_SNP_PAGE_STATE_CHANGE          0x80000010ULL\r
-#define SVM_EXIT_SNP_AP_CREATION                0x80000013ULL\r
-#define SVM_EXIT_HYPERVISOR_FEATURES            0x8000FFFDULL\r
-#define SVM_EXIT_UNSUPPORTED                    0x8000FFFFULL\r
+#define SVM_EXIT_MMIO_READ              0x80000001ULL\r
+#define SVM_EXIT_MMIO_WRITE             0x80000002ULL\r
+#define SVM_EXIT_NMI_COMPLETE           0x80000003ULL\r
+#define SVM_EXIT_AP_RESET_HOLD          0x80000004ULL\r
+#define SVM_EXIT_AP_JUMP_TABLE          0x80000005ULL\r
+#define SVM_EXIT_SNP_PAGE_STATE_CHANGE  0x80000010ULL\r
+#define SVM_EXIT_SNP_AP_CREATION        0x80000013ULL\r
+#define SVM_EXIT_HYPERVISOR_FEATURES    0x8000FFFDULL\r
+#define SVM_EXIT_UNSUPPORTED            0x8000FFFFULL\r
 \r
 //\r
 // IOIO Exit Information\r
 //\r
-#define IOIO_TYPE_STR       BIT2\r
-#define IOIO_TYPE_IN        1\r
-#define IOIO_TYPE_INS       (IOIO_TYPE_IN | IOIO_TYPE_STR)\r
-#define IOIO_TYPE_OUT       0\r
-#define IOIO_TYPE_OUTS      (IOIO_TYPE_OUT | IOIO_TYPE_STR)\r
-\r
-#define IOIO_REP            BIT3\r
-\r
-#define IOIO_ADDR_64        BIT9\r
-#define IOIO_ADDR_32        BIT8\r
-#define IOIO_ADDR_16        BIT7\r
-\r
-#define IOIO_DATA_32        BIT6\r
-#define IOIO_DATA_16        BIT5\r
-#define IOIO_DATA_8         BIT4\r
-#define IOIO_DATA_MASK      (BIT6 | BIT5 | BIT4)\r
-#define IOIO_DATA_OFFSET    4\r
+#define IOIO_TYPE_STR   BIT2\r
+#define IOIO_TYPE_IN    1\r
+#define IOIO_TYPE_INS   (IOIO_TYPE_IN | IOIO_TYPE_STR)\r
+#define IOIO_TYPE_OUT   0\r
+#define IOIO_TYPE_OUTS  (IOIO_TYPE_OUT | IOIO_TYPE_STR)\r
+\r
+#define IOIO_REP  BIT3\r
+\r
+#define IOIO_ADDR_64  BIT9\r
+#define IOIO_ADDR_32  BIT8\r
+#define IOIO_ADDR_16  BIT7\r
+\r
+#define IOIO_DATA_32      BIT6\r
+#define IOIO_DATA_16      BIT5\r
+#define IOIO_DATA_8       BIT4\r
+#define IOIO_DATA_MASK    (BIT6 | BIT5 | BIT4)\r
+#define IOIO_DATA_OFFSET  4\r
 #define IOIO_DATA_BYTES(x)  (((x) & IOIO_DATA_MASK) >> IOIO_DATA_OFFSET)\r
 \r
-#define IOIO_SEG_ES         0\r
-#define IOIO_SEG_DS         (BIT11 | BIT10)\r
+#define IOIO_SEG_ES  0\r
+#define IOIO_SEG_DS  (BIT11 | BIT10)\r
 \r
 //\r
 // AP Creation Information\r
 #define SVM_VMGEXIT_SNP_AP_DESTROY         2\r
 \r
 typedef PACKED struct {\r
-  UINT8                  Reserved1[203];\r
-  UINT8                  Cpl;\r
-  UINT8                  Reserved8[300];\r
-  UINT64                 Rax;\r
-  UINT8                  Reserved4[264];\r
-  UINT64                 Rcx;\r
-  UINT64                 Rdx;\r
-  UINT64                 Rbx;\r
-  UINT8                  Reserved5[112];\r
-  UINT64                 SwExitCode;\r
-  UINT64                 SwExitInfo1;\r
-  UINT64                 SwExitInfo2;\r
-  UINT64                 SwScratch;\r
-  UINT8                  Reserved6[56];\r
-  UINT64                 XCr0;\r
-  UINT8                  ValidBitmap[16];\r
-  UINT64                 X87StateGpa;\r
-  UINT8                  Reserved7[1016];\r
+  UINT8     Reserved1[203];\r
+  UINT8     Cpl;\r
+  UINT8     Reserved8[300];\r
+  UINT64    Rax;\r
+  UINT8     Reserved4[264];\r
+  UINT64    Rcx;\r
+  UINT64    Rdx;\r
+  UINT64    Rbx;\r
+  UINT8     Reserved5[112];\r
+  UINT64    SwExitCode;\r
+  UINT64    SwExitInfo1;\r
+  UINT64    SwExitInfo2;\r
+  UINT64    SwScratch;\r
+  UINT8     Reserved6[56];\r
+  UINT64    XCr0;\r
+  UINT8     ValidBitmap[16];\r
+  UINT64    X87StateGpa;\r
+  UINT8     Reserved7[1016];\r
 } GHCB_SAVE_AREA;\r
 \r
 typedef PACKED struct {\r
-  GHCB_SAVE_AREA         SaveArea;\r
-  UINT8                  SharedBuffer[2032];\r
-  UINT8                  Reserved1[10];\r
-  UINT16                 ProtocolVersion;\r
-  UINT32                 GhcbUsage;\r
+  GHCB_SAVE_AREA    SaveArea;\r
+  UINT8             SharedBuffer[2032];\r
+  UINT8             Reserved1[10];\r
+  UINT16            ProtocolVersion;\r
+  UINT32            GhcbUsage;\r
 } GHCB;\r
 \r
 #define GHCB_SAVE_AREA_QWORD_OFFSET(RegisterField) \\r
   (OFFSET_OF (GHCB, SaveArea.RegisterField) / sizeof (UINT64))\r
 \r
 typedef enum {\r
-  GhcbCpl          = GHCB_SAVE_AREA_QWORD_OFFSET (Cpl),\r
-  GhcbRax          = GHCB_SAVE_AREA_QWORD_OFFSET (Rax),\r
-  GhcbRbx          = GHCB_SAVE_AREA_QWORD_OFFSET (Rbx),\r
-  GhcbRcx          = GHCB_SAVE_AREA_QWORD_OFFSET (Rcx),\r
-  GhcbRdx          = GHCB_SAVE_AREA_QWORD_OFFSET (Rdx),\r
-  GhcbXCr0         = GHCB_SAVE_AREA_QWORD_OFFSET (XCr0),\r
-  GhcbSwExitCode   = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitCode),\r
-  GhcbSwExitInfo1  = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo1),\r
-  GhcbSwExitInfo2  = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo2),\r
-  GhcbSwScratch    = GHCB_SAVE_AREA_QWORD_OFFSET (SwScratch),\r
+  GhcbCpl         = GHCB_SAVE_AREA_QWORD_OFFSET (Cpl),\r
+  GhcbRax         = GHCB_SAVE_AREA_QWORD_OFFSET (Rax),\r
+  GhcbRbx         = GHCB_SAVE_AREA_QWORD_OFFSET (Rbx),\r
+  GhcbRcx         = GHCB_SAVE_AREA_QWORD_OFFSET (Rcx),\r
+  GhcbRdx         = GHCB_SAVE_AREA_QWORD_OFFSET (Rdx),\r
+  GhcbXCr0        = GHCB_SAVE_AREA_QWORD_OFFSET (XCr0),\r
+  GhcbSwExitCode  = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitCode),\r
+  GhcbSwExitInfo1 = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo1),\r
+  GhcbSwExitInfo2 = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo2),\r
+  GhcbSwScratch   = GHCB_SAVE_AREA_QWORD_OFFSET (SwScratch),\r
 } GHCB_REGISTER;\r
 \r
 typedef union {\r
   struct {\r
-    UINT32  Lower32Bits;\r
-    UINT32  Upper32Bits;\r
+    UINT32    Lower32Bits;\r
+    UINT32    Upper32Bits;\r
   } Elements;\r
 \r
   UINT64    Uint64;\r
@@ -147,12 +147,12 @@ typedef union {
 \r
 typedef union {\r
   struct {\r
-    UINT32  Vector:8;\r
-    UINT32  Type:3;\r
-    UINT32  ErrorCodeValid:1;\r
-    UINT32  Rsvd:19;\r
-    UINT32  Valid:1;\r
-    UINT32  ErrorCode;\r
+    UINT32    Vector         : 8;\r
+    UINT32    Type           : 3;\r
+    UINT32    ErrorCodeValid : 1;\r
+    UINT32    Rsvd           : 19;\r
+    UINT32    Valid          : 1;\r
+    UINT32    ErrorCode;\r
   } Elements;\r
 \r
   UINT64    Uint64;\r
@@ -166,40 +166,40 @@ typedef union {
 //\r
 // Hypervisor features\r
 //\r
-#define GHCB_HV_FEATURES_SNP                              BIT0\r
-#define GHCB_HV_FEATURES_SNP_AP_CREATE                    (GHCB_HV_FEATURES_SNP | BIT1)\r
-#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION         (GHCB_HV_FEATURES_SNP_AP_CREATE | BIT2)\r
-#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION_TIMER   (GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION | BIT3)\r
+#define GHCB_HV_FEATURES_SNP                             BIT0\r
+#define GHCB_HV_FEATURES_SNP_AP_CREATE                   (GHCB_HV_FEATURES_SNP | BIT1)\r
+#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION        (GHCB_HV_FEATURES_SNP_AP_CREATE | BIT2)\r
+#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION_TIMER  (GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION | BIT3)\r
 \r
 //\r
 // SNP Page State Change.\r
 //\r
 // Note that the PSMASH and UNSMASH operations are not supported when using the MSR protocol.\r
 //\r
-#define SNP_PAGE_STATE_PRIVATE              1\r
-#define SNP_PAGE_STATE_SHARED               2\r
-#define SNP_PAGE_STATE_PSMASH               3\r
-#define SNP_PAGE_STATE_UNSMASH              4\r
+#define SNP_PAGE_STATE_PRIVATE  1\r
+#define SNP_PAGE_STATE_SHARED   2\r
+#define SNP_PAGE_STATE_PSMASH   3\r
+#define SNP_PAGE_STATE_UNSMASH  4\r
 \r
 typedef struct {\r
-  UINT64  CurrentPage:12;\r
-  UINT64  GuestFrameNumber:40;\r
-  UINT64  Operation:4;\r
-  UINT64  PageSize:1;\r
-  UINT64  Reserved:7;\r
+  UINT64    CurrentPage      : 12;\r
+  UINT64    GuestFrameNumber : 40;\r
+  UINT64    Operation        : 4;\r
+  UINT64    PageSize         : 1;\r
+  UINT64    Reserved         : 7;\r
 } SNP_PAGE_STATE_ENTRY;\r
 \r
 typedef struct {\r
-  UINT16 CurrentEntry;\r
-  UINT16 EndEntry;\r
-  UINT32 Reserved;\r
+  UINT16    CurrentEntry;\r
+  UINT16    EndEntry;\r
+  UINT32    Reserved;\r
 } SNP_PAGE_STATE_HEADER;\r
 \r
-#define SNP_PAGE_STATE_MAX_ENTRY            253\r
+#define SNP_PAGE_STATE_MAX_ENTRY  253\r
 \r
 typedef struct {\r
-  SNP_PAGE_STATE_HEADER  Header;\r
-  SNP_PAGE_STATE_ENTRY   Entry[SNP_PAGE_STATE_MAX_ENTRY];\r
+  SNP_PAGE_STATE_HEADER    Header;\r
+  SNP_PAGE_STATE_ENTRY     Entry[SNP_PAGE_STATE_MAX_ENTRY];\r
 } SNP_PAGE_STATE_CHANGE_INFO;\r
 \r
 //\r
@@ -217,22 +217,22 @@ typedef struct {
 #define SEV_ES_RESET_CODE_SEGMENT_TYPE  0xA\r
 #define SEV_ES_RESET_DATA_SEGMENT_TYPE  0x2\r
 \r
-#define SEV_ES_RESET_LDT_TYPE           0x2\r
-#define SEV_ES_RESET_TSS_TYPE           0x3\r
+#define SEV_ES_RESET_LDT_TYPE  0x2\r
+#define SEV_ES_RESET_TSS_TYPE  0x3\r
 \r
 #pragma pack (1)\r
 typedef union {\r
-    struct {\r
-      UINT16  Type:4;\r
-      UINT16  Sbit:1;\r
-      UINT16  Dpl:2;\r
-      UINT16  Present:1;\r
-      UINT16  Avl:1;\r
-      UINT16  Reserved1:1;\r
-      UINT16  Db:1;\r
-      UINT16  Granularity:1;\r
-    } Bits;\r
-    UINT16  Uint16;\r
+  struct {\r
+    UINT16    Type        : 4;\r
+    UINT16    Sbit        : 1;\r
+    UINT16    Dpl         : 2;\r
+    UINT16    Present     : 1;\r
+    UINT16    Avl         : 1;\r
+    UINT16    Reserved1   : 1;\r
+    UINT16    Db          : 1;\r
+    UINT16    Granularity : 1;\r
+  } Bits;\r
+  UINT16    Uint16;\r
 } SEV_ES_SEGMENT_REGISTER_ATTRIBUTES;\r
 \r
 typedef struct {\r
@@ -243,39 +243,39 @@ typedef struct {
 } SEV_ES_SEGMENT_REGISTER;\r
 \r
 typedef struct {\r
-  SEV_ES_SEGMENT_REGISTER  Es;\r
-  SEV_ES_SEGMENT_REGISTER  Cs;\r
-  SEV_ES_SEGMENT_REGISTER  Ss;\r
-  SEV_ES_SEGMENT_REGISTER  Ds;\r
-  SEV_ES_SEGMENT_REGISTER  Fs;\r
-  SEV_ES_SEGMENT_REGISTER  Gs;\r
-  SEV_ES_SEGMENT_REGISTER  Gdtr;\r
-  SEV_ES_SEGMENT_REGISTER  Ldtr;\r
-  SEV_ES_SEGMENT_REGISTER  Idtr;\r
-  SEV_ES_SEGMENT_REGISTER  Tr;\r
-  UINT8                    Reserved1[42];\r
-  UINT8                    Vmpl;\r
-  UINT8                    Reserved2[5];\r
-  UINT64                   Efer;\r
-  UINT8                    Reserved3[112];\r
-  UINT64                   Cr4;\r
-  UINT8                    Reserved4[8];\r
-  UINT64                   Cr0;\r
-  UINT64                   Dr7;\r
-  UINT64                   Dr6;\r
-  UINT64                   Rflags;\r
-  UINT64                   Rip;\r
-  UINT8                    Reserved5[232];\r
-  UINT64                   GPat;\r
-  UINT8                    Reserved6[320];\r
-  UINT64                   SevFeatures;\r
-  UINT8                    Reserved7[48];\r
-  UINT64                   XCr0;\r
-  UINT8                    Reserved8[24];\r
-  UINT32                   Mxcsr;\r
-  UINT16                   X87Ftw;\r
-  UINT8                    Reserved9[2];\r
-  UINT16                   X87Fcw;\r
+  SEV_ES_SEGMENT_REGISTER    Es;\r
+  SEV_ES_SEGMENT_REGISTER    Cs;\r
+  SEV_ES_SEGMENT_REGISTER    Ss;\r
+  SEV_ES_SEGMENT_REGISTER    Ds;\r
+  SEV_ES_SEGMENT_REGISTER    Fs;\r
+  SEV_ES_SEGMENT_REGISTER    Gs;\r
+  SEV_ES_SEGMENT_REGISTER    Gdtr;\r
+  SEV_ES_SEGMENT_REGISTER    Ldtr;\r
+  SEV_ES_SEGMENT_REGISTER    Idtr;\r
+  SEV_ES_SEGMENT_REGISTER    Tr;\r
+  UINT8                      Reserved1[42];\r
+  UINT8                      Vmpl;\r
+  UINT8                      Reserved2[5];\r
+  UINT64                     Efer;\r
+  UINT8                      Reserved3[112];\r
+  UINT64                     Cr4;\r
+  UINT8                      Reserved4[8];\r
+  UINT64                     Cr0;\r
+  UINT64                     Dr7;\r
+  UINT64                     Dr6;\r
+  UINT64                     Rflags;\r
+  UINT64                     Rip;\r
+  UINT8                      Reserved5[232];\r
+  UINT64                     GPat;\r
+  UINT8                      Reserved6[320];\r
+  UINT64                     SevFeatures;\r
+  UINT8                      Reserved7[48];\r
+  UINT64                     XCr0;\r
+  UINT8                      Reserved8[24];\r
+  UINT32                     Mxcsr;\r
+  UINT16                     X87Ftw;\r
+  UINT8                      Reserved9[2];\r
+  UINT16                     X87Fcw;\r
 } SEV_ES_SAVE_AREA;\r
 #pragma pack ()\r
 \r