]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/BaseLib.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / Library / BaseLib.h
index 1171a0ffb51b37fee353d41ac4366790b4e3c7d8..8f2df76c29a303b156b10ba5ec86a20525989af2 100644 (file)
@@ -2,10 +2,11 @@
   Provides string functions, linked list functions, math functions, synchronization\r
   functions, file path functions, and CPU architecture-specific functions.\r
 \r
-Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>\r
 Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
 Copyright (c) Microsoft Corporation.<BR>\r
 Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>\r
+Portions Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>\r
 \r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
@@ -22,16 +23,16 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 /// The IA-32 architecture context buffer used by SetJump() and LongJump().\r
 ///\r
 typedef struct {\r
-  UINT32                            Ebx;\r
-  UINT32                            Esi;\r
-  UINT32                            Edi;\r
-  UINT32                            Ebp;\r
-  UINT32                            Esp;\r
-  UINT32                            Eip;\r
-  UINT32                            Ssp;\r
+  UINT32    Ebx;\r
+  UINT32    Esi;\r
+  UINT32    Edi;\r
+  UINT32    Ebp;\r
+  UINT32    Esp;\r
+  UINT32    Eip;\r
+  UINT32    Ssp;\r
 } BASE_LIBRARY_JUMP_BUFFER;\r
 \r
-#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 4\r
+#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT  4\r
 \r
 #endif // defined (MDE_CPU_IA32)\r
 \r
@@ -40,22 +41,22 @@ typedef struct {
 /// The x64 architecture context buffer used by SetJump() and LongJump().\r
 ///\r
 typedef struct {\r
-  UINT64                            Rbx;\r
-  UINT64                            Rsp;\r
-  UINT64                            Rbp;\r
-  UINT64                            Rdi;\r
-  UINT64                            Rsi;\r
-  UINT64                            R12;\r
-  UINT64                            R13;\r
-  UINT64                            R14;\r
-  UINT64                            R15;\r
-  UINT64                            Rip;\r
-  UINT64                            MxCsr;\r
-  UINT8                             XmmBuffer[160]; ///< XMM6-XMM15.\r
-  UINT64                            Ssp;\r
+  UINT64    Rbx;\r
+  UINT64    Rsp;\r
+  UINT64    Rbp;\r
+  UINT64    Rdi;\r
+  UINT64    Rsi;\r
+  UINT64    R12;\r
+  UINT64    R13;\r
+  UINT64    R14;\r
+  UINT64    R15;\r
+  UINT64    Rip;\r
+  UINT64    MxCsr;\r
+  UINT8     XmmBuffer[160];                         ///< XMM6-XMM15.\r
+  UINT64    Ssp;\r
 } BASE_LIBRARY_JUMP_BUFFER;\r
 \r
-#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8\r
+#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT  8\r
 \r
 #endif // defined (MDE_CPU_X64)\r
 \r
@@ -64,14 +65,14 @@ typedef struct {
 /// The EBC context buffer used by SetJump() and LongJump().\r
 ///\r
 typedef struct {\r
-  UINT64                            R0;\r
-  UINT64                            R1;\r
-  UINT64                            R2;\r
-  UINT64                            R3;\r
-  UINT64                            IP;\r
+  UINT64    R0;\r
+  UINT64    R1;\r
+  UINT64    R2;\r
+  UINT64    R3;\r
+  UINT64    IP;\r
 } BASE_LIBRARY_JUMP_BUFFER;\r
 \r
-#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8\r
+#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT  8\r
 \r
 #endif // defined (MDE_CPU_EBC)\r
 \r
@@ -91,9 +92,9 @@ typedef struct {
   UINT32    R14;\r
 } BASE_LIBRARY_JUMP_BUFFER;\r
 \r
-#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 4\r
+#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT  4\r
 \r
-#endif  // defined (MDE_CPU_ARM)\r
+#endif // defined (MDE_CPU_ARM)\r
 \r
 #if defined (MDE_CPU_AARCH64)\r
 typedef struct {\r
@@ -123,40 +124,112 @@ typedef struct {
   UINT64    D15;\r
 } BASE_LIBRARY_JUMP_BUFFER;\r
 \r
-#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8\r
+#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT  8\r
 \r
-#endif  // defined (MDE_CPU_AARCH64)\r
+#endif // defined (MDE_CPU_AARCH64)\r
 \r
 #if defined (MDE_CPU_RISCV64)\r
 ///\r
 /// The RISC-V architecture context buffer used by SetJump() and LongJump().\r
 ///\r
 typedef struct {\r
-  UINT64                            RA;\r
-  UINT64                            S0;\r
-  UINT64                            S1;\r
-  UINT64                            S2;\r
-  UINT64                            S3;\r
-  UINT64                            S4;\r
-  UINT64                            S5;\r
-  UINT64                            S6;\r
-  UINT64                            S7;\r
-  UINT64                            S8;\r
-  UINT64                            S9;\r
-  UINT64                            S10;\r
-  UINT64                            S11;\r
-  UINT64                            SP;\r
+  UINT64    RA;\r
+  UINT64    S0;\r
+  UINT64    S1;\r
+  UINT64    S2;\r
+  UINT64    S3;\r
+  UINT64    S4;\r
+  UINT64    S5;\r
+  UINT64    S6;\r
+  UINT64    S7;\r
+  UINT64    S8;\r
+  UINT64    S9;\r
+  UINT64    S10;\r
+  UINT64    S11;\r
+  UINT64    SP;\r
 } BASE_LIBRARY_JUMP_BUFFER;\r
 \r
-#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8\r
+#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT  8\r
+\r
+VOID\r
+RiscVSetSupervisorScratch (\r
+  IN UINT64\r
+  );\r
+\r
+UINT64\r
+RiscVGetSupervisorScratch (\r
+  VOID\r
+  );\r
+\r
+VOID\r
+RiscVSetSupervisorStvec (\r
+  IN UINT64\r
+  );\r
+\r
+UINT64\r
+RiscVGetSupervisorStvec (\r
+  VOID\r
+  );\r
+\r
+UINT64\r
+RiscVGetSupervisorTrapCause (\r
+  VOID\r
+  );\r
+\r
+VOID\r
+RiscVSetSupervisorAddressTranslationRegister (\r
+  IN UINT64\r
+  );\r
+\r
+UINT64\r
+RiscVReadTimer (\r
+  VOID\r
+  );\r
+\r
+VOID\r
+RiscVEnableTimerInterrupt (\r
+  VOID\r
+  );\r
+\r
+VOID\r
+RiscVDisableTimerInterrupt (\r
+  VOID\r
+  );\r
+\r
+VOID\r
+RiscVClearPendingTimerInterrupt (\r
+  VOID\r
+  );\r
 \r
 #endif // defined (MDE_CPU_RISCV64)\r
 \r
+#if defined (MDE_CPU_LOONGARCH64)\r
+///\r
+/// The LoongArch architecture context buffer used by SetJump() and LongJump()\r
+///\r
+typedef struct {\r
+  UINT64    S0;\r
+  UINT64    S1;\r
+  UINT64    S2;\r
+  UINT64    S3;\r
+  UINT64    S4;\r
+  UINT64    S5;\r
+  UINT64    S6;\r
+  UINT64    S7;\r
+  UINT64    S8;\r
+  UINT64    SP;\r
+  UINT64    FP;\r
+  UINT64    RA;\r
+} BASE_LIBRARY_JUMP_BUFFER;\r
+\r
+#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT  8\r
+\r
+#endif // defined (MDE_CPU_LOONGARCH64)\r
+\r
 //\r
 // String Services\r
 //\r
 \r
-\r
 /**\r
   Returns the length of a Null-terminated Unicode string.\r
 \r
@@ -176,8 +249,8 @@ typedef struct {
 UINTN\r
 EFIAPI\r
 StrnLenS (\r
-  IN CONST CHAR16              *String,\r
-  IN UINTN                     MaxSize\r
+  IN CONST CHAR16  *String,\r
+  IN UINTN         MaxSize\r
   );\r
 \r
 /**\r
@@ -204,8 +277,8 @@ StrnLenS (
 UINTN\r
 EFIAPI\r
 StrnSizeS (\r
-  IN CONST CHAR16              *String,\r
-  IN UINTN                     MaxSize\r
+  IN CONST CHAR16  *String,\r
+  IN UINTN         MaxSize\r
   );\r
 \r
 /**\r
@@ -237,9 +310,9 @@ StrnSizeS (
 RETURN_STATUS\r
 EFIAPI\r
 StrCpyS (\r
-  OUT CHAR16       *Destination,\r
-  IN  UINTN        DestMax,\r
-  IN  CONST CHAR16 *Source\r
+  OUT CHAR16        *Destination,\r
+  IN  UINTN         DestMax,\r
+  IN  CONST CHAR16  *Source\r
   );\r
 \r
 /**\r
@@ -274,10 +347,10 @@ StrCpyS (
 RETURN_STATUS\r
 EFIAPI\r
 StrnCpyS (\r
-  OUT CHAR16       *Destination,\r
-  IN  UINTN        DestMax,\r
-  IN  CONST CHAR16 *Source,\r
-  IN  UINTN        Length\r
+  OUT CHAR16        *Destination,\r
+  IN  UINTN         DestMax,\r
+  IN  CONST CHAR16  *Source,\r
+  IN  UINTN         Length\r
   );\r
 \r
 /**\r
@@ -312,9 +385,9 @@ StrnCpyS (
 RETURN_STATUS\r
 EFIAPI\r
 StrCatS (\r
-  IN OUT CHAR16       *Destination,\r
-  IN     UINTN        DestMax,\r
-  IN     CONST CHAR16 *Source\r
+  IN OUT CHAR16        *Destination,\r
+  IN     UINTN         DestMax,\r
+  IN     CONST CHAR16  *Source\r
   );\r
 \r
 /**\r
@@ -352,10 +425,10 @@ StrCatS (
 RETURN_STATUS\r
 EFIAPI\r
 StrnCatS (\r
-  IN OUT CHAR16       *Destination,\r
-  IN     UINTN        DestMax,\r
-  IN     CONST CHAR16 *Source,\r
-  IN     UINTN        Length\r
+  IN OUT CHAR16        *Destination,\r
+  IN     UINTN         DestMax,\r
+  IN     CONST CHAR16  *Source,\r
+  IN     UINTN         Length\r
   );\r
 \r
 /**\r
@@ -404,9 +477,9 @@ StrnCatS (
 RETURN_STATUS\r
 EFIAPI\r
 StrDecimalToUintnS (\r
-  IN  CONST CHAR16             *String,\r
-  OUT       CHAR16             **EndPointer,  OPTIONAL\r
-  OUT       UINTN              *Data\r
+  IN  CONST CHAR16  *String,\r
+  OUT       CHAR16  **EndPointer   OPTIONAL,\r
+  OUT       UINTN   *Data\r
   );\r
 \r
 /**\r
@@ -455,9 +528,9 @@ StrDecimalToUintnS (
 RETURN_STATUS\r
 EFIAPI\r
 StrDecimalToUint64S (\r
-  IN  CONST CHAR16             *String,\r
-  OUT       CHAR16             **EndPointer,  OPTIONAL\r
-  OUT       UINT64             *Data\r
+  IN  CONST CHAR16  *String,\r
+  OUT       CHAR16  **EndPointer   OPTIONAL,\r
+  OUT       UINT64  *Data\r
   );\r
 \r
 /**\r
@@ -511,9 +584,9 @@ StrDecimalToUint64S (
 RETURN_STATUS\r
 EFIAPI\r
 StrHexToUintnS (\r
-  IN  CONST CHAR16             *String,\r
-  OUT       CHAR16             **EndPointer,  OPTIONAL\r
-  OUT       UINTN              *Data\r
+  IN  CONST CHAR16  *String,\r
+  OUT       CHAR16  **EndPointer   OPTIONAL,\r
+  OUT       UINTN   *Data\r
   );\r
 \r
 /**\r
@@ -567,9 +640,9 @@ StrHexToUintnS (
 RETURN_STATUS\r
 EFIAPI\r
 StrHexToUint64S (\r
-  IN  CONST CHAR16             *String,\r
-  OUT       CHAR16             **EndPointer,  OPTIONAL\r
-  OUT       UINT64             *Data\r
+  IN  CONST CHAR16  *String,\r
+  OUT       CHAR16  **EndPointer   OPTIONAL,\r
+  OUT       UINT64  *Data\r
   );\r
 \r
 /**\r
@@ -589,8 +662,8 @@ StrHexToUint64S (
 UINTN\r
 EFIAPI\r
 AsciiStrnLenS (\r
-  IN CONST CHAR8               *String,\r
-  IN UINTN                     MaxSize\r
+  IN CONST CHAR8  *String,\r
+  IN UINTN        MaxSize\r
   );\r
 \r
 /**\r
@@ -615,8 +688,8 @@ AsciiStrnLenS (
 UINTN\r
 EFIAPI\r
 AsciiStrnSizeS (\r
-  IN CONST CHAR8               *String,\r
-  IN UINTN                     MaxSize\r
+  IN CONST CHAR8  *String,\r
+  IN UINTN        MaxSize\r
   );\r
 \r
 /**\r
@@ -801,9 +874,9 @@ AsciiStrnCatS (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrDecimalToUintnS (\r
-  IN  CONST CHAR8              *String,\r
-  OUT       CHAR8              **EndPointer,  OPTIONAL\r
-  OUT       UINTN              *Data\r
+  IN  CONST CHAR8  *String,\r
+  OUT       CHAR8  **EndPointer   OPTIONAL,\r
+  OUT       UINTN  *Data\r
   );\r
 \r
 /**\r
@@ -850,9 +923,9 @@ AsciiStrDecimalToUintnS (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrDecimalToUint64S (\r
-  IN  CONST CHAR8              *String,\r
-  OUT       CHAR8              **EndPointer,  OPTIONAL\r
-  OUT       UINT64             *Data\r
+  IN  CONST CHAR8   *String,\r
+  OUT       CHAR8   **EndPointer   OPTIONAL,\r
+  OUT       UINT64  *Data\r
   );\r
 \r
 /**\r
@@ -903,9 +976,9 @@ AsciiStrDecimalToUint64S (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrHexToUintnS (\r
-  IN  CONST CHAR8              *String,\r
-  OUT       CHAR8              **EndPointer,  OPTIONAL\r
-  OUT       UINTN              *Data\r
+  IN  CONST CHAR8  *String,\r
+  OUT       CHAR8  **EndPointer   OPTIONAL,\r
+  OUT       UINTN  *Data\r
   );\r
 \r
 /**\r
@@ -956,12 +1029,11 @@ AsciiStrHexToUintnS (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrHexToUint64S (\r
-  IN  CONST CHAR8              *String,\r
-  OUT       CHAR8              **EndPointer,  OPTIONAL\r
-  OUT       UINT64             *Data\r
+  IN  CONST CHAR8   *String,\r
+  OUT       CHAR8   **EndPointer   OPTIONAL,\r
+  OUT       UINT64  *Data\r
   );\r
 \r
-\r
 /**\r
   Returns the length of a Null-terminated Unicode string.\r
 \r
@@ -982,10 +1054,9 @@ AsciiStrHexToUint64S (
 UINTN\r
 EFIAPI\r
 StrLen (\r
-  IN      CONST CHAR16              *String\r
+  IN      CONST CHAR16  *String\r
   );\r
 \r
-\r
 /**\r
   Returns the size of a Null-terminated Unicode string in bytes, including the\r
   Null terminator.\r
@@ -1007,10 +1078,9 @@ StrLen (
 UINTN\r
 EFIAPI\r
 StrSize (\r
-  IN      CONST CHAR16              *String\r
+  IN      CONST CHAR16  *String\r
   );\r
 \r
-\r
 /**\r
   Compares two Null-terminated Unicode strings, and returns the difference\r
   between the first mismatched Unicode characters.\r
@@ -1042,11 +1112,10 @@ StrSize (
 INTN\r
 EFIAPI\r
 StrCmp (\r
-  IN      CONST CHAR16              *FirstString,\r
-  IN      CONST CHAR16              *SecondString\r
+  IN      CONST CHAR16  *FirstString,\r
+  IN      CONST CHAR16  *SecondString\r
   );\r
 \r
-\r
 /**\r
   Compares up to a specified length the contents of two Null-terminated Unicode strings,\r
   and returns the difference between the first mismatched Unicode characters.\r
@@ -1082,12 +1151,11 @@ StrCmp (
 INTN\r
 EFIAPI\r
 StrnCmp (\r
-  IN      CONST CHAR16              *FirstString,\r
-  IN      CONST CHAR16              *SecondString,\r
-  IN      UINTN                     Length\r
+  IN      CONST CHAR16  *FirstString,\r
+  IN      CONST CHAR16  *SecondString,\r
+  IN      UINTN         Length\r
   );\r
 \r
-\r
 /**\r
   Returns the first occurrence of a Null-terminated Unicode sub-string\r
   in a Null-terminated Unicode string.\r
@@ -1116,8 +1184,8 @@ StrnCmp (
 CHAR16 *\r
 EFIAPI\r
 StrStr (\r
-  IN      CONST CHAR16              *String,\r
-  IN      CONST CHAR16              *SearchString\r
+  IN      CONST CHAR16  *String,\r
+  IN      CONST CHAR16  *SearchString\r
   );\r
 \r
 /**\r
@@ -1157,7 +1225,7 @@ StrStr (
 UINTN\r
 EFIAPI\r
 StrDecimalToUintn (\r
-  IN      CONST CHAR16              *String\r
+  IN      CONST CHAR16  *String\r
   );\r
 \r
 /**\r
@@ -1197,10 +1265,9 @@ StrDecimalToUintn (
 UINT64\r
 EFIAPI\r
 StrDecimalToUint64 (\r
-  IN      CONST CHAR16              *String\r
+  IN      CONST CHAR16  *String\r
   );\r
 \r
-\r
 /**\r
   Convert a Null-terminated Unicode hexadecimal string to a value of type UINTN.\r
 \r
@@ -1239,10 +1306,9 @@ StrDecimalToUint64 (
 UINTN\r
 EFIAPI\r
 StrHexToUintn (\r
-  IN      CONST CHAR16              *String\r
+  IN      CONST CHAR16  *String\r
   );\r
 \r
-\r
 /**\r
   Convert a Null-terminated Unicode hexadecimal string to a value of type UINT64.\r
 \r
@@ -1281,7 +1347,7 @@ StrHexToUintn (
 UINT64\r
 EFIAPI\r
 StrHexToUint64 (\r
-  IN      CONST CHAR16             *String\r
+  IN      CONST CHAR16  *String\r
   );\r
 \r
 /**\r
@@ -1337,10 +1403,10 @@ StrHexToUint64 (
 RETURN_STATUS\r
 EFIAPI\r
 StrToIpv6Address (\r
-  IN  CONST CHAR16       *String,\r
-  OUT CHAR16             **EndPointer, OPTIONAL\r
-  OUT IPv6_ADDRESS       *Address,\r
-  OUT UINT8              *PrefixLength OPTIONAL\r
+  IN  CONST CHAR16  *String,\r
+  OUT CHAR16        **EndPointer  OPTIONAL,\r
+  OUT IPv6_ADDRESS  *Address,\r
+  OUT UINT8         *PrefixLength OPTIONAL\r
   );\r
 \r
 /**\r
@@ -1387,10 +1453,10 @@ StrToIpv6Address (
 RETURN_STATUS\r
 EFIAPI\r
 StrToIpv4Address (\r
-  IN  CONST CHAR16       *String,\r
-  OUT CHAR16             **EndPointer, OPTIONAL\r
-  OUT IPv4_ADDRESS       *Address,\r
-  OUT UINT8              *PrefixLength OPTIONAL\r
+  IN  CONST CHAR16  *String,\r
+  OUT CHAR16        **EndPointer  OPTIONAL,\r
+  OUT IPv4_ADDRESS  *Address,\r
+  OUT UINT8         *PrefixLength OPTIONAL\r
   );\r
 \r
 #define GUID_STRING_LENGTH  36\r
@@ -1440,8 +1506,8 @@ StrToIpv4Address (
 RETURN_STATUS\r
 EFIAPI\r
 StrToGuid (\r
-  IN  CONST CHAR16       *String,\r
-  OUT GUID               *Guid\r
+  IN  CONST CHAR16  *String,\r
+  OUT GUID          *Guid\r
   );\r
 \r
 /**\r
@@ -1480,13 +1546,12 @@ StrToGuid (
 RETURN_STATUS\r
 EFIAPI\r
 StrHexToBytes (\r
-  IN  CONST CHAR16       *String,\r
-  IN  UINTN              Length,\r
-  OUT UINT8              *Buffer,\r
-  IN  UINTN              MaxBufferSize\r
+  IN  CONST CHAR16  *String,\r
+  IN  UINTN         Length,\r
+  OUT UINT8         *Buffer,\r
+  IN  UINTN         MaxBufferSize\r
   );\r
 \r
-\r
 /**\r
   Convert a Null-terminated Unicode string to a Null-terminated\r
   ASCII string.\r
@@ -1530,9 +1595,9 @@ StrHexToBytes (
 RETURN_STATUS\r
 EFIAPI\r
 UnicodeStrToAsciiStrS (\r
-  IN      CONST CHAR16              *Source,\r
-  OUT     CHAR8                     *Destination,\r
-  IN      UINTN                     DestMax\r
+  IN      CONST CHAR16  *Source,\r
+  OUT     CHAR8         *Destination,\r
+  IN      UINTN         DestMax\r
   );\r
 \r
 /**\r
@@ -1581,14 +1646,13 @@ UnicodeStrToAsciiStrS (
 RETURN_STATUS\r
 EFIAPI\r
 UnicodeStrnToAsciiStrS (\r
-  IN      CONST CHAR16              *Source,\r
-  IN      UINTN                     Length,\r
-  OUT     CHAR8                     *Destination,\r
-  IN      UINTN                     DestMax,\r
-  OUT     UINTN                     *DestinationLength\r
+  IN      CONST CHAR16  *Source,\r
+  IN      UINTN         Length,\r
+  OUT     CHAR8         *Destination,\r
+  IN      UINTN         DestMax,\r
+  OUT     UINTN         *DestinationLength\r
   );\r
 \r
-\r
 /**\r
   Returns the length of a Null-terminated ASCII string.\r
 \r
@@ -1609,10 +1673,9 @@ UnicodeStrnToAsciiStrS (
 UINTN\r
 EFIAPI\r
 AsciiStrLen (\r
-  IN      CONST CHAR8               *String\r
+  IN      CONST CHAR8  *String\r
   );\r
 \r
-\r
 /**\r
   Returns the size of a Null-terminated ASCII string in bytes, including the\r
   Null terminator.\r
@@ -1633,10 +1696,9 @@ AsciiStrLen (
 UINTN\r
 EFIAPI\r
 AsciiStrSize (\r
-  IN      CONST CHAR8               *String\r
+  IN      CONST CHAR8  *String\r
   );\r
 \r
-\r
 /**\r
   Compares two Null-terminated ASCII strings, and returns the difference\r
   between the first mismatched ASCII characters.\r
@@ -1666,11 +1728,10 @@ AsciiStrSize (
 INTN\r
 EFIAPI\r
 AsciiStrCmp (\r
-  IN      CONST CHAR8               *FirstString,\r
-  IN      CONST CHAR8               *SecondString\r
+  IN      CONST CHAR8  *FirstString,\r
+  IN      CONST CHAR8  *SecondString\r
   );\r
 \r
-\r
 /**\r
   Performs a case insensitive comparison of two Null-terminated ASCII strings,\r
   and returns the difference between the first mismatched ASCII characters.\r
@@ -1703,11 +1764,10 @@ AsciiStrCmp (
 INTN\r
 EFIAPI\r
 AsciiStriCmp (\r
-  IN      CONST CHAR8               *FirstString,\r
-  IN      CONST CHAR8               *SecondString\r
+  IN      CONST CHAR8  *FirstString,\r
+  IN      CONST CHAR8  *SecondString\r
   );\r
 \r
-\r
 /**\r
   Compares two Null-terminated ASCII strings with maximum lengths, and returns\r
   the difference between the first mismatched ASCII characters.\r
@@ -1741,12 +1801,11 @@ AsciiStriCmp (
 INTN\r
 EFIAPI\r
 AsciiStrnCmp (\r
-  IN      CONST CHAR8               *FirstString,\r
-  IN      CONST CHAR8               *SecondString,\r
-  IN      UINTN                     Length\r
+  IN      CONST CHAR8  *FirstString,\r
+  IN      CONST CHAR8  *SecondString,\r
+  IN      UINTN        Length\r
   );\r
 \r
-\r
 /**\r
   Returns the first occurrence of a Null-terminated ASCII sub-string\r
   in a Null-terminated ASCII string.\r
@@ -1774,11 +1833,10 @@ AsciiStrnCmp (
 CHAR8 *\r
 EFIAPI\r
 AsciiStrStr (\r
-  IN      CONST CHAR8               *String,\r
-  IN      CONST CHAR8               *SearchString\r
+  IN      CONST CHAR8  *String,\r
+  IN      CONST CHAR8  *SearchString\r
   );\r
 \r
-\r
 /**\r
   Convert a Null-terminated ASCII decimal string to a value of type\r
   UINTN.\r
@@ -1812,10 +1870,9 @@ AsciiStrStr (
 UINTN\r
 EFIAPI\r
 AsciiStrDecimalToUintn (\r
-  IN      CONST CHAR8               *String\r
+  IN      CONST CHAR8  *String\r
   );\r
 \r
-\r
 /**\r
   Convert a Null-terminated ASCII decimal string to a value of type\r
   UINT64.\r
@@ -1849,10 +1906,9 @@ AsciiStrDecimalToUintn (
 UINT64\r
 EFIAPI\r
 AsciiStrDecimalToUint64 (\r
-  IN      CONST CHAR8               *String\r
+  IN      CONST CHAR8  *String\r
   );\r
 \r
-\r
 /**\r
   Convert a Null-terminated ASCII hexadecimal string to a value of type UINTN.\r
 \r
@@ -1890,10 +1946,9 @@ AsciiStrDecimalToUint64 (
 UINTN\r
 EFIAPI\r
 AsciiStrHexToUintn (\r
-  IN      CONST CHAR8               *String\r
+  IN      CONST CHAR8  *String\r
   );\r
 \r
-\r
 /**\r
   Convert a Null-terminated ASCII hexadecimal string to a value of type UINT64.\r
 \r
@@ -1931,7 +1986,7 @@ AsciiStrHexToUintn (
 UINT64\r
 EFIAPI\r
 AsciiStrHexToUint64 (\r
-  IN      CONST CHAR8                *String\r
+  IN      CONST CHAR8  *String\r
   );\r
 \r
 /**\r
@@ -1985,10 +2040,10 @@ AsciiStrHexToUint64 (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrToIpv6Address (\r
-  IN  CONST CHAR8        *String,\r
-  OUT CHAR8              **EndPointer, OPTIONAL\r
-  OUT IPv6_ADDRESS       *Address,\r
-  OUT UINT8              *PrefixLength OPTIONAL\r
+  IN  CONST CHAR8   *String,\r
+  OUT CHAR8         **EndPointer  OPTIONAL,\r
+  OUT IPv6_ADDRESS  *Address,\r
+  OUT UINT8         *PrefixLength OPTIONAL\r
   );\r
 \r
 /**\r
@@ -2033,10 +2088,10 @@ AsciiStrToIpv6Address (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrToIpv4Address (\r
-  IN  CONST CHAR8        *String,\r
-  OUT CHAR8              **EndPointer, OPTIONAL\r
-  OUT IPv4_ADDRESS       *Address,\r
-  OUT UINT8              *PrefixLength OPTIONAL\r
+  IN  CONST CHAR8   *String,\r
+  OUT CHAR8         **EndPointer  OPTIONAL,\r
+  OUT IPv4_ADDRESS  *Address,\r
+  OUT UINT8         *PrefixLength OPTIONAL\r
   );\r
 \r
 /**\r
@@ -2082,8 +2137,8 @@ AsciiStrToIpv4Address (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrToGuid (\r
-  IN  CONST CHAR8        *String,\r
-  OUT GUID               *Guid\r
+  IN  CONST CHAR8  *String,\r
+  OUT GUID         *Guid\r
   );\r
 \r
 /**\r
@@ -2120,13 +2175,12 @@ AsciiStrToGuid (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrHexToBytes (\r
-  IN  CONST CHAR8        *String,\r
-  IN  UINTN              Length,\r
-  OUT UINT8              *Buffer,\r
-  IN  UINTN              MaxBufferSize\r
+  IN  CONST CHAR8  *String,\r
+  IN  UINTN        Length,\r
+  OUT UINT8        *Buffer,\r
+  IN  UINTN        MaxBufferSize\r
   );\r
 \r
-\r
 /**\r
   Convert one Null-terminated ASCII string to a Null-terminated\r
   Unicode string.\r
@@ -2166,9 +2220,9 @@ AsciiStrHexToBytes (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrToUnicodeStrS (\r
-  IN      CONST CHAR8               *Source,\r
-  OUT     CHAR16                    *Destination,\r
-  IN      UINTN                     DestMax\r
+  IN      CONST CHAR8  *Source,\r
+  OUT     CHAR16       *Destination,\r
+  IN      UINTN        DestMax\r
   );\r
 \r
 /**\r
@@ -2216,11 +2270,11 @@ AsciiStrToUnicodeStrS (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiStrnToUnicodeStrS (\r
-  IN      CONST CHAR8               *Source,\r
-  IN      UINTN                     Length,\r
-  OUT     CHAR16                    *Destination,\r
-  IN      UINTN                     DestMax,\r
-  OUT     UINTN                     *DestinationLength\r
+  IN      CONST CHAR8  *Source,\r
+  IN      UINTN        Length,\r
+  OUT     CHAR16       *Destination,\r
+  IN      UINTN        DestMax,\r
+  OUT     UINTN        *DestinationLength\r
   );\r
 \r
 /**\r
@@ -2241,7 +2295,7 @@ AsciiStrnToUnicodeStrS (
 CHAR16\r
 EFIAPI\r
 CharToUpper (\r
-  IN      CHAR16                    Char\r
+  IN      CHAR16  Char\r
   );\r
 \r
 /**\r
@@ -2260,7 +2314,7 @@ CharToUpper (
 CHAR8\r
 EFIAPI\r
 AsciiCharToUpper (\r
-  IN      CHAR8                     Chr\r
+  IN      CHAR8  Chr\r
   );\r
 \r
 /**\r
@@ -2286,7 +2340,7 @@ RETURN_STATUS
 EFIAPI\r
 Base64Encode (\r
   IN  CONST UINT8  *Source,\r
-  IN        UINTN   SourceLength,\r
+  IN        UINTN  SourceLength,\r
   OUT       CHAR8  *Destination  OPTIONAL,\r
   IN OUT    UINTN  *DestinationSize\r
   );\r
@@ -2376,10 +2430,10 @@ Base64Encode (
 RETURN_STATUS\r
 EFIAPI\r
 Base64Decode (\r
-  IN     CONST CHAR8 *Source          OPTIONAL,\r
-  IN     UINTN       SourceSize,\r
-  OUT    UINT8       *Destination     OPTIONAL,\r
-  IN OUT UINTN       *DestinationSize\r
+  IN     CONST CHAR8  *Source          OPTIONAL,\r
+  IN     UINTN        SourceSize,\r
+  OUT    UINT8        *Destination     OPTIONAL,\r
+  IN OUT UINTN        *DestinationSize\r
   );\r
 \r
 /**\r
@@ -2398,10 +2452,9 @@ Base64Decode (
 UINT8\r
 EFIAPI\r
 DecimalToBcd8 (\r
-  IN      UINT8                     Value\r
+  IN      UINT8  Value\r
   );\r
 \r
-\r
 /**\r
   Converts an 8-bit BCD value to an 8-bit value.\r
 \r
@@ -2419,7 +2472,7 @@ DecimalToBcd8 (
 UINT8\r
 EFIAPI\r
 BcdToDecimal8 (\r
-  IN      UINT8                     Value\r
+  IN      UINT8  Value\r
   );\r
 \r
 //\r
@@ -2436,8 +2489,8 @@ BcdToDecimal8 (
 **/\r
 BOOLEAN\r
 EFIAPI\r
-PathRemoveLastItem(\r
-  IN OUT CHAR16 *Path\r
+PathRemoveLastItem (\r
+  IN OUT CHAR16  *Path\r
   );\r
 \r
 /**\r
@@ -2453,10 +2506,10 @@ PathRemoveLastItem(
 \r
   @return       Returns Path, otherwise returns NULL to indicate that an error has occurred.\r
 **/\r
-CHAR16*\r
+CHAR16 *\r
 EFIAPI\r
-PathCleanUpDirectories(\r
-  IN CHAR16 *Path\r
+PathCleanUpDirectories (\r
+  IN CHAR16  *Path\r
   );\r
 \r
 //\r
@@ -2528,11 +2581,10 @@ PathCleanUpDirectories(
 BOOLEAN\r
 EFIAPI\r
 IsNodeInList (\r
-  IN      CONST LIST_ENTRY      *FirstEntry,\r
-  IN      CONST LIST_ENTRY      *SecondEntry\r
+  IN      CONST LIST_ENTRY  *FirstEntry,\r
+  IN      CONST LIST_ENTRY  *SecondEntry\r
   );\r
 \r
-\r
 /**\r
   Initializes the head node of a doubly linked list, and returns the pointer to\r
   the head node of the doubly linked list.\r
@@ -2552,10 +2604,9 @@ IsNodeInList (
 LIST_ENTRY *\r
 EFIAPI\r
 InitializeListHead (\r
-  IN OUT  LIST_ENTRY                *ListHead\r
+  IN OUT  LIST_ENTRY  *ListHead\r
   );\r
 \r
-\r
 /**\r
   Adds a node to the beginning of a doubly linked list, and returns the pointer\r
   to the head node of the doubly linked list.\r
@@ -2581,11 +2632,10 @@ InitializeListHead (
 LIST_ENTRY *\r
 EFIAPI\r
 InsertHeadList (\r
-  IN OUT  LIST_ENTRY                *ListHead,\r
-  IN OUT  LIST_ENTRY                *Entry\r
+  IN OUT  LIST_ENTRY  *ListHead,\r
+  IN OUT  LIST_ENTRY  *Entry\r
   );\r
 \r
-\r
 /**\r
   Adds a node to the end of a doubly linked list, and returns the pointer to\r
   the head node of the doubly linked list.\r
@@ -2611,11 +2661,10 @@ InsertHeadList (
 LIST_ENTRY *\r
 EFIAPI\r
 InsertTailList (\r
-  IN OUT  LIST_ENTRY                *ListHead,\r
-  IN OUT  LIST_ENTRY                *Entry\r
+  IN OUT  LIST_ENTRY  *ListHead,\r
+  IN OUT  LIST_ENTRY  *Entry\r
   );\r
 \r
-\r
 /**\r
   Retrieves the first node of a doubly linked list.\r
 \r
@@ -2639,10 +2688,9 @@ InsertTailList (
 LIST_ENTRY *\r
 EFIAPI\r
 GetFirstNode (\r
-  IN      CONST LIST_ENTRY          *List\r
+  IN      CONST LIST_ENTRY  *List\r
   );\r
 \r
-\r
 /**\r
   Retrieves the next node of a doubly linked list.\r
 \r
@@ -2667,11 +2715,10 @@ GetFirstNode (
 LIST_ENTRY *\r
 EFIAPI\r
 GetNextNode (\r
-  IN      CONST LIST_ENTRY          *List,\r
-  IN      CONST LIST_ENTRY          *Node\r
+  IN      CONST LIST_ENTRY  *List,\r
+  IN      CONST LIST_ENTRY  *Node\r
   );\r
 \r
-\r
 /**\r
   Retrieves the previous node of a doubly linked list.\r
 \r
@@ -2696,11 +2743,10 @@ GetNextNode (
 LIST_ENTRY *\r
 EFIAPI\r
 GetPreviousNode (\r
-  IN      CONST LIST_ENTRY          *List,\r
-  IN      CONST LIST_ENTRY          *Node\r
+  IN      CONST LIST_ENTRY  *List,\r
+  IN      CONST LIST_ENTRY  *Node\r
   );\r
 \r
-\r
 /**\r
   Checks to see if a doubly linked list is empty or not.\r
 \r
@@ -2723,10 +2769,9 @@ GetPreviousNode (
 BOOLEAN\r
 EFIAPI\r
 IsListEmpty (\r
-  IN      CONST LIST_ENTRY          *ListHead\r
+  IN      CONST LIST_ENTRY  *ListHead\r
   );\r
 \r
-\r
 /**\r
   Determines if a node in a doubly linked list is the head node of a the same\r
   doubly linked list.  This function is typically used to terminate a loop that\r
@@ -2756,11 +2801,10 @@ IsListEmpty (
 BOOLEAN\r
 EFIAPI\r
 IsNull (\r
-  IN      CONST LIST_ENTRY          *List,\r
-  IN      CONST LIST_ENTRY          *Node\r
+  IN      CONST LIST_ENTRY  *List,\r
+  IN      CONST LIST_ENTRY  *Node\r
   );\r
 \r
-\r
 /**\r
   Determines if a node the last node in a doubly linked list.\r
 \r
@@ -2787,11 +2831,10 @@ IsNull (
 BOOLEAN\r
 EFIAPI\r
 IsNodeAtEnd (\r
-  IN      CONST LIST_ENTRY          *List,\r
-  IN      CONST LIST_ENTRY          *Node\r
+  IN      CONST LIST_ENTRY  *List,\r
+  IN      CONST LIST_ENTRY  *Node\r
   );\r
 \r
-\r
 /**\r
   Swaps the location of two nodes in a doubly linked list, and returns the\r
   first node after the swap.\r
@@ -2821,11 +2864,10 @@ IsNodeAtEnd (
 LIST_ENTRY *\r
 EFIAPI\r
 SwapListEntries (\r
-  IN OUT  LIST_ENTRY                *FirstEntry,\r
-  IN OUT  LIST_ENTRY                *SecondEntry\r
+  IN OUT  LIST_ENTRY  *FirstEntry,\r
+  IN OUT  LIST_ENTRY  *SecondEntry\r
   );\r
 \r
-\r
 /**\r
   Removes a node from a doubly linked list, and returns the node that follows\r
   the removed node.\r
@@ -2850,13 +2892,63 @@ SwapListEntries (
 LIST_ENTRY *\r
 EFIAPI\r
 RemoveEntryList (\r
-  IN      CONST LIST_ENTRY          *Entry\r
+  IN      CONST LIST_ENTRY  *Entry\r
   );\r
 \r
 //\r
 // Math Services\r
 //\r
 \r
+/**\r
+  Prototype for comparison function for any two element types.\r
+\r
+  @param[in] Buffer1                  The pointer to first buffer.\r
+  @param[in] Buffer2                  The pointer to second buffer.\r
+\r
+  @retval 0                           Buffer1 equal to Buffer2.\r
+  @return <0                          Buffer1 is less than Buffer2.\r
+  @return >0                          Buffer1 is greater than Buffer2.\r
+**/\r
+typedef\r
+INTN\r
+(EFIAPI *BASE_SORT_COMPARE)(\r
+  IN CONST VOID                 *Buffer1,\r
+  IN CONST VOID                 *Buffer2\r
+  );\r
+\r
+/**\r
+  This function is identical to perform QuickSort,\r
+  except that is uses the pre-allocated buffer so the in place sorting does not need to\r
+  allocate and free buffers constantly.\r
+\r
+  Each element must be equal sized.\r
+\r
+  if BufferToSort is NULL, then ASSERT.\r
+  if CompareFunction is NULL, then ASSERT.\r
+  if BufferOneElement is NULL, then ASSERT.\r
+  if ElementSize is < 1, then ASSERT.\r
+\r
+  if Count is < 2 then perform no action.\r
+\r
+  @param[in, out] BufferToSort   on call a Buffer of (possibly sorted) elements\r
+                                 on return a buffer of sorted elements\r
+  @param[in] Count               the number of elements in the buffer to sort\r
+  @param[in] ElementSize         Size of an element in bytes\r
+  @param[in] CompareFunction     The function to call to perform the comparison\r
+                                 of any 2 elements\r
+  @param[out] BufferOneElement   Caller provided buffer whose size equals to ElementSize.\r
+                                 It's used by QuickSort() for swapping in sorting.\r
+**/\r
+VOID\r
+EFIAPI\r
+QuickSort (\r
+  IN OUT VOID                 *BufferToSort,\r
+  IN CONST UINTN              Count,\r
+  IN CONST UINTN              ElementSize,\r
+  IN       BASE_SORT_COMPARE  CompareFunction,\r
+  OUT VOID                    *BufferOneElement\r
+  );\r
+\r
 /**\r
   Shifts a 64-bit integer left between 0 and 63 bits. The low bits are filled\r
   with zeros. The shifted value is returned.\r
@@ -2875,11 +2967,10 @@ RemoveEntryList (
 UINT64\r
 EFIAPI\r
 LShiftU64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     Count\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   Count\r
   );\r
 \r
-\r
 /**\r
   Shifts a 64-bit integer right between 0 and 63 bits. This high bits are\r
   filled with zeros. The shifted value is returned.\r
@@ -2898,11 +2989,10 @@ LShiftU64 (
 UINT64\r
 EFIAPI\r
 RShiftU64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     Count\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   Count\r
   );\r
 \r
-\r
 /**\r
   Shifts a 64-bit integer right between 0 and 63 bits. The high bits are filled\r
   with original integer's bit 63. The shifted value is returned.\r
@@ -2921,11 +3011,10 @@ RShiftU64 (
 UINT64\r
 EFIAPI\r
 ARShiftU64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     Count\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   Count\r
   );\r
 \r
-\r
 /**\r
   Rotates a 32-bit integer left between 0 and 31 bits, filling the low bits\r
   with the high bits that were rotated.\r
@@ -2945,11 +3034,10 @@ ARShiftU64 (
 UINT32\r
 EFIAPI\r
 LRotU32 (\r
-  IN      UINT32                    Operand,\r
-  IN      UINTN                     Count\r
+  IN      UINT32  Operand,\r
+  IN      UINTN   Count\r
   );\r
 \r
-\r
 /**\r
   Rotates a 32-bit integer right between 0 and 31 bits, filling the high bits\r
   with the low bits that were rotated.\r
@@ -2969,11 +3057,10 @@ LRotU32 (
 UINT32\r
 EFIAPI\r
 RRotU32 (\r
-  IN      UINT32                    Operand,\r
-  IN      UINTN                     Count\r
+  IN      UINT32  Operand,\r
+  IN      UINTN   Count\r
   );\r
 \r
-\r
 /**\r
   Rotates a 64-bit integer left between 0 and 63 bits, filling the low bits\r
   with the high bits that were rotated.\r
@@ -2993,11 +3080,10 @@ RRotU32 (
 UINT64\r
 EFIAPI\r
 LRotU64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     Count\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   Count\r
   );\r
 \r
-\r
 /**\r
   Rotates a 64-bit integer right between 0 and 63 bits, filling the high bits\r
   with the high low bits that were rotated.\r
@@ -3017,11 +3103,10 @@ LRotU64 (
 UINT64\r
 EFIAPI\r
 RRotU64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     Count\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   Count\r
   );\r
 \r
-\r
 /**\r
   Returns the bit position of the lowest bit set in a 32-bit value.\r
 \r
@@ -3038,10 +3123,9 @@ RRotU64 (
 INTN\r
 EFIAPI\r
 LowBitSet32 (\r
-  IN      UINT32                    Operand\r
+  IN      UINT32  Operand\r
   );\r
 \r
-\r
 /**\r
   Returns the bit position of the lowest bit set in a 64-bit value.\r
 \r
@@ -3059,10 +3143,9 @@ LowBitSet32 (
 INTN\r
 EFIAPI\r
 LowBitSet64 (\r
-  IN      UINT64                    Operand\r
+  IN      UINT64  Operand\r
   );\r
 \r
-\r
 /**\r
   Returns the bit position of the highest bit set in a 32-bit value. Equivalent\r
   to log2(x).\r
@@ -3080,10 +3163,9 @@ LowBitSet64 (
 INTN\r
 EFIAPI\r
 HighBitSet32 (\r
-  IN      UINT32                    Operand\r
+  IN      UINT32  Operand\r
   );\r
 \r
-\r
 /**\r
   Returns the bit position of the highest bit set in a 64-bit value. Equivalent\r
   to log2(x).\r
@@ -3101,10 +3183,9 @@ HighBitSet32 (
 INTN\r
 EFIAPI\r
 HighBitSet64 (\r
-  IN      UINT64                    Operand\r
+  IN      UINT64  Operand\r
   );\r
 \r
-\r
 /**\r
   Returns the value of the highest bit set in a 32-bit value. Equivalent to\r
   1 << log2(x).\r
@@ -3121,10 +3202,9 @@ HighBitSet64 (
 UINT32\r
 EFIAPI\r
 GetPowerOfTwo32 (\r
-  IN      UINT32                    Operand\r
+  IN      UINT32  Operand\r
   );\r
 \r
-\r
 /**\r
   Returns the value of the highest bit set in a 64-bit value. Equivalent to\r
   1 << log2(x).\r
@@ -3141,10 +3221,9 @@ GetPowerOfTwo32 (
 UINT64\r
 EFIAPI\r
 GetPowerOfTwo64 (\r
-  IN      UINT64                    Operand\r
+  IN      UINT64  Operand\r
   );\r
 \r
-\r
 /**\r
   Switches the endianness of a 16-bit integer.\r
 \r
@@ -3160,10 +3239,9 @@ GetPowerOfTwo64 (
 UINT16\r
 EFIAPI\r
 SwapBytes16 (\r
-  IN      UINT16                    Value\r
+  IN      UINT16  Value\r
   );\r
 \r
-\r
 /**\r
   Switches the endianness of a 32-bit integer.\r
 \r
@@ -3179,10 +3257,9 @@ SwapBytes16 (
 UINT32\r
 EFIAPI\r
 SwapBytes32 (\r
-  IN      UINT32                    Value\r
+  IN      UINT32  Value\r
   );\r
 \r
-\r
 /**\r
   Switches the endianness of a 64-bit integer.\r
 \r
@@ -3198,10 +3275,9 @@ SwapBytes32 (
 UINT64\r
 EFIAPI\r
 SwapBytes64 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Multiples a 64-bit unsigned integer by a 32-bit unsigned integer and\r
   generates a 64-bit unsigned result.\r
@@ -3219,11 +3295,10 @@ SwapBytes64 (
 UINT64\r
 EFIAPI\r
 MultU64x32 (\r
-  IN      UINT64                    Multiplicand,\r
-  IN      UINT32                    Multiplier\r
+  IN      UINT64  Multiplicand,\r
+  IN      UINT32  Multiplier\r
   );\r
 \r
-\r
 /**\r
   Multiples a 64-bit unsigned integer by a 64-bit unsigned integer and\r
   generates a 64-bit unsigned result.\r
@@ -3241,11 +3316,10 @@ MultU64x32 (
 UINT64\r
 EFIAPI\r
 MultU64x64 (\r
-  IN      UINT64                    Multiplicand,\r
-  IN      UINT64                    Multiplier\r
+  IN      UINT64  Multiplicand,\r
+  IN      UINT64  Multiplier\r
   );\r
 \r
-\r
 /**\r
   Multiples a 64-bit signed integer by a 64-bit signed integer and generates a\r
   64-bit signed result.\r
@@ -3263,11 +3337,10 @@ MultU64x64 (
 INT64\r
 EFIAPI\r
 MultS64x64 (\r
-  IN      INT64                     Multiplicand,\r
-  IN      INT64                     Multiplier\r
+  IN      INT64  Multiplicand,\r
+  IN      INT64  Multiplier\r
   );\r
 \r
-\r
 /**\r
   Divides a 64-bit unsigned integer by a 32-bit unsigned integer and generates\r
   a 64-bit unsigned result.\r
@@ -3287,11 +3360,10 @@ MultS64x64 (
 UINT64\r
 EFIAPI\r
 DivU64x32 (\r
-  IN      UINT64                    Dividend,\r
-  IN      UINT32                    Divisor\r
+  IN      UINT64  Dividend,\r
+  IN      UINT32  Divisor\r
   );\r
 \r
-\r
 /**\r
   Divides a 64-bit unsigned integer by a 32-bit unsigned integer and generates\r
   a 32-bit unsigned remainder.\r
@@ -3311,11 +3383,10 @@ DivU64x32 (
 UINT32\r
 EFIAPI\r
 ModU64x32 (\r
-  IN      UINT64                    Dividend,\r
-  IN      UINT32                    Divisor\r
+  IN      UINT64  Dividend,\r
+  IN      UINT32  Divisor\r
   );\r
 \r
-\r
 /**\r
   Divides a 64-bit unsigned integer by a 32-bit unsigned integer and generates\r
   a 64-bit unsigned result and an optional 32-bit unsigned remainder.\r
@@ -3338,12 +3409,11 @@ ModU64x32 (
 UINT64\r
 EFIAPI\r
 DivU64x32Remainder (\r
-  IN      UINT64                    Dividend,\r
-  IN      UINT32                    Divisor,\r
-  OUT     UINT32                    *Remainder  OPTIONAL\r
+  IN      UINT64  Dividend,\r
+  IN      UINT32  Divisor,\r
+  OUT     UINT32  *Remainder  OPTIONAL\r
   );\r
 \r
-\r
 /**\r
   Divides a 64-bit unsigned integer by a 64-bit unsigned integer and generates\r
   a 64-bit unsigned result and an optional 64-bit unsigned remainder.\r
@@ -3366,12 +3436,11 @@ DivU64x32Remainder (
 UINT64\r
 EFIAPI\r
 DivU64x64Remainder (\r
-  IN      UINT64                    Dividend,\r
-  IN      UINT64                    Divisor,\r
-  OUT     UINT64                    *Remainder  OPTIONAL\r
+  IN      UINT64  Dividend,\r
+  IN      UINT64  Divisor,\r
+  OUT     UINT64  *Remainder  OPTIONAL\r
   );\r
 \r
-\r
 /**\r
   Divides a 64-bit signed integer by a 64-bit signed integer and generates a\r
   64-bit signed result and a optional 64-bit signed remainder.\r
@@ -3398,12 +3467,11 @@ DivU64x64Remainder (
 INT64\r
 EFIAPI\r
 DivS64x64Remainder (\r
-  IN      INT64                     Dividend,\r
-  IN      INT64                     Divisor,\r
-  OUT     INT64                     *Remainder  OPTIONAL\r
+  IN      INT64  Dividend,\r
+  IN      INT64  Divisor,\r
+  OUT     INT64  *Remainder  OPTIONAL\r
   );\r
 \r
-\r
 /**\r
   Reads a 16-bit value from memory that may be unaligned.\r
 \r
@@ -3420,10 +3488,9 @@ DivS64x64Remainder (
 UINT16\r
 EFIAPI\r
 ReadUnaligned16 (\r
-  IN CONST UINT16              *Buffer\r
+  IN CONST UINT16  *Buffer\r
   );\r
 \r
-\r
 /**\r
   Writes a 16-bit value to memory that may be unaligned.\r
 \r
@@ -3442,11 +3509,10 @@ ReadUnaligned16 (
 UINT16\r
 EFIAPI\r
 WriteUnaligned16 (\r
-  OUT UINT16                    *Buffer,\r
-  IN  UINT16                    Value\r
+  OUT UINT16  *Buffer,\r
+  IN  UINT16  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a 24-bit value from memory that may be unaligned.\r
 \r
@@ -3463,10 +3529,9 @@ WriteUnaligned16 (
 UINT32\r
 EFIAPI\r
 ReadUnaligned24 (\r
-  IN CONST UINT32              *Buffer\r
+  IN CONST UINT32  *Buffer\r
   );\r
 \r
-\r
 /**\r
   Writes a 24-bit value to memory that may be unaligned.\r
 \r
@@ -3485,11 +3550,10 @@ ReadUnaligned24 (
 UINT32\r
 EFIAPI\r
 WriteUnaligned24 (\r
-  OUT UINT32                    *Buffer,\r
-  IN  UINT32                    Value\r
+  OUT UINT32  *Buffer,\r
+  IN  UINT32  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a 32-bit value from memory that may be unaligned.\r
 \r
@@ -3506,10 +3570,9 @@ WriteUnaligned24 (
 UINT32\r
 EFIAPI\r
 ReadUnaligned32 (\r
-  IN CONST UINT32              *Buffer\r
+  IN CONST UINT32  *Buffer\r
   );\r
 \r
-\r
 /**\r
   Writes a 32-bit value to memory that may be unaligned.\r
 \r
@@ -3528,11 +3591,10 @@ ReadUnaligned32 (
 UINT32\r
 EFIAPI\r
 WriteUnaligned32 (\r
-  OUT UINT32                    *Buffer,\r
-  IN  UINT32                    Value\r
+  OUT UINT32  *Buffer,\r
+  IN  UINT32  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a 64-bit value from memory that may be unaligned.\r
 \r
@@ -3549,10 +3611,9 @@ WriteUnaligned32 (
 UINT64\r
 EFIAPI\r
 ReadUnaligned64 (\r
-  IN CONST UINT64              *Buffer\r
+  IN CONST UINT64  *Buffer\r
   );\r
 \r
-\r
 /**\r
   Writes a 64-bit value to memory that may be unaligned.\r
 \r
@@ -3571,11 +3632,10 @@ ReadUnaligned64 (
 UINT64\r
 EFIAPI\r
 WriteUnaligned64 (\r
-  OUT UINT64                    *Buffer,\r
-  IN  UINT64                    Value\r
+  OUT UINT64  *Buffer,\r
+  IN  UINT64  Value\r
   );\r
 \r
-\r
 //\r
 // Bit Field Functions\r
 //\r
@@ -3602,12 +3662,11 @@ WriteUnaligned64 (
 UINT8\r
 EFIAPI\r
 BitFieldRead8 (\r
-  IN      UINT8                     Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit\r
+  IN      UINT8  Operand,\r
+  IN      UINTN  StartBit,\r
+  IN      UINTN  EndBit\r
   );\r
 \r
-\r
 /**\r
   Writes a bit field to an 8-bit value, and returns the result.\r
 \r
@@ -3634,13 +3693,12 @@ BitFieldRead8 (
 UINT8\r
 EFIAPI\r
 BitFieldWrite8 (\r
-  IN      UINT8                     Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT8                     Value\r
+  IN      UINT8  Operand,\r
+  IN      UINTN  StartBit,\r
+  IN      UINTN  EndBit,\r
+  IN      UINT8  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from an 8-bit value, performs a bitwise OR, and returns the\r
   result.\r
@@ -3668,13 +3726,12 @@ BitFieldWrite8 (
 UINT8\r
 EFIAPI\r
 BitFieldOr8 (\r
-  IN      UINT8                     Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT8                     OrData\r
+  IN      UINT8  Operand,\r
+  IN      UINTN  StartBit,\r
+  IN      UINTN  EndBit,\r
+  IN      UINT8  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from an 8-bit value, performs a bitwise AND, and returns\r
   the result.\r
@@ -3702,13 +3759,12 @@ BitFieldOr8 (
 UINT8\r
 EFIAPI\r
 BitFieldAnd8 (\r
-  IN      UINT8                     Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT8                     AndData\r
+  IN      UINT8  Operand,\r
+  IN      UINTN  StartBit,\r
+  IN      UINTN  EndBit,\r
+  IN      UINT8  AndData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from an 8-bit value, performs a bitwise AND followed by a\r
   bitwise OR, and returns the result.\r
@@ -3739,14 +3795,13 @@ BitFieldAnd8 (
 UINT8\r
 EFIAPI\r
 BitFieldAndThenOr8 (\r
-  IN      UINT8                     Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT8                     AndData,\r
-  IN      UINT8                     OrData\r
+  IN      UINT8  Operand,\r
+  IN      UINTN  StartBit,\r
+  IN      UINTN  EndBit,\r
+  IN      UINT8  AndData,\r
+  IN      UINT8  OrData\r
   );\r
 \r
-\r
 /**\r
   Returns a bit field from a 16-bit value.\r
 \r
@@ -3769,12 +3824,11 @@ BitFieldAndThenOr8 (
 UINT16\r
 EFIAPI\r
 BitFieldRead16 (\r
-  IN      UINT16                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit\r
+  IN      UINT16  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit\r
   );\r
 \r
-\r
 /**\r
   Writes a bit field to a 16-bit value, and returns the result.\r
 \r
@@ -3801,13 +3855,12 @@ BitFieldRead16 (
 UINT16\r
 EFIAPI\r
 BitFieldWrite16 (\r
-  IN      UINT16                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT16                    Value\r
+  IN      UINT16  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT16  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 16-bit value, performs a bitwise OR, and returns the\r
   result.\r
@@ -3835,13 +3888,12 @@ BitFieldWrite16 (
 UINT16\r
 EFIAPI\r
 BitFieldOr16 (\r
-  IN      UINT16                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT16                    OrData\r
+  IN      UINT16  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT16  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 16-bit value, performs a bitwise AND, and returns\r
   the result.\r
@@ -3869,13 +3921,12 @@ BitFieldOr16 (
 UINT16\r
 EFIAPI\r
 BitFieldAnd16 (\r
-  IN      UINT16                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT16                    AndData\r
+  IN      UINT16  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT16  AndData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 16-bit value, performs a bitwise AND followed by a\r
   bitwise OR, and returns the result.\r
@@ -3906,14 +3957,13 @@ BitFieldAnd16 (
 UINT16\r
 EFIAPI\r
 BitFieldAndThenOr16 (\r
-  IN      UINT16                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT16                    AndData,\r
-  IN      UINT16                    OrData\r
+  IN      UINT16  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT16  AndData,\r
+  IN      UINT16  OrData\r
   );\r
 \r
-\r
 /**\r
   Returns a bit field from a 32-bit value.\r
 \r
@@ -3936,12 +3986,11 @@ BitFieldAndThenOr16 (
 UINT32\r
 EFIAPI\r
 BitFieldRead32 (\r
-  IN      UINT32                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit\r
+  IN      UINT32  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit\r
   );\r
 \r
-\r
 /**\r
   Writes a bit field to a 32-bit value, and returns the result.\r
 \r
@@ -3968,13 +4017,12 @@ BitFieldRead32 (
 UINT32\r
 EFIAPI\r
 BitFieldWrite32 (\r
-  IN      UINT32                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT32                    Value\r
+  IN      UINT32  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT32  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 32-bit value, performs a bitwise OR, and returns the\r
   result.\r
@@ -4002,13 +4050,12 @@ BitFieldWrite32 (
 UINT32\r
 EFIAPI\r
 BitFieldOr32 (\r
-  IN      UINT32                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT32                    OrData\r
+  IN      UINT32  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT32  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 32-bit value, performs a bitwise AND, and returns\r
   the result.\r
@@ -4036,13 +4083,12 @@ BitFieldOr32 (
 UINT32\r
 EFIAPI\r
 BitFieldAnd32 (\r
-  IN      UINT32                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT32                    AndData\r
+  IN      UINT32  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT32  AndData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 32-bit value, performs a bitwise AND followed by a\r
   bitwise OR, and returns the result.\r
@@ -4073,14 +4119,13 @@ BitFieldAnd32 (
 UINT32\r
 EFIAPI\r
 BitFieldAndThenOr32 (\r
-  IN      UINT32                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT32                    AndData,\r
-  IN      UINT32                    OrData\r
+  IN      UINT32  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT32  AndData,\r
+  IN      UINT32  OrData\r
   );\r
 \r
-\r
 /**\r
   Returns a bit field from a 64-bit value.\r
 \r
@@ -4103,12 +4148,11 @@ BitFieldAndThenOr32 (
 UINT64\r
 EFIAPI\r
 BitFieldRead64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit\r
   );\r
 \r
-\r
 /**\r
   Writes a bit field to a 64-bit value, and returns the result.\r
 \r
@@ -4135,13 +4179,12 @@ BitFieldRead64 (
 UINT64\r
 EFIAPI\r
 BitFieldWrite64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 64-bit value, performs a bitwise OR, and returns the\r
   result.\r
@@ -4169,13 +4212,12 @@ BitFieldWrite64 (
 UINT64\r
 EFIAPI\r
 BitFieldOr64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT64                    OrData\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT64  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 64-bit value, performs a bitwise AND, and returns\r
   the result.\r
@@ -4203,13 +4245,12 @@ BitFieldOr64 (
 UINT64\r
 EFIAPI\r
 BitFieldAnd64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT64                    AndData\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT64  AndData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field from a 64-bit value, performs a bitwise AND followed by a\r
   bitwise OR, and returns the result.\r
@@ -4240,11 +4281,11 @@ BitFieldAnd64 (
 UINT64\r
 EFIAPI\r
 BitFieldAndThenOr64 (\r
-  IN      UINT64                    Operand,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT64                    AndData,\r
-  IN      UINT64                    OrData\r
+  IN      UINT64  Operand,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT64  AndData,\r
+  IN      UINT64  OrData\r
   );\r
 \r
 /**\r
@@ -4270,9 +4311,9 @@ BitFieldAndThenOr64 (
 UINT8\r
 EFIAPI\r
 BitFieldCountOnes32 (\r
-  IN       UINT32                   Operand,\r
-  IN       UINTN                    StartBit,\r
-  IN       UINTN                    EndBit\r
+  IN       UINT32  Operand,\r
+  IN       UINTN   StartBit,\r
+  IN       UINTN   EndBit\r
   );\r
 \r
 /**\r
@@ -4298,9 +4339,9 @@ BitFieldCountOnes32 (
 UINT8\r
 EFIAPI\r
 BitFieldCountOnes64 (\r
-  IN       UINT64                   Operand,\r
-  IN       UINTN                    StartBit,\r
-  IN       UINTN                    EndBit\r
+  IN       UINT64  Operand,\r
+  IN       UINTN   StartBit,\r
+  IN       UINTN   EndBit\r
   );\r
 \r
 //\r
@@ -4328,11 +4369,10 @@ BitFieldCountOnes64 (
 UINT8\r
 EFIAPI\r
 CalculateSum8 (\r
-  IN      CONST UINT8              *Buffer,\r
-  IN      UINTN                     Length\r
+  IN      CONST UINT8  *Buffer,\r
+  IN      UINTN        Length\r
   );\r
 \r
-\r
 /**\r
   Returns the two's complement checksum of all elements in a buffer\r
   of 8-bit values.\r
@@ -4354,11 +4394,10 @@ CalculateSum8 (
 UINT8\r
 EFIAPI\r
 CalculateCheckSum8 (\r
-  IN      CONST UINT8              *Buffer,\r
-  IN      UINTN                     Length\r
+  IN      CONST UINT8  *Buffer,\r
+  IN      UINTN        Length\r
   );\r
 \r
-\r
 /**\r
   Returns the sum of all elements in a buffer of 16-bit values.  During\r
   calculation, the carry bits are dropped.\r
@@ -4381,11 +4420,10 @@ CalculateCheckSum8 (
 UINT16\r
 EFIAPI\r
 CalculateSum16 (\r
-  IN      CONST UINT16             *Buffer,\r
-  IN      UINTN                     Length\r
+  IN      CONST UINT16  *Buffer,\r
+  IN      UINTN         Length\r
   );\r
 \r
-\r
 /**\r
   Returns the two's complement checksum of all elements in a buffer of\r
   16-bit values.\r
@@ -4409,11 +4447,10 @@ CalculateSum16 (
 UINT16\r
 EFIAPI\r
 CalculateCheckSum16 (\r
-  IN      CONST UINT16             *Buffer,\r
-  IN      UINTN                     Length\r
+  IN      CONST UINT16  *Buffer,\r
+  IN      UINTN         Length\r
   );\r
 \r
-\r
 /**\r
   Returns the sum of all elements in a buffer of 32-bit values. During\r
   calculation, the carry bits are dropped.\r
@@ -4436,11 +4473,10 @@ CalculateCheckSum16 (
 UINT32\r
 EFIAPI\r
 CalculateSum32 (\r
-  IN      CONST UINT32             *Buffer,\r
-  IN      UINTN                     Length\r
+  IN      CONST UINT32  *Buffer,\r
+  IN      UINTN         Length\r
   );\r
 \r
-\r
 /**\r
   Returns the two's complement checksum of all elements in a buffer of\r
   32-bit values.\r
@@ -4464,11 +4500,10 @@ CalculateSum32 (
 UINT32\r
 EFIAPI\r
 CalculateCheckSum32 (\r
-  IN      CONST UINT32             *Buffer,\r
-  IN      UINTN                     Length\r
+  IN      CONST UINT32  *Buffer,\r
+  IN      UINTN         Length\r
   );\r
 \r
-\r
 /**\r
   Returns the sum of all elements in a buffer of 64-bit values.  During\r
   calculation, the carry bits are dropped.\r
@@ -4491,11 +4526,10 @@ CalculateCheckSum32 (
 UINT64\r
 EFIAPI\r
 CalculateSum64 (\r
-  IN      CONST UINT64             *Buffer,\r
-  IN      UINTN                     Length\r
+  IN      CONST UINT64  *Buffer,\r
+  IN      UINTN         Length\r
   );\r
 \r
-\r
 /**\r
   Returns the two's complement checksum of all elements in a buffer of\r
   64-bit values.\r
@@ -4519,8 +4553,8 @@ CalculateSum64 (
 UINT64\r
 EFIAPI\r
 CalculateCheckSum64 (\r
-  IN      CONST UINT64             *Buffer,\r
-  IN      UINTN                     Length\r
+  IN      CONST UINT64  *Buffer,\r
+  IN      UINTN         Length\r
   );\r
 \r
 /**\r
@@ -4538,9 +4572,43 @@ CalculateCheckSum64 (
 **/\r
 UINT32\r
 EFIAPI\r
-CalculateCrc32(\r
-  IN  VOID                         *Buffer,\r
-  IN  UINTN                        Length\r
+CalculateCrc32 (\r
+  IN  VOID   *Buffer,\r
+  IN  UINTN  Length\r
+  );\r
+\r
+/**\r
+   Calculates the CRC16-ANSI checksum of the given buffer.\r
+\r
+   @param[in]      Buffer        Pointer to the buffer.\r
+   @param[in]      Length        Length of the buffer, in bytes.\r
+   @param[in]      InitialValue  Initial value of the CRC.\r
+\r
+   @return The CRC16-ANSI checksum.\r
+**/\r
+UINT16\r
+EFIAPI\r
+CalculateCrc16Ansi (\r
+  IN  CONST VOID  *Buffer,\r
+  IN  UINTN       Length,\r
+  IN  UINT16      InitialValue\r
+  );\r
+\r
+/**\r
+   Calculates the CRC32c checksum of the given buffer.\r
+\r
+   @param[in]      Buffer        Pointer to the buffer.\r
+   @param[in]      Length        Length of the buffer, in bytes.\r
+   @param[in]      InitialValue  Initial value of the CRC.\r
+\r
+   @return The CRC32c checksum.\r
+**/\r
+UINT32\r
+EFIAPI\r
+CalculateCrc32c (\r
+  IN CONST VOID  *Buffer,\r
+  IN UINTN       Length,\r
+  IN UINT32      InitialValue\r
   );\r
 \r
 //\r
@@ -4552,16 +4620,14 @@ CalculateCrc32(
 \r
   @param  Context1        Context1 parameter passed into SwitchStack().\r
   @param  Context2        Context2 parameter passed into SwitchStack().\r
-\r
 **/\r
 typedef\r
 VOID\r
 (EFIAPI *SWITCH_STACK_ENTRY_POINT)(\r
-  IN      VOID                      *Context1,  OPTIONAL\r
+  IN      VOID                      *Context1   OPTIONAL,\r
   IN      VOID                      *Context2   OPTIONAL\r
   );\r
 \r
-\r
 /**\r
   Used to serialize load and store operations.\r
 \r
@@ -4575,7 +4641,6 @@ MemoryFence (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Saves the current CPU context that can be restored with a call to LongJump()\r
   and returns 0.\r
@@ -4604,7 +4669,6 @@ SetJump (
   OUT     BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer\r
   );\r
 \r
-\r
 /**\r
   Restores the CPU context that was saved with SetJump().\r
 \r
@@ -4628,7 +4692,6 @@ LongJump (
   IN      UINTN                     Value\r
   );\r
 \r
-\r
 /**\r
   Enables CPU interrupts.\r
 \r
@@ -4639,7 +4702,6 @@ EnableInterrupts (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Disables CPU interrupts.\r
 \r
@@ -4650,7 +4712,6 @@ DisableInterrupts (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Disables CPU interrupts and returns the interrupt state prior to the disable\r
   operation.\r
@@ -4665,7 +4726,6 @@ SaveAndDisableInterrupts (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Enables CPU interrupts for the smallest window required to capture any\r
   pending interrupts.\r
@@ -4677,7 +4737,6 @@ EnableDisableInterrupts (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Retrieves the current CPU interrupt state.\r
 \r
@@ -4694,7 +4753,6 @@ GetInterruptState (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Set the current CPU interrupt state.\r
 \r
@@ -4712,10 +4770,9 @@ GetInterruptState (
 BOOLEAN\r
 EFIAPI\r
 SetInterruptState (\r
-  IN      BOOLEAN                   InterruptState\r
+  IN      BOOLEAN  InterruptState\r
   );\r
 \r
-\r
 /**\r
   Requests CPU to pause for a short period of time.\r
 \r
@@ -4729,7 +4786,6 @@ CpuPause (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Transfers control to a function starting with a new stack.\r
 \r
@@ -4763,13 +4819,12 @@ VOID
 EFIAPI\r
 SwitchStack (\r
   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,\r
-  IN      VOID                      *Context1,  OPTIONAL\r
-  IN      VOID                      *Context2,  OPTIONAL\r
+  IN      VOID                      *Context1   OPTIONAL,\r
+  IN      VOID                      *Context2   OPTIONAL,\r
   IN      VOID                      *NewStack,\r
   ...\r
   );\r
 \r
-\r
 /**\r
   Generates a breakpoint on the CPU.\r
 \r
@@ -4783,7 +4838,6 @@ CpuBreakpoint (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Executes an infinite loop.\r
 \r
@@ -4799,7 +4853,6 @@ CpuDeadLoop (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Uses as a barrier to stop speculative execution.\r
 \r
@@ -4813,6 +4866,157 @@ SpeculationBarrier (
   VOID\r
   );\r
 \r
+#if defined (MDE_CPU_X64) || defined (MDE_CPU_IA32)\r
+\r
+/**\r
+  The TDCALL instruction causes a VM exit to the Intel TDX module.  It is\r
+  used to call guest-side Intel TDX functions, either local or a TD exit\r
+  to the host VMM, as selected by Leaf.\r
+\r
+  @param[in]      Leaf        Leaf number of TDCALL instruction\r
+  @param[in]      Arg1        Arg1\r
+  @param[in]      Arg2        Arg2\r
+  @param[in]      Arg3        Arg3\r
+  @param[in,out]  Results  Returned result of the Leaf function\r
+\r
+  @return 0               A successful call\r
+  @return Other           See individual leaf functions\r
+**/\r
+UINTN\r
+EFIAPI\r
+TdCall (\r
+  IN UINT64    Leaf,\r
+  IN UINT64    Arg1,\r
+  IN UINT64    Arg2,\r
+  IN UINT64    Arg3,\r
+  IN OUT VOID  *Results\r
+  );\r
+\r
+/**\r
+  TDVMALL is a leaf function 0 for TDCALL. It helps invoke services from the\r
+  host VMM to pass/receive information.\r
+\r
+  @param[in]     Leaf        Number of sub-functions\r
+  @param[in]     Arg1        Arg1\r
+  @param[in]     Arg2        Arg2\r
+  @param[in]     Arg3        Arg3\r
+  @param[in]     Arg4        Arg4\r
+  @param[in,out] Results     Returned result of the sub-function\r
+\r
+  @return 0               A successful call\r
+  @return Other           See individual sub-functions\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+TdVmCall (\r
+  IN UINT64    Leaf,\r
+  IN UINT64    Arg1,\r
+  IN UINT64    Arg2,\r
+  IN UINT64    Arg3,\r
+  IN UINT64    Arg4,\r
+  IN OUT VOID  *Results\r
+  );\r
+\r
+/**\r
+  Probe if TD is enabled.\r
+\r
+  @return TRUE    TD is enabled.\r
+  @return FALSE   TD is not enabled.\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+TdIsEnabled (\r
+  VOID\r
+  );\r
+\r
+#endif\r
+\r
+#if defined (MDE_CPU_X64)\r
+//\r
+// The page size for the PVALIDATE instruction\r
+//\r
+typedef enum {\r
+  PvalidatePageSize4K = 0,\r
+  PvalidatePageSize2MB,\r
+} PVALIDATE_PAGE_SIZE;\r
+\r
+//\r
+// PVALIDATE Return Code.\r
+//\r
+#define PVALIDATE_RET_SUCCESS        0\r
+#define PVALIDATE_RET_FAIL_INPUT     1\r
+#define PVALIDATE_RET_SIZE_MISMATCH  6\r
+\r
+//\r
+// The PVALIDATE instruction did not make any changes to the RMP entry.\r
+//\r
+#define PVALIDATE_RET_NO_RMPUPDATE  255\r
+\r
+/**\r
+ Execute a PVALIDATE instruction to validate or to rescinds validation of a guest\r
+ page's RMP entry.\r
+\r
+ The instruction is available only when CPUID Fn8000_001F_EAX[SNP]=1.\r
+\r
+ The function is available on X64.\r
+\r
+ @param[in]    PageSize         The page size to use.\r
+ @param[in]    Validate         If TRUE, validate the guest virtual address\r
+                                otherwise invalidate the guest virtual address.\r
+ @param[in]    Address          The guest virtual address.\r
+\r
+ @retval PVALIDATE_RET_SUCCESS        The PVALIDATE instruction succeeded, and\r
+                                      updated the RMP entry.\r
+ @retval PVALIDATE_RET_NO_RMPUPDATE   The PVALIDATE instruction succeeded, but\r
+                                      did not update the RMP entry.\r
+ @return                              Failure code from the PVALIDATE\r
+                                      instruction.\r
+**/\r
+UINT32\r
+EFIAPI\r
+AsmPvalidate (\r
+  IN   PVALIDATE_PAGE_SIZE  PageSize,\r
+  IN   BOOLEAN              Validate,\r
+  IN   PHYSICAL_ADDRESS     Address\r
+  );\r
+\r
+//\r
+// RDX settings for RMPADJUST\r
+//\r
+#define RMPADJUST_VMPL_MAX               3\r
+#define RMPADJUST_VMPL_MASK              0xFF\r
+#define RMPADJUST_VMPL_SHIFT             0\r
+#define RMPADJUST_PERMISSION_MASK_MASK   0xFF\r
+#define RMPADJUST_PERMISSION_MASK_SHIFT  8\r
+#define RMPADJUST_VMSA_PAGE_BIT          BIT16\r
+\r
+/**\r
+  Adjusts the permissions of an SEV-SNP guest page.\r
+\r
+  Executes a RMPADJUST instruction with the register state specified by Rax,\r
+  Rcx, and Rdx. Returns Eax. This function is only available on X64.\r
+\r
+  The instruction is available only when CPUID Fn8000_001F_EAX[SNP]=1.\r
+\r
+  @param[in]  Rax   The value to load into RAX before executing the RMPADJUST\r
+                    instruction.\r
+  @param[in]  Rcx   The value to load into RCX before executing the RMPADJUST\r
+                    instruction.\r
+  @param[in]  Rdx   The value to load into RDX before executing the RMPADJUST\r
+                    instruction.\r
+\r
+  @return     Eax\r
+**/\r
+UINT32\r
+EFIAPI\r
+AsmRmpAdjust (\r
+  IN      UINT64  Rax,\r
+  IN      UINT64  Rcx,\r
+  IN      UINT64  Rdx\r
+  );\r
+\r
+#endif\r
 \r
 #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)\r
 ///\r
@@ -4821,21 +5025,21 @@ SpeculationBarrier (
 ///\r
 typedef union {\r
   struct {\r
-    UINT32  CF:1;           ///< Carry Flag.\r
-    UINT32  Reserved_0:1;   ///< Reserved.\r
-    UINT32  PF:1;           ///< Parity Flag.\r
-    UINT32  Reserved_1:1;   ///< Reserved.\r
-    UINT32  AF:1;           ///< Auxiliary Carry Flag.\r
-    UINT32  Reserved_2:1;   ///< Reserved.\r
-    UINT32  ZF:1;           ///< Zero Flag.\r
-    UINT32  SF:1;           ///< Sign Flag.\r
-    UINT32  TF:1;           ///< Trap Flag.\r
-    UINT32  IF:1;           ///< Interrupt Enable Flag.\r
-    UINT32  DF:1;           ///< Direction Flag.\r
-    UINT32  OF:1;           ///< Overflow Flag.\r
-    UINT32  IOPL:2;         ///< I/O Privilege Level.\r
-    UINT32  NT:1;           ///< Nested Task.\r
-    UINT32  Reserved_3:1;   ///< Reserved.\r
+    UINT32    CF         : 1; ///< Carry Flag.\r
+    UINT32    Reserved_0 : 1; ///< Reserved.\r
+    UINT32    PF         : 1; ///< Parity Flag.\r
+    UINT32    Reserved_1 : 1; ///< Reserved.\r
+    UINT32    AF         : 1; ///< Auxiliary Carry Flag.\r
+    UINT32    Reserved_2 : 1; ///< Reserved.\r
+    UINT32    ZF         : 1; ///< Zero Flag.\r
+    UINT32    SF         : 1; ///< Sign Flag.\r
+    UINT32    TF         : 1; ///< Trap Flag.\r
+    UINT32    IF         : 1; ///< Interrupt Enable Flag.\r
+    UINT32    DF         : 1; ///< Direction Flag.\r
+    UINT32    OF         : 1; ///< Overflow Flag.\r
+    UINT32    IOPL       : 2; ///< I/O Privilege Level.\r
+    UINT32    NT         : 1; ///< Nested Task.\r
+    UINT32    Reserved_3 : 1; ///< Reserved.\r
   } Bits;\r
   UINT16    Uint16;\r
 } IA32_FLAGS16;\r
@@ -4847,30 +5051,30 @@ typedef union {
 ///\r
 typedef union {\r
   struct {\r
-    UINT32  CF:1;           ///< Carry Flag.\r
-    UINT32  Reserved_0:1;   ///< Reserved.\r
-    UINT32  PF:1;           ///< Parity Flag.\r
-    UINT32  Reserved_1:1;   ///< Reserved.\r
-    UINT32  AF:1;           ///< Auxiliary Carry Flag.\r
-    UINT32  Reserved_2:1;   ///< Reserved.\r
-    UINT32  ZF:1;           ///< Zero Flag.\r
-    UINT32  SF:1;           ///< Sign Flag.\r
-    UINT32  TF:1;           ///< Trap Flag.\r
-    UINT32  IF:1;           ///< Interrupt Enable Flag.\r
-    UINT32  DF:1;           ///< Direction Flag.\r
-    UINT32  OF:1;           ///< Overflow Flag.\r
-    UINT32  IOPL:2;         ///< I/O Privilege Level.\r
-    UINT32  NT:1;           ///< Nested Task.\r
-    UINT32  Reserved_3:1;   ///< Reserved.\r
-    UINT32  RF:1;           ///< Resume Flag.\r
-    UINT32  VM:1;           ///< Virtual 8086 Mode.\r
-    UINT32  AC:1;           ///< Alignment Check.\r
-    UINT32  VIF:1;          ///< Virtual Interrupt Flag.\r
-    UINT32  VIP:1;          ///< Virtual Interrupt Pending.\r
-    UINT32  ID:1;           ///< ID Flag.\r
-    UINT32  Reserved_4:10;  ///< Reserved.\r
+    UINT32    CF         : 1;  ///< Carry Flag.\r
+    UINT32    Reserved_0 : 1;  ///< Reserved.\r
+    UINT32    PF         : 1;  ///< Parity Flag.\r
+    UINT32    Reserved_1 : 1;  ///< Reserved.\r
+    UINT32    AF         : 1;  ///< Auxiliary Carry Flag.\r
+    UINT32    Reserved_2 : 1;  ///< Reserved.\r
+    UINT32    ZF         : 1;  ///< Zero Flag.\r
+    UINT32    SF         : 1;  ///< Sign Flag.\r
+    UINT32    TF         : 1;  ///< Trap Flag.\r
+    UINT32    IF         : 1;  ///< Interrupt Enable Flag.\r
+    UINT32    DF         : 1;  ///< Direction Flag.\r
+    UINT32    OF         : 1;  ///< Overflow Flag.\r
+    UINT32    IOPL       : 2;  ///< I/O Privilege Level.\r
+    UINT32    NT         : 1;  ///< Nested Task.\r
+    UINT32    Reserved_3 : 1;  ///< Reserved.\r
+    UINT32    RF         : 1;  ///< Resume Flag.\r
+    UINT32    VM         : 1;  ///< Virtual 8086 Mode.\r
+    UINT32    AC         : 1;  ///< Alignment Check.\r
+    UINT32    VIF        : 1;  ///< Virtual Interrupt Flag.\r
+    UINT32    VIP        : 1;  ///< Virtual Interrupt Pending.\r
+    UINT32    ID         : 1;  ///< ID Flag.\r
+    UINT32    Reserved_4 : 10; ///< Reserved.\r
   } Bits;\r
-  UINTN     UintN;\r
+  UINTN    UintN;\r
 } IA32_EFLAGS32;\r
 \r
 ///\r
@@ -4880,22 +5084,22 @@ typedef union {
 ///\r
 typedef union {\r
   struct {\r
-    UINT32  PE:1;           ///< Protection Enable.\r
-    UINT32  MP:1;           ///< Monitor Coprocessor.\r
-    UINT32  EM:1;           ///< Emulation.\r
-    UINT32  TS:1;           ///< Task Switched.\r
-    UINT32  ET:1;           ///< Extension Type.\r
-    UINT32  NE:1;           ///< Numeric Error.\r
-    UINT32  Reserved_0:10;  ///< Reserved.\r
-    UINT32  WP:1;           ///< Write Protect.\r
-    UINT32  Reserved_1:1;   ///< Reserved.\r
-    UINT32  AM:1;           ///< Alignment Mask.\r
-    UINT32  Reserved_2:10;  ///< Reserved.\r
-    UINT32  NW:1;           ///< Mot Write-through.\r
-    UINT32  CD:1;           ///< Cache Disable.\r
-    UINT32  PG:1;           ///< Paging.\r
+    UINT32    PE         : 1;  ///< Protection Enable.\r
+    UINT32    MP         : 1;  ///< Monitor Coprocessor.\r
+    UINT32    EM         : 1;  ///< Emulation.\r
+    UINT32    TS         : 1;  ///< Task Switched.\r
+    UINT32    ET         : 1;  ///< Extension Type.\r
+    UINT32    NE         : 1;  ///< Numeric Error.\r
+    UINT32    Reserved_0 : 10; ///< Reserved.\r
+    UINT32    WP         : 1;  ///< Write Protect.\r
+    UINT32    Reserved_1 : 1;  ///< Reserved.\r
+    UINT32    AM         : 1;  ///< Alignment Mask.\r
+    UINT32    Reserved_2 : 10; ///< Reserved.\r
+    UINT32    NW         : 1;  ///< Mot Write-through.\r
+    UINT32    CD         : 1;  ///< Cache Disable.\r
+    UINT32    PG         : 1;  ///< Paging.\r
   } Bits;\r
-  UINTN     UintN;\r
+  UINTN    UintN;\r
 } IA32_CR0;\r
 \r
 ///\r
@@ -4905,36 +5109,36 @@ typedef union {
 ///\r
 typedef union {\r
   struct {\r
-    UINT32  VME:1;          ///< Virtual-8086 Mode Extensions.\r
-    UINT32  PVI:1;          ///< Protected-Mode Virtual Interrupts.\r
-    UINT32  TSD:1;          ///< Time Stamp Disable.\r
-    UINT32  DE:1;           ///< Debugging Extensions.\r
-    UINT32  PSE:1;          ///< Page Size Extensions.\r
-    UINT32  PAE:1;          ///< Physical Address Extension.\r
-    UINT32  MCE:1;          ///< Machine Check Enable.\r
-    UINT32  PGE:1;          ///< Page Global Enable.\r
-    UINT32  PCE:1;          ///< Performance Monitoring Counter\r
-                            ///< Enable.\r
-    UINT32  OSFXSR:1;       ///< Operating System Support for\r
-                            ///< FXSAVE and FXRSTOR instructions\r
-    UINT32  OSXMMEXCPT:1;   ///< Operating System Support for\r
-                            ///< Unmasked SIMD Floating Point\r
-                            ///< Exceptions.\r
-    UINT32  UMIP:1;         ///< User-Mode Instruction Prevention.\r
-    UINT32  LA57:1;         ///< Linear Address 57bit.\r
-    UINT32  VMXE:1;         ///< VMX Enable.\r
-    UINT32  SMXE:1;         ///< SMX Enable.\r
-    UINT32  Reserved_3:1;   ///< Reserved.\r
-    UINT32  FSGSBASE:1;     ///< FSGSBASE Enable.\r
-    UINT32  PCIDE:1;        ///< PCID Enable.\r
-    UINT32  OSXSAVE:1;      ///< XSAVE and Processor Extended States Enable.\r
-    UINT32  Reserved_4:1;   ///< Reserved.\r
-    UINT32  SMEP:1;         ///< SMEP Enable.\r
-    UINT32  SMAP:1;         ///< SMAP Enable.\r
-    UINT32  PKE:1;          ///< Protection-Key Enable.\r
-    UINT32  Reserved_5:9;   ///< Reserved.\r
+    UINT32    VME        : 1; ///< Virtual-8086 Mode Extensions.\r
+    UINT32    PVI        : 1; ///< Protected-Mode Virtual Interrupts.\r
+    UINT32    TSD        : 1; ///< Time Stamp Disable.\r
+    UINT32    DE         : 1; ///< Debugging Extensions.\r
+    UINT32    PSE        : 1; ///< Page Size Extensions.\r
+    UINT32    PAE        : 1; ///< Physical Address Extension.\r
+    UINT32    MCE        : 1; ///< Machine Check Enable.\r
+    UINT32    PGE        : 1; ///< Page Global Enable.\r
+    UINT32    PCE        : 1; ///< Performance Monitoring Counter\r
+                              ///< Enable.\r
+    UINT32    OSFXSR     : 1; ///< Operating System Support for\r
+                              ///< FXSAVE and FXRSTOR instructions\r
+    UINT32    OSXMMEXCPT : 1; ///< Operating System Support for\r
+                              ///< Unmasked SIMD Floating Point\r
+                              ///< Exceptions.\r
+    UINT32    UMIP       : 1; ///< User-Mode Instruction Prevention.\r
+    UINT32    LA57       : 1; ///< Linear Address 57bit.\r
+    UINT32    VMXE       : 1; ///< VMX Enable.\r
+    UINT32    SMXE       : 1; ///< SMX Enable.\r
+    UINT32    Reserved_3 : 1; ///< Reserved.\r
+    UINT32    FSGSBASE   : 1; ///< FSGSBASE Enable.\r
+    UINT32    PCIDE      : 1; ///< PCID Enable.\r
+    UINT32    OSXSAVE    : 1; ///< XSAVE and Processor Extended States Enable.\r
+    UINT32    Reserved_4 : 1; ///< Reserved.\r
+    UINT32    SMEP       : 1; ///< SMEP Enable.\r
+    UINT32    SMAP       : 1; ///< SMAP Enable.\r
+    UINT32    PKE        : 1; ///< Protection-Key Enable.\r
+    UINT32    Reserved_5 : 9; ///< Reserved.\r
   } Bits;\r
-  UINTN     UintN;\r
+  UINTN    UintN;\r
 } IA32_CR4;\r
 \r
 ///\r
@@ -4942,32 +5146,32 @@ typedef union {
 ///\r
 typedef union {\r
   struct {\r
-    UINT32  LimitLow:16;\r
-    UINT32  BaseLow:16;\r
-    UINT32  BaseMid:8;\r
-    UINT32  Type:4;\r
-    UINT32  S:1;\r
-    UINT32  DPL:2;\r
-    UINT32  P:1;\r
-    UINT32  LimitHigh:4;\r
-    UINT32  AVL:1;\r
-    UINT32  L:1;\r
-    UINT32  DB:1;\r
-    UINT32  G:1;\r
-    UINT32  BaseHigh:8;\r
+    UINT32    LimitLow  : 16;\r
+    UINT32    BaseLow   : 16;\r
+    UINT32    BaseMid   : 8;\r
+    UINT32    Type      : 4;\r
+    UINT32    S         : 1;\r
+    UINT32    DPL       : 2;\r
+    UINT32    P         : 1;\r
+    UINT32    LimitHigh : 4;\r
+    UINT32    AVL       : 1;\r
+    UINT32    L         : 1;\r
+    UINT32    DB        : 1;\r
+    UINT32    G         : 1;\r
+    UINT32    BaseHigh  : 8;\r
   } Bits;\r
-  UINT64  Uint64;\r
+  UINT64    Uint64;\r
 } IA32_SEGMENT_DESCRIPTOR;\r
 \r
 ///\r
 /// Byte packed structure for an IDTR, GDTR, LDTR descriptor.\r
 ///\r
-#pragma pack (1)\r
+  #pragma pack (1)\r
 typedef struct {\r
-  UINT16  Limit;\r
-  UINTN   Base;\r
+  UINT16    Limit;\r
+  UINTN     Base;\r
 } IA32_DESCRIPTOR;\r
-#pragma pack ()\r
+  #pragma pack ()\r
 \r
 #define IA32_IDT_GATE_TYPE_TASK          0x85\r
 #define IA32_IDT_GATE_TYPE_INTERRUPT_16  0x86\r
@@ -4975,25 +5179,25 @@ typedef struct {
 #define IA32_IDT_GATE_TYPE_INTERRUPT_32  0x8E\r
 #define IA32_IDT_GATE_TYPE_TRAP_32       0x8F\r
 \r
-#define IA32_GDT_TYPE_TSS               0x9\r
-#define IA32_GDT_ALIGNMENT              8\r
+#define IA32_GDT_TYPE_TSS   0x9\r
+#define IA32_GDT_ALIGNMENT  8\r
 \r
-#if defined (MDE_CPU_IA32)\r
+  #if defined (MDE_CPU_IA32)\r
 ///\r
 /// Byte packed structure for an IA-32 Interrupt Gate Descriptor.\r
 ///\r
 typedef union {\r
   struct {\r
-    UINT32  OffsetLow:16;   ///< Offset bits 15..0.\r
-    UINT32  Selector:16;    ///< Selector.\r
-    UINT32  Reserved_0:8;   ///< Reserved.\r
-    UINT32  GateType:8;     ///< Gate Type.  See #defines above.\r
-    UINT32  OffsetHigh:16;  ///< Offset bits 31..16.\r
+    UINT32    OffsetLow  : 16; ///< Offset bits 15..0.\r
+    UINT32    Selector   : 16; ///< Selector.\r
+    UINT32    Reserved_0 : 8;  ///< Reserved.\r
+    UINT32    GateType   : 8;  ///< Gate Type.  See #defines above.\r
+    UINT32    OffsetHigh : 16; ///< Offset bits 31..16.\r
   } Bits;\r
-  UINT64  Uint64;\r
+  UINT64    Uint64;\r
 } IA32_IDT_GATE_DESCRIPTOR;\r
 \r
-#pragma pack (1)\r
+    #pragma pack (1)\r
 //\r
 // IA32 Task-State Segment Definition\r
 //\r
@@ -5040,46 +5244,46 @@ typedef struct {
 \r
 typedef union {\r
   struct {\r
-    UINT32  LimitLow:16;    ///< Segment Limit 15..00\r
-    UINT32  BaseLow:16;     ///< Base Address  15..00\r
-    UINT32  BaseMid:8;      ///< Base Address  23..16\r
-    UINT32  Type:4;         ///< Type (1 0 B 1)\r
-    UINT32  Reserved_43:1;  ///< 0\r
-    UINT32  DPL:2;          ///< Descriptor Privilege Level\r
-    UINT32  P:1;            ///< Segment Present\r
-    UINT32  LimitHigh:4;    ///< Segment Limit 19..16\r
-    UINT32  AVL:1;          ///< Available for use by system software\r
-    UINT32  Reserved_52:2;  ///< 0 0\r
-    UINT32  G:1;            ///< Granularity\r
-    UINT32  BaseHigh:8;     ///< Base Address 31..24\r
+    UINT32    LimitLow    : 16; ///< Segment Limit 15..00\r
+    UINT32    BaseLow     : 16; ///< Base Address  15..00\r
+    UINT32    BaseMid     : 8;  ///< Base Address  23..16\r
+    UINT32    Type        : 4;  ///< Type (1 0 B 1)\r
+    UINT32    Reserved_43 : 1;  ///< 0\r
+    UINT32    DPL         : 2;  ///< Descriptor Privilege Level\r
+    UINT32    P           : 1;  ///< Segment Present\r
+    UINT32    LimitHigh   : 4;  ///< Segment Limit 19..16\r
+    UINT32    AVL         : 1;  ///< Available for use by system software\r
+    UINT32    Reserved_52 : 2;  ///< 0 0\r
+    UINT32    G           : 1;  ///< Granularity\r
+    UINT32    BaseHigh    : 8;  ///< Base Address 31..24\r
   } Bits;\r
-  UINT64  Uint64;\r
+  UINT64    Uint64;\r
 } IA32_TSS_DESCRIPTOR;\r
-#pragma pack ()\r
+    #pragma pack ()\r
 \r
-#endif // defined (MDE_CPU_IA32)\r
+  #endif // defined (MDE_CPU_IA32)\r
 \r
-#if defined (MDE_CPU_X64)\r
+  #if defined (MDE_CPU_X64)\r
 ///\r
 /// Byte packed structure for an x64 Interrupt Gate Descriptor.\r
 ///\r
 typedef union {\r
   struct {\r
-    UINT32  OffsetLow:16;   ///< Offset bits 15..0.\r
-    UINT32  Selector:16;    ///< Selector.\r
-    UINT32  Reserved_0:8;   ///< Reserved.\r
-    UINT32  GateType:8;     ///< Gate Type.  See #defines above.\r
-    UINT32  OffsetHigh:16;  ///< Offset bits 31..16.\r
-    UINT32  OffsetUpper:32; ///< Offset bits 63..32.\r
-    UINT32  Reserved_1:32;  ///< Reserved.\r
+    UINT32    OffsetLow   : 16; ///< Offset bits 15..0.\r
+    UINT32    Selector    : 16; ///< Selector.\r
+    UINT32    Reserved_0  : 8;  ///< Reserved.\r
+    UINT32    GateType    : 8;  ///< Gate Type.  See #defines above.\r
+    UINT32    OffsetHigh  : 16; ///< Offset bits 31..16.\r
+    UINT32    OffsetUpper : 32; ///< Offset bits 63..32.\r
+    UINT32    Reserved_1  : 32; ///< Reserved.\r
   } Bits;\r
   struct {\r
-    UINT64  Uint64;\r
-    UINT64  Uint64_1;\r
+    UINT64    Uint64;\r
+    UINT64    Uint64_1;\r
   } Uint128;\r
 } IA32_IDT_GATE_DESCRIPTOR;\r
 \r
-#pragma pack (1)\r
+    #pragma pack (1)\r
 //\r
 // IA32 Task-State Segment Definition\r
 //\r
@@ -5097,116 +5301,116 @@ typedef struct {
 \r
 typedef union {\r
   struct {\r
-    UINT32  LimitLow:16;    ///< Segment Limit 15..00\r
-    UINT32  BaseLow:16;     ///< Base Address  15..00\r
-    UINT32  BaseMidl:8;     ///< Base Address  23..16\r
-    UINT32  Type:4;         ///< Type (1 0 B 1)\r
-    UINT32  Reserved_43:1;  ///< 0\r
-    UINT32  DPL:2;          ///< Descriptor Privilege Level\r
-    UINT32  P:1;            ///< Segment Present\r
-    UINT32  LimitHigh:4;    ///< Segment Limit 19..16\r
-    UINT32  AVL:1;          ///< Available for use by system software\r
-    UINT32  Reserved_52:2;  ///< 0 0\r
-    UINT32  G:1;            ///< Granularity\r
-    UINT32  BaseMidh:8;     ///< Base Address  31..24\r
-    UINT32  BaseHigh:32;    ///< Base Address  63..32\r
-    UINT32  Reserved_96:32; ///< Reserved\r
+    UINT32    LimitLow    : 16; ///< Segment Limit 15..00\r
+    UINT32    BaseLow     : 16; ///< Base Address  15..00\r
+    UINT32    BaseMidl    : 8;  ///< Base Address  23..16\r
+    UINT32    Type        : 4;  ///< Type (1 0 B 1)\r
+    UINT32    Reserved_43 : 1;  ///< 0\r
+    UINT32    DPL         : 2;  ///< Descriptor Privilege Level\r
+    UINT32    P           : 1;  ///< Segment Present\r
+    UINT32    LimitHigh   : 4;  ///< Segment Limit 19..16\r
+    UINT32    AVL         : 1;  ///< Available for use by system software\r
+    UINT32    Reserved_52 : 2;  ///< 0 0\r
+    UINT32    G           : 1;  ///< Granularity\r
+    UINT32    BaseMidh    : 8;  ///< Base Address  31..24\r
+    UINT32    BaseHigh    : 32; ///< Base Address  63..32\r
+    UINT32    Reserved_96 : 32; ///< Reserved\r
   } Bits;\r
   struct {\r
-    UINT64  Uint64;\r
-    UINT64  Uint64_1;\r
+    UINT64    Uint64;\r
+    UINT64    Uint64_1;\r
   } Uint128;\r
 } IA32_TSS_DESCRIPTOR;\r
-#pragma pack ()\r
+    #pragma pack ()\r
 \r
-#endif // defined (MDE_CPU_X64)\r
+  #endif // defined (MDE_CPU_X64)\r
 \r
 ///\r
 /// Byte packed structure for an FP/SSE/SSE2 context.\r
 ///\r
 typedef struct {\r
-  UINT8  Buffer[512];\r
+  UINT8    Buffer[512];\r
 } IA32_FX_BUFFER;\r
 \r
 ///\r
 /// Structures for the 16-bit real mode thunks.\r
 ///\r
 typedef struct {\r
-  UINT32                            Reserved1;\r
-  UINT32                            Reserved2;\r
-  UINT32                            Reserved3;\r
-  UINT32                            Reserved4;\r
-  UINT8                             BL;\r
-  UINT8                             BH;\r
-  UINT16                            Reserved5;\r
-  UINT8                             DL;\r
-  UINT8                             DH;\r
-  UINT16                            Reserved6;\r
-  UINT8                             CL;\r
-  UINT8                             CH;\r
-  UINT16                            Reserved7;\r
-  UINT8                             AL;\r
-  UINT8                             AH;\r
-  UINT16                            Reserved8;\r
+  UINT32    Reserved1;\r
+  UINT32    Reserved2;\r
+  UINT32    Reserved3;\r
+  UINT32    Reserved4;\r
+  UINT8     BL;\r
+  UINT8     BH;\r
+  UINT16    Reserved5;\r
+  UINT8     DL;\r
+  UINT8     DH;\r
+  UINT16    Reserved6;\r
+  UINT8     CL;\r
+  UINT8     CH;\r
+  UINT16    Reserved7;\r
+  UINT8     AL;\r
+  UINT8     AH;\r
+  UINT16    Reserved8;\r
 } IA32_BYTE_REGS;\r
 \r
 typedef struct {\r
-  UINT16                            DI;\r
-  UINT16                            Reserved1;\r
-  UINT16                            SI;\r
-  UINT16                            Reserved2;\r
-  UINT16                            BP;\r
-  UINT16                            Reserved3;\r
-  UINT16                            SP;\r
-  UINT16                            Reserved4;\r
-  UINT16                            BX;\r
-  UINT16                            Reserved5;\r
-  UINT16                            DX;\r
-  UINT16                            Reserved6;\r
-  UINT16                            CX;\r
-  UINT16                            Reserved7;\r
-  UINT16                            AX;\r
-  UINT16                            Reserved8;\r
+  UINT16    DI;\r
+  UINT16    Reserved1;\r
+  UINT16    SI;\r
+  UINT16    Reserved2;\r
+  UINT16    BP;\r
+  UINT16    Reserved3;\r
+  UINT16    SP;\r
+  UINT16    Reserved4;\r
+  UINT16    BX;\r
+  UINT16    Reserved5;\r
+  UINT16    DX;\r
+  UINT16    Reserved6;\r
+  UINT16    CX;\r
+  UINT16    Reserved7;\r
+  UINT16    AX;\r
+  UINT16    Reserved8;\r
 } IA32_WORD_REGS;\r
 \r
 typedef struct {\r
-  UINT32                            EDI;\r
-  UINT32                            ESI;\r
-  UINT32                            EBP;\r
-  UINT32                            ESP;\r
-  UINT32                            EBX;\r
-  UINT32                            EDX;\r
-  UINT32                            ECX;\r
-  UINT32                            EAX;\r
-  UINT16                            DS;\r
-  UINT16                            ES;\r
-  UINT16                            FS;\r
-  UINT16                            GS;\r
-  IA32_EFLAGS32                     EFLAGS;\r
-  UINT32                            Eip;\r
-  UINT16                            CS;\r
-  UINT16                            SS;\r
+  UINT32           EDI;\r
+  UINT32           ESI;\r
+  UINT32           EBP;\r
+  UINT32           ESP;\r
+  UINT32           EBX;\r
+  UINT32           EDX;\r
+  UINT32           ECX;\r
+  UINT32           EAX;\r
+  UINT16           DS;\r
+  UINT16           ES;\r
+  UINT16           FS;\r
+  UINT16           GS;\r
+  IA32_EFLAGS32    EFLAGS;\r
+  UINT32           Eip;\r
+  UINT16           CS;\r
+  UINT16           SS;\r
 } IA32_DWORD_REGS;\r
 \r
 typedef union {\r
-  IA32_DWORD_REGS                   E;\r
-  IA32_WORD_REGS                    X;\r
-  IA32_BYTE_REGS                    H;\r
+  IA32_DWORD_REGS    E;\r
+  IA32_WORD_REGS     X;\r
+  IA32_BYTE_REGS     H;\r
 } IA32_REGISTER_SET;\r
 \r
 ///\r
 /// Byte packed structure for an 16-bit real mode thunks.\r
 ///\r
 typedef struct {\r
-  IA32_REGISTER_SET                 *RealModeState;\r
-  VOID                              *RealModeBuffer;\r
-  UINT32                            RealModeBufferSize;\r
-  UINT32                            ThunkAttributes;\r
+  IA32_REGISTER_SET    *RealModeState;\r
+  VOID                 *RealModeBuffer;\r
+  UINT32               RealModeBufferSize;\r
+  UINT32               ThunkAttributes;\r
 } THUNK_CONTEXT;\r
 \r
-#define THUNK_ATTRIBUTE_BIG_REAL_MODE             0x00000001\r
-#define THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15   0x00000002\r
-#define THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL 0x00000004\r
+#define THUNK_ATTRIBUTE_BIG_REAL_MODE              0x00000001\r
+#define THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15    0x00000002\r
+#define THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL  0x00000004\r
 \r
 ///\r
 /// Type definition for representing labels in NASM source code that allow for\r
@@ -5220,7 +5424,9 @@ typedef struct {
 /// edk2 coding style for function (or pointer-to-function) typedefs. The VOID\r
 /// return type and the VOID argument list are merely artifacts.\r
 ///\r
-typedef VOID (X86_ASSEMBLY_PATCH_LABEL) (VOID);\r
+typedef VOID (X86_ASSEMBLY_PATCH_LABEL) (\r
+  VOID\r
+  );\r
 \r
 /**\r
   Retrieves CPUID information.\r
@@ -5250,14 +5456,13 @@ typedef VOID (X86_ASSEMBLY_PATCH_LABEL) (VOID);
 UINT32\r
 EFIAPI\r
 AsmCpuid (\r
-  IN      UINT32                    Index,\r
-  OUT     UINT32                    *Eax,  OPTIONAL\r
-  OUT     UINT32                    *Ebx,  OPTIONAL\r
-  OUT     UINT32                    *Ecx,  OPTIONAL\r
-  OUT     UINT32                    *Edx   OPTIONAL\r
+  IN      UINT32  Index,\r
+  OUT     UINT32  *Eax   OPTIONAL,\r
+  OUT     UINT32  *Ebx   OPTIONAL,\r
+  OUT     UINT32  *Ecx   OPTIONAL,\r
+  OUT     UINT32  *Edx   OPTIONAL\r
   );\r
 \r
-\r
 /**\r
   Retrieves CPUID information using an extended leaf identifier.\r
 \r
@@ -5293,15 +5498,14 @@ AsmCpuid (
 UINT32\r
 EFIAPI\r
 AsmCpuidEx (\r
-  IN      UINT32                    Index,\r
-  IN      UINT32                    SubIndex,\r
-  OUT     UINT32                    *Eax,  OPTIONAL\r
-  OUT     UINT32                    *Ebx,  OPTIONAL\r
-  OUT     UINT32                    *Ecx,  OPTIONAL\r
-  OUT     UINT32                    *Edx   OPTIONAL\r
+  IN      UINT32  Index,\r
+  IN      UINT32  SubIndex,\r
+  OUT     UINT32  *Eax   OPTIONAL,\r
+  OUT     UINT32  *Ebx   OPTIONAL,\r
+  OUT     UINT32  *Ecx   OPTIONAL,\r
+  OUT     UINT32  *Edx   OPTIONAL\r
   );\r
 \r
-\r
 /**\r
   Set CD bit and clear NW bit of CR0 followed by a WBINVD.\r
 \r
@@ -5315,7 +5519,6 @@ AsmDisableCache (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Perform a WBINVD and clear both the CD and NW bits of CR0.\r
 \r
@@ -5329,7 +5532,6 @@ AsmEnableCache (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Returns the lower 32-bits of a Machine Specific Register(MSR).\r
 \r
@@ -5347,10 +5549,9 @@ AsmEnableCache (
 UINT32\r
 EFIAPI\r
 AsmReadMsr32 (\r
-  IN      UINT32                    Index\r
+  IN      UINT32  Index\r
   );\r
 \r
-\r
 /**\r
   Writes a 32-bit value to a Machine Specific Register(MSR), and returns the value.\r
   The upper 32-bits of the MSR are set to zero.\r
@@ -5371,11 +5572,10 @@ AsmReadMsr32 (
 UINT32\r
 EFIAPI\r
 AsmWriteMsr32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINT32                    Value\r
+  IN      UINT32  Index,\r
+  IN      UINT32  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a 64-bit MSR, performs a bitwise OR on the lower 32-bits, and\r
   writes the result back to the 64-bit MSR.\r
@@ -5398,11 +5598,10 @@ AsmWriteMsr32 (
 UINT32\r
 EFIAPI\r
 AsmMsrOr32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINT32                    OrData\r
+  IN      UINT32  Index,\r
+  IN      UINT32  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a 64-bit MSR, performs a bitwise AND on the lower 32-bits, and writes\r
   the result back to the 64-bit MSR.\r
@@ -5425,11 +5624,10 @@ AsmMsrOr32 (
 UINT32\r
 EFIAPI\r
 AsmMsrAnd32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINT32                    AndData\r
+  IN      UINT32  Index,\r
+  IN      UINT32  AndData\r
   );\r
 \r
-\r
 /**\r
   Reads a 64-bit MSR, performs a bitwise AND followed by a bitwise OR\r
   on the lower 32-bits, and writes the result back to the 64-bit MSR.\r
@@ -5455,12 +5653,11 @@ AsmMsrAnd32 (
 UINT32\r
 EFIAPI\r
 AsmMsrAndThenOr32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINT32                    AndData,\r
-  IN      UINT32                    OrData\r
+  IN      UINT32  Index,\r
+  IN      UINT32  AndData,\r
+  IN      UINT32  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field of an MSR.\r
 \r
@@ -5486,12 +5683,11 @@ AsmMsrAndThenOr32 (
 UINT32\r
 EFIAPI\r
 AsmMsrBitFieldRead32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit\r
   );\r
 \r
-\r
 /**\r
   Writes a bit field to an MSR.\r
 \r
@@ -5520,13 +5716,12 @@ AsmMsrBitFieldRead32 (
 UINT32\r
 EFIAPI\r
 AsmMsrBitFieldWrite32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT32                    Value\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT32  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field in a 64-bit MSR, performs a bitwise OR, and writes the\r
   result back to the bit field in the 64-bit MSR.\r
@@ -5557,13 +5752,12 @@ AsmMsrBitFieldWrite32 (
 UINT32\r
 EFIAPI\r
 AsmMsrBitFieldOr32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT32                    OrData\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT32  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field in a 64-bit MSR, performs a bitwise AND, and writes the\r
   result back to the bit field in the 64-bit MSR.\r
@@ -5594,13 +5788,12 @@ AsmMsrBitFieldOr32 (
 UINT32\r
 EFIAPI\r
 AsmMsrBitFieldAnd32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT32                    AndData\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT32  AndData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field in a 64-bit MSR, performs a bitwise AND followed by a\r
   bitwise OR, and writes the result back to the bit field in the\r
@@ -5635,14 +5828,13 @@ AsmMsrBitFieldAnd32 (
 UINT32\r
 EFIAPI\r
 AsmMsrBitFieldAndThenOr32 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT32                    AndData,\r
-  IN      UINT32                    OrData\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT32  AndData,\r
+  IN      UINT32  OrData\r
   );\r
 \r
-\r
 /**\r
   Returns a 64-bit Machine Specific Register(MSR).\r
 \r
@@ -5660,10 +5852,9 @@ AsmMsrBitFieldAndThenOr32 (
 UINT64\r
 EFIAPI\r
 AsmReadMsr64 (\r
-  IN      UINT32                    Index\r
+  IN      UINT32  Index\r
   );\r
 \r
-\r
 /**\r
   Writes a 64-bit value to a Machine Specific Register(MSR), and returns the\r
   value.\r
@@ -5684,11 +5875,10 @@ AsmReadMsr64 (
 UINT64\r
 EFIAPI\r
 AsmWriteMsr64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINT64                    Value\r
+  IN      UINT32  Index,\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a 64-bit MSR, performs a bitwise OR, and writes the result\r
   back to the 64-bit MSR.\r
@@ -5710,11 +5900,10 @@ AsmWriteMsr64 (
 UINT64\r
 EFIAPI\r
 AsmMsrOr64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINT64                    OrData\r
+  IN      UINT32  Index,\r
+  IN      UINT64  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a 64-bit MSR, performs a bitwise AND, and writes the result back to the\r
   64-bit MSR.\r
@@ -5736,11 +5925,10 @@ AsmMsrOr64 (
 UINT64\r
 EFIAPI\r
 AsmMsrAnd64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINT64                    AndData\r
+  IN      UINT32  Index,\r
+  IN      UINT64  AndData\r
   );\r
 \r
-\r
 /**\r
   Reads a 64-bit MSR, performs a bitwise AND followed by a bitwise\r
   OR, and writes the result back to the 64-bit MSR.\r
@@ -5765,12 +5953,11 @@ AsmMsrAnd64 (
 UINT64\r
 EFIAPI\r
 AsmMsrAndThenOr64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINT64                    AndData,\r
-  IN      UINT64                    OrData\r
+  IN      UINT32  Index,\r
+  IN      UINT64  AndData,\r
+  IN      UINT64  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field of an MSR.\r
 \r
@@ -5796,12 +5983,11 @@ AsmMsrAndThenOr64 (
 UINT64\r
 EFIAPI\r
 AsmMsrBitFieldRead64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit\r
   );\r
 \r
-\r
 /**\r
   Writes a bit field to an MSR.\r
 \r
@@ -5829,13 +6015,12 @@ AsmMsrBitFieldRead64 (
 UINT64\r
 EFIAPI\r
 AsmMsrBitFieldWrite64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT64                    Value\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field in a 64-bit MSR, performs a bitwise OR, and\r
   writes the result back to the bit field in the 64-bit MSR.\r
@@ -5866,13 +6051,12 @@ AsmMsrBitFieldWrite64 (
 UINT64\r
 EFIAPI\r
 AsmMsrBitFieldOr64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT64                    OrData\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT64  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field in a 64-bit MSR, performs a bitwise AND, and writes the\r
   result back to the bit field in the 64-bit MSR.\r
@@ -5903,13 +6087,12 @@ AsmMsrBitFieldOr64 (
 UINT64\r
 EFIAPI\r
 AsmMsrBitFieldAnd64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT64                    AndData\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT64  AndData\r
   );\r
 \r
-\r
 /**\r
   Reads a bit field in a 64-bit MSR, performs a bitwise AND followed by a\r
   bitwise OR, and writes the result back to the bit field in the\r
@@ -5943,14 +6126,13 @@ AsmMsrBitFieldAnd64 (
 UINT64\r
 EFIAPI\r
 AsmMsrBitFieldAndThenOr64 (\r
-  IN      UINT32                    Index,\r
-  IN      UINTN                     StartBit,\r
-  IN      UINTN                     EndBit,\r
-  IN      UINT64                    AndData,\r
-  IN      UINT64                    OrData\r
+  IN      UINT32  Index,\r
+  IN      UINTN   StartBit,\r
+  IN      UINTN   EndBit,\r
+  IN      UINT64  AndData,\r
+  IN      UINT64  OrData\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of the EFLAGS register.\r
 \r
@@ -5967,7 +6149,6 @@ AsmReadEflags (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of the Control Register 0 (CR0).\r
 \r
@@ -5984,7 +6165,6 @@ AsmReadCr0 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of the Control Register 2 (CR2).\r
 \r
@@ -6001,7 +6181,6 @@ AsmReadCr2 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of the Control Register 3 (CR3).\r
 \r
@@ -6018,7 +6197,6 @@ AsmReadCr3 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of the Control Register 4 (CR4).\r
 \r
@@ -6035,7 +6213,6 @@ AsmReadCr4 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Control Register 0 (CR0).\r
 \r
@@ -6053,7 +6230,6 @@ AsmWriteCr0 (
   UINTN  Cr0\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Control Register 2 (CR2).\r
 \r
@@ -6071,7 +6247,6 @@ AsmWriteCr2 (
   UINTN  Cr2\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Control Register 3 (CR3).\r
 \r
@@ -6089,7 +6264,6 @@ AsmWriteCr3 (
   UINTN  Cr3\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Control Register 4 (CR4).\r
 \r
@@ -6107,7 +6281,6 @@ AsmWriteCr4 (
   UINTN  Cr4\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Debug Register 0 (DR0).\r
 \r
@@ -6124,7 +6297,6 @@ AsmReadDr0 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Debug Register 1 (DR1).\r
 \r
@@ -6141,7 +6313,6 @@ AsmReadDr1 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Debug Register 2 (DR2).\r
 \r
@@ -6158,7 +6329,6 @@ AsmReadDr2 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Debug Register 3 (DR3).\r
 \r
@@ -6175,7 +6345,6 @@ AsmReadDr3 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Debug Register 4 (DR4).\r
 \r
@@ -6192,7 +6361,6 @@ AsmReadDr4 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Debug Register 5 (DR5).\r
 \r
@@ -6209,7 +6377,6 @@ AsmReadDr5 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Debug Register 6 (DR6).\r
 \r
@@ -6226,7 +6393,6 @@ AsmReadDr6 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Debug Register 7 (DR7).\r
 \r
@@ -6243,7 +6409,6 @@ AsmReadDr7 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Debug Register 0 (DR0).\r
 \r
@@ -6261,7 +6426,6 @@ AsmWriteDr0 (
   UINTN  Dr0\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Debug Register 1 (DR1).\r
 \r
@@ -6279,7 +6443,6 @@ AsmWriteDr1 (
   UINTN  Dr1\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Debug Register 2 (DR2).\r
 \r
@@ -6297,7 +6460,6 @@ AsmWriteDr2 (
   UINTN  Dr2\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Debug Register 3 (DR3).\r
 \r
@@ -6315,7 +6477,6 @@ AsmWriteDr3 (
   UINTN  Dr3\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Debug Register 4 (DR4).\r
 \r
@@ -6333,7 +6494,6 @@ AsmWriteDr4 (
   UINTN  Dr4\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Debug Register 5 (DR5).\r
 \r
@@ -6351,7 +6511,6 @@ AsmWriteDr5 (
   UINTN  Dr5\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Debug Register 6 (DR6).\r
 \r
@@ -6369,7 +6528,6 @@ AsmWriteDr6 (
   UINTN  Dr6\r
   );\r
 \r
-\r
 /**\r
   Writes a value to Debug Register 7 (DR7).\r
 \r
@@ -6387,7 +6545,6 @@ AsmWriteDr7 (
   UINTN  Dr7\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Code Segment Register (CS).\r
 \r
@@ -6403,7 +6560,6 @@ AsmReadCs (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Data Segment Register (DS).\r
 \r
@@ -6419,7 +6575,6 @@ AsmReadDs (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Extra Segment Register (ES).\r
 \r
@@ -6435,7 +6590,6 @@ AsmReadEs (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of FS Data Segment Register (FS).\r
 \r
@@ -6451,7 +6605,6 @@ AsmReadFs (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of GS Data Segment Register (GS).\r
 \r
@@ -6467,7 +6620,6 @@ AsmReadGs (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Stack Segment Register (SS).\r
 \r
@@ -6483,7 +6635,6 @@ AsmReadSs (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Task Register (TR).\r
 \r
@@ -6499,7 +6650,6 @@ AsmReadTr (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current Global Descriptor Table Register(GDTR) descriptor.\r
 \r
@@ -6514,10 +6664,9 @@ AsmReadTr (
 VOID\r
 EFIAPI\r
 AsmReadGdtr (\r
-  OUT     IA32_DESCRIPTOR           *Gdtr\r
+  OUT     IA32_DESCRIPTOR  *Gdtr\r
   );\r
 \r
-\r
 /**\r
   Writes the current Global Descriptor Table Register (GDTR) descriptor.\r
 \r
@@ -6532,10 +6681,9 @@ AsmReadGdtr (
 VOID\r
 EFIAPI\r
 AsmWriteGdtr (\r
-  IN      CONST IA32_DESCRIPTOR     *Gdtr\r
+  IN      CONST IA32_DESCRIPTOR  *Gdtr\r
   );\r
 \r
-\r
 /**\r
   Reads the current Interrupt Descriptor Table Register(IDTR) descriptor.\r
 \r
@@ -6550,10 +6698,9 @@ AsmWriteGdtr (
 VOID\r
 EFIAPI\r
 AsmReadIdtr (\r
-  OUT     IA32_DESCRIPTOR           *Idtr\r
+  OUT     IA32_DESCRIPTOR  *Idtr\r
   );\r
 \r
-\r
 /**\r
   Writes the current Interrupt Descriptor Table Register(IDTR) descriptor.\r
 \r
@@ -6568,10 +6715,9 @@ AsmReadIdtr (
 VOID\r
 EFIAPI\r
 AsmWriteIdtr (\r
-  IN      CONST IA32_DESCRIPTOR     *Idtr\r
+  IN      CONST IA32_DESCRIPTOR  *Idtr\r
   );\r
 \r
-\r
 /**\r
   Reads the current Local Descriptor Table Register(LDTR) selector.\r
 \r
@@ -6587,7 +6733,6 @@ AsmReadLdtr (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Writes the current Local Descriptor Table Register (LDTR) selector.\r
 \r
@@ -6600,10 +6745,9 @@ AsmReadLdtr (
 VOID\r
 EFIAPI\r
 AsmWriteLdtr (\r
-  IN      UINT16                    Ldtr\r
+  IN      UINT16  Ldtr\r
   );\r
 \r
-\r
 /**\r
   Save the current floating point/SSE/SSE2 context to a buffer.\r
 \r
@@ -6620,10 +6764,9 @@ AsmWriteLdtr (
 VOID\r
 EFIAPI\r
 AsmFxSave (\r
-  OUT     IA32_FX_BUFFER            *Buffer\r
+  OUT     IA32_FX_BUFFER  *Buffer\r
   );\r
 \r
-\r
 /**\r
   Restores the current floating point/SSE/SSE2 context from a buffer.\r
 \r
@@ -6641,10 +6784,9 @@ AsmFxSave (
 VOID\r
 EFIAPI\r
 AsmFxRestore (\r
-  IN      CONST IA32_FX_BUFFER      *Buffer\r
+  IN      CONST IA32_FX_BUFFER  *Buffer\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of 64-bit MMX Register #0 (MM0).\r
 \r
@@ -6660,7 +6802,6 @@ AsmReadMm0 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of 64-bit MMX Register #1 (MM1).\r
 \r
@@ -6676,7 +6817,6 @@ AsmReadMm1 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of 64-bit MMX Register #2 (MM2).\r
 \r
@@ -6692,7 +6832,6 @@ AsmReadMm2 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of 64-bit MMX Register #3 (MM3).\r
 \r
@@ -6708,7 +6847,6 @@ AsmReadMm3 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of 64-bit MMX Register #4 (MM4).\r
 \r
@@ -6724,7 +6862,6 @@ AsmReadMm4 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of 64-bit MMX Register #5 (MM5).\r
 \r
@@ -6740,7 +6877,6 @@ AsmReadMm5 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of 64-bit MMX Register #6 (MM6).\r
 \r
@@ -6756,7 +6892,6 @@ AsmReadMm6 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of 64-bit MMX Register #7 (MM7).\r
 \r
@@ -6772,7 +6907,6 @@ AsmReadMm7 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Writes the current value of 64-bit MMX Register #0 (MM0).\r
 \r
@@ -6785,10 +6919,9 @@ AsmReadMm7 (
 VOID\r
 EFIAPI\r
 AsmWriteMm0 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Writes the current value of 64-bit MMX Register #1 (MM1).\r
 \r
@@ -6801,10 +6934,9 @@ AsmWriteMm0 (
 VOID\r
 EFIAPI\r
 AsmWriteMm1 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Writes the current value of 64-bit MMX Register #2 (MM2).\r
 \r
@@ -6817,10 +6949,9 @@ AsmWriteMm1 (
 VOID\r
 EFIAPI\r
 AsmWriteMm2 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Writes the current value of 64-bit MMX Register #3 (MM3).\r
 \r
@@ -6833,10 +6964,9 @@ AsmWriteMm2 (
 VOID\r
 EFIAPI\r
 AsmWriteMm3 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Writes the current value of 64-bit MMX Register #4 (MM4).\r
 \r
@@ -6849,10 +6979,9 @@ AsmWriteMm3 (
 VOID\r
 EFIAPI\r
 AsmWriteMm4 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Writes the current value of 64-bit MMX Register #5 (MM5).\r
 \r
@@ -6865,10 +6994,9 @@ AsmWriteMm4 (
 VOID\r
 EFIAPI\r
 AsmWriteMm5 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Writes the current value of 64-bit MMX Register #6 (MM6).\r
 \r
@@ -6881,10 +7009,9 @@ AsmWriteMm5 (
 VOID\r
 EFIAPI\r
 AsmWriteMm6 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Writes the current value of 64-bit MMX Register #7 (MM7).\r
 \r
@@ -6897,10 +7024,9 @@ AsmWriteMm6 (
 VOID\r
 EFIAPI\r
 AsmWriteMm7 (\r
-  IN      UINT64                    Value\r
+  IN      UINT64  Value\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of Time Stamp Counter (TSC).\r
 \r
@@ -6916,7 +7042,6 @@ AsmReadTsc (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads the current value of a Performance Counter (PMC).\r
 \r
@@ -6931,10 +7056,9 @@ AsmReadTsc (
 UINT64\r
 EFIAPI\r
 AsmReadPmc (\r
-  IN      UINT32                    Index\r
+  IN      UINT32  Index\r
   );\r
 \r
-\r
 /**\r
   Sets up a monitor buffer that is used by AsmMwait().\r
 \r
@@ -6954,12 +7078,11 @@ AsmReadPmc (
 UINTN\r
 EFIAPI\r
 AsmMonitor (\r
-  IN      UINTN                     Eax,\r
-  IN      UINTN                     Ecx,\r
-  IN      UINTN                     Edx\r
+  IN      UINTN  Eax,\r
+  IN      UINTN  Ecx,\r
+  IN      UINTN  Edx\r
   );\r
 \r
-\r
 /**\r
   Executes an MWAIT instruction.\r
 \r
@@ -6977,11 +7100,10 @@ AsmMonitor (
 UINTN\r
 EFIAPI\r
 AsmMwait (\r
-  IN      UINTN                     Eax,\r
-  IN      UINTN                     Ecx\r
+  IN      UINTN  Eax,\r
+  IN      UINTN  Ecx\r
   );\r
 \r
-\r
 /**\r
   Executes a WBINVD instruction.\r
 \r
@@ -6995,7 +7117,6 @@ AsmWbinvd (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Executes a INVD instruction.\r
 \r
@@ -7009,7 +7130,6 @@ AsmInvd (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Flushes a cache line from all the instruction and data caches within the\r
   coherency domain of the CPU.\r
@@ -7028,10 +7148,9 @@ AsmInvd (
 VOID *\r
 EFIAPI\r
 AsmFlushCacheLine (\r
-  IN      VOID                      *LinearAddress\r
+  IN      VOID  *LinearAddress\r
   );\r
 \r
-\r
 /**\r
   Enables the 32-bit paging mode on the CPU.\r
 \r
@@ -7073,12 +7192,11 @@ VOID
 EFIAPI\r
 AsmEnablePaging32 (\r
   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,\r
-  IN      VOID                      *Context1,  OPTIONAL\r
-  IN      VOID                      *Context2,  OPTIONAL\r
+  IN      VOID                      *Context1   OPTIONAL,\r
+  IN      VOID                      *Context2   OPTIONAL,\r
   IN      VOID                      *NewStack\r
   );\r
 \r
-\r
 /**\r
   Disables the 32-bit paging mode on the CPU.\r
 \r
@@ -7117,12 +7235,11 @@ VOID
 EFIAPI\r
 AsmDisablePaging32 (\r
   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,\r
-  IN      VOID                      *Context1,  OPTIONAL\r
-  IN      VOID                      *Context2,  OPTIONAL\r
+  IN      VOID                      *Context1   OPTIONAL,\r
+  IN      VOID                      *Context2   OPTIONAL,\r
   IN      VOID                      *NewStack\r
   );\r
 \r
-\r
 /**\r
   Enables the 64-bit paging mode on the CPU.\r
 \r
@@ -7158,14 +7275,13 @@ AsmDisablePaging32 (
 VOID\r
 EFIAPI\r
 AsmEnablePaging64 (\r
-  IN      UINT16                    Cs,\r
-  IN      UINT64                    EntryPoint,\r
-  IN      UINT64                    Context1,  OPTIONAL\r
-  IN      UINT64                    Context2,  OPTIONAL\r
-  IN      UINT64                    NewStack\r
+  IN      UINT16  Cs,\r
+  IN      UINT64  EntryPoint,\r
+  IN      UINT64  Context1   OPTIONAL,\r
+  IN      UINT64  Context2   OPTIONAL,\r
+  IN      UINT64  NewStack\r
   );\r
 \r
-\r
 /**\r
   Disables the 64-bit paging mode on the CPU.\r
 \r
@@ -7199,14 +7315,13 @@ AsmEnablePaging64 (
 VOID\r
 EFIAPI\r
 AsmDisablePaging64 (\r
-  IN      UINT16                    Cs,\r
-  IN      UINT32                    EntryPoint,\r
-  IN      UINT32                    Context1,  OPTIONAL\r
-  IN      UINT32                    Context2,  OPTIONAL\r
-  IN      UINT32                    NewStack\r
+  IN      UINT16  Cs,\r
+  IN      UINT32  EntryPoint,\r
+  IN      UINT32  Context1   OPTIONAL,\r
+  IN      UINT32  Context2   OPTIONAL,\r
+  IN      UINT32  NewStack\r
   );\r
 \r
-\r
 //\r
 // 16-bit thunking services\r
 //\r
@@ -7235,11 +7350,10 @@ AsmDisablePaging64 (
 VOID\r
 EFIAPI\r
 AsmGetThunk16Properties (\r
-  OUT     UINT32                    *RealModeBufferSize,\r
-  OUT     UINT32                    *ExtraStackSize\r
+  OUT     UINT32  *RealModeBufferSize,\r
+  OUT     UINT32  *ExtraStackSize\r
   );\r
 \r
-\r
 /**\r
   Prepares all structures a code required to use AsmThunk16().\r
 \r
@@ -7257,10 +7371,9 @@ AsmGetThunk16Properties (
 VOID\r
 EFIAPI\r
 AsmPrepareThunk16 (\r
-  IN OUT  THUNK_CONTEXT             *ThunkContext\r
+  IN OUT  THUNK_CONTEXT  *ThunkContext\r
   );\r
 \r
-\r
 /**\r
   Transfers control to a 16-bit real mode entry point and returns the results.\r
 \r
@@ -7317,10 +7430,9 @@ AsmPrepareThunk16 (
 VOID\r
 EFIAPI\r
 AsmThunk16 (\r
-  IN OUT  THUNK_CONTEXT             *ThunkContext\r
+  IN OUT  THUNK_CONTEXT  *ThunkContext\r
   );\r
 \r
-\r
 /**\r
   Prepares all structures and code for a 16-bit real mode thunk, transfers\r
   control to a 16-bit real mode entry point, and returns the results.\r
@@ -7344,7 +7456,7 @@ AsmThunk16 (
 VOID\r
 EFIAPI\r
 AsmPrepareAndThunk16 (\r
-  IN OUT  THUNK_CONTEXT             *ThunkContext\r
+  IN OUT  THUNK_CONTEXT  *ThunkContext\r
   );\r
 \r
 /**\r
@@ -7361,7 +7473,7 @@ AsmPrepareAndThunk16 (
 BOOLEAN\r
 EFIAPI\r
 AsmRdRand16 (\r
-  OUT     UINT16                    *Rand\r
+  OUT     UINT16  *Rand\r
   );\r
 \r
 /**\r
@@ -7378,7 +7490,7 @@ AsmRdRand16 (
 BOOLEAN\r
 EFIAPI\r
 AsmRdRand32 (\r
-  OUT     UINT32                    *Rand\r
+  OUT     UINT32  *Rand\r
   );\r
 \r
 /**\r
@@ -7395,7 +7507,7 @@ AsmRdRand32 (
 BOOLEAN\r
 EFIAPI\r
 AsmRdRand64  (\r
-  OUT     UINT64                    *Rand\r
+  OUT     UINT64  *Rand\r
   );\r
 \r
 /**\r
@@ -7406,7 +7518,7 @@ AsmRdRand64  (
 VOID\r
 EFIAPI\r
 AsmWriteTr (\r
-  IN UINT16 Selector\r
+  IN UINT16  Selector\r
   );\r
 \r
 /**\r
@@ -7438,6 +7550,29 @@ AsmXGetBv (
   IN UINT32  Index\r
   );\r
 \r
+/**\r
+  Executes a XSETBV instruction to write a 64-bit value to a Extended Control\r
+  Register(XCR), and returns the value.\r
+\r
+  Writes the 64-bit value specified by Value to the XCR specified by Index. The\r
+  64-bit value written to the XCR is returned. No parameter checking is\r
+  performed on Index or Value, and some of these may cause CPU exceptions. The\r
+  caller must either guarantee that Index and Value are valid, or the caller\r
+  must establish proper exception handlers. This function is only available on\r
+  IA-32 and x64.\r
+\r
+  @param  Index The 32-bit XCR index to write.\r
+  @param  Value The 64-bit value to write to the XCR.\r
+\r
+  @return Value\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmXSetBv (\r
+  IN UINT32  Index,\r
+  IN UINT64  Value\r
+  );\r
 \r
 /**\r
   Executes a VMGEXIT instruction (VMMCALL with a REP prefix)\r
@@ -7452,7 +7587,6 @@ AsmVmgExit (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Patch the immediate operand of an IA32 or X64 instruction such that the byte,\r
   word, dword or qword operand is encoded at the end of the instruction's\r
@@ -7490,9 +7624,9 @@ AsmVmgExit (
 VOID\r
 EFIAPI\r
 PatchInstructionX86 (\r
-  OUT X86_ASSEMBLY_PATCH_LABEL *InstructionEnd,\r
-  IN  UINT64                   PatchValue,\r
-  IN  UINTN                    ValueSize\r
+  OUT X86_ASSEMBLY_PATCH_LABEL  *InstructionEnd,\r
+  IN  UINT64                    PatchValue,\r
+  IN  UINTN                     ValueSize\r
   );\r
 \r
 #endif // defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)\r