]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/DxePrintLibPrint2Protocol/PrintLib.c
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Library / DxePrintLibPrint2Protocol / PrintLib.c
index b702170388be22cf60edee2a39fce587aa714c92..21f8a0beab48e3c8d696ae4c444be115a7ff8ea5 100644 (file)
@@ -21,13 +21,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #include <Library/DebugLib.h>\r
 #include <Library/PcdLib.h>\r
 \r
-#define ASSERT_UNICODE_BUFFER(Buffer) ASSERT ((((UINTN) (Buffer)) & 0x01) == 0)\r
+#define ASSERT_UNICODE_BUFFER(Buffer)  ASSERT ((((UINTN) (Buffer)) & 0x01) == 0)\r
 \r
 //\r
 // Safe print checks\r
 //\r
-#define RSIZE_MAX             (PcdGet32 (PcdMaximumUnicodeStringLength))\r
-#define ASCII_RSIZE_MAX       (PcdGet32 (PcdMaximumAsciiStringLength))\r
+#define RSIZE_MAX        (PcdGet32 (PcdMaximumUnicodeStringLength))\r
+#define ASCII_RSIZE_MAX  (PcdGet32 (PcdMaximumAsciiStringLength))\r
 \r
 #define SAFE_PRINT_CONSTRAINT_CHECK(Expression, RetVal)  \\r
   do { \\r
@@ -54,16 +54,16 @@ EFI_PRINT2S_PROTOCOL  *mPrint2SProtocol = NULL;
 EFI_STATUS\r
 EFIAPI\r
 PrintLibConstructor (\r
-  IN EFI_HANDLE                ImageHandle,\r
-  IN EFI_SYSTEM_TABLE          *SystemTable\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
 {\r
-  EFI_STATUS                   Status;\r
+  EFI_STATUS  Status;\r
 \r
   Status = SystemTable->BootServices->LocateProtocol (\r
                                         &gEfiPrint2SProtocolGuid,\r
                                         NULL,\r
-                                        (VOID**) &mPrint2SProtocol\r
+                                        (VOID **)&mPrint2SProtocol\r
                                         );\r
   ASSERT_EFI_ERROR (Status);\r
   ASSERT (mPrint2SProtocol != NULL);\r
@@ -71,7 +71,6 @@ PrintLibConstructor (
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Worker function that converts a VA_LIST to a BASE_LIST based on a Null-terminated\r
   format string.\r
@@ -111,14 +110,16 @@ DxePrintLibPrint2ProtocolVaListToBaseList (
     if (ASCII_RSIZE_MAX != 0) {\r
       SAFE_PRINT_CONSTRAINT_CHECK ((AsciiStrnLenS (Format, ASCII_RSIZE_MAX + 1) <= ASCII_RSIZE_MAX), FALSE);\r
     }\r
+\r
     BytesPerFormatCharacter = 1;\r
-    FormatMask = 0xff;\r
+    FormatMask              = 0xff;\r
   } else {\r
     if (RSIZE_MAX != 0) {\r
       SAFE_PRINT_CONSTRAINT_CHECK ((StrnLenS ((CHAR16 *)Format, RSIZE_MAX + 1) <= RSIZE_MAX), FALSE);\r
     }\r
+\r
     BytesPerFormatCharacter = 2;\r
-    FormatMask = 0xffff;\r
+    FormatMask              = 0xffff;\r
   }\r
 \r
   //\r
@@ -145,41 +146,41 @@ DxePrintLibPrint2ProtocolVaListToBaseList (
         FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
 \r
         switch (FormatCharacter) {\r
-        case '.':\r
-        case '-':\r
-        case '+':\r
-        case ' ':\r
-        case ',':\r
-        case '0':\r
-        case '1':\r
-        case '2':\r
-        case '3':\r
-        case '4':\r
-        case '5':\r
-        case '6':\r
-        case '7':\r
-        case '8':\r
-        case '9':\r
-          break;\r
-        case 'L':\r
-        case 'l':\r
-          Long = TRUE;\r
-          break;\r
-        case '*':\r
-          BASE_ARG (BaseListMarker, UINTN) = VA_ARG (VaListMarker, UINTN);\r
-          break;\r
-        case '\0':\r
-          //\r
-          // Make no output if Format string terminates unexpectedly when\r
-          // looking up for flag, width, precision and type.\r
-          //\r
-          Format -= BytesPerFormatCharacter;\r
+          case '.':\r
+          case '-':\r
+          case '+':\r
+          case ' ':\r
+          case ',':\r
+          case '0':\r
+          case '1':\r
+          case '2':\r
+          case '3':\r
+          case '4':\r
+          case '5':\r
+          case '6':\r
+          case '7':\r
+          case '8':\r
+          case '9':\r
+            break;\r
+          case 'L':\r
+          case 'l':\r
+            Long = TRUE;\r
+            break;\r
+          case '*':\r
+            BASE_ARG (BaseListMarker, UINTN) = VA_ARG (VaListMarker, UINTN);\r
+            break;\r
+          case '\0':\r
+            //\r
+            // Make no output if Format string terminates unexpectedly when\r
+            // looking up for flag, width, precision and type.\r
+            //\r
+            Format -= BytesPerFormatCharacter;\r
           //\r
           // break skipped on purpose.\r
           //\r
-        default:\r
-          Done = TRUE;\r
-          break;\r
+          default:\r
+            Done = TRUE;\r
+            break;\r
         }\r
       }\r
 \r
@@ -187,33 +188,35 @@ DxePrintLibPrint2ProtocolVaListToBaseList (
       // Handle each argument type\r
       //\r
       switch (FormatCharacter) {\r
-      case 'p':\r
-        if (sizeof (VOID *) > 4) {\r
-          Long = TRUE;\r
-        }\r
-      case 'X':\r
-      case 'x':\r
-      case 'u':\r
-      case 'd':\r
-        if (Long) {\r
-          BASE_ARG (BaseListMarker, INT64) = VA_ARG (VaListMarker, INT64);\r
-        } else {\r
-          BASE_ARG (BaseListMarker, int) = VA_ARG (VaListMarker, int);\r
-        }\r
-        break;\r
-      case 's':\r
-      case 'S':\r
-      case 'a':\r
-      case 'g':\r
-      case 't':\r
-        BASE_ARG (BaseListMarker, VOID *) = VA_ARG (VaListMarker, VOID *);\r
-        break;\r
-      case 'c':\r
-        BASE_ARG (BaseListMarker, UINTN) = VA_ARG (VaListMarker, UINTN);\r
-        break;\r
-      case 'r':\r
-        BASE_ARG (BaseListMarker, RETURN_STATUS) = VA_ARG (VaListMarker, RETURN_STATUS);\r
-        break;\r
+        case 'p':\r
+          if (sizeof (VOID *) > 4) {\r
+            Long = TRUE;\r
+          }\r
+\r
+        case 'X':\r
+        case 'x':\r
+        case 'u':\r
+        case 'd':\r
+          if (Long) {\r
+            BASE_ARG (BaseListMarker, INT64) = VA_ARG (VaListMarker, INT64);\r
+          } else {\r
+            BASE_ARG (BaseListMarker, int) = VA_ARG (VaListMarker, int);\r
+          }\r
+\r
+          break;\r
+        case 's':\r
+        case 'S':\r
+        case 'a':\r
+        case 'g':\r
+        case 't':\r
+          BASE_ARG (BaseListMarker, VOID *) = VA_ARG (VaListMarker, VOID *);\r
+          break;\r
+        case 'c':\r
+          BASE_ARG (BaseListMarker, UINTN) = VA_ARG (VaListMarker, UINTN);\r
+          break;\r
+        case 'r':\r
+          BASE_ARG (BaseListMarker, RETURN_STATUS) = VA_ARG (VaListMarker, RETURN_STATUS);\r
+          break;\r
       }\r
     }\r
 \r
@@ -235,6 +238,7 @@ DxePrintLibPrint2ProtocolVaListToBaseList (
     //\r
     FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
   }\r
+\r
   return TRUE;\r
 }\r
 \r
@@ -408,8 +412,8 @@ UnicodeSPrint (
   ...\r
   )\r
 {\r
-  VA_LIST Marker;\r
-  UINTN   NumberOfPrinted;\r
+  VA_LIST  Marker;\r
+  UINTN    NumberOfPrinted;\r
 \r
   VA_START (Marker, FormatString);\r
   NumberOfPrinted = UnicodeVSPrint (StartOfBuffer, BufferSize, FormatString, Marker);\r
@@ -583,8 +587,8 @@ UnicodeSPrintAsciiFormat (
   ...\r
   )\r
 {\r
-  VA_LIST Marker;\r
-  UINTN   NumberOfPrinted;\r
+  VA_LIST  Marker;\r
+  UINTN    NumberOfPrinted;\r
 \r
   VA_START (Marker, FormatString);\r
   NumberOfPrinted = UnicodeVSPrintAsciiFormat (StartOfBuffer, BufferSize, FormatString, Marker);\r
@@ -696,10 +700,10 @@ UnicodeValueToStringS (
 UINTN\r
 EFIAPI\r
 AsciiVSPrint (\r
-  OUT CHAR8         *StartOfBuffer,\r
-  IN  UINTN         BufferSize,\r
-  IN  CONST CHAR8   *FormatString,\r
-  IN  VA_LIST       Marker\r
+  OUT CHAR8        *StartOfBuffer,\r
+  IN  UINTN        BufferSize,\r
+  IN  CONST CHAR8  *FormatString,\r
+  IN  VA_LIST      Marker\r
   )\r
 {\r
   UINT64   BaseListMarker[256 / sizeof (UINT64)];\r
@@ -757,10 +761,10 @@ AsciiVSPrint (
 UINTN\r
 EFIAPI\r
 AsciiBSPrint (\r
-  OUT CHAR8         *StartOfBuffer,\r
-  IN  UINTN         BufferSize,\r
-  IN  CONST CHAR8   *FormatString,\r
-  IN  BASE_LIST     Marker\r
+  OUT CHAR8        *StartOfBuffer,\r
+  IN  UINTN        BufferSize,\r
+  IN  CONST CHAR8  *FormatString,\r
+  IN  BASE_LIST    Marker\r
   )\r
 {\r
   return mPrint2SProtocol->AsciiBSPrint (StartOfBuffer, BufferSize, FormatString, Marker);\r
@@ -813,8 +817,8 @@ AsciiSPrint (
   ...\r
   )\r
 {\r
-  VA_LIST Marker;\r
-  UINTN   NumberOfPrinted;\r
+  VA_LIST  Marker;\r
+  UINTN    NumberOfPrinted;\r
 \r
   VA_START (Marker, FormatString);\r
   NumberOfPrinted = AsciiVSPrint (StartOfBuffer, BufferSize, FormatString, Marker);\r
@@ -988,8 +992,8 @@ AsciiSPrintUnicodeFormat (
   ...\r
   )\r
 {\r
-  VA_LIST Marker;\r
-  UINTN   NumberOfPrinted;\r
+  VA_LIST  Marker;\r
+  UINTN    NumberOfPrinted;\r
 \r
   VA_START (Marker, FormatString);\r
   NumberOfPrinted = AsciiVSPrintUnicodeFormat (StartOfBuffer, BufferSize, FormatString, Marker);\r
@@ -997,7 +1001,6 @@ AsciiSPrintUnicodeFormat (
   return NumberOfPrinted;\r
 }\r
 \r
-\r
 /**\r
   Converts a decimal value to a Null-terminated Ascii string.\r
 \r
@@ -1050,46 +1053,46 @@ AsciiSPrintUnicodeFormat (
 RETURN_STATUS\r
 EFIAPI\r
 AsciiValueToStringS (\r
-  IN OUT CHAR8   *Buffer,\r
-  IN UINTN       BufferSize,\r
-  IN UINTN       Flags,\r
-  IN INT64       Value,\r
-  IN UINTN       Width\r
+  IN OUT CHAR8  *Buffer,\r
+  IN UINTN      BufferSize,\r
+  IN UINTN      Flags,\r
+  IN INT64      Value,\r
+  IN UINTN      Width\r
   )\r
 {\r
   return mPrint2SProtocol->AsciiValueToStringS (Buffer, BufferSize, Flags, Value, Width);\r
 }\r
 \r
-#define PREFIX_SIGN           BIT1\r
-#define PREFIX_BLANK          BIT2\r
-#define LONG_TYPE             BIT4\r
-#define OUTPUT_UNICODE        BIT6\r
-#define FORMAT_UNICODE        BIT8\r
-#define PAD_TO_WIDTH          BIT9\r
-#define ARGUMENT_UNICODE      BIT10\r
-#define PRECISION             BIT11\r
-#define ARGUMENT_REVERSED     BIT12\r
-#define COUNT_ONLY_NO_PRINT   BIT13\r
-#define UNSIGNED_TYPE         BIT14\r
+#define PREFIX_SIGN          BIT1\r
+#define PREFIX_BLANK         BIT2\r
+#define LONG_TYPE            BIT4\r
+#define OUTPUT_UNICODE       BIT6\r
+#define FORMAT_UNICODE       BIT8\r
+#define PAD_TO_WIDTH         BIT9\r
+#define ARGUMENT_UNICODE     BIT10\r
+#define PRECISION            BIT11\r
+#define ARGUMENT_REVERSED    BIT12\r
+#define COUNT_ONLY_NO_PRINT  BIT13\r
+#define UNSIGNED_TYPE        BIT14\r
 \r
 //\r
 // Record date and time information\r
 //\r
 typedef struct {\r
-  UINT16  Year;\r
-  UINT8   Month;\r
-  UINT8   Day;\r
-  UINT8   Hour;\r
-  UINT8   Minute;\r
-  UINT8   Second;\r
-  UINT8   Pad1;\r
-  UINT32  Nanosecond;\r
-  INT16   TimeZone;\r
-  UINT8   Daylight;\r
-  UINT8   Pad2;\r
+  UINT16    Year;\r
+  UINT8     Month;\r
+  UINT8     Day;\r
+  UINT8     Hour;\r
+  UINT8     Minute;\r
+  UINT8     Second;\r
+  UINT8     Pad1;\r
+  UINT32    Nanosecond;\r
+  INT16     TimeZone;\r
+  UINT8     Daylight;\r
+  UINT8     Pad2;\r
 } TIME;\r
 \r
-GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 mHexStr[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};\r
+GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8  mHexStr[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };\r
 \r
 /**\r
   Internal function that convert a number to a string in Buffer.\r
@@ -1117,7 +1120,7 @@ InternalPrintLibValueToString (
   //\r
   *Buffer = 0;\r
   do {\r
-    Value = (INT64)DivU64x32Remainder ((UINT64)Value, (UINT32)Radix, &Remainder);\r
+    Value       = (INT64)DivU64x32Remainder ((UINT64)Value, (UINT32)Radix, &Remainder);\r
     *(++Buffer) = mHexStr[Remainder];\r
   } while (Value != 0);\r
 \r
@@ -1204,10 +1207,10 @@ InternalPrintLibSPrint (
   return NumberOfPrinted;\r
 }\r
 \r
-#define WARNING_STATUS_NUMBER         5\r
-#define ERROR_STATUS_NUMBER           33\r
+#define WARNING_STATUS_NUMBER  5\r
+#define ERROR_STATUS_NUMBER    33\r
 \r
-GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 * CONST mStatusString[] = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 *CONST  mStatusString[] = {\r
   "Success",                      //  RETURN_SUCCESS                = 0\r
   "Warning Unknown Glyph",        //  RETURN_WARN_UNKNOWN_GLYPH     = 1\r
   "Warning Delete Failure",       //  RETURN_WARN_DELETE_FAILURE    = 2\r
@@ -1267,20 +1270,21 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 * CONST mStatusString[] = {
 **/\r
 CHAR8 *\r
 InternalPrintLibFillBuffer (\r
-  OUT CHAR8   *Buffer,\r
-  IN  CHAR8   *EndBuffer,\r
-  IN  INTN    Length,\r
-  IN  UINTN   Character,\r
-  IN  INTN    Increment\r
+  OUT CHAR8  *Buffer,\r
+  IN  CHAR8  *EndBuffer,\r
+  IN  INTN   Length,\r
+  IN  UINTN  Character,\r
+  IN  INTN   Increment\r
   )\r
 {\r
   INTN  Index;\r
 \r
   for (Index = 0; Index < Length && Buffer < EndBuffer; Index++) {\r
-    *Buffer = (CHAR8) Character;\r
+    *Buffer = (CHAR8)Character;\r
     if (Increment != 1) {\r
       *(Buffer + 1) = (CHAR8)(Character >> 8);\r
     }\r
+\r
     Buffer += Increment;\r
   }\r
 \r
@@ -1325,36 +1329,36 @@ InternalPrintLibSPrintMarker (
   IN  BASE_LIST    BaseListMarker  OPTIONAL\r
   )\r
 {\r
-  CHAR8             *OriginalBuffer;\r
-  CHAR8             *EndBuffer;\r
-  CHAR8             ValueBuffer[MAXIMUM_VALUE_CHARACTERS];\r
-  UINT32            BytesPerOutputCharacter;\r
-  UINTN             BytesPerFormatCharacter;\r
-  UINTN             FormatMask;\r
-  UINTN             FormatCharacter;\r
-  UINTN             Width;\r
-  UINTN             Precision;\r
-  INT64             Value;\r
-  CONST CHAR8       *ArgumentString;\r
-  UINTN             Character;\r
-  GUID              *TmpGuid;\r
-  TIME              *TmpTime;\r
-  UINTN             Count;\r
-  UINTN             ArgumentMask;\r
-  INTN              BytesPerArgumentCharacter;\r
-  UINTN             ArgumentCharacter;\r
-  BOOLEAN           Done;\r
-  UINTN             Index;\r
-  CHAR8             Prefix;\r
-  BOOLEAN           ZeroPad;\r
-  BOOLEAN           Comma;\r
-  UINTN             Digits;\r
-  UINTN             Radix;\r
-  RETURN_STATUS     Status;\r
-  UINT32            GuidData1;\r
-  UINT16            GuidData2;\r
-  UINT16            GuidData3;\r
-  UINTN             LengthToReturn;\r
+  CHAR8          *OriginalBuffer;\r
+  CHAR8          *EndBuffer;\r
+  CHAR8          ValueBuffer[MAXIMUM_VALUE_CHARACTERS];\r
+  UINT32         BytesPerOutputCharacter;\r
+  UINTN          BytesPerFormatCharacter;\r
+  UINTN          FormatMask;\r
+  UINTN          FormatCharacter;\r
+  UINTN          Width;\r
+  UINTN          Precision;\r
+  INT64          Value;\r
+  CONST CHAR8    *ArgumentString;\r
+  UINTN          Character;\r
+  GUID           *TmpGuid;\r
+  TIME           *TmpTime;\r
+  UINTN          Count;\r
+  UINTN          ArgumentMask;\r
+  INTN           BytesPerArgumentCharacter;\r
+  UINTN          ArgumentCharacter;\r
+  BOOLEAN        Done;\r
+  UINTN          Index;\r
+  CHAR8          Prefix;\r
+  BOOLEAN        ZeroPad;\r
+  BOOLEAN        Comma;\r
+  UINTN          Digits;\r
+  UINTN          Radix;\r
+  RETURN_STATUS  Status;\r
+  UINT32         GuidData1;\r
+  UINT16         GuidData2;\r
+  UINT16         GuidData3;\r
+  UINTN          LengthToReturn;\r
 \r
   //\r
   // If you change this code be sure to match the 2 versions of this function.\r
@@ -1386,11 +1390,13 @@ InternalPrintLibSPrintMarker (
     if (RSIZE_MAX != 0) {\r
       SAFE_PRINT_CONSTRAINT_CHECK ((BufferSize <= RSIZE_MAX), 0);\r
     }\r
+\r
     BytesPerOutputCharacter = 2;\r
   } else {\r
     if (ASCII_RSIZE_MAX != 0) {\r
       SAFE_PRINT_CONSTRAINT_CHECK ((BufferSize <= ASCII_RSIZE_MAX), 0);\r
     }\r
+\r
     BytesPerOutputCharacter = 1;\r
   }\r
 \r
@@ -1402,14 +1408,16 @@ InternalPrintLibSPrintMarker (
     if (RSIZE_MAX != 0) {\r
       SAFE_PRINT_CONSTRAINT_CHECK ((StrnLenS ((CHAR16 *)Format, RSIZE_MAX + 1) <= RSIZE_MAX), 0);\r
     }\r
+\r
     BytesPerFormatCharacter = 2;\r
-    FormatMask = 0xffff;\r
+    FormatMask              = 0xffff;\r
   } else {\r
     if (ASCII_RSIZE_MAX != 0) {\r
       SAFE_PRINT_CONSTRAINT_CHECK ((AsciiStrnLenS (Format, ASCII_RSIZE_MAX + 1) <= ASCII_RSIZE_MAX), 0);\r
     }\r
+\r
     BytesPerFormatCharacter = 1;\r
-    FormatMask = 0xff;\r
+    FormatMask              = 0xff;\r
   }\r
 \r
   if ((Flags & COUNT_ONLY_NO_PRINT) != 0) {\r
@@ -1426,7 +1434,7 @@ InternalPrintLibSPrintMarker (
   }\r
 \r
   LengthToReturn = 0;\r
-  EndBuffer = NULL;\r
+  EndBuffer      = NULL;\r
   OriginalBuffer = NULL;\r
 \r
   //\r
@@ -1454,10 +1462,11 @@ InternalPrintLibSPrintMarker (
     if ((Buffer != NULL) && (Buffer >= EndBuffer)) {\r
       break;\r
     }\r
+\r
     //\r
     // Clear all the flag bits except those that may have been passed in\r
     //\r
-    Flags &= (UINTN) (OUTPUT_UNICODE | FORMAT_UNICODE | COUNT_ONLY_NO_PRINT);\r
+    Flags &= (UINTN)(OUTPUT_UNICODE | FORMAT_UNICODE | COUNT_ONLY_NO_PRINT);\r
 \r
     //\r
     // Set the default width to zero, and the default precision to 1\r
@@ -1471,344 +1480,415 @@ InternalPrintLibSPrintMarker (
     Digits    = 0;\r
 \r
     switch (FormatCharacter) {\r
-    case '%':\r
-      //\r
-      // Parse Flags and Width\r
-      //\r
-      for (Done = FALSE; !Done; ) {\r
-        Format += BytesPerFormatCharacter;\r
-        FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
+      case '%':\r
+        //\r
+        // Parse Flags and Width\r
+        //\r
+        for (Done = FALSE; !Done; ) {\r
+          Format         += BytesPerFormatCharacter;\r
+          FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
+          switch (FormatCharacter) {\r
+            case '.':\r
+              Flags |= PRECISION;\r
+              break;\r
+            case '-':\r
+              Flags |= LEFT_JUSTIFY;\r
+              break;\r
+            case '+':\r
+              Flags |= PREFIX_SIGN;\r
+              break;\r
+            case ' ':\r
+              Flags |= PREFIX_BLANK;\r
+              break;\r
+            case ',':\r
+              Flags |= COMMA_TYPE;\r
+              break;\r
+            case 'L':\r
+            case 'l':\r
+              Flags |= LONG_TYPE;\r
+              break;\r
+            case '*':\r
+              if ((Flags & PRECISION) == 0) {\r
+                Flags |= PAD_TO_WIDTH;\r
+                if (BaseListMarker == NULL) {\r
+                  Width = VA_ARG (VaListMarker, UINTN);\r
+                } else {\r
+                  Width = BASE_ARG (BaseListMarker, UINTN);\r
+                }\r
+              } else {\r
+                if (BaseListMarker == NULL) {\r
+                  Precision = VA_ARG (VaListMarker, UINTN);\r
+                } else {\r
+                  Precision = BASE_ARG (BaseListMarker, UINTN);\r
+                }\r
+              }\r
+\r
+              break;\r
+            case '0':\r
+              if ((Flags & PRECISION) == 0) {\r
+                Flags |= PREFIX_ZERO;\r
+              }\r
+\r
+            case '1':\r
+            case '2':\r
+            case '3':\r
+            case '4':\r
+            case '5':\r
+            case '6':\r
+            case '7':\r
+            case '8':\r
+            case '9':\r
+              for (Count = 0; ((FormatCharacter >= '0') &&  (FormatCharacter <= '9')); ) {\r
+                Count           = (Count * 10) + FormatCharacter - '0';\r
+                Format         += BytesPerFormatCharacter;\r
+                FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
+              }\r
+\r
+              Format -= BytesPerFormatCharacter;\r
+              if ((Flags & PRECISION) == 0) {\r
+                Flags |= PAD_TO_WIDTH;\r
+                Width  = Count;\r
+              } else {\r
+                Precision = Count;\r
+              }\r
+\r
+              break;\r
+\r
+            case '\0':\r
+              //\r
+              // Make no output if Format string terminates unexpectedly when\r
+              // looking up for flag, width, precision and type.\r
+              //\r
+              Format   -= BytesPerFormatCharacter;\r
+              Precision = 0;\r
+            //\r
+            // break skipped on purpose.\r
+            //\r
+            default:\r
+              Done = TRUE;\r
+              break;\r
+          }\r
+        }\r
+\r
+        //\r
+        // Handle each argument type\r
+        //\r
         switch (FormatCharacter) {\r
-        case '.':\r
-          Flags |= PRECISION;\r
-          break;\r
-        case '-':\r
-          Flags |= LEFT_JUSTIFY;\r
-          break;\r
-        case '+':\r
-          Flags |= PREFIX_SIGN;\r
-          break;\r
-        case ' ':\r
-          Flags |= PREFIX_BLANK;\r
-          break;\r
-        case ',':\r
-          Flags |= COMMA_TYPE;\r
-          break;\r
-        case 'L':\r
-        case 'l':\r
-          Flags |= LONG_TYPE;\r
-          break;\r
-        case '*':\r
-          if ((Flags & PRECISION) == 0) {\r
-            Flags |= PAD_TO_WIDTH;\r
-            if (BaseListMarker == NULL) {\r
-              Width = VA_ARG (VaListMarker, UINTN);\r
-            } else {\r
-              Width = BASE_ARG (BaseListMarker, UINTN);\r
-            }\r
-          } else {\r
-            if (BaseListMarker == NULL) {\r
-              Precision = VA_ARG (VaListMarker, UINTN);\r
-            } else {\r
-              Precision = BASE_ARG (BaseListMarker, UINTN);\r
+          case 'p':\r
+            //\r
+            // Flag space, +, 0, L & l are invalid for type p.\r
+            //\r
+            Flags &= ~((UINTN)(PREFIX_BLANK | PREFIX_SIGN | PREFIX_ZERO | LONG_TYPE));\r
+            if (sizeof (VOID *) > 4) {\r
+              Flags |= LONG_TYPE;\r
             }\r
-          }\r
-          break;\r
-        case '0':\r
-          if ((Flags & PRECISION) == 0) {\r
-            Flags |= PREFIX_ZERO;\r
-          }\r
-        case '1':\r
-        case '2':\r
-        case '3':\r
-        case '4':\r
-        case '5':\r
-        case '6':\r
-        case '7':\r
-        case '8':\r
-        case '9':\r
-          for (Count = 0; ((FormatCharacter >= '0') &&  (FormatCharacter <= '9')); ){\r
-            Count = (Count * 10) + FormatCharacter - '0';\r
-            Format += BytesPerFormatCharacter;\r
-            FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
-          }\r
-          Format -= BytesPerFormatCharacter;\r
-          if ((Flags & PRECISION) == 0) {\r
-            Flags |= PAD_TO_WIDTH;\r
-            Width = Count;\r
-          } else {\r
-            Precision = Count;\r
-          }\r
-          break;\r
 \r
-        case '\0':\r
           //\r
-          // Make no output if Format string terminates unexpectedly when\r
-          // looking up for flag, width, precision and type.\r
+          // break skipped on purpose\r
           //\r
-          Format   -= BytesPerFormatCharacter;\r
-          Precision = 0;\r
+          case 'X':\r
+            Flags |= PREFIX_ZERO;\r
           //\r
-          // break skipped on purpose.\r
+          // break skipped on purpose\r
           //\r
-        default:\r
-          Done = TRUE;\r
-          break;\r
-        }\r
-      }\r
+          case 'x':\r
+            Flags |= RADIX_HEX;\r
+          //\r
+          // break skipped on purpose\r
+          //\r
+          case 'u':\r
+            if ((Flags & RADIX_HEX) == 0) {\r
+              Flags &= ~((UINTN)(PREFIX_SIGN));\r
+              Flags |= UNSIGNED_TYPE;\r
+            }\r
 \r
-      //\r
-      // Handle each argument type\r
-      //\r
-      switch (FormatCharacter) {\r
-      case 'p':\r
-        //\r
-        // Flag space, +, 0, L & l are invalid for type p.\r
-        //\r
-        Flags &= ~((UINTN) (PREFIX_BLANK | PREFIX_SIGN | PREFIX_ZERO | LONG_TYPE));\r
-        if (sizeof (VOID *) > 4) {\r
-          Flags |= LONG_TYPE;\r
-        }\r
-        //\r
-        // break skipped on purpose\r
-        //\r
-      case 'X':\r
-        Flags |= PREFIX_ZERO;\r
-        //\r
-        // break skipped on purpose\r
-        //\r
-      case 'x':\r
-        Flags |= RADIX_HEX;\r
-        //\r
-        // break skipped on purpose\r
-        //\r
-      case 'u':\r
-        if ((Flags & RADIX_HEX) == 0) {\r
-          Flags &= ~((UINTN) (PREFIX_SIGN));\r
-          Flags |= UNSIGNED_TYPE;\r
-        }\r
-        //\r
-        // break skipped on purpose\r
-        //\r
-      case 'd':\r
-        if ((Flags & LONG_TYPE) == 0) {\r
           //\r
-          // 'd', 'u', 'x', and 'X' that are not preceded by 'l' or 'L' are assumed to be type "int".\r
-          // This assumption is made so the format string definition is compatible with the ANSI C\r
-          // Specification for formatted strings.  It is recommended that the Base Types be used\r
-          // everywhere, but in this one case, compliance with ANSI C is more important, and\r
-          // provides an implementation that is compatible with that largest possible set of CPU\r
-          // architectures.  This is why the type "int" is used in this one case.\r
+          // break skipped on purpose\r
           //\r
-          if (BaseListMarker == NULL) {\r
-            Value = VA_ARG (VaListMarker, int);\r
-          } else {\r
-            Value = BASE_ARG (BaseListMarker, int);\r
-          }\r
-        } else {\r
-          if (BaseListMarker == NULL) {\r
-            Value = VA_ARG (VaListMarker, INT64);\r
-          } else {\r
-            Value = BASE_ARG (BaseListMarker, INT64);\r
-          }\r
-        }\r
-        if ((Flags & PREFIX_BLANK) != 0) {\r
-          Prefix = ' ';\r
-        }\r
-        if ((Flags & PREFIX_SIGN) != 0) {\r
-          Prefix = '+';\r
-        }\r
-        if ((Flags & COMMA_TYPE) != 0) {\r
-          Comma = TRUE;\r
-        }\r
-        if ((Flags & RADIX_HEX) == 0) {\r
-          Radix = 10;\r
-          if (Comma) {\r
-            Flags &= ~((UINTN) PREFIX_ZERO);\r
-            Precision = 1;\r
-          }\r
-          if (Value < 0 && (Flags & UNSIGNED_TYPE) == 0) {\r
-            Flags |= PREFIX_SIGN;\r
-            Prefix = '-';\r
-            Value = -Value;\r
-          } else if ((Flags & UNSIGNED_TYPE) != 0 && (Flags & LONG_TYPE) == 0) {\r
+          case 'd':\r
+            if ((Flags & LONG_TYPE) == 0) {\r
+              //\r
+              // 'd', 'u', 'x', and 'X' that are not preceded by 'l' or 'L' are assumed to be type "int".\r
+              // This assumption is made so the format string definition is compatible with the ANSI C\r
+              // Specification for formatted strings.  It is recommended that the Base Types be used\r
+              // everywhere, but in this one case, compliance with ANSI C is more important, and\r
+              // provides an implementation that is compatible with that largest possible set of CPU\r
+              // architectures.  This is why the type "int" is used in this one case.\r
+              //\r
+              if (BaseListMarker == NULL) {\r
+                Value = VA_ARG (VaListMarker, int);\r
+              } else {\r
+                Value = BASE_ARG (BaseListMarker, int);\r
+              }\r
+            } else {\r
+              if (BaseListMarker == NULL) {\r
+                Value = VA_ARG (VaListMarker, INT64);\r
+              } else {\r
+                Value = BASE_ARG (BaseListMarker, INT64);\r
+              }\r
+            }\r
+\r
+            if ((Flags & PREFIX_BLANK) != 0) {\r
+              Prefix = ' ';\r
+            }\r
+\r
+            if ((Flags & PREFIX_SIGN) != 0) {\r
+              Prefix = '+';\r
+            }\r
+\r
+            if ((Flags & COMMA_TYPE) != 0) {\r
+              Comma = TRUE;\r
+            }\r
+\r
+            if ((Flags & RADIX_HEX) == 0) {\r
+              Radix = 10;\r
+              if (Comma) {\r
+                Flags    &= ~((UINTN)PREFIX_ZERO);\r
+                Precision = 1;\r
+              }\r
+\r
+              if ((Value < 0) && ((Flags & UNSIGNED_TYPE) == 0)) {\r
+                Flags |= PREFIX_SIGN;\r
+                Prefix = '-';\r
+                Value  = -Value;\r
+              } else if (((Flags & UNSIGNED_TYPE) != 0) && ((Flags & LONG_TYPE) == 0)) {\r
+                //\r
+                // 'd', 'u', 'x', and 'X' that are not preceded by 'l' or 'L' are assumed to be type "int".\r
+                // This assumption is made so the format string definition is compatible with the ANSI C\r
+                // Specification for formatted strings.  It is recommended that the Base Types be used\r
+                // everywhere, but in this one case, compliance with ANSI C is more important, and\r
+                // provides an implementation that is compatible with that largest possible set of CPU\r
+                // architectures.  This is why the type "unsigned int" is used in this one case.\r
+                //\r
+                Value = (unsigned int)Value;\r
+              }\r
+            } else {\r
+              Radix = 16;\r
+              Comma = FALSE;\r
+              if (((Flags & LONG_TYPE) == 0) && (Value < 0)) {\r
+                //\r
+                // 'd', 'u', 'x', and 'X' that are not preceded by 'l' or 'L' are assumed to be type "int".\r
+                // This assumption is made so the format string definition is compatible with the ANSI C\r
+                // Specification for formatted strings.  It is recommended that the Base Types be used\r
+                // everywhere, but in this one case, compliance with ANSI C is more important, and\r
+                // provides an implementation that is compatible with that largest possible set of CPU\r
+                // architectures.  This is why the type "unsigned int" is used in this one case.\r
+                //\r
+                Value = (unsigned int)Value;\r
+              }\r
+            }\r
+\r
             //\r
-            // 'd', 'u', 'x', and 'X' that are not preceded by 'l' or 'L' are assumed to be type "int".\r
-            // This assumption is made so the format string definition is compatible with the ANSI C\r
-            // Specification for formatted strings.  It is recommended that the Base Types be used\r
-            // everywhere, but in this one case, compliance with ANSI C is more important, and\r
-            // provides an implementation that is compatible with that largest possible set of CPU\r
-            // architectures.  This is why the type "unsigned int" is used in this one case.\r
+            // Convert Value to a reversed string\r
             //\r
-            Value = (unsigned int)Value;\r
-          }\r
-        } else {\r
-          Radix = 16;\r
-          Comma = FALSE;\r
-          if ((Flags & LONG_TYPE) == 0 && Value < 0) {\r
+            Count = InternalPrintLibValueToString (ValueBuffer, Value, Radix) - ValueBuffer;\r
+            if ((Value == 0) && (Precision == 0)) {\r
+              Count = 0;\r
+            }\r
+\r
+            ArgumentString = (CHAR8 *)ValueBuffer + Count;\r
+\r
+            Digits = Count % 3;\r
+            if (Digits != 0) {\r
+              Digits = 3 - Digits;\r
+            }\r
+\r
+            if (Comma && (Count != 0)) {\r
+              Count += ((Count - 1) / 3);\r
+            }\r
+\r
+            if (Prefix != 0) {\r
+              Count++;\r
+              Precision++;\r
+            }\r
+\r
+            Flags  |= ARGUMENT_REVERSED;\r
+            ZeroPad = TRUE;\r
+            if ((Flags & PREFIX_ZERO) != 0) {\r
+              if ((Flags & LEFT_JUSTIFY) == 0) {\r
+                if ((Flags & PAD_TO_WIDTH) != 0) {\r
+                  if ((Flags & PRECISION) == 0) {\r
+                    Precision = Width;\r
+                  }\r
+                }\r
+              }\r
+            }\r
+\r
+            break;\r
+\r
+          case 's':\r
+          case 'S':\r
+            Flags |= ARGUMENT_UNICODE;\r
+          //\r
+          // break skipped on purpose\r
+          //\r
+          case 'a':\r
+            if (BaseListMarker == NULL) {\r
+              ArgumentString = VA_ARG (VaListMarker, CHAR8 *);\r
+            } else {\r
+              ArgumentString = BASE_ARG (BaseListMarker, CHAR8 *);\r
+            }\r
+\r
+            if (ArgumentString == NULL) {\r
+              Flags         &= (~(UINTN)ARGUMENT_UNICODE);\r
+              ArgumentString = "<null string>";\r
+            }\r
+\r
             //\r
-            // 'd', 'u', 'x', and 'X' that are not preceded by 'l' or 'L' are assumed to be type "int".\r
-            // This assumption is made so the format string definition is compatible with the ANSI C\r
-            // Specification for formatted strings.  It is recommended that the Base Types be used\r
-            // everywhere, but in this one case, compliance with ANSI C is more important, and\r
-            // provides an implementation that is compatible with that largest possible set of CPU\r
-            // architectures.  This is why the type "unsigned int" is used in this one case.\r
+            // Set the default precision for string to be zero if not specified.\r
             //\r
-            Value = (unsigned int)Value;\r
-          }\r
-        }\r
-        //\r
-        // Convert Value to a reversed string\r
-        //\r
-        Count = InternalPrintLibValueToString (ValueBuffer, Value, Radix) - ValueBuffer;\r
-        if (Value == 0 && Precision == 0) {\r
-          Count = 0;\r
-        }\r
-        ArgumentString = (CHAR8 *)ValueBuffer + Count;\r
+            if ((Flags & PRECISION) == 0) {\r
+              Precision = 0;\r
+            }\r
 \r
-        Digits = Count % 3;\r
-        if (Digits != 0) {\r
-          Digits = 3 - Digits;\r
-        }\r
-        if (Comma && Count != 0) {\r
-          Count += ((Count - 1) / 3);\r
-        }\r
-        if (Prefix != 0) {\r
-          Count++;\r
-          Precision++;\r
-        }\r
-        Flags |= ARGUMENT_REVERSED;\r
-        ZeroPad = TRUE;\r
-        if ((Flags & PREFIX_ZERO) != 0) {\r
-          if ((Flags & LEFT_JUSTIFY) == 0) {\r
-            if ((Flags & PAD_TO_WIDTH) != 0) {\r
-              if ((Flags & PRECISION) == 0) {\r
-                Precision = Width;\r
+            break;\r
+\r
+          case 'c':\r
+            if (BaseListMarker == NULL) {\r
+              Character = VA_ARG (VaListMarker, UINTN) & 0xffff;\r
+            } else {\r
+              Character = BASE_ARG (BaseListMarker, UINTN) & 0xffff;\r
+            }\r
+\r
+            ArgumentString = (CHAR8 *)&Character;\r
+            Flags         |= ARGUMENT_UNICODE;\r
+            break;\r
+\r
+          case 'g':\r
+            if (BaseListMarker == NULL) {\r
+              TmpGuid = VA_ARG (VaListMarker, GUID *);\r
+            } else {\r
+              TmpGuid = BASE_ARG (BaseListMarker, GUID *);\r
+            }\r
+\r
+            if (TmpGuid == NULL) {\r
+              ArgumentString = "<null guid>";\r
+            } else {\r
+              GuidData1 = ReadUnaligned32 (&(TmpGuid->Data1));\r
+              GuidData2 = ReadUnaligned16 (&(TmpGuid->Data2));\r
+              GuidData3 = ReadUnaligned16 (&(TmpGuid->Data3));\r
+              InternalPrintLibSPrint (\r
+                ValueBuffer,\r
+                MAXIMUM_VALUE_CHARACTERS,\r
+                0,\r
+                "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",\r
+                GuidData1,\r
+                GuidData2,\r
+                GuidData3,\r
+                TmpGuid->Data4[0],\r
+                TmpGuid->Data4[1],\r
+                TmpGuid->Data4[2],\r
+                TmpGuid->Data4[3],\r
+                TmpGuid->Data4[4],\r
+                TmpGuid->Data4[5],\r
+                TmpGuid->Data4[6],\r
+                TmpGuid->Data4[7]\r
+                );\r
+              ArgumentString = ValueBuffer;\r
+            }\r
+\r
+            break;\r
+\r
+          case 't':\r
+            if (BaseListMarker == NULL) {\r
+              TmpTime = VA_ARG (VaListMarker, TIME *);\r
+            } else {\r
+              TmpTime = BASE_ARG (BaseListMarker, TIME *);\r
+            }\r
+\r
+            if (TmpTime == NULL) {\r
+              ArgumentString = "<null time>";\r
+            } else {\r
+              InternalPrintLibSPrint (\r
+                ValueBuffer,\r
+                MAXIMUM_VALUE_CHARACTERS,\r
+                0,\r
+                "%02d/%02d/%04d  %02d:%02d",\r
+                TmpTime->Month,\r
+                TmpTime->Day,\r
+                TmpTime->Year,\r
+                TmpTime->Hour,\r
+                TmpTime->Minute\r
+                );\r
+              ArgumentString = ValueBuffer;\r
+            }\r
+\r
+            break;\r
+\r
+          case 'r':\r
+            if (BaseListMarker == NULL) {\r
+              Status = VA_ARG (VaListMarker, RETURN_STATUS);\r
+            } else {\r
+              Status = BASE_ARG (BaseListMarker, RETURN_STATUS);\r
+            }\r
+\r
+            ArgumentString = ValueBuffer;\r
+            if (RETURN_ERROR (Status)) {\r
+              //\r
+              // Clear error bit\r
+              //\r
+              Index = Status & ~MAX_BIT;\r
+              if ((Index > 0) && (Index <= ERROR_STATUS_NUMBER)) {\r
+                ArgumentString = mStatusString[Index + WARNING_STATUS_NUMBER];\r
+              }\r
+            } else {\r
+              Index = Status;\r
+              if (Index <= WARNING_STATUS_NUMBER) {\r
+                ArgumentString = mStatusString[Index];\r
               }\r
             }\r
-          }\r
-        }\r
-        break;\r
 \r
-      case 's':\r
-      case 'S':\r
-        Flags |= ARGUMENT_UNICODE;\r
-        //\r
-        // break skipped on purpose\r
-        //\r
-      case 'a':\r
-        if (BaseListMarker == NULL) {\r
-          ArgumentString = VA_ARG (VaListMarker, CHAR8 *);\r
-        } else {\r
-          ArgumentString = BASE_ARG (BaseListMarker, CHAR8 *);\r
-        }\r
-        if (ArgumentString == NULL) {\r
-          Flags &= (~(UINTN)ARGUMENT_UNICODE);\r
-          ArgumentString = "<null string>";\r
-        }\r
-        //\r
-        // Set the default precision for string to be zero if not specified.\r
-        //\r
-        if ((Flags & PRECISION) == 0) {\r
-          Precision = 0;\r
-        }\r
-        break;\r
+            if (ArgumentString == ValueBuffer) {\r
+              InternalPrintLibSPrint ((CHAR8 *)ValueBuffer, MAXIMUM_VALUE_CHARACTERS, 0, "%08X", Status);\r
+            }\r
 \r
-      case 'c':\r
-        if (BaseListMarker == NULL) {\r
-          Character = VA_ARG (VaListMarker, UINTN) & 0xffff;\r
-        } else {\r
-          Character = BASE_ARG (BaseListMarker, UINTN) & 0xffff;\r
-        }\r
-        ArgumentString = (CHAR8 *)&Character;\r
-        Flags |= ARGUMENT_UNICODE;\r
-        break;\r
+            break;\r
 \r
-      case 'g':\r
-        if (BaseListMarker == NULL) {\r
-          TmpGuid = VA_ARG (VaListMarker, GUID *);\r
-        } else {\r
-          TmpGuid = BASE_ARG (BaseListMarker, GUID *);\r
-        }\r
-        if (TmpGuid == NULL) {\r
-          ArgumentString = "<null guid>";\r
-        } else {\r
-          GuidData1 = ReadUnaligned32 (&(TmpGuid->Data1));\r
-          GuidData2 = ReadUnaligned16 (&(TmpGuid->Data2));\r
-          GuidData3 = ReadUnaligned16 (&(TmpGuid->Data3));\r
-          InternalPrintLibSPrint (\r
-            ValueBuffer,\r
-            MAXIMUM_VALUE_CHARACTERS,\r
-            0,\r
-            "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",\r
-            GuidData1,\r
-            GuidData2,\r
-            GuidData3,\r
-            TmpGuid->Data4[0],\r
-            TmpGuid->Data4[1],\r
-            TmpGuid->Data4[2],\r
-            TmpGuid->Data4[3],\r
-            TmpGuid->Data4[4],\r
-            TmpGuid->Data4[5],\r
-            TmpGuid->Data4[6],\r
-            TmpGuid->Data4[7]\r
-            );\r
-          ArgumentString = ValueBuffer;\r
-        }\r
-        break;\r
+          case '\r':\r
+            Format         += BytesPerFormatCharacter;\r
+            FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
+            if (FormatCharacter == '\n') {\r
+              //\r
+              // Translate '\r\n' to '\r\n'\r
+              //\r
+              ArgumentString = "\r\n";\r
+            } else {\r
+              //\r
+              // Translate '\r' to '\r'\r
+              //\r
+              ArgumentString = "\r";\r
+              Format        -= BytesPerFormatCharacter;\r
+            }\r
 \r
-      case 't':\r
-        if (BaseListMarker == NULL) {\r
-          TmpTime = VA_ARG (VaListMarker, TIME *);\r
-        } else {\r
-          TmpTime = BASE_ARG (BaseListMarker, TIME *);\r
-        }\r
-        if (TmpTime == NULL) {\r
-          ArgumentString = "<null time>";\r
-        } else {\r
-          InternalPrintLibSPrint (\r
-            ValueBuffer,\r
-            MAXIMUM_VALUE_CHARACTERS,\r
-            0,\r
-            "%02d/%02d/%04d  %02d:%02d",\r
-            TmpTime->Month,\r
-            TmpTime->Day,\r
-            TmpTime->Year,\r
-            TmpTime->Hour,\r
-            TmpTime->Minute\r
-            );\r
-          ArgumentString = ValueBuffer;\r
-        }\r
-        break;\r
+            break;\r
 \r
-      case 'r':\r
-        if (BaseListMarker == NULL) {\r
-          Status = VA_ARG (VaListMarker, RETURN_STATUS);\r
-        } else {\r
-          Status = BASE_ARG (BaseListMarker, RETURN_STATUS);\r
-        }\r
-        ArgumentString = ValueBuffer;\r
-        if (RETURN_ERROR (Status)) {\r
-          //\r
-          // Clear error bit\r
-          //\r
-          Index = Status & ~MAX_BIT;\r
-          if (Index > 0 && Index <= ERROR_STATUS_NUMBER) {\r
-            ArgumentString = mStatusString [Index + WARNING_STATUS_NUMBER];\r
-          }\r
-        } else {\r
-          Index = Status;\r
-          if (Index <= WARNING_STATUS_NUMBER) {\r
-            ArgumentString = mStatusString [Index];\r
-          }\r
-        }\r
-        if (ArgumentString == ValueBuffer) {\r
-          InternalPrintLibSPrint ((CHAR8 *) ValueBuffer, MAXIMUM_VALUE_CHARACTERS, 0, "%08X", Status);\r
+          case '\n':\r
+            //\r
+            // Translate '\n' to '\r\n' and '\n\r' to '\r\n'\r
+            //\r
+            ArgumentString  = "\r\n";\r
+            Format         += BytesPerFormatCharacter;\r
+            FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
+            if (FormatCharacter != '\r') {\r
+              Format -= BytesPerFormatCharacter;\r
+            }\r
+\r
+            break;\r
+\r
+          case '%':\r
+          default:\r
+            //\r
+            // if the type is '%' or unknown, then print it to the screen\r
+            //\r
+            ArgumentString = (CHAR8 *)&FormatCharacter;\r
+            Flags         |= ARGUMENT_UNICODE;\r
+            break;\r
         }\r
+\r
         break;\r
 \r
       case '\r':\r
-        Format += BytesPerFormatCharacter;\r
+        Format         += BytesPerFormatCharacter;\r
         FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
         if (FormatCharacter == '\n') {\r
           //\r
@@ -1820,78 +1900,41 @@ InternalPrintLibSPrintMarker (
           // Translate '\r' to '\r'\r
           //\r
           ArgumentString = "\r";\r
-          Format   -= BytesPerFormatCharacter;\r
+          Format        -= BytesPerFormatCharacter;\r
         }\r
+\r
         break;\r
 \r
       case '\n':\r
         //\r
         // Translate '\n' to '\r\n' and '\n\r' to '\r\n'\r
         //\r
-        ArgumentString = "\r\n";\r
-        Format += BytesPerFormatCharacter;\r
+        ArgumentString  = "\r\n";\r
+        Format         += BytesPerFormatCharacter;\r
         FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
         if (FormatCharacter != '\r') {\r
-          Format   -= BytesPerFormatCharacter;\r
+          Format -= BytesPerFormatCharacter;\r
         }\r
+\r
         break;\r
 \r
-      case '%':\r
       default:\r
-        //\r
-        // if the type is '%' or unknown, then print it to the screen\r
-        //\r
         ArgumentString = (CHAR8 *)&FormatCharacter;\r
-        Flags |= ARGUMENT_UNICODE;\r
+        Flags         |= ARGUMENT_UNICODE;\r
         break;\r
-      }\r
-      break;\r
-\r
-    case '\r':\r
-      Format += BytesPerFormatCharacter;\r
-      FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
-      if (FormatCharacter == '\n') {\r
-        //\r
-        // Translate '\r\n' to '\r\n'\r
-        //\r
-        ArgumentString = "\r\n";\r
-      } else {\r
-        //\r
-        // Translate '\r' to '\r'\r
-        //\r
-        ArgumentString = "\r";\r
-        Format   -= BytesPerFormatCharacter;\r
-      }\r
-      break;\r
-\r
-    case '\n':\r
-      //\r
-      // Translate '\n' to '\r\n' and '\n\r' to '\r\n'\r
-      //\r
-      ArgumentString = "\r\n";\r
-      Format += BytesPerFormatCharacter;\r
-      FormatCharacter = ((*Format & 0xff) | ((BytesPerFormatCharacter == 1) ? 0 : (*(Format + 1) << 8))) & FormatMask;\r
-      if (FormatCharacter != '\r') {\r
-        Format   -= BytesPerFormatCharacter;\r
-      }\r
-      break;\r
-\r
-    default:\r
-      ArgumentString = (CHAR8 *)&FormatCharacter;\r
-      Flags |= ARGUMENT_UNICODE;\r
-      break;\r
     }\r
 \r
     //\r
     // Retrieve the ArgumentString attriubutes\r
     //\r
     if ((Flags & ARGUMENT_UNICODE) != 0) {\r
-      ArgumentMask = 0xffff;\r
+      ArgumentMask              = 0xffff;\r
       BytesPerArgumentCharacter = 2;\r
     } else {\r
-      ArgumentMask = 0xff;\r
+      ArgumentMask              = 0xff;\r
       BytesPerArgumentCharacter = 1;\r
     }\r
+\r
     if ((Flags & ARGUMENT_REVERSED) != 0) {\r
       BytesPerArgumentCharacter = -BytesPerArgumentCharacter;\r
     } else {\r
@@ -1900,11 +1943,12 @@ InternalPrintLibSPrintMarker (
       // ArgumentString is either null-terminated, or it contains Precision characters\r
       //\r
       for (Count = 0;\r
-            (ArgumentString[Count * BytesPerArgumentCharacter] != '\0' ||\r
-             (BytesPerArgumentCharacter > 1 &&\r
-              ArgumentString[Count * BytesPerArgumentCharacter + 1]!= '\0')) &&\r
-            (Count < Precision || ((Flags & PRECISION) == 0));\r
-            Count++) {\r
+           (ArgumentString[Count * BytesPerArgumentCharacter] != '\0' ||\r
+            (BytesPerArgumentCharacter > 1 &&\r
+             ArgumentString[Count * BytesPerArgumentCharacter + 1] != '\0')) &&\r
+           (Count < Precision || ((Flags & PRECISION) == 0));\r
+           Count++)\r
+      {\r
         ArgumentCharacter = ((ArgumentString[Count * BytesPerArgumentCharacter] & 0xff) | ((ArgumentString[Count * BytesPerArgumentCharacter + 1]) << 8)) & ArgumentMask;\r
         if (ArgumentCharacter == 0) {\r
           break;\r
@@ -1921,7 +1965,7 @@ InternalPrintLibSPrintMarker (
     //\r
     if ((Flags & (PAD_TO_WIDTH | LEFT_JUSTIFY)) == (PAD_TO_WIDTH)) {\r
       LengthToReturn += ((Width - Precision) * BytesPerOutputCharacter);\r
-      if ((Flags & COUNT_ONLY_NO_PRINT) == 0 && Buffer != NULL) {\r
+      if (((Flags & COUNT_ONLY_NO_PRINT) == 0) && (Buffer != NULL)) {\r
         Buffer = InternalPrintLibFillBuffer (Buffer, EndBuffer, Width - Precision, ' ', BytesPerOutputCharacter);\r
       }\r
     }\r
@@ -1929,22 +1973,24 @@ InternalPrintLibSPrintMarker (
     if (ZeroPad) {\r
       if (Prefix != 0) {\r
         LengthToReturn += (1 * BytesPerOutputCharacter);\r
-        if ((Flags & COUNT_ONLY_NO_PRINT) == 0 && Buffer != NULL) {\r
+        if (((Flags & COUNT_ONLY_NO_PRINT) == 0) && (Buffer != NULL)) {\r
           Buffer = InternalPrintLibFillBuffer (Buffer, EndBuffer, 1, Prefix, BytesPerOutputCharacter);\r
         }\r
       }\r
+\r
       LengthToReturn += ((Precision - Count) * BytesPerOutputCharacter);\r
-      if ((Flags & COUNT_ONLY_NO_PRINT) == 0 && Buffer != NULL) {\r
+      if (((Flags & COUNT_ONLY_NO_PRINT) == 0) && (Buffer != NULL)) {\r
         Buffer = InternalPrintLibFillBuffer (Buffer, EndBuffer, Precision - Count, '0', BytesPerOutputCharacter);\r
       }\r
     } else {\r
       LengthToReturn += ((Precision - Count) * BytesPerOutputCharacter);\r
-      if ((Flags & COUNT_ONLY_NO_PRINT) == 0 && Buffer != NULL) {\r
+      if (((Flags & COUNT_ONLY_NO_PRINT) == 0) && (Buffer != NULL)) {\r
         Buffer = InternalPrintLibFillBuffer (Buffer, EndBuffer, Precision - Count, ' ', BytesPerOutputCharacter);\r
       }\r
+\r
       if (Prefix != 0) {\r
         LengthToReturn += (1 * BytesPerOutputCharacter);\r
-        if ((Flags & COUNT_ONLY_NO_PRINT) == 0 && Buffer != NULL) {\r
+        if (((Flags & COUNT_ONLY_NO_PRINT) == 0) && (Buffer != NULL)) {\r
           Buffer = InternalPrintLibFillBuffer (Buffer, EndBuffer, 1, Prefix, BytesPerOutputCharacter);\r
         }\r
       }\r
@@ -1963,14 +2009,16 @@ InternalPrintLibSPrintMarker (
     //\r
     while (Index < Count &&\r
            (ArgumentString[0] != '\0' ||\r
-            (BytesPerArgumentCharacter > 1 && ArgumentString[1] != '\0'))) {\r
+            (BytesPerArgumentCharacter > 1 && ArgumentString[1] != '\0')))\r
+    {\r
       ArgumentCharacter = ((*ArgumentString & 0xff) | (((UINT8)*(ArgumentString + 1)) << 8)) & ArgumentMask;\r
 \r
       LengthToReturn += (1 * BytesPerOutputCharacter);\r
-      if ((Flags & COUNT_ONLY_NO_PRINT) == 0 && Buffer != NULL) {\r
+      if (((Flags & COUNT_ONLY_NO_PRINT) == 0) && (Buffer != NULL)) {\r
         Buffer = InternalPrintLibFillBuffer (Buffer, EndBuffer, 1, ArgumentCharacter, BytesPerOutputCharacter);\r
       }\r
-      ArgumentString    += BytesPerArgumentCharacter;\r
+\r
+      ArgumentString += BytesPerArgumentCharacter;\r
       Index++;\r
       if (Comma) {\r
         Digits++;\r
@@ -1979,7 +2027,7 @@ InternalPrintLibSPrintMarker (
           Index++;\r
           if (Index < Count) {\r
             LengthToReturn += (1 * BytesPerOutputCharacter);\r
-            if ((Flags & COUNT_ONLY_NO_PRINT) == 0 && Buffer != NULL) {\r
+            if (((Flags & COUNT_ONLY_NO_PRINT) == 0) && (Buffer != NULL)) {\r
               Buffer = InternalPrintLibFillBuffer (Buffer, EndBuffer, 1, ',', BytesPerOutputCharacter);\r
             }\r
           }\r
@@ -1992,7 +2040,7 @@ InternalPrintLibSPrintMarker (
     //\r
     if ((Flags & (PAD_TO_WIDTH | LEFT_JUSTIFY)) == (PAD_TO_WIDTH | LEFT_JUSTIFY)) {\r
       LengthToReturn += ((Width - Precision) * BytesPerOutputCharacter);\r
-      if ((Flags & COUNT_ONLY_NO_PRINT) == 0 && Buffer != NULL) {\r
+      if (((Flags & COUNT_ONLY_NO_PRINT) == 0) && (Buffer != NULL)) {\r
         Buffer = InternalPrintLibFillBuffer (Buffer, EndBuffer, Width - Precision, ' ', BytesPerOutputCharacter);\r
       }\r
     }\r
@@ -2041,7 +2089,7 @@ InternalPrintLibSPrintMarker (
 UINTN\r
 EFIAPI\r
 SPrintLength (\r
-  IN  CONST CHAR16   *FormatString,\r
+  IN  CONST CHAR16  *FormatString,\r
   IN  VA_LIST       Marker\r
   )\r
 {\r
@@ -2067,8 +2115,8 @@ SPrintLength (
 UINTN\r
 EFIAPI\r
 SPrintLengthAsciiFormat (\r
-  IN  CONST CHAR8   *FormatString,\r
-  IN  VA_LIST       Marker\r
+  IN  CONST CHAR8  *FormatString,\r
+  IN  VA_LIST      Marker\r
   )\r
 {\r
   return InternalPrintLibSPrintMarker (NULL, 0, OUTPUT_UNICODE | COUNT_ONLY_NO_PRINT, (CHAR8 *)FormatString, Marker, NULL);\r