]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
MdeModulePkg Terminal: Add text mode for PcdConOutColumn/Row
[mirror_edk2.git] / MdeModulePkg / Universal / Console / TerminalDxe / TerminalConOut.c
index 17b02a5c2933bf2d7c4841876ed0cd0863ec58c0..8f2675228ff7f3350c4c5681ed2cff4bff764723 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   Implementation for EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL protocol.\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<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
 http://opensource.org/licenses/bsd-license.php\r
@@ -124,7 +124,7 @@ TerminalConOutReset (
     //\r
     REPORT_STATUS_CODE_WITH_DEVICE_PATH (\r
       EFI_PROGRESS_CODE,\r
-      PcdGet32 (PcdStatusCodeValueRemoteConsoleReset),\r
+      (EFI_PERIPHERAL_REMOTE_CONSOLE | EFI_P_PC_RESET),\r
       TerminalDevice->DevicePath\r
       );\r
 \r
@@ -135,7 +135,7 @@ TerminalConOutReset (
       //\r
       REPORT_STATUS_CODE_WITH_DEVICE_PATH (\r
         EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
-        PcdGet32 (PcdStatusCodeValueRemoteConsoleError),\r
+        (EFI_PERIPHERAL_REMOTE_CONSOLE | EFI_P_EC_CONTROLLER_ERROR),\r
         TerminalDevice->DevicePath\r
         );\r
 \r
@@ -182,7 +182,7 @@ TerminalConOutOutputString (
   UINTN                       Length;\r
   UTF8_CHAR                   Utf8Char;\r
   CHAR8                       GraphicChar;\r
-  CHAR8                       AsciiChar = 0;\r
+  CHAR8                       AsciiChar;\r
   EFI_STATUS                  Status;\r
   UINT8                       ValidBytes;\r
   //\r
@@ -193,6 +193,7 @@ TerminalConOutOutputString (
 \r
   ValidBytes  = 0;\r
   Warning     = FALSE;\r
+  AsciiChar   = 0;\r
 \r
   //\r
   //  get Terminal device data structure pointer.\r
@@ -204,7 +205,7 @@ TerminalConOutOutputString (
   //\r
   Mode = This->Mode;\r
 \r
-  if (Mode->Mode > 2) {\r
+  if (Mode->Mode >= TERMINAL_MAX_MODE) {\r
     return EFI_UNSUPPORTED;\r
   }\r
 \r
@@ -327,7 +328,7 @@ TerminalConOutOutputString (
 OutputError:\r
   REPORT_STATUS_CODE_WITH_DEVICE_PATH (\r
     EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
-    PcdGet32 (PcdStatusCodeValueRemoteConsoleOutputError),\r
+    (EFI_PERIPHERAL_REMOTE_CONSOLE | EFI_P_EC_OUTPUT_ERROR),\r
     TerminalDevice->DevicePath\r
     );\r
 \r
@@ -413,7 +414,7 @@ TerminalConOutQueryMode (
   OUT UINTN                            *Rows\r
   )\r
 {\r
-  if (This->Mode->MaxMode > 3) {\r
+  if (This->Mode->MaxMode > TERMINAL_MAX_MODE) {\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
@@ -429,6 +430,16 @@ TerminalConOutQueryMode (
     *Columns  = MODE2_COLUMN_COUNT;\r
     *Rows     = MODE2_ROW_COUNT;\r
     return EFI_SUCCESS;\r
+  } else if (ModeNumber == 3) {\r
+    *Columns  = (UINTN) PcdGet32 (PcdConOutColumn);\r
+    if (*Columns == 0) {\r
+      *Columns = MODE0_COLUMN_COUNT;\r
+    }\r
+    *Rows  = (UINTN) PcdGet32 (PcdConOutRow);\r
+    if (*Rows == 0) {\r
+      *Rows     = MODE0_ROW_COUNT;\r
+    }\r
+    return EFI_SUCCESS;\r
   }\r
 \r
   return EFI_UNSUPPORTED;\r
@@ -465,7 +476,7 @@ TerminalConOutSetMode (
   //\r
   TerminalDevice = TERMINAL_CON_OUT_DEV_FROM_THIS (This);\r
 \r
-  if (ModeNumber > 2) {\r
+  if (ModeNumber >= TERMINAL_MAX_MODE) {\r
     return EFI_UNSUPPORTED;\r
   }\r
 \r