]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Application/Shell/ConsoleLogger.c
ShellPkg: Clean up source files
[mirror_edk2.git] / ShellPkg / Application / Shell / ConsoleLogger.c
index fa7c07c7545345cc5bbfacea09b536e5a3dc1975..07e52f42312f0488122b7787d9049dac557bf4ac 100644 (file)
@@ -1,8 +1,9 @@
 /** @file\r
   Provides interface to shell console logger.\r
 \r
-  Copyright (c) 2013 Hewlett-Packard Development Company, L.P.\r
-  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2013 Hewlett-Packard Development Company, L.P.<BR>\r
+  Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2016 Hewlett-Packard Development Company, L.P.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -28,7 +29,6 @@
   @sa InstallProtocolInterface\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 ConsoleLoggerInstall(\r
   IN CONST UINTN ScreensToSave,\r
   OUT CONSOLE_LOGGER_PRIVATE_DATA **ConsoleInfo\r
@@ -91,6 +91,15 @@ ConsoleLoggerInstall(
   gST->ConsoleOutHandle = gImageHandle;\r
   gST->ConOut           = &(*ConsoleInfo)->OurConOut;\r
 \r
+  //\r
+  // Update the CRC32 in the EFI System Table header\r
+  //\r
+  gST->Hdr.CRC32 = 0;\r
+  gBS->CalculateCrc32 (\r
+        (UINT8 *)&gST->Hdr,\r
+        gST->Hdr.HeaderSize,\r
+        &gST->Hdr.CRC32\r
+        );\r
   return (Status);\r
 }\r
 \r
@@ -104,7 +113,6 @@ ConsoleLoggerInstall(
   @return other           The operation failed.  This was from UninstallProtocolInterface.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 ConsoleLoggerUninstall(\r
   IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
   )\r
@@ -126,6 +134,16 @@ ConsoleLoggerUninstall(
   gST->ConsoleOutHandle = ConsoleInfo->OldConHandle;\r
   gST->ConOut = ConsoleInfo->OldConOut;\r
 \r
+  //\r
+  // Update the CRC32 in the EFI System Table header\r
+  //\r
+  gST->Hdr.CRC32 = 0;\r
+  gBS->CalculateCrc32 (\r
+        (UINT8 *)&gST->Hdr,\r
+        gST->Hdr.HeaderSize,\r
+        &gST->Hdr.CRC32\r
+        );\r
+\r
   return (gBS->UninstallProtocolInterface(gImageHandle, &gEfiSimpleTextOutProtocolGuid, (VOID*)&ConsoleInfo->OurConOut));\r
 }\r
 \r
@@ -142,7 +160,6 @@ ConsoleLoggerUninstall(
   @param[in] ConsoleInfo  The pointer to the instance of the console logger information.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 ConsoleLoggerDisplayHistory(\r
   IN CONST BOOLEAN  Forward,\r
   IN CONST UINTN    Rows,\r
@@ -218,7 +235,6 @@ ConsoleLoggerDisplayHistory(
   @sa UpdateDisplayFromHistory\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 ConsoleLoggerStopHistory(\r
   IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
   )\r
@@ -227,6 +243,12 @@ ConsoleLoggerStopHistory(
   if (ConsoleInfo->CurrentStartRow == ConsoleInfo->OriginalStartRow) {\r
     return (EFI_SUCCESS);\r
   }\r
+\r
+  //\r
+  // Clear the screen\r
+  //\r
+  ConsoleInfo->OldConOut->ClearScreen(ConsoleInfo->OldConOut);\r
+\r
   ConsoleInfo->CurrentStartRow = ConsoleInfo->OriginalStartRow;\r
   return (UpdateDisplayFromHistory(ConsoleInfo));\r
 }\r
@@ -239,7 +261,6 @@ ConsoleLoggerStopHistory(
   @return other           The operation failed.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 UpdateDisplayFromHistory(\r
   IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
   )\r
@@ -301,7 +322,7 @@ UpdateDisplayFromHistory(
         //\r
         StringSegmentEndChar = CHAR_NULL;\r
         for ( StringSegmentEnd = StringSegment\r
-            ; StringSegmentEnd != CHAR_NULL\r
+            ; *StringSegmentEnd != CHAR_NULL\r
             ; StringSegmentEnd++\r
             , Column++\r
            ){\r
@@ -410,6 +431,10 @@ ConsoleLoggerReset (
   //\r
   if (!EFI_ERROR (Status)) {\r
     ConsoleLoggerResetBuffers(ConsoleInfo);\r
+    if (ExtendedVerification) {\r
+      ConsoleInfo->OriginalStartRow = 0;\r
+      ConsoleInfo->CurrentStartRow = 0;\r
+    }\r
   }\r
 \r
   return Status;\r
@@ -424,7 +449,6 @@ ConsoleLoggerReset (
   @param[in] ConsoleInfo  The pointer to the instance of the console logger information.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 AppendStringToHistory(\r
   IN CONST CHAR16 *String,\r
   IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
@@ -579,7 +603,6 @@ AppendStringToHistory(
                                   rendered and were skipped.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 ConsoleLoggerOutputStringSplit(\r
   IN CONST CHAR16   *String,\r
   IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
@@ -608,7 +631,6 @@ ConsoleLoggerOutputStringSplit(
   @return other         Break was choosen\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 ConsoleLoggerDoPageBreak(\r
   VOID\r
   )\r
@@ -667,7 +689,6 @@ ConsoleLoggerDoPageBreak(
                                   rendered and were skipped.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 ConsoleLoggerPrintWithPageBreak(\r
   IN CONST CHAR16   *String,\r
   IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
@@ -963,8 +984,11 @@ ConsoleLoggerSetMode (
   // Check that the buffers are still correct for logging\r
   //\r
   if (!EFI_ERROR (Status)) {\r
-    ConsoleInfo->OurConOut.Mode = gST->ConOut->Mode;\r
+    ConsoleInfo->OurConOut.Mode = ConsoleInfo->OldConOut->Mode;\r
     ConsoleLoggerResetBuffers(ConsoleInfo);\r
+    ConsoleInfo->OriginalStartRow = 0;\r
+    ConsoleInfo->CurrentStartRow = 0;\r
+    ConsoleInfo->OurConOut.ClearScreen (&ConsoleInfo->OurConOut);\r
   }\r
 \r
   return Status;\r
@@ -1175,7 +1199,6 @@ ConsoleLoggerEnableCursor (
   history buffers.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 ConsoleLoggerResetBuffers(\r
   IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
   )\r