TianoCore EDK2 master
|
#include <Uefi.h>
#include <Guid/GlobalVariable.h>
#include <Guid/PcAnsi.h>
#include <Guid/TtyTerm.h>
#include <Guid/StatusCodeDataTypeVariable.h>
#include <Protocol/SimpleTextOut.h>
#include <Protocol/SerialIo.h>
#include <Protocol/DevicePath.h>
#include <Protocol/SimpleTextIn.h>
#include <Protocol/SimpleTextInEx.h>
#include <Library/DebugLib.h>
#include <Library/UefiDriverEntryPoint.h>
#include <Library/UefiLib.h>
#include <Library/ReportStatusCodeLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/DevicePathLib.h>
#include <Library/PcdLib.h>
#include <Library/BaseLib.h>
Go to the source code of this file.
Data Structures | |
struct | RAW_DATA_FIFO |
struct | UNICODE_FIFO |
struct | EFI_KEY_FIFO |
struct | TERMINAL_CONSOLE_MODE_DATA |
struct | _TERMINAL_CONSOLE_IN_EX_NOTIFY |
struct | TERMINAL_DEV |
union | UTF8_CHAR |
struct | UNICODE_TO_CHAR |
Typedefs | |
typedef struct _TERMINAL_CONSOLE_IN_EX_NOTIFY | TERMINAL_CONSOLE_IN_EX_NOTIFY |
Variables | |
EFI_DRIVER_BINDING_PROTOCOL | gTerminalDriverBinding |
EFI_COMPONENT_NAME_PROTOCOL | gTerminalComponentName |
EFI_COMPONENT_NAME2_PROTOCOL | gTerminalComponentName2 |
Header file for Terminal driver.
Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
Copyright (C) 2016 Silicon Graphics, Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Terminal.h.
#define ACAP 0x41 |
Definition at line 150 of file Terminal.h.
#define BACKGROUND_CONTROL_OFFSET 11 |
Definition at line 161 of file Terminal.h.
#define BACKSPACE 8 |
Definition at line 155 of file Terminal.h.
#define BCAP 0x42 |
Definition at line 151 of file Terminal.h.
#define BRIGHT_CONTROL_OFFSET 2 |
Definition at line 159 of file Terminal.h.
#define CCAP 0x43 |
Definition at line 152 of file Terminal.h.
#define COLUMN_OFFSET 5 |
Definition at line 163 of file Terminal.h.
#define CSI 0x9B |
Definition at line 157 of file Terminal.h.
#define DCAP 0x44 |
Definition at line 153 of file Terminal.h.
#define DEL 127 |
Definition at line 158 of file Terminal.h.
#define ESC 27 |
Definition at line 156 of file Terminal.h.
#define FIFO_MAX_NUMBER 128 |
Definition at line 39 of file Terminal.h.
#define FOREGROUND_CONTROL_OFFSET 6 |
Definition at line 160 of file Terminal.h.
#define FW_BACK_OFFSET 2 |
Definition at line 164 of file Terminal.h.
#define INPUT_STATE_1 0x40 |
Definition at line 132 of file Terminal.h.
#define INPUT_STATE_2 0x10 |
Definition at line 130 of file Terminal.h.
#define INPUT_STATE_CSI 0x02 |
Definition at line 127 of file Terminal.h.
#define INPUT_STATE_DEFAULT 0x00 |
Definition at line 125 of file Terminal.h.
#define INPUT_STATE_ESC 0x01 |
Definition at line 126 of file Terminal.h.
#define INPUT_STATE_LEFTOPENBRACKET 0x04 |
Definition at line 128 of file Terminal.h.
#define INPUT_STATE_LEFTOPENBRACKET_2ND 0x80 |
Definition at line 133 of file Terminal.h.
#define INPUT_STATE_LEFTOPENBRACKET_TTY 0x20 |
Definition at line 131 of file Terminal.h.
#define INPUT_STATE_O 0x08 |
Definition at line 129 of file Terminal.h.
#define KEYBOARD_TIMER_INTERVAL 200000 |
Definition at line 64 of file Terminal.h.
#define LEFTOPENBRACKET 0x5b |
Definition at line 149 of file Terminal.h.
#define RAW_FIFO_MAX_NUMBER 255 |
Definition at line 38 of file Terminal.h.
#define RESET_STATE_DEFAULT 0x00 |
Definition at line 135 of file Terminal.h.
#define RESET_STATE_ESC_R 0x01 |
Definition at line 136 of file Terminal.h.
#define RESET_STATE_ESC_R_ESC_R 0x02 |
Definition at line 137 of file Terminal.h.
#define ROW_OFFSET 2 |
Definition at line 162 of file Terminal.h.
#define TERMINAL_CON_IN_DEV_FROM_THIS | ( | a | ) | CR (a, TERMINAL_DEV, SimpleInput, TERMINAL_DEV_SIGNATURE) |
Definition at line 139 of file Terminal.h.
#define TERMINAL_CON_IN_EX_DEV_FROM_THIS | ( | a | ) | CR (a, TERMINAL_DEV, SimpleInputEx, TERMINAL_DEV_SIGNATURE) |
Definition at line 141 of file Terminal.h.
#define TERMINAL_CON_OUT_DEV_FROM_THIS | ( | a | ) | CR (a, TERMINAL_DEV, SimpleTextOutput, TERMINAL_DEV_SIGNATURE) |
Definition at line 140 of file Terminal.h.
#define TERMINAL_CONSOLE_IN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('t', 'm', 'e', 'n') |
Definition at line 68 of file Terminal.h.
#define TERMINAL_DEV_SIGNATURE SIGNATURE_32 ('t', 'm', 'n', 'l') |
Definition at line 66 of file Terminal.h.
enum TERMINAL_TYPE |
Definition at line 77 of file Terminal.h.
VOID AnsiRawDataToUnicode | ( | IN TERMINAL_DEV * | TerminalDevice | ) |
Translate all raw data in the Raw FIFI into unicode, and insert them into Unicode FIFO.
TerminalDevice | The terminal device. |
Translate all raw data in the Raw FIFO into unicode, and insert them into Unicode FIFO.
TerminalDevice | The terminal device. |
EFI_STATUS AnsiTestString | ( | IN TERMINAL_DEV * | TerminalDevice, |
IN CHAR16 * | WString | ||
) |
Check if input string is valid Ascii string, valid EFI control characters or valid text graphics.
TerminalDevice | The terminal device. |
WString | The input string. |
EFI_UNSUPPORTED | If not all input characters are valid. |
EFI_SUCCESS | If all input characters are valid. |
BOOLEAN EfiKeyFiFoForNotifyInsertOneKey | ( | EFI_KEY_FIFO * | EfiKeyFiFo, |
EFI_INPUT_KEY * | Input | ||
) |
Insert one pre-fetched key into the FIFO buffer.
EfiKeyFiFo | Pointer to instance of EFI_KEY_FIFO. |
Input | The key will be input. |
TRUE | If insert successfully. |
FALSE | If FIFO buffer is full before key insertion, and the key is lost. |
Definition at line 830 of file TerminalConIn.c.
BOOLEAN EfiKeyFiFoForNotifyRemoveOneKey | ( | EFI_KEY_FIFO * | EfiKeyFiFo, |
EFI_INPUT_KEY * | Output | ||
) |
Remove one pre-fetched key out of the FIFO buffer.
EfiKeyFiFo | Pointer to instance of EFI_KEY_FIFO. |
Output | The key will be removed. |
TRUE | If insert successfully. |
FALSE | If FIFO buffer is empty before remove operation. |
Remove one pre-fetched key out of the FIFO buffer.
EfiKeyFiFo | Pointer to instance of EFI_KEY_FIFO. |
Output | The key will be removed. |
TRUE | If remove successfully. |
FALSE | If FIFO buffer is empty before remove operation. |
Definition at line 864 of file TerminalConIn.c.
BOOLEAN EfiKeyFiFoInsertOneKey | ( | TERMINAL_DEV * | TerminalDevice, |
EFI_INPUT_KEY * | Key | ||
) |
Insert one pre-fetched key into the FIFO buffer.
TerminalDevice | Terminal driver private structure. |
Key | The key will be input. |
TRUE | If insert successfully. |
FALSE | If FIFO buffer is full before key insertion, and the key is lost. |
Definition at line 950 of file TerminalConIn.c.
BOOLEAN EfiKeyFiFoRemoveOneKey | ( | TERMINAL_DEV * | TerminalDevice, |
EFI_INPUT_KEY * | Output | ||
) |
Remove one pre-fetched key out of the FIFO buffer.
TerminalDevice | Terminal driver private structure. |
Output | The key will be removed. |
TRUE | If insert successfully. |
FALSE | If FIFO buffer is empty before remove operation. |
Definition at line 1015 of file TerminalConIn.c.
EFI_STATUS GetOneKeyFromSerial | ( | EFI_SERIAL_IO_PROTOCOL * | SerialIo, |
UINT8 * | Output | ||
) |
Get one key out of serial buffer.
SerialIo | Serial I/O protocl attached to the serial device. |
Input | The fetched key. |
EFI_NOT_READY | If serial buffer is empty. |
EFI_DEVICE_ERROR | If reading serial buffer encounter error. |
EFI_SUCCESS | If reading serial buffer successfully, put the fetched key to the parameter output. |
Get one key out of serial buffer.
SerialIo | Serial I/O protocol attached to the serial device. |
Output | The fetched key. |
EFI_NOT_READY | If serial buffer is empty. |
EFI_DEVICE_ERROR | If reading serial buffer encounter error. |
EFI_SUCCESS | If reading serial buffer successfully, put the fetched key to the parameter output. |
Definition at line 669 of file TerminalConIn.c.
VOID GetOneValidUtf8Char | ( | IN TERMINAL_DEV * | Utf8Device, |
OUT UTF8_CHAR * | Utf8Char, | ||
OUT UINT8 * | ValidBytes | ||
) |
EFI_STATUS EFIAPI InitializeTerminal | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
The user Entry Point for module Terminal. The user code starts with this function.
[in] | ImageHandle | The firmware allocated handle for the EFI image. |
[in] | SystemTable | A pointer to the EFI System Table. |
EFI_SUCCESS | The entry point is executed successfully. |
other | Some error occurs when executing this entry point. |
The user Entry Point for module Terminal. The user code starts with this function.
ImageHandle | The firmware allocated handle for the EFI image. |
SystemTable | A pointer to the EFI System Table. |
EFI_SUCCESS | The entry point is executed successfully. |
other | Some error occurs when executing this entry point. |
Definition at line 1340 of file Terminal.c.
BOOLEAN IsEfiKeyFiFoEmpty | ( | TERMINAL_DEV * | TerminalDevice | ) |
Clarify whether FIFO buffer is empty.
TerminalDevice | Terminal driver private structure |
TRUE | If FIFO buffer is empty. |
FALSE | If FIFO buffer is not empty. |
Definition at line 1051 of file TerminalConIn.c.
BOOLEAN IsEfiKeyFiFoForNotifyEmpty | ( | IN EFI_KEY_FIFO * | EfiKeyFiFo | ) |
Clarify whether FIFO buffer is empty.
EfiKeyFiFo | Pointer to instance of EFI_KEY_FIFO. |
TRUE | If FIFO buffer is empty. |
FALSE | If FIFO buffer is not empty. |
BOOLEAN IsEfiKeyFiFoForNotifyFull | ( | EFI_KEY_FIFO * | EfiKeyFiFo | ) |
Clarify whether FIFO buffer is full.
EfiKeyFiFo | Pointer to instance of EFI_KEY_FIFO. |
TRUE | If FIFO buffer is full. |
FALSE | If FIFO buffer is not full. |
Definition at line 921 of file TerminalConIn.c.
BOOLEAN IsEfiKeyFiFoFull | ( | TERMINAL_DEV * | TerminalDevice | ) |
Clarify whether FIFO buffer is full.
TerminalDevice | Terminal driver private structure |
TRUE | If FIFO buffer is full. |
FALSE | If FIFO buffer is not full. |
Definition at line 1072 of file TerminalConIn.c.
BOOLEAN IsHotPlugDevice | ( | IN EFI_DEVICE_PATH_PROTOCOL * | DevicePath | ) |
Check if the device supports hot-plug through its device path.
This function could be updated to check more types of Hot Plug devices. Currently, it checks USB and PCCard device.
DevicePath | Pointer to device's device path. |
TRUE | The devcie is a hot-plug device |
FALSE | The devcie is not a hot-plug device. |
Definition at line 1376 of file Terminal.c.
BOOLEAN IsKeyRegistered | ( | IN EFI_KEY_DATA * | RegsiteredData, |
IN EFI_KEY_DATA * | InputData | ||
) |
Check if the key already has been registered.
RegsiteredData | A pointer to a buffer that is filled in with the keystroke state data for the key that was registered. |
InputData | A pointer to a buffer that is filled in with the keystroke state data for the key that was pressed. |
TRUE | Key be pressed matches a registered key. |
FALSE | Match failed. |
Judge whether is a registed key
RegsiteredData | A pointer to a buffer that is filled in with the keystroke state data for the key that was registered. |
InputData | A pointer to a buffer that is filled in with the keystroke state data for the key that was pressed. |
TRUE | Key be pressed matches a registered key. |
FALSE | Match failed. |
Judge whether is a registered key
RegsiteredData | A pointer to a buffer that is filled in with the keystroke state data for the key that was registered. |
InputData | A pointer to a buffer that is filled in with the keystroke state data for the key that was pressed. |
TRUE | Key be pressed matches a registered key. |
FALSE | Match failed. |
Check whether the pressed key matches a registered key or not.
RegsiteredData | A pointer to keystroke data for the key that was registered. |
InputData | A pointer to keystroke data for the key that was pressed. |
TRUE | Key pressed matches a registered key. |
FALSE | Key pressed does not matches a registered key. |
Test if the key has been registered on input device.
RegsiteredData | A pointer to a buffer that is filled in with the keystroke state data for the key that was registered. |
InputData | A pointer to a buffer that is filled in with the keystroke state data for the key that was pressed. |
TRUE | Key be pressed matches a registered key. |
FALSE | Match failed. |
Check if the key already has been registered.
If both RegsiteredData and InputData is NULL, then ASSERT().
RegsiteredData | A pointer to a buffer that is filled in with the keystroke state data for the key that was registered. |
InputData | A pointer to a buffer that is filled in with the keystroke state data for the key that was pressed. |
TRUE | Key be pressed matches a registered key. |
FALSE | Match failed. |
Definition at line 448 of file VirtualKeyboard.c.
BOOLEAN IsRawFiFoEmpty | ( | TERMINAL_DEV * | TerminalDevice | ) |
Clarify whether Raw Data FIFO buffer is empty.
TerminalDevice | Terminal driver private structure |
TRUE | If Raw Data FIFO buffer is empty. |
FALSE | If Raw Data FIFO buffer is not empty. |
Definition at line 780 of file TerminalConIn.c.
BOOLEAN IsRawFiFoFull | ( | TERMINAL_DEV * | TerminalDevice | ) |
Clarify whether Raw Data FIFO buffer is full.
TerminalDevice | Terminal driver private structure |
TRUE | If Raw Data FIFO buffer is full. |
FALSE | If Raw Data FIFO buffer is not full. |
Definition at line 801 of file TerminalConIn.c.
BOOLEAN IsUnicodeFiFoEmpty | ( | TERMINAL_DEV * | TerminalDevice | ) |
Clarify whether Unicode FIFO buffer is empty.
TerminalDevice | Terminal driver private structure |
TRUE | If Unicode FIFO buffer is empty. |
FALSE | If Unicode FIFO buffer is not empty. |
Definition at line 1160 of file TerminalConIn.c.
BOOLEAN IsUnicodeFiFoFull | ( | TERMINAL_DEV * | TerminalDevice | ) |
Clarify whether Unicode FIFO buffer is full.
TerminalDevice | Terminal driver private structure |
TRUE | If Unicode FIFO buffer is full. |
FALSE | If Unicode FIFO buffer is not full. |
Definition at line 1181 of file TerminalConIn.c.
Process key notify.
Event | Indicates the event that invoke this function. |
Context | Indicates the calling context. |
Definition at line 1080 of file VirtualKeyboard.c.
BOOLEAN RawFiFoInsertOneKey | ( | TERMINAL_DEV * | TerminalDevice, |
UINT8 | Input | ||
) |
Insert one byte raw data into the Raw Data FIFO.
TerminalDevice | Terminal driver private structure. |
Input | The key will be input. |
TRUE | If insert successfully. |
FALSE | If Raw Data buffer is full before key insertion, and the key is lost. |
Definition at line 712 of file TerminalConIn.c.
BOOLEAN RawFiFoRemoveOneKey | ( | TERMINAL_DEV * | TerminalDevice, |
UINT8 * | Output | ||
) |
Remove one pre-fetched key out of the Raw Data FIFO.
TerminalDevice | Terminal driver private structure. |
Output | The key will be removed. |
TRUE | If insert successfully. |
FALSE | If Raw Data FIFO buffer is empty before remove operation. |
Definition at line 746 of file TerminalConIn.c.
EFI_STATUS SetTerminalDevicePath | ( | IN TERMINAL_TYPE | TerminalType, |
IN EFI_DEVICE_PATH_PROTOCOL * | ParentDevicePath, | ||
OUT EFI_DEVICE_PATH_PROTOCOL ** | TerminalDevicePath | ||
) |
Build termial device path according to terminal type.
TerminalType | The terminal type is PC ANSI, VT100, VT100+, VT-UTF8, TTY-Term, Linux, XtermR6, VT400 and SCO. |
ParentDevicePath | Parent device path. |
TerminalDevicePath | Returned terminal device path, if building successfully. |
EFI_UNSUPPORTED | Terminal does not belong to the supported type. |
EFI_OUT_OF_RESOURCES | Generate terminal device path failed. |
EFI_SUCCESS | Build terminal device path successfully. |
Build terminal device path according to terminal type.
TerminalType | The terminal type is PC ANSI, VT100, VT100+ or VT-UTF8. |
ParentDevicePath | Parent device path. |
TerminalDevicePath | Returned terminal device path, if building successfully. |
EFI_UNSUPPORTED | Terminal does not belong to the supported type. |
EFI_OUT_OF_RESOURCES | Generate terminal device path failed. |
EFI_SUCCESS | Build terminal device path successfully. |
Definition at line 1299 of file Terminal.c.
EFI_STATUS EFIAPI TerminalComponentNameGetControllerName | ( | IN EFI_COMPONENT_NAME_PROTOCOL * | This, |
IN EFI_HANDLE | ControllerHandle, | ||
IN EFI_HANDLE ChildHandle | OPTIONAL, | ||
IN CHAR8 * | Language, | ||
OUT CHAR16 ** | ControllerName | ||
) |
Retrieves a Unicode string that is the user readable name of the controller that is being managed by a driver.
This function retrieves the user readable name of the controller specified by ControllerHandle and ChildHandle in the form of a Unicode string. If the driver specified by This has a user readable name in the language specified by Language, then a pointer to the controller name is returned in ControllerName, and EFI_SUCCESS is returned. If the driver specified by This is not currently managing the controller specified by ControllerHandle and ChildHandle, then EFI_UNSUPPORTED is returned. If the driver specified by This does not support the language specified by Language, then EFI_UNSUPPORTED is returned.
This[in] | A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or EFI_COMPONENT_NAME_PROTOCOL instance. |
ControllerHandle[in] | The handle of a controller that the driver specified by This is managing. This handle specifies the controller whose name is to be returned. |
ChildHandle[in] | The handle of the child controller to retrieve the name of. This is an optional parameter that may be NULL. It will be NULL for device drivers. It will also be NULL for a bus drivers that wish to retrieve the name of the bus controller. It will not be NULL for a bus driver that wishes to retrieve the name of a child controller. |
Language[in] | A pointer to a Null-terminated ASCII string array indicating the language. This is the language of the driver name that the caller is requesting, and it must match one of the languages specified in SupportedLanguages. The number of languages supported by a driver is up to the driver writer. Language is specified in RFC 4646 or ISO 639-2 language code format. |
ControllerName[out] | A pointer to the Unicode string to return. This Unicode string is the name of the controller specified by ControllerHandle and ChildHandle in the language specified by Language from the point of view of the driver specified by This. |
EFI_SUCCESS | The Unicode string for the user readable name in the language specified by Language for the driver specified by This was returned in DriverName. |
EFI_INVALID_PARAMETER | ControllerHandle is NULL. |
EFI_INVALID_PARAMETER | ChildHandle is not NULL and it is not a valid EFI_HANDLE. |
EFI_INVALID_PARAMETER | Language is NULL. |
EFI_INVALID_PARAMETER | ControllerName is NULL. |
EFI_UNSUPPORTED | The driver specified by This is not currently managing the controller specified by ControllerHandle and ChildHandle. |
EFI_UNSUPPORTED | The driver specified by This does not support the language specified by Language. |
Definition at line 166 of file ComponentName.c.
EFI_STATUS EFIAPI TerminalComponentNameGetDriverName | ( | IN EFI_COMPONENT_NAME_PROTOCOL * | This, |
IN CHAR8 * | Language, | ||
OUT CHAR16 ** | DriverName | ||
) |
Retrieves a Unicode string that is the user readable name of the driver.
This function retrieves the user readable name of a driver in the form of a Unicode string. If the driver specified by This has a user readable name in the language specified by Language, then a pointer to the driver name is returned in DriverName, and EFI_SUCCESS is returned. If the driver specified by This does not support the language specified by Language, then EFI_UNSUPPORTED is returned.
This[in] | A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or EFI_COMPONENT_NAME_PROTOCOL instance. |
Language[in] | A pointer to a Null-terminated ASCII string array indicating the language. This is the language of the driver name that the caller is requesting, and it must match one of the languages specified in SupportedLanguages. The number of languages supported by a driver is up to the driver writer. Language is specified in RFC 4646 or ISO 639-2 language code format. |
DriverName[out] | A pointer to the Unicode string to return. This Unicode string is the name of the driver specified by This in the language specified by Language. |
EFI_SUCCESS | The Unicode string for the Driver specified by This and the language specified by Language was returned in DriverName. |
EFI_INVALID_PARAMETER | Language is NULL. |
EFI_INVALID_PARAMETER | DriverName is NULL. |
EFI_UNSUPPORTED | The driver specified by This does not support the language specified by Language. |
Definition at line 81 of file ComponentName.c.
EFI_STATUS TerminalConInCheckForKey | ( | IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL * | This | ) |
Check for a pending key in the Efi Key FIFO or Serial device buffer.
This | Indicates the calling context. |
EFI_SUCCESS | There is key pending. |
EFI_NOT_READY | There is no key pending. |
EFI_DEVICE_ERROR | If Serial IO is not attached to serial device. |
EFI_STATUS EFIAPI TerminalConInReadKeyStroke | ( | IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL * | This, |
OUT EFI_INPUT_KEY * | Key | ||
) |
Implements EFI_SIMPLE_TEXT_INPUT_PROTOCOL.ReadKeyStroke().
This | Indicates the calling context. |
Key | A pointer to a buffer that is filled in with the keystroke information for the key that was sent from terminal. |
EFI_SUCCESS | The keystroke information is returned successfully. |
EFI_NOT_READY | There is no keystroke data available. |
EFI_DEVICE_ERROR | The dependent serial device encounters error. |
EFI_UNSUPPORTED | The device does not support the ability to read keystroke data. |
Definition at line 125 of file TerminalConIn.c.
EFI_STATUS EFIAPI TerminalConInReadKeyStrokeEx | ( | IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL * | This, |
OUT EFI_KEY_DATA * | KeyData | ||
) |
Reads the next keystroke from the input device. The WaitForKey Event can be used to test for existence of a keystroke via WaitForEvent () call.
This | Protocol instance pointer. |
KeyData | A pointer to a buffer that is filled in with the keystroke state data for the key that was pressed. |
EFI_SUCCESS | The keystroke information was returned. |
EFI_NOT_READY | There was no keystroke data available. |
EFI_DEVICE_ERROR | The keystroke information was not returned due to hardware errors. |
EFI_INVALID_PARAMETER | KeyData is NULL. |
EFI_UNSUPPORTED | The device does not support the ability to read keystroke data. |
Definition at line 255 of file TerminalConIn.c.
EFI_STATUS EFIAPI TerminalConInRegisterKeyNotify | ( | IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL * | This, |
IN EFI_KEY_DATA * | KeyData, | ||
IN EFI_KEY_NOTIFY_FUNCTION | KeyNotificationFunction, | ||
OUT VOID ** | NotifyHandle | ||
) |
Register a notification function for a particular keystroke for the input device.
This | Protocol instance pointer. |
KeyData | A pointer to a buffer that is filled in with the keystroke information data for the key that was pressed. If KeyData.Key, KeyData.KeyState.KeyToggleState and KeyData.KeyState.KeyShiftState are 0, then any incomplete keystroke will trigger a notification of the KeyNotificationFunction. |
KeyNotificationFunction | Points to the function to be called when the key sequence is typed specified by KeyData. This notification function should be called at <=TPL_CALLBACK. |
NotifyHandle | Points to the unique handle assigned to the registered notification. |
EFI_SUCCESS | The notification function was registered successfully. |
EFI_OUT_OF_RESOURCES | Unable to allocate resources for necesssary data structures. |
EFI_INVALID_PARAMETER | KeyData or NotifyHandle is NULL. |
Register a notification function for a particular keystroke for the input device.
This | Protocol instance pointer. |
KeyData | A pointer to a buffer that is filled in with the keystroke information for the key that was pressed. If KeyData.Key, KeyData.KeyState.KeyToggleState and KeyData.KeyState.KeyShiftState are 0, then any incomplete keystroke will trigger a notification of the KeyNotificationFunction. |
KeyNotificationFunction | Points to the function to be called when the key sequence is typed specified by KeyData. This notification function should be called at <=TPL_CALLBACK. |
NotifyHandle | Points to the unique handle assigned to the registered notification. |
EFI_SUCCESS | The notification function was registered successfully. |
EFI_OUT_OF_RESOURCES | Unable to allocate resources for necessary data structures. |
EFI_INVALID_PARAMETER | KeyData or NotifyHandle is NULL. |
Definition at line 328 of file TerminalConIn.c.
EFI_STATUS EFIAPI TerminalConInReset | ( | IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL * | This, |
IN BOOLEAN | ExtendedVerification | ||
) |
Implements EFI_SIMPLE_TEXT_INPUT_PROTOCOL.Reset(). This driver only perform dependent serial device reset regardless of the value of ExtendeVerification
This | Indicates the calling context. |
ExtendedVerification | Skip by this driver. |
EFI_SUCCESS | The reset operation succeeds. |
EFI_DEVICE_ERROR | The dependent serial port reset fails. |
Definition at line 61 of file TerminalConIn.c.
EFI_STATUS EFIAPI TerminalConInResetEx | ( | IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL * | This, |
IN BOOLEAN | ExtendedVerification | ||
) |
Reset the input device and optionally run diagnostics
This | Protocol instance pointer. |
ExtendedVerification | Driver may perform diagnostics on reset. |
EFI_SUCCESS | The device was reset. |
EFI_DEVICE_ERROR | The device is not functioning properly and could not be reset. |
Definition at line 217 of file TerminalConIn.c.
EFI_STATUS EFIAPI TerminalConInSetState | ( | IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL * | This, |
IN EFI_KEY_TOGGLE_STATE * | KeyToggleState | ||
) |
Set certain state for the input device.
This | Protocol instance pointer. |
KeyToggleState | A pointer to the EFI_KEY_TOGGLE_STATE to set the state for the input device. |
EFI_SUCCESS | The device state was set successfully. |
EFI_DEVICE_ERROR | The device is not functioning correctly and could not have the setting adjusted. |
EFI_UNSUPPORTED | The device does not have the ability to set its state. |
EFI_INVALID_PARAMETER | KeyToggleState is NULL. |
Definition at line 288 of file TerminalConIn.c.
Timer handler to poll the key from serial.
Event | Indicates the event that invoke this function. |
Context | Indicates the calling context. |
Definition at line 513 of file TerminalConIn.c.
EFI_STATUS EFIAPI TerminalConInUnregisterKeyNotify | ( | IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL * | This, |
IN VOID * | NotificationHandle | ||
) |
Remove a registered notification function from a particular keystroke.
This | Protocol instance pointer. |
NotificationHandle | The handle of the notification function being unregistered. |
EFI_SUCCESS | The notification function was unregistered successfully. |
EFI_INVALID_PARAMETER | The NotificationHandle is invalid. |
EFI_NOT_FOUND | Can not find the matching entry in database. |
Remove a registered notification function from a particular keystroke.
This | Protocol instance pointer. |
NotificationHandle | The handle of the notification function being unregistered. |
EFI_SUCCESS | The notification function was unregistered successfully. |
EFI_INVALID_PARAMETER | The NotificationHandle is invalid. |
Definition at line 398 of file TerminalConIn.c.
Event notification function for EFI_SIMPLE_TEXT_INPUT_PROTOCOL.WaitForKey event Signal the event if there is key available
Event | Indicates the event that invoke this function. |
Context | Indicates the calling context. |
Definition at line 491 of file TerminalConIn.c.
Event notification function for EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.WaitForKeyEx event Signal the event if there is key available
Event | Indicates the event that invoke this function. |
Context | Indicates the calling context. |
Definition at line 192 of file TerminalConIn.c.
EFI_STATUS EFIAPI TerminalConOutClearScreen | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This | ) |
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.ClearScreen(). It clears the ANSI terminal's display to the currently selected background color.
This | Indicates the calling context. |
EFI_SUCCESS | The operation completed successfully. |
EFI_DEVICE_ERROR | The terminal screen cannot be cleared due to serial port error. |
EFI_UNSUPPORTED | The terminal is not in a valid display mode. |
Definition at line 696 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalConOutEnableCursor | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This, |
IN BOOLEAN | Visible | ||
) |
Implements SIMPLE_TEXT_OUTPUT.EnableCursor(). In this driver, the cursor cannot be hidden.
This | Indicates the calling context. |
Visible | If TRUE, the cursor is set to be visible, If FALSE, the cursor is set to be invisible. |
EFI_SUCCESS | The request is valid. |
EFI_UNSUPPORTED | The terminal does not support cursor hidden. |
Definition at line 835 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalConOutOutputString | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This, |
IN CHAR16 * | WString | ||
) |
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString(). The Unicode string will be converted to terminal expressible data stream and send to terminal via serial port.
This | Indicates the calling context. |
WString | The Null-terminated Unicode string to be displayed on the terminal screen. |
EFI_SUCCESS | The string is output successfully. |
EFI_DEVICE_ERROR | The serial port fails to send the string out. |
EFI_WARN_UNKNOWN_GLYPH | Indicates that some of the characters in the Unicode string could not be rendered and are skipped. |
EFI_UNSUPPORTED | If current display mode is out of range. |
Definition at line 169 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalConOutQueryMode | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This, |
IN UINTN | ModeNumber, | ||
OUT UINTN * | Columns, | ||
OUT UINTN * | Rows | ||
) |
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode(). It returns information for an available text mode that the terminal supports. In this driver, we support text mode 80x25 (mode 0), 80x50 (mode 1), 100x31 (mode 2).
This | Indicates the calling context. |
ModeNumber | The mode number to return information on. |
Columns | The returned columns of the requested mode. |
Rows | The returned rows of the requested mode. |
EFI_SUCCESS | The requested mode information is returned. |
EFI_UNSUPPORTED | The mode number is not valid. |
EFI_DEVICE_ERROR |
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode().
It returns information for an available text mode that the terminal supports.
This | Indicates the calling context. |
ModeNumber | The mode number to return information on. |
Columns | The returned columns of the requested mode. |
Rows | The returned rows of the requested mode. |
EFI_SUCCESS | The requested mode information is returned. |
EFI_UNSUPPORTED | The mode number is not valid. |
Definition at line 429 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalConOutReset | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This, |
IN BOOLEAN | ExtendedVerification | ||
) |
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset(). If ExtendeVerification is TRUE, then perform dependent serial device reset, and set display mode to mode 0. If ExtendedVerification is FALSE, only set display mode to mode 0.
This | Indicates the calling context. |
ExtendedVerification | Indicates that the driver may perform a more exhaustive verification operation of the device during reset. |
EFI_SUCCESS | The reset operation succeeds. |
EFI_DEVICE_ERROR | The terminal is not functioning correctly or the serial port reset fails. |
Definition at line 105 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalConOutSetAttribute | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This, |
IN UINTN | Attribute | ||
) |
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute().
This | Indicates the calling context. |
Attribute | The attribute to set. Only bit0..6 are valid, all other bits are undefined and must be zero. |
EFI_SUCCESS | The requested attribute is set. |
EFI_DEVICE_ERROR | The requested attribute cannot be set due to serial port error. |
EFI_UNSUPPORTED | The attribute requested is not defined by EFI spec. |
Definition at line 525 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalConOutSetCursorPosition | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This, |
IN UINTN | Column, | ||
IN UINTN | Row | ||
) |
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetCursorPosition().
This | Indicates the calling context. |
Column | The row to set cursor to. |
Row | The column to set cursor to. |
EFI_SUCCESS | The operation completed successfully. |
EFI_DEVICE_ERROR | The request fails due to serial port error. |
EFI_UNSUPPORTED | The terminal is not in a valid text mode, or the cursor position is invalid for current mode. |
Definition at line 736 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalConOutSetMode | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This, |
IN UINTN | ModeNumber | ||
) |
Implements EFI_SIMPLE_TEXT_OUT.SetMode(). Set the terminal to a specified display mode. In this driver, we only support mode 0.
This | Indicates the calling context. |
ModeNumber | The text mode to set. |
EFI_SUCCESS | The requested text mode is set. |
EFI_DEVICE_ERROR | The requested text mode cannot be set because of serial device error. |
EFI_UNSUPPORTED | The text mode number is not valid. |
Definition at line 469 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalConOutTestString | ( | IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * | This, |
IN CHAR16 * | WString | ||
) |
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.TestString(). If one of the characters in the *Wstring is neither valid Unicode drawing characters, not ASCII code, then this function will return EFI_UNSUPPORTED.
This | Indicates the calling context. |
WString | The Null-terminated Unicode string to be tested. |
EFI_SUCCESS | The terminal is capable of rendering the output string. |
EFI_UNSUPPORTED | Some of the characters in the Unicode string cannot be rendered. |
Definition at line 379 of file TerminalConOut.c.
EFI_STATUS EFIAPI TerminalDriverBindingStart | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, |
IN EFI_HANDLE | Controller, | ||
IN EFI_DEVICE_PATH_PROTOCOL * | RemainingDevicePath | ||
) |
Start this driver on Controller by opening a Serial IO protocol, reading Device Path, and creating a child handle with a Simple Text In, Simple Text In Ex and Simple Text Out protocol, and device path protocol. And store Console Device Environment Variables.
This | Protocol instance pointer. |
Controller | Handle of device to bind driver to |
RemainingDevicePath | Optional parameter use to pick a specific child device to start. |
EFI_SUCCESS | This driver is added to Controller. |
EFI_ALREADY_STARTED | This driver is already running on Controller. |
other | This driver does not support this device. |
Definition at line 470 of file Terminal.c.
EFI_STATUS EFIAPI TerminalDriverBindingStop | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, |
IN EFI_HANDLE | Controller, | ||
IN UINTN | NumberOfChildren, | ||
IN EFI_HANDLE * | ChildHandleBuffer | ||
) |
Stop this driver on Controller by closing Simple Text In, Simple Text In Ex, Simple Text Out protocol, and removing parent device path from Console Device Environment Variables.
This | Protocol instance pointer. |
Controller | Handle of device to stop driver on |
NumberOfChildren | Number of Handles in ChildHandleBuffer. If number of children is zero stop the entire bus driver. |
ChildHandleBuffer | List of Child Handles to Stop. |
EFI_SUCCESS | This driver is removed Controller. |
other | This driver could not be removed from this device. |
Definition at line 904 of file Terminal.c.
EFI_STATUS EFIAPI TerminalDriverBindingSupported | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, |
IN EFI_HANDLE | Controller, | ||
IN EFI_DEVICE_PATH_PROTOCOL * | RemainingDevicePath | ||
) |
Test to see if this driver supports Controller.
This | Protocol instance pointer. |
ControllerHandle | Handle of device to test |
RemainingDevicePath | Optional parameter use to pick a specific child device to start. |
EFI_SUCCESS | This driver supports this device. |
EFI_ALREADY_STARTED | This driver is already running on this device. |
other | This driver does not support this device. |
Test to see if this driver supports Controller.
This | Protocol instance pointer. |
Controller | Handle of device to test |
RemainingDevicePath | Optional parameter use to pick a specific child device to start. |
EFI_SUCCESS | This driver supports this device. |
EFI_ALREADY_STARTED | This driver is already running on this device. |
other | This driver does not support this device. |
Definition at line 161 of file Terminal.c.
EFI_STATUS TerminalFreeNotifyList | ( | IN OUT LIST_ENTRY * | ListHead | ) |
Free notify functions list.
ListHead | The list head |
EFI_SUCCESS | Free the notify list successfully. |
EFI_INVALID_PARAMETER | ListHead is NULL. |
Definition at line 279 of file Terminal.c.
BOOLEAN TerminalIsValidAscii | ( | IN CHAR16 | Ascii | ) |
Detects if a valid ASCII char.
Ascii | An ASCII character. |
TRUE | If it is a valid ASCII character. |
FALSE | If it is not a valid ASCII character. |
Definition at line 903 of file TerminalConOut.c.
BOOLEAN TerminalIsValidEfiCntlChar | ( | IN CHAR16 | CharC | ) |
Detects if a valid EFI control character.
CharC | An input EFI Control character. |
TRUE | If it is a valid EFI control character. |
FALSE | If it is not a valid EFI control character. |
Definition at line 927 of file TerminalConOut.c.
BOOLEAN TerminalIsValidTextGraphics | ( | IN CHAR16 | Graphic, |
OUT CHAR8 *PcAnsi | OPTIONAL, | ||
OUT CHAR8 *Ascii | OPTIONAL | ||
) |
Detects if a Unicode char is for Box Drawing text graphics.
Graphic | Unicode char to test. |
PcAnsi | Optional pointer to return PCANSI equivalent of Graphic. |
Ascii | Optional pointer to return ASCII equivalent of Graphic. |
TRUE | If Graphic is a supported Unicode Box Drawing character. |
Definition at line 860 of file TerminalConOut.c.
VOID TerminalRemoveConsoleDevVariable | ( | IN CHAR16 * | VariableName, |
IN EFI_DEVICE_PATH_PROTOCOL * | ParentDevicePath | ||
) |
Remove console device variable.
VariableName | A pointer to the variable name. |
ParentDevicePath | A pointer to the parent device path. |
Remove terminal device path from Console Device Environment Variables.
VariableName | Console Device Environment Variables. |
ParentDevicePath | The terminal device path to be updated. |
Definition at line 1178 of file Terminal.c.
VOID TerminalUpdateConsoleDevVariable | ( | IN CHAR16 * | VariableName, |
IN EFI_DEVICE_PATH_PROTOCOL * | ParentDevicePath | ||
) |
Update terminal device path in Console Device Environment Variables.
VariableName | The Console Device Environment Variable. |
ParentDevicePath | The terminal device path to be updated. |
Update terminal device path in Console Device Environment Variables.
VariableName | The Console Device Environment Variable. |
ParentDevicePath | The terminal device path to be updated. |
Definition at line 1080 of file Terminal.c.
VOID TranslateRawDataToEfiKey | ( | IN TERMINAL_DEV * | TerminalDevice | ) |
Translate raw data into Unicode (according to different encode), and translate Unicode into key information. (according to different standard).
TerminalDevice | Terminal driver private structure. |
Definition at line 447 of file TerminalConIn.c.
BOOLEAN UnicodeFiFoInsertOneKey | ( | TERMINAL_DEV * | TerminalDevice, |
UINT16 | Input | ||
) |
Insert one pre-fetched key into the Unicode FIFO buffer.
TerminalDevice | Terminal driver private structure. |
Input | The key will be input. |
TRUE | If insert successfully. |
FALSE | If Unicode FIFO buffer is full before key insertion, and the key is lost. |
Definition at line 1101 of file TerminalConIn.c.
VOID UnicodeFiFoRemoveOneKey | ( | TERMINAL_DEV * | TerminalDevice, |
UINT16 * | Output | ||
) |
Remove one pre-fetched key out of the Unicode FIFO buffer. The caller should guarantee that Unicode FIFO buffer is not empty by IsUnicodeFiFoEmpty ().
TerminalDevice | Terminal driver private structure. |
Output | The key will be removed. |
Definition at line 1135 of file TerminalConIn.c.
VOID UnicodeToEfiKey | ( | IN TERMINAL_DEV * | TerminalDevice | ) |
Converts a stream of Unicode characters from a terminal input device into EFI Keys that can be read through the Simple Input Protocol.
The table below shows the keyboard input mappings that this function supports. If the ESC sequence listed in one of the columns is presented, then it is translated into the coorespoding EFI Scan Code. If a matching sequence is not found, then the raw key strokes are converted into EFI Keys.
2 seconds are allowed for an ESC sequence to be completed. If the ESC sequence is not completed in 2 seconds, then the raw key strokes of the partial ESC sequence are converted into EFI Keys. There is one special input sequence that will force the system to reset. This is ESC R ESC r ESC R.
ESC = 0x1B CSI = 0x9B DEL = 0x7f ^ = CTRL +=========+======+===========+==========+==========+ | | EFI | UEFI 2.0 | | | | | Scan | | VT100+ | | | KEY | Code | PC ANSI | VTUTF8 | VT100 | +=========+======+===========+==========+==========+ | NULL | 0x00 | | | | | UP | 0x01 | ESC [ A | ESC [ A | ESC [ A | | DOWN | 0x02 | ESC [ B | ESC [ B | ESC [ B | | RIGHT | 0x03 | ESC [ C | ESC [ C | ESC [ C | | LEFT | 0x04 | ESC [ D | ESC [ D | ESC [ D | | HOME | 0x05 | ESC [ H | ESC h | ESC [ H | | END | 0x06 | ESC [ F | ESC k | ESC [ K | | INSERT | 0x07 | ESC [ @ | ESC + | ESC [ @ | | | | ESC [ L | | ESC [ L | | DELETE | 0x08 | ESC [ X | ESC - | ESC [ P | | PG UP | 0x09 | ESC [ I | ESC ? | ESC [ V | | | | | | ESC [ ? | | PG DOWN | 0x0A | ESC [ G | ESC / | ESC [ U | | | | | | ESC [ / | | F1 | 0x0B | ESC [ M | ESC 1 | ESC O P | | F2 | 0x0C | ESC [ N | ESC 2 | ESC O Q | | F3 | 0x0D | ESC [ O | ESC 3 | ESC O w | | F4 | 0x0E | ESC [ P | ESC 4 | ESC O x | | F5 | 0x0F | ESC [ Q | ESC 5 | ESC O t | | F6 | 0x10 | ESC [ R | ESC 6 | ESC O u | | F7 | 0x11 | ESC [ S | ESC 7 | ESC O q | | F8 | 0x12 | ESC [ T | ESC 8 | ESC O r | | F9 | 0x13 | ESC [ U | ESC 9 | ESC O p | | F10 | 0x14 | ESC [ V | ESC 0 | ESC O M | | Escape | 0x17 | ESC | ESC | ESC | | F11 | 0x15 | | ESC ! | | | F12 | 0x16 | | ESC @ | | +=========+======+===========+==========+==========+
Putty function key map: +=========+======+===========+=============+=============+=============+=========+ | | EFI | | | | | | | | Scan | VT100+ | | Normal | | | | KEY | Code | VTUTF8 | Xterm R6 | VT400 | Linux | SCO | +=========+======+===========+=============+=============+=============+=========+ | F1 | 0x0B | ESC O P | ESC O P | ESC [ 1 1 ~ | ESC [ [ A | ESC [ M | | F2 | 0x0C | ESC O Q | ESC O Q | ESC [ 1 2 ~ | ESC [ [ B | ESC [ N | | F3 | 0x0D | ESC O R | ESC O R | ESC [ 1 3 ~ | ESC [ [ C | ESC [ O | | F4 | 0x0E | ESC O S | ESC O S | ESC [ 1 4 ~ | ESC [ [ D | ESC [ P | | F5 | 0x0F | ESC O T | ESC [ 1 5 ~ | ESC [ 1 5 ~ | ESC [ [ E | ESC [ Q | | F6 | 0x10 | ESC O U | ESC [ 1 7 ~ | ESC [ 1 7 ~ | ESC [ 1 7 ~ | ESC [ R | | F7 | 0x11 | ESC O V | ESC [ 1 8 ~ | ESC [ 1 8 ~ | ESC [ 1 8 ~ | ESC [ S | | F8 | 0x12 | ESC O W | ESC [ 1 9 ~ | ESC [ 1 9 ~ | ESC [ 1 9 ~ | ESC [ T | | F9 | 0x13 | ESC O X | ESC [ 2 0 ~ | ESC [ 2 0 ~ | ESC [ 2 0 ~ | ESC [ U | | F10 | 0x14 | ESC O Y | ESC [ 2 1 ~ | ESC [ 2 1 ~ | ESC [ 2 1 ~ | ESC [ V | | Escape | 0x17 | ESC | ESC | ESC | ESC | ESC | | F11 | 0x15 | ESC O Z | ESC [ 2 3 ~ | ESC [ 2 3 ~ | ESC [ 2 3 ~ | ESC [ W | | F12 | 0x16 | ESC O [ | ESC [ 2 4 ~ | ESC [ 2 4 ~ | ESC [ 2 4 ~ | ESC [ X | +=========+======+===========+=============+=============+=============+=========+
ESC R ESC r ESC R = Reset System
TerminalDevice | The terminal device to use to translate raw input into EFI Keys |
Converts a stream of Unicode characters from a terminal input device into EFI Keys that can be read through the Simple Input Protocol.
The table below shows the keyboard input mappings that this function supports. If the ESC sequence listed in one of the columns is presented, then it is translated into the corresponding EFI Scan Code. If a matching sequence is not found, then the raw key strokes are converted into EFI Keys.
2 seconds are allowed for an ESC sequence to be completed. If the ESC sequence is not completed in 2 seconds, then the raw key strokes of the partial ESC sequence are converted into EFI Keys. There is one special input sequence that will force the system to reset. This is ESC R ESC r ESC R.
Note: current implementation support terminal types include: PC ANSI, VT100+/VTUTF8, VT100. The table below is not same with UEFI Spec 2.3 Appendix B Table 201(not support ANSI X3.64 / DEC VT200-500 and extra support PC ANSI, VT100)since UEFI Table 201 is just an example.
ESC = 0x1B CSI = 0x9B DEL = 0x7f ^ = CTRL
+=========+======+===========+==========+==========+ | | EFI | UEFI 2.0 | | | | | Scan | | VT100+ | | | KEY | Code | PC ANSI | VTUTF8 | VT100 | +=========+======+===========+==========+==========+ | NULL | 0x00 | | | | | UP | 0x01 | ESC [ A | ESC [ A | ESC [ A | | DOWN | 0x02 | ESC [ B | ESC [ B | ESC [ B | | RIGHT | 0x03 | ESC [ C | ESC [ C | ESC [ C | | LEFT | 0x04 | ESC [ D | ESC [ D | ESC [ D | | HOME | 0x05 | ESC [ H | ESC h | ESC [ H | | END | 0x06 | ESC [ F | ESC k | ESC [ K | | INSERT | 0x07 | ESC [ @ | ESC + | ESC [ @ | | | | ESC [ L | | ESC [ L | | DELETE | 0x08 | ESC [ X | ESC - | ESC [ P | | PG UP | 0x09 | ESC [ I | ESC ? | ESC [ V | | | | | | ESC [ ? | | PG DOWN | 0x0A | ESC [ G | ESC / | ESC [ U | | | | | | ESC [ / | | F1 | 0x0B | ESC [ M | ESC 1 | ESC O P | | F2 | 0x0C | ESC [ N | ESC 2 | ESC O Q | | F3 | 0x0D | ESC [ O | ESC 3 | ESC O w | | F4 | 0x0E | ESC [ P | ESC 4 | ESC O x | | F5 | 0x0F | ESC [ Q | ESC 5 | ESC O t | | F6 | 0x10 | ESC [ R | ESC 6 | ESC O u | | F7 | 0x11 | ESC [ S | ESC 7 | ESC O q | | F8 | 0x12 | ESC [ T | ESC 8 | ESC O r | | F9 | 0x13 | ESC [ U | ESC 9 | ESC O p | | F10 | 0x14 | ESC [ V | ESC 0 | ESC O M | | Escape | 0x17 | ESC | ESC | ESC | | F11 | 0x15 | | ESC ! | | | F12 | 0x16 | | ESC @ | | +=========+======+===========+==========+==========+
Putty function key map: +=========+======+===========+=============+=============+=============+=========+ | | EFI | | | | | | | | Scan | VT100+ | | Normal | | | | KEY | Code | VTUTF8 | Xterm R6 | VT400 | Linux | SCO | +=========+======+===========+=============+=============+=============+=========+ | F1 | 0x0B | ESC O P | ESC O P | ESC [ 1 1 ~ | ESC [ [ A | ESC [ M | | F2 | 0x0C | ESC O Q | ESC O Q | ESC [ 1 2 ~ | ESC [ [ B | ESC [ N | | F3 | 0x0D | ESC O R | ESC O R | ESC [ 1 3 ~ | ESC [ [ C | ESC [ O | | F4 | 0x0E | ESC O S | ESC O S | ESC [ 1 4 ~ | ESC [ [ D | ESC [ P | | F5 | 0x0F | ESC O T | ESC [ 1 5 ~ | ESC [ 1 5 ~ | ESC [ [ E | ESC [ Q | | F6 | 0x10 | ESC O U | ESC [ 1 7 ~ | ESC [ 1 7 ~ | ESC [ 1 7 ~ | ESC [ R | | F7 | 0x11 | ESC O V | ESC [ 1 8 ~ | ESC [ 1 8 ~ | ESC [ 1 8 ~ | ESC [ S | | F8 | 0x12 | ESC O W | ESC [ 1 9 ~ | ESC [ 1 9 ~ | ESC [ 1 9 ~ | ESC [ T | | F9 | 0x13 | ESC O X | ESC [ 2 0 ~ | ESC [ 2 0 ~ | ESC [ 2 0 ~ | ESC [ U | | F10 | 0x14 | ESC O Y | ESC [ 2 1 ~ | ESC [ 2 1 ~ | ESC [ 2 1 ~ | ESC [ V | | Escape | 0x17 | ESC | ESC | ESC | ESC | ESC | | F11 | 0x15 | ESC O Z | ESC [ 2 3 ~ | ESC [ 2 3 ~ | ESC [ 2 3 ~ | ESC [ W | | F12 | 0x16 | ESC O [ | ESC [ 2 4 ~ | ESC [ 2 4 ~ | ESC [ 2 4 ~ | ESC [ X | +=========+======+===========+=============+=============+=============+=========+
ESC R ESC r ESC R = Reset System
TerminalDevice | The terminal device to use to translate raw input into EFI Keys |
Definition at line 1349 of file TerminalConIn.c.
Translate one Unicode character into VT-UTF8 characters.
UTF8 Encoding Table Bits per Character | Unicode Character Range | Unicode Binary Encoding | UTF8 Binary Encoding 0-7 | 0x0000 - 0x007F | 00000000 0xxxxxxx | 0xxxxxxx 8-11 | 0x0080 - 0x07FF | 00000xxx xxxxxxxx | 110xxxxx 10xxxxxx 12-16 | 0x0800 - 0xFFFF | xxxxxxxx xxxxxxxx | 1110xxxx 10xxxxxx 10xxxxxx
Unicode | Unicode character need translating. |
Utf8Char | Return VT-UTF8 character set. |
ValidBytes | The count of valid VT-UTF8 characters. If ValidBytes is zero, no valid VT-UTF8 returned. |
Translate VT-UTF8 characters into one Unicode character.
UTF8 Encoding Table Bits per Character | Unicode Character Range | Unicode Binary Encoding | UTF8 Binary Encoding 0-7 | 0x0000 - 0x007F | 00000000 0xxxxxxx | 0xxxxxxx 8-11 | 0x0080 - 0x07FF | 00000xxx xxxxxxxx | 110xxxxx 10xxxxxx 12-16 | 0x0800 - 0xFFFF | xxxxxxxx xxxxxxxx | 1110xxxx 10xxxxxx 10xxxxxx
Utf8Char | VT-UTF8 character set needs translating. |
ValidBytes | The count of valid VT-UTF8 characters. |
UnicodeChar | Returned unicode character. |
VOID VTUTF8RawDataToUnicode | ( | IN TERMINAL_DEV * | TerminalDevice | ) |
Translate all VT-UTF8 characters in the Raw FIFI into unicode characters, and insert them into Unicode FIFO.
VtUtf8Device | The terminal device. |
Translate all VT-UTF8 characters in the Raw FIFI into unicode characters, and insert them into Unicode FIFO.
TerminalDevice | The terminal device. |
EFI_STATUS VTUTF8TestString | ( | IN TERMINAL_DEV * | TerminalDevice, |
IN CHAR16 * | WString | ||
) |
|
extern |
Definition at line 14 of file ComponentName.c.
|
extern |
Definition at line 23 of file ComponentName.c.
|
extern |
Definition at line 15 of file Terminal.c.