TianoCore EDK2 master
Loading...
Searching...
No Matches
TerminalConIn.c File Reference
#include "Terminal.h"

Go to the source code of this file.

Functions

EFI_STATUS ReadKeyStrokeWorker (IN TERMINAL_DEV *TerminalDevice, OUT EFI_KEY_DATA *KeyData)
 
EFI_STATUS EFIAPI TerminalConInReset (IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
 
EFI_STATUS EFIAPI TerminalConInReadKeyStroke (IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, OUT EFI_INPUT_KEY *Key)
 
BOOLEAN IsKeyRegistered (IN EFI_KEY_DATA *RegsiteredData, IN EFI_KEY_DATA *InputData)
 
VOID EFIAPI TerminalConInWaitForKeyEx (IN EFI_EVENT Event, IN VOID *Context)
 
EFI_STATUS EFIAPI TerminalConInResetEx (IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
 
EFI_STATUS EFIAPI TerminalConInReadKeyStrokeEx (IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, OUT EFI_KEY_DATA *KeyData)
 
EFI_STATUS EFIAPI TerminalConInSetState (IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN EFI_KEY_TOGGLE_STATE *KeyToggleState)
 
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)
 
EFI_STATUS EFIAPI TerminalConInUnregisterKeyNotify (IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN VOID *NotificationHandle)
 
VOID TranslateRawDataToEfiKey (IN TERMINAL_DEV *TerminalDevice)
 
VOID EFIAPI TerminalConInWaitForKey (IN EFI_EVENT Event, IN VOID *Context)
 
VOID EFIAPI TerminalConInTimerHandler (IN EFI_EVENT Event, IN VOID *Context)
 
VOID EFIAPI KeyNotifyProcessHandler (IN EFI_EVENT Event, IN VOID *Context)
 
EFI_STATUS GetOneKeyFromSerial (EFI_SERIAL_IO_PROTOCOL *SerialIo, UINT8 *Output)
 
BOOLEAN RawFiFoInsertOneKey (TERMINAL_DEV *TerminalDevice, UINT8 Input)
 
BOOLEAN RawFiFoRemoveOneKey (TERMINAL_DEV *TerminalDevice, UINT8 *Output)
 
BOOLEAN IsRawFiFoEmpty (TERMINAL_DEV *TerminalDevice)
 
BOOLEAN IsRawFiFoFull (TERMINAL_DEV *TerminalDevice)
 
BOOLEAN EfiKeyFiFoForNotifyInsertOneKey (EFI_KEY_FIFO *EfiKeyFiFo, EFI_INPUT_KEY *Input)
 
BOOLEAN EfiKeyFiFoForNotifyRemoveOneKey (EFI_KEY_FIFO *EfiKeyFiFo, EFI_INPUT_KEY *Output)
 
BOOLEAN IsEfiKeyFiFoForNotifyEmpty (EFI_KEY_FIFO *EfiKeyFiFo)
 
BOOLEAN IsEfiKeyFiFoForNotifyFull (EFI_KEY_FIFO *EfiKeyFiFo)
 
BOOLEAN EfiKeyFiFoInsertOneKey (TERMINAL_DEV *TerminalDevice, EFI_INPUT_KEY *Key)
 
BOOLEAN EfiKeyFiFoRemoveOneKey (TERMINAL_DEV *TerminalDevice, EFI_INPUT_KEY *Output)
 
BOOLEAN IsEfiKeyFiFoEmpty (TERMINAL_DEV *TerminalDevice)
 
BOOLEAN IsEfiKeyFiFoFull (TERMINAL_DEV *TerminalDevice)
 
BOOLEAN UnicodeFiFoInsertOneKey (TERMINAL_DEV *TerminalDevice, UINT16 Input)
 
VOID UnicodeFiFoRemoveOneKey (TERMINAL_DEV *TerminalDevice, UINT16 *Output)
 
BOOLEAN IsUnicodeFiFoEmpty (TERMINAL_DEV *TerminalDevice)
 
BOOLEAN IsUnicodeFiFoFull (TERMINAL_DEV *TerminalDevice)
 
VOID UnicodeToEfiKeyFlushState (IN TERMINAL_DEV *TerminalDevice)
 
VOID UnicodeToEfiKey (IN TERMINAL_DEV *TerminalDevice)
 

Detailed Description

Implementation for EFI_SIMPLE_TEXT_INPUT_PROTOCOL protocol.

(C) Copyright 2014 Hewlett-Packard Development Company, L.P.
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 TerminalConIn.c.

Function Documentation

◆ EfiKeyFiFoForNotifyInsertOneKey()

BOOLEAN EfiKeyFiFoForNotifyInsertOneKey ( EFI_KEY_FIFO EfiKeyFiFo,
EFI_INPUT_KEY Input 
)

Insert one pre-fetched key into the FIFO buffer.

Parameters
EfiKeyFiFoPointer to instance of EFI_KEY_FIFO.
InputThe key will be input.
Return values
TRUEIf insert successfully.
FALSEIf FIFO buffer is full before key insertion, and the key is lost.

Definition at line 830 of file TerminalConIn.c.

◆ EfiKeyFiFoForNotifyRemoveOneKey()

BOOLEAN EfiKeyFiFoForNotifyRemoveOneKey ( EFI_KEY_FIFO EfiKeyFiFo,
EFI_INPUT_KEY Output 
)

Remove one pre-fetched key out of the FIFO buffer.

Parameters
EfiKeyFiFoPointer to instance of EFI_KEY_FIFO.
OutputThe key will be removed.
Return values
TRUEIf remove successfully.
FALSEIf FIFO buffer is empty before remove operation.

Definition at line 864 of file TerminalConIn.c.

◆ EfiKeyFiFoInsertOneKey()

BOOLEAN EfiKeyFiFoInsertOneKey ( TERMINAL_DEV TerminalDevice,
EFI_INPUT_KEY Key 
)

Insert one pre-fetched key into the FIFO buffer.

Parameters
TerminalDeviceTerminal driver private structure.
KeyThe key will be input.
Return values
TRUEIf insert successfully.
FALSEIf FIFO buffer is full before key insertion, and the key is lost.

Definition at line 950 of file TerminalConIn.c.

◆ EfiKeyFiFoRemoveOneKey()

BOOLEAN EfiKeyFiFoRemoveOneKey ( TERMINAL_DEV TerminalDevice,
EFI_INPUT_KEY Output 
)

Remove one pre-fetched key out of the FIFO buffer.

Parameters
TerminalDeviceTerminal driver private structure.
OutputThe key will be removed.
Return values
TRUEIf insert successfully.
FALSEIf FIFO buffer is empty before remove operation.

Definition at line 1015 of file TerminalConIn.c.

◆ GetOneKeyFromSerial()

EFI_STATUS GetOneKeyFromSerial ( EFI_SERIAL_IO_PROTOCOL SerialIo,
UINT8 *  Output 
)

Get one key out of serial buffer.

Parameters
SerialIoSerial I/O protocol attached to the serial device.
OutputThe fetched key.
Return values
EFI_NOT_READYIf serial buffer is empty.
EFI_DEVICE_ERRORIf reading serial buffer encounter error.
EFI_SUCCESSIf reading serial buffer successfully, put the fetched key to the parameter output.

Definition at line 669 of file TerminalConIn.c.

◆ IsEfiKeyFiFoEmpty()

BOOLEAN IsEfiKeyFiFoEmpty ( TERMINAL_DEV TerminalDevice)

Clarify whether FIFO buffer is empty.

Parameters
TerminalDeviceTerminal driver private structure
Return values
TRUEIf FIFO buffer is empty.
FALSEIf FIFO buffer is not empty.

Definition at line 1051 of file TerminalConIn.c.

◆ IsEfiKeyFiFoForNotifyEmpty()

BOOLEAN IsEfiKeyFiFoForNotifyEmpty ( EFI_KEY_FIFO EfiKeyFiFo)

Clarify whether FIFO buffer is empty.

Parameters
EfiKeyFiFoPointer to instance of EFI_KEY_FIFO.
Return values
TRUEIf FIFO buffer is empty.
FALSEIf FIFO buffer is not empty.

Definition at line 900 of file TerminalConIn.c.

◆ IsEfiKeyFiFoForNotifyFull()

BOOLEAN IsEfiKeyFiFoForNotifyFull ( EFI_KEY_FIFO EfiKeyFiFo)

Clarify whether FIFO buffer is full.

Parameters
EfiKeyFiFoPointer to instance of EFI_KEY_FIFO.
Return values
TRUEIf FIFO buffer is full.
FALSEIf FIFO buffer is not full.

Definition at line 921 of file TerminalConIn.c.

◆ IsEfiKeyFiFoFull()

BOOLEAN IsEfiKeyFiFoFull ( TERMINAL_DEV TerminalDevice)

Clarify whether FIFO buffer is full.

Parameters
TerminalDeviceTerminal driver private structure
Return values
TRUEIf FIFO buffer is full.
FALSEIf FIFO buffer is not full.

Definition at line 1072 of file TerminalConIn.c.

◆ IsKeyRegistered()

BOOLEAN IsKeyRegistered ( IN EFI_KEY_DATA RegsiteredData,
IN EFI_KEY_DATA InputData 
)

Check if the key already has been registered.

If both RegsiteredData and InputData is NULL, then ASSERT().

Parameters
RegsiteredDataA pointer to a buffer that is filled in with the keystroke state data for the key that was registered.
InputDataA pointer to a buffer that is filled in with the keystroke state data for the key that was pressed.
Return values
TRUEKey be pressed matches a registered key.
FALSEMatch failed.

Definition at line 166 of file TerminalConIn.c.

◆ IsRawFiFoEmpty()

BOOLEAN IsRawFiFoEmpty ( TERMINAL_DEV TerminalDevice)

Clarify whether Raw Data FIFO buffer is empty.

Parameters
TerminalDeviceTerminal driver private structure
Return values
TRUEIf Raw Data FIFO buffer is empty.
FALSEIf Raw Data FIFO buffer is not empty.

Definition at line 780 of file TerminalConIn.c.

◆ IsRawFiFoFull()

BOOLEAN IsRawFiFoFull ( TERMINAL_DEV TerminalDevice)

Clarify whether Raw Data FIFO buffer is full.

Parameters
TerminalDeviceTerminal driver private structure
Return values
TRUEIf Raw Data FIFO buffer is full.
FALSEIf Raw Data FIFO buffer is not full.

Definition at line 801 of file TerminalConIn.c.

◆ IsUnicodeFiFoEmpty()

BOOLEAN IsUnicodeFiFoEmpty ( TERMINAL_DEV TerminalDevice)

Clarify whether Unicode FIFO buffer is empty.

Parameters
TerminalDeviceTerminal driver private structure
Return values
TRUEIf Unicode FIFO buffer is empty.
FALSEIf Unicode FIFO buffer is not empty.

Definition at line 1160 of file TerminalConIn.c.

◆ IsUnicodeFiFoFull()

BOOLEAN IsUnicodeFiFoFull ( TERMINAL_DEV TerminalDevice)

Clarify whether Unicode FIFO buffer is full.

Parameters
TerminalDeviceTerminal driver private structure
Return values
TRUEIf Unicode FIFO buffer is full.
FALSEIf Unicode FIFO buffer is not full.

Definition at line 1181 of file TerminalConIn.c.

◆ KeyNotifyProcessHandler()

VOID EFIAPI KeyNotifyProcessHandler ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

Process key notify.

Parameters
EventIndicates the event that invoke this function.
ContextIndicates the calling context.

Definition at line 610 of file TerminalConIn.c.

◆ RawFiFoInsertOneKey()

BOOLEAN RawFiFoInsertOneKey ( TERMINAL_DEV TerminalDevice,
UINT8  Input 
)

Insert one byte raw data into the Raw Data FIFO.

Parameters
TerminalDeviceTerminal driver private structure.
InputThe key will be input.
Return values
TRUEIf insert successfully.
FALSEIf Raw Data buffer is full before key insertion, and the key is lost.

Definition at line 712 of file TerminalConIn.c.

◆ RawFiFoRemoveOneKey()

BOOLEAN RawFiFoRemoveOneKey ( TERMINAL_DEV TerminalDevice,
UINT8 *  Output 
)

Remove one pre-fetched key out of the Raw Data FIFO.

Parameters
TerminalDeviceTerminal driver private structure.
OutputThe key will be removed.
Return values
TRUEIf insert successfully.
FALSEIf Raw Data FIFO buffer is empty before remove operation.

Definition at line 746 of file TerminalConIn.c.

◆ ReadKeyStrokeWorker()

EFI_STATUS ReadKeyStrokeWorker ( IN TERMINAL_DEV TerminalDevice,
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.

Parameters
TerminalDeviceTerminal driver private structure
KeyDataA pointer to a buffer that is filled in with the keystroke state data for the key that was pressed.
Return values
EFI_SUCCESSThe keystroke information was returned.
EFI_NOT_READYThere was no keystroke data available.
EFI_INVALID_PARAMETERKeyData is NULL.

Definition at line 28 of file TerminalConIn.c.

◆ TerminalConInReadKeyStroke()

EFI_STATUS EFIAPI TerminalConInReadKeyStroke ( IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL This,
OUT EFI_INPUT_KEY Key 
)

Implements EFI_SIMPLE_TEXT_INPUT_PROTOCOL.ReadKeyStroke().

Parameters
ThisIndicates the calling context.
KeyA pointer to a buffer that is filled in with the keystroke information for the key that was sent from terminal.
Return values
EFI_SUCCESSThe keystroke information is returned successfully.
EFI_NOT_READYThere is no keystroke data available.
EFI_DEVICE_ERRORThe dependent serial device encounters error.
EFI_UNSUPPORTEDThe device does not support the ability to read keystroke data.

Definition at line 125 of file TerminalConIn.c.

◆ TerminalConInReadKeyStrokeEx()

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.

Parameters
ThisProtocol instance pointer.
KeyDataA pointer to a buffer that is filled in with the keystroke state data for the key that was pressed.
Return values
EFI_SUCCESSThe keystroke information was returned.
EFI_NOT_READYThere was no keystroke data available.
EFI_DEVICE_ERRORThe keystroke information was not returned due to hardware errors.
EFI_INVALID_PARAMETERKeyData is NULL.
EFI_UNSUPPORTEDThe device does not support the ability to read keystroke data.

Definition at line 255 of file TerminalConIn.c.

◆ TerminalConInRegisterKeyNotify()

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.

Parameters
ThisProtocol instance pointer.
KeyDataA 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.
KeyNotificationFunctionPoints to the function to be called when the key sequence is typed specified by KeyData. This notification function should be called at <=TPL_CALLBACK.
NotifyHandlePoints to the unique handle assigned to the registered notification.
Return values
EFI_SUCCESSThe notification function was registered successfully.
EFI_OUT_OF_RESOURCESUnable to allocate resources for necessary data structures.
EFI_INVALID_PARAMETERKeyData or NotifyHandle is NULL.

Definition at line 328 of file TerminalConIn.c.

◆ TerminalConInReset()

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

Parameters
ThisIndicates the calling context.
ExtendedVerificationSkip by this driver.
Return values
EFI_SUCCESSThe reset operation succeeds.
EFI_DEVICE_ERRORThe dependent serial port reset fails.

Definition at line 61 of file TerminalConIn.c.

◆ TerminalConInResetEx()

EFI_STATUS EFIAPI TerminalConInResetEx ( IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL This,
IN BOOLEAN  ExtendedVerification 
)

Reset the input device and optionally run diagnostics

Parameters
ThisProtocol instance pointer.
ExtendedVerificationDriver may perform diagnostics on reset.
Return values
EFI_SUCCESSThe device was reset.
EFI_DEVICE_ERRORThe device is not functioning properly and could not be reset.

Definition at line 217 of file TerminalConIn.c.

◆ TerminalConInSetState()

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.

Parameters
ThisProtocol instance pointer.
KeyToggleStateA pointer to the EFI_KEY_TOGGLE_STATE to set the state for the input device.
Return values
EFI_SUCCESSThe device state was set successfully.
EFI_DEVICE_ERRORThe device is not functioning correctly and could not have the setting adjusted.
EFI_UNSUPPORTEDThe device does not have the ability to set its state.
EFI_INVALID_PARAMETERKeyToggleState is NULL.

Definition at line 288 of file TerminalConIn.c.

◆ TerminalConInTimerHandler()

VOID EFIAPI TerminalConInTimerHandler ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

Timer handler to poll the key from serial.

Parameters
EventIndicates the event that invoke this function.
ContextIndicates the calling context.

Definition at line 513 of file TerminalConIn.c.

◆ TerminalConInUnregisterKeyNotify()

EFI_STATUS EFIAPI TerminalConInUnregisterKeyNotify ( IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL This,
IN VOID *  NotificationHandle 
)

Remove a registered notification function from a particular keystroke.

Parameters
ThisProtocol instance pointer.
NotificationHandleThe handle of the notification function being unregistered.
Return values
EFI_SUCCESSThe notification function was unregistered successfully.
EFI_INVALID_PARAMETERThe NotificationHandle is invalid.

Definition at line 398 of file TerminalConIn.c.

◆ TerminalConInWaitForKey()

VOID EFIAPI TerminalConInWaitForKey ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

Event notification function for EFI_SIMPLE_TEXT_INPUT_PROTOCOL.WaitForKey event Signal the event if there is key available

Parameters
EventIndicates the event that invoke this function.
ContextIndicates the calling context.

Definition at line 491 of file TerminalConIn.c.

◆ TerminalConInWaitForKeyEx()

VOID EFIAPI TerminalConInWaitForKeyEx ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

Event notification function for EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.WaitForKeyEx event Signal the event if there is key available

Parameters
EventIndicates the event that invoke this function.
ContextIndicates the calling context.

Definition at line 192 of file TerminalConIn.c.

◆ TranslateRawDataToEfiKey()

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).

Parameters
TerminalDeviceTerminal driver private structure.

Definition at line 447 of file TerminalConIn.c.

◆ UnicodeFiFoInsertOneKey()

BOOLEAN UnicodeFiFoInsertOneKey ( TERMINAL_DEV TerminalDevice,
UINT16  Input 
)

Insert one pre-fetched key into the Unicode FIFO buffer.

Parameters
TerminalDeviceTerminal driver private structure.
InputThe key will be input.
Return values
TRUEIf insert successfully.
FALSEIf Unicode FIFO buffer is full before key insertion, and the key is lost.

Definition at line 1101 of file TerminalConIn.c.

◆ UnicodeFiFoRemoveOneKey()

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 ().

Parameters
TerminalDeviceTerminal driver private structure.
OutputThe key will be removed.

Definition at line 1135 of file TerminalConIn.c.

◆ UnicodeToEfiKey()

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 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.

Symbols used in table below

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 | +=========+======+===========+=============+=============+=============+=========+

Special Mappings

ESC R ESC r ESC R = Reset System

Parameters
TerminalDeviceThe terminal device to use to translate raw input into EFI Keys

Definition at line 1349 of file TerminalConIn.c.

◆ UnicodeToEfiKeyFlushState()

VOID UnicodeToEfiKeyFlushState ( IN TERMINAL_DEV TerminalDevice)

Update the Unicode characters from a terminal input device into EFI Keys FIFO.

Parameters
TerminalDeviceThe terminal device to use to translate raw input into EFI Keys

Definition at line 1205 of file TerminalConIn.c.