]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c
Check comments, format and fix some typo.
[mirror_edk2.git] / MdeModulePkg / Universal / Console / GraphicsConsoleDxe / GraphicsConsole.c
index a57265ebd22e92b01abf5296219bd26efc97cfbc..2fe6dc02dae7578fd8aebe115c5ad272bd27025d 100644 (file)
@@ -14,6 +14,90 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include "GraphicsConsole.h"\r
 \r
 \r
 #include "GraphicsConsole.h"\r
 \r
+//\r
+// Graphics Console Device Private Data template\r
+//\r
+GRAPHICS_CONSOLE_DEV    mGraphicsConsoleDevTemplate = {\r
+  GRAPHICS_CONSOLE_DEV_SIGNATURE,\r
+  (EFI_GRAPHICS_OUTPUT_PROTOCOL *) NULL,\r
+  (EFI_UGA_DRAW_PROTOCOL *) NULL,\r
+  {\r
+    GraphicsConsoleConOutReset,\r
+    GraphicsConsoleConOutOutputString,\r
+    GraphicsConsoleConOutTestString,\r
+    GraphicsConsoleConOutQueryMode,\r
+    GraphicsConsoleConOutSetMode,\r
+    GraphicsConsoleConOutSetAttribute,\r
+    GraphicsConsoleConOutClearScreen,\r
+    GraphicsConsoleConOutSetCursorPosition,\r
+    GraphicsConsoleConOutEnableCursor,\r
+    (EFI_SIMPLE_TEXT_OUTPUT_MODE *) NULL\r
+  },\r
+  {\r
+    0,\r
+    0,\r
+    EFI_TEXT_ATTR(EFI_LIGHTGRAY, EFI_BLACK),\r
+    0,\r
+    0,\r
+    TRUE\r
+  },\r
+  {\r
+    { 80, 25, 0, 0, 0, 0 },  // Mode 0\r
+    { 80, 50, 0, 0, 0, 0 },  // Mode 1\r
+    { 100,31, 0, 0, 0, 0 },  // Mode 2\r
+    {  0,  0, 0, 0, 0, 0 }   // Mode 3\r
+  },\r
+  (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) NULL,\r
+  (EFI_HII_HANDLE ) 0\r
+};\r
+\r
+EFI_HII_DATABASE_PROTOCOL   *mHiiDatabase;\r
+EFI_HII_FONT_PROTOCOL       *mHiiFont;\r
+BOOLEAN                     mFirstAccessFlag = TRUE;\r
+\r
+EFI_GUID             mFontPackageListGuid = {0xf5f219d3, 0x7006, 0x4648, {0xac, 0x8d, 0xd6, 0x1d, 0xfb, 0x7b, 0xc6, 0xad}};\r
+\r
+CHAR16               mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };\r
+\r
+EFI_GRAPHICS_OUTPUT_BLT_PIXEL        mEfiColors[16] = {\r
+  //\r
+  // B    G    R   reserved\r
+  //\r
+  {0x00, 0x00, 0x00, 0x00},  // BLACK\r
+  {0x98, 0x00, 0x00, 0x00},  // LIGHTBLUE\r
+  {0x00, 0x98, 0x00, 0x00},  // LIGHGREEN\r
+  {0x98, 0x98, 0x00, 0x00},  // LIGHCYAN\r
+  {0x00, 0x00, 0x98, 0x00},  // LIGHRED\r
+  {0x98, 0x00, 0x98, 0x00},  // MAGENTA\r
+  {0x00, 0x98, 0x98, 0x00},  // BROWN\r
+  {0x98, 0x98, 0x98, 0x00},  // LIGHTGRAY\r
+  {0x30, 0x30, 0x30, 0x00},  // DARKGRAY - BRIGHT BLACK\r
+  {0xff, 0x00, 0x00, 0x00},  // BLUE\r
+  {0x00, 0xff, 0x00, 0x00},  // LIME\r
+  {0xff, 0xff, 0x00, 0x00},  // CYAN\r
+  {0x00, 0x00, 0xff, 0x00},  // RED\r
+  {0xff, 0x00, 0xff, 0x00},  // FUCHSIA\r
+  {0x00, 0xff, 0xff, 0x00},  // YELLOW\r
+  {0xff, 0xff, 0xff, 0x00}   // WHITE\r
+};\r
+\r
+EFI_NARROW_GLYPH     mCursorGlyph = {\r
+  0x0000,\r
+  0x00,\r
+  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF }\r
+};\r
+\r
+CHAR16       SpaceStr[] = { NARROW_CHAR, ' ', 0 };\r
+\r
+EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {\r
+  GraphicsConsoleControllerDriverSupported,\r
+  GraphicsConsoleControllerDriverStart,\r
+  GraphicsConsoleControllerDriverStop,\r
+  0xa,\r
+  NULL,\r
+  NULL\r
+};\r
+\r
 /**\r
   Gets Graphics Console devcie's foreground color and background color.\r
 \r
 /**\r
   Gets Graphics Console devcie's foreground color and background color.\r
 \r
@@ -32,7 +116,7 @@ GetTextColors (
   );\r
 \r
 /**\r
   );\r
 \r
 /**\r
-  Draw Unicode string on the Graphice Console device's screen.\r
+  Draw Unicode string on the Graphics Console device's screen.\r
 \r
   @param  This                  Protocol instance pointer.\r
   @param  UnicodeWeight         One Unicode string to be displayed.\r
 \r
   @param  This                  Protocol instance pointer.\r
   @param  UnicodeWeight         One Unicode string to be displayed.\r
@@ -66,9 +150,9 @@ EraseCursor (
 \r
 /**\r
   Check if the current specific mode supported the user defined resolution\r
 \r
 /**\r
   Check if the current specific mode supported the user defined resolution\r
-  for the Graphice Console devcie based on Graphics Output Protocol.\r
+  for the Graphics Console device based on Graphics Output Protocol.\r
 \r
 \r
-  If yes, set the graphic devcice's current mode to this specific mode.\r
+  If yes, set the graphic device's current mode to this specific mode.\r
   \r
   @param  GraphicsOutput        Graphics Output Protocol instance pointer.\r
   @param  HorizontalResolution  User defined horizontal resolution\r
   \r
   @param  GraphicsOutput        Graphics Output Protocol instance pointer.\r
   @param  HorizontalResolution  User defined horizontal resolution\r
@@ -77,7 +161,7 @@ EraseCursor (
 \r
   @retval EFI_SUCCESS       The mode is supported.\r
   @retval EFI_UNSUPPORTED   The specific mode is out of range of graphics \r
 \r
   @retval EFI_SUCCESS       The mode is supported.\r
   @retval EFI_UNSUPPORTED   The specific mode is out of range of graphics \r
-                            devcie supported.\r
+                            device supported.\r
   @retval other             The specific mode does not support user defined \r
                             resolution or failed to set the current mode to the \r
                             specific mode on graphics device.\r
   @retval other             The specific mode does not support user defined \r
                             resolution or failed to set the current mode to the \r
                             specific mode on graphics device.\r
@@ -91,90 +175,6 @@ CheckModeSupported (
   OUT UINT32  *CurrentModeNumber\r
   );\r
 \r
   OUT UINT32  *CurrentModeNumber\r
   );\r
 \r
-//\r
-// Graphics Console Devcie Private Data template\r
-//\r
-GRAPHICS_CONSOLE_DEV    mGraphicsConsoleDevTemplate = {\r
-  GRAPHICS_CONSOLE_DEV_SIGNATURE,\r
-  (EFI_GRAPHICS_OUTPUT_PROTOCOL *) NULL,\r
-  (EFI_UGA_DRAW_PROTOCOL *) NULL,\r
-  {\r
-    GraphicsConsoleConOutReset,\r
-    GraphicsConsoleConOutOutputString,\r
-    GraphicsConsoleConOutTestString,\r
-    GraphicsConsoleConOutQueryMode,\r
-    GraphicsConsoleConOutSetMode,\r
-    GraphicsConsoleConOutSetAttribute,\r
-    GraphicsConsoleConOutClearScreen,\r
-    GraphicsConsoleConOutSetCursorPosition,\r
-    GraphicsConsoleConOutEnableCursor,\r
-    (EFI_SIMPLE_TEXT_OUTPUT_MODE *) NULL\r
-  },\r
-  {\r
-    0,\r
-    0,\r
-    EFI_TEXT_ATTR(EFI_LIGHTGRAY, EFI_BLACK),\r
-    0,\r
-    0,\r
-    TRUE\r
-  },\r
-  {\r
-    { 80, 25, 0, 0, 0, 0 },  // Mode 0\r
-    { 80, 50, 0, 0, 0, 0 },  // Mode 1\r
-    { 100,31, 0, 0, 0, 0 },  // Mode 2\r
-    {  0,  0, 0, 0, 0, 0 }   // Mode 3\r
-  },\r
-  (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) NULL,\r
-  (EFI_HII_HANDLE ) 0\r
-};\r
-\r
-EFI_HII_DATABASE_PROTOCOL   *mHiiDatabase;\r
-EFI_HII_FONT_PROTOCOL       *mHiiFont;\r
-BOOLEAN                     mFirstAccessFlag = TRUE;\r
-\r
-EFI_GUID             mFontPackageListGuid = {0xf5f219d3, 0x7006, 0x4648, 0xac, 0x8d, 0xd6, 0x1d, 0xfb, 0x7b, 0xc6, 0xad};\r
-\r
-CHAR16               mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };\r
-\r
-EFI_GRAPHICS_OUTPUT_BLT_PIXEL        mEfiColors[16] = {\r
-  //\r
-  // B     G     R\r
-  //\r
-  {0x00, 0x00, 0x00, 0x00},  // BLACK\r
-  {0x98, 0x00, 0x00, 0x00},  // BLUE\r
-  {0x00, 0x98, 0x00, 0x00},  // GREEN\r
-  {0x98, 0x98, 0x00, 0x00},  // CYAN\r
-  {0x00, 0x00, 0x98, 0x00},  // RED\r
-  {0x98, 0x00, 0x98, 0x00},  // MAGENTA\r
-  {0x00, 0x98, 0x98, 0x00},  // BROWN\r
-  {0x98, 0x98, 0x98, 0x00},  // LIGHTGRAY\r
-  {0x30, 0x30, 0x30, 0x00},  // DARKGRAY - BRIGHT BLACK\r
-  {0xff, 0x00, 0x00, 0x00},  // LIGHTBLUE - ?\r
-  {0x00, 0xff, 0x00, 0x00},  // LIGHTGREEN - ?\r
-  {0xff, 0xff, 0x00, 0x00},  // LIGHTCYAN\r
-  {0x00, 0x00, 0xff, 0x00},  // LIGHTRED\r
-  {0xff, 0x00, 0xff, 0x00},  // LIGHTMAGENTA\r
-  {0x00, 0xff, 0xff, 0x00},  // LIGHTBROWN\r
-  {0xff, 0xff, 0xff, 0x00}  // WHITE\r
-};\r
-\r
-EFI_NARROW_GLYPH     mCursorGlyph = {\r
-  0x0000,\r
-  0x00,\r
-  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF }\r
-};\r
-\r
-CHAR16       SpaceStr[] = { NARROW_CHAR, ' ', 0 };\r
-\r
-EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {\r
-  GraphicsConsoleControllerDriverSupported,\r
-  GraphicsConsoleControllerDriverStart,\r
-  GraphicsConsoleControllerDriverStop,\r
-  0xa,\r
-  NULL,\r
-  NULL\r
-};\r
-\r
 \r
 /**\r
   Test to see if Graphics Console could be supported on the Controller.\r
 \r
 /**\r
   Test to see if Graphics Console could be supported on the Controller.\r
@@ -291,7 +291,7 @@ Error:
 /**\r
   Start this driver on Controller by opening Graphics Output protocol or \r
   UGA Draw protocol, and installing Simple Text Out protocol on Controller.\r
 /**\r
   Start this driver on Controller by opening Graphics Output protocol or \r
   UGA Draw protocol, and installing Simple Text Out protocol on Controller.\r
-  (UGA Draw protocol could be shkipped if PcdUgaConsumeSupport is set to FALSE.)\r
+  (UGA Draw protocol could be skipped if PcdUgaConsumeSupport is set to FALSE.)\r
   \r
   @param  This                 Protocol instance pointer.\r
   @param  Controller           Handle of device to bind driver to\r
   \r
   @param  This                 Protocol instance pointer.\r
   @param  Controller           Handle of device to bind driver to\r
@@ -312,7 +312,7 @@ GraphicsConsoleControllerDriverStart (
 {\r
   EFI_STATUS                           Status;\r
   GRAPHICS_CONSOLE_DEV                 *Private;\r
 {\r
   EFI_STATUS                           Status;\r
   GRAPHICS_CONSOLE_DEV                 *Private;\r
-  UINT                               NarrowFontSize;\r
+  UINT32                               NarrowFontSize;\r
   UINT32                               HorizontalResolution;\r
   UINT32                               VerticalResolution;\r
   UINT32                               ColorDepth;\r
   UINT32                               HorizontalResolution;\r
   UINT32                               VerticalResolution;\r
   UINT32                               ColorDepth;\r
@@ -322,11 +322,11 @@ GraphicsConsoleControllerDriverStart (
   UINTN                                Rows;\r
   UINT32                               ModeNumber;\r
   EFI_HII_SIMPLE_FONT_PACKAGE_HDR      *SimplifiedFont;\r
   UINTN                                Rows;\r
   UINT32                               ModeNumber;\r
   EFI_HII_SIMPLE_FONT_PACKAGE_HDR      *SimplifiedFont;\r
-  UINT                               PackageLength;\r
+  UINT32                               PackageLength;\r
   EFI_HII_PACKAGE_LIST_HEADER          *PackageList;\r
   UINT8                                *Package;\r
   UINT8                                *Location;\r
   EFI_HII_PACKAGE_LIST_HEADER          *PackageList;\r
   UINT8                                *Package;\r
   UINT8                                *Location;\r
-\r
+  EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE    *Mode;\r
   ModeNumber = 0;\r
 \r
   //\r
   ModeNumber = 0;\r
 \r
   //\r
@@ -373,13 +373,27 @@ GraphicsConsoleControllerDriverStart (
     // Add 4 bytes to the header for entire length for HiiLibPreparePackageList use only.\r
     // Looks ugly. Might be updated when font tool is ready.\r
     //\r
     // Add 4 bytes to the header for entire length for HiiLibPreparePackageList use only.\r
     // Looks ugly. Might be updated when font tool is ready.\r
     //\r
+    //    +--------------------------------+ <-- Package\r
+    //    |                                |\r
+    //    |    PackageLength(4 bytes)      | \r
+    //    |                                |\r
+    //    |--------------------------------| <-- SimplifiedFont\r
+    //    |                                |\r
+    //    |EFI_HII_SIMPLE_FONT_PACKAGE_HDR | \r
+    //    |                                |\r
+    //    |--------------------------------| <-- Location\r
+    //    |                                |\r
+    //    |     gUsStdNarrowGlyphData      |\r
+    //    |                                |\r
+    //    +--------------------------------+\r
+    \r
     PackageLength   = sizeof (EFI_HII_SIMPLE_FONT_PACKAGE_HDR) + NarrowFontSize + 4;\r
     Package = AllocateZeroPool (PackageLength);\r
     if (Package == NULL) {\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
     PackageLength   = sizeof (EFI_HII_SIMPLE_FONT_PACKAGE_HDR) + NarrowFontSize + 4;\r
     Package = AllocateZeroPool (PackageLength);\r
     if (Package == NULL) {\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
-    CopyMem (Package, &PackageLength, 4);\r
-    SimplifiedFont = (EFI_HII_SIMPLE_FONT_PACKAGE_HDR*) (Package + 4);\r
+    WriteUnaligned32((UINT32 *) Package,PackageLength);\r
+    SimplifiedFont = (EFI_HII_SIMPLE_FONT_PACKAGE_HDR *) (Package + 4);\r
     SimplifiedFont->Header.Length        = (UINT32) (PackageLength - 4);\r
     SimplifiedFont->Header.Type          = EFI_HII_PACKAGE_SIMPLE_FONTS;\r
     SimplifiedFont->NumberOfNarrowGlyphs = (UINT16) (NarrowFontSize / sizeof (EFI_NARROW_GLYPH));\r
     SimplifiedFont->Header.Length        = (UINT32) (PackageLength - 4);\r
     SimplifiedFont->Header.Type          = EFI_HII_PACKAGE_SIMPLE_FONTS;\r
     SimplifiedFont->NumberOfNarrowGlyphs = (UINT16) (NarrowFontSize / sizeof (EFI_NARROW_GLYPH));\r
@@ -393,14 +407,14 @@ GraphicsConsoleControllerDriverStart (
     PackageList = HiiLibPreparePackageList (1, &mFontPackageListGuid, Package);\r
     Status = mHiiDatabase->NewPackageList (mHiiDatabase, PackageList, NULL, &(Private->HiiHandle));\r
     ASSERT_EFI_ERROR (Status);\r
     PackageList = HiiLibPreparePackageList (1, &mFontPackageListGuid, Package);\r
     Status = mHiiDatabase->NewPackageList (mHiiDatabase, PackageList, NULL, &(Private->HiiHandle));\r
     ASSERT_EFI_ERROR (Status);\r
-    SafeFreePool (PackageList);\r
-    SafeFreePool (Package);\r
+    FreePool (PackageList);\r
+    FreePool (Package);\r
 \r
     mFirstAccessFlag = FALSE;\r
   }\r
   //\r
 \r
     mFirstAccessFlag = FALSE;\r
   }\r
   //\r
-  // If the current mode information can not be retrieved, then attemp to set the default mode\r
-  // of 800x600, 32 bit colot, 60 Hz refresh.\r
+  // If the current mode information can not be retrieved, then attempt to set the default mode\r
+  // of 800x600, 32 bit color, 60 Hz refresh.\r
   //\r
   HorizontalResolution  = 800;\r
   VerticalResolution    = 600;\r
   //\r
   HorizontalResolution  = 800;\r
   VerticalResolution    = 600;\r
@@ -434,14 +448,16 @@ GraphicsConsoleControllerDriverStart (
                    &ModeNumber\r
                    );\r
     }\r
                    &ModeNumber\r
                    );\r
     }\r
-\r
-    if (EFI_ERROR (Status) || (ModeNumber == Private->GraphicsOutput->Mode->MaxMode)) {\r
+    \r
+    Mode = Private->GraphicsOutput->Mode;\r
+     \r
+    if (EFI_ERROR (Status) || (Mode->MaxMode)) {\r
       //\r
       // Set default mode failed or device don't support default mode, then get the current mode information\r
       //\r
       //\r
       // Set default mode failed or device don't support default mode, then get the current mode information\r
       //\r
-      HorizontalResolution = Private->GraphicsOutput->Mode->Info->HorizontalResolution;\r
-      VerticalResolution = Private->GraphicsOutput->Mode->Info->VerticalResolution;\r
-      ModeNumber = Private->GraphicsOutput->Mode->Mode;\r
+      HorizontalResolution = Mode->Info->HorizontalResolution;\r
+      VerticalResolution = Mode->Info->VerticalResolution;\r
+      ModeNumber = Mode->Mode;\r
     }\r
   } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
     //\r
     }\r
   } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
     //\r
@@ -628,7 +644,7 @@ Error:
 /**\r
   Stop this driver on Controller by removing Simple Text Out protocol \r
   and closing the Graphics Output Protocol or UGA Draw protocol on Controller.\r
 /**\r
   Stop this driver on Controller by removing Simple Text Out protocol \r
   and closing the Graphics Output Protocol or UGA Draw protocol on Controller.\r
-  (UGA Draw protocol could be shkipped if PcdUgaConsumeSupport is set to FALSE.)\r
+  (UGA Draw protocol could be skipped if PcdUgaConsumeSupport is set to FALSE.)\r
   \r
 \r
   @param  This              Protocol instance pointer.\r
   \r
 \r
   @param  This              Protocol instance pointer.\r
@@ -718,7 +734,7 @@ GraphicsConsoleControllerDriverStop (
 \r
 /**\r
   Check if the current specific mode supported the user defined resolution\r
 \r
 /**\r
   Check if the current specific mode supported the user defined resolution\r
-  for the Graphice Console devcie based on Graphics Output Protocol.\r
+  for the Graphics Console device based on Graphics Output Protocol.\r
 \r
   If yes, set the graphic devcice's current mode to this specific mode.\r
   \r
 \r
   If yes, set the graphic devcice's current mode to this specific mode.\r
   \r
@@ -729,7 +745,7 @@ GraphicsConsoleControllerDriverStop (
 \r
   @retval EFI_SUCCESS       The mode is supported.\r
   @retval EFI_UNSUPPORTED   The specific mode is out of range of graphics \r
 \r
   @retval EFI_SUCCESS       The mode is supported.\r
   @retval EFI_UNSUPPORTED   The specific mode is out of range of graphics \r
-                            devcie supported.\r
+                            device supported.\r
   @retval other             The specific mode does not support user defined \r
                             resolution or failed to set the current mode to the \r
                             specific mode on graphics device.\r
   @retval other             The specific mode does not support user defined \r
                             resolution or failed to set the current mode to the \r
                             specific mode on graphics device.\r
@@ -747,10 +763,12 @@ CheckModeSupported (
   EFI_STATUS Status;\r
   UINTN      SizeOfInfo;\r
   EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
   EFI_STATUS Status;\r
   UINTN      SizeOfInfo;\r
   EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
+  UINT32     MaxMode;\r
 \r
 \r
-  Status = EFI_SUCCESS;\r
-\r
-  for (ModeNumber = 0; ModeNumber < GraphicsOutput->Mode->MaxMode; ModeNumber++) {\r
+  Status  = EFI_SUCCESS;\r
+  MaxMode = GraphicsOutput->Mode->MaxMode;\r
+  \r
+  for (ModeNumber = 0; ModeNumber < MaxMode; ModeNumber++) {\r
     Status = GraphicsOutput->QueryMode (\r
                        GraphicsOutput,\r
                        ModeNumber,\r
     Status = GraphicsOutput->QueryMode (\r
                        GraphicsOutput,\r
                        ModeNumber,\r
@@ -762,11 +780,11 @@ CheckModeSupported (
           (Info->VerticalResolution == VerticalResolution)) {\r
         Status = GraphicsOutput->SetMode (GraphicsOutput, ModeNumber);\r
         if (!EFI_ERROR (Status)) {\r
           (Info->VerticalResolution == VerticalResolution)) {\r
         Status = GraphicsOutput->SetMode (GraphicsOutput, ModeNumber);\r
         if (!EFI_ERROR (Status)) {\r
-          gBS->FreePool (Info);\r
+          FreePool (Info);\r
           break;\r
         }\r
       }\r
           break;\r
         }\r
       }\r
-      gBS->FreePool (Info);\r
+      FreePool (Info);\r
     }\r
   }\r
 \r
     }\r
   }\r
 \r
@@ -837,7 +855,7 @@ EfiLocateHiiProtocol (
 //\r
 \r
 /**\r
 //\r
 \r
 /**\r
-  Reset the text output device hardware and optionaly run diagnostics.\r
+  Reset the text output device hardware and optionally run diagnostics.\r
   \r
   Implements SIMPLE_TEXT_OUTPUT.Reset().\r
   If ExtendeVerification is TRUE, then perform dependent Graphics Console\r
   \r
   Implements SIMPLE_TEXT_OUTPUT.Reset().\r
   If ExtendeVerification is TRUE, then perform dependent Graphics Console\r
@@ -1085,27 +1103,12 @@ GraphicsConsoleConOutOutputString (
       // Count is used to determine how many characters are used regardless of their attributes\r
       //\r
       for (Count = 0, Index = 0; (This->Mode->CursorColumn + Index) < MaxColumn; Count++, Index++) {\r
       // Count is used to determine how many characters are used regardless of their attributes\r
       //\r
       for (Count = 0, Index = 0; (This->Mode->CursorColumn + Index) < MaxColumn; Count++, Index++) {\r
-        if (WString[Count] == CHAR_NULL) {\r
-          break;\r
-        }\r
-\r
-        if (WString[Count] == CHAR_BACKSPACE) {\r
-          break;\r
-        }\r
-\r
-        if (WString[Count] == CHAR_LINEFEED) {\r
-          break;\r
-        }\r
-\r
-        if (WString[Count] == CHAR_CARRIAGE_RETURN) {\r
-          break;\r
-        }\r
-\r
-        if (WString[Count] == WIDE_CHAR) {\r
-          break;\r
-        }\r
-\r
-        if (WString[Count] == NARROW_CHAR) {\r
+        if (WString[Count] == CHAR_NULL || \r
+            WString[Count] == CHAR_BACKSPACE || \r
+            WString[Count] == CHAR_LINEFEED ||\r
+            WString[Count] == CHAR_CARRIAGE_RETURN ||\r
+            WString[Count] == WIDE_CHAR ||\r
+            WString[Count] == NARROW_CHAR) {\r
           break;\r
         }\r
         //\r
           break;\r
         }\r
         //\r
@@ -1205,8 +1208,10 @@ GraphicsConsoleConOutTestString (
                          &Blt,\r
                          NULL\r
                          );\r
                          &Blt,\r
                          NULL\r
                          );\r
-    SafeFreePool (Blt);\r
-    Blt = NULL;\r
+    if (Blt != NULL) {\r
+      FreePool (Blt);\r
+      Blt = NULL;\r
+    }\r
     Count++;\r
 \r
     if (EFI_ERROR (Status)) {\r
     Count++;\r
 \r
     if (EFI_ERROR (Status)) {\r
@@ -1376,7 +1381,7 @@ GraphicsConsoleConOutSetMode (
   if (GraphicsOutput != NULL) {\r
     if (ModeData->GopModeNumber != GraphicsOutput->Mode->Mode) {\r
       //\r
   if (GraphicsOutput != NULL) {\r
     if (ModeData->GopModeNumber != GraphicsOutput->Mode->Mode) {\r
       //\r
-      // Either no graphics mode is currently set, or it is set to the wrong resolution, so set the new grapghics mode\r
+      // Either no graphics mode is currently set, or it is set to the wrong resolution, so set the new graphics mode\r
       //\r
       Status = GraphicsOutput->SetMode (GraphicsOutput, ModeData->GopModeNumber);\r
       if (EFI_ERROR (Status)) {\r
       //\r
       Status = GraphicsOutput->SetMode (GraphicsOutput, ModeData->GopModeNumber);\r
       if (EFI_ERROR (Status)) {\r
@@ -1415,7 +1420,7 @@ GraphicsConsoleConOutSetMode (
                         );\r
     if (EFI_ERROR (Status) || HorizontalResolution != ModeData->GopWidth || VerticalResolution != ModeData->GopHeight) {\r
       //\r
                         );\r
     if (EFI_ERROR (Status) || HorizontalResolution != ModeData->GopWidth || VerticalResolution != ModeData->GopHeight) {\r
       //\r
-      // Either no graphics mode is currently set, or it is set to the wrong resolution, so set the new grapghics mode\r
+      // Either no graphics mode is currently set, or it is set to the wrong resolution, so set the new graphics mode\r
       //\r
       Status = UgaDraw->SetMode (\r
                           UgaDraw,\r
       //\r
       Status = UgaDraw->SetMode (\r
                           UgaDraw,\r
@@ -1455,7 +1460,7 @@ GraphicsConsoleConOutSetMode (
   This->Mode->Mode = (INT32) ModeNumber;\r
 \r
   //\r
   This->Mode->Mode = (INT32) ModeNumber;\r
 \r
   //\r
-  // Move the text cursor to the upper left hand corner of the displat and enable it\r
+  // Move the text cursor to the upper left hand corner of the display and enable it\r
   //\r
   This->SetCursorPosition (This, 0, 0);\r
 \r
   //\r
   This->SetCursorPosition (This, 0, 0);\r
 \r
@@ -1715,7 +1720,7 @@ GetTextColors (
 }\r
 \r
 /**\r
 }\r
 \r
 /**\r
-  Draw Unicode string on the Graphice Console device's screen.\r
+  Draw Unicode string on the Graphics Console device's screen.\r
 \r
   @param  This                  Protocol instance pointer.\r
   @param  UnicodeWeight         One Unicode string to be displayed.\r
 \r
   @param  This                  Protocol instance pointer.\r
   @param  UnicodeWeight         One Unicode string to be displayed.\r
@@ -1754,7 +1759,7 @@ DrawUnicodeWeightAtCursorN (
 \r
   String = AllocateCopyPool ((Count + 1) * sizeof (CHAR16), UnicodeWeight);\r
   if (String == NULL) {\r
 \r
   String = AllocateCopyPool ((Count + 1) * sizeof (CHAR16), UnicodeWeight);\r
   if (String == NULL) {\r
-    SafeFreePool (Blt);\r
+    FreePool (Blt);\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
   //\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
   //\r
@@ -1764,8 +1769,8 @@ DrawUnicodeWeightAtCursorN (
 \r
   FontInfo = (EFI_FONT_DISPLAY_INFO *) AllocateZeroPool (sizeof (EFI_FONT_DISPLAY_INFO));\r
   if (FontInfo == NULL) {\r
 \r
   FontInfo = (EFI_FONT_DISPLAY_INFO *) AllocateZeroPool (sizeof (EFI_FONT_DISPLAY_INFO));\r
   if (FontInfo == NULL) {\r
-    SafeFreePool (Blt);\r
-    SafeFreePool (String);\r
+    FreePool (Blt);\r
+    FreePool (String);\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
   //\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
   //\r
@@ -1775,7 +1780,7 @@ DrawUnicodeWeightAtCursorN (
 \r
   if (Private->GraphicsOutput != NULL) {\r
     //\r
 \r
   if (Private->GraphicsOutput != NULL) {\r
     //\r
-    // If Graphcis Output protocol exists, using HII Font protocol to draw. \r
+    // If Graphics Output protocol exists, using HII Font protocol to draw. \r
     //\r
     Blt->Image.Screen = Private->GraphicsOutput;\r
 \r
     //\r
     Blt->Image.Screen = Private->GraphicsOutput;\r
 \r
@@ -1803,8 +1808,8 @@ DrawUnicodeWeightAtCursorN (
 \r
     Blt->Image.Bitmap = AllocateZeroPool (Blt->Width * Blt->Height * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));\r
     if (Blt->Image.Bitmap == NULL) {\r
 \r
     Blt->Image.Bitmap = AllocateZeroPool (Blt->Width * Blt->Height * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));\r
     if (Blt->Image.Bitmap == NULL) {\r
-      SafeFreePool (Blt);\r
-      SafeFreePool (String);\r
+      FreePool (Blt);\r
+      FreePool (String);\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
 \r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
 \r
@@ -1847,15 +1852,21 @@ DrawUnicodeWeightAtCursorN (
                           );\r
     }\r
 \r
                           );\r
     }\r
 \r
-    SafeFreePool (RowInfoArray);\r
-    SafeFreePool (Blt->Image.Bitmap);\r
+    FreePool (RowInfoArray);\r
+    FreePool (Blt->Image.Bitmap);\r
   } else {\r
     Status = EFI_UNSUPPORTED;\r
   }\r
 \r
   } else {\r
     Status = EFI_UNSUPPORTED;\r
   }\r
 \r
-  SafeFreePool (Blt);\r
-  SafeFreePool (String);\r
-  SafeFreePool (FontInfo);\r
+  if (Blt != NULL) {\r
+    FreePool (Blt);\r
+  }\r
+  if (String != NULL) {\r
+    FreePool (String);\r
+  }\r
+  if (FontInfo != NULL) {\r
+    FreePool (FontInfo);\r
+  }\r
   return Status;\r
 }\r
 \r
   return Status;\r
 }\r
 \r
@@ -1872,17 +1883,17 @@ EraseCursor (
   IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This\r
   )\r
 {\r
   IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This\r
   )\r
 {\r
-  GRAPHICS_CONSOLE_DEV        *Private;\r
-  EFI_SIMPLE_TEXT_OUTPUT_MODE *CurrentMode;\r
-  INTN                        GlyphX;\r
-  INTN                        GlyphY;\r
+  GRAPHICS_CONSOLE_DEV                *Private;\r
+  EFI_SIMPLE_TEXT_OUTPUT_MODE         *CurrentMode;\r
+  INTN                                GlyphX;\r
+  INTN                                GlyphY;\r
   EFI_GRAPHICS_OUTPUT_PROTOCOL        *GraphicsOutput;\r
   EFI_GRAPHICS_OUTPUT_PROTOCOL        *GraphicsOutput;\r
-  EFI_UGA_DRAW_PROTOCOL       *UgaDraw;\r
+  EFI_UGA_DRAW_PROTOCOL               *UgaDraw;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Foreground;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Background;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION BltChar[EFI_GLYPH_HEIGHT][EFI_GLYPH_WIDTH];\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Foreground;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Background;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION BltChar[EFI_GLYPH_HEIGHT][EFI_GLYPH_WIDTH];\r
-  UINTN                       PosX;\r
-  UINTN                       PosY;\r
+  UINTN                               PosX;\r
+  UINTN                               PosY;\r
 \r
   CurrentMode = This->Mode;\r
 \r
 \r
   CurrentMode = This->Mode;\r
 \r
@@ -1937,7 +1948,7 @@ EraseCursor (
   //\r
   for (PosY = 0; PosY < EFI_GLYPH_HEIGHT; PosY++) {\r
     for (PosX = 0; PosX < EFI_GLYPH_WIDTH; PosX++) {\r
   //\r
   for (PosY = 0; PosY < EFI_GLYPH_HEIGHT; PosY++) {\r
     for (PosX = 0; PosX < EFI_GLYPH_WIDTH; PosX++) {\r
-      if ((mCursorGlyph.GlyphCol1[PosY] & (1 << PosX)) != 0) {\r
+      if ((mCursorGlyph.GlyphCol1[PosY] & (BIT0 << PosX)) != 0) {\r
         BltChar[PosY][EFI_GLYPH_WIDTH - PosX - 1].Raw ^= Foreground.Raw;\r
       }\r
     }\r
         BltChar[PosY][EFI_GLYPH_WIDTH - PosX - 1].Raw ^= Foreground.Raw;\r
       }\r
     }\r
@@ -1980,8 +1991,8 @@ EraseCursor (
   @param[in] ImageHandle    The firmware allocated handle for the EFI image.\r
   @param[in] SystemTable    A pointer to the EFI System Table.\r
 \r
   @param[in] ImageHandle    The firmware allocated handle for the EFI image.\r
   @param[in] SystemTable    A pointer to the EFI System Table.\r
 \r
-  @retval EFI_SUCCESS       The entry point is executed successfully.\r
-  @retval other             Some error occurs when executing this entry point.\r
+  @retval  EFI_SUCCESS       The entry point is executed successfully.\r
+  @return  other             Some error occurs when executing this entry point.\r
 \r
 **/\r
 EFI_STATUS\r
 \r
 **/\r
 EFI_STATUS\r
@@ -2006,7 +2017,6 @@ InitializeGraphicsConsole (
              );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
              );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-\r
   return Status;\r
 }\r
 \r
   return Status;\r
 }\r
 \r