]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c
OvmfPkg: Apply uncrustify changes
[mirror_edk2.git] / OvmfPkg / Library / VmgExitLib / VmgExitVcHandler.c
index 41b0c8cc531235baac1affda30444cfefc82b00a..81a93968c85eae73fb4d6a117359dd28e697d106 100644 (file)
@@ -22,7 +22,7 @@
 // Instruction execution mode definition\r
 //\r
 typedef enum {\r
-  LongMode64Bit        = 0,\r
+  LongMode64Bit = 0,\r
   LongModeCompat32Bit,\r
   LongModeCompat16Bit,\r
 } SEV_ES_INSTRUCTION_MODE;\r
@@ -31,7 +31,7 @@ typedef enum {
 // Instruction size definition (for operand and address)\r
 //\r
 typedef enum {\r
-  Size8Bits            = 0,\r
+  Size8Bits = 0,\r
   Size16Bits,\r
   Size32Bits,\r
   Size64Bits,\r
@@ -41,7 +41,7 @@ typedef enum {
 // Intruction segment definition\r
 //\r
 typedef enum {\r
-  SegmentEs            = 0,\r
+  SegmentEs = 0,\r
   SegmentCs,\r
   SegmentSs,\r
   SegmentDs,\r
@@ -53,70 +53,70 @@ typedef enum {
 // Instruction rep function definition\r
 //\r
 typedef enum {\r
-  RepNone              = 0,\r
+  RepNone = 0,\r
   RepZ,\r
   RepNZ,\r
 } SEV_ES_INSTRUCTION_REP;\r
 \r
 typedef struct {\r
-  UINT8  Rm;\r
-  UINT8  Reg;\r
-  UINT8  Mod;\r
+  UINT8    Rm;\r
+  UINT8    Reg;\r
+  UINT8    Mod;\r
 } SEV_ES_INSTRUCTION_MODRM_EXT;\r
 \r
 typedef struct {\r
-  UINT8  Base;\r
-  UINT8  Index;\r
-  UINT8  Scale;\r
+  UINT8    Base;\r
+  UINT8    Index;\r
+  UINT8    Scale;\r
 } SEV_ES_INSTRUCTION_SIB_EXT;\r
 \r
 //\r
 // Instruction opcode definition\r
 //\r
 typedef struct {\r
-  SEV_ES_INSTRUCTION_MODRM_EXT  ModRm;\r
+  SEV_ES_INSTRUCTION_MODRM_EXT    ModRm;\r
 \r
-  SEV_ES_INSTRUCTION_SIB_EXT    Sib;\r
+  SEV_ES_INSTRUCTION_SIB_EXT      Sib;\r
 \r
-  UINTN                         RegData;\r
-  UINTN                         RmData;\r
+  UINTN                           RegData;\r
+  UINTN                           RmData;\r
 } SEV_ES_INSTRUCTION_OPCODE_EXT;\r
 \r
 //\r
 // Instruction parsing context definition\r
 //\r
 typedef struct {\r
-  GHCB                           *Ghcb;\r
+  GHCB                             *Ghcb;\r
 \r
-  SEV_ES_INSTRUCTION_MODE        Mode;\r
-  SEV_ES_INSTRUCTION_SIZE        DataSize;\r
-  SEV_ES_INSTRUCTION_SIZE        AddrSize;\r
-  BOOLEAN                        SegmentSpecified;\r
-  SEV_ES_INSTRUCTION_SEGMENT     Segment;\r
-  SEV_ES_INSTRUCTION_REP         RepMode;\r
+  SEV_ES_INSTRUCTION_MODE          Mode;\r
+  SEV_ES_INSTRUCTION_SIZE          DataSize;\r
+  SEV_ES_INSTRUCTION_SIZE          AddrSize;\r
+  BOOLEAN                          SegmentSpecified;\r
+  SEV_ES_INSTRUCTION_SEGMENT       Segment;\r
+  SEV_ES_INSTRUCTION_REP           RepMode;\r
 \r
-  UINT8                          *Begin;\r
-  UINT8                          *End;\r
+  UINT8                            *Begin;\r
+  UINT8                            *End;\r
 \r
-  UINT8                          *Prefixes;\r
-  UINT8                          *OpCodes;\r
-  UINT8                          *Displacement;\r
-  UINT8                          *Immediate;\r
+  UINT8                            *Prefixes;\r
+  UINT8                            *OpCodes;\r
+  UINT8                            *Displacement;\r
+  UINT8                            *Immediate;\r
 \r
-  INSTRUCTION_REX_PREFIX         RexPrefix;\r
+  INSTRUCTION_REX_PREFIX           RexPrefix;\r
 \r
-  BOOLEAN                        ModRmPresent;\r
-  INSTRUCTION_MODRM              ModRm;\r
+  BOOLEAN                          ModRmPresent;\r
+  INSTRUCTION_MODRM                ModRm;\r
 \r
-  BOOLEAN                        SibPresent;\r
-  INSTRUCTION_SIB                Sib;\r
+  BOOLEAN                          SibPresent;\r
+  INSTRUCTION_SIB                  Sib;\r
 \r
-  UINTN                          PrefixSize;\r
-  UINTN                          OpCodeSize;\r
-  UINTN                          DisplacementSize;\r
-  UINTN                          ImmediateSize;\r
+  UINTN                            PrefixSize;\r
+  UINTN                            OpCodeSize;\r
+  UINTN                            DisplacementSize;\r
+  UINTN                            ImmediateSize;\r
 \r
-  SEV_ES_INSTRUCTION_OPCODE_EXT  Ext;\r
+  SEV_ES_INSTRUCTION_OPCODE_EXT    Ext;\r
 } SEV_ES_INSTRUCTION_DATA;\r
 \r
 //\r
@@ -145,64 +145,65 @@ UINT64
 STATIC\r
 UINT64 *\r
 GetRegisterPointer (\r
-  IN EFI_SYSTEM_CONTEXT_X64   *Regs,\r
-  IN UINT8                    Register\r
+  IN EFI_SYSTEM_CONTEXT_X64  *Regs,\r
+  IN UINT8                   Register\r
   )\r
 {\r
-  UINT64 *Reg;\r
+  UINT64  *Reg;\r
 \r
   switch (Register) {\r
-  case 0:\r
-    Reg = &Regs->Rax;\r
-    break;\r
-  case 1:\r
-    Reg = &Regs->Rcx;\r
-    break;\r
-  case 2:\r
-    Reg = &Regs->Rdx;\r
-    break;\r
-  case 3:\r
-    Reg = &Regs->Rbx;\r
-    break;\r
-  case 4:\r
-    Reg = &Regs->Rsp;\r
-    break;\r
-  case 5:\r
-    Reg = &Regs->Rbp;\r
-    break;\r
-  case 6:\r
-    Reg = &Regs->Rsi;\r
-    break;\r
-  case 7:\r
-    Reg = &Regs->Rdi;\r
-    break;\r
-  case 8:\r
-    Reg = &Regs->R8;\r
-    break;\r
-  case 9:\r
-    Reg = &Regs->R9;\r
-    break;\r
-  case 10:\r
-    Reg = &Regs->R10;\r
-    break;\r
-  case 11:\r
-    Reg = &Regs->R11;\r
-    break;\r
-  case 12:\r
-    Reg = &Regs->R12;\r
-    break;\r
-  case 13:\r
-    Reg = &Regs->R13;\r
-    break;\r
-  case 14:\r
-    Reg = &Regs->R14;\r
-    break;\r
-  case 15:\r
-    Reg = &Regs->R15;\r
-    break;\r
-  default:\r
-    Reg = NULL;\r
+    case 0:\r
+      Reg = &Regs->Rax;\r
+      break;\r
+    case 1:\r
+      Reg = &Regs->Rcx;\r
+      break;\r
+    case 2:\r
+      Reg = &Regs->Rdx;\r
+      break;\r
+    case 3:\r
+      Reg = &Regs->Rbx;\r
+      break;\r
+    case 4:\r
+      Reg = &Regs->Rsp;\r
+      break;\r
+    case 5:\r
+      Reg = &Regs->Rbp;\r
+      break;\r
+    case 6:\r
+      Reg = &Regs->Rsi;\r
+      break;\r
+    case 7:\r
+      Reg = &Regs->Rdi;\r
+      break;\r
+    case 8:\r
+      Reg = &Regs->R8;\r
+      break;\r
+    case 9:\r
+      Reg = &Regs->R9;\r
+      break;\r
+    case 10:\r
+      Reg = &Regs->R10;\r
+      break;\r
+    case 11:\r
+      Reg = &Regs->R11;\r
+      break;\r
+    case 12:\r
+      Reg = &Regs->R12;\r
+      break;\r
+    case 13:\r
+      Reg = &Regs->R13;\r
+      break;\r
+    case 14:\r
+      Reg = &Regs->R14;\r
+      break;\r
+    case 15:\r
+      Reg = &Regs->R15;\r
+      break;\r
+    default:\r
+      Reg = NULL;\r
   }\r
+\r
   ASSERT (Reg != NULL);\r
 \r
   return Reg;\r
@@ -223,8 +224,8 @@ UpdateForDisplacement (
   )\r
 {\r
   InstructionData->DisplacementSize = Size;\r
-  InstructionData->Immediate += Size;\r
-  InstructionData->End += Size;\r
+  InstructionData->Immediate       += Size;\r
+  InstructionData->End             += Size;\r
 }\r
 \r
 /**\r
@@ -277,42 +278,43 @@ GetEffectiveMemoryAddress (
   SEV_ES_INSTRUCTION_OPCODE_EXT  *Ext;\r
   UINT64                         EffectiveAddress;\r
 \r
-  Ext = &InstructionData->Ext;\r
+  Ext              = &InstructionData->Ext;\r
   EffectiveAddress = 0;\r
 \r
   if (IsRipRelative (InstructionData)) {\r
     //\r
     // RIP-relative displacement is a 32-bit signed value\r
     //\r
-    INT32 RipRelative;\r
+    INT32  RipRelative;\r
 \r
-    RipRelative = *(INT32 *) InstructionData->Displacement;\r
+    RipRelative = *(INT32 *)InstructionData->Displacement;\r
 \r
     UpdateForDisplacement (InstructionData, 4);\r
 \r
     //\r
     // Negative displacement is handled by standard UINT64 wrap-around.\r
     //\r
-    return Regs->Rip + (UINT64) RipRelative;\r
+    return Regs->Rip + (UINT64)RipRelative;\r
   }\r
 \r
   switch (Ext->ModRm.Mod) {\r
-  case 1:\r
-    UpdateForDisplacement (InstructionData, 1);\r
-    EffectiveAddress += (UINT64) (*(INT8 *) (InstructionData->Displacement));\r
-    break;\r
-  case 2:\r
-    switch (InstructionData->AddrSize) {\r
-    case Size16Bits:\r
-      UpdateForDisplacement (InstructionData, 2);\r
-      EffectiveAddress += (UINT64) (*(INT16 *) (InstructionData->Displacement));\r
+    case 1:\r
+      UpdateForDisplacement (InstructionData, 1);\r
+      EffectiveAddress += (UINT64)(*(INT8 *)(InstructionData->Displacement));\r
       break;\r
-    default:\r
-      UpdateForDisplacement (InstructionData, 4);\r
-      EffectiveAddress += (UINT64) (*(INT32 *) (InstructionData->Displacement));\r
+    case 2:\r
+      switch (InstructionData->AddrSize) {\r
+        case Size16Bits:\r
+          UpdateForDisplacement (InstructionData, 2);\r
+          EffectiveAddress += (UINT64)(*(INT16 *)(InstructionData->Displacement));\r
+          break;\r
+        default:\r
+          UpdateForDisplacement (InstructionData, 4);\r
+          EffectiveAddress += (UINT64)(*(INT32 *)(InstructionData->Displacement));\r
+          break;\r
+      }\r
+\r
       break;\r
-    }\r
-    break;\r
   }\r
 \r
   if (InstructionData->SibPresent) {\r
@@ -329,14 +331,14 @@ GetEffectiveMemoryAddress (
       //\r
       // Negative displacement is handled by standard UINT64 wrap-around.\r
       //\r
-      EffectiveAddress += (UINT64) Displacement;\r
+      EffectiveAddress += (UINT64)Displacement;\r
     }\r
 \r
     if ((Ext->Sib.Base != 5) || Ext->ModRm.Mod) {\r
       EffectiveAddress += *GetRegisterPointer (Regs, Ext->Sib.Base);\r
     } else {\r
       UpdateForDisplacement (InstructionData, 4);\r
-      EffectiveAddress += (UINT64) (*(INT32 *) (InstructionData->Displacement));\r
+      EffectiveAddress += (UINT64)(*(INT32 *)(InstructionData->Displacement));\r
     }\r
   } else {\r
     EffectiveAddress += *GetRegisterPointer (Regs, Ext->ModRm.Rm);\r
@@ -368,12 +370,12 @@ DecodeModRm (
   INSTRUCTION_SIB                *Sib;\r
 \r
   RexPrefix = &InstructionData->RexPrefix;\r
-  Ext = &InstructionData->Ext;\r
-  ModRm = &InstructionData->ModRm;\r
-  Sib = &InstructionData->Sib;\r
+  Ext       = &InstructionData->Ext;\r
+  ModRm     = &InstructionData->ModRm;\r
+  Sib       = &InstructionData->Sib;\r
 \r
   InstructionData->ModRmPresent = TRUE;\r
-  ModRm->Uint8 = *(InstructionData->End);\r
+  ModRm->Uint8                  = *(InstructionData->End);\r
 \r
   InstructionData->Displacement++;\r
   InstructionData->Immediate++;\r
@@ -390,7 +392,7 @@ DecodeModRm (
   } else {\r
     if (ModRm->Bits.Rm == 4) {\r
       InstructionData->SibPresent = TRUE;\r
-      Sib->Uint8 = *(InstructionData->End);\r
+      Sib->Uint8                  = *(InstructionData->End);\r
 \r
       InstructionData->Displacement++;\r
       InstructionData->Immediate++;\r
@@ -430,11 +432,11 @@ DecodePrefixes (
   //\r
   // Always in 64-bit mode\r
   //\r
-  Mode = LongMode64Bit;\r
+  Mode         = LongMode64Bit;\r
   ModeDataSize = Size32Bits;\r
   ModeAddrSize = Size64Bits;\r
 \r
-  InstructionData->Mode = Mode;\r
+  InstructionData->Mode     = Mode;\r
   InstructionData->DataSize = ModeDataSize;\r
   InstructionData->AddrSize = ModeAddrSize;\r
 \r
@@ -452,61 +454,64 @@ DecodePrefixes (
       if ((*Byte & REX_64BIT_OPERAND_SIZE_MASK) != 0) {\r
         InstructionData->DataSize = Size64Bits;\r
       }\r
+\r
       continue;\r
     }\r
 \r
     switch (*Byte) {\r
-    case OVERRIDE_SEGMENT_CS:\r
-    case OVERRIDE_SEGMENT_DS:\r
-    case OVERRIDE_SEGMENT_ES:\r
-    case OVERRIDE_SEGMENT_SS:\r
-      if (Mode != LongMode64Bit) {\r
+      case OVERRIDE_SEGMENT_CS:\r
+      case OVERRIDE_SEGMENT_DS:\r
+      case OVERRIDE_SEGMENT_ES:\r
+      case OVERRIDE_SEGMENT_SS:\r
+        if (Mode != LongMode64Bit) {\r
+          InstructionData->SegmentSpecified = TRUE;\r
+          InstructionData->Segment          = (*Byte >> 3) & 3;\r
+        }\r
+\r
+        break;\r
+\r
+      case OVERRIDE_SEGMENT_FS:\r
+      case OVERRIDE_SEGMENT_GS:\r
         InstructionData->SegmentSpecified = TRUE;\r
-        InstructionData->Segment = (*Byte >> 3) & 3;\r
-      }\r
-      break;\r
-\r
-    case OVERRIDE_SEGMENT_FS:\r
-    case OVERRIDE_SEGMENT_GS:\r
-      InstructionData->SegmentSpecified = TRUE;\r
-      InstructionData->Segment = *Byte & 7;\r
-      break;\r
-\r
-    case OVERRIDE_OPERAND_SIZE:\r
-      if (InstructionData->RexPrefix.Uint8 == 0) {\r
-        InstructionData->DataSize =\r
-          (Mode == LongMode64Bit)       ? Size16Bits :\r
+        InstructionData->Segment          = *Byte & 7;\r
+        break;\r
+\r
+      case OVERRIDE_OPERAND_SIZE:\r
+        if (InstructionData->RexPrefix.Uint8 == 0) {\r
+          InstructionData->DataSize =\r
+            (Mode == LongMode64Bit)       ? Size16Bits :\r
+            (Mode == LongModeCompat32Bit) ? Size16Bits :\r
+            (Mode == LongModeCompat16Bit) ? Size32Bits : 0;\r
+        }\r
+\r
+        break;\r
+\r
+      case OVERRIDE_ADDRESS_SIZE:\r
+        InstructionData->AddrSize =\r
+          (Mode == LongMode64Bit)       ? Size32Bits :\r
           (Mode == LongModeCompat32Bit) ? Size16Bits :\r
           (Mode == LongModeCompat16Bit) ? Size32Bits : 0;\r
-      }\r
-      break;\r
-\r
-    case OVERRIDE_ADDRESS_SIZE:\r
-      InstructionData->AddrSize =\r
-        (Mode == LongMode64Bit)       ? Size32Bits :\r
-        (Mode == LongModeCompat32Bit) ? Size16Bits :\r
-        (Mode == LongModeCompat16Bit) ? Size32Bits : 0;\r
-      break;\r
+        break;\r
 \r
-    case LOCK_PREFIX:\r
-      break;\r
+      case LOCK_PREFIX:\r
+        break;\r
 \r
-    case REPZ_PREFIX:\r
-      InstructionData->RepMode = RepZ;\r
-      break;\r
+      case REPZ_PREFIX:\r
+        InstructionData->RepMode = RepZ;\r
+        break;\r
 \r
-    case REPNZ_PREFIX:\r
-      InstructionData->RepMode = RepNZ;\r
-      break;\r
+      case REPNZ_PREFIX:\r
+        InstructionData->RepMode = RepNZ;\r
+        break;\r
 \r
-    default:\r
-      InstructionData->OpCodes = Byte;\r
-      InstructionData->OpCodeSize = (*Byte == TWO_BYTE_OPCODE_ESCAPE) ? 2 : 1;\r
+      default:\r
+        InstructionData->OpCodes    = Byte;\r
+        InstructionData->OpCodeSize = (*Byte == TWO_BYTE_OPCODE_ESCAPE) ? 2 : 1;\r
 \r
-      InstructionData->End = Byte + InstructionData->OpCodeSize;\r
-      InstructionData->Displacement = InstructionData->End;\r
-      InstructionData->Immediate = InstructionData->End;\r
-      return;\r
+        InstructionData->End          = Byte + InstructionData->OpCodeSize;\r
+        InstructionData->Displacement = InstructionData->End;\r
+        InstructionData->Immediate    = InstructionData->End;\r
+        return;\r
     }\r
   }\r
 }\r
@@ -527,7 +532,7 @@ InstructionLength (
   IN SEV_ES_INSTRUCTION_DATA  *InstructionData\r
   )\r
 {\r
-  return (UINT64) (InstructionData->End - InstructionData->Begin);\r
+  return (UINT64)(InstructionData->End - InstructionData->Begin);\r
 }\r
 \r
 /**\r
@@ -551,9 +556,9 @@ InitInstructionData (
   )\r
 {\r
   SetMem (InstructionData, sizeof (*InstructionData), 0);\r
-  InstructionData->Ghcb = Ghcb;\r
-  InstructionData->Begin = (UINT8 *) Regs->Rip;\r
-  InstructionData->End = (UINT8 *) Regs->Rip;\r
+  InstructionData->Ghcb  = Ghcb;\r
+  InstructionData->Begin = (UINT8 *)Regs->Rip;\r
+  InstructionData->End   = (UINT8 *)Regs->Rip;\r
 \r
   DecodePrefixes (Regs, InstructionData);\r
 }\r
@@ -585,7 +590,7 @@ UnsupportedExit (
   if (Status == 0) {\r
     GHCB_EVENT_INJECTION  Event;\r
 \r
-    Event.Uint64 = 0;\r
+    Event.Uint64          = 0;\r
     Event.Elements.Vector = GP_EXCEPTION;\r
     Event.Elements.Type   = GHCB_EVENT_INJECTION_TYPE_EXCEPTION;\r
     Event.Elements.Valid  = 1;\r
@@ -643,10 +648,12 @@ ValidateMmioMemory (
   //\r
   // Any state other than unencrypted is an error, issue a #GP.\r
   //\r
-  DEBUG ((DEBUG_ERROR,\r
+  DEBUG ((\r
+    DEBUG_ERROR,\r
     "MMIO using encrypted memory: %lx\n",\r
-    (UINT64) MemoryAddress));\r
-  GpEvent.Uint64 = 0;\r
+    (UINT64)MemoryAddress\r
+    ));\r
+  GpEvent.Uint64          = 0;\r
   GpEvent.Elements.Vector = GP_EXCEPTION;\r
   GpEvent.Elements.Type   = GHCB_EVENT_INJECTION_TYPE_EXCEPTION;\r
   GpEvent.Elements.Valid  = 1;\r
@@ -690,317 +697,322 @@ MmioExit (
   }\r
 \r
   switch (OpCode) {\r
-  //\r
-  // MMIO write (MOV reg/memX, regX)\r
-  //\r
-  case 0x88:\r
-    Bytes = 1;\r
+    //\r
+    // MMIO write (MOV reg/memX, regX)\r
+    //\r
+    case 0x88:\r
+      Bytes = 1;\r
     //\r
     // fall through\r
     //\r
-  case 0x89:\r
-    DecodeModRm (Regs, InstructionData);\r
-    Bytes = ((Bytes != 0) ? Bytes :\r
-             (InstructionData->DataSize == Size16Bits) ? 2 :\r
-             (InstructionData->DataSize == Size32Bits) ? 4 :\r
-             (InstructionData->DataSize == Size64Bits) ? 8 :\r
-             0);\r
-\r
-    if (InstructionData->Ext.ModRm.Mod == 3) {\r
-      //\r
-      // NPF on two register operands???\r
-      //\r
-      return UnsupportedExit (Ghcb, Regs, InstructionData);\r
-    }\r
+    case 0x89:\r
+      DecodeModRm (Regs, InstructionData);\r
+      Bytes = ((Bytes != 0) ? Bytes :\r
+               (InstructionData->DataSize == Size16Bits) ? 2 :\r
+               (InstructionData->DataSize == Size32Bits) ? 4 :\r
+               (InstructionData->DataSize == Size64Bits) ? 8 :\r
+               0);\r
+\r
+      if (InstructionData->Ext.ModRm.Mod == 3) {\r
+        //\r
+        // NPF on two register operands???\r
+        //\r
+        return UnsupportedExit (Ghcb, Regs, InstructionData);\r
+      }\r
 \r
-    Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-    ExitInfo1 = InstructionData->Ext.RmData;\r
-    ExitInfo2 = Bytes;\r
-    CopyMem (Ghcb->SharedBuffer, &InstructionData->Ext.RegData, Bytes);\r
+      ExitInfo1 = InstructionData->Ext.RmData;\r
+      ExitInfo2 = Bytes;\r
+      CopyMem (Ghcb->SharedBuffer, &InstructionData->Ext.RegData, Bytes);\r
 \r
-    Ghcb->SaveArea.SwScratch = (UINT64) Ghcb->SharedBuffer;\r
-    VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
-    Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
-    break;\r
+      Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;\r
+      VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
+      Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-  //\r
-  // MMIO write (MOV moffsetX, aX)\r
-  //\r
-  case 0xA2:\r
-    Bytes = 1;\r
+      break;\r
+\r
+    //\r
+    // MMIO write (MOV moffsetX, aX)\r
+    //\r
+    case 0xA2:\r
+      Bytes = 1;\r
     //\r
     // fall through\r
     //\r
-  case 0xA3:\r
-    Bytes = ((Bytes != 0) ? Bytes :\r
-             (InstructionData->DataSize == Size16Bits) ? 2 :\r
-             (InstructionData->DataSize == Size32Bits) ? 4 :\r
-             (InstructionData->DataSize == Size64Bits) ? 8 :\r
-             0);\r
+    case 0xA3:\r
+      Bytes = ((Bytes != 0) ? Bytes :\r
+               (InstructionData->DataSize == Size16Bits) ? 2 :\r
+               (InstructionData->DataSize == Size32Bits) ? 4 :\r
+               (InstructionData->DataSize == Size64Bits) ? 8 :\r
+               0);\r
 \r
-    InstructionData->ImmediateSize = (UINTN) (1 << InstructionData->AddrSize);\r
-    InstructionData->End += InstructionData->ImmediateSize;\r
+      InstructionData->ImmediateSize = (UINTN)(1 << InstructionData->AddrSize);\r
+      InstructionData->End          += InstructionData->ImmediateSize;\r
 \r
-    //\r
-    // This code is X64 only, so a possible 8-byte copy to a UINTN is ok.\r
-    // Use a STATIC_ASSERT to be certain the code is being built as X64.\r
-    //\r
-    STATIC_ASSERT (\r
-      sizeof (UINTN) == sizeof (UINT64),\r
-      "sizeof (UINTN) != sizeof (UINT64), this file must be built as X64"\r
-      );\r
-\r
-    Address = 0;\r
-    CopyMem (\r
-      &Address,\r
-      InstructionData->Immediate,\r
-      InstructionData->ImmediateSize\r
-      );\r
-\r
-    Status = ValidateMmioMemory (Ghcb, Address, Bytes);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      //\r
+      // This code is X64 only, so a possible 8-byte copy to a UINTN is ok.\r
+      // Use a STATIC_ASSERT to be certain the code is being built as X64.\r
+      //\r
+      STATIC_ASSERT (\r
+        sizeof (UINTN) == sizeof (UINT64),\r
+        "sizeof (UINTN) != sizeof (UINT64), this file must be built as X64"\r
+        );\r
 \r
-    ExitInfo1 = Address;\r
-    ExitInfo2 = Bytes;\r
-    CopyMem (Ghcb->SharedBuffer, &Regs->Rax, Bytes);\r
+      Address = 0;\r
+      CopyMem (\r
+        &Address,\r
+        InstructionData->Immediate,\r
+        InstructionData->ImmediateSize\r
+        );\r
 \r
-    Ghcb->SaveArea.SwScratch = (UINT64) Ghcb->SharedBuffer;\r
-    VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
-    Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
-    break;\r
+      Status = ValidateMmioMemory (Ghcb, Address, Bytes);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-  //\r
-  // MMIO write (MOV reg/memX, immX)\r
-  //\r
-  case 0xC6:\r
-    Bytes = 1;\r
+      ExitInfo1 = Address;\r
+      ExitInfo2 = Bytes;\r
+      CopyMem (Ghcb->SharedBuffer, &Regs->Rax, Bytes);\r
+\r
+      Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;\r
+      VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
+      Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
+\r
+      break;\r
+\r
+    //\r
+    // MMIO write (MOV reg/memX, immX)\r
+    //\r
+    case 0xC6:\r
+      Bytes = 1;\r
     //\r
     // fall through\r
     //\r
-  case 0xC7:\r
-    DecodeModRm (Regs, InstructionData);\r
-    Bytes = ((Bytes != 0) ? Bytes :\r
-             (InstructionData->DataSize == Size16Bits) ? 2 :\r
-             (InstructionData->DataSize == Size32Bits) ? 4 :\r
-             0);\r
+    case 0xC7:\r
+      DecodeModRm (Regs, InstructionData);\r
+      Bytes = ((Bytes != 0) ? Bytes :\r
+               (InstructionData->DataSize == Size16Bits) ? 2 :\r
+               (InstructionData->DataSize == Size32Bits) ? 4 :\r
+               0);\r
 \r
-    InstructionData->ImmediateSize = Bytes;\r
-    InstructionData->End += Bytes;\r
+      InstructionData->ImmediateSize = Bytes;\r
+      InstructionData->End          += Bytes;\r
 \r
-    Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-    ExitInfo1 = InstructionData->Ext.RmData;\r
-    ExitInfo2 = Bytes;\r
-    CopyMem (Ghcb->SharedBuffer, InstructionData->Immediate, Bytes);\r
+      ExitInfo1 = InstructionData->Ext.RmData;\r
+      ExitInfo2 = Bytes;\r
+      CopyMem (Ghcb->SharedBuffer, InstructionData->Immediate, Bytes);\r
 \r
-    Ghcb->SaveArea.SwScratch = (UINT64) Ghcb->SharedBuffer;\r
-    VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
-    Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
-    break;\r
+      Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;\r
+      VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
+      Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-  //\r
-  // MMIO read (MOV regX, reg/memX)\r
-  //\r
-  case 0x8A:\r
-    Bytes = 1;\r
+      break;\r
+\r
+    //\r
+    // MMIO read (MOV regX, reg/memX)\r
+    //\r
+    case 0x8A:\r
+      Bytes = 1;\r
     //\r
     // fall through\r
     //\r
-  case 0x8B:\r
-    DecodeModRm (Regs, InstructionData);\r
-    Bytes = ((Bytes != 0) ? Bytes :\r
-             (InstructionData->DataSize == Size16Bits) ? 2 :\r
-             (InstructionData->DataSize == Size32Bits) ? 4 :\r
-             (InstructionData->DataSize == Size64Bits) ? 8 :\r
-             0);\r
-    if (InstructionData->Ext.ModRm.Mod == 3) {\r
-      //\r
-      // NPF on two register operands???\r
-      //\r
-      return UnsupportedExit (Ghcb, Regs, InstructionData);\r
-    }\r
+    case 0x8B:\r
+      DecodeModRm (Regs, InstructionData);\r
+      Bytes = ((Bytes != 0) ? Bytes :\r
+               (InstructionData->DataSize == Size16Bits) ? 2 :\r
+               (InstructionData->DataSize == Size32Bits) ? 4 :\r
+               (InstructionData->DataSize == Size64Bits) ? 8 :\r
+               0);\r
+      if (InstructionData->Ext.ModRm.Mod == 3) {\r
+        //\r
+        // NPF on two register operands???\r
+        //\r
+        return UnsupportedExit (Ghcb, Regs, InstructionData);\r
+      }\r
 \r
-    Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-    ExitInfo1 = InstructionData->Ext.RmData;\r
-    ExitInfo2 = Bytes;\r
+      ExitInfo1 = InstructionData->Ext.RmData;\r
+      ExitInfo2 = Bytes;\r
 \r
-    Ghcb->SaveArea.SwScratch = (UINT64) Ghcb->SharedBuffer;\r
-    VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
-    Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;\r
+      VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
+      Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-    Register = GetRegisterPointer (Regs, InstructionData->Ext.ModRm.Reg);\r
-    if (Bytes == 4) {\r
-      //\r
-      // Zero-extend for 32-bit operation\r
-      //\r
-      *Register = 0;\r
-    }\r
-    CopyMem (Register, Ghcb->SharedBuffer, Bytes);\r
-    break;\r
+      Register = GetRegisterPointer (Regs, InstructionData->Ext.ModRm.Reg);\r
+      if (Bytes == 4) {\r
+        //\r
+        // Zero-extend for 32-bit operation\r
+        //\r
+        *Register = 0;\r
+      }\r
+\r
+      CopyMem (Register, Ghcb->SharedBuffer, Bytes);\r
+      break;\r
 \r
-  //\r
-  // MMIO read (MOV aX, moffsetX)\r
-  //\r
-  case 0xA0:\r
-    Bytes = 1;\r
     //\r
-    // fall through\r
+    // MMIO read (MOV aX, moffsetX)\r
     //\r
-  case 0xA1:\r
-    Bytes = ((Bytes != 0) ? Bytes :\r
-             (InstructionData->DataSize == Size16Bits) ? 2 :\r
-             (InstructionData->DataSize == Size32Bits) ? 4 :\r
-             (InstructionData->DataSize == Size64Bits) ? 8 :\r
-             0);\r
-\r
-    InstructionData->ImmediateSize = (UINTN) (1 << InstructionData->AddrSize);\r
-    InstructionData->End += InstructionData->ImmediateSize;\r
-\r
+    case 0xA0:\r
+      Bytes = 1;\r
     //\r
-    // This code is X64 only, so a possible 8-byte copy to a UINTN is ok.\r
-    // Use a STATIC_ASSERT to be certain the code is being built as X64.\r
+    // fall through\r
     //\r
-    STATIC_ASSERT (\r
-      sizeof (UINTN) == sizeof (UINT64),\r
-      "sizeof (UINTN) != sizeof (UINT64), this file must be built as X64"\r
-      );\r
-\r
-    Address = 0;\r
-    CopyMem (\r
-      &Address,\r
-      InstructionData->Immediate,\r
-      InstructionData->ImmediateSize\r
-      );\r
-\r
-    Status = ValidateMmioMemory (Ghcb, Address, Bytes);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
-\r
-    ExitInfo1 = Address;\r
-    ExitInfo2 = Bytes;\r
+    case 0xA1:\r
+      Bytes = ((Bytes != 0) ? Bytes :\r
+               (InstructionData->DataSize == Size16Bits) ? 2 :\r
+               (InstructionData->DataSize == Size32Bits) ? 4 :\r
+               (InstructionData->DataSize == Size64Bits) ? 8 :\r
+               0);\r
 \r
-    Ghcb->SaveArea.SwScratch = (UINT64) Ghcb->SharedBuffer;\r
-    VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
-    Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      InstructionData->ImmediateSize = (UINTN)(1 << InstructionData->AddrSize);\r
+      InstructionData->End          += InstructionData->ImmediateSize;\r
 \r
-    if (Bytes == 4) {\r
       //\r
-      // Zero-extend for 32-bit operation\r
+      // This code is X64 only, so a possible 8-byte copy to a UINTN is ok.\r
+      // Use a STATIC_ASSERT to be certain the code is being built as X64.\r
       //\r
-      Regs->Rax = 0;\r
-    }\r
-    CopyMem (&Regs->Rax, Ghcb->SharedBuffer, Bytes);\r
-    break;\r
+      STATIC_ASSERT (\r
+        sizeof (UINTN) == sizeof (UINT64),\r
+        "sizeof (UINTN) != sizeof (UINT64), this file must be built as X64"\r
+        );\r
 \r
-  //\r
-  // MMIO read w/ zero-extension ((MOVZX regX, reg/memX)\r
-  //\r
-  case 0xB6:\r
-    Bytes = 1;\r
+      Address = 0;\r
+      CopyMem (\r
+        &Address,\r
+        InstructionData->Immediate,\r
+        InstructionData->ImmediateSize\r
+        );\r
+\r
+      Status = ValidateMmioMemory (Ghcb, Address, Bytes);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
+\r
+      ExitInfo1 = Address;\r
+      ExitInfo2 = Bytes;\r
+\r
+      Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;\r
+      VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
+      Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
+\r
+      if (Bytes == 4) {\r
+        //\r
+        // Zero-extend for 32-bit operation\r
+        //\r
+        Regs->Rax = 0;\r
+      }\r
+\r
+      CopyMem (&Regs->Rax, Ghcb->SharedBuffer, Bytes);\r
+      break;\r
+\r
+    //\r
+    // MMIO read w/ zero-extension ((MOVZX regX, reg/memX)\r
+    //\r
+    case 0xB6:\r
+      Bytes = 1;\r
     //\r
     // fall through\r
     //\r
-  case 0xB7:\r
-    DecodeModRm (Regs, InstructionData);\r
-    Bytes = (Bytes != 0) ? Bytes : 2;\r
+    case 0xB7:\r
+      DecodeModRm (Regs, InstructionData);\r
+      Bytes = (Bytes != 0) ? Bytes : 2;\r
 \r
-    Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-    ExitInfo1 = InstructionData->Ext.RmData;\r
-    ExitInfo2 = Bytes;\r
+      ExitInfo1 = InstructionData->Ext.RmData;\r
+      ExitInfo2 = Bytes;\r
 \r
-    Ghcb->SaveArea.SwScratch = (UINT64) Ghcb->SharedBuffer;\r
-    VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
-    Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;\r
+      VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
+      Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-    Register = GetRegisterPointer (Regs, InstructionData->Ext.ModRm.Reg);\r
-    SetMem (Register, (UINTN) (1 << InstructionData->DataSize), 0);\r
-    CopyMem (Register, Ghcb->SharedBuffer, Bytes);\r
-    break;\r
+      Register = GetRegisterPointer (Regs, InstructionData->Ext.ModRm.Reg);\r
+      SetMem (Register, (UINTN)(1 << InstructionData->DataSize), 0);\r
+      CopyMem (Register, Ghcb->SharedBuffer, Bytes);\r
+      break;\r
 \r
-  //\r
-  // MMIO read w/ sign-extension (MOVSX regX, reg/memX)\r
-  //\r
-  case 0xBE:\r
-    Bytes = 1;\r
+    //\r
+    // MMIO read w/ sign-extension (MOVSX regX, reg/memX)\r
+    //\r
+    case 0xBE:\r
+      Bytes = 1;\r
     //\r
     // fall through\r
     //\r
-  case 0xBF:\r
-    DecodeModRm (Regs, InstructionData);\r
-    Bytes = (Bytes != 0) ? Bytes : 2;\r
+    case 0xBF:\r
+      DecodeModRm (Regs, InstructionData);\r
+      Bytes = (Bytes != 0) ? Bytes : 2;\r
 \r
-    Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      Status = ValidateMmioMemory (Ghcb, InstructionData->Ext.RmData, Bytes);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-    ExitInfo1 = InstructionData->Ext.RmData;\r
-    ExitInfo2 = Bytes;\r
+      ExitInfo1 = InstructionData->Ext.RmData;\r
+      ExitInfo2 = Bytes;\r
 \r
-    Ghcb->SaveArea.SwScratch = (UINT64) Ghcb->SharedBuffer;\r
-    VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
-    Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);\r
-    if (Status != 0) {\r
-      return Status;\r
-    }\r
+      Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;\r
+      VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
+      Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);\r
+      if (Status != 0) {\r
+        return Status;\r
+      }\r
 \r
-    if (Bytes == 1) {\r
-      UINT8 *Data;\r
+      if (Bytes == 1) {\r
+        UINT8  *Data;\r
 \r
-      Data = (UINT8 *) Ghcb->SharedBuffer;\r
-      SignByte = ((*Data & BIT7) != 0) ? 0xFF : 0x00;\r
-    } else {\r
-      UINT16 *Data;\r
+        Data     = (UINT8 *)Ghcb->SharedBuffer;\r
+        SignByte = ((*Data & BIT7) != 0) ? 0xFF : 0x00;\r
+      } else {\r
+        UINT16  *Data;\r
 \r
-      Data = (UINT16 *) Ghcb->SharedBuffer;\r
-      SignByte = ((*Data & BIT15) != 0) ? 0xFF : 0x00;\r
-    }\r
+        Data     = (UINT16 *)Ghcb->SharedBuffer;\r
+        SignByte = ((*Data & BIT15) != 0) ? 0xFF : 0x00;\r
+      }\r
 \r
-    Register = GetRegisterPointer (Regs, InstructionData->Ext.ModRm.Reg);\r
-    SetMem (Register, (UINTN) (1 << InstructionData->DataSize), SignByte);\r
-    CopyMem (Register, Ghcb->SharedBuffer, Bytes);\r
-    break;\r
+      Register = GetRegisterPointer (Regs, InstructionData->Ext.ModRm.Reg);\r
+      SetMem (Register, (UINTN)(1 << InstructionData->DataSize), SignByte);\r
+      CopyMem (Register, Ghcb->SharedBuffer, Bytes);\r
+      break;\r
 \r
-  default:\r
-    DEBUG ((DEBUG_ERROR, "Invalid MMIO opcode (%x)\n", OpCode));\r
-    Status = GP_EXCEPTION;\r
-    ASSERT (FALSE);\r
+    default:\r
+      DEBUG ((DEBUG_ERROR, "Invalid MMIO opcode (%x)\n", OpCode));\r
+      Status = GP_EXCEPTION;\r
+      ASSERT (FALSE);\r
   }\r
 \r
   return Status;\r
@@ -1130,9 +1142,11 @@ RdtscpExit (
 \r
   if (!VmgIsOffsetValid (Ghcb, GhcbRax) ||\r
       !VmgIsOffsetValid (Ghcb, GhcbRcx) ||\r
-      !VmgIsOffsetValid (Ghcb, GhcbRdx)) {\r
+      !VmgIsOffsetValid (Ghcb, GhcbRdx))\r
+  {\r
     return UnsupportedExit (Ghcb, Regs, InstructionData);\r
   }\r
+\r
   Regs->Rax = Ghcb->SaveArea.Rax;\r
   Regs->Rcx = Ghcb->SaveArea.Rcx;\r
   Regs->Rdx = Ghcb->SaveArea.Rdx;\r
@@ -1168,7 +1182,7 @@ VmmCallExit (
 \r
   Ghcb->SaveArea.Rax = Regs->Rax;\r
   VmgSetOffsetValid (Ghcb, GhcbRax);\r
-  Ghcb->SaveArea.Cpl = (UINT8) (Regs->Cs & 0x3);\r
+  Ghcb->SaveArea.Cpl = (UINT8)(Regs->Cs & 0x3);\r
   VmgSetOffsetValid (Ghcb, GhcbCpl);\r
 \r
   Status = VmgExit (Ghcb, SVM_EXIT_VMMCALL, 0, 0);\r
@@ -1179,6 +1193,7 @@ VmmCallExit (
   if (!VmgIsOffsetValid (Ghcb, GhcbRax)) {\r
     return UnsupportedExit (Ghcb, Regs, InstructionData);\r
   }\r
+\r
   Regs->Rax = Ghcb->SaveArea.Rax;\r
 \r
   return 0;\r
@@ -1211,21 +1226,21 @@ MsrExit (
   ExitInfo1 = 0;\r
 \r
   switch (*(InstructionData->OpCodes + 1)) {\r
-  case 0x30: // WRMSR\r
-    ExitInfo1 = 1;\r
-    Ghcb->SaveArea.Rax = Regs->Rax;\r
-    VmgSetOffsetValid (Ghcb, GhcbRax);\r
-    Ghcb->SaveArea.Rdx = Regs->Rdx;\r
-    VmgSetOffsetValid (Ghcb, GhcbRdx);\r
+    case 0x30: // WRMSR\r
+      ExitInfo1          = 1;\r
+      Ghcb->SaveArea.Rax = Regs->Rax;\r
+      VmgSetOffsetValid (Ghcb, GhcbRax);\r
+      Ghcb->SaveArea.Rdx = Regs->Rdx;\r
+      VmgSetOffsetValid (Ghcb, GhcbRdx);\r
     //\r
     // fall through\r
     //\r
-  case 0x32: // RDMSR\r
-    Ghcb->SaveArea.Rcx = Regs->Rcx;\r
-    VmgSetOffsetValid (Ghcb, GhcbRcx);\r
-    break;\r
-  default:\r
-    return UnsupportedExit (Ghcb, Regs, InstructionData);\r
+    case 0x32: // RDMSR\r
+      Ghcb->SaveArea.Rcx = Regs->Rcx;\r
+      VmgSetOffsetValid (Ghcb, GhcbRcx);\r
+      break;\r
+    default:\r
+      return UnsupportedExit (Ghcb, Regs, InstructionData);\r
   }\r
 \r
   Status = VmgExit (Ghcb, SVM_EXIT_MSR, ExitInfo1, 0);\r
@@ -1235,9 +1250,11 @@ MsrExit (
 \r
   if (ExitInfo1 == 0) {\r
     if (!VmgIsOffsetValid (Ghcb, GhcbRax) ||\r
-        !VmgIsOffsetValid (Ghcb, GhcbRdx)) {\r
+        !VmgIsOffsetValid (Ghcb, GhcbRdx))\r
+    {\r
       return UnsupportedExit (Ghcb, Regs, InstructionData);\r
     }\r
+\r
     Regs->Rax = Ghcb->SaveArea.Rax;\r
     Regs->Rdx = Ghcb->SaveArea.Rdx;\r
   }\r
@@ -1269,106 +1286,106 @@ IoioExitInfo (
   ExitInfo = 0;\r
 \r
   switch (*(InstructionData->OpCodes)) {\r
-  //\r
-  // INS opcodes\r
-  //\r
-  case 0x6C:\r
-  case 0x6D:\r
-    ExitInfo |= IOIO_TYPE_INS;\r
-    ExitInfo |= IOIO_SEG_ES;\r
-    ExitInfo |= ((Regs->Rdx & 0xffff) << 16);\r
-    break;\r
+    //\r
+    // INS opcodes\r
+    //\r
+    case 0x6C:\r
+    case 0x6D:\r
+      ExitInfo |= IOIO_TYPE_INS;\r
+      ExitInfo |= IOIO_SEG_ES;\r
+      ExitInfo |= ((Regs->Rdx & 0xffff) << 16);\r
+      break;\r
 \r
-  //\r
-  // OUTS opcodes\r
-  //\r
-  case 0x6E:\r
-  case 0x6F:\r
-    ExitInfo |= IOIO_TYPE_OUTS;\r
-    ExitInfo |= IOIO_SEG_DS;\r
-    ExitInfo |= ((Regs->Rdx & 0xffff) << 16);\r
-    break;\r
+    //\r
+    // OUTS opcodes\r
+    //\r
+    case 0x6E:\r
+    case 0x6F:\r
+      ExitInfo |= IOIO_TYPE_OUTS;\r
+      ExitInfo |= IOIO_SEG_DS;\r
+      ExitInfo |= ((Regs->Rdx & 0xffff) << 16);\r
+      break;\r
 \r
-  //\r
-  // IN immediate opcodes\r
-  //\r
-  case 0xE4:\r
-  case 0xE5:\r
-    InstructionData->ImmediateSize = 1;\r
-    InstructionData->End++;\r
-    ExitInfo |= IOIO_TYPE_IN;\r
-    ExitInfo |= ((*(InstructionData->OpCodes + 1)) << 16);\r
-    break;\r
+    //\r
+    // IN immediate opcodes\r
+    //\r
+    case 0xE4:\r
+    case 0xE5:\r
+      InstructionData->ImmediateSize = 1;\r
+      InstructionData->End++;\r
+      ExitInfo |= IOIO_TYPE_IN;\r
+      ExitInfo |= ((*(InstructionData->OpCodes + 1)) << 16);\r
+      break;\r
 \r
-  //\r
-  // OUT immediate opcodes\r
-  //\r
-  case 0xE6:\r
-  case 0xE7:\r
-    InstructionData->ImmediateSize = 1;\r
-    InstructionData->End++;\r
-    ExitInfo |= IOIO_TYPE_OUT;\r
-    ExitInfo |= ((*(InstructionData->OpCodes + 1)) << 16) | IOIO_TYPE_OUT;\r
-    break;\r
+    //\r
+    // OUT immediate opcodes\r
+    //\r
+    case 0xE6:\r
+    case 0xE7:\r
+      InstructionData->ImmediateSize = 1;\r
+      InstructionData->End++;\r
+      ExitInfo |= IOIO_TYPE_OUT;\r
+      ExitInfo |= ((*(InstructionData->OpCodes + 1)) << 16) | IOIO_TYPE_OUT;\r
+      break;\r
 \r
-  //\r
-  // IN register opcodes\r
-  //\r
-  case 0xEC:\r
-  case 0xED:\r
-    ExitInfo |= IOIO_TYPE_IN;\r
-    ExitInfo |= ((Regs->Rdx & 0xffff) << 16);\r
-    break;\r
+    //\r
+    // IN register opcodes\r
+    //\r
+    case 0xEC:\r
+    case 0xED:\r
+      ExitInfo |= IOIO_TYPE_IN;\r
+      ExitInfo |= ((Regs->Rdx & 0xffff) << 16);\r
+      break;\r
 \r
-  //\r
-  // OUT register opcodes\r
-  //\r
-  case 0xEE:\r
-  case 0xEF:\r
-    ExitInfo |= IOIO_TYPE_OUT;\r
-    ExitInfo |= ((Regs->Rdx & 0xffff) << 16);\r
-    break;\r
+    //\r
+    // OUT register opcodes\r
+    //\r
+    case 0xEE:\r
+    case 0xEF:\r
+      ExitInfo |= IOIO_TYPE_OUT;\r
+      ExitInfo |= ((Regs->Rdx & 0xffff) << 16);\r
+      break;\r
 \r
-  default:\r
-    return 0;\r
+    default:\r
+      return 0;\r
   }\r
 \r
   switch (*(InstructionData->OpCodes)) {\r
-  //\r
-  // Single-byte opcodes\r
-  //\r
-  case 0x6C:\r
-  case 0x6E:\r
-  case 0xE4:\r
-  case 0xE6:\r
-  case 0xEC:\r
-  case 0xEE:\r
-    ExitInfo |= IOIO_DATA_8;\r
-    break;\r
+    //\r
+    // Single-byte opcodes\r
+    //\r
+    case 0x6C:\r
+    case 0x6E:\r
+    case 0xE4:\r
+    case 0xE6:\r
+    case 0xEC:\r
+    case 0xEE:\r
+      ExitInfo |= IOIO_DATA_8;\r
+      break;\r
 \r
-  //\r
-  // Length determined by instruction parsing\r
-  //\r
-  default:\r
-    ExitInfo |= (InstructionData->DataSize == Size16Bits) ? IOIO_DATA_16\r
+    //\r
+    // Length determined by instruction parsing\r
+    //\r
+    default:\r
+      ExitInfo |= (InstructionData->DataSize == Size16Bits) ? IOIO_DATA_16\r
                                                           : IOIO_DATA_32;\r
   }\r
 \r
   switch (InstructionData->AddrSize) {\r
-  case Size16Bits:\r
-    ExitInfo |= IOIO_ADDR_16;\r
-    break;\r
+    case Size16Bits:\r
+      ExitInfo |= IOIO_ADDR_16;\r
+      break;\r
 \r
-  case Size32Bits:\r
-    ExitInfo |= IOIO_ADDR_32;\r
-    break;\r
+    case Size32Bits:\r
+      ExitInfo |= IOIO_ADDR_32;\r
+      break;\r
 \r
-  case Size64Bits:\r
-    ExitInfo |= IOIO_ADDR_64;\r
-    break;\r
+    case Size64Bits:\r
+      ExitInfo |= IOIO_ADDR_64;\r
+      break;\r
 \r
-  default:\r
-    break;\r
+    default:\r
+      break;\r
   }\r
 \r
   if (InstructionData->RepMode != 0) {\r
@@ -1415,20 +1432,20 @@ IoioExit (
 \r
     Status = 0;\r
 \r
-    IoBytes = IOIO_DATA_BYTES (ExitInfo1);\r
+    IoBytes   = IOIO_DATA_BYTES (ExitInfo1);\r
     GhcbCount = sizeof (Ghcb->SharedBuffer) / IoBytes;\r
 \r
     OpCount = ((ExitInfo1 & IOIO_REP) != 0) ? Regs->Rcx : 1;\r
     while (OpCount != 0) {\r
-      ExitInfo2 = MIN (OpCount, GhcbCount);\r
+      ExitInfo2    = MIN (OpCount, GhcbCount);\r
       VmgExitBytes = ExitInfo2 * IoBytes;\r
 \r
       if ((ExitInfo1 & IOIO_TYPE_IN) == 0) {\r
-        CopyMem (Ghcb->SharedBuffer, (VOID *) Regs->Rsi, VmgExitBytes);\r
+        CopyMem (Ghcb->SharedBuffer, (VOID *)Regs->Rsi, VmgExitBytes);\r
         Regs->Rsi += VmgExitBytes;\r
       }\r
 \r
-      Ghcb->SaveArea.SwScratch = (UINT64) Ghcb->SharedBuffer;\r
+      Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;\r
       VmgSetOffsetValid (Ghcb, GhcbSwScratch);\r
       Status = VmgExit (Ghcb, SVM_EXIT_IOIO_PROT, ExitInfo1, ExitInfo2);\r
       if (Status != 0) {\r
@@ -1436,7 +1453,7 @@ IoioExit (
       }\r
 \r
       if ((ExitInfo1 & IOIO_TYPE_IN) != 0) {\r
-        CopyMem ((VOID *) Regs->Rdi, Ghcb->SharedBuffer, VmgExitBytes);\r
+        CopyMem ((VOID *)Regs->Rdi, Ghcb->SharedBuffer, VmgExitBytes);\r
         Regs->Rdi += VmgExitBytes;\r
       }\r
 \r
@@ -1452,6 +1469,7 @@ IoioExit (
     } else {\r
       CopyMem (&Ghcb->SaveArea.Rax, &Regs->Rax, IOIO_DATA_BYTES (ExitInfo1));\r
     }\r
+\r
     VmgSetOffsetValid (Ghcb, GhcbRax);\r
 \r
     Status = VmgExit (Ghcb, SVM_EXIT_IOIO_PROT, ExitInfo1, 0);\r
@@ -1463,6 +1481,7 @@ IoioExit (
       if (!VmgIsOffsetValid (Ghcb, GhcbRax)) {\r
         return UnsupportedExit (Ghcb, Regs, InstructionData);\r
       }\r
+\r
       CopyMem (&Regs->Rax, &Ghcb->SaveArea.Rax, IOIO_DATA_BYTES (ExitInfo1));\r
     }\r
   }\r
@@ -1526,7 +1545,7 @@ CpuidExit (
   if (Regs->Rax == CPUID_EXTENDED_STATE) {\r
     IA32_CR4  Cr4;\r
 \r
-    Cr4.UintN = AsmReadCr4 ();\r
+    Cr4.UintN           = AsmReadCr4 ();\r
     Ghcb->SaveArea.XCr0 = (Cr4.Bits.OSXSAVE == 1) ? AsmXGetBv (0) : 1;\r
     VmgSetOffsetValid (Ghcb, GhcbXCr0);\r
   }\r
@@ -1539,9 +1558,11 @@ CpuidExit (
   if (!VmgIsOffsetValid (Ghcb, GhcbRax) ||\r
       !VmgIsOffsetValid (Ghcb, GhcbRbx) ||\r
       !VmgIsOffsetValid (Ghcb, GhcbRcx) ||\r
-      !VmgIsOffsetValid (Ghcb, GhcbRdx)) {\r
+      !VmgIsOffsetValid (Ghcb, GhcbRdx))\r
+  {\r
     return UnsupportedExit (Ghcb, Regs, InstructionData);\r
   }\r
+\r
   Regs->Rax = Ghcb->SaveArea.Rax;\r
   Regs->Rbx = Ghcb->SaveArea.Rbx;\r
   Regs->Rcx = Ghcb->SaveArea.Rcx;\r
@@ -1583,9 +1604,11 @@ RdpmcExit (
   }\r
 \r
   if (!VmgIsOffsetValid (Ghcb, GhcbRax) ||\r
-      !VmgIsOffsetValid (Ghcb, GhcbRdx)) {\r
+      !VmgIsOffsetValid (Ghcb, GhcbRdx))\r
+  {\r
     return UnsupportedExit (Ghcb, Regs, InstructionData);\r
   }\r
+\r
   Regs->Rax = Ghcb->SaveArea.Rax;\r
   Regs->Rdx = Ghcb->SaveArea.Rdx;\r
 \r
@@ -1622,9 +1645,11 @@ RdtscExit (
   }\r
 \r
   if (!VmgIsOffsetValid (Ghcb, GhcbRax) ||\r
-      !VmgIsOffsetValid (Ghcb, GhcbRdx)) {\r
+      !VmgIsOffsetValid (Ghcb, GhcbRdx))\r
+  {\r
     return UnsupportedExit (Ghcb, Regs, InstructionData);\r
   }\r
+\r
   Regs->Rax = Ghcb->SaveArea.Rax;\r
   Regs->Rdx = Ghcb->SaveArea.Rdx;\r
 \r
@@ -1658,8 +1683,8 @@ Dr7WriteExit (
   UINT64                         *Register;\r
   UINT64                         Status;\r
 \r
-  Ext = &InstructionData->Ext;\r
-  SevEsData = (SEV_ES_PER_CPU_DATA *) (Ghcb + 1);\r
+  Ext       = &InstructionData->Ext;\r
+  SevEsData = (SEV_ES_PER_CPU_DATA *)(Ghcb + 1);\r
 \r
   DecodeModRm (Regs, InstructionData);\r
 \r
@@ -1679,7 +1704,7 @@ Dr7WriteExit (
     return Status;\r
   }\r
 \r
-  SevEsData->Dr7 = *Register;\r
+  SevEsData->Dr7       = *Register;\r
   SevEsData->Dr7Cached = 1;\r
 \r
   return 0;\r
@@ -1710,8 +1735,8 @@ Dr7ReadExit (
   SEV_ES_PER_CPU_DATA            *SevEsData;\r
   UINT64                         *Register;\r
 \r
-  Ext = &InstructionData->Ext;\r
-  SevEsData = (SEV_ES_PER_CPU_DATA *) (Ghcb + 1);\r
+  Ext       = &InstructionData->Ext;\r
+  SevEsData = (SEV_ES_PER_CPU_DATA *)(Ghcb + 1);\r
 \r
   DecodeModRm (Regs, InstructionData);\r
 \r
@@ -1754,12 +1779,12 @@ InternalVmgExitHandleVc (
   IN OUT EFI_SYSTEM_CONTEXT  SystemContext\r
   )\r
 {\r
-  EFI_SYSTEM_CONTEXT_X64    *Regs;\r
-  NAE_EXIT                  NaeExit;\r
-  SEV_ES_INSTRUCTION_DATA   InstructionData;\r
-  UINT64                    ExitCode, Status;\r
-  EFI_STATUS                VcRet;\r
-  BOOLEAN                   InterruptState;\r
+  EFI_SYSTEM_CONTEXT_X64   *Regs;\r
+  NAE_EXIT                 NaeExit;\r
+  SEV_ES_INSTRUCTION_DATA  InstructionData;\r
+  UINT64                   ExitCode, Status;\r
+  EFI_STATUS               VcRet;\r
+  BOOLEAN                  InterruptState;\r
 \r
   VcRet = EFI_SUCCESS;\r
 \r
@@ -1769,64 +1794,64 @@ InternalVmgExitHandleVc (
 \r
   ExitCode = Regs->ExceptionData;\r
   switch (ExitCode) {\r
-  case SVM_EXIT_DR7_READ:\r
-    NaeExit = Dr7ReadExit;\r
-    break;\r
+    case SVM_EXIT_DR7_READ:\r
+      NaeExit = Dr7ReadExit;\r
+      break;\r
 \r
-  case SVM_EXIT_DR7_WRITE:\r
-    NaeExit = Dr7WriteExit;\r
-    break;\r
+    case SVM_EXIT_DR7_WRITE:\r
+      NaeExit = Dr7WriteExit;\r
+      break;\r
 \r
-  case SVM_EXIT_RDTSC:\r
-    NaeExit = RdtscExit;\r
-    break;\r
+    case SVM_EXIT_RDTSC:\r
+      NaeExit = RdtscExit;\r
+      break;\r
 \r
-  case SVM_EXIT_RDPMC:\r
-    NaeExit = RdpmcExit;\r
-    break;\r
+    case SVM_EXIT_RDPMC:\r
+      NaeExit = RdpmcExit;\r
+      break;\r
 \r
-  case SVM_EXIT_CPUID:\r
-    NaeExit = CpuidExit;\r
-    break;\r
+    case SVM_EXIT_CPUID:\r
+      NaeExit = CpuidExit;\r
+      break;\r
 \r
-  case SVM_EXIT_INVD:\r
-    NaeExit = InvdExit;\r
-    break;\r
+    case SVM_EXIT_INVD:\r
+      NaeExit = InvdExit;\r
+      break;\r
 \r
-  case SVM_EXIT_IOIO_PROT:\r
-    NaeExit = IoioExit;\r
-    break;\r
+    case SVM_EXIT_IOIO_PROT:\r
+      NaeExit = IoioExit;\r
+      break;\r
 \r
-  case SVM_EXIT_MSR:\r
-    NaeExit = MsrExit;\r
-    break;\r
+    case SVM_EXIT_MSR:\r
+      NaeExit = MsrExit;\r
+      break;\r
 \r
-  case SVM_EXIT_VMMCALL:\r
-    NaeExit = VmmCallExit;\r
-    break;\r
+    case SVM_EXIT_VMMCALL:\r
+      NaeExit = VmmCallExit;\r
+      break;\r
 \r
-  case SVM_EXIT_RDTSCP:\r
-    NaeExit = RdtscpExit;\r
-    break;\r
+    case SVM_EXIT_RDTSCP:\r
+      NaeExit = RdtscpExit;\r
+      break;\r
 \r
-  case SVM_EXIT_WBINVD:\r
-    NaeExit = WbinvdExit;\r
-    break;\r
+    case SVM_EXIT_WBINVD:\r
+      NaeExit = WbinvdExit;\r
+      break;\r
 \r
-  case SVM_EXIT_MONITOR:\r
-    NaeExit = MonitorExit;\r
-    break;\r
+    case SVM_EXIT_MONITOR:\r
+      NaeExit = MonitorExit;\r
+      break;\r
 \r
-  case SVM_EXIT_MWAIT:\r
-    NaeExit = MwaitExit;\r
-    break;\r
+    case SVM_EXIT_MWAIT:\r
+      NaeExit = MwaitExit;\r
+      break;\r
 \r
-  case SVM_EXIT_NPF:\r
-    NaeExit = MmioExit;\r
-    break;\r
+    case SVM_EXIT_NPF:\r
+      NaeExit = MmioExit;\r
+      break;\r
 \r
-  default:\r
-    NaeExit = UnsupportedExit;\r
+    default:\r
+      NaeExit = UnsupportedExit;\r
   }\r
 \r
   InitInstructionData (&InstructionData, Ghcb, Regs);\r