]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg Terminal: Add text mode for PcdConOutColumn/Row
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 23 Mar 2011 02:11:31 +0000 (02:11 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 23 Mar 2011 02:11:31 +0000 (02:11 +0000)
Add a new text mode with a resolution of PcdConOutColumn x PcdConOutRow.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11416 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h
MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf

index 04c79aff5a426a140d8931e8880cb33a6a4af8d6..313092c2c952ea0c8886fa2f2b4935509a7a7c87 100644 (file)
@@ -724,7 +724,7 @@ TerminalDriverBindingStart (
                          );\r
     SimpleTextOutput->Mode = &TerminalDevice->SimpleTextOutputMode;\r
 \r
-    TerminalDevice->SimpleTextOutputMode.MaxMode = 3;\r
+    TerminalDevice->SimpleTextOutputMode.MaxMode = TERMINAL_MAX_MODE;\r
     //\r
     // For terminal devices, cursor is always visible\r
     //\r
index 8a6e9979168096cdf37193d7c595530e3547b195..34c1c02f3d17af0cd7ae8f646576e224e71c1c15 100644 (file)
@@ -143,6 +143,12 @@ typedef union {
 #define MODE2_COLUMN_COUNT        100\r
 #define MODE2_ROW_COUNT           31\r
 \r
+//\r
+// MODE3 is defined by PcdConOutColumn & PcdConOutRow\r
+//\r
+\r
+#define TERMINAL_MAX_MODE 4\r
+\r
 #define BACKSPACE                 8\r
 #define ESC                       27\r
 #define CSI                       0x9B\r
index 2f1762f037202a47e5b81ee09ba6bbe8e6af9078..8f2675228ff7f3350c4c5681ed2cff4bff764723 100644 (file)
@@ -205,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
@@ -414,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
@@ -430,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
@@ -466,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
index a20ade2a31ad77dcaeff8e3db4d0700c65581912..7d67eba81ae09efdfb6b4b57b8219ac7e107f6fe 100644 (file)
@@ -44,6 +44,7 @@
 \r
 [Packages]\r
   MdePkg/MdePkg.dec\r
+  MdeModulePkg/MdeModulePkg.dec\r
 \r
 [LibraryClasses]\r
   DevicePathLib\r
@@ -74,6 +75,8 @@
 \r
 [Pcd]\r
   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow\r
 \r
 # [Event]\r
 #   ##\r
@@ -82,3 +85,4 @@
 #   EVENT_TYPE_RELATIVE_TIMER                   ## PRODUCES\r
 #\r
 #\r
+\r