]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
Add "TtyTerm" terminal type to TerminalDxe
[mirror_edk2.git] / MdeModulePkg / Universal / Console / TerminalDxe / Terminal.c
index 966fb79ce4b3f1643a71a57b4938391501f5cecf..babb097e57895428e7dada89a275c1f2ca56d43f 100644 (file)
@@ -33,7 +33,8 @@ EFI_GUID  *gTerminalType[] = {
   &gEfiPcAnsiGuid,\r
   &gEfiVT100Guid,\r
   &gEfiVT100PlusGuid,\r
-  &gEfiVTUTF8Guid\r
+  &gEfiVTUTF8Guid,\r
+  &gEfiTtyTermGuid\r
 };\r
 \r
 \r
@@ -152,12 +153,13 @@ TerminalDriverBindingSupported (
 \r
       }\r
       //\r
-      // only supports PC ANSI, VT100, VT100+ and VT-UTF8 terminal types\r
+      // only supports PC ANSI, VT100, VT100+, VT-UTF8, and TtyTerm terminal types\r
       //\r
       if (!CompareGuid (&Node->Guid, &gEfiPcAnsiGuid) &&\r
           !CompareGuid (&Node->Guid, &gEfiVT100Guid) &&\r
           !CompareGuid (&Node->Guid, &gEfiVT100PlusGuid) &&\r
-          !CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
+          !CompareGuid (&Node->Guid, &gEfiVTUTF8Guid) &&\r
+          !CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
 \r
         return EFI_UNSUPPORTED;\r
       }\r
@@ -275,6 +277,10 @@ BuildTerminalDevpath  (
 \r
     TerminalType = VTUTF8TYPE;\r
 \r
+  } else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
+\r
+    TerminalType = TTYTERMTYPE;\r
+\r
   } else {\r
     return NULL;\r
   }\r
@@ -708,9 +714,9 @@ TerminalDriverBindingStart (
 \r
       TerminalType = PcdGet8 (PcdDefaultTerminalType);\r
       //\r
-      // Must be between PCANSITYPE (0) and VTUTF8TYPE (3)\r
+      // Must be between PCANSITYPE (0) and TTYTERMTYPE (4)\r
       //\r
-      ASSERT (TerminalType <= VTUTF8TYPE);\r
+      ASSERT (TerminalType <= TTYTERMTYPE);\r
 \r
       CopyMem (&DefaultNode->Guid, gTerminalType[TerminalType], sizeof (EFI_GUID));\r
       RemainingDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) DefaultNode;\r
@@ -728,6 +734,8 @@ TerminalDriverBindingStart (
         TerminalType = VT100PLUSTYPE;\r
       } else if (CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
         TerminalType = VTUTF8TYPE;\r
+      } else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
+        TerminalType = TTYTERMTYPE;\r
       } else {\r
         goto Error;\r
       }\r
@@ -926,6 +934,24 @@ TerminalDriverBindingStart (
         );\r
 \r
       break;\r
+\r
+    case TTYTERMTYPE:\r
+      AddUnicodeString2 (\r
+        "eng",\r
+        gTerminalComponentName.SupportedLanguages,\r
+        &TerminalDevice->ControllerNameTable,\r
+        (CHAR16 *)L"Tty Terminal Serial Console",\r
+        TRUE\r
+        );\r
+      AddUnicodeString2 (\r
+        "en",\r
+        gTerminalComponentName2.SupportedLanguages,\r
+        &TerminalDevice->ControllerNameTable,\r
+        (CHAR16 *)L"Tty Terminal Serial Console",\r
+        FALSE\r
+        );\r
+\r
+      break;\r
     }\r
 \r
     //\r
@@ -1441,7 +1467,7 @@ TerminalUpdateConsoleDevVariable (
   //\r
   // Append terminal device path onto the variable.\r
   //\r
-  for (TerminalType = PCANSITYPE; TerminalType <= VTUTF8TYPE; TerminalType++) {\r
+  for (TerminalType = PCANSITYPE; TerminalType <= TTYTERMTYPE; TerminalType++) {\r
     SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);\r
     NewVariable = AppendDevicePathInstance (Variable, TempDevicePath);\r
     ASSERT (NewVariable != NULL);\r
@@ -1554,7 +1580,7 @@ TerminalRemoveConsoleDevVariable (
     // Loop through all the terminal types that this driver supports\r
     //\r
     Match = FALSE;\r
-    for (TerminalType = PCANSITYPE; TerminalType <= VTUTF8TYPE; TerminalType++) {\r
+    for (TerminalType = PCANSITYPE; TerminalType <= TTYTERMTYPE; TerminalType++) {\r
 \r
       SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);\r
 \r
@@ -1658,6 +1684,10 @@ SetTerminalDevicePath (
     CopyGuid (&Node.Guid, &gEfiVTUTF8Guid);\r
     break;\r
 \r
+  case TTYTERMTYPE:\r
+    CopyGuid (&Node.Guid, &gEfiTtyTermGuid);\r
+    break;\r
+\r
   default:\r
     return EFI_UNSUPPORTED;\r
   }\r