]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugAgent.c
SourceLevelDebugPkg: Apply uncrustify changes
[mirror_edk2.git] / SourceLevelDebugPkg / Library / DebugAgent / DebugAgentCommon / DebugAgent.c
index c29e4f2aa4e99a8d20336f26e5393eec7bcdb68b..a1e61a6ef90eb21e3b61b93302853d0b8efbe9d5 100644 (file)
 #include "DebugAgent.h"\r
 #include "Ia32/DebugException.h"\r
 \r
-GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 mErrorMsgVersionAlert[]       = "\rThe SourceLevelDebugPkg you are using requires a newer version of the Intel(R) UDK Debugger Tool.\r\n";\r
-GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 mErrorMsgSendInitPacket[]     = "\rSend INIT break packet and try to connect the HOST (Intel(R) UDK Debugger Tool v1.5) ...\r\n";\r
-GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 mErrorMsgConnectOK[]          = "HOST connection is successful!\r\n";\r
-GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 mErrorMsgConnectFail[]        = "HOST connection is failed!\r\n";\r
-GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 mWarningMsgIngoreBreakpoint[] = "Ignore break point in SMM for SMI issued during DXE debugging!\r\n";\r
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8  mErrorMsgVersionAlert[]       = "\rThe SourceLevelDebugPkg you are using requires a newer version of the Intel(R) UDK Debugger Tool.\r\n";\r
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8  mErrorMsgSendInitPacket[]     = "\rSend INIT break packet and try to connect the HOST (Intel(R) UDK Debugger Tool v1.5) ...\r\n";\r
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8  mErrorMsgConnectOK[]          = "HOST connection is successful!\r\n";\r
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8  mErrorMsgConnectFail[]        = "HOST connection is failed!\r\n";\r
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8  mWarningMsgIngoreBreakpoint[] = "Ignore break point in SMM for SMI issued during DXE debugging!\r\n";\r
 \r
 //\r
 // Vector Handoff Info list used by Debug Agent for persist\r
 //\r
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_VECTOR_HANDOFF_INFO mVectorHandoffInfoDebugAgent[] = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_VECTOR_HANDOFF_INFO  mVectorHandoffInfoDebugAgent[] = {\r
   {\r
     DEBUG_EXCEPT_DIVIDE_ERROR,         // Vector 0\r
     EFI_VECTOR_HANDOFF_HOOK_BEFORE,\r
@@ -82,7 +82,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_VECTOR_HANDOFF_INFO mVectorHandoffInfoDebugAge
     EFI_VECTOR_HANDOFF_HOOK_BEFORE,\r
     EFI_DEBUG_AGENT_GUID\r
   },\r
-    {\r
+  {\r
     DEBUG_EXCEPT_PAGE_FAULT,           // Vector 14\r
     EFI_VECTOR_HANDOFF_HOOK_BEFORE,\r
     EFI_DEBUG_AGENT_GUID\r
@@ -124,7 +124,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_VECTOR_HANDOFF_INFO mVectorHandoffInfoDebugAge
   }\r
 };\r
 \r
-GLOBAL_REMOVE_IF_UNREFERENCED UINTN mVectorHandoffInfoCount = sizeof (mVectorHandoffInfoDebugAgent) / sizeof (EFI_VECTOR_HANDOFF_INFO);\r
+GLOBAL_REMOVE_IF_UNREFERENCED UINTN  mVectorHandoffInfoCount = sizeof (mVectorHandoffInfoDebugAgent) / sizeof (EFI_VECTOR_HANDOFF_INFO);\r
 \r
 /**\r
   Calculate CRC16 for target data.\r
@@ -151,16 +151,16 @@ CalculateCrc16 (
     for (BitIndex = 0; BitIndex < 8; BitIndex++) {\r
       if ((Crc & 0x8000) != 0) {\r
         Crc <<= 1;\r
-        Crc ^= 0x1021;\r
+        Crc  ^= 0x1021;\r
       } else {\r
         Crc <<= 1;\r
       }\r
     }\r
   }\r
+\r
   return Crc;\r
 }\r
 \r
-\r
 /**\r
   Read IDT entry to check if IDT entries are setup by Debug Agent.\r
 \r
@@ -173,10 +173,10 @@ IsDebugAgentInitialzed (
   VOID\r
   )\r
 {\r
-  UINTN                      InterruptHandler;\r
+  UINTN  InterruptHandler;\r
 \r
-  InterruptHandler = (UINTN) GetExceptionHandlerInIdtEntry (0);\r
-  if (InterruptHandler >= 4 &&  *(UINT32 *)(InterruptHandler - 4) == AGENT_HANDLER_SIGNATURE) {\r
+  InterruptHandler = (UINTN)GetExceptionHandlerInIdtEntry (0);\r
+  if ((InterruptHandler >= 4) &&  (*(UINT32 *)(InterruptHandler - 4) == AGENT_HANDLER_SIGNATURE)) {\r
     return TRUE;\r
   } else {\r
     return FALSE;\r
@@ -191,19 +191,19 @@ IsDebugAgentInitialzed (
 **/\r
 VOID\r
 FindAndReportModuleImageInfo (\r
-  IN UINTN          AlignSize\r
+  IN UINTN  AlignSize\r
   )\r
 {\r
-  UINTN                                Pe32Data;\r
-  PE_COFF_LOADER_IMAGE_CONTEXT         ImageContext;\r
+  UINTN                         Pe32Data;\r
+  PE_COFF_LOADER_IMAGE_CONTEXT  ImageContext;\r
 \r
   //\r
   // Find Image Base\r
   //\r
-  Pe32Data = PeCoffSearchImageBase ((UINTN) mErrorMsgVersionAlert);\r
+  Pe32Data = PeCoffSearchImageBase ((UINTN)mErrorMsgVersionAlert);\r
   if (Pe32Data != 0) {\r
     ImageContext.ImageAddress = Pe32Data;\r
-    ImageContext.PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageContext.ImageAddress);\r
+    ImageContext.PdbPointer   = PeCoffLoaderGetPdbPointer ((VOID *)(UINTN)ImageContext.ImageAddress);\r
     PeCoffLoaderRelocateImageExtraAction (&ImageContext);\r
   }\r
 }\r
@@ -216,11 +216,11 @@ FindAndReportModuleImageInfo (
 **/\r
 VOID\r
 TriggerSoftInterrupt (\r
-  IN UINT32                 Signature\r
+  IN UINT32  Signature\r
   )\r
 {\r
-  UINTN                  Dr0;\r
-  UINTN                  Dr1;\r
+  UINTN  Dr0;\r
+  UINTN  Dr1;\r
 \r
   //\r
   // Save Debug Register State\r
@@ -245,7 +245,6 @@ TriggerSoftInterrupt (
   //\r
   AsmWriteDr0 (Dr0);\r
   AsmWriteDr1 (Dr1);\r
-\r
 }\r
 \r
 /**\r
@@ -256,7 +255,7 @@ TriggerSoftInterrupt (
 **/\r
 VOID\r
 UpdateMailboxChecksum (\r
-  IN DEBUG_AGENT_MAILBOX    *Mailbox\r
+  IN DEBUG_AGENT_MAILBOX  *Mailbox\r
   )\r
 {\r
   Mailbox->CheckSum = CalculateCheckSum8 ((UINT8 *)Mailbox, sizeof (DEBUG_AGENT_MAILBOX) - 2);\r
@@ -272,17 +271,17 @@ UpdateMailboxChecksum (
 **/\r
 VOID\r
 VerifyMailboxChecksum (\r
-  IN DEBUG_AGENT_MAILBOX    *Mailbox\r
+  IN DEBUG_AGENT_MAILBOX  *Mailbox\r
   )\r
 {\r
-  UINT8                     CheckSum;\r
+  UINT8  CheckSum;\r
 \r
-  CheckSum = CalculateCheckSum8 ((UINT8 *) Mailbox, sizeof (DEBUG_AGENT_MAILBOX) - 2);\r
+  CheckSum = CalculateCheckSum8 ((UINT8 *)Mailbox, sizeof (DEBUG_AGENT_MAILBOX) - 2);\r
   //\r
   // The checksum updating process may be disturbed by hardware SMI, we need to check CheckSum field\r
   // and ToBeCheckSum field to validate the mail box.\r
   //\r
-  if (CheckSum != Mailbox->CheckSum && CheckSum != Mailbox->ToBeCheckSum) {\r
+  if ((CheckSum != Mailbox->CheckSum) && (CheckSum != Mailbox->ToBeCheckSum)) {\r
     DEBUG ((DEBUG_ERROR, "DebugAgent: Mailbox checksum error, stack or heap crashed!\n"));\r
     DEBUG ((DEBUG_ERROR, "DebugAgent: CheckSum = %x, Mailbox->CheckSum = %x, Mailbox->ToBeCheckSum = %x\n", CheckSum, Mailbox->CheckSum, Mailbox->ToBeCheckSum));\r
     CpuDeadLoop ();\r
@@ -299,49 +298,50 @@ VerifyMailboxChecksum (
 **/\r
 VOID\r
 UpdateMailboxContent (\r
-  IN DEBUG_AGENT_MAILBOX    *Mailbox,\r
-  IN UINTN                  Index,\r
-  IN UINT64                 Value\r
+  IN DEBUG_AGENT_MAILBOX  *Mailbox,\r
+  IN UINTN                Index,\r
+  IN UINT64               Value\r
   )\r
 {\r
   AcquireMpSpinLock (&mDebugMpContext.MailboxSpinLock);\r
   switch (Index) {\r
-  case DEBUG_MAILBOX_DEBUG_FLAG_INDEX:\r
-    Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->DebugFlag.Uint64, sizeof(UINT64))\r
-                                              - CalculateSum8 ((UINT8 *)&Value, sizeof(UINT64));\r
-    Mailbox->DebugFlag.Uint64 = Value;\r
-    break;\r
-  case DEBUG_MAILBOX_DEBUG_PORT_HANDLE_INDEX:\r
-    Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->DebugPortHandle, sizeof(UINTN))\r
-                                              - CalculateSum8 ((UINT8 *)&Value, sizeof(UINTN));\r
-    Mailbox->DebugPortHandle = (UINTN) Value;\r
-    break;\r
-  case DEBUG_MAILBOX_EXCEPTION_BUFFER_POINTER_INDEX:\r
-    Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->ExceptionBufferPointer, sizeof(UINTN))\r
-                                              - CalculateSum8 ((UINT8 *)&Value, sizeof(UINTN));\r
-    Mailbox->ExceptionBufferPointer = (UINTN) Value;\r
-    break;\r
-  case DEBUG_MAILBOX_LAST_ACK:\r
-    Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->LastAck, sizeof(UINT8))\r
-                                              - CalculateSum8 ((UINT8 *)&Value, sizeof(UINT8));\r
-    Mailbox->LastAck = (UINT8) Value;\r
-    break;\r
-  case DEBUG_MAILBOX_SEQUENCE_NO_INDEX:\r
-    Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->SequenceNo, sizeof(UINT8))\r
-                                              - CalculateSum8 ((UINT8 *)&Value, sizeof(UINT8));\r
-    Mailbox->SequenceNo = (UINT8) Value;\r
-    break;\r
-  case DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX:\r
-    Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->HostSequenceNo, sizeof(UINT8))\r
-                                              - CalculateSum8 ((UINT8 *)&Value, sizeof(UINT8));\r
-    Mailbox->HostSequenceNo = (UINT8) Value;\r
-    break;\r
-  case DEBUG_MAILBOX_DEBUG_TIMER_FREQUENCY:\r
-    Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->DebugTimerFrequency, sizeof(UINT32))\r
-                                              - CalculateSum8 ((UINT8 *)&Value, sizeof(UINT32));\r
-    Mailbox->DebugTimerFrequency = (UINT32) Value;\r
-    break;\r
+    case DEBUG_MAILBOX_DEBUG_FLAG_INDEX:\r
+      Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->DebugFlag.Uint64, sizeof (UINT64))\r
+                              - CalculateSum8 ((UINT8 *)&Value, sizeof (UINT64));\r
+      Mailbox->DebugFlag.Uint64 = Value;\r
+      break;\r
+    case DEBUG_MAILBOX_DEBUG_PORT_HANDLE_INDEX:\r
+      Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->DebugPortHandle, sizeof (UINTN))\r
+                              - CalculateSum8 ((UINT8 *)&Value, sizeof (UINTN));\r
+      Mailbox->DebugPortHandle = (UINTN)Value;\r
+      break;\r
+    case DEBUG_MAILBOX_EXCEPTION_BUFFER_POINTER_INDEX:\r
+      Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->ExceptionBufferPointer, sizeof (UINTN))\r
+                              - CalculateSum8 ((UINT8 *)&Value, sizeof (UINTN));\r
+      Mailbox->ExceptionBufferPointer = (UINTN)Value;\r
+      break;\r
+    case DEBUG_MAILBOX_LAST_ACK:\r
+      Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->LastAck, sizeof (UINT8))\r
+                              - CalculateSum8 ((UINT8 *)&Value, sizeof (UINT8));\r
+      Mailbox->LastAck = (UINT8)Value;\r
+      break;\r
+    case DEBUG_MAILBOX_SEQUENCE_NO_INDEX:\r
+      Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->SequenceNo, sizeof (UINT8))\r
+                              - CalculateSum8 ((UINT8 *)&Value, sizeof (UINT8));\r
+      Mailbox->SequenceNo = (UINT8)Value;\r
+      break;\r
+    case DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX:\r
+      Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->HostSequenceNo, sizeof (UINT8))\r
+                              - CalculateSum8 ((UINT8 *)&Value, sizeof (UINT8));\r
+      Mailbox->HostSequenceNo = (UINT8)Value;\r
+      break;\r
+    case DEBUG_MAILBOX_DEBUG_TIMER_FREQUENCY:\r
+      Mailbox->ToBeCheckSum = Mailbox->CheckSum + CalculateSum8 ((UINT8 *)&Mailbox->DebugTimerFrequency, sizeof (UINT32))\r
+                              - CalculateSum8 ((UINT8 *)&Value, sizeof (UINT32));\r
+      Mailbox->DebugTimerFrequency = (UINT32)Value;\r
+      break;\r
   }\r
+\r
   UpdateMailboxChecksum (Mailbox);\r
   ReleaseMpSpinLock (&mDebugMpContext.MailboxSpinLock);\r
 }\r
@@ -365,43 +365,45 @@ UpdateMailboxContent (
 **/\r
 UINTN\r
 DebugAgentReadBuffer (\r
-  IN DEBUG_PORT_HANDLE     Handle,\r
-  IN UINT8                 *Buffer,\r
-  IN UINTN                 NumberOfBytes,\r
-  IN UINTN                 Timeout\r
+  IN DEBUG_PORT_HANDLE  Handle,\r
+  IN UINT8              *Buffer,\r
+  IN UINTN              NumberOfBytes,\r
+  IN UINTN              Timeout\r
   )\r
 {\r
-  UINTN                    Index;\r
-  UINT32                   Begin;\r
-  UINT32                   TimeoutTicker;\r
-  UINT32                   TimerRound;\r
-  UINT32                   TimerFrequency;\r
-  UINT32                   TimerCycle;\r
-\r
-  Begin         = 0;\r
-  TimeoutTicker = 0;\r
-  TimerRound    = 0;\r
-  TimerFrequency = GetMailboxPointer()->DebugTimerFrequency;\r
-  TimerCycle = GetApicTimerInitCount ();\r
+  UINTN   Index;\r
+  UINT32  Begin;\r
+  UINT32  TimeoutTicker;\r
+  UINT32  TimerRound;\r
+  UINT32  TimerFrequency;\r
+  UINT32  TimerCycle;\r
+\r
+  Begin          = 0;\r
+  TimeoutTicker  = 0;\r
+  TimerRound     = 0;\r
+  TimerFrequency = GetMailboxPointer ()->DebugTimerFrequency;\r
+  TimerCycle     = GetApicTimerInitCount ();\r
 \r
   if (Timeout != 0) {\r
-    Begin = GetApicTimerCurrentCount ();\r
-    TimeoutTicker = (UINT32) DivU64x32 (\r
-                      MultU64x64 (\r
-                        TimerFrequency,\r
-                        Timeout\r
-                        ),\r
-                      1000000u\r
-                      );\r
-    TimerRound = (UINT32) DivU64x32Remainder (TimeoutTicker,  TimerCycle / 2, &TimeoutTicker);\r
+    Begin         = GetApicTimerCurrentCount ();\r
+    TimeoutTicker = (UINT32)DivU64x32 (\r
+                              MultU64x64 (\r
+                                TimerFrequency,\r
+                                Timeout\r
+                                ),\r
+                              1000000u\r
+                              );\r
+    TimerRound = (UINT32)DivU64x32Remainder (TimeoutTicker, TimerCycle / 2, &TimeoutTicker);\r
   }\r
+\r
   Index = 0;\r
   while (Index < NumberOfBytes) {\r
     if (DebugPortPollBuffer (Handle)) {\r
       DebugPortReadBuffer (Handle, Buffer + Index, 1, 0);\r
-      Index ++;\r
+      Index++;\r
       continue;\r
     }\r
+\r
     if (Timeout != 0) {\r
       if (TimerRound == 0) {\r
         if (IsDebugTimerTimeout (TimerCycle, Begin, TimeoutTicker)) {\r
@@ -412,7 +414,7 @@ DebugAgentReadBuffer (
         }\r
       } else {\r
         if (IsDebugTimerTimeout (TimerCycle, Begin, TimerCycle / 2)) {\r
-          TimerRound --;\r
+          TimerRound--;\r
           Begin = GetApicTimerCurrentCount ();\r
         }\r
       }\r
@@ -431,16 +433,16 @@ DebugAgentReadBuffer (
 **/\r
 VOID\r
 SetDebugFlag (\r
-  IN UINT64                 FlagMask,\r
-  IN UINT32                 FlagValue\r
+  IN UINT64  FlagMask,\r
+  IN UINT32  FlagValue\r
   )\r
 {\r
-  DEBUG_AGENT_MAILBOX    *Mailbox;\r
-  UINT64                 Data64;\r
+  DEBUG_AGENT_MAILBOX  *Mailbox;\r
+  UINT64               Data64;\r
 \r
   Mailbox = GetMailboxPointer ();\r
-  Data64 = (Mailbox->DebugFlag.Uint64 & ~FlagMask) |\r
-           (LShiftU64 ((UINT64)FlagValue, LowBitSet64 (FlagMask)) & FlagMask);\r
+  Data64  = (Mailbox->DebugFlag.Uint64 & ~FlagMask) |\r
+            (LShiftU64 ((UINT64)FlagValue, LowBitSet64 (FlagMask)) & FlagMask);\r
   UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_DEBUG_FLAG_INDEX, Data64);\r
 }\r
 \r
@@ -454,14 +456,14 @@ SetDebugFlag (
 **/\r
 UINT32\r
 GetDebugFlag (\r
-  IN UINT64                 FlagMask\r
+  IN UINT64  FlagMask\r
   )\r
 {\r
-  DEBUG_AGENT_MAILBOX    *Mailbox;\r
-  UINT32                 DebugFlag;\r
+  DEBUG_AGENT_MAILBOX  *Mailbox;\r
+  UINT32               DebugFlag;\r
 \r
-  Mailbox = GetMailboxPointer ();\r
-  DebugFlag = (UINT32) RShiftU64 (Mailbox->DebugFlag.Uint64 & FlagMask, LowBitSet64 (FlagMask));\r
+  Mailbox   = GetMailboxPointer ();\r
+  DebugFlag = (UINT32)RShiftU64 (Mailbox->DebugFlag.Uint64 & FlagMask, LowBitSet64 (FlagMask));\r
 \r
   return DebugFlag;\r
 }\r
@@ -475,22 +477,23 @@ GetDebugFlag (
 **/\r
 VOID\r
 SendDebugMsgPacket (\r
-  IN CHAR8         *Buffer,\r
-  IN UINTN         Length\r
+  IN CHAR8  *Buffer,\r
+  IN UINTN  Length\r
   )\r
 {\r
   DEBUG_PACKET_HEADER  DebugHeader;\r
   DEBUG_PORT_HANDLE    Handle;\r
 \r
-  Handle = GetDebugPortHandle();\r
+  Handle = GetDebugPortHandle ();\r
 \r
   DebugHeader.StartSymbol = DEBUG_STARTING_SYMBOL_NORMAL;\r
   DebugHeader.Command     = DEBUG_COMMAND_PRINT_MESSAGE;\r
-  DebugHeader.Length      = sizeof (DEBUG_PACKET_HEADER) + (UINT8) Length;\r
+  DebugHeader.Length      = sizeof (DEBUG_PACKET_HEADER) + (UINT8)Length;\r
   DebugHeader.SequenceNo  = 0xEE;\r
   DebugHeader.Crc         = 0;\r
   DebugHeader.Crc         = CalculateCrc16 (\r
-                              (UINT8 *)Buffer, Length,\r
+                              (UINT8 *)Buffer,\r
+                              Length,\r
                               CalculateCrc16 ((UINT8 *)&DebugHeader, sizeof (DEBUG_PACKET_HEADER), 0)\r
                               );\r
 \r
@@ -513,13 +516,13 @@ SendDebugMsgPacket (
 VOID\r
 EFIAPI\r
 DebugAgentMsgPrint (\r
-  IN UINT8         ErrorLevel,\r
-  IN CHAR8         *Format,\r
+  IN UINT8  ErrorLevel,\r
+  IN CHAR8  *Format,\r
   ...\r
   )\r
 {\r
-  CHAR8                Buffer[DEBUG_DATA_MAXIMUM_REAL_DATA];\r
-  VA_LIST              Marker;\r
+  CHAR8    Buffer[DEBUG_DATA_MAXIMUM_REAL_DATA];\r
+  VA_LIST  Marker;\r
 \r
   //\r
   // Check driver debug mask value and global mask\r
@@ -556,15 +559,15 @@ DebugAgentMsgPrint (
 VOID\r
 EFIAPI\r
 DebugAgentDataMsgPrint (\r
-  IN UINT8             ErrorLevel,\r
-  IN BOOLEAN           IsSend,\r
-  IN UINT8             *Data,\r
-  IN UINT8             Length\r
+  IN UINT8    ErrorLevel,\r
+  IN BOOLEAN  IsSend,\r
+  IN UINT8    *Data,\r
+  IN UINT8    Length\r
   )\r
 {\r
-  CHAR8                Buffer[DEBUG_DATA_MAXIMUM_REAL_DATA];\r
-  CHAR8                *DestBuffer;\r
-  UINTN                Index;\r
+  CHAR8  Buffer[DEBUG_DATA_MAXIMUM_REAL_DATA];\r
+  CHAR8  *DestBuffer;\r
+  UINTN  Index;\r
 \r
   //\r
   // Check driver debug mask value and global mask\r
@@ -590,13 +593,14 @@ DebugAgentDataMsgPrint (
       SendDebugMsgPacket (Buffer, DestBuffer - Buffer);\r
       DestBuffer = Buffer;\r
     }\r
+\r
     DestBuffer += AsciiSPrint (DestBuffer, DEBUG_DATA_MAXIMUM_REAL_DATA - (DestBuffer - Buffer), "%02x ", Data[Index]);\r
-    Index ++;\r
+    Index++;\r
     if (Index >= Length) {\r
       //\r
       // The last character of debug message has been formatted in buffer\r
       //\r
-      DestBuffer += AsciiSPrint(DestBuffer, DEBUG_DATA_MAXIMUM_REAL_DATA - (DestBuffer - Buffer), "]\n");\r
+      DestBuffer += AsciiSPrint (DestBuffer, DEBUG_DATA_MAXIMUM_REAL_DATA - (DestBuffer - Buffer), "]\n");\r
       SendDebugMsgPacket (Buffer, DestBuffer - Buffer);\r
       break;\r
     }\r
@@ -617,12 +621,12 @@ DebugAgentDataMsgPrint (
 **/\r
 EFI_STATUS\r
 ReadRemainingBreakPacket (\r
-  IN     DEBUG_PORT_HANDLE      Handle,\r
-  IN OUT DEBUG_PACKET_HEADER    *DebugHeader\r
+  IN     DEBUG_PORT_HANDLE    Handle,\r
+  IN OUT DEBUG_PACKET_HEADER  *DebugHeader\r
   )\r
 {\r
-  UINT16                     Crc;\r
-  DEBUG_AGENT_MAILBOX        *Mailbox;\r
+  UINT16               Crc;\r
+  DEBUG_AGENT_MAILBOX  *Mailbox;\r
 \r
   //\r
   // Has received start symbol, try to read the rest part\r
@@ -635,22 +639,24 @@ ReadRemainingBreakPacket (
     return EFI_TIMEOUT;\r
   }\r
 \r
-  Crc = DebugHeader->Crc;\r
+  Crc              = DebugHeader->Crc;\r
   DebugHeader->Crc = 0;\r
   if (CalculateCrc16 ((UINT8 *)DebugHeader, DebugHeader->Length, 0) != Crc) {\r
-    DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "Debug Timer CRC (%x) against (%x)\n", Crc, CalculateCrc16 ((UINT8 *) &DebugHeader, DebugHeader->Length, 0));\r
+    DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "Debug Timer CRC (%x) against (%x)\n", Crc, CalculateCrc16 ((UINT8 *)&DebugHeader, DebugHeader->Length, 0));\r
     DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, FALSE, (UINT8 *)DebugHeader, DebugHeader->Length);\r
     return EFI_CRC_ERROR;\r
   }\r
-  Mailbox = GetMailboxPointer();\r
+\r
+  Mailbox = GetMailboxPointer ();\r
   if (IS_REQUEST (DebugHeader)) {\r
-    if (DebugHeader->SequenceNo == (UINT8) (Mailbox->HostSequenceNo + 1)) {\r
+    if (DebugHeader->SequenceNo == (UINT8)(Mailbox->HostSequenceNo + 1)) {\r
       //\r
       // Only updagte HostSequenceNo for new command packet\r
       //\r
       UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, DebugHeader->SequenceNo);\r
       return EFI_SUCCESS;\r
     }\r
+\r
     if (DebugHeader->SequenceNo == Mailbox->HostSequenceNo) {\r
       return EFI_SUCCESS;\r
     }\r
@@ -671,7 +677,7 @@ IsHostAttached (
   VOID\r
   )\r
 {\r
-  return (BOOLEAN) (GetDebugFlag (DEBUG_AGENT_FLAG_HOST_ATTACHED) == 1);\r
+  return (BOOLEAN)(GetDebugFlag (DEBUG_AGENT_FLAG_HOST_ATTACHED) == 1);\r
 }\r
 \r
 /**\r
@@ -682,7 +688,7 @@ IsHostAttached (
 **/\r
 VOID\r
 SetHostAttached (\r
-  IN BOOLEAN                      Attached\r
+  IN BOOLEAN  Attached\r
   )\r
 {\r
   DebugAgentMsgPrint (DEBUG_AGENT_INFO, "Attach status is %d\n", Attached);\r
@@ -703,22 +709,23 @@ SetDebugSetting (
   IN DEBUG_DATA_SET_DEBUG_SETTING  *DebugSetting\r
   )\r
 {\r
-  RETURN_STATUS                Status;\r
+  RETURN_STATUS  Status;\r
 \r
   Status = RETURN_SUCCESS;\r
   switch (DebugSetting->Key) {\r
-  case DEBUG_AGENT_SETTING_SMM_ENTRY_BREAK:\r
-    SetDebugFlag (DEBUG_AGENT_FLAG_BREAK_ON_NEXT_SMI, DebugSetting->Value);\r
-    break;\r
-  case DEBUG_AGENT_SETTING_PRINT_ERROR_LEVEL:\r
-    SetDebugFlag (DEBUG_AGENT_FLAG_PRINT_ERROR_LEVEL, DebugSetting->Value);\r
-    break;\r
-  case DEBUG_AGENT_SETTING_BOOT_SCRIPT_ENTRY_BREAK:\r
-    SetDebugFlag (DEBUG_AGENT_FLAG_BREAK_BOOT_SCRIPT, DebugSetting->Value);\r
-    break;\r
-  default:\r
-    Status = RETURN_UNSUPPORTED;\r
+    case DEBUG_AGENT_SETTING_SMM_ENTRY_BREAK:\r
+      SetDebugFlag (DEBUG_AGENT_FLAG_BREAK_ON_NEXT_SMI, DebugSetting->Value);\r
+      break;\r
+    case DEBUG_AGENT_SETTING_PRINT_ERROR_LEVEL:\r
+      SetDebugFlag (DEBUG_AGENT_FLAG_PRINT_ERROR_LEVEL, DebugSetting->Value);\r
+      break;\r
+    case DEBUG_AGENT_SETTING_BOOT_SCRIPT_ENTRY_BREAK:\r
+      SetDebugFlag (DEBUG_AGENT_FLAG_BREAK_BOOT_SCRIPT, DebugSetting->Value);\r
+      break;\r
+    default:\r
+      Status = RETURN_UNSUPPORTED;\r
   }\r
+\r
   return Status;\r
 }\r
 \r
@@ -730,12 +737,12 @@ SetDebugSetting (
 **/\r
 VOID\r
 CommandGo (\r
-  IN DEBUG_CPU_CONTEXT         *CpuContext\r
+  IN DEBUG_CPU_CONTEXT  *CpuContext\r
   )\r
 {\r
-  IA32_EFLAGS32                *Eflags;\r
+  IA32_EFLAGS32  *Eflags;\r
 \r
-  Eflags = (IA32_EFLAGS32 *) &CpuContext->Eflags;\r
+  Eflags          = (IA32_EFLAGS32 *)&CpuContext->Eflags;\r
   Eflags->Bits.TF = 0;\r
   Eflags->Bits.RF = 1;\r
 }\r
@@ -748,12 +755,12 @@ CommandGo (
 **/\r
 VOID\r
 CommandStepping (\r
-  IN DEBUG_CPU_CONTEXT          *CpuContext\r
+  IN DEBUG_CPU_CONTEXT  *CpuContext\r
   )\r
 {\r
-  IA32_EFLAGS32                *Eflags;\r
+  IA32_EFLAGS32  *Eflags;\r
 \r
-  Eflags = (IA32_EFLAGS32 *) &CpuContext->Eflags;\r
+  Eflags          = (IA32_EFLAGS32 *)&CpuContext->Eflags;\r
   Eflags->Bits.TF = 1;\r
   Eflags->Bits.RF = 1;\r
   //\r
@@ -775,12 +782,12 @@ CommandStepping (
 **/\r
 VOID\r
 CommandSteppingCleanup (\r
-  IN DEBUG_CPU_CONTEXT          *CpuContext\r
+  IN DEBUG_CPU_CONTEXT  *CpuContext\r
   )\r
 {\r
-  IA32_EFLAGS32                *Eflags;\r
+  IA32_EFLAGS32  *Eflags;\r
 \r
-  Eflags = (IA32_EFLAGS32 *) &CpuContext->Eflags;\r
+  Eflags = (IA32_EFLAGS32 *)&CpuContext->Eflags;\r
   //\r
   // Restore EFLAGS.IF\r
   //\r
@@ -804,27 +811,27 @@ SetDebugRegister (
   IN DEBUG_DATA_SET_HW_BREAKPOINT  *SetHwBreakpoint\r
   )\r
 {\r
-  UINT8                      RegisterIndex;\r
-  UINTN                      Dr7Value;\r
+  UINT8  RegisterIndex;\r
+  UINTN  Dr7Value;\r
 \r
   RegisterIndex = SetHwBreakpoint->Type.Index;\r
 \r
   //\r
   // Set debug address\r
   //\r
-  * ((UINTN *) &CpuContext->Dr0 + RegisterIndex) = (UINTN) SetHwBreakpoint->Address;\r
+  *((UINTN *)&CpuContext->Dr0 + RegisterIndex) = (UINTN)SetHwBreakpoint->Address;\r
 \r
   Dr7Value = CpuContext->Dr7;\r
 \r
   //\r
   // Enable Gx, Lx\r
   //\r
-  Dr7Value |= (UINTN) (0x3 << (RegisterIndex * 2));\r
+  Dr7Value |= (UINTN)(0x3 << (RegisterIndex * 2));\r
   //\r
   // Set RWx and Lenx\r
   //\r
-  Dr7Value &= (UINTN) (~(0xf << (16 + RegisterIndex * 4)));\r
-  Dr7Value |= (UINTN) ((SetHwBreakpoint->Type.Length << 2) | SetHwBreakpoint->Type.Access) << (16 + RegisterIndex * 4);\r
+  Dr7Value &= (UINTN)(~(0xf << (16 + RegisterIndex * 4)));\r
+  Dr7Value |= (UINTN)((SetHwBreakpoint->Type.Length << 2) | SetHwBreakpoint->Type.Access) << (16 + RegisterIndex * 4);\r
   //\r
   // Enable GE, LE\r
   //\r
@@ -842,29 +849,31 @@ SetDebugRegister (
 **/\r
 VOID\r
 ClearDebugRegister (\r
-  IN DEBUG_CPU_CONTEXT                 *CpuContext,\r
-  IN DEBUG_DATA_CLEAR_HW_BREAKPOINT    *ClearHwBreakpoint\r
+  IN DEBUG_CPU_CONTEXT               *CpuContext,\r
+  IN DEBUG_DATA_CLEAR_HW_BREAKPOINT  *ClearHwBreakpoint\r
   )\r
 {\r
   if ((ClearHwBreakpoint->IndexMask & BIT0) != 0) {\r
-    CpuContext->Dr0 = 0;\r
+    CpuContext->Dr0  = 0;\r
     CpuContext->Dr7 &= (UINTN)(~(0x3 << 0));\r
   }\r
+\r
   if ((ClearHwBreakpoint->IndexMask & BIT1) != 0) {\r
-    CpuContext->Dr1 = 0;\r
+    CpuContext->Dr1  = 0;\r
     CpuContext->Dr7 &= (UINTN)(~(0x3 << 2));\r
   }\r
+\r
   if ((ClearHwBreakpoint->IndexMask & BIT2) != 0) {\r
-    CpuContext->Dr2 = 0;\r
+    CpuContext->Dr2  = 0;\r
     CpuContext->Dr7 &= (UINTN)(~(0x3 << 4));\r
   }\r
+\r
   if ((ClearHwBreakpoint->IndexMask & BIT3) != 0) {\r
-    CpuContext->Dr3 = 0;\r
+    CpuContext->Dr3  = 0;\r
     CpuContext->Dr7 &= (UINTN)(~(0x3 << 6));\r
   }\r
 }\r
 \r
-\r
 /**\r
   Return the offset of FP / MMX / XMM registers in the FPU saved state by register index.\r
 \r
@@ -876,51 +885,51 @@ ClearDebugRegister (
 **/\r
 UINT16\r
 ArchReadFxStatOffset (\r
-  IN  UINT8                     Index,\r
-  OUT UINT8                     *Width\r
+  IN  UINT8  Index,\r
+  OUT UINT8  *Width\r
   )\r
 {\r
   if (Index < SOFT_DEBUGGER_REGISTER_ST0) {\r
     switch (Index) {\r
-    case SOFT_DEBUGGER_REGISTER_FP_FCW:\r
-      *Width = (UINT8) sizeof (UINT16);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Fcw);\r
+      case SOFT_DEBUGGER_REGISTER_FP_FCW:\r
+        *Width = (UINT8)sizeof (UINT16);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Fcw);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_FSW:\r
-      *Width = (UINT8) sizeof (UINT16);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Fsw);\r
+      case SOFT_DEBUGGER_REGISTER_FP_FSW:\r
+        *Width = (UINT8)sizeof (UINT16);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Fsw);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_FTW:\r
-      *Width = (UINT8) sizeof (UINT16);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Ftw);\r
+      case SOFT_DEBUGGER_REGISTER_FP_FTW:\r
+        *Width = (UINT8)sizeof (UINT16);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Ftw);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_OPCODE:\r
-      *Width = (UINT8) sizeof (UINT16);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Opcode);\r
+      case SOFT_DEBUGGER_REGISTER_FP_OPCODE:\r
+        *Width = (UINT8)sizeof (UINT16);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Opcode);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_EIP:\r
-      *Width = (UINT8) sizeof (UINT32);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Eip);\r
+      case SOFT_DEBUGGER_REGISTER_FP_EIP:\r
+        *Width = (UINT8)sizeof (UINT32);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Eip);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_CS:\r
-      *Width = (UINT8) sizeof (UINT16);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Cs);\r
+      case SOFT_DEBUGGER_REGISTER_FP_CS:\r
+        *Width = (UINT8)sizeof (UINT16);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Cs);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_DATAOFFSET:\r
-      *Width = (UINT8) sizeof (UINT32);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, DataOffset);\r
+      case SOFT_DEBUGGER_REGISTER_FP_DATAOFFSET:\r
+        *Width = (UINT8)sizeof (UINT32);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, DataOffset);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_DS:\r
-      *Width = (UINT8) sizeof (UINT16);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Ds);\r
+      case SOFT_DEBUGGER_REGISTER_FP_DS:\r
+        *Width = (UINT8)sizeof (UINT16);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Ds);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_MXCSR:\r
-      *Width = (UINT8) sizeof (UINT32);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Mxcsr);\r
+      case SOFT_DEBUGGER_REGISTER_FP_MXCSR:\r
+        *Width = (UINT8)sizeof (UINT32);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Mxcsr);\r
 \r
-    case SOFT_DEBUGGER_REGISTER_FP_MXCSR_MASK:\r
-      *Width = (UINT8) sizeof (UINT32);\r
-      return OFFSET_OF(DEBUG_DATA_FX_SAVE_STATE, Mxcsr_Mask);\r
+      case SOFT_DEBUGGER_REGISTER_FP_MXCSR_MASK:\r
+        *Width = (UINT8)sizeof (UINT32);\r
+        return OFFSET_OF (DEBUG_DATA_FX_SAVE_STATE, Mxcsr_Mask);\r
     }\r
   }\r
 \r
@@ -951,21 +960,21 @@ ArchReadFxStatOffset (
 **/\r
 UINT8 *\r
 ArchReadRegisterBuffer (\r
-  IN DEBUG_CPU_CONTEXT               *CpuContext,\r
-  IN UINT8                           Index,\r
-  OUT UINT8                          *Width\r
+  IN DEBUG_CPU_CONTEXT  *CpuContext,\r
+  IN UINT8              Index,\r
+  OUT UINT8             *Width\r
   )\r
 {\r
-  UINT8           *Buffer;\r
+  UINT8  *Buffer;\r
 \r
   if (Index < SOFT_DEBUGGER_REGISTER_FP_BASE) {\r
-    Buffer = (UINT8 *) CpuContext + OFFSET_OF (DEBUG_CPU_CONTEXT, Dr0) + Index * sizeof (UINTN);\r
-    *Width = (UINT8) sizeof (UINTN);\r
+    Buffer = (UINT8 *)CpuContext + OFFSET_OF (DEBUG_CPU_CONTEXT, Dr0) + Index * sizeof (UINTN);\r
+    *Width = (UINT8)sizeof (UINTN);\r
   } else {\r
     //\r
     // FPU/MMX/XMM registers\r
     //\r
-    Buffer = (UINT8 *) CpuContext + OFFSET_OF (DEBUG_CPU_CONTEXT, FxSaveState) + ArchReadFxStatOffset (Index, Width);\r
+    Buffer = (UINT8 *)CpuContext + OFFSET_OF (DEBUG_CPU_CONTEXT, FxSaveState) + ArchReadFxStatOffset (Index, Width);\r
   }\r
 \r
   return Buffer;\r
@@ -980,14 +989,14 @@ ArchReadRegisterBuffer (
 **/\r
 VOID\r
 SendPacketWithoutData (\r
-  IN UINT8                  CommandType,\r
-  IN UINT8                  SequenceNo\r
+  IN UINT8  CommandType,\r
+  IN UINT8  SequenceNo\r
   )\r
 {\r
-  DEBUG_PACKET_HEADER       DebugHeader;\r
-  DEBUG_PORT_HANDLE         Handle;\r
+  DEBUG_PACKET_HEADER  DebugHeader;\r
+  DEBUG_PORT_HANDLE    Handle;\r
 \r
-  Handle = GetDebugPortHandle();\r
+  Handle = GetDebugPortHandle ();\r
 \r
   DebugHeader.StartSymbol = DEBUG_STARTING_SYMBOL_NORMAL;\r
   DebugHeader.Command     = CommandType;\r
@@ -996,8 +1005,8 @@ SendPacketWithoutData (
   DebugHeader.Crc         = 0;\r
   DebugHeader.Crc         = CalculateCrc16 ((UINT8 *)&DebugHeader, sizeof (DEBUG_PACKET_HEADER), 0);\r
 \r
-  DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, TRUE, (UINT8 *) &DebugHeader, DebugHeader.Length);\r
-  DebugPortWriteBuffer (Handle, (UINT8 *) &DebugHeader, DebugHeader.Length);\r
+  DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, TRUE, (UINT8 *)&DebugHeader, DebugHeader.Length);\r
+  DebugPortWriteBuffer (Handle, (UINT8 *)&DebugHeader, DebugHeader.Length);\r
 }\r
 \r
 /**\r
@@ -1008,11 +1017,11 @@ SendPacketWithoutData (
 **/\r
 VOID\r
 SendAckPacket (\r
-  IN UINT8                AckCommand\r
+  IN UINT8  AckCommand\r
   )\r
 {\r
-  UINT8                   SequenceNo;\r
-  DEBUG_AGENT_MAILBOX     *Mailbox;\r
+  UINT8                SequenceNo;\r
+  DEBUG_AGENT_MAILBOX  *Mailbox;\r
 \r
   if (AckCommand != DEBUG_COMMAND_OK) {\r
     //\r
@@ -1020,7 +1029,8 @@ SendAckPacket (
     //\r
     DebugAgentMsgPrint (DEBUG_AGENT_ERROR, "Send ACK(%d)\n", AckCommand);\r
   }\r
-  Mailbox = GetMailboxPointer();\r
+\r
+  Mailbox    = GetMailboxPointer ();\r
   SequenceNo = Mailbox->HostSequenceNo;\r
   DebugAgentMsgPrint (DEBUG_AGENT_INFO, "SendAckPacket: SequenceNo = %x\n", SequenceNo);\r
   SendPacketWithoutData (AckCommand, SequenceNo);\r
@@ -1038,30 +1048,31 @@ SendAckPacket (
 **/\r
 UINT8\r
 DecompressDataInPlace (\r
-  IN OUT UINT8   *Data,\r
-  IN UINTN       Length\r
+  IN OUT UINT8  *Data,\r
+  IN UINTN      Length\r
   )\r
 {\r
-  UINTN  Index;\r
-  UINT16 LastChar;\r
-  UINTN  LastCharCount;\r
-  UINT8  CurrentChar;\r
+  UINTN   Index;\r
+  UINT16  LastChar;\r
+  UINTN   LastCharCount;\r
+  UINT8   CurrentChar;\r
 \r
-  LastChar = (UINT16) -1;\r
+  LastChar      = (UINT16)-1;\r
   LastCharCount = 0;\r
   for (Index = 0; Index < Length; Index++) {\r
     CurrentChar = Data[Index];\r
     if (LastCharCount == 2) {\r
       LastCharCount = 0;\r
       CopyMem (&Data[Index + CurrentChar], &Data[Index + 1], Length - Index - 1);\r
-      SetMem (&Data[Index], CurrentChar, (UINT8) LastChar);\r
-      LastChar = (UINT16) -1;\r
-      Index += CurrentChar - 1;\r
-      Length += CurrentChar - 1;\r
+      SetMem (&Data[Index], CurrentChar, (UINT8)LastChar);\r
+      LastChar = (UINT16)-1;\r
+      Index   += CurrentChar - 1;\r
+      Length  += CurrentChar - 1;\r
     } else {\r
       if (LastChar != CurrentChar) {\r
         LastCharCount = 0;\r
       }\r
+\r
       LastCharCount++;\r
       LastChar = CurrentChar;\r
     }\r
@@ -1069,7 +1080,7 @@ DecompressDataInPlace (
 \r
   ASSERT (Length <= DEBUG_DATA_MAXIMUM_REAL_DATA);\r
 \r
-  return (UINT8) Length;\r
+  return (UINT8)Length;\r
 }\r
 \r
 /**\r
@@ -1092,27 +1103,27 @@ DecompressDataInPlace (
 **/\r
 RETURN_STATUS\r
 ReceivePacket (\r
-  OUT UINT8             *InputPacket,\r
-  OUT BOOLEAN           *BreakReceived,\r
-  OUT BOOLEAN           *IncompatibilityFlag  OPTIONAL,\r
-  IN  UINTN             Timeout,\r
-  IN  BOOLEAN           SkipStartSymbol\r
+  OUT UINT8    *InputPacket,\r
+  OUT BOOLEAN  *BreakReceived,\r
+  OUT BOOLEAN  *IncompatibilityFlag  OPTIONAL,\r
+  IN  UINTN    Timeout,\r
+  IN  BOOLEAN  SkipStartSymbol\r
   )\r
 {\r
-  DEBUG_PACKET_HEADER   *DebugHeader;\r
-  UINTN                 Received;\r
-  DEBUG_PORT_HANDLE     Handle;\r
-  UINT16                Crc;\r
-  UINTN                 TimeoutForStartSymbol;\r
+  DEBUG_PACKET_HEADER  *DebugHeader;\r
+  UINTN                Received;\r
+  DEBUG_PORT_HANDLE    Handle;\r
+  UINT16               Crc;\r
+  UINTN                TimeoutForStartSymbol;\r
 \r
-  Handle = GetDebugPortHandle();\r
+  Handle = GetDebugPortHandle ();\r
   if (SkipStartSymbol) {\r
     TimeoutForStartSymbol = 0;\r
   } else {\r
     TimeoutForStartSymbol = Timeout;\r
   }\r
 \r
-  DebugHeader = (DEBUG_PACKET_HEADER *) InputPacket;\r
+  DebugHeader = (DEBUG_PACKET_HEADER *)InputPacket;\r
   while (TRUE) {\r
     //\r
     // Find the valid start symbol\r
@@ -1133,7 +1144,7 @@ ReceivePacket (
     //\r
     Received = DebugAgentReadBuffer (\r
                  Handle,\r
-                 (UINT8 *) DebugHeader + OFFSET_OF (DEBUG_PACKET_HEADER, Command),\r
+                 (UINT8 *)DebugHeader + OFFSET_OF (DEBUG_PACKET_HEADER, Command),\r
                  OFFSET_OF (DEBUG_PACKET_HEADER, Length) + sizeof (DebugHeader->Length) - sizeof (DebugHeader->StartSymbol),\r
                  Timeout\r
                  );\r
@@ -1141,6 +1152,7 @@ ReceivePacket (
       DebugAgentMsgPrint (DEBUG_AGENT_ERROR, "DebugAgentReadBuffer(Command) timeout\n");\r
       return RETURN_TIMEOUT;\r
     }\r
+\r
     if (DebugHeader->Length < sizeof (DEBUG_PACKET_HEADER)) {\r
       if (IncompatibilityFlag != NULL) {\r
         //\r
@@ -1157,32 +1169,36 @@ ReceivePacket (
       //\r
       // Read the payload data include the CRC field\r
       //\r
-      Received = DebugAgentReadBuffer (Handle, &DebugHeader->SequenceNo, (UINT8) (DebugHeader->Length - OFFSET_OF (DEBUG_PACKET_HEADER, SequenceNo)), Timeout);\r
+      Received = DebugAgentReadBuffer (Handle, &DebugHeader->SequenceNo, (UINT8)(DebugHeader->Length - OFFSET_OF (DEBUG_PACKET_HEADER, SequenceNo)), Timeout);\r
       if (Received == 0) {\r
         DebugAgentMsgPrint (DEBUG_AGENT_ERROR, "DebugAgentReadBuffer(SequenceNo) timeout\n");\r
         return RETURN_TIMEOUT;\r
       }\r
+\r
       //\r
       // Calculate the CRC of Debug Packet\r
       //\r
-      Crc = DebugHeader->Crc;\r
+      Crc              = DebugHeader->Crc;\r
       DebugHeader->Crc = 0;\r
-      if (Crc == CalculateCrc16 ((UINT8 *) DebugHeader, DebugHeader->Length, 0)) {\r
+      if (Crc == CalculateCrc16 ((UINT8 *)DebugHeader, DebugHeader->Length, 0)) {\r
         break;\r
       }\r
+\r
       DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "CRC Error (received CRC is %x)\n", Crc);\r
-      DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, FALSE, (UINT8 *) DebugHeader, DebugHeader->Length);\r
+      DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, FALSE, (UINT8 *)DebugHeader, DebugHeader->Length);\r
     }\r
   }\r
 \r
-  DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, FALSE, (UINT8 *) DebugHeader, DebugHeader->Length);\r
+  DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, FALSE, (UINT8 *)DebugHeader, DebugHeader->Length);\r
 \r
   if (DebugHeader->StartSymbol == DEBUG_STARTING_SYMBOL_COMPRESS) {\r
     DebugHeader->StartSymbol = DEBUG_STARTING_SYMBOL_NORMAL;\r
     DebugHeader->Length      = DecompressDataInPlace (\r
-                                 (UINT8 *) (DebugHeader + 1), DebugHeader->Length - sizeof (DEBUG_PACKET_HEADER)\r
+                                 (UINT8 *)(DebugHeader + 1),\r
+                                 DebugHeader->Length - sizeof (DEBUG_PACKET_HEADER)\r
                                  ) + sizeof (DEBUG_PACKET_HEADER);\r
   }\r
+\r
   return RETURN_SUCCESS;\r
 }\r
 \r
@@ -1206,53 +1222,57 @@ ReceivePacket (
 **/\r
 RETURN_STATUS\r
 SendCommandAndWaitForAckOK (\r
-  IN  UINT8               Command,\r
-  IN  UINTN               Timeout,\r
-  OUT BOOLEAN             *BreakReceived  OPTIONAL,\r
-  OUT BOOLEAN             *IncompatibilityFlag OPTIONAL\r
+  IN  UINT8    Command,\r
+  IN  UINTN    Timeout,\r
+  OUT BOOLEAN  *BreakReceived  OPTIONAL,\r
+  OUT BOOLEAN  *IncompatibilityFlag OPTIONAL\r
   )\r
 {\r
-  RETURN_STATUS           Status;\r
-  UINT8                   InputPacketBuffer[DEBUG_DATA_UPPER_LIMIT];\r
-  DEBUG_PACKET_HEADER     *DebugHeader;\r
-  UINT8                   SequenceNo;\r
-  UINT8                   HostSequenceNo;\r
-  UINT8                   RetryCount;\r
+  RETURN_STATUS        Status;\r
+  UINT8                InputPacketBuffer[DEBUG_DATA_UPPER_LIMIT];\r
+  DEBUG_PACKET_HEADER  *DebugHeader;\r
+  UINT8                SequenceNo;\r
+  UINT8                HostSequenceNo;\r
+  UINT8                RetryCount;\r
 \r
   RetryCount  = 3;\r
-  DebugHeader = (DEBUG_PACKET_HEADER *) InputPacketBuffer;\r
+  DebugHeader = (DEBUG_PACKET_HEADER *)InputPacketBuffer;\r
   Status      = RETURN_TIMEOUT;\r
   while (RetryCount > 0) {\r
-    SequenceNo = GetMailboxPointer()->SequenceNo;\r
-    HostSequenceNo = GetMailboxPointer()->HostSequenceNo;\r
+    SequenceNo     = GetMailboxPointer ()->SequenceNo;\r
+    HostSequenceNo = GetMailboxPointer ()->HostSequenceNo;\r
     SendPacketWithoutData (Command, SequenceNo);\r
-    Status = ReceivePacket ((UINT8 *) DebugHeader, BreakReceived, IncompatibilityFlag, Timeout, FALSE);\r
+    Status = ReceivePacket ((UINT8 *)DebugHeader, BreakReceived, IncompatibilityFlag, Timeout, FALSE);\r
     if (Status == RETURN_TIMEOUT) {\r
       if (Command == DEBUG_COMMAND_INIT_BREAK) {\r
         RetryCount--;\r
       } else {\r
         DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "TARGET: Timeout when waiting for ACK packet.\n");\r
       }\r
+\r
       continue;\r
     }\r
+\r
     ASSERT_EFI_ERROR (Status);\r
     //\r
     // Status == RETURN_SUCCESS\r
     //\r
-    if (DebugHeader->Command == DEBUG_COMMAND_OK && DebugHeader->SequenceNo == SequenceNo) {\r
+    if ((DebugHeader->Command == DEBUG_COMMAND_OK) && (DebugHeader->SequenceNo == SequenceNo)) {\r
       //\r
       // Received Ack OK\r
       //\r
-      UpdateMailboxContent (GetMailboxPointer(), DEBUG_MAILBOX_SEQUENCE_NO_INDEX, ++SequenceNo);\r
+      UpdateMailboxContent (GetMailboxPointer (), DEBUG_MAILBOX_SEQUENCE_NO_INDEX, ++SequenceNo);\r
       return Status;\r
     }\r
-    if (DebugHeader->Command == DEBUG_COMMAND_GO && (DebugHeader->SequenceNo == HostSequenceNo || Command == DEBUG_COMMAND_INIT_BREAK)) {\r
+\r
+    if ((DebugHeader->Command == DEBUG_COMMAND_GO) && ((DebugHeader->SequenceNo == HostSequenceNo) || (Command == DEBUG_COMMAND_INIT_BREAK))) {\r
       //\r
       // Received Old GO\r
       //\r
       if (Command == DEBUG_COMMAND_INIT_BREAK) {\r
         DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "TARGET: Receive GO() in last boot\n");\r
       }\r
+\r
       SendPacketWithoutData (DEBUG_COMMAND_OK, DebugHeader->SequenceNo);\r
     }\r
   }\r
@@ -1272,89 +1292,89 @@ SendCommandAndWaitForAckOK (
 **/\r
 UINT8\r
 GetBreakCause (\r
-  IN UINTN                    Vector,\r
-  IN DEBUG_CPU_CONTEXT        *CpuContext\r
+  IN UINTN              Vector,\r
+  IN DEBUG_CPU_CONTEXT  *CpuContext\r
   )\r
 {\r
-  UINT8                    Cause;\r
+  UINT8  Cause;\r
 \r
   Cause = DEBUG_DATA_BREAK_CAUSE_UNKNOWN;\r
 \r
   switch (Vector) {\r
-  case DEBUG_INT1_VECTOR:\r
-  case DEBUG_INT3_VECTOR:\r
+    case DEBUG_INT1_VECTOR:\r
+    case DEBUG_INT3_VECTOR:\r
 \r
-    if (Vector == DEBUG_INT1_VECTOR) {\r
-      //\r
-      // INT 1\r
-      //\r
-      if ((CpuContext->Dr6 & BIT14) != 0) {\r
-        Cause = DEBUG_DATA_BREAK_CAUSE_STEPPING;\r
+      if (Vector == DEBUG_INT1_VECTOR) {\r
         //\r
-        // DR6.BIT14 Indicates (when set) that the debug exception was\r
-        // triggered by the single step execution mode.\r
-        // The single-step mode is the highest priority debug exception.\r
-        // This is single step, no need to check DR0, to ensure single step\r
-        // work in PeCoffExtraActionLib (right after triggering a breakpoint\r
-        // to report image load/unload).\r
+        // INT 1\r
         //\r
-        return Cause;\r
-\r
+        if ((CpuContext->Dr6 & BIT14) != 0) {\r
+          Cause = DEBUG_DATA_BREAK_CAUSE_STEPPING;\r
+          //\r
+          // DR6.BIT14 Indicates (when set) that the debug exception was\r
+          // triggered by the single step execution mode.\r
+          // The single-step mode is the highest priority debug exception.\r
+          // This is single step, no need to check DR0, to ensure single step\r
+          // work in PeCoffExtraActionLib (right after triggering a breakpoint\r
+          // to report image load/unload).\r
+          //\r
+          return Cause;\r
+        } else {\r
+          Cause = DEBUG_DATA_BREAK_CAUSE_HW_BREAKPOINT;\r
+        }\r
       } else {\r
-        Cause = DEBUG_DATA_BREAK_CAUSE_HW_BREAKPOINT;\r
+        //\r
+        // INT 3\r
+        //\r
+        Cause = DEBUG_DATA_BREAK_CAUSE_SW_BREAKPOINT;\r
       }\r
-    } else {\r
-      //\r
-      // INT 3\r
-      //\r
-      Cause = DEBUG_DATA_BREAK_CAUSE_SW_BREAKPOINT;\r
-    }\r
 \r
-    switch (CpuContext->Dr0) {\r
-    case IMAGE_LOAD_SIGNATURE:\r
-    case IMAGE_UNLOAD_SIGNATURE:\r
+      switch (CpuContext->Dr0) {\r
+        case IMAGE_LOAD_SIGNATURE:\r
+        case IMAGE_UNLOAD_SIGNATURE:\r
 \r
-      if (CpuContext->Dr3 == IO_PORT_BREAKPOINT_ADDRESS) {\r
+          if (CpuContext->Dr3 == IO_PORT_BREAKPOINT_ADDRESS) {\r
+            Cause = (UINT8)((CpuContext->Dr0 == IMAGE_LOAD_SIGNATURE) ?\r
+                            DEBUG_DATA_BREAK_CAUSE_IMAGE_LOAD : DEBUG_DATA_BREAK_CAUSE_IMAGE_UNLOAD);\r
+          }\r
 \r
-        Cause = (UINT8) ((CpuContext->Dr0 == IMAGE_LOAD_SIGNATURE) ?\r
-          DEBUG_DATA_BREAK_CAUSE_IMAGE_LOAD : DEBUG_DATA_BREAK_CAUSE_IMAGE_UNLOAD);\r
-      }\r
-      break;\r
+          break;\r
 \r
-    case SOFT_INTERRUPT_SIGNATURE:\r
+        case SOFT_INTERRUPT_SIGNATURE:\r
 \r
-      if (CpuContext->Dr1 == MEMORY_READY_SIGNATURE) {\r
-        Cause = DEBUG_DATA_BREAK_CAUSE_MEMORY_READY;\r
-        CpuContext->Dr0 = 0;\r
-      } else if (CpuContext->Dr1 == SYSTEM_RESET_SIGNATURE) {\r
-        Cause = DEBUG_DATA_BREAK_CAUSE_SYSTEM_RESET;\r
-        CpuContext->Dr0 = 0;\r
-      }\r
-      break;\r
+          if (CpuContext->Dr1 == MEMORY_READY_SIGNATURE) {\r
+            Cause           = DEBUG_DATA_BREAK_CAUSE_MEMORY_READY;\r
+            CpuContext->Dr0 = 0;\r
+          } else if (CpuContext->Dr1 == SYSTEM_RESET_SIGNATURE) {\r
+            Cause           = DEBUG_DATA_BREAK_CAUSE_SYSTEM_RESET;\r
+            CpuContext->Dr0 = 0;\r
+          }\r
 \r
-    default:\r
-      break;\r
+          break;\r
 \r
-    }\r
+        default:\r
+          break;\r
+      }\r
 \r
-    break;\r
+      break;\r
 \r
-  case DEBUG_TIMER_VECTOR:\r
-    Cause = DEBUG_DATA_BREAK_CAUSE_USER_HALT;\r
-    break;\r
+    case DEBUG_TIMER_VECTOR:\r
+      Cause = DEBUG_DATA_BREAK_CAUSE_USER_HALT;\r
+      break;\r
 \r
-  default:\r
-    if (Vector < 20) {\r
-      if (GetDebugFlag (DEBUG_AGENT_FLAG_STEPPING) == 1) {\r
-        //\r
-        // If stepping command is executing\r
-        //\r
-        Cause = DEBUG_DATA_BREAK_CAUSE_STEPPING;\r
-      } else {\r
-        Cause = DEBUG_DATA_BREAK_CAUSE_EXCEPTION;\r
+    default:\r
+      if (Vector < 20) {\r
+        if (GetDebugFlag (DEBUG_AGENT_FLAG_STEPPING) == 1) {\r
+          //\r
+          // If stepping command is executing\r
+          //\r
+          Cause = DEBUG_DATA_BREAK_CAUSE_STEPPING;\r
+        } else {\r
+          Cause = DEBUG_DATA_BREAK_CAUSE_EXCEPTION;\r
+        }\r
       }\r
-    }\r
-    break;\r
+\r
+      break;\r
   }\r
 \r
   return Cause;\r
@@ -1371,15 +1391,15 @@ GetBreakCause (
 **/\r
 VOID\r
 CopyMemByWidth (\r
-  OUT UINT8               *Dest,\r
-  IN  UINT8               *Src,\r
-  IN  UINT16              Count,\r
-  IN  UINT8               Width\r
+  OUT UINT8   *Dest,\r
+  IN  UINT8   *Src,\r
+  IN  UINT16  Count,\r
+  IN  UINT8   Width\r
   )\r
 {\r
-  UINT8                   *Destination;\r
-  UINT8                   *Source;\r
-  INT8                    Step;\r
+  UINT8  *Destination;\r
+  UINT8  *Source;\r
+  INT8   Step;\r
 \r
   if (Src > Dest) {\r
     Destination = Dest;\r
@@ -1396,21 +1416,22 @@ CopyMemByWidth (
 \r
   while (Count-- != 0) {\r
     switch (Width) {\r
-    case 1:\r
-      *(UINT8 *) Destination = MmioRead8 ((UINTN) Source);\r
-      break;\r
-    case 2:\r
-      *(UINT16 *) Destination = MmioRead16 ((UINTN) Source);\r
-      break;\r
-    case 4:\r
-      *(UINT32 *) Destination = MmioRead32 ((UINTN) Source);\r
-      break;\r
-    case 8:\r
-      *(UINT64 *) Destination = MmioRead64 ((UINTN) Source);\r
-      break;\r
-    default:\r
-      ASSERT (FALSE);\r
+      case 1:\r
+        *(UINT8 *)Destination = MmioRead8 ((UINTN)Source);\r
+        break;\r
+      case 2:\r
+        *(UINT16 *)Destination = MmioRead16 ((UINTN)Source);\r
+        break;\r
+      case 4:\r
+        *(UINT32 *)Destination = MmioRead32 ((UINTN)Source);\r
+        break;\r
+      case 8:\r
+        *(UINT64 *)Destination = MmioRead64 ((UINTN)Source);\r
+        break;\r
+      default:\r
+        ASSERT (FALSE);\r
     }\r
+\r
     Source      += Step;\r
     Destination += Step;\r
   }\r
@@ -1437,19 +1458,19 @@ CopyMemByWidth (
 **/\r
 VOID\r
 CompressData (\r
-  IN  DEBUG_PORT_HANDLE Handle,\r
-  IN  UINT8             *Data,\r
-  IN  UINT8             Length,\r
-  IN  BOOLEAN           Send,\r
-  OUT UINTN             *CompressedLength   OPTIONAL,\r
-  OUT UINT16            *CompressedCrc      OPTIONAL\r
+  IN  DEBUG_PORT_HANDLE  Handle,\r
+  IN  UINT8              *Data,\r
+  IN  UINT8              Length,\r
+  IN  BOOLEAN            Send,\r
+  OUT UINTN              *CompressedLength   OPTIONAL,\r
+  OUT UINT16             *CompressedCrc      OPTIONAL\r
   )\r
 {\r
-  UINTN                 Index;\r
-  UINT8                 LastChar;\r
-  UINT8                 LastCharCount;\r
-  UINT8                 CurrentChar;\r
-  UINTN                 CompressedIndex;\r
+  UINTN  Index;\r
+  UINT8  LastChar;\r
+  UINT8  LastCharCount;\r
+  UINT8  CurrentChar;\r
+  UINTN  CompressedIndex;\r
 \r
   ASSERT (Length > 0);\r
   LastChar      = Data[0] + 1; // Just ensure it's different from the first byte.\r
@@ -1459,34 +1480,38 @@ CompressData (
     if (Index < Length) {\r
       CurrentChar = Data[Index];\r
     } else {\r
-      CurrentChar = (UINT8) LastChar + 1; // just ensure it's different from LastChar\r
+      CurrentChar = (UINT8)LastChar + 1;  // just ensure it's different from LastChar\r
     }\r
+\r
     if (LastChar != CurrentChar) {\r
       if (LastCharCount == 1) {\r
         CompressedIndex++;\r
         if (CompressedCrc != NULL) {\r
           *CompressedCrc = CalculateCrc16 (&LastChar, 1, *CompressedCrc);\r
         }\r
+\r
         if (Send) {\r
           DebugPortWriteBuffer (Handle, &LastChar, 1);\r
         }\r
-\r
       } else if (LastCharCount >= 2) {\r
         CompressedIndex += 3;\r
-        LastCharCount -= 2;\r
+        LastCharCount   -= 2;\r
         if (CompressedCrc != NULL) {\r
           *CompressedCrc = CalculateCrc16 (&LastChar, 1, *CompressedCrc);\r
           *CompressedCrc = CalculateCrc16 (&LastChar, 1, *CompressedCrc);\r
           *CompressedCrc = CalculateCrc16 (&LastCharCount, 1, *CompressedCrc);\r
         }\r
+\r
         if (Send) {\r
           DebugPortWriteBuffer (Handle, &LastChar, 1);\r
           DebugPortWriteBuffer (Handle, &LastChar, 1);\r
           DebugPortWriteBuffer (Handle, &LastCharCount, 1);\r
         }\r
       }\r
+\r
       LastCharCount = 0;\r
     }\r
+\r
     LastCharCount++;\r
     LastChar = CurrentChar;\r
   }\r
@@ -1510,41 +1535,42 @@ CompressData (
 **/\r
 RETURN_STATUS\r
 ReadMemoryAndSendResponsePacket (\r
-  IN UINT8                   *Data,\r
-  IN UINT16                  Count,\r
-  IN UINT8                   Width,\r
-  IN DEBUG_PACKET_HEADER     *DebugHeader\r
+  IN UINT8                *Data,\r
+  IN UINT16               Count,\r
+  IN UINT8                Width,\r
+  IN DEBUG_PACKET_HEADER  *DebugHeader\r
   )\r
 {\r
-  RETURN_STATUS        Status;\r
-  BOOLEAN              LastPacket;\r
-  DEBUG_PORT_HANDLE    Handle;\r
-  UINT8                SequenceNo;\r
-  UINTN                RemainingDataSize;\r
-  UINT8                CurrentDataSize;\r
-  UINTN                CompressedDataSize;\r
+  RETURN_STATUS      Status;\r
+  BOOLEAN            LastPacket;\r
+  DEBUG_PORT_HANDLE  Handle;\r
+  UINT8              SequenceNo;\r
+  UINTN              RemainingDataSize;\r
+  UINT8              CurrentDataSize;\r
+  UINTN              CompressedDataSize;\r
 \r
-  Handle = GetDebugPortHandle();\r
+  Handle = GetDebugPortHandle ();\r
 \r
   RemainingDataSize = Count * Width;\r
   while (TRUE) {\r
-    SequenceNo = GetMailboxPointer()->HostSequenceNo;\r
+    SequenceNo = GetMailboxPointer ()->HostSequenceNo;\r
     if (RemainingDataSize <= DEBUG_DATA_MAXIMUM_REAL_DATA) {\r
       //\r
       // If the remaining data is less one real packet size, this is the last data packet\r
       //\r
-      CurrentDataSize = (UINT8) RemainingDataSize;\r
-      LastPacket = TRUE;\r
+      CurrentDataSize      = (UINT8)RemainingDataSize;\r
+      LastPacket           = TRUE;\r
       DebugHeader->Command = DEBUG_COMMAND_OK;\r
     } else {\r
       //\r
       // Data is too larger to be sent in one packet, calculate the actual data size could\r
       // be sent in one Maximum data packet\r
       //\r
-      CurrentDataSize = (DEBUG_DATA_MAXIMUM_REAL_DATA / Width) * Width;\r
-      LastPacket = FALSE;\r
+      CurrentDataSize      = (DEBUG_DATA_MAXIMUM_REAL_DATA / Width) * Width;\r
+      LastPacket           = FALSE;\r
       DebugHeader->Command = DEBUG_COMMAND_IN_PROGRESS;\r
     }\r
+\r
     //\r
     // Construct the rest Debug header\r
     //\r
@@ -1552,19 +1578,19 @@ ReadMemoryAndSendResponsePacket (
     DebugHeader->Length      = CurrentDataSize + sizeof (DEBUG_PACKET_HEADER);\r
     DebugHeader->SequenceNo  = SequenceNo;\r
     DebugHeader->Crc         = 0;\r
-    CopyMemByWidth ((UINT8 *) (DebugHeader + 1), Data, CurrentDataSize / Width, Width);\r
+    CopyMemByWidth ((UINT8 *)(DebugHeader + 1), Data, CurrentDataSize / Width, Width);\r
 \r
     //\r
     // Compression/decompression support was added since revision 0.4.\r
     // Revision 0.3 shouldn't compress the packet.\r
     //\r
-    if (PcdGet32(PcdTransferProtocolRevision) >= DEBUG_AGENT_REVISION_04) {\r
+    if (PcdGet32 (PcdTransferProtocolRevision) >= DEBUG_AGENT_REVISION_04) {\r
       //\r
       // Get the compressed data size without modifying the packet.\r
       //\r
       CompressData (\r
         Handle,\r
-        (UINT8 *) (DebugHeader + 1),\r
+        (UINT8 *)(DebugHeader + 1),\r
         CurrentDataSize,\r
         FALSE,\r
         &CompressedDataSize,\r
@@ -1573,16 +1599,17 @@ ReadMemoryAndSendResponsePacket (
     } else {\r
       CompressedDataSize = CurrentDataSize;\r
     }\r
+\r
     if (CompressedDataSize < CurrentDataSize) {\r
-      DebugHeader->Length = (UINT8) CompressedDataSize + sizeof (DEBUG_PACKET_HEADER);\r
+      DebugHeader->Length      = (UINT8)CompressedDataSize + sizeof (DEBUG_PACKET_HEADER);\r
       DebugHeader->StartSymbol = DEBUG_STARTING_SYMBOL_COMPRESS;\r
       //\r
       // Compute the CRC of the packet head without modifying the packet.\r
       //\r
-      DebugHeader->Crc = CalculateCrc16 ((UINT8 *) DebugHeader, sizeof (DEBUG_PACKET_HEADER), 0);\r
+      DebugHeader->Crc = CalculateCrc16 ((UINT8 *)DebugHeader, sizeof (DEBUG_PACKET_HEADER), 0);\r
       CompressData (\r
         Handle,\r
-        (UINT8 *) (DebugHeader + 1),\r
+        (UINT8 *)(DebugHeader + 1),\r
         CurrentDataSize,\r
         FALSE,\r
         NULL,\r
@@ -1591,51 +1618,53 @@ ReadMemoryAndSendResponsePacket (
       //\r
       // Send out the packet head.\r
       //\r
-      DebugPortWriteBuffer (Handle, (UINT8 *) DebugHeader, sizeof (DEBUG_PACKET_HEADER));\r
+      DebugPortWriteBuffer (Handle, (UINT8 *)DebugHeader, sizeof (DEBUG_PACKET_HEADER));\r
       //\r
       // Compress and send out the packet data.\r
       //\r
       CompressData (\r
         Handle,\r
-        (UINT8 *) (DebugHeader + 1),\r
+        (UINT8 *)(DebugHeader + 1),\r
         CurrentDataSize,\r
         TRUE,\r
         NULL,\r
         NULL\r
         );\r
     } else {\r
-\r
       //\r
       // Calculate and fill the checksum, DebugHeader->Crc should be 0 before invoking CalculateCrc16 ()\r
       //\r
-      DebugHeader->Crc = CalculateCrc16 ((UINT8 *) DebugHeader, DebugHeader->Length, 0);\r
+      DebugHeader->Crc = CalculateCrc16 ((UINT8 *)DebugHeader, DebugHeader->Length, 0);\r
 \r
-      DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, TRUE, (UINT8 *) DebugHeader, DebugHeader->Length);\r
+      DebugAgentDataMsgPrint (DEBUG_AGENT_VERBOSE, TRUE, (UINT8 *)DebugHeader, DebugHeader->Length);\r
 \r
-      DebugPortWriteBuffer (Handle, (UINT8 *) DebugHeader, DebugHeader->Length);\r
+      DebugPortWriteBuffer (Handle, (UINT8 *)DebugHeader, DebugHeader->Length);\r
     }\r
 \r
     while (TRUE) {\r
-      Status = ReceivePacket ((UINT8 *) DebugHeader, NULL, NULL, READ_PACKET_TIMEOUT, FALSE);\r
+      Status = ReceivePacket ((UINT8 *)DebugHeader, NULL, NULL, READ_PACKET_TIMEOUT, FALSE);\r
       if (Status == RETURN_TIMEOUT) {\r
         DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "TARGET: Timeout in SendDataResponsePacket()\n");\r
         break;\r
       }\r
+\r
       if ((DebugHeader->Command == DEBUG_COMMAND_OK) && (DebugHeader->SequenceNo == SequenceNo) && LastPacket) {\r
         //\r
         // If this is the last packet, return RETURN_SUCCESS.\r
         //\r
         return RETURN_SUCCESS;\r
       }\r
-      if ((DebugHeader->Command == DEBUG_COMMAND_CONTINUE) && (DebugHeader->SequenceNo == (UINT8) (SequenceNo + 1))) {\r
+\r
+      if ((DebugHeader->Command == DEBUG_COMMAND_CONTINUE) && (DebugHeader->SequenceNo == (UINT8)(SequenceNo + 1))) {\r
         //\r
         // Calculate the rest data size\r
         //\r
         Data              += CurrentDataSize;\r
         RemainingDataSize -= CurrentDataSize;\r
-        UpdateMailboxContent (GetMailboxPointer(), DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, DebugHeader->SequenceNo);\r
+        UpdateMailboxContent (GetMailboxPointer (), DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, DebugHeader->SequenceNo);\r
         break;\r
       }\r
+\r
       if (DebugHeader->SequenceNo >= SequenceNo) {\r
         DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "TARGET: Received one old or new command(SequenceNo is %x, last SequenceNo is %x)\n", SequenceNo, DebugHeader->SequenceNo);\r
         break;\r
@@ -1657,9 +1686,9 @@ ReadMemoryAndSendResponsePacket (
 **/\r
 RETURN_STATUS\r
 SendDataResponsePacket (\r
-  IN UINT8                   *Data,\r
-  IN UINT16                  DataSize,\r
-  IN OUT DEBUG_PACKET_HEADER *DebugHeader\r
+  IN UINT8                    *Data,\r
+  IN UINT16                   DataSize,\r
+  IN OUT DEBUG_PACKET_HEADER  *DebugHeader\r
   )\r
 {\r
   return ReadMemoryAndSendResponsePacket (Data, DataSize, 1, DebugHeader);\r
@@ -1682,45 +1711,47 @@ SendDataResponsePacket (
 **/\r
 RETURN_STATUS\r
 AttachHost (\r
-  IN  UINT8                BreakCause,\r
-  IN  UINTN                Timeout,\r
-  OUT BOOLEAN              *BreakReceived\r
+  IN  UINT8    BreakCause,\r
+  IN  UINTN    Timeout,\r
+  OUT BOOLEAN  *BreakReceived\r
   )\r
 {\r
-  RETURN_STATUS                    Status;\r
-  DEBUG_PORT_HANDLE                Handle;\r
-  BOOLEAN                          IncompatibilityFlag;\r
+  RETURN_STATUS      Status;\r
+  DEBUG_PORT_HANDLE  Handle;\r
+  BOOLEAN            IncompatibilityFlag;\r
 \r
   IncompatibilityFlag = FALSE;\r
-  Handle = GetDebugPortHandle();\r
+  Handle              = GetDebugPortHandle ();\r
 \r
   //\r
   // Send init break and wait ack in Timeout\r
   //\r
-  DebugPortWriteBuffer (Handle, (UINT8 *) mErrorMsgSendInitPacket, AsciiStrLen (mErrorMsgSendInitPacket));\r
+  DebugPortWriteBuffer (Handle, (UINT8 *)mErrorMsgSendInitPacket, AsciiStrLen (mErrorMsgSendInitPacket));\r
   if (BreakCause == DEBUG_DATA_BREAK_CAUSE_SYSTEM_RESET) {\r
     Status = SendCommandAndWaitForAckOK (DEBUG_COMMAND_INIT_BREAK, Timeout, BreakReceived, &IncompatibilityFlag);\r
   } else {\r
     Status = SendCommandAndWaitForAckOK (DEBUG_COMMAND_ATTACH_BREAK, Timeout, BreakReceived, &IncompatibilityFlag);\r
   }\r
+\r
   if (IncompatibilityFlag) {\r
     //\r
     // If the incompatible Debug Packet received, the HOST should be running transfer protocol before PcdTransferProtocolRevision.\r
     // It could be UDK Debugger for Windows v1.1/v1.2 or for Linux v0.8/v1.2.\r
     //\r
-    DebugPortWriteBuffer (Handle, (UINT8 *) mErrorMsgVersionAlert, AsciiStrLen (mErrorMsgVersionAlert));\r
+    DebugPortWriteBuffer (Handle, (UINT8 *)mErrorMsgVersionAlert, AsciiStrLen (mErrorMsgVersionAlert));\r
     CpuDeadLoop ();\r
   }\r
 \r
   if (RETURN_ERROR (Status)) {\r
-    DebugPortWriteBuffer (Handle, (UINT8 *) mErrorMsgConnectFail, AsciiStrLen (mErrorMsgConnectFail));\r
+    DebugPortWriteBuffer (Handle, (UINT8 *)mErrorMsgConnectFail, AsciiStrLen (mErrorMsgConnectFail));\r
   } else {\r
-    DebugPortWriteBuffer (Handle, (UINT8 *) mErrorMsgConnectOK, AsciiStrLen (mErrorMsgConnectOK));\r
+    DebugPortWriteBuffer (Handle, (UINT8 *)mErrorMsgConnectOK, AsciiStrLen (mErrorMsgConnectOK));\r
     //\r
     // Set Attach flag\r
     //\r
     SetHostAttached (TRUE);\r
   }\r
+\r
   return Status;\r
 }\r
 \r
@@ -1738,15 +1769,15 @@ AttachHost (
 **/\r
 VOID\r
 SendBreakPacketToHost (\r
-  IN  UINT8                BreakCause,\r
-  IN  UINT32               ProcessorIndex,\r
-  OUT BOOLEAN              *BreakReceived\r
+  IN  UINT8    BreakCause,\r
+  IN  UINT32   ProcessorIndex,\r
+  OUT BOOLEAN  *BreakReceived\r
   )\r
 {\r
-  UINT8                 InputCharacter;\r
-  DEBUG_PORT_HANDLE     Handle;\r
+  UINT8              InputCharacter;\r
+  DEBUG_PORT_HANDLE  Handle;\r
 \r
-  Handle = GetDebugPortHandle();\r
+  Handle = GetDebugPortHandle ();\r
 \r
   if (IsHostAttached ()) {\r
     DebugAgentMsgPrint (DEBUG_AGENT_INFO, "processor[%x]:Send Break Packet to HOST.\n", ProcessorIndex);\r
@@ -1762,13 +1793,14 @@ SendBreakPacketToHost (
     do {\r
       DebugAgentReadBuffer (Handle, &InputCharacter, 1, 0);\r
     } while (InputCharacter != DEBUG_STARTING_SYMBOL_ATTACH);\r
+\r
     SendAckPacket (DEBUG_COMMAND_OK);\r
 \r
     //\r
     // Try to attach HOST\r
     //\r
-    while (AttachHost (BreakCause, 0, NULL) != RETURN_SUCCESS);\r
-\r
+    while (AttachHost (BreakCause, 0, NULL) != RETURN_SUCCESS) {\r
+    }\r
   }\r
 }\r
 \r
@@ -1785,46 +1817,46 @@ SendBreakPacketToHost (
 **/\r
 VOID\r
 CommandCommunication (\r
-  IN     UINTN                   Vector,\r
-  IN OUT DEBUG_CPU_CONTEXT       *CpuContext,\r
-  IN     BOOLEAN                 BreakReceived\r
+  IN     UINTN              Vector,\r
+  IN OUT DEBUG_CPU_CONTEXT  *CpuContext,\r
+  IN     BOOLEAN            BreakReceived\r
   )\r
 {\r
-  RETURN_STATUS                     Status;\r
-  UINT8                             InputPacketBuffer[DEBUG_DATA_UPPER_LIMIT + sizeof (UINT64) - 1];\r
-  DEBUG_PACKET_HEADER               *DebugHeader;\r
-  UINT8                             Width;\r
-  UINT8                             Data8;\r
-  UINT32                            Data32;\r
-  UINT64                            Data64;\r
-  DEBUG_DATA_READ_MEMORY            *MemoryRead;\r
-  DEBUG_DATA_WRITE_MEMORY           *MemoryWrite;\r
-  DEBUG_DATA_READ_IO                *IoRead;\r
-  DEBUG_DATA_WRITE_IO               *IoWrite;\r
-  DEBUG_DATA_READ_REGISTER          *RegisterRead;\r
-  DEBUG_DATA_WRITE_REGISTER         *RegisterWrite;\r
-  UINT8                             *RegisterBuffer;\r
-  DEBUG_DATA_READ_MSR               *MsrRegisterRead;\r
-  DEBUG_DATA_WRITE_MSR              *MsrRegisterWrite;\r
-  DEBUG_DATA_CPUID                  *Cpuid;\r
-  DEBUG_DATA_RESPONSE_BREAK_CAUSE   BreakCause;\r
-  DEBUG_DATA_RESPONSE_CPUID         CpuidResponse;\r
-  DEBUG_DATA_SEARCH_SIGNATURE       *SearchSignature;\r
-  DEBUG_DATA_RESPONSE_GET_EXCEPTION Exception;\r
-  DEBUG_DATA_RESPONSE_GET_REVISION  DebugAgentRevision;\r
-  DEBUG_DATA_SET_VIEWPOINT          *SetViewPoint;\r
-  BOOLEAN                           HaltDeferred;\r
-  UINT32                            ProcessorIndex;\r
-  DEBUG_AGENT_EXCEPTION_BUFFER      AgentExceptionBuffer;\r
-  UINT32                            IssuedViewPoint;\r
-  DEBUG_AGENT_MAILBOX               *Mailbox;\r
-  UINT8                             *AlignedDataPtr;\r
+  RETURN_STATUS                      Status;\r
+  UINT8                              InputPacketBuffer[DEBUG_DATA_UPPER_LIMIT + sizeof (UINT64) - 1];\r
+  DEBUG_PACKET_HEADER                *DebugHeader;\r
+  UINT8                              Width;\r
+  UINT8                              Data8;\r
+  UINT32                             Data32;\r
+  UINT64                             Data64;\r
+  DEBUG_DATA_READ_MEMORY             *MemoryRead;\r
+  DEBUG_DATA_WRITE_MEMORY            *MemoryWrite;\r
+  DEBUG_DATA_READ_IO                 *IoRead;\r
+  DEBUG_DATA_WRITE_IO                *IoWrite;\r
+  DEBUG_DATA_READ_REGISTER           *RegisterRead;\r
+  DEBUG_DATA_WRITE_REGISTER          *RegisterWrite;\r
+  UINT8                              *RegisterBuffer;\r
+  DEBUG_DATA_READ_MSR                *MsrRegisterRead;\r
+  DEBUG_DATA_WRITE_MSR               *MsrRegisterWrite;\r
+  DEBUG_DATA_CPUID                   *Cpuid;\r
+  DEBUG_DATA_RESPONSE_BREAK_CAUSE    BreakCause;\r
+  DEBUG_DATA_RESPONSE_CPUID          CpuidResponse;\r
+  DEBUG_DATA_SEARCH_SIGNATURE        *SearchSignature;\r
+  DEBUG_DATA_RESPONSE_GET_EXCEPTION  Exception;\r
+  DEBUG_DATA_RESPONSE_GET_REVISION   DebugAgentRevision;\r
+  DEBUG_DATA_SET_VIEWPOINT           *SetViewPoint;\r
+  BOOLEAN                            HaltDeferred;\r
+  UINT32                             ProcessorIndex;\r
+  DEBUG_AGENT_EXCEPTION_BUFFER       AgentExceptionBuffer;\r
+  UINT32                             IssuedViewPoint;\r
+  DEBUG_AGENT_MAILBOX                *Mailbox;\r
+  UINT8                              *AlignedDataPtr;\r
 \r
   ProcessorIndex  = 0;\r
   IssuedViewPoint = 0;\r
   HaltDeferred    = BreakReceived;\r
 \r
-  if (MultiProcessorDebugSupport()) {\r
+  if (MultiProcessorDebugSupport ()) {\r
     ProcessorIndex = GetProcessorIndex ();\r
     SetCpuStopFlagByIndex (ProcessorIndex, TRUE);\r
     if (mDebugMpContext.ViewPointIndex == ProcessorIndex) {\r
@@ -1843,8 +1875,7 @@ CommandCommunication (
   }\r
 \r
   while (TRUE) {\r
-\r
-    if (MultiProcessorDebugSupport()) {\r
+    if (MultiProcessorDebugSupport ()) {\r
       //\r
       // Check if the current processor is HOST view point\r
       //\r
@@ -1868,11 +1899,11 @@ CommandCommunication (
 \r
     AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
 \r
-    DebugHeader =(DEBUG_PACKET_HEADER *) InputPacketBuffer;\r
+    DebugHeader = (DEBUG_PACKET_HEADER *)InputPacketBuffer;\r
 \r
     DebugAgentMsgPrint (DEBUG_AGENT_INFO, "TARGET: Try to get command from HOST...\n");\r
-    Status = ReceivePacket ((UINT8 *) DebugHeader, &BreakReceived, NULL, READ_PACKET_TIMEOUT, TRUE);\r
-    if (Status != RETURN_SUCCESS || !IS_REQUEST (DebugHeader)) {\r
+    Status = ReceivePacket ((UINT8 *)DebugHeader, &BreakReceived, NULL, READ_PACKET_TIMEOUT, TRUE);\r
+    if ((Status != RETURN_SUCCESS) || !IS_REQUEST (DebugHeader)) {\r
       DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "TARGET: Get command[%x] sequenceno[%x] returned status is [%x] \n", DebugHeader->Command, DebugHeader->SequenceNo, Status);\r
       DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "TARGET: Get command failed or it's response packet not expected! \n");\r
       ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
@@ -1885,8 +1916,8 @@ CommandCommunication (
       SendAckPacket (Mailbox->LastAck);\r
       ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
       continue;\r
-    } else if (DebugHeader->SequenceNo == (UINT8) (Mailbox->HostSequenceNo + 1)) {\r
-      UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, (UINT8) DebugHeader->SequenceNo);\r
+    } else if (DebugHeader->SequenceNo == (UINT8)(Mailbox->HostSequenceNo + 1)) {\r
+      UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, (UINT8)DebugHeader->SequenceNo);\r
     } else {\r
       DebugAgentMsgPrint (DEBUG_AGENT_WARNING, "Receive one invalid command[%x] against command[%x]\n", DebugHeader->SequenceNo, Mailbox->HostSequenceNo);\r
       ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
@@ -1896,7 +1927,7 @@ CommandCommunication (
     //\r
     // Save CPU content before executing HOST command\r
     //\r
-    UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_EXCEPTION_BUFFER_POINTER_INDEX, (UINT64)(UINTN) &AgentExceptionBuffer.JumpBuffer);\r
+    UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_EXCEPTION_BUFFER_POINTER_INDEX, (UINT64)(UINTN)&AgentExceptionBuffer.JumpBuffer);\r
     if (SetJump (&AgentExceptionBuffer.JumpBuffer) != 0) {\r
       //\r
       // If HOST command failed, continue to wait for HOST's next command\r
@@ -1910,380 +1941,397 @@ CommandCommunication (
     DebugAgentMsgPrint (DEBUG_AGENT_INFO, "Processor[%x]:Received one command(%x)\n", mDebugMpContext.ViewPointIndex, DebugHeader->Command);\r
 \r
     switch (DebugHeader->Command) {\r
+      case DEBUG_COMMAND_HALT:\r
+        SendAckPacket (DEBUG_COMMAND_HALT_DEFERRED);\r
+        HaltDeferred  = TRUE;\r
+        BreakReceived = FALSE;\r
+        Status        = RETURN_SUCCESS;\r
+        break;\r
 \r
-    case DEBUG_COMMAND_HALT:\r
-      SendAckPacket (DEBUG_COMMAND_HALT_DEFERRED);\r
-      HaltDeferred = TRUE;\r
-      BreakReceived = FALSE;\r
-      Status = RETURN_SUCCESS;\r
-      break;\r
-\r
-    case DEBUG_COMMAND_RESET:\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
-\r
-      ResetCold ();\r
-      //\r
-      // Assume system resets in 2 seconds, otherwise send TIMEOUT packet.\r
-      // PCD can be used if 2 seconds isn't long enough for some platforms.\r
-      //\r
-      MicroSecondDelay (2000000);\r
-      UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, Mailbox->HostSequenceNo + 1);\r
-      SendAckPacket (DEBUG_COMMAND_TIMEOUT);\r
-      SendAckPacket (DEBUG_COMMAND_TIMEOUT);\r
-      SendAckPacket (DEBUG_COMMAND_TIMEOUT);\r
-      break;\r
+      case DEBUG_COMMAND_RESET:\r
+        SendAckPacket (DEBUG_COMMAND_OK);\r
+        SendAckPacket (DEBUG_COMMAND_OK);\r
+        SendAckPacket (DEBUG_COMMAND_OK);\r
+        ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
 \r
-    case DEBUG_COMMAND_GO:\r
-      CommandGo (CpuContext);\r
-      //\r
-      // Clear Dr0 to avoid to be recognized as IMAGE_LOAD/_UNLOAD again when hitting a breakpoint after GO\r
-      // If HOST changed Dr0 before GO, we will not change Dr0 here\r
-      //\r
-      Data8 = GetBreakCause (Vector, CpuContext);\r
-      if (Data8 == DEBUG_DATA_BREAK_CAUSE_IMAGE_LOAD || Data8 == DEBUG_DATA_BREAK_CAUSE_IMAGE_UNLOAD) {\r
-        CpuContext->Dr0 = 0;\r
-      }\r
+        ResetCold ();\r
+        //\r
+        // Assume system resets in 2 seconds, otherwise send TIMEOUT packet.\r
+        // PCD can be used if 2 seconds isn't long enough for some platforms.\r
+        //\r
+        MicroSecondDelay (2000000);\r
+        UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, Mailbox->HostSequenceNo + 1);\r
+        SendAckPacket (DEBUG_COMMAND_TIMEOUT);\r
+        SendAckPacket (DEBUG_COMMAND_TIMEOUT);\r
+        SendAckPacket (DEBUG_COMMAND_TIMEOUT);\r
+        break;\r
 \r
-      if (!HaltDeferred) {\r
+      case DEBUG_COMMAND_GO:\r
+        CommandGo (CpuContext);\r
         //\r
-        // If no HALT command received when being in-active mode\r
+        // Clear Dr0 to avoid to be recognized as IMAGE_LOAD/_UNLOAD again when hitting a breakpoint after GO\r
+        // If HOST changed Dr0 before GO, we will not change Dr0 here\r
         //\r
-        if (MultiProcessorDebugSupport()) {\r
-          Data32 = FindNextPendingBreakCpu ();\r
-          if (Data32 != -1) {\r
+        Data8 = GetBreakCause (Vector, CpuContext);\r
+        if ((Data8 == DEBUG_DATA_BREAK_CAUSE_IMAGE_LOAD) || (Data8 == DEBUG_DATA_BREAK_CAUSE_IMAGE_UNLOAD)) {\r
+          CpuContext->Dr0 = 0;\r
+        }\r
+\r
+        if (!HaltDeferred) {\r
+          //\r
+          // If no HALT command received when being in-active mode\r
+          //\r
+          if (MultiProcessorDebugSupport ()) {\r
+            Data32 = FindNextPendingBreakCpu ();\r
+            if (Data32 != -1) {\r
+              //\r
+              // If there are still others processors being in break state,\r
+              // send OK packet to HOST to finish this go command\r
+              //\r
+              SendAckPacket (DEBUG_COMMAND_OK);\r
+              CpuPause ();\r
+              //\r
+              // Set current view to the next breaking processor\r
+              //\r
+              mDebugMpContext.ViewPointIndex  = Data32;\r
+              mDebugMpContext.BreakAtCpuIndex = mDebugMpContext.ViewPointIndex;\r
+              SetCpuBreakFlagByIndex (mDebugMpContext.ViewPointIndex, FALSE);\r
+              //\r
+              // Send break packet to HOST to let HOST break again\r
+              //\r
+              SendBreakPacketToHost (DEBUG_DATA_BREAK_CAUSE_UNKNOWN, mDebugMpContext.BreakAtCpuIndex, &BreakReceived);\r
+              //\r
+              // Continue to run into loop to read command packet from HOST\r
+              //\r
+              ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+              break;\r
+            }\r
+\r
             //\r
-            // If there are still others processors being in break state,\r
-            // send OK packet to HOST to finish this go command\r
+            // If no else processor break, set stop bitmask,\r
+            // and set Running flag for all processors.\r
             //\r
-            SendAckPacket (DEBUG_COMMAND_OK);\r
+            SetCpuStopFlagByIndex (ProcessorIndex, FALSE);\r
+            SetCpuRunningFlag (TRUE);\r
             CpuPause ();\r
             //\r
-            // Set current view to the next breaking processor\r
+            // Wait for all processors are in running state\r
             //\r
-            mDebugMpContext.ViewPointIndex = Data32;\r
-            mDebugMpContext.BreakAtCpuIndex = mDebugMpContext.ViewPointIndex;\r
-            SetCpuBreakFlagByIndex (mDebugMpContext.ViewPointIndex, FALSE);\r
+            while (TRUE) {\r
+              if (IsAllCpuRunning ()) {\r
+                break;\r
+              }\r
+            }\r
+\r
             //\r
-            // Send break packet to HOST to let HOST break again\r
+            // Set BSP to be current view point.\r
             //\r
-            SendBreakPacketToHost (DEBUG_DATA_BREAK_CAUSE_UNKNOWN, mDebugMpContext.BreakAtCpuIndex, &BreakReceived);\r
+            SetDebugViewPoint (mDebugMpContext.BspIndex);\r
+            CpuPause ();\r
             //\r
-            // Continue to run into loop to read command packet from HOST\r
+            // Clear breaking processor index and running flag\r
             //\r
-            ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
-            break;\r
+            mDebugMpContext.BreakAtCpuIndex = (UINT32)(-1);\r
+            SetCpuRunningFlag (FALSE);\r
           }\r
 \r
           //\r
-          // If no else processor break, set stop bitmask,\r
-          // and set Running flag for all processors.\r
-          //\r
-          SetCpuStopFlagByIndex (ProcessorIndex, FALSE);\r
-          SetCpuRunningFlag (TRUE);\r
-          CpuPause ();\r
-          //\r
-          // Wait for all processors are in running state\r
+          // Send OK packet to HOST to finish this go command\r
           //\r
-          while (TRUE) {\r
-            if (IsAllCpuRunning ()) {\r
-              break;\r
-            }\r
+          SendAckPacket (DEBUG_COMMAND_OK);\r
+\r
+          ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+\r
+          if (!IsHostAttached ()) {\r
+            UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_SEQUENCE_NO_INDEX, 0);\r
+            UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, 0);\r
           }\r
+\r
+          return;\r
+        } else {\r
           //\r
-          // Set BSP to be current view point.\r
-          //\r
-          SetDebugViewPoint (mDebugMpContext.BspIndex);\r
-          CpuPause ();\r
-          //\r
-          // Clear breaking processor index and running flag\r
+          // If received HALT command, need to defer the GO command\r
           //\r
-          mDebugMpContext.BreakAtCpuIndex = (UINT32) (-1);\r
-          SetCpuRunningFlag (FALSE);\r
+          SendAckPacket (DEBUG_COMMAND_HALT_PROCESSED);\r
+          HaltDeferred = FALSE;\r
+\r
+          Vector = DEBUG_TIMER_VECTOR;\r
         }\r
 \r
-        //\r
-        // Send OK packet to HOST to finish this go command\r
-        //\r
+        break;\r
+\r
+      case DEBUG_COMMAND_BREAK_CAUSE:\r
+        BreakCause.StopAddress = CpuContext->Eip;\r
+        if (MultiProcessorDebugSupport () && (ProcessorIndex != mDebugMpContext.BreakAtCpuIndex)) {\r
+          BreakCause.Cause = GetBreakCause (DEBUG_TIMER_VECTOR, CpuContext);\r
+        } else {\r
+          BreakCause.Cause = GetBreakCause (Vector, CpuContext);\r
+        }\r
+\r
+        SendDataResponsePacket ((UINT8 *)&BreakCause, (UINT16)sizeof (DEBUG_DATA_RESPONSE_BREAK_CAUSE), DebugHeader);\r
+        break;\r
+\r
+      case DEBUG_COMMAND_SET_HW_BREAKPOINT:\r
+        SetDebugRegister (CpuContext, (DEBUG_DATA_SET_HW_BREAKPOINT *)(DebugHeader + 1));\r
         SendAckPacket (DEBUG_COMMAND_OK);\r
+        break;\r
 \r
-        ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+      case DEBUG_COMMAND_CLEAR_HW_BREAKPOINT:\r
+        ClearDebugRegister (CpuContext, (DEBUG_DATA_CLEAR_HW_BREAKPOINT *)(DebugHeader + 1));\r
+        SendAckPacket (DEBUG_COMMAND_OK);\r
+        break;\r
 \r
-        if (!IsHostAttached()) {\r
-          UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_SEQUENCE_NO_INDEX, 0);\r
-          UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_HOST_SEQUENCE_NO_INDEX, 0);\r
+      case DEBUG_COMMAND_SINGLE_STEPPING:\r
+        CommandStepping (CpuContext);\r
+        //\r
+        // Clear Dr0 to avoid to be recognized as IMAGE_LOAD/_UNLOAD again when hitting a breakpoint after GO\r
+        // If HOST changed Dr0 before GO, we will not change Dr0 here\r
+        //\r
+        Data8 = GetBreakCause (Vector, CpuContext);\r
+        if ((Data8 == DEBUG_DATA_BREAK_CAUSE_IMAGE_LOAD) || (Data8 == DEBUG_DATA_BREAK_CAUSE_IMAGE_UNLOAD)) {\r
+          CpuContext->Dr0 = 0;\r
         }\r
-        return;\r
 \r
-      } else {\r
+        mDebugMpContext.BreakAtCpuIndex = (UINT32)(-1);\r
+        ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
         //\r
-        // If received HALT command, need to defer the GO command\r
+        // Executing stepping command directly without sending ACK packet,\r
+        // ACK packet will be sent after stepping done.\r
         //\r
-        SendAckPacket (DEBUG_COMMAND_HALT_PROCESSED);\r
-        HaltDeferred = FALSE;\r
-\r
-        Vector = DEBUG_TIMER_VECTOR;\r
-      }\r
-      break;\r
-\r
-    case DEBUG_COMMAND_BREAK_CAUSE:\r
-      BreakCause.StopAddress = CpuContext->Eip;\r
-      if (MultiProcessorDebugSupport() && ProcessorIndex != mDebugMpContext.BreakAtCpuIndex) {\r
-        BreakCause.Cause       = GetBreakCause (DEBUG_TIMER_VECTOR, CpuContext);\r
-      } else {\r
-        BreakCause.Cause       = GetBreakCause (Vector, CpuContext);\r
-      }\r
-      SendDataResponsePacket ((UINT8 *) &BreakCause, (UINT16) sizeof (DEBUG_DATA_RESPONSE_BREAK_CAUSE), DebugHeader);\r
-      break;\r
+        return;\r
 \r
-    case DEBUG_COMMAND_SET_HW_BREAKPOINT:\r
-      SetDebugRegister (CpuContext, (DEBUG_DATA_SET_HW_BREAKPOINT *) (DebugHeader + 1));\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      break;\r
+      case DEBUG_COMMAND_SET_SW_BREAKPOINT:\r
+        Data64                  = (UINTN)(((DEBUG_DATA_SET_SW_BREAKPOINT *)(DebugHeader + 1))->Address);\r
+        Data8                   = *(UINT8 *)(UINTN)Data64;\r
+        *(UINT8 *)(UINTN)Data64 = DEBUG_SW_BREAKPOINT_SYMBOL;\r
+        Status                  = SendDataResponsePacket ((UINT8 *)&Data8, (UINT16)sizeof (UINT8), DebugHeader);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_CLEAR_HW_BREAKPOINT:\r
-      ClearDebugRegister (CpuContext, (DEBUG_DATA_CLEAR_HW_BREAKPOINT *) (DebugHeader + 1));\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      break;\r
+      case DEBUG_COMMAND_READ_MEMORY:\r
+        MemoryRead = (DEBUG_DATA_READ_MEMORY *)(DebugHeader + 1);\r
+        Status     = ReadMemoryAndSendResponsePacket ((UINT8 *)(UINTN)MemoryRead->Address, MemoryRead->Count, MemoryRead->Width, DebugHeader);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_SINGLE_STEPPING:\r
-      CommandStepping (CpuContext);\r
-      //\r
-      // Clear Dr0 to avoid to be recognized as IMAGE_LOAD/_UNLOAD again when hitting a breakpoint after GO\r
-      // If HOST changed Dr0 before GO, we will not change Dr0 here\r
-      //\r
-      Data8 = GetBreakCause (Vector, CpuContext);\r
-      if (Data8 == DEBUG_DATA_BREAK_CAUSE_IMAGE_LOAD || Data8 == DEBUG_DATA_BREAK_CAUSE_IMAGE_UNLOAD) {\r
-        CpuContext->Dr0 = 0;\r
-      }\r
+      case DEBUG_COMMAND_WRITE_MEMORY:\r
+        MemoryWrite = (DEBUG_DATA_WRITE_MEMORY *)(DebugHeader + 1);\r
+        //\r
+        // Copy data into one memory with 8-byte alignment address\r
+        //\r
+        AlignedDataPtr = ALIGN_POINTER ((UINT8 *)&MemoryWrite->Data, sizeof (UINT64));\r
+        if (AlignedDataPtr != (UINT8 *)&MemoryWrite->Data) {\r
+          CopyMem (AlignedDataPtr, (UINT8 *)&MemoryWrite->Data, MemoryWrite->Count * MemoryWrite->Width);\r
+        }\r
 \r
-      mDebugMpContext.BreakAtCpuIndex = (UINT32) (-1);\r
-      ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
-      //\r
-      // Executing stepping command directly without sending ACK packet,\r
-      // ACK packet will be sent after stepping done.\r
-      //\r
-      return;\r
+        CopyMemByWidth ((UINT8 *)(UINTN)MemoryWrite->Address, AlignedDataPtr, MemoryWrite->Count, MemoryWrite->Width);\r
+        SendAckPacket (DEBUG_COMMAND_OK);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_SET_SW_BREAKPOINT:\r
-      Data64 = (UINTN) (((DEBUG_DATA_SET_SW_BREAKPOINT *) (DebugHeader + 1))->Address);\r
-      Data8 = *(UINT8 *) (UINTN) Data64;\r
-      *(UINT8 *) (UINTN) Data64 = DEBUG_SW_BREAKPOINT_SYMBOL;\r
-      Status = SendDataResponsePacket ((UINT8 *) &Data8, (UINT16) sizeof (UINT8), DebugHeader);\r
-      break;\r
+      case DEBUG_COMMAND_READ_IO:\r
+        IoRead = (DEBUG_DATA_READ_IO *)(DebugHeader + 1);\r
+        switch (IoRead->Width) {\r
+          case 1:\r
+            Data64 = IoRead8 ((UINTN)IoRead->Port);\r
+            break;\r
+          case 2:\r
+            Data64 = IoRead16 ((UINTN)IoRead->Port);\r
+            break;\r
+          case 4:\r
+            Data64 = IoRead32 ((UINTN)IoRead->Port);\r
+            break;\r
+          case 8:\r
+            Data64 = IoRead64 ((UINTN)IoRead->Port);\r
+            break;\r
+          default:\r
+            Data64 = (UINT64)-1;\r
+        }\r
 \r
-    case DEBUG_COMMAND_READ_MEMORY:\r
-      MemoryRead = (DEBUG_DATA_READ_MEMORY *) (DebugHeader + 1);\r
-      Status = ReadMemoryAndSendResponsePacket ((UINT8 *) (UINTN) MemoryRead->Address, MemoryRead->Count, MemoryRead->Width, DebugHeader);\r
-      break;\r
+        Status = SendDataResponsePacket ((UINT8 *)&Data64, IoRead->Width, DebugHeader);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_WRITE_MEMORY:\r
-      MemoryWrite = (DEBUG_DATA_WRITE_MEMORY *) (DebugHeader + 1);\r
-      //\r
-      // Copy data into one memory with 8-byte alignment address\r
-      //\r
-      AlignedDataPtr = ALIGN_POINTER ((UINT8 *) &MemoryWrite->Data, sizeof (UINT64));\r
-      if (AlignedDataPtr != (UINT8 *) &MemoryWrite->Data) {\r
-        CopyMem (AlignedDataPtr, (UINT8 *) &MemoryWrite->Data, MemoryWrite->Count * MemoryWrite->Width);\r
-      }\r
-      CopyMemByWidth ((UINT8 *) (UINTN) MemoryWrite->Address, AlignedDataPtr, MemoryWrite->Count, MemoryWrite->Width);\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      break;\r
+      case DEBUG_COMMAND_WRITE_IO:\r
+        IoWrite = (DEBUG_DATA_WRITE_IO *)(DebugHeader + 1);\r
+        switch (IoWrite->Width) {\r
+          case 1:\r
+            Data64 = IoWrite8 ((UINTN)IoWrite->Port, *(UINT8 *)&IoWrite->Data);\r
+            break;\r
+          case 2:\r
+            Data64 = IoWrite16 ((UINTN)IoWrite->Port, *(UINT16 *)&IoWrite->Data);\r
+            break;\r
+          case 4:\r
+            Data64 = IoWrite32 ((UINTN)IoWrite->Port, *(UINT32 *)&IoWrite->Data);\r
+            break;\r
+          case 8:\r
+            Data64 = IoWrite64 ((UINTN)IoWrite->Port, *(UINT64 *)&IoWrite->Data);\r
+            break;\r
+          default:\r
+            Data64 = (UINT64)-1;\r
+        }\r
 \r
-    case DEBUG_COMMAND_READ_IO:\r
-      IoRead = (DEBUG_DATA_READ_IO *) (DebugHeader + 1);\r
-      switch (IoRead->Width) {\r
-      case 1:\r
-        Data64  = IoRead8 ((UINTN) IoRead->Port);\r
-        break;\r
-      case 2:\r
-        Data64  = IoRead16 ((UINTN) IoRead->Port);\r
-        break;\r
-      case 4:\r
-        Data64  = IoRead32 ((UINTN) IoRead->Port);\r
-        break;\r
-      case 8:\r
-        Data64  = IoRead64 ((UINTN) IoRead->Port);\r
+        SendAckPacket (DEBUG_COMMAND_OK);\r
         break;\r
-      default:\r
-        Data64  = (UINT64) -1;\r
-      }\r
-      Status = SendDataResponsePacket ((UINT8 *) &Data64, IoRead->Width, DebugHeader);\r
-      break;\r
 \r
-    case DEBUG_COMMAND_WRITE_IO:\r
-      IoWrite = (DEBUG_DATA_WRITE_IO *) (DebugHeader + 1);\r
-      switch (IoWrite->Width) {\r
-      case 1:\r
-        Data64  = IoWrite8 ((UINTN) IoWrite->Port, *(UINT8 *) &IoWrite->Data);\r
-        break;\r
-      case 2:\r
-        Data64  = IoWrite16 ((UINTN) IoWrite->Port, *(UINT16 *) &IoWrite->Data);\r
-        break;\r
-      case 4:\r
-        Data64  = IoWrite32 ((UINTN) IoWrite->Port, *(UINT32 *) &IoWrite->Data);\r
-        break;\r
-      case 8:\r
-        Data64  = IoWrite64 ((UINTN) IoWrite->Port, *(UINT64 *) &IoWrite->Data);\r
+      case DEBUG_COMMAND_READ_ALL_REGISTERS:\r
+        Status = SendDataResponsePacket ((UINT8 *)CpuContext, sizeof (*CpuContext), DebugHeader);\r
         break;\r
-      default:\r
-        Data64  = (UINT64) -1;\r
-      }\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      break;\r
 \r
-    case DEBUG_COMMAND_READ_ALL_REGISTERS:\r
-      Status = SendDataResponsePacket ((UINT8 *) CpuContext, sizeof (*CpuContext), DebugHeader);\r
-      break;\r
+      case DEBUG_COMMAND_READ_REGISTER:\r
+        RegisterRead = (DEBUG_DATA_READ_REGISTER *)(DebugHeader + 1);\r
 \r
-    case DEBUG_COMMAND_READ_REGISTER:\r
-      RegisterRead = (DEBUG_DATA_READ_REGISTER *) (DebugHeader + 1);\r
+        if (RegisterRead->Index <= SOFT_DEBUGGER_REGISTER_MAX) {\r
+          RegisterBuffer = ArchReadRegisterBuffer (CpuContext, RegisterRead->Index, &Width);\r
+          Status         = SendDataResponsePacket (RegisterBuffer, Width, DebugHeader);\r
+        } else {\r
+          Status = RETURN_UNSUPPORTED;\r
+        }\r
 \r
-      if (RegisterRead->Index <= SOFT_DEBUGGER_REGISTER_MAX) {\r
-        RegisterBuffer = ArchReadRegisterBuffer (CpuContext, RegisterRead->Index, &Width);\r
-        Status = SendDataResponsePacket (RegisterBuffer, Width, DebugHeader);\r
-      } else {\r
-        Status = RETURN_UNSUPPORTED;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case DEBUG_COMMAND_WRITE_REGISTER:\r
-      RegisterWrite = (DEBUG_DATA_WRITE_REGISTER *) (DebugHeader + 1);\r
-      if (RegisterWrite->Index <= SOFT_DEBUGGER_REGISTER_MAX) {\r
-        RegisterBuffer = ArchReadRegisterBuffer (CpuContext, RegisterWrite->Index, &Width);\r
-        ASSERT (Width == RegisterWrite->Length);\r
-        CopyMem (RegisterBuffer, RegisterWrite->Data, Width);\r
-        SendAckPacket (DEBUG_COMMAND_OK);\r
-      } else {\r
-        Status = RETURN_UNSUPPORTED;\r
-      }\r
-      break;\r
+      case DEBUG_COMMAND_WRITE_REGISTER:\r
+        RegisterWrite = (DEBUG_DATA_WRITE_REGISTER *)(DebugHeader + 1);\r
+        if (RegisterWrite->Index <= SOFT_DEBUGGER_REGISTER_MAX) {\r
+          RegisterBuffer = ArchReadRegisterBuffer (CpuContext, RegisterWrite->Index, &Width);\r
+          ASSERT (Width == RegisterWrite->Length);\r
+          CopyMem (RegisterBuffer, RegisterWrite->Data, Width);\r
+          SendAckPacket (DEBUG_COMMAND_OK);\r
+        } else {\r
+          Status = RETURN_UNSUPPORTED;\r
+        }\r
 \r
-    case DEBUG_COMMAND_ARCH_MODE:\r
-      Data8 = DEBUG_ARCH_SYMBOL;\r
-      Status = SendDataResponsePacket ((UINT8 *) &Data8, (UINT16) sizeof (UINT8), DebugHeader);\r
-      break;\r
+        break;\r
 \r
-    case DEBUG_COMMAND_READ_MSR:\r
-      MsrRegisterRead = (DEBUG_DATA_READ_MSR *) (DebugHeader + 1);\r
-      Data64 = AsmReadMsr64 (MsrRegisterRead->Index);\r
-      Status = SendDataResponsePacket ((UINT8 *) &Data64, (UINT16) sizeof (UINT64), DebugHeader);\r
-      break;\r
+      case DEBUG_COMMAND_ARCH_MODE:\r
+        Data8  = DEBUG_ARCH_SYMBOL;\r
+        Status = SendDataResponsePacket ((UINT8 *)&Data8, (UINT16)sizeof (UINT8), DebugHeader);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_WRITE_MSR:\r
-      MsrRegisterWrite = (DEBUG_DATA_WRITE_MSR *) (DebugHeader + 1);\r
-      AsmWriteMsr64 (MsrRegisterWrite->Index, MsrRegisterWrite->Value);\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      break;\r
+      case DEBUG_COMMAND_READ_MSR:\r
+        MsrRegisterRead = (DEBUG_DATA_READ_MSR *)(DebugHeader + 1);\r
+        Data64          = AsmReadMsr64 (MsrRegisterRead->Index);\r
+        Status          = SendDataResponsePacket ((UINT8 *)&Data64, (UINT16)sizeof (UINT64), DebugHeader);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_SET_DEBUG_SETTING:\r
-      Status = SetDebugSetting ((DEBUG_DATA_SET_DEBUG_SETTING *)(DebugHeader + 1));\r
-      if (Status == RETURN_SUCCESS) {\r
+      case DEBUG_COMMAND_WRITE_MSR:\r
+        MsrRegisterWrite = (DEBUG_DATA_WRITE_MSR *)(DebugHeader + 1);\r
+        AsmWriteMsr64 (MsrRegisterWrite->Index, MsrRegisterWrite->Value);\r
         SendAckPacket (DEBUG_COMMAND_OK);\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case DEBUG_COMMAND_GET_REVISION:\r
-      DebugAgentRevision.Revision = PcdGet32(PcdTransferProtocolRevision);\r
-      DebugAgentRevision.Capabilities = DEBUG_AGENT_CAPABILITIES;\r
-      Status = SendDataResponsePacket ((UINT8 *) &DebugAgentRevision, (UINT16) sizeof (DEBUG_DATA_RESPONSE_GET_REVISION), DebugHeader);\r
-      break;\r
+      case DEBUG_COMMAND_SET_DEBUG_SETTING:\r
+        Status = SetDebugSetting ((DEBUG_DATA_SET_DEBUG_SETTING *)(DebugHeader + 1));\r
+        if (Status == RETURN_SUCCESS) {\r
+          SendAckPacket (DEBUG_COMMAND_OK);\r
+        }\r
 \r
-    case DEBUG_COMMAND_GET_EXCEPTION:\r
-      Exception.ExceptionNum  = (UINT8) Vector;\r
-      Exception.ExceptionData = (UINT32) CpuContext->ExceptionData;\r
-      Status = SendDataResponsePacket ((UINT8 *) &Exception, (UINT16) sizeof (DEBUG_DATA_RESPONSE_GET_EXCEPTION), DebugHeader);\r
-      break;\r
+        break;\r
 \r
-    case DEBUG_COMMAND_SET_VIEWPOINT:\r
-      SetViewPoint = (DEBUG_DATA_SET_VIEWPOINT *) (DebugHeader + 1);\r
-      if (MultiProcessorDebugSupport()) {\r
-        if (IsCpuStopped (SetViewPoint->ViewPoint)) {\r
-          SetDebugViewPoint (SetViewPoint->ViewPoint);\r
+      case DEBUG_COMMAND_GET_REVISION:\r
+        DebugAgentRevision.Revision     = PcdGet32 (PcdTransferProtocolRevision);\r
+        DebugAgentRevision.Capabilities = DEBUG_AGENT_CAPABILITIES;\r
+        Status                          = SendDataResponsePacket ((UINT8 *)&DebugAgentRevision, (UINT16)sizeof (DEBUG_DATA_RESPONSE_GET_REVISION), DebugHeader);\r
+        break;\r
+\r
+      case DEBUG_COMMAND_GET_EXCEPTION:\r
+        Exception.ExceptionNum  = (UINT8)Vector;\r
+        Exception.ExceptionData = (UINT32)CpuContext->ExceptionData;\r
+        Status                  = SendDataResponsePacket ((UINT8 *)&Exception, (UINT16)sizeof (DEBUG_DATA_RESPONSE_GET_EXCEPTION), DebugHeader);\r
+        break;\r
+\r
+      case DEBUG_COMMAND_SET_VIEWPOINT:\r
+        SetViewPoint = (DEBUG_DATA_SET_VIEWPOINT *)(DebugHeader + 1);\r
+        if (MultiProcessorDebugSupport ()) {\r
+          if (IsCpuStopped (SetViewPoint->ViewPoint)) {\r
+            SetDebugViewPoint (SetViewPoint->ViewPoint);\r
+            SendAckPacket (DEBUG_COMMAND_OK);\r
+          } else {\r
+            //\r
+            // If CPU is not halted\r
+            //\r
+            SendAckPacket (DEBUG_COMMAND_NOT_SUPPORTED);\r
+          }\r
+        } else if (SetViewPoint->ViewPoint == 0) {\r
           SendAckPacket (DEBUG_COMMAND_OK);\r
         } else {\r
-          //\r
-          // If CPU is not halted\r
-          //\r
           SendAckPacket (DEBUG_COMMAND_NOT_SUPPORTED);\r
         }\r
-      } else if (SetViewPoint->ViewPoint == 0) {\r
-        SendAckPacket (DEBUG_COMMAND_OK);\r
 \r
-      } else {\r
-        SendAckPacket (DEBUG_COMMAND_NOT_SUPPORTED);\r
-      }\r
+        break;\r
 \r
-      break;\r
+      case DEBUG_COMMAND_GET_VIEWPOINT:\r
+        Data32 = mDebugMpContext.ViewPointIndex;\r
+        SendDataResponsePacket ((UINT8 *)&Data32, (UINT16)sizeof (UINT32), DebugHeader);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_GET_VIEWPOINT:\r
-      Data32 = mDebugMpContext.ViewPointIndex;\r
-      SendDataResponsePacket((UINT8 *) &Data32, (UINT16) sizeof (UINT32), DebugHeader);\r
-      break;\r
+      case DEBUG_COMMAND_MEMORY_READY:\r
+        Data8 = (UINT8)GetDebugFlag (DEBUG_AGENT_FLAG_MEMORY_READY);\r
+        SendDataResponsePacket (&Data8, (UINT16)sizeof (UINT8), DebugHeader);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_MEMORY_READY:\r
-      Data8 = (UINT8) GetDebugFlag (DEBUG_AGENT_FLAG_MEMORY_READY);\r
-      SendDataResponsePacket (&Data8, (UINT16) sizeof (UINT8), DebugHeader);\r
-      break;\r
+      case DEBUG_COMMAND_DETACH:\r
+        SetHostAttached (FALSE);\r
+        SendAckPacket (DEBUG_COMMAND_OK);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_DETACH:\r
-      SetHostAttached (FALSE);\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      break;\r
+      case DEBUG_COMMAND_CPUID:\r
+        Cpuid = (DEBUG_DATA_CPUID *)(DebugHeader + 1);\r
+        AsmCpuidEx (\r
+          Cpuid->Eax,\r
+          Cpuid->Ecx,\r
+          &CpuidResponse.Eax,\r
+          &CpuidResponse.Ebx,\r
+          &CpuidResponse.Ecx,\r
+          &CpuidResponse.Edx\r
+          );\r
+        SendDataResponsePacket ((UINT8 *)&CpuidResponse, (UINT16)sizeof (CpuidResponse), DebugHeader);\r
+        break;\r
 \r
-    case DEBUG_COMMAND_CPUID:\r
-      Cpuid = (DEBUG_DATA_CPUID *) (DebugHeader + 1);\r
-      AsmCpuidEx (\r
-        Cpuid->Eax, Cpuid->Ecx,\r
-        &CpuidResponse.Eax, &CpuidResponse.Ebx,\r
-        &CpuidResponse.Ecx, &CpuidResponse.Edx\r
-        );\r
-      SendDataResponsePacket ((UINT8 *) &CpuidResponse, (UINT16) sizeof (CpuidResponse), DebugHeader);\r
-      break;\r
+      case DEBUG_COMMAND_SEARCH_SIGNATURE:\r
+        SearchSignature = (DEBUG_DATA_SEARCH_SIGNATURE *)(DebugHeader + 1);\r
+        if ((SearchSignature->Alignment != 0) &&\r
+            (SearchSignature->Alignment == GetPowerOfTwo32 (SearchSignature->Alignment))\r
+            )\r
+        {\r
+          if (SearchSignature->Positive) {\r
+            for (\r
+                 Data64 = ALIGN_VALUE ((UINTN)SearchSignature->Start, SearchSignature->Alignment);\r
+                 Data64 <= SearchSignature->Start + SearchSignature->Count - SearchSignature->DataLength;\r
+                 Data64 += SearchSignature->Alignment\r
+                 )\r
+            {\r
+              if (CompareMem ((VOID *)(UINTN)Data64, &SearchSignature->Data, SearchSignature->DataLength) == 0) {\r
+                break;\r
+              }\r
+            }\r
 \r
-   case DEBUG_COMMAND_SEARCH_SIGNATURE:\r
-      SearchSignature = (DEBUG_DATA_SEARCH_SIGNATURE *) (DebugHeader + 1);\r
-      if ((SearchSignature->Alignment != 0) &&\r
-          (SearchSignature->Alignment == GetPowerOfTwo32 (SearchSignature->Alignment))\r
-         ) {\r
-        if (SearchSignature->Positive) {\r
-          for (\r
-            Data64 = ALIGN_VALUE ((UINTN) SearchSignature->Start, SearchSignature->Alignment);\r
-            Data64 <= SearchSignature->Start + SearchSignature->Count - SearchSignature->DataLength;\r
-            Data64 += SearchSignature->Alignment\r
-              ) {\r
-            if (CompareMem ((VOID *) (UINTN) Data64, &SearchSignature->Data, SearchSignature->DataLength) == 0) {\r
-              break;\r
+            if (Data64 > SearchSignature->Start + SearchSignature->Count - SearchSignature->DataLength) {\r
+              Data64 = (UINT64)-1;\r
             }\r
-          }\r
-          if (Data64 > SearchSignature->Start + SearchSignature->Count - SearchSignature->DataLength) {\r
-            Data64 = (UINT64) -1;\r
-          }\r
-        } else {\r
-          for (\r
-            Data64 = ALIGN_VALUE ((UINTN) SearchSignature->Start - SearchSignature->Alignment, SearchSignature->Alignment);\r
-            Data64 >= SearchSignature->Start - SearchSignature->Count;\r
-            Data64 -= SearchSignature->Alignment\r
-              ) {\r
-            if (CompareMem ((VOID *) (UINTN) Data64, &SearchSignature->Data, SearchSignature->DataLength) == 0) {\r
-              break;\r
+          } else {\r
+            for (\r
+                 Data64 = ALIGN_VALUE ((UINTN)SearchSignature->Start - SearchSignature->Alignment, SearchSignature->Alignment);\r
+                 Data64 >= SearchSignature->Start - SearchSignature->Count;\r
+                 Data64 -= SearchSignature->Alignment\r
+                 )\r
+            {\r
+              if (CompareMem ((VOID *)(UINTN)Data64, &SearchSignature->Data, SearchSignature->DataLength) == 0) {\r
+                break;\r
+              }\r
+            }\r
+\r
+            if (Data64 < SearchSignature->Start - SearchSignature->Count) {\r
+              Data64 = (UINT64)-1;\r
             }\r
           }\r
-          if (Data64 < SearchSignature->Start - SearchSignature->Count) {\r
-            Data64 = (UINT64) -1;\r
-          }\r
+\r
+          SendDataResponsePacket ((UINT8 *)&Data64, (UINT16)sizeof (Data64), DebugHeader);\r
+        } else {\r
+          Status = RETURN_UNSUPPORTED;\r
         }\r
-        SendDataResponsePacket ((UINT8 *) &Data64, (UINT16) sizeof (Data64), DebugHeader);\r
-      } else {\r
-        Status = RETURN_UNSUPPORTED;\r
-      }\r
-      break;\r
 \r
-    default:\r
-      SendAckPacket (DEBUG_COMMAND_NOT_SUPPORTED);\r
-      break;\r
+        break;\r
+\r
+      default:\r
+        SendAckPacket (DEBUG_COMMAND_NOT_SUPPORTED);\r
+        break;\r
     }\r
 \r
     if (Status == RETURN_UNSUPPORTED) {\r
@@ -2307,21 +2355,21 @@ CommandCommunication (
 VOID\r
 EFIAPI\r
 InterruptProcess (\r
-  IN UINT32                          Vector,\r
-  IN DEBUG_CPU_CONTEXT               *CpuContext\r
+  IN UINT32             Vector,\r
+  IN DEBUG_CPU_CONTEXT  *CpuContext\r
   )\r
 {\r
-  UINT8                            InputCharacter;\r
-  UINT8                            BreakCause;\r
-  UINTN                            SavedEip;\r
-  BOOLEAN                          BreakReceived;\r
-  UINT32                           ProcessorIndex;\r
-  UINT32                           CurrentDebugTimerInitCount;\r
-  DEBUG_PORT_HANDLE                Handle;\r
-  UINT8                            Data8;\r
-  UINT8                            *Al;\r
-  UINT32                           IssuedViewPoint;\r
-  DEBUG_AGENT_EXCEPTION_BUFFER     *ExceptionBuffer;\r
+  UINT8                         InputCharacter;\r
+  UINT8                         BreakCause;\r
+  UINTN                         SavedEip;\r
+  BOOLEAN                       BreakReceived;\r
+  UINT32                        ProcessorIndex;\r
+  UINT32                        CurrentDebugTimerInitCount;\r
+  DEBUG_PORT_HANDLE             Handle;\r
+  UINT8                         Data8;\r
+  UINT8                         *Al;\r
+  UINT32                        IssuedViewPoint;\r
+  DEBUG_AGENT_EXCEPTION_BUFFER  *ExceptionBuffer;\r
 \r
   InputCharacter  = 0;\r
   ProcessorIndex  = 0;\r
@@ -2333,12 +2381,12 @@ InterruptProcess (
     // If Skip Breakpoint flag is set, means communication is disturbed by hardware SMI, we need to ignore the break points in SMM\r
     //\r
     if ((Vector == DEBUG_INT1_VECTOR) || (Vector == DEBUG_INT3_VECTOR)) {\r
-      DebugPortWriteBuffer (GetDebugPortHandle(), (UINT8 *) mWarningMsgIngoreBreakpoint, AsciiStrLen (mWarningMsgIngoreBreakpoint));\r
+      DebugPortWriteBuffer (GetDebugPortHandle (), (UINT8 *)mWarningMsgIngoreBreakpoint, AsciiStrLen (mWarningMsgIngoreBreakpoint));\r
       return;\r
     }\r
   }\r
 \r
-  if (MultiProcessorDebugSupport()) {\r
+  if (MultiProcessorDebugSupport ()) {\r
     ProcessorIndex = GetProcessorIndex ();\r
     //\r
     // If this processor has already halted before, need to check it later\r
@@ -2348,7 +2396,7 @@ InterruptProcess (
     }\r
   }\r
 \r
-  if (IssuedViewPoint == ProcessorIndex && GetDebugFlag (DEBUG_AGENT_FLAG_STEPPING) != 1) {\r
+  if ((IssuedViewPoint == ProcessorIndex) && (GetDebugFlag (DEBUG_AGENT_FLAG_STEPPING) != 1)) {\r
     //\r
     // Check if this exception is issued by Debug Agent itself\r
     // If yes, fill the debug agent exception buffer and LongJump() back to\r
@@ -2363,14 +2411,14 @@ InterruptProcess (
         Vector,\r
         (UINTN)CpuContext->Eip\r
         );\r
-      ExceptionBuffer = (DEBUG_AGENT_EXCEPTION_BUFFER *) (UINTN) GetMailboxPointer()->ExceptionBufferPointer;\r
-      ExceptionBuffer->ExceptionContent.ExceptionNum  = (UINT8) Vector;\r
-      ExceptionBuffer->ExceptionContent.ExceptionData = (UINT32) CpuContext->ExceptionData;\r
+      ExceptionBuffer                                 = (DEBUG_AGENT_EXCEPTION_BUFFER *)(UINTN)GetMailboxPointer ()->ExceptionBufferPointer;\r
+      ExceptionBuffer->ExceptionContent.ExceptionNum  = (UINT8)Vector;\r
+      ExceptionBuffer->ExceptionContent.ExceptionData = (UINT32)CpuContext->ExceptionData;\r
       LongJump ((BASE_LIBRARY_JUMP_BUFFER *)(UINTN)(ExceptionBuffer), 1);\r
     }\r
   }\r
 \r
-  if (MultiProcessorDebugSupport()) {\r
+  if (MultiProcessorDebugSupport ()) {\r
     //\r
     // If RUN command is executing, wait for it done.\r
     //\r
@@ -2379,239 +2427,250 @@ InterruptProcess (
     }\r
   }\r
 \r
-  Handle     = GetDebugPortHandle();\r
+  Handle     = GetDebugPortHandle ();\r
   BreakCause = GetBreakCause (Vector, CpuContext);\r
   switch (Vector) {\r
-  case DEBUG_INT1_VECTOR:\r
-  case DEBUG_INT3_VECTOR:\r
-    switch (BreakCause) {\r
-    case DEBUG_DATA_BREAK_CAUSE_SYSTEM_RESET:\r
-      if (AttachHost (BreakCause, READ_PACKET_TIMEOUT, &BreakReceived) != RETURN_SUCCESS) {\r
-        //\r
-        // Try to connect HOST, return if fails\r
-        //\r
-        break;\r
-      }\r
-      CommandCommunication (Vector, CpuContext, BreakReceived);\r
-      break;\r
+    case DEBUG_INT1_VECTOR:\r
+    case DEBUG_INT3_VECTOR:\r
+      switch (BreakCause) {\r
+        case DEBUG_DATA_BREAK_CAUSE_SYSTEM_RESET:\r
+          if (AttachHost (BreakCause, READ_PACKET_TIMEOUT, &BreakReceived) != RETURN_SUCCESS) {\r
+            //\r
+            // Try to connect HOST, return if fails\r
+            //\r
+            break;\r
+          }\r
 \r
-    case DEBUG_DATA_BREAK_CAUSE_STEPPING:\r
-      //\r
-      // Stepping is finished, send Ack package.\r
-      //\r
-      if (MultiProcessorDebugSupport()) {\r
-        mDebugMpContext.BreakAtCpuIndex = ProcessorIndex;\r
-      }\r
-      //\r
-      // Clear Stepping Flag and restore EFLAGS.IF\r
-      //\r
-      CommandSteppingCleanup (CpuContext);\r
-      SendAckPacket (DEBUG_COMMAND_OK);\r
-      CommandCommunication (Vector, CpuContext, BreakReceived);\r
-      break;\r
+          CommandCommunication (Vector, CpuContext, BreakReceived);\r
+          break;\r
 \r
-    case DEBUG_DATA_BREAK_CAUSE_MEMORY_READY:\r
-      //\r
-      // Memory is ready\r
-      //\r
-      SendCommandAndWaitForAckOK (DEBUG_COMMAND_MEMORY_READY, READ_PACKET_TIMEOUT, &BreakReceived, NULL);\r
-      CommandCommunication (Vector, CpuContext, BreakReceived);\r
-      break;\r
+        case DEBUG_DATA_BREAK_CAUSE_STEPPING:\r
+          //\r
+          // Stepping is finished, send Ack package.\r
+          //\r
+          if (MultiProcessorDebugSupport ()) {\r
+            mDebugMpContext.BreakAtCpuIndex = ProcessorIndex;\r
+          }\r
 \r
-    case DEBUG_DATA_BREAK_CAUSE_IMAGE_LOAD:\r
-    case DEBUG_DATA_BREAK_CAUSE_IMAGE_UNLOAD:\r
-      //\r
-      // Set AL to DEBUG_AGENT_IMAGE_CONTINUE\r
-      //\r
-      Al = ArchReadRegisterBuffer (CpuContext, SOFT_DEBUGGER_REGISTER_AX, &Data8);\r
-      *Al = DEBUG_AGENT_IMAGE_CONTINUE;\r
+          //\r
+          // Clear Stepping Flag and restore EFLAGS.IF\r
+          //\r
+          CommandSteppingCleanup (CpuContext);\r
+          SendAckPacket (DEBUG_COMMAND_OK);\r
+          CommandCommunication (Vector, CpuContext, BreakReceived);\r
+          break;\r
 \r
-      if (!IsHostAttached ()) {\r
-        //\r
-        // If HOST is not connected for image load/unload, return\r
-        //\r
-        break;\r
-      }\r
-      //\r
-      // Continue to run the following common code\r
-      //\r
+        case DEBUG_DATA_BREAK_CAUSE_MEMORY_READY:\r
+          //\r
+          // Memory is ready\r
+          //\r
+          SendCommandAndWaitForAckOK (DEBUG_COMMAND_MEMORY_READY, READ_PACKET_TIMEOUT, &BreakReceived, NULL);\r
+          CommandCommunication (Vector, CpuContext, BreakReceived);\r
+          break;\r
 \r
-    case DEBUG_DATA_BREAK_CAUSE_HW_BREAKPOINT:\r
-    case DEBUG_DATA_BREAK_CAUSE_SW_BREAKPOINT:\r
-    default:\r
-      //\r
-      // Send Break packet to HOST\r
-      //\r
-      AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
-      //\r
-      // Only the first breaking processor could send BREAK_POINT to HOST\r
-      //\r
-      if (IsFirstBreakProcessor (ProcessorIndex)) {\r
-        SendBreakPacketToHost (BreakCause, ProcessorIndex, &BreakReceived);\r
-      }\r
-      ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+        case DEBUG_DATA_BREAK_CAUSE_IMAGE_LOAD:\r
+        case DEBUG_DATA_BREAK_CAUSE_IMAGE_UNLOAD:\r
+          //\r
+          // Set AL to DEBUG_AGENT_IMAGE_CONTINUE\r
+          //\r
+          Al  = ArchReadRegisterBuffer (CpuContext, SOFT_DEBUGGER_REGISTER_AX, &Data8);\r
+          *Al = DEBUG_AGENT_IMAGE_CONTINUE;\r
+\r
+          if (!IsHostAttached ()) {\r
+            //\r
+            // If HOST is not connected for image load/unload, return\r
+            //\r
+            break;\r
+          }\r
 \r
-      if (Vector == DEBUG_INT3_VECTOR) {\r
         //\r
-        // go back address located "0xCC"\r
+        // Continue to run the following common code\r
         //\r
-        CpuContext->Eip--;\r
-        SavedEip = CpuContext->Eip;\r
-        CommandCommunication (Vector, CpuContext, BreakReceived);\r
-        if ((SavedEip == CpuContext->Eip) &&\r
-            (*(UINT8 *) (UINTN) CpuContext->Eip == DEBUG_SW_BREAKPOINT_SYMBOL)) {\r
+\r
+        case DEBUG_DATA_BREAK_CAUSE_HW_BREAKPOINT:\r
+        case DEBUG_DATA_BREAK_CAUSE_SW_BREAKPOINT:\r
+        default:\r
           //\r
-          // If this is not a software breakpoint set by HOST,\r
-          // restore EIP\r
+          // Send Break packet to HOST\r
           //\r
-          CpuContext->Eip++;\r
-        }\r
-      } else {\r
-        CommandCommunication (Vector, CpuContext, BreakReceived);\r
+          AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+          //\r
+          // Only the first breaking processor could send BREAK_POINT to HOST\r
+          //\r
+          if (IsFirstBreakProcessor (ProcessorIndex)) {\r
+            SendBreakPacketToHost (BreakCause, ProcessorIndex, &BreakReceived);\r
+          }\r
+\r
+          ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+\r
+          if (Vector == DEBUG_INT3_VECTOR) {\r
+            //\r
+            // go back address located "0xCC"\r
+            //\r
+            CpuContext->Eip--;\r
+            SavedEip = CpuContext->Eip;\r
+            CommandCommunication (Vector, CpuContext, BreakReceived);\r
+            if ((SavedEip == CpuContext->Eip) &&\r
+                (*(UINT8 *)(UINTN)CpuContext->Eip == DEBUG_SW_BREAKPOINT_SYMBOL))\r
+            {\r
+              //\r
+              // If this is not a software breakpoint set by HOST,\r
+              // restore EIP\r
+              //\r
+              CpuContext->Eip++;\r
+            }\r
+          } else {\r
+            CommandCommunication (Vector, CpuContext, BreakReceived);\r
+          }\r
+\r
+          break;\r
       }\r
-      break;\r
-    }\r
 \r
-    break;\r
+      break;\r
 \r
-  case DEBUG_TIMER_VECTOR:\r
+    case DEBUG_TIMER_VECTOR:\r
 \r
-    AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+      AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
 \r
-    if (MultiProcessorDebugSupport()) {\r
-      if (DebugAgentIsBsp (ProcessorIndex)) {\r
-        //\r
-        // If current processor is BSP, check Apic timer's init count if changed,\r
-        // it may be re-written when switching BSP.\r
-        // If it changed, re-initialize debug timer\r
-        //\r
-        CurrentDebugTimerInitCount = GetApicTimerInitCount ();\r
-        if (mDebugMpContext.DebugTimerInitCount != CurrentDebugTimerInitCount) {\r
-          InitializeDebugTimer (NULL, FALSE);\r
-          SaveAndSetDebugTimerInterrupt (TRUE);\r
+      if (MultiProcessorDebugSupport ()) {\r
+        if (DebugAgentIsBsp (ProcessorIndex)) {\r
+          //\r
+          // If current processor is BSP, check Apic timer's init count if changed,\r
+          // it may be re-written when switching BSP.\r
+          // If it changed, re-initialize debug timer\r
+          //\r
+          CurrentDebugTimerInitCount = GetApicTimerInitCount ();\r
+          if (mDebugMpContext.DebugTimerInitCount != CurrentDebugTimerInitCount) {\r
+            InitializeDebugTimer (NULL, FALSE);\r
+            SaveAndSetDebugTimerInterrupt (TRUE);\r
+          }\r
         }\r
-      }\r
 \r
-      if (!DebugAgentIsBsp (ProcessorIndex) || mDebugMpContext.IpiSentByAp) {\r
-        ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
-        //\r
-        // If current processor is not BSP or this is one IPI sent by AP\r
-        //\r
-        if (mDebugMpContext.BreakAtCpuIndex != (UINT32) (-1)) {\r
-          CommandCommunication (Vector, CpuContext, FALSE);\r
-        }\r
+        if (!DebugAgentIsBsp (ProcessorIndex) || mDebugMpContext.IpiSentByAp) {\r
+          ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+          //\r
+          // If current processor is not BSP or this is one IPI sent by AP\r
+          //\r
+          if (mDebugMpContext.BreakAtCpuIndex != (UINT32)(-1)) {\r
+            CommandCommunication (Vector, CpuContext, FALSE);\r
+          }\r
 \r
-        //\r
-        // Clear EOI before exiting interrupt process routine.\r
-        //\r
-        SendApicEoi ();\r
-        break;\r
+          //\r
+          // Clear EOI before exiting interrupt process routine.\r
+          //\r
+          SendApicEoi ();\r
+          break;\r
+        }\r
       }\r
-    }\r
 \r
-    //\r
-    // Only BSP could run here\r
-    //\r
-    while (TRUE) {\r
       //\r
-      // If there is data in debug port, will check whether it is break(attach/break-in) symbol,\r
-      // If yes, go into communication mode with HOST.\r
-      // If no, exit interrupt process.\r
+      // Only BSP could run here\r
       //\r
-      if (DebugReadBreakSymbol (Handle, &InputCharacter) == EFI_NOT_FOUND) {\r
-        break;\r
-      }\r
-\r
-      if ((!IsHostAttached () && (InputCharacter == DEBUG_STARTING_SYMBOL_ATTACH)) ||\r
-          (IsHostAttached () && (InputCharacter == DEBUG_COMMAND_HALT)) ||\r
-          (IsHostAttached () && (InputCharacter == DEBUG_COMMAND_GO))\r
-         ) {\r
-        DebugAgentMsgPrint (DEBUG_AGENT_VERBOSE, "Received data [%02x]\n", InputCharacter);\r
-        //\r
-        // Ack OK for break-in symbol\r
-        //\r
-        SendAckPacket (DEBUG_COMMAND_OK);\r
-\r
+      while (TRUE) {\r
         //\r
-        // If receive GO command in Debug Timer, means HOST may lost ACK packet before.\r
+        // If there is data in debug port, will check whether it is break(attach/break-in) symbol,\r
+        // If yes, go into communication mode with HOST.\r
+        // If no, exit interrupt process.\r
         //\r
-        if (InputCharacter == DEBUG_COMMAND_GO) {\r
+        if (DebugReadBreakSymbol (Handle, &InputCharacter) == EFI_NOT_FOUND) {\r
           break;\r
         }\r
 \r
-        if (!IsHostAttached ()) {\r
+        if ((!IsHostAttached () && (InputCharacter == DEBUG_STARTING_SYMBOL_ATTACH)) ||\r
+            (IsHostAttached () && (InputCharacter == DEBUG_COMMAND_HALT)) ||\r
+            (IsHostAttached () && (InputCharacter == DEBUG_COMMAND_GO))\r
+            )\r
+        {\r
+          DebugAgentMsgPrint (DEBUG_AGENT_VERBOSE, "Received data [%02x]\n", InputCharacter);\r
           //\r
-          // Try to attach HOST, if no ack received after 200ms, return\r
+          // Ack OK for break-in symbol\r
           //\r
-          if (AttachHost (BreakCause, READ_PACKET_TIMEOUT, &BreakReceived) != RETURN_SUCCESS) {\r
+          SendAckPacket (DEBUG_COMMAND_OK);\r
+\r
+          //\r
+          // If receive GO command in Debug Timer, means HOST may lost ACK packet before.\r
+          //\r
+          if (InputCharacter == DEBUG_COMMAND_GO) {\r
             break;\r
           }\r
-        }\r
 \r
-        if (MultiProcessorDebugSupport()) {\r
-          if(FindNextPendingBreakCpu  () != -1) {\r
-            SetCpuBreakFlagByIndex (ProcessorIndex, TRUE);\r
-          } else {\r
-            HaltOtherProcessors (ProcessorIndex);\r
+          if (!IsHostAttached ()) {\r
+            //\r
+            // Try to attach HOST, if no ack received after 200ms, return\r
+            //\r
+            if (AttachHost (BreakCause, READ_PACKET_TIMEOUT, &BreakReceived) != RETURN_SUCCESS) {\r
+              break;\r
+            }\r
+          }\r
+\r
+          if (MultiProcessorDebugSupport ()) {\r
+            if (FindNextPendingBreakCpu () != -1) {\r
+              SetCpuBreakFlagByIndex (ProcessorIndex, TRUE);\r
+            } else {\r
+              HaltOtherProcessors (ProcessorIndex);\r
+            }\r
           }\r
+\r
+          ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+          CommandCommunication (Vector, CpuContext, BreakReceived);\r
+          AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+          break;\r
         }\r
-        ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
-        CommandCommunication (Vector, CpuContext, BreakReceived);\r
-        AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
-        break;\r
       }\r
-    }\r
 \r
-    //\r
-    // Clear EOI before exiting interrupt process routine.\r
-    //\r
-    SendApicEoi ();\r
+      //\r
+      // Clear EOI before exiting interrupt process routine.\r
+      //\r
+      SendApicEoi ();\r
 \r
-    ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+      ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
 \r
-    break;\r
+      break;\r
 \r
-  default:\r
-    if (Vector <= DEBUG_EXCEPT_SIMD) {\r
-      DebugAgentMsgPrint (\r
-        DEBUG_AGENT_ERROR,\r
-        "Exception happened, ExceptionNum is %d, EIP = 0x%x.\n",\r
-        Vector,\r
-        (UINTN) CpuContext->Eip\r
-        );\r
-      if (BreakCause == DEBUG_DATA_BREAK_CAUSE_STEPPING) {\r
-        //\r
-        // If exception happened when executing Stepping, send Ack package.\r
-        // HOST consider Stepping command was finished.\r
-        //\r
-        if (MultiProcessorDebugSupport()) {\r
-          mDebugMpContext.BreakAtCpuIndex = ProcessorIndex;\r
-        }\r
-        //\r
-        // Clear Stepping flag and restore EFLAGS.IF\r
-        //\r
-        CommandSteppingCleanup (CpuContext);\r
-        SendAckPacket (DEBUG_COMMAND_OK);\r
-      } else {\r
-        //\r
-        // Exception occurs, send Break packet to HOST\r
-        //\r
-        AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
-        //\r
-        // Only the first breaking processor could send BREAK_POINT to HOST\r
-        //\r
-        if (IsFirstBreakProcessor (ProcessorIndex)) {\r
-          SendBreakPacketToHost (BreakCause, ProcessorIndex, &BreakReceived);\r
+    default:\r
+      if (Vector <= DEBUG_EXCEPT_SIMD) {\r
+        DebugAgentMsgPrint (\r
+          DEBUG_AGENT_ERROR,\r
+          "Exception happened, ExceptionNum is %d, EIP = 0x%x.\n",\r
+          Vector,\r
+          (UINTN)CpuContext->Eip\r
+          );\r
+        if (BreakCause == DEBUG_DATA_BREAK_CAUSE_STEPPING) {\r
+          //\r
+          // If exception happened when executing Stepping, send Ack package.\r
+          // HOST consider Stepping command was finished.\r
+          //\r
+          if (MultiProcessorDebugSupport ()) {\r
+            mDebugMpContext.BreakAtCpuIndex = ProcessorIndex;\r
+          }\r
+\r
+          //\r
+          // Clear Stepping flag and restore EFLAGS.IF\r
+          //\r
+          CommandSteppingCleanup (CpuContext);\r
+          SendAckPacket (DEBUG_COMMAND_OK);\r
+        } else {\r
+          //\r
+          // Exception occurs, send Break packet to HOST\r
+          //\r
+          AcquireMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+          //\r
+          // Only the first breaking processor could send BREAK_POINT to HOST\r
+          //\r
+          if (IsFirstBreakProcessor (ProcessorIndex)) {\r
+            SendBreakPacketToHost (BreakCause, ProcessorIndex, &BreakReceived);\r
+          }\r
+\r
+          ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
         }\r
-        ReleaseMpSpinLock (&mDebugMpContext.DebugPortSpinLock);\r
+\r
+        CommandCommunication (Vector, CpuContext, BreakReceived);\r
       }\r
 \r
-      CommandCommunication (Vector, CpuContext, BreakReceived);\r
-    }\r
-    break;\r
+      break;\r
   }\r
 \r
-  if (MultiProcessorDebugSupport()) {\r
+  if (MultiProcessorDebugSupport ()) {\r
     //\r
     // Clear flag and wait for all processors run here\r
     //\r
@@ -2628,7 +2687,7 @@ InterruptProcess (
     }\r
   }\r
 \r
-  if (IssuedViewPoint == ProcessorIndex && GetDebugFlag (DEBUG_AGENT_FLAG_STEPPING) != 1) {\r
+  if ((IssuedViewPoint == ProcessorIndex) && (GetDebugFlag (DEBUG_AGENT_FLAG_STEPPING) != 1)) {\r
     //\r
     // If the command is not stepping, clean up AgentInProgress flag\r
     //\r