]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Universal / Console / TerminalDxe / Terminal.h
index 84808d55a06b9a3e473c9caae324901bd125e140..4238f8420ec1559a294022655da477e3b010196f 100644 (file)
@@ -1,22 +1,15 @@
 /** @file\r
   Header file for Terminal driver.\r
 \r
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2019, 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
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #ifndef _TERMINAL_H_\r
 #define _TERMINAL_H_\r
 \r
-\r
 #include <Uefi.h>\r
 \r
 #include <Guid/GlobalVariable.h>\r
@@ -42,44 +35,43 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/PcdLib.h>\r
 #include <Library/BaseLib.h>\r
 \r
-\r
-#define RAW_FIFO_MAX_NUMBER 256\r
-#define FIFO_MAX_NUMBER     128\r
+#define RAW_FIFO_MAX_NUMBER  255\r
+#define FIFO_MAX_NUMBER      128\r
 \r
 typedef struct {\r
-  UINT8 Head;\r
-  UINT8 Tail;\r
-  UINT8 Data[RAW_FIFO_MAX_NUMBER + 1];\r
+  UINT8    Head;\r
+  UINT8    Tail;\r
+  UINT8    Data[RAW_FIFO_MAX_NUMBER + 1];\r
 } RAW_DATA_FIFO;\r
 \r
 typedef struct {\r
-  UINT8   Head;\r
-  UINT8   Tail;\r
-  UINT16  Data[FIFO_MAX_NUMBER + 1];\r
+  UINT8     Head;\r
+  UINT8     Tail;\r
+  UINT16    Data[FIFO_MAX_NUMBER + 1];\r
 } UNICODE_FIFO;\r
 \r
 typedef struct {\r
-  UINT8         Head;\r
-  UINT8         Tail;\r
-  EFI_INPUT_KEY Data[FIFO_MAX_NUMBER + 1];\r
+  UINT8            Head;\r
+  UINT8            Tail;\r
+  EFI_INPUT_KEY    Data[FIFO_MAX_NUMBER + 1];\r
 } EFI_KEY_FIFO;\r
 \r
 typedef struct {\r
-  UINTN   Columns;\r
-  UINTN   Rows;\r
+  UINTN    Columns;\r
+  UINTN    Rows;\r
 } TERMINAL_CONSOLE_MODE_DATA;\r
 \r
-#define KEYBOARD_TIMER_INTERVAL         200000  // 0.02s\r
+#define KEYBOARD_TIMER_INTERVAL  200000         // 0.02s\r
 \r
 #define TERMINAL_DEV_SIGNATURE  SIGNATURE_32 ('t', 'm', 'n', 'l')\r
 \r
-#define TERMINAL_CONSOLE_IN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('t', 'm', 'e', 'n')\r
+#define TERMINAL_CONSOLE_IN_EX_NOTIFY_SIGNATURE  SIGNATURE_32 ('t', 'm', 'e', 'n')\r
 \r
 typedef struct _TERMINAL_CONSOLE_IN_EX_NOTIFY {\r
-  UINTN                                 Signature;\r
-  EFI_KEY_DATA                          KeyData;\r
-  EFI_KEY_NOTIFY_FUNCTION               KeyNotificationFn;\r
-  LIST_ENTRY                            NotifyEntry;\r
+  UINTN                      Signature;\r
+  EFI_KEY_DATA               KeyData;\r
+  EFI_KEY_NOTIFY_FUNCTION    KeyNotificationFn;\r
+  LIST_ENTRY                 NotifyEntry;\r
 } TERMINAL_CONSOLE_IN_EX_NOTIFY;\r
 \r
 typedef enum {\r
@@ -87,31 +79,35 @@ typedef enum {
   TerminalTypeVt100,\r
   TerminalTypeVt100Plus,\r
   TerminalTypeVtUtf8,\r
-  TerminalTypeTtyTerm\r
+  TerminalTypeTtyTerm,\r
+  TerminalTypeLinux,\r
+  TerminalTypeXtermR6,\r
+  TerminalTypeVt400,\r
+  TerminalTypeSCO\r
 } TERMINAL_TYPE;\r
 \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_SIMPLE_TEXT_OUTPUT_PROTOCOL     SimpleTextOutput;\r
-  EFI_SIMPLE_TEXT_OUTPUT_MODE         SimpleTextOutputMode;\r
-  TERMINAL_CONSOLE_MODE_DATA          *TerminalConsoleModeData;\r
-  UINTN                               SerialInTimeOut;\r
-  RAW_DATA_FIFO                       *RawFiFo;\r
-  UNICODE_FIFO                        *UnicodeFiFo;\r
-  EFI_KEY_FIFO                        *EfiKeyFiFo;\r
-  EFI_KEY_FIFO                        *EfiKeyFiFoForNotify;\r
-  EFI_UNICODE_STRING_TABLE            *ControllerNameTable;\r
-  EFI_EVENT                           TimerEvent;\r
-  EFI_EVENT                           TwoSecondTimeOut;\r
-  UINT32                              InputState;\r
-  UINT32                              ResetState;\r
-  UINT16                              TtyEscapeStr[3];\r
-  INTN                                TtyEscapeIndex;\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_SIMPLE_TEXT_OUTPUT_PROTOCOL    SimpleTextOutput;\r
+  EFI_SIMPLE_TEXT_OUTPUT_MODE        SimpleTextOutputMode;\r
+  TERMINAL_CONSOLE_MODE_DATA         *TerminalConsoleModeData;\r
+  UINTN                              SerialInTimeOut;\r
+  RAW_DATA_FIFO                      *RawFiFo;\r
+  UNICODE_FIFO                       *UnicodeFiFo;\r
+  EFI_KEY_FIFO                       *EfiKeyFiFo;\r
+  EFI_KEY_FIFO                       *EfiKeyFiFoForNotify;\r
+  EFI_UNICODE_STRING_TABLE           *ControllerNameTable;\r
+  EFI_EVENT                          TimerEvent;\r
+  EFI_EVENT                          TwoSecondTimeOut;\r
+  UINT32                             InputState;\r
+  UINT32                             ResetState;\r
+  UINT16                             TtyEscapeStr[3];\r
+  INTN                               TtyEscapeIndex;\r
 \r
   //\r
   // Esc could not be output to the screen by user,\r
@@ -120,55 +116,57 @@ typedef struct {
   // This boolean is used by the terminal driver only\r
   // to indicate whether the Esc could be sent or not.\r
   //\r
-  BOOLEAN                             OutputEscChar;\r
-  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL   SimpleInputEx;\r
-  LIST_ENTRY                          NotifyList;\r
-  EFI_EVENT                           KeyNotifyProcessEvent;\r
+  BOOLEAN                              OutputEscChar;\r
+  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL    SimpleInputEx;\r
+  LIST_ENTRY                           NotifyList;\r
+  EFI_EVENT                            KeyNotifyProcessEvent;\r
 } TERMINAL_DEV;\r
 \r
-#define INPUT_STATE_DEFAULT               0x00\r
-#define INPUT_STATE_ESC                   0x01\r
-#define INPUT_STATE_CSI                   0x02\r
-#define INPUT_STATE_LEFTOPENBRACKET       0x04\r
-#define INPUT_STATE_O                     0x08\r
-#define INPUT_STATE_2                     0x10\r
-#define INPUT_STATE_LEFTOPENBRACKET_2     0x20\r
-\r
-#define RESET_STATE_DEFAULT               0x00\r
-#define RESET_STATE_ESC_R                 0x01\r
-#define RESET_STATE_ESC_R_ESC_R           0x02\r
-\r
-#define TERMINAL_CON_IN_DEV_FROM_THIS(a)  CR (a, TERMINAL_DEV, SimpleInput, TERMINAL_DEV_SIGNATURE)\r
-#define TERMINAL_CON_OUT_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleTextOutput, TERMINAL_DEV_SIGNATURE)\r
+#define INPUT_STATE_DEFAULT              0x00\r
+#define INPUT_STATE_ESC                  0x01\r
+#define INPUT_STATE_CSI                  0x02\r
+#define INPUT_STATE_LEFTOPENBRACKET      0x04\r
+#define INPUT_STATE_O                    0x08\r
+#define INPUT_STATE_2                    0x10\r
+#define INPUT_STATE_LEFTOPENBRACKET_TTY  0x20\r
+#define INPUT_STATE_1                    0x40\r
+#define INPUT_STATE_LEFTOPENBRACKET_2ND  0x80\r
+\r
+#define RESET_STATE_DEFAULT      0x00\r
+#define RESET_STATE_ESC_R        0x01\r
+#define RESET_STATE_ESC_R_ESC_R  0x02\r
+\r
+#define TERMINAL_CON_IN_DEV_FROM_THIS(a)     CR (a, TERMINAL_DEV, SimpleInput, TERMINAL_DEV_SIGNATURE)\r
+#define TERMINAL_CON_OUT_DEV_FROM_THIS(a)    CR (a, TERMINAL_DEV, SimpleTextOutput, TERMINAL_DEV_SIGNATURE)\r
 #define TERMINAL_CON_IN_EX_DEV_FROM_THIS(a)  CR (a, TERMINAL_DEV, SimpleInputEx, TERMINAL_DEV_SIGNATURE)\r
 \r
 typedef union {\r
-  UINT8 Utf8_1;\r
-  UINT8 Utf8_2[2];\r
-  UINT8 Utf8_3[3];\r
+  UINT8    Utf8_1;\r
+  UINT8    Utf8_2[2];\r
+  UINT8    Utf8_3[3];\r
 } UTF8_CHAR;\r
 \r
-#define LEFTOPENBRACKET           0x5b  // '['\r
-#define ACAP                      0x41\r
-#define BCAP                      0x42\r
-#define CCAP                      0x43\r
-#define DCAP                      0x44\r
-\r
-#define BACKSPACE                 8\r
-#define ESC                       27\r
-#define CSI                       0x9B\r
-#define DEL                       127\r
-#define BRIGHT_CONTROL_OFFSET     2\r
-#define FOREGROUND_CONTROL_OFFSET 6\r
-#define BACKGROUND_CONTROL_OFFSET 11\r
-#define ROW_OFFSET                2\r
-#define COLUMN_OFFSET             5\r
-#define FW_BACK_OFFSET            2\r
+#define LEFTOPENBRACKET  0x5b           // '['\r
+#define ACAP             0x41\r
+#define BCAP             0x42\r
+#define CCAP             0x43\r
+#define DCAP             0x44\r
+\r
+#define BACKSPACE                  8\r
+#define ESC                        27\r
+#define CSI                        0x9B\r
+#define DEL                        127\r
+#define BRIGHT_CONTROL_OFFSET      2\r
+#define FOREGROUND_CONTROL_OFFSET  6\r
+#define BACKGROUND_CONTROL_OFFSET  11\r
+#define ROW_OFFSET                 2\r
+#define COLUMN_OFFSET              5\r
+#define FW_BACK_OFFSET             2\r
 \r
 typedef struct {\r
-  UINT16  Unicode;\r
-  CHAR8   PcAnsi;\r
-  CHAR8   Ascii;\r
+  UINT16    Unicode;\r
+  CHAR8     PcAnsi;\r
+  CHAR8     Ascii;\r
 } UNICODE_TO_CHAR;\r
 \r
 //\r
@@ -191,8 +189,8 @@ extern EFI_COMPONENT_NAME2_PROTOCOL  gTerminalComponentName2;
 EFI_STATUS\r
 EFIAPI\r
 InitializeTerminal (\r
-  IN EFI_HANDLE         ImageHandle,\r
-  IN EFI_SYSTEM_TABLE   *SystemTable\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
   );\r
 \r
 /**\r
@@ -210,11 +208,10 @@ InitializeTerminal (
 EFI_STATUS\r
 EFIAPI\r
 TerminalConInReset (\r
-  IN  EFI_SIMPLE_TEXT_INPUT_PROTOCOL    *This,\r
-  IN  BOOLEAN                           ExtendedVerification\r
+  IN  EFI_SIMPLE_TEXT_INPUT_PROTOCOL  *This,\r
+  IN  BOOLEAN                         ExtendedVerification\r
   );\r
 \r
-\r
 /**\r
   Implements EFI_SIMPLE_TEXT_INPUT_PROTOCOL.ReadKeyStroke().\r
 \r
@@ -266,8 +263,8 @@ IsKeyRegistered (
 VOID\r
 EFIAPI\r
 TerminalConInWaitForKeyEx (\r
-  IN  EFI_EVENT       Event,\r
-  IN  VOID            *Context\r
+  IN  EFI_EVENT  Event,\r
+  IN  VOID       *Context\r
   );\r
 \r
 //\r
@@ -311,8 +308,8 @@ TerminalConInResetEx (
 EFI_STATUS\r
 EFIAPI\r
 TerminalConInReadKeyStrokeEx (\r
-  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
-  OUT EFI_KEY_DATA                      *KeyData\r
+  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,\r
+  OUT EFI_KEY_DATA                       *KeyData\r
   );\r
 \r
 /**\r
@@ -399,8 +396,8 @@ TerminalConInUnregisterKeyNotify (
 VOID\r
 EFIAPI\r
 TerminalConInWaitForKey (\r
-  IN  EFI_EVENT     Event,\r
-  IN  VOID          *Context\r
+  IN  EFI_EVENT  Event,\r
+  IN  VOID       *Context\r
   );\r
 \r
 /**\r
@@ -421,8 +418,8 @@ TerminalConInWaitForKey (
 EFI_STATUS\r
 EFIAPI\r
 TerminalConOutReset (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  BOOLEAN                            ExtendedVerification\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  BOOLEAN                          ExtendedVerification\r
   );\r
 \r
 /**\r
@@ -609,9 +606,9 @@ TerminalConOutEnableCursor (
 EFI_STATUS\r
 EFIAPI\r
 TerminalDriverBindingSupported (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN EFI_HANDLE                     ControllerHandle,\r
-  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath\r
+  IN EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN EFI_HANDLE                   ControllerHandle,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -633,12 +630,11 @@ TerminalDriverBindingSupported (
 EFI_STATUS\r
 EFIAPI\r
 TerminalDriverBindingStart (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN EFI_HANDLE                     Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath\r
+  IN EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN EFI_HANDLE                   Controller,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
-\r
 /**\r
   Stop this driver on Controller by closing Simple Text In, Simple Text\r
   In Ex, Simple Text Out protocol, and removing parent device path from\r
@@ -657,10 +653,10 @@ TerminalDriverBindingStart (
 EFI_STATUS\r
 EFIAPI\r
 TerminalDriverBindingStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN  EFI_HANDLE                     Controller,\r
-  IN  UINTN                          NumberOfChildren,\r
-  IN  EFI_HANDLE                     *ChildHandleBuffer\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   Controller,\r
+  IN  UINTN                        NumberOfChildren,\r
+  IN  EFI_HANDLE                   *ChildHandleBuffer\r
   );\r
 \r
 /**\r
@@ -674,7 +670,7 @@ TerminalDriverBindingStop (
 **/\r
 EFI_STATUS\r
 TerminalFreeNotifyList (\r
-  IN OUT LIST_ENTRY           *ListHead\r
+  IN OUT LIST_ENTRY  *ListHead\r
   );\r
 \r
 /**\r
@@ -724,7 +720,6 @@ TerminalComponentNameGetDriverName (
   OUT CHAR16                       **DriverName\r
   );\r
 \r
-\r
 /**\r
   Retrieves a Unicode string that is the user readable name of the controller\r
   that is being managed by a driver.\r
@@ -796,14 +791,13 @@ TerminalComponentNameGetDriverName (
 EFI_STATUS\r
 EFIAPI\r
 TerminalComponentNameGetControllerName (\r
-  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,\r
-  IN  EFI_HANDLE                                      ControllerHandle,\r
-  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,\r
-  IN  CHAR8                                           *Language,\r
-  OUT CHAR16                                          **ControllerName\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,\r
+  IN  CHAR8                        *Language,\r
+  OUT CHAR16                       **ControllerName\r
   );\r
 \r
-\r
 //\r
 // internal functions\r
 //\r
@@ -854,7 +848,8 @@ TerminalRemoveConsoleDevVariable (
 /**\r
   Build termial device path according to terminal type.\r
 \r
-  @param  TerminalType           The terminal type is PC ANSI, VT100, VT100+ or VT-UTF8.\r
+  @param  TerminalType           The terminal type is PC ANSI, VT100, VT100+, VT-UTF8, TTY-Term,\r
+                                 Linux, XtermR6, VT400 and SCO.\r
   @param  ParentDevicePath       Parent device path.\r
   @param  TerminalDevicePath     Returned terminal device path, if building successfully.\r
 \r
@@ -865,9 +860,9 @@ TerminalRemoveConsoleDevVariable (
 **/\r
 EFI_STATUS\r
 SetTerminalDevicePath (\r
-  IN  TERMINAL_TYPE               TerminalType,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL    *ParentDevicePath,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL    **TerminalDevicePath\r
+  IN  TERMINAL_TYPE             TerminalType,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL  *ParentDevicePath,\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **TerminalDevicePath\r
   );\r
 \r
 /**\r
@@ -962,8 +957,8 @@ IsRawFiFoFull (
 **/\r
 BOOLEAN\r
 EfiKeyFiFoForNotifyInsertOneKey (\r
-  EFI_KEY_FIFO                  *EfiKeyFiFo,\r
-  EFI_INPUT_KEY                 *Input\r
+  EFI_KEY_FIFO   *EfiKeyFiFo,\r
+  EFI_INPUT_KEY  *Input\r
   );\r
 \r
 /**\r
@@ -978,8 +973,8 @@ EfiKeyFiFoForNotifyInsertOneKey (
 **/\r
 BOOLEAN\r
 EfiKeyFiFoForNotifyRemoveOneKey (\r
-  EFI_KEY_FIFO                  *EfiKeyFiFo,\r
-  EFI_INPUT_KEY                 *Output\r
+  EFI_KEY_FIFO   *EfiKeyFiFo,\r
+  EFI_INPUT_KEY  *Output\r
   );\r
 \r
 /**\r
@@ -993,7 +988,7 @@ EfiKeyFiFoForNotifyRemoveOneKey (
 **/\r
 BOOLEAN\r
 IsEfiKeyFiFoForNotifyEmpty (\r
-  IN EFI_KEY_FIFO               *EfiKeyFiFo\r
+  IN EFI_KEY_FIFO  *EfiKeyFiFo\r
   );\r
 \r
 /**\r
@@ -1007,7 +1002,7 @@ IsEfiKeyFiFoForNotifyEmpty (
 **/\r
 BOOLEAN\r
 IsEfiKeyFiFoForNotifyFull (\r
-  EFI_KEY_FIFO                  *EfiKeyFiFo\r
+  EFI_KEY_FIFO  *EfiKeyFiFo\r
   );\r
 \r
 /**\r
@@ -1023,8 +1018,8 @@ IsEfiKeyFiFoForNotifyFull (
 **/\r
 BOOLEAN\r
 EfiKeyFiFoInsertOneKey (\r
-  TERMINAL_DEV      *TerminalDevice,\r
-  EFI_INPUT_KEY     *Key\r
+  TERMINAL_DEV   *TerminalDevice,\r
+  EFI_INPUT_KEY  *Key\r
   );\r
 \r
 /**\r
@@ -1039,8 +1034,8 @@ EfiKeyFiFoInsertOneKey (
 **/\r
 BOOLEAN\r
 EfiKeyFiFoRemoveOneKey (\r
-  TERMINAL_DEV  *TerminalDevice,\r
-  EFI_INPUT_KEY *Output\r
+  TERMINAL_DEV   *TerminalDevice,\r
+  EFI_INPUT_KEY  *Output\r
   );\r
 \r
 /**\r
@@ -1084,8 +1079,8 @@ IsEfiKeyFiFoFull (
 **/\r
 BOOLEAN\r
 UnicodeFiFoInsertOneKey (\r
-  TERMINAL_DEV      *TerminalDevice,\r
-  UINT16            Input\r
+  TERMINAL_DEV  *TerminalDevice,\r
+  UINT16        Input\r
   );\r
 \r
 /**\r
@@ -1131,7 +1126,6 @@ IsUnicodeFiFoFull (
   TERMINAL_DEV  *TerminalDevice\r
   );\r
 \r
-\r
 /**\r
   Translate raw data into Unicode (according to different encode), and\r
   translate Unicode into key information. (according to different standard).\r
@@ -1141,7 +1135,7 @@ IsUnicodeFiFoFull (
 **/\r
 VOID\r
 TranslateRawDataToEfiKey (\r
-  IN  TERMINAL_DEV      *TerminalDevice\r
+  IN  TERMINAL_DEV  *TerminalDevice\r
   );\r
 \r
 //\r
@@ -1157,7 +1151,7 @@ TranslateRawDataToEfiKey (
 **/\r
 VOID\r
 AnsiRawDataToUnicode (\r
-  IN  TERMINAL_DEV    *TerminalDevice\r
+  IN  TERMINAL_DEV  *TerminalDevice\r
   );\r
 \r
 /**\r
@@ -1215,6 +1209,28 @@ AnsiRawDataToUnicode (
   | F12     | 0x16 |           | ESC @    |          |\r
   +=========+======+===========+==========+==========+\r
 \r
+Putty function key map:\r
+  +=========+======+===========+=============+=============+=============+=========+\r
+  |         | EFI  |           |             |             |             |         |\r
+  |         | Scan |           |             |  Normal     |             |         |\r
+  |   KEY   | Code |  VT100+   | Xterm R6    |  VT400      | Linux       | SCO     |\r
+  +=========+======+===========+=============+=============+=============+=========+\r
+  | F1      | 0x0B | ESC O P   | ESC O P     | ESC [ 1 1 ~ | ESC [ [ A   | ESC [ M |\r
+  | F2      | 0x0C | ESC O Q   | ESC O Q     | ESC [ 1 2 ~ | ESC [ [ B   | ESC [ N |\r
+  | F3      | 0x0D | ESC O R   | ESC O R     | ESC [ 1 3 ~ | ESC [ [ C   | ESC [ O |\r
+  | F4      | 0x0E | ESC O S   | ESC O S     | ESC [ 1 4 ~ | ESC [ [ D   | ESC [ P |\r
+  | F5      | 0x0F | ESC O T   | ESC [ 1 5 ~ | ESC [ 1 5 ~ | ESC [ [ E   | ESC [ Q |\r
+  | F6      | 0x10 | ESC O U   | ESC [ 1 7 ~ | ESC [ 1 7 ~ | ESC [ 1 7 ~ | ESC [ R |\r
+  | F7      | 0x11 | ESC O V   | ESC [ 1 8 ~ | ESC [ 1 8 ~ | ESC [ 1 8 ~ | ESC [ S |\r
+  | F8      | 0x12 | ESC O W   | ESC [ 1 9 ~ | ESC [ 1 9 ~ | ESC [ 1 9 ~ | ESC [ T |\r
+  | F9      | 0x13 | ESC O X   | ESC [ 2 0 ~ | ESC [ 2 0 ~ | ESC [ 2 0 ~ | ESC [ U |\r
+  | F10     | 0x14 | ESC O Y   | ESC [ 2 1 ~ | ESC [ 2 1 ~ | ESC [ 2 1 ~ | ESC [ V |\r
+  | Escape  | 0x17 | ESC       | ESC         | ESC         | ESC         | ESC     |\r
+  | F11     | 0x15 | ESC O Z   | ESC [ 2 3 ~ | ESC [ 2 3 ~ | ESC [ 2 3 ~ | ESC [ W |\r
+  | F12     | 0x16 | ESC O [   | ESC [ 2 4 ~ | ESC [ 2 4 ~ | ESC [ 2 4 ~ | ESC [ X |\r
+  +=========+======+===========+=============+=============+=============+=========+\r
+\r
+\r
   Special Mappings\r
   ================\r
   ESC R ESC r ESC R = Reset System\r
@@ -1225,7 +1241,7 @@ AnsiRawDataToUnicode (
 **/\r
 VOID\r
 UnicodeToEfiKey (\r
-  IN  TERMINAL_DEV    *TerminalDevice\r
+  IN  TERMINAL_DEV  *TerminalDevice\r
   );\r
 \r
 /**\r
@@ -1241,8 +1257,8 @@ UnicodeToEfiKey (
 **/\r
 EFI_STATUS\r
 AnsiTestString (\r
-  IN  TERMINAL_DEV    *TerminalDevice,\r
-  IN  CHAR16          *WString\r
+  IN  TERMINAL_DEV  *TerminalDevice,\r
+  IN  CHAR16        *WString\r
   );\r
 \r
 //\r
@@ -1258,7 +1274,7 @@ AnsiTestString (
 **/\r
 VOID\r
 VTUTF8RawDataToUnicode (\r
-  IN  TERMINAL_DEV    *VtUtf8Device\r
+  IN  TERMINAL_DEV  *VtUtf8Device\r
   );\r
 \r
 /**\r
@@ -1272,8 +1288,8 @@ VTUTF8RawDataToUnicode (
 **/\r
 EFI_STATUS\r
 VTUTF8TestString (\r
-  IN  TERMINAL_DEV    *TerminalDevice,\r
-  IN  CHAR16          *WString\r
+  IN  TERMINAL_DEV  *TerminalDevice,\r
+  IN  CHAR16        *WString\r
   );\r
 \r
 /**\r
@@ -1294,9 +1310,9 @@ VTUTF8TestString (
 **/\r
 VOID\r
 UnicodeToUtf8 (\r
-  IN  CHAR16      Unicode,\r
-  OUT UTF8_CHAR   *Utf8Char,\r
-  OUT UINT8       *ValidBytes\r
+  IN  CHAR16     Unicode,\r
+  OUT UTF8_CHAR  *Utf8Char,\r
+  OUT UINT8      *ValidBytes\r
   );\r
 \r
 /**\r
@@ -1310,9 +1326,9 @@ UnicodeToUtf8 (
 **/\r
 VOID\r
 GetOneValidUtf8Char (\r
-  IN  TERMINAL_DEV      *Utf8Device,\r
-  OUT UTF8_CHAR         *Utf8Char,\r
-  OUT UINT8             *ValidBytes\r
+  IN  TERMINAL_DEV  *Utf8Device,\r
+  OUT UTF8_CHAR     *Utf8Char,\r
+  OUT UINT8         *ValidBytes\r
   );\r
 \r
 /**\r
@@ -1332,9 +1348,9 @@ GetOneValidUtf8Char (
 **/\r
 VOID\r
 Utf8ToUnicode (\r
-  IN  UTF8_CHAR       Utf8Char,\r
-  IN  UINT8           ValidBytes,\r
-  OUT CHAR16          *UnicodeChar\r
+  IN  UTF8_CHAR  Utf8Char,\r
+  IN  UINT8      ValidBytes,\r
+  OUT CHAR16     *UnicodeChar\r
   );\r
 \r
 //\r
@@ -1356,7 +1372,7 @@ Utf8ToUnicode (
 BOOLEAN\r
 TerminalIsValidTextGraphics (\r
   IN  CHAR16  Graphic,\r
-  OUT CHAR8   *PcAnsi, OPTIONAL\r
+  OUT CHAR8   *PcAnsi  OPTIONAL,\r
   OUT CHAR8   *Ascii OPTIONAL\r
   );\r
 \r
@@ -1402,7 +1418,7 @@ TerminalIsValidEfiCntlChar (
 **/\r
 BOOLEAN\r
 IsHotPlugDevice (\r
-  IN  EFI_DEVICE_PATH_PROTOCOL    *DevicePath\r
+  IN  EFI_DEVICE_PATH_PROTOCOL  *DevicePath\r
   );\r
 \r
 /**\r
@@ -1414,11 +1430,10 @@ IsHotPlugDevice (
 VOID\r
 EFIAPI\r
 TerminalConInTimerHandler (\r
-  IN EFI_EVENT            Event,\r
-  IN VOID                 *Context\r
+  IN EFI_EVENT  Event,\r
+  IN VOID       *Context\r
   );\r
 \r
-\r
 /**\r
   Process key notify.\r
 \r
@@ -1428,8 +1443,8 @@ TerminalConInTimerHandler (
 VOID\r
 EFIAPI\r
 KeyNotifyProcessHandler (\r
-  IN  EFI_EVENT                 Event,\r
-  IN  VOID                      *Context\r
+  IN  EFI_EVENT  Event,\r
+  IN  VOID       *Context\r
   );\r
 \r
 #endif\r