/** @file The gEfiCRPolicyProtocolGuid is discard now. Please using PcdH2OCrPolicy and PcdH2OCrDevice to replace it. ;****************************************************************************** ;* 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 _CR_POLICY_PROTOCOL_H_ #define _CR_POLICY_PROTOCOL_H_ #include #include #define BIT_0 (1<<0) #define BIT_1 (1<<1) #define BIT_2 (1<<2) #define BIT_3 (1<<3) #define BIT_4 (1<<4) #define BIT_5 (1<<5) #define BIT_6 (1<<6) #define BIT_7 (1<<7) #define BIT_8 (1<<8) #define BIT_9 (1<<9) #define BIT_10 (1<<10) #define BIT_11 (1<<11) #define BIT_12 (1<<12) #define BIT_13 (1<<13) #define BIT_14 (1<<14) #define BIT_15 (1<<15) #define CR_DISABLE 0 #define CR_ENABLE 1 #define CR_TERMINAL_VT100 0 #define CR_TERMINAL_VT100P 1 #define CR_TERMINAL_UTF8 2 #define CR_TERMINAL_ANSI 3 #define CR_TERMINAL_VIDEO_FLAG BIT0 #define CR_TERMINAL_VIDEO_COLOR 0 #define CR_TERMINAL_VIDEO_MONO BIT0 #define CR_TERMINAL_KEY_FLAG BIT1 #define CR_TERMINAL_KEY_SENSELESS 0 #define CR_TERMINAL_KEY_SENSITIVE BIT1 #define CR_TERMINAL_COMBO_KEY_FLAG BIT2 #define CR_TERMINAL_COMBO_KEY_DISABLE 0 #define CR_TERMINAL_COMBO_KEY_ENABLE BIT2 #define CR_TERMINAL_ROW_FLAG BIT3 #define CR_TERMINAL_ROW_25 0 #define CR_TERMINAL_ROW_24 BIT3 #define CR_24ROWS_POLICY_FLAG BIT4 #define CR_24ROWS_POLICY_DEL_FIRST 0 #define CR_24ROWS_POLICY_DEL_LAST BIT4 #define CR_UNKBC_SUPPORT_FLAG BIT5 #define CR_UNKBC_SUPPORT_DISABLE 0 #define CR_UNKBC_SUPPORT_ENABLE BIT5 #define CR_AUTO_REFRESH_FLAG BIT6 #define CR_AUTO_REFRESH_DISABLE 0 #define CR_AUTO_REFRESH_ENABLE BIT6 #define CR_MANUAL_REFRESH_FLAG BIT7 #define CR_MANUAL_REFRESH_DISABLE 0 #define CR_MANUAL_REFRESH_ENABLE BIT7 #define CR_TERMINAL_CHARSET_FLAG BIT8 #define CR_TERMINAL_CHARSET_ASCII 0 #define CR_TERMINAL_CHARSET_GRAPHIC BIT8 #define CR_ASYNC_TERMINAL_FLAG BIT9 #define CR_ASYNC_TERMINAL_DISABLE 0 #define CR_ASYNC_TERMINAL_ENABLE BIT9 #define CR_OPROM_LOAD_ON_ESEG_FLAG BIT10 #define CR_OPROM_LOAD_ON_ESEG_DISABLE 0 #define CR_OPROM_LOAD_ON_ESEG_ENABLE BIT10 #define CR_ISA_SERIAL_PORTA 0x00 #define CR_ISA_SERIAL_PORTB 0x01 #define CR_ISA_SERIAL_PORTC 0x02 #define CR_ISA_SERIAL_PORTD 0x03 #define CR_LAN_PORT_1 0x10 #define CR_USB_SERIAL_ONLY 0x40 #define CR_PCI_SERIAL_ONLY 0x80 #define CR_ALL_PORTS 0xFF #define CR_BAUD_RATE_115200 0 #define CR_BAUD_RATE_57600 1 #define CR_BAUD_RATE_38400 2 #define CR_BAUD_RATE_19200 3 #define CR_BAUD_RATE_9600 4 #define CR_BAUD_RATE_4800 5 #define CR_BAUD_RATE_2400 6 #define CR_BAUD_RATE_1200 7 #define CR_BAUD_RATE_300 8 #define CR_DATA_7BIT 7 #define CR_DATA_8BIT 8 #define CR_PARITY_NONE 1 #define CR_PARITY_EVEN 2 #define CR_PARITY_ODD 3 #define CR_STOP_1BIT 1 #define CR_STOP_2BIT 3 #define CR_FLOW_CONTROL_NONE 0 #define CR_FLOW_CONTROL_HARDWARE 1 #define CR_FLOW_CONTROL_SOFTWARE 2 #define CR_HEADLESS_USE_VBUFFER 0 #define CR_HEADLESS_USE_EBDA 1 #define CR_MAX_SUPPORT_SERIAL_PORT 8 #define EFI_CR_POLICY_PROTOCOL_GUID \ { \ 0x1ae6fb95, 0xc2c7, 0x4e8e, 0xae, 0x09, 0xb9, 0xcc, 0x8e, 0xc9, 0x3c, 0xe2 \ } typedef struct _EFI_CR_POLICY_PROTOCOL EFI_CR_POLICY_PROTOCOL; #pragma pack (push) #pragma pack (1) #define SOL_IP_ADDR_STR_INDEX 0 #define SOL_MASK_STR_INDEX 1 #define SOL_GATEWAY_STR_INDEX 2 #define SOL_ADMIN_IP_STR_INDEX 3 #define SOL_LOGIN_ACCOUNT_STR_INDEX 4 #define SOL_LOGIN_PASSWORD_STR_INDEX 5 #define SOL_ADMIN_MAC_STR_INDEX 6 typedef struct _CR_SOL_CONFIG { BOOLEAN Enable; BOOLEAN UseDhcp; UINT16 PortNumber; EFI_IPv4_ADDRESS LocalIp; EFI_IPv4_ADDRESS SubnetMask; EFI_IPv4_ADDRESS Gateway; EFI_IPv4_ADDRESS AdminIp; EFI_MAC_ADDRESS AdminMac; CHAR16 UserName[13]; CHAR16 Password[13]; } CR_SOL_CONFIG; typedef struct _CR_SERIAL_DEV_INFO { UINT8 IsaDevCount; UINT8 PciDevCount; UINT8 UsbDevCount; UINT8 NetDevCount; EFI_CONSOLE_REDIRECTION_DEVICE CRDevice[CR_MAX_SUPPORT_SERIAL_PORT]; CR_SOL_CONFIG CrSolConfig; UINT16 CrSolStrId[7]; } CR_SERIAL_DEV_INFO; #pragma pack (pop) struct _EFI_CR_POLICY_PROTOCOL { BOOLEAN CREnable; UINT8 CRSerialPort; UINT8 CRBaudRate; UINT8 CRParity; UINT8 CRDataBits; UINT8 CRStopBits; UINT8 CRFlowControl; UINT8 CRTerminalType; UINT16 CRTerminalKey; UINT16 CRComboKey; UINT16 CRTerminalRows; UINT16 CR24RowsPolicy; UINT8 CRInfoWaitTime; BOOLEAN CRAfterPost; UINT16 CRVideoType; BOOLEAN CRShowHelp; BOOLEAN CRHeadlessVBuffer; UINT8 CRFifoLength; UINT16 CRAsyncTerm; BOOLEAN CRForce80x25; // Force terminal be 80x25 or 80x24 resolution BOOLEAN CRFailSaveBaudrate; UINT16 CRUnKbcSupport; UINT16 CRAutoRefresh; UINT16 CRManualRefresh; UINT16 CRTerminalCharSet; UINT8 CRWriteCharInterval; UINT16 CROpROMLoadOnESegment; CR_SERIAL_DEV_INFO CRSerialDevData; CR_DEVICE_ATTRIBUTES CrDevDefaultAttr[CR_MAX_SUPPORT_SERIAL_PORT]; CR_SOL_CONFIG CrSolDefaultConfig; }; extern EFI_GUID gEfiCRPolicyProtocolGuid; #endif // _CR_POLICY_PROTOCOL_H_