--- /dev/null
+/** @file\r
+GUID definition for TtyTerm terminal type. The TtyTerm terminal aims to\r
+provide support for modern *nix terminals.\r
+\r
+\r
+Copyright (c) 2015 Linaro Ltd.\r
+This program and the accompanying materials are licensed and made\r
+available under the terms and conditions of the BSD License that\r
+accompanies this distribution. The full text of the license may be found\r
+at http://opensource.org/licenses/bsd-license.php.\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __TTYTERM_H__\r
+#define __TTYTERM_H__\r
+\r
+#define EFI_TTY_TERM_GUID \\r
+ {0x7d916d80, 0x5bb1, 0x458c, {0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94 } }\r
+\r
+extern EFI_GUID gEfiTtyTermGuid;\r
+\r
+#endif\r
gLzmaCustomDecompressGuid = { 0xEE4E5898, 0x3914, 0x4259, { 0x9D, 0x6E, 0xDC, 0x7B, 0xD7, 0x94, 0x03, 0xCF }}\r
gLzmaF86CustomDecompressGuid = { 0xD42AE6BD, 0x1352, 0x4bfb, { 0x90, 0x9A, 0xCA, 0x72, 0xA6, 0xEA, 0xE8, 0x89 }}\r
\r
+ ## Include/Guid/TtyTerm.h\r
+ gEfiTtyTermGuid = { 0x7d916d80, 0x5bb1, 0x458c, {0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94 }}\r
+\r
[Ppis]\r
## Include/Ppi/AtaController.h\r
gPeiAtaControllerPpiGuid = { 0xa45e60d1, 0xc719, 0x44aa, { 0xb0, 0x7a, 0xaa, 0x77, 0x7f, 0x85, 0x90, 0x6d }}\r
&gEfiPcAnsiGuid,\r
&gEfiVT100Guid,\r
&gEfiVT100PlusGuid,\r
- &gEfiVTUTF8Guid\r
+ &gEfiVTUTF8Guid,\r
+ &gEfiTtyTermGuid\r
};\r
\r
\r
\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
\r
TerminalType = VTUTF8TYPE;\r
\r
+ } else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
+\r
+ TerminalType = TTYTERMTYPE;\r
+\r
} else {\r
return NULL;\r
}\r
\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
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
);\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
//\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
// 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
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
\r
#include <Guid/GlobalVariable.h>\r
#include <Guid/PcAnsi.h>\r
+#include <Guid/TtyTerm.h>\r
#include <Guid/StatusCodeDataTypeVariable.h>\r
\r
#include <Protocol/SimpleTextOut.h>\r
#define VT100TYPE 1\r
#define VT100PLUSTYPE 2\r
#define VTUTF8TYPE 3\r
+#define TTYTERMTYPE 4\r
\r
#define LEFTOPENBRACKET 0x5b // '['\r
#define ACAP 0x41\r
case PCANSITYPE:\r
case VT100TYPE:\r
case VT100PLUSTYPE:\r
+ case TTYTERMTYPE:\r
AnsiRawDataToUnicode (TerminalDevice);\r
UnicodeToEfiKey (TerminalDevice);\r
break;\r
if (TerminalDevice->TerminalType == PCANSITYPE ||\r
TerminalDevice->TerminalType == VT100TYPE ||\r
TerminalDevice->TerminalType == VT100PLUSTYPE ||\r
- TerminalDevice->TerminalType == VTUTF8TYPE) {\r
+ TerminalDevice->TerminalType == VTUTF8TYPE ||\r
+ TerminalDevice->TerminalType == TTYTERMTYPE) {\r
switch (UnicodeChar) {\r
case 'A':\r
Key.ScanCode = SCAN_UP;\r
case PCANSITYPE:\r
case VT100TYPE:\r
case VT100PLUSTYPE:\r
+ case TTYTERMTYPE:\r
\r
if (!TerminalIsValidTextGraphics (*WString, &GraphicChar, &AsciiChar)) {\r
//\r
case PCANSITYPE:\r
case VT100TYPE:\r
case VT100PLUSTYPE:\r
+ case TTYTERMTYPE:\r
Status = AnsiTestString (TerminalDevice, WString);\r
break;\r
\r
gEfiVT100Guid ## SOMETIMES_CONSUMES ## GUID # used with a Vendor-Defined Messaging Device Path\r
gEfiVT100PlusGuid ## SOMETIMES_CONSUMES ## GUID # used with a Vendor-Defined Messaging Device Path\r
gEfiPcAnsiGuid ## SOMETIMES_CONSUMES ## GUID # used with a Vendor-Defined Messaging Device Path\r
+ gEfiTtyTermGuid ## SOMETIMES_CONSUMES ## GUID # used with a Vendor-Defined Messaging Device Path\r
gEdkiiStatusCodeDataTypeVariableGuid ## SOMETIMES_CONSUMES ## GUID\r
\r
[Protocols]\r