/** @file CROpROMInfo Protocol Definitions ;****************************************************************************** ;* Copyright (c) 2012 - 2017, 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 _CONSOLE_REDIRECTION_OPROM_INFO_H_ #define _CONSOLE_REDIRECTION_OPROM_INFO_H_ #include #include #define CONSOLE_REDIRECTION_OPROM_INFO_PROTOCOL_GUID \ { \ 0xF773D226, 0xBD93, 0x4767, 0xB7, 0x50, 0x01, 0xDE, 0xE8, 0x9C, 0x66, 0x0A \ } typedef struct _EFI_CONSOLE_REDIRECTION_OPROM_INFO_PROTOCOL EFI_CONSOLE_REDIRECTION_OPROM_INFO_PROTOCOL; #define CR_OPROM_INFO_SIGNATURE SIGNATURE_32('C','R','O','I') // // Bios Post Phase // #define BIOS_PHASE_INIT 0 #define BIOS_PHASE_OPROM 1 #define BIOS_PHASE_SCU 2 #define BIOS_PHASE_OS 3 #define BIOS_PHASE_DOS_RUNING 4 #define BIOS_PHASE_OPROM_RUNING 5 #define BIOS_PHASE 0x047 #define BDA_EBDA_OFFSET 0x40E #define EBDA_DATA(Offset, type) (*(type*)(UINTN)(((*(UINT16*)(UINTN)0x40e) << 4) + (Offset))) #define CR_SERIAL_NONE_FC 0 #define CR_SERIAL_HW_FC 1 #define CR_SERIAL_SW_FC 2 #define HOST_SEND (TRUE) #define REMOTE_SEND (FALSE) #define XON 0x11 #define XOFF 0x13 #define CR_MEM_MANAGER_SIGNATURE SIGNATURE_32 ('$', 'C', 'E', 'I') #pragma pack(1) typedef struct { UINT8 Host; UINT8 Remote; } FLOW_CTRL_INFO; typedef struct { UINT32 Signature; FLOW_CTRL_INFO FlowState[MAX_CR_DEVICE_VARIABLE]; } CR_COMMON_AREA_INFO; #pragma pack() typedef CR_COMMON_AREA_INFO* (EFIAPI *CR_GET_COMMON_AREA) ( IN EFI_CONSOLE_REDIRECTION_OPROM_INFO_PROTOCOL *This ); typedef UINT8 (EFIAPI *CR_GET_UART_UID) ( IN EFI_CONSOLE_REDIRECTION_OPROM_INFO_PROTOCOL *This ); typedef struct _EFI_CONSOLE_REDIRECTION_OPROM_INFO_PROTOCOL { BOOLEAN CrOpROMInstalled; CR_GET_COMMON_AREA CrGetCommonArea; CR_GET_UART_UID CrGetUartUid; } EFI_CONSOLE_REDIRECTION_OPROM_INFO_PROTOCOL; extern EFI_GUID gH2OCrOpRomInfoProtocolGuid; #endif