Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Produces Simple Text Input Protocol, Simple Text Input Extended Protocol and\r
Simple Text Output Protocol upon Serial IO Protocol.\r
\r
Produces Simple Text Input Protocol, Simple Text Input Extended Protocol and\r
Simple Text Output Protocol upon Serial IO Protocol.\r
\r
-Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2017, 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
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
)\r
{\r
EFI_DEVICE_PATH_PROTOCOL *TerminalDevicePath;\r
)\r
{\r
EFI_DEVICE_PATH_PROTOCOL *TerminalDevicePath;\r
+ TERMINAL_TYPE TerminalType;\r
VENDOR_DEVICE_PATH *Node;\r
EFI_STATUS Status;\r
\r
VENDOR_DEVICE_PATH *Node;\r
EFI_STATUS Status;\r
\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) {\r
\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) {\r
\r
- TerminalType = PCANSITYPE;\r
+ TerminalType = TerminalTypePcAnsi;\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiVT100Guid)) {\r
\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiVT100Guid)) {\r
\r
- TerminalType = VT100TYPE;\r
+ TerminalType = TerminalTypeVt100;\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiVT100PlusGuid)) {\r
\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiVT100PlusGuid)) {\r
\r
- TerminalType = VT100PLUSTYPE;\r
+ TerminalType = TerminalTypeVt100Plus;\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
\r
- TerminalType = VTUTF8TYPE;\r
+ TerminalType = TerminalTypeVtUtf8;\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
\r
- TerminalType = TTYTERMTYPE;\r
+ TerminalType = TerminalTypeTtyTerm;\r
\r
} else {\r
return NULL;\r
\r
} else {\r
return NULL;\r
EFI_SERIAL_IO_MODE *Mode;\r
UINTN SerialInTimeOut;\r
TERMINAL_DEV *TerminalDevice;\r
EFI_SERIAL_IO_MODE *Mode;\r
UINTN SerialInTimeOut;\r
TERMINAL_DEV *TerminalDevice;\r
+ TERMINAL_TYPE TerminalType;\r
EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenInfoBuffer;\r
UINTN EntryCount;\r
UINTN Index;\r
EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenInfoBuffer;\r
UINTN EntryCount;\r
UINTN Index;\r
if (RemainingDevicePath == NULL) {\r
TerminalType = PcdGet8 (PcdDefaultTerminalType);\r
//\r
if (RemainingDevicePath == NULL) {\r
TerminalType = PcdGet8 (PcdDefaultTerminalType);\r
//\r
- // Must be between PCANSITYPE (0) and TTYTERMTYPE (4)\r
+ // Must be between TerminalTypePcAnsi (0) and TerminalTypeTtyTerm (4)\r
- ASSERT (TerminalType <= TTYTERMTYPE);\r
+ ASSERT (TerminalType <= TerminalTypeTtyTerm);\r
} else if (!IsDevicePathEnd (RemainingDevicePath)) {\r
//\r
// If RemainingDevicePath isn't the End of Device Path Node,\r
} else if (!IsDevicePathEnd (RemainingDevicePath)) {\r
//\r
// If RemainingDevicePath isn't the End of Device Path Node,\r
//\r
Node = (VENDOR_DEVICE_PATH *)RemainingDevicePath;\r
if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) {\r
//\r
Node = (VENDOR_DEVICE_PATH *)RemainingDevicePath;\r
if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) {\r
- TerminalType = PCANSITYPE;\r
+ TerminalType = TerminalTypePcAnsi;\r
} else if (CompareGuid (&Node->Guid, &gEfiVT100Guid)) {\r
} else if (CompareGuid (&Node->Guid, &gEfiVT100Guid)) {\r
- TerminalType = VT100TYPE;\r
+ TerminalType = TerminalTypeVt100;\r
} else if (CompareGuid (&Node->Guid, &gEfiVT100PlusGuid)) {\r
} else if (CompareGuid (&Node->Guid, &gEfiVT100PlusGuid)) {\r
- TerminalType = VT100PLUSTYPE;\r
+ TerminalType = TerminalTypeVt100Plus;\r
} else if (CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
} else if (CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
- TerminalType = VTUTF8TYPE;\r
+ TerminalType = TerminalTypeVtUtf8;\r
} else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
} else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
- TerminalType = TTYTERMTYPE;\r
+ TerminalType = TerminalTypeTtyTerm;\r
} else {\r
goto Error;\r
}\r
} else {\r
goto Error;\r
}\r
//\r
TerminalDevice->ControllerNameTable = NULL;\r
switch (TerminalDevice->TerminalType) {\r
//\r
TerminalDevice->ControllerNameTable = NULL;\r
switch (TerminalDevice->TerminalType) {\r
+ case TerminalTypePcAnsi:\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
+ case TerminalTypeVt100:\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
+ case TerminalTypeVt100Plus:\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
+ case TerminalTypeVtUtf8:\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
+ case TerminalTypeTtyTerm:\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
AddUnicodeString2 (\r
"eng",\r
gTerminalComponentName.SupportedLanguages,\r
EFI_STATUS Status;\r
UINTN NameSize;\r
UINTN VariableSize;\r
EFI_STATUS Status;\r
UINTN NameSize;\r
UINTN VariableSize;\r
+ TERMINAL_TYPE TerminalType;\r
EFI_DEVICE_PATH_PROTOCOL *Variable;\r
EFI_DEVICE_PATH_PROTOCOL *NewVariable;\r
EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;\r
EFI_DEVICE_PATH_PROTOCOL *Variable;\r
EFI_DEVICE_PATH_PROTOCOL *NewVariable;\r
EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;\r
//\r
// Append terminal device path onto the variable.\r
//\r
//\r
// Append terminal device path onto the variable.\r
//\r
- for (TerminalType = PCANSITYPE; TerminalType <= TTYTERMTYPE; TerminalType++) {\r
+ for (TerminalType = TerminalTypePcAnsi; TerminalType <= TerminalTypeTtyTerm; TerminalType++) {\r
SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);\r
NewVariable = AppendDevicePathInstance (Variable, TempDevicePath);\r
ASSERT (NewVariable != NULL);\r
SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);\r
NewVariable = AppendDevicePathInstance (Variable, TempDevicePath);\r
ASSERT (NewVariable != NULL);\r
BOOLEAN Match;\r
UINTN VariableSize;\r
UINTN InstanceSize;\r
BOOLEAN Match;\r
UINTN VariableSize;\r
UINTN InstanceSize;\r
+ TERMINAL_TYPE TerminalType;\r
EFI_DEVICE_PATH_PROTOCOL *Instance;\r
EFI_DEVICE_PATH_PROTOCOL *Variable;\r
EFI_DEVICE_PATH_PROTOCOL *OriginalVariable;\r
EFI_DEVICE_PATH_PROTOCOL *Instance;\r
EFI_DEVICE_PATH_PROTOCOL *Variable;\r
EFI_DEVICE_PATH_PROTOCOL *OriginalVariable;\r
// Loop through all the terminal types that this driver supports\r
//\r
Match = FALSE;\r
// Loop through all the terminal types that this driver supports\r
//\r
Match = FALSE;\r
- for (TerminalType = PCANSITYPE; TerminalType <= TTYTERMTYPE; TerminalType++) {\r
+ for (TerminalType = TerminalTypePcAnsi; TerminalType <= TerminalTypeTtyTerm; TerminalType++) {\r
\r
SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);\r
\r
\r
SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);\r
\r
**/\r
EFI_STATUS\r
SetTerminalDevicePath (\r
**/\r
EFI_STATUS\r
SetTerminalDevicePath (\r
- IN UINT8 TerminalType,\r
+ IN TERMINAL_TYPE TerminalType,\r
IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,\r
OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath\r
)\r
IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,\r
OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath\r
)\r
//\r
switch (TerminalType) {\r
\r
//\r
switch (TerminalType) {\r
\r
+ case TerminalTypePcAnsi:\r
CopyGuid (&Node.Guid, &gEfiPcAnsiGuid);\r
break;\r
\r
CopyGuid (&Node.Guid, &gEfiPcAnsiGuid);\r
break;\r
\r
+ case TerminalTypeVt100:\r
CopyGuid (&Node.Guid, &gEfiVT100Guid);\r
break;\r
\r
CopyGuid (&Node.Guid, &gEfiVT100Guid);\r
break;\r
\r
+ case TerminalTypeVt100Plus:\r
CopyGuid (&Node.Guid, &gEfiVT100PlusGuid);\r
break;\r
\r
CopyGuid (&Node.Guid, &gEfiVT100PlusGuid);\r
break;\r
\r
+ case TerminalTypeVtUtf8:\r
CopyGuid (&Node.Guid, &gEfiVTUTF8Guid);\r
break;\r
\r
CopyGuid (&Node.Guid, &gEfiVTUTF8Guid);\r
break;\r
\r
+ case TerminalTypeTtyTerm:\r
CopyGuid (&Node.Guid, &gEfiTtyTermGuid);\r
break;\r
\r
CopyGuid (&Node.Guid, &gEfiTtyTermGuid);\r
break;\r
\r
/** @file\r
Header file for Terminal driver.\r
\r
/** @file\r
Header file for Terminal driver.\r
\r
-Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
Copyright (C) 2016 Silicon Graphics, Inc. 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
Copyright (C) 2016 Silicon Graphics, Inc. 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
EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;\r
LIST_ENTRY NotifyEntry;\r
} TERMINAL_CONSOLE_IN_EX_NOTIFY;\r
EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;\r
LIST_ENTRY NotifyEntry;\r
} TERMINAL_CONSOLE_IN_EX_NOTIFY;\r
+\r
+typedef enum {\r
+ TerminalTypePcAnsi,\r
+ TerminalTypeVt100,\r
+ TerminalTypeVt100Plus,\r
+ TerminalTypeVtUtf8,\r
+ TerminalTypeTtyTerm\r
+} TERMINAL_TYPE;\r
+\r
typedef struct {\r
UINTN Signature;\r
EFI_HANDLE Handle;\r
typedef struct {\r
UINTN Signature;\r
EFI_HANDLE Handle;\r
+ TERMINAL_TYPE TerminalType;\r
EFI_SERIAL_IO_PROTOCOL *SerialIo;\r
EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleInput;\r
EFI_SERIAL_IO_PROTOCOL *SerialIo;\r
EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleInput;\r
UINT8 Utf8_3[3];\r
} UTF8_CHAR;\r
\r
UINT8 Utf8_3[3];\r
} UTF8_CHAR;\r
\r
-#define PCANSITYPE 0\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
#define BCAP 0x42\r
#define LEFTOPENBRACKET 0x5b // '['\r
#define ACAP 0x41\r
#define BCAP 0x42\r
**/\r
EFI_STATUS\r
SetTerminalDevicePath (\r
**/\r
EFI_STATUS\r
SetTerminalDevicePath (\r
- IN UINT8 TerminalType,\r
+ IN TERMINAL_TYPE TerminalType,\r
IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,\r
OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath\r
);\r
IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,\r
OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath\r
);\r
Implementation for EFI_SIMPLE_TEXT_INPUT_PROTOCOL protocol.\r
\r
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>\r
Implementation for EFI_SIMPLE_TEXT_INPUT_PROTOCOL protocol.\r
\r
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>\r
-Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
Copyright (C) 2016 Silicon Graphics, Inc. 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
Copyright (C) 2016 Silicon Graphics, Inc. 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
{\r
switch (TerminalDevice->TerminalType) {\r
\r
{\r
switch (TerminalDevice->TerminalType) {\r
\r
- case PCANSITYPE:\r
- case VT100TYPE:\r
- case VT100PLUSTYPE:\r
- case TTYTERMTYPE:\r
+ case TerminalTypePcAnsi:\r
+ case TerminalTypeVt100:\r
+ case TerminalTypeVt100Plus:\r
+ case TerminalTypeTtyTerm:\r
AnsiRawDataToUnicode (TerminalDevice);\r
UnicodeToEfiKey (TerminalDevice);\r
break;\r
\r
AnsiRawDataToUnicode (TerminalDevice);\r
UnicodeToEfiKey (TerminalDevice);\r
break;\r
\r
+ case TerminalTypeVtUtf8:\r
//\r
// Process all the raw data in the RawFIFO,\r
// put the processed key into UnicodeFIFO.\r
//\r
// Process all the raw data in the RawFIFO,\r
// put the processed key into UnicodeFIFO.\r
- if (UnicodeChar == 'O' && (TerminalDevice->TerminalType == VT100TYPE ||\r
- TerminalDevice->TerminalType == TTYTERMTYPE)) {\r
+ if (UnicodeChar == 'O' && (TerminalDevice->TerminalType == TerminalTypeVt100 ||\r
+ TerminalDevice->TerminalType == TerminalTypeTtyTerm)) {\r
TerminalDevice->InputState |= INPUT_STATE_O;\r
TerminalDevice->ResetState = RESET_STATE_DEFAULT;\r
continue;\r
TerminalDevice->InputState |= INPUT_STATE_O;\r
TerminalDevice->ResetState = RESET_STATE_DEFAULT;\r
continue;\r
\r
Key.ScanCode = SCAN_NULL;\r
\r
\r
Key.ScanCode = SCAN_NULL;\r
\r
- if (TerminalDevice->TerminalType == VT100PLUSTYPE ||\r
- TerminalDevice->TerminalType == VTUTF8TYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypeVt100Plus ||\r
+ TerminalDevice->TerminalType == TerminalTypeVtUtf8) {\r
switch (UnicodeChar) {\r
case '1':\r
Key.ScanCode = SCAN_F1;\r
switch (UnicodeChar) {\r
case '1':\r
Key.ScanCode = SCAN_F1;\r
\r
Key.ScanCode = SCAN_NULL;\r
\r
\r
Key.ScanCode = SCAN_NULL;\r
\r
- if (TerminalDevice->TerminalType == VT100TYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {\r
switch (UnicodeChar) {\r
case 'P':\r
Key.ScanCode = SCAN_F1;\r
switch (UnicodeChar) {\r
case 'P':\r
Key.ScanCode = SCAN_F1;\r
- } else if (TerminalDevice->TerminalType == TTYTERMTYPE) {\r
+ } else if (TerminalDevice->TerminalType == TerminalTypeTtyTerm) {\r
/* Also accept VT100 escape codes for F1-F4, HOME and END for TTY term */\r
switch (UnicodeChar) {\r
case 'P':\r
/* Also accept VT100 escape codes for F1-F4, HOME and END for TTY term */\r
switch (UnicodeChar) {\r
case 'P':\r
\r
Key.ScanCode = SCAN_NULL;\r
\r
\r
Key.ScanCode = SCAN_NULL;\r
\r
- if (TerminalDevice->TerminalType == PCANSITYPE ||\r
- TerminalDevice->TerminalType == VT100TYPE ||\r
- TerminalDevice->TerminalType == VT100PLUSTYPE ||\r
- TerminalDevice->TerminalType == VTUTF8TYPE ||\r
- TerminalDevice->TerminalType == TTYTERMTYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||\r
+ TerminalDevice->TerminalType == TerminalTypeVt100 ||\r
+ TerminalDevice->TerminalType == TerminalTypeVt100Plus ||\r
+ TerminalDevice->TerminalType == TerminalTypeVtUtf8 ||\r
+ TerminalDevice->TerminalType == TerminalTypeTtyTerm) {\r
switch (UnicodeChar) {\r
case 'A':\r
Key.ScanCode = SCAN_UP;\r
switch (UnicodeChar) {\r
case 'A':\r
Key.ScanCode = SCAN_UP;\r
Key.ScanCode = SCAN_LEFT;\r
break;\r
case 'H':\r
Key.ScanCode = SCAN_LEFT;\r
break;\r
case 'H':\r
- if (TerminalDevice->TerminalType == PCANSITYPE ||\r
- TerminalDevice->TerminalType == VT100TYPE ||\r
- TerminalDevice->TerminalType == TTYTERMTYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||\r
+ TerminalDevice->TerminalType == TerminalTypeVt100 ||\r
+ TerminalDevice->TerminalType == TerminalTypeTtyTerm) {\r
Key.ScanCode = SCAN_HOME;\r
}\r
break;\r
case 'F':\r
Key.ScanCode = SCAN_HOME;\r
}\r
break;\r
case 'F':\r
- if (TerminalDevice->TerminalType == PCANSITYPE ||\r
- TerminalDevice->TerminalType == TTYTERMTYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||\r
+ TerminalDevice->TerminalType == TerminalTypeTtyTerm) {\r
Key.ScanCode = SCAN_END;\r
}\r
break;\r
case 'K':\r
Key.ScanCode = SCAN_END;\r
}\r
break;\r
case 'K':\r
- if (TerminalDevice->TerminalType == VT100TYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {\r
Key.ScanCode = SCAN_END;\r
}\r
break;\r
case 'L':\r
case '@':\r
Key.ScanCode = SCAN_END;\r
}\r
break;\r
case 'L':\r
case '@':\r
- if (TerminalDevice->TerminalType == PCANSITYPE ||\r
- TerminalDevice->TerminalType == VT100TYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||\r
+ TerminalDevice->TerminalType == TerminalTypeVt100) {\r
Key.ScanCode = SCAN_INSERT;\r
}\r
break;\r
case 'X':\r
Key.ScanCode = SCAN_INSERT;\r
}\r
break;\r
case 'X':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_DELETE;\r
}\r
break;\r
case 'P':\r
Key.ScanCode = SCAN_DELETE;\r
}\r
break;\r
case 'P':\r
- if (TerminalDevice->TerminalType == VT100TYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {\r
Key.ScanCode = SCAN_DELETE;\r
Key.ScanCode = SCAN_DELETE;\r
- } else if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ } else if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F4;\r
}\r
break;\r
case 'I':\r
Key.ScanCode = SCAN_F4;\r
}\r
break;\r
case 'I':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_PAGE_UP;\r
}\r
break;\r
case 'V':\r
Key.ScanCode = SCAN_PAGE_UP;\r
}\r
break;\r
case 'V':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F10;\r
}\r
break;\r
case '?':\r
Key.ScanCode = SCAN_F10;\r
}\r
break;\r
case '?':\r
- if (TerminalDevice->TerminalType == VT100TYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {\r
Key.ScanCode = SCAN_PAGE_UP;\r
}\r
break;\r
case 'G':\r
Key.ScanCode = SCAN_PAGE_UP;\r
}\r
break;\r
case 'G':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_PAGE_DOWN;\r
}\r
break;\r
case 'U':\r
Key.ScanCode = SCAN_PAGE_DOWN;\r
}\r
break;\r
case 'U':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F9;\r
}\r
break;\r
case '/':\r
Key.ScanCode = SCAN_F9;\r
}\r
break;\r
case '/':\r
- if (TerminalDevice->TerminalType == VT100TYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {\r
Key.ScanCode = SCAN_PAGE_DOWN;\r
}\r
break;\r
case 'M':\r
Key.ScanCode = SCAN_PAGE_DOWN;\r
}\r
break;\r
case 'M':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F1;\r
}\r
break;\r
case 'N':\r
Key.ScanCode = SCAN_F1;\r
}\r
break;\r
case 'N':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F2;\r
}\r
break;\r
case 'O':\r
Key.ScanCode = SCAN_F2;\r
}\r
break;\r
case 'O':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F3;\r
}\r
break;\r
case 'Q':\r
Key.ScanCode = SCAN_F3;\r
}\r
break;\r
case 'Q':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F5;\r
}\r
break;\r
case 'R':\r
Key.ScanCode = SCAN_F5;\r
}\r
break;\r
case 'R':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F6;\r
}\r
break;\r
case 'S':\r
Key.ScanCode = SCAN_F6;\r
}\r
break;\r
case 'S':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F7;\r
}\r
break;\r
case 'T':\r
Key.ScanCode = SCAN_F7;\r
}\r
break;\r
case 'T':\r
- if (TerminalDevice->TerminalType == PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {\r
Key.ScanCode = SCAN_F8;\r
}\r
break;\r
Key.ScanCode = SCAN_F8;\r
}\r
break;\r
* numeric codes, and there are no ambiguous prefixes shared with\r
* other terminal types.\r
*/\r
* numeric codes, and there are no ambiguous prefixes shared with\r
* other terminal types.\r
*/\r
- if (TerminalDevice->TerminalType == TTYTERMTYPE &&\r
+ if (TerminalDevice->TerminalType == TerminalTypeTtyTerm &&\r
Key.ScanCode == SCAN_NULL &&\r
UnicodeChar >= '0' &&\r
UnicodeChar <= '9') {\r
Key.ScanCode == SCAN_NULL &&\r
UnicodeChar >= '0' &&\r
UnicodeChar <= '9') {\r
* state is only used by the TTY terminal type.\r
*/\r
Key.ScanCode = SCAN_NULL;\r
* state is only used by the TTY terminal type.\r
*/\r
Key.ScanCode = SCAN_NULL;\r
- if (TerminalDevice->TerminalType == TTYTERMTYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypeTtyTerm) {\r
\r
if (UnicodeChar == '~' && TerminalDevice->TtyEscapeIndex <= 2) {\r
UINT16 EscCode;\r
\r
if (UnicodeChar == '~' && TerminalDevice->TtyEscapeIndex <= 2) {\r
UINT16 EscCode;\r
}\r
\r
if (UnicodeChar == DEL) {\r
}\r
\r
if (UnicodeChar == DEL) {\r
- if (TerminalDevice->TerminalType == TTYTERMTYPE) {\r
+ if (TerminalDevice->TerminalType == TerminalTypeTtyTerm) {\r
Key.ScanCode = SCAN_NULL;\r
Key.UnicodeChar = CHAR_BACKSPACE;\r
}\r
Key.ScanCode = SCAN_NULL;\r
Key.UnicodeChar = CHAR_BACKSPACE;\r
}\r
/** @file\r
Implementation for EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL protocol.\r
\r
/** @file\r
Implementation for EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL protocol.\r
\r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
Copyright (C) 2016 Silicon Graphics, Inc. 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
Copyright (C) 2016 Silicon Graphics, Inc. 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
\r
switch (TerminalDevice->TerminalType) {\r
\r
\r
switch (TerminalDevice->TerminalType) {\r
\r
- case PCANSITYPE:\r
- case VT100TYPE:\r
- case VT100PLUSTYPE:\r
- case TTYTERMTYPE:\r
+ case TerminalTypePcAnsi:\r
+ case TerminalTypeVt100:\r
+ case TerminalTypeVt100Plus:\r
+ case TerminalTypeTtyTerm:\r
\r
if (!TerminalIsValidTextGraphics (*WString, &GraphicChar, &AsciiChar)) {\r
//\r
\r
if (!TerminalIsValidTextGraphics (*WString, &GraphicChar, &AsciiChar)) {\r
//\r
- if (TerminalDevice->TerminalType != PCANSITYPE) {\r
+ if (TerminalDevice->TerminalType != TerminalTypePcAnsi) {\r
GraphicChar = AsciiChar;\r
}\r
\r
GraphicChar = AsciiChar;\r
}\r
\r
+ case TerminalTypeVtUtf8:\r
UnicodeToUtf8 (*WString, &Utf8Char, &ValidBytes);\r
Length = ValidBytes;\r
Status = TerminalDevice->SerialIo->Write (\r
UnicodeToUtf8 (*WString, &Utf8Char, &ValidBytes);\r
Length = ValidBytes;\r
Status = TerminalDevice->SerialIo->Write (\r
Mode->CursorRow++;\r
}\r
\r
Mode->CursorRow++;\r
}\r
\r
- if (TerminalDevice->TerminalType == TTYTERMTYPE &&\r
+ if (TerminalDevice->TerminalType == TerminalTypeTtyTerm &&\r
!TerminalDevice->OutputEscChar) {\r
//\r
// We've written the last character on the line. The\r
!TerminalDevice->OutputEscChar) {\r
//\r
// We've written the last character on the line. The\r
\r
switch (TerminalDevice->TerminalType) {\r
\r
\r
switch (TerminalDevice->TerminalType) {\r
\r
- case PCANSITYPE:\r
- case VT100TYPE:\r
- case VT100PLUSTYPE:\r
- case TTYTERMTYPE:\r
+ case TerminalTypePcAnsi:\r
+ case TerminalTypeVt100:\r
+ case TerminalTypeVt100Plus:\r
+ case TerminalTypeTtyTerm:\r
Status = AnsiTestString (TerminalDevice, WString);\r
break;\r
\r
Status = AnsiTestString (TerminalDevice, WString);\r
break;\r
\r
+ case TerminalTypeVtUtf8:\r
Status = VTUTF8TestString (TerminalDevice, WString);\r
break;\r
\r
Status = VTUTF8TestString (TerminalDevice, WString);\r
break;\r
\r
// within the current line if possible, and don't output anyting if\r
// it isn't necessary.\r
//\r
// within the current line if possible, and don't output anyting if\r
// it isn't necessary.\r
//\r
- if (TerminalDevice->TerminalType == TTYTERMTYPE &&\r
+ if (TerminalDevice->TerminalType == TerminalTypeTtyTerm &&\r
(UINTN)Mode->CursorRow == Row) {\r
if ((UINTN)Mode->CursorColumn > Column) {\r
mCursorBackwardString[FW_BACK_OFFSET + 0] = (CHAR16) ('0' + ((Mode->CursorColumn - Column) / 10));\r
(UINTN)Mode->CursorRow == Row) {\r
if ((UINTN)Mode->CursorColumn > Column) {\r
mCursorBackwardString[FW_BACK_OFFSET + 0] = (CHAR16) ('0' + ((Mode->CursorColumn - Column) / 10));\r