alder_lake_bios/Insyde/InsydeModulePkg/Include/Protocol/TerminalEscCode.h

72 lines
1.9 KiB
C

/** @file
Terminal Esc Code definition
;******************************************************************************
;* Copyright (c) 2012, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#ifndef _TERMINAL_ESC_CODE_H_
#define _TERMINAL_ESC_CODE_H_
#define TERMINAL_ESC_CODE_PROTOCOL_GUID \
{ \
0xC40BC698, 0x0F16, 0x443c, 0xB2, 0xF0, 0xBA, 0x6B, 0x5B, 0x16, 0x37, 0x99\
}
// CAUTION : The TP_XXXX definition must sync with VFR's TerminalType order
#define TP_VT100 1
#define TP_VT100P 2
#define TP_VTUTF8 4
#define TP_PCANSI 8
typedef struct {
UINT16 EfiScanCode;
UINT16 KbScanCode;
} EFI_TO_KB_SCANCODE_MAP;
typedef enum {
ESC_CODE_SCANCODE,
ESC_CODE_EXTENTION,
ESC_CODE_CONTROL,
ESC_CODE_ALTCODE,
ESC_CODE_FUNC
} ESC_CODE_TYPE;
typedef struct {
UINT8 TerminalType : 4;
UINT8 Reserve : 1;
UINT8 DataType : 3;
UINT16 Data;
CHAR16 *EscSequenceCode;
} ESC_SEQUENCE_CODE;
typedef enum {
TYPE_FUNCTION_ID, // Special Command Type
TYPE_FUNCTION_POINTER
} SPECIAL_COMMAND_TYPE;
typedef struct _CR_SPECIAL_COMMAND {
CHAR16 *CommandStr;
SPECIAL_COMMAND_TYPE CommandType;
UINT16 Command;
} CR_SPECIAL_COMMAND;
typedef struct {
UINT16 EscCodeCount;
ESC_SEQUENCE_CODE *EscSequenceCode;
EFI_TO_KB_SCANCODE_MAP *EfiToKbScanCode;
UINT16 CrSpecialCommandCount;
CR_SPECIAL_COMMAND *CrSpecialCommand;
} EFI_TERMINAL_ESC_CODE_PROTOCOL;
extern EFI_GUID gTerminalEscCodeProtocolGuid;
#endif