#ifndef EFI_PROTOCOLS_CONSOLE_SUPPORT_H #define EFI_PROTOCOLS_CONSOLE_SUPPORT_H //// // Simple Text Input Protocol /// #define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID {0x387477c1,0x69c7,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}} // EFI Scancodes #define EFI_SCANCODE_NULL 0x00 #define EFI_SCANCODE_ARROW_UP 0x01 #define EFI_SCANCODE_ARROW_DOWN 0x02 #define EFI_SCANCODE_ARROW_RIGHT 0x03 #define EFI_SCANCODE_ARROW_LEFT 0x04 #define EFI_SCANCODE_HOME 0x05 #define EFI_SCANCODE_END 0x06 #define EFI_SCANCODE_INSERT 0x07 #define EFI_SCANCODE_DELETE 0x08 #define EFI_SCANCODE_PAGE_UP 0x09 #define EFI_SCANCODE_PAGE_DOWN 0x0A #define EFI_SCANCODE_FN1 0x0B #define EFI_SCANCODE_FN2 0x0C #define EFI_SCANCODE_FN3 0x0D #define EFI_SCANCODE_FN4 0x0E #define EFI_SCANCODE_FN5 0x0F #define EFI_SCANCODE_FN6 0x10 #define EFI_SCANCODE_FN7 0x11 #define EFI_SCANCODE_FN8 0x12 #define EFI_SCANCODE_FN9 0x13 #define EFI_SCANCODE_FN10 0x14 #define EFI_SCANCODE_ESC 0x17 typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL; typedef struct { EFI_UINT16 ScanCode; CHAR16 UnicodeChar; } EFI_INPUT_KEY; typedef EFI_STATUS (EFIAPI *EFI_INPUT_READ_KEY)( IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, OUT EFI_INPUT_KEY *Key ); typedef EFI_STATUS (EFIAPI *EFI_INPUT_RESET)( IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, IN EFI_BOOLEAN ExtendedVerification ); typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL { EFI_INPUT_RESET Reset; EFI_INPUT_READ_KEY ReadKeyStroke; EFI_EVENT WaitForKey; } EFI_SIMPLE_TEXT_INPUT_PROTOCOL; //// // Simple Text Input Extended Protocol /// #define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID {0xdd9e7534,0x7762,0x4698, {0x8c,0x14,0xf5,0x85,0x17,0xa6,0x25,0xaa}} // EFI Scancodes #define EFI_SCANCODE_FN11 0x15 #define EFI_SCANCODE_FN12 0x16 #define EFI_SCANCODE_PAUSE 0x48 #define EFI_SCANCODE_FN13 0x68 #define EFI_SCANCODE_FN14 0x69 #define EFI_SCANCODE_FN15 0x6A #define EFI_SCANCODE_FN16 0x6B #define EFI_SCANCODE_FN17 0x6C #define EFI_SCANCODE_FN18 0x6D #define EFI_SCANCODE_FN19 0x6E #define EFI_SCANCODE_FN20 0x6F #define EFI_SCANCODE_FN21 0x70 #define EFI_SCANCODE_FN22 0x71 #define EFI_SCANCODE_FN23 0x72 #define EFI_SCANCODE_FN24 0x73 #define EFI_SCANCODE_VOLUME_MUTE 0x7F #define EFI_SCANCODE_VOLUME_UP 0x80 #define EFI_SCANCODE_VOLUME_DOWN 0x81 #define EFI_SCANCODE_BRIGHTNESS_UP 0x100 #define EFI_SCANCODE_BRIGHTNESS_DOWN 0x101 #define EFI_SCANCODE_SUSPEND 0x102 #define EFI_SCANCODE_HIBERNATE 0x103 #define EFI_SCANCODE_TOGGLE_DISPLAY 0x104 #define EFI_SCANCODE_RECOVERY 0x105 #define EFI_SCANCODE_EJECT 0x106 #define EFI_SHIFT_STATE_VALID 0x80000000 #define EFI_RIGHT_SHIFT_PRESSED 0x00000001 #define EFI_LEFT_SHIFT_PRESSED 0x00000002 #define EFI_RIGHT_CONTROL_PRESSED 0x00000004 #define EFI_LEFT_CONTROL_PRESSED 0x00000008 #define EFI_RIGHT_ALT_PRESSED 0x00000010 #define EFI_LEFT_ALT_PRESSED 0x00000020 #define EFI_RIGHT_LOGO_PRESSED 0x00000040 #define EFI_LEFT_LOGO_PRESSED 0x00000080 #define EFI_MENU_KEY_PRESSED 0x00000100 #define EFI_SYS_REQ_PRESSED 0x00000200 #define EFI_TOGGLE_STATE_VALID 0x80 #define EFI_KEY_STATE_EXPOSED 0x40 #define EFI_SCROLL_LOCK_ACTIVE 0x01 #define EFI_NUM_LOCK_ACTIVE 0x02 #define EFI_CAPS_LOCK_ACTIVE 0x04 typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL; // Key Toggle State typedef EFI_UINT8 EFI_KEY_TOGGLE_STATE; typedef struct { EFI_UINT32 KeyShiftState; EFI_KEY_TOGGLE_STATE KeyToggleState; } EFI_KEY_STATE; typedef struct { EFI_INPUT_KEY Key; EFI_KEY_STATE KeyState; } EFI_KEY_DATA; typedef EFI_STATUS (EFIAPI *EFI_INPUT_RESET_EX)( IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN EFI_BOOLEAN ExtendedVerification ); typedef EFI_STATUS (EFIAPI *EFI_INPUT_READ_KEY_EX)( IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, OUT EFI_KEY_DATA *KeyData ); typedef EFI_STATUS (EFIAPI *EFI_SET_STATE)( IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN EFI_KEY_TOGGLE_STATE *KeyToggleState ); typedef EFI_STATUS (EFIAPI *EFI_KEY_NOTIFY_FUNCTION)( IN EFI_KEY_DATA *KeyData ); typedef EFI_STATUS (EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY)( IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN EFI_KEY_DATA *KeyData, IN EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction, OUT VOID **NotifyHandle ); typedef EFI_STATUS (EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY)( IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN VOID *NotificationHandle ); typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL { EFI_INPUT_RESET_EX Reset; EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx; EFI_EVENT WaitForKeyEx; EFI_SET_STATE SetState; EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify; EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify; } EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL; //// // EFI Simple Text Output Protocol /// #define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID {0x387477c2,0x69c7,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}} typedef struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL; typedef EFI_STATUS (EFIAPI *EFI_TEXT_RESET)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN EFI_BOOLEAN ExtendedVerification ); typedef EFI_STATUS (EFIAPI *EFI_TEXT_STRING)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN CHAR16 *String ); typedef EFI_STATUS (EFIAPI *EFI_TEXT_TEST_STRING)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN CHAR16 *String ); typedef EFI_STATUS (EFIAPI *EFI_TEXT_QUERY_MODE)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN EFI_UINTN ModeNumber, OUT EFI_UINTN *Columns, OUT EFI_UINTN *Rows ); typedef EFI_STATUS (EFIAPI *EFI_TEXT_SET_MODE)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN EFI_UINTN ModeNumber ); typedef EFI_STATUS (EFIAPI *EFI_TEXT_SET_ATTRIBUTE)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN EFI_UINTN Attribute ); typedef EFI_STATUS (EFIAPI *EFI_TEXT_CLEAR_SCREEN)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This ); typedef EFI_STATUS (EFIAPI *EFI_TEXT_SET_CURSOR_POSITION)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN EFI_UINTN Column, IN EFI_UINTN Row ); typedef EFI_STATUS (EFIAPI *EFI_TEXT_ENABLE_CURSOR)( IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN EFI_BOOLEAN Visible ); typedef struct { EFI_INT32 MaxNode; // Current settings EFI_INT32 Mode; EFI_INT32 Attribute; EFI_INT32 CursorColumn; EFI_INT32 CursorRow; EFI_BOOLEAN CursorVisible; } SIMPLE_TEXT_OUTPUT_MODE; typedef struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL { EFI_TEXT_RESET Reset; EFI_TEXT_STRING OutputString; EFI_TEXT_TEST_STRING TestString; EFI_TEXT_QUERY_MODE QueryMode; EFI_TEXT_SET_MODE SetMode; EFI_TEXT_SET_ATTRIBUTE SetAttribute; EFI_TEXT_CLEAR_SCREEN ClearScreen; EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition; EFI_TEXT_ENABLE_CURSOR EnableCursor; SIMPLE_TEXT_OUTPUT_MODE *Mode; } EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL; //// // EFI Simple Pointer Protocol /// #define EFI_SIMPLE_POINTER_PROTOCOL_GUID {0x31878c87,0xb75,0x11d5, {0x9a,0x4f,0x00,0x90,0x27,0x3f,0xc1,0x4d}} typedef struct _EFI_SIMPLE_POINTER_PROTOCOL EFI_SIMPLE_POINTER_PROTOCOL; typedef struct { EFI_UINT64 ResolutionX; EFI_UINT64 ResolutionY; EFI_UINT64 ResolutionZ; EFI_BOOLEAN LeftButton; EFI_BOOLEAN RightButton; } EFI_SIMPLE_POINTER_MODE; typedef struct { EFI_INT32 RelativeMovementX; EFI_INT32 RelativeMovementY; EFI_INT32 RelativeMovementZ; EFI_BOOLEAN LeftButton; EFI_BOOLEAN RightButton; } EFI_SIMPLE_POINTER_STATE; typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_POINTER_RESET)( IN EFI_SIMPLE_POINTER_PROTOCOL *This, IN EFI_BOOLEAN ExtendedVerification ); typedef EFI_STATUS (EFIAPI *EFI_SIMPLE_POINTER_GET_STATE)( IN EFI_SIMPLE_POINTER_PROTOCOL *This, OUT EFI_SIMPLE_POINTER_STATE *State ); typedef struct _EFI_SIMPLE_POINTER_PROTOCOL { EFI_SIMPLE_POINTER_RESET Reset; EFI_SIMPLE_POINTER_GET_STATE GetState; EFI_EVENT WaitForInput; EFI_SIMPLE_POINTER_MODE *Mode; } EFI_SIMPLE_POINTER_PROTOCOL; //// // Absolute Pointer Protocol /// #define EFI_ABSOLUTE_POINTER_PROTOCOL_GUID {0x8d59d32b,0xc655,0x4ae9, {0x9b,0x15,0xf2,0x59,0x04,0x99,0x2a,0x43}} #define EFI_ABSP_SupportsAltActive 0x00000001 #define EFI_ABSP_SupportsPressureAsZ 0x00000002 #define EFI_ABSP_TouchActive 0x00000001 #define EFI_ABS_AltActive 0x00000002 typedef struct _EFI_ABSOLUTE_POINTER_PROTOCOL EFI_ABSOLUTE_POINTER_PROTOCOL; typedef struct { EFI_UINT64 AbsoluteMinX; EFI_UINT64 AbsoluteMinY; EFI_UINT64 AbsoluteMinZ; EFI_UINT64 AbsoluteMaxX; EFI_UINT64 AbsoluteMaxY; EFI_UINT64 AbsoluteMaxZ; EFI_UINT32 Attributes; } EFI_ABSOLUTE_POINTER_MODE; typedef struct { EFI_UINT64 CurrentX; EFI_UINT64 CurrentY; EFI_UINT64 CurrentZ; EFI_UINT32 ActiveButtons; } EFI_ABSOLUTE_POINTER_STATE; typedef EFI_STATUS (EFIAPI *EFI_ABSOLUTE_POINTER_RESET)( IN EFI_ABSOLUTE_POINTER_PROTOCOL *This, IN EFI_BOOLEAN ExtendedVerification ); typedef EFI_STATUS (EFIAPI *EFI_ABSOLUTE_POINTER_GET_STATE)( IN EFI_ABSOLUTE_POINTER_PROTOCOL *This, OUT EFI_ABSOLUTE_POINTER_STATE *State ); typedef struct _EFI_ABSOLUTE_POINTER_PROTOCOL { EFI_ABSOLUTE_POINTER_RESET Reset; EFI_ABSOLUTE_POINTER_GET_STATE GetState; EFI_EVENT WaitForInput; EFI_ABSOLUTE_POINTER_MODE *Mode; } EFI_ABSOLUTE_POINTER_PROTOCOL; //// // Serial I/O Protocol /// #define EFI_SERIAL_IO_PROTOCOL_GUID {0xbb25cf6f,0xf1d4,0x11d2, {0x9a,0x0c,0x00,0x90,0x27,0x3f,0xc1,0xfd}} #define EFI_SERIAL_TERMINAL_DEVICE_TYPE_GUID {0x6ad9a60f,0x5815,0x4c7c, {0x8a,0x10,0x50,0x53,0xd2,0xbf,0x7a,0x1b}} #define EFI_SERIAL_IO_PROTOCOL_REVISION 0x00010000 #define EFI_SERIAL_IO_PROTOCOL_REVISION1p1 0x00010001 #define EFI_SERIAL_CLEAR_TO_SEND 0x0010 #define EFI_SERIAL_DATA_SET_READY 0x0020 #define EFI_SERIAL_RING_INDICATE 0x0040 #define EFI_SERIAL_CARRIER_DETECT 0x0080 #define EFI_SERIAL_REQUEST_TO_SEND 0x0002 #define EFI_SERIAL_DATA_TERMINAL_READY 0x0001 #define EFI_SERIAL_INPUT_BUFFER_EMPTY 0x0100 #define EFI_SERIAL_OUTPUT_BUFFER_EMPTY 0x0200 #define EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE 0x1000 #define EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE 0x2000 #define EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE 0x4000 typedef struct _EFI_SERIAL_IO_PROTOCOL EFI_SERIAL_IO_PROTOCOL; typedef enum { DefaultParity, NoParity, EvenParity, OddParity, MarkParity, SpaceParity } EFI_PARITY_TYPE; typedef enum { DefaultStopBits, OneStopBit, OneFiveStopBits, TwoStopBits } EFI_STOP_BITS_TYPE; typedef struct { EFI_UINT32 ControlMask; // Current Attributes EFI_UINT32 Timeout; EFI_UINT64 BaudRate; EFI_UINT32 ReceiveFifoDepth; EFI_UINT32 DataBits; EFI_UINT32 Parity; EFI_UINT32 StopBits; } SERIAL_IO_MODE; typedef EFI_STATUS (EFIAPI *EFI_SERIAL_RESET)( IN EFI_SERIAL_IO_PROTOCOL *This ); typedef EFI_STATUS (EFIAPI *EFI_SERIAL_SET_ATTRIBUTES)( IN EFI_SERIAL_IO_PROTOCOL *This, IN EFI_UINT64 BaudRate, IN EFI_UINT32 ReceiveFifoDepth, IN EFI_UINT32 Timeout, IN EFI_PARITY_TYPE Parity, IN EFI_UINT8 DataBits, IN EFI_STOP_BITS_TYPE StopBits ); typedef EFI_STATUS (EFIAPI *EFI_SERIAL_SET_CONTROL_BITS)( IN EFI_SERIAL_IO_PROTOCOL *This, IN EFI_UINT32 Control ); typedef EFI_STATUS (EFIAPI *EFI_SERIAL_GET_CONTROL_BITS)( IN EFI_SERIAL_IO_PROTOCOL *This, OUT EFI_UINT32 *Control ); typedef EFI_STATUS (EFIAPI *EFI_SERIAL_WRITE)( IN EFI_SERIAL_IO_PROTOCOL *This, IN OUT EFI_UINTN *BufferSize, IN VOID *Buffer ); typedef EFI_STATUS (EFIAPI *EFI_SERIAL_READ)( IN EFI_SERIAL_IO_PROTOCOL *This, IN OUT EFI_UINTN *BufferSize, OUT VOID *Buffer ); typedef struct _EFI_SERIAL_IO_PROTOCOL { EFI_UINT32 Revision; EFI_SERIAL_RESET Reset; EFI_SERIAL_SET_ATTRIBUTES SetAttributes; EFI_SERIAL_SET_CONTROL_BITS SetControl; EFI_SERIAL_GET_CONTROL_BITS GetControl; EFI_SERIAL_WRITE Write; EFI_SERIAL_READ Read; SERIAL_IO_MODE *Mode; // Revision 1.1 CONST EFI_GUID *DeviceTypeGuid; } EFI_SERIAL_IO_PROTOCOL; //// // Graphics Output Protocol /// #define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID {0x9042a9de,0x23dc,0x4a38, {0x96,0xfb,0x7a,0xde,0xd0,0x80,0x51,0x6a}} #define EFI_EDID_DISCOVERED_PROTOCOL_GUID {0x1c0c34f6,0xd380,0x41fa, {0xa0,0x49,0x8a,0xd0,0x6c,0x1a,0x66,0xaa}} #define EFI_EDID_ACTIVE_PROTOCOL_GUID {0xbd8c1056,0x9f36,0x44ec, {0x92,0xa8,0xa6,0x33,0x7f,0x81,0x79,0x86}} #define EFI_EDID_OVERRIDE_PROTOCOL_GUID {0x48ecb431,0xfb72,0x45c0, {0xa9,0x22,0xf4,0x58,0xfe,0x04,0x0b,0xd5}} #define EFI_EDID_OVERRIDE_DONT_OVERRIDE 0x01 #define EFI_EDID_OVERRIDE_ENABLE_HOT_PLUG 0x02 typedef struct _EFI_GRAPHICS_OUTPUT_PROTCOL EFI_GRAPHICS_OUTPUT_PROTOCOL; typedef enum { PixelRedGreenBlueReserved8BitPerColor, PixelBlueGreenRedReserved8BitPerColor, PixelBitMask, PixelBltOnly, PixelFormatMax } EFI_GRAPHICS_PIXEL_FORMAT; typedef enum { EfiBltVideoFill, EfiBltVideoToBltBuffer, EfiBltBufferToVideo, EfiBltVideoToVideo, EfiGraphicsOutputBltOperationMax } EFI_GRAPHICS_OUTPUT_BLT_OPERATION; typedef struct { EFI_UINT32 RedMask; EFI_UINT32 GreenMask; EFI_UINT32 BlueMask; EFI_UINT32 ReservedMask; } EFI_PIXEL_BITMASK; typedef struct { EFI_UINT32 Version; EFI_UINT32 HorizontalResolution; EFI_UINT32 VerticalResolution; EFI_GRAPHICS_PIXEL_FORMAT PixelFormat; EFI_PIXEL_BITMASK PixelInformation; EFI_UINT32 PixelsPerScanLine; } EFI_GRAPHICS_OUTPUT_MODE_INFORMATION; typedef struct { EFI_UINT32 MaxMode; EFI_UINT32 Mode; EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info; EFI_UINTN SizeOfInfo; EFI_PHYSICAL_ADDRESS FrameBufferBase; EFI_UINTN FrameBufferSize; } EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE; typedef struct { EFI_UINT8 Blue; EFI_UINT8 Green; EFI_UINT8 Red; EFI_UINT8 Reserved; } EFI_GRAPHICS_OUTPUT_BLT_PIXEL; typedef EFI_STATUS (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE)( IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This, IN EFI_UINT32 ModeNumber, OUT EFI_UINTN *SizeOfInfo, OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info ); typedef EFI_STATUS (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE)( IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This, IN EFI_UINT32 ModeNumber ); typedef EFI_STATUS (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT)( IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This, IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation, IN EFI_UINTN SourceX, IN EFI_UINTN SourceY, IN EFI_UINTN DestinationX, IN EFI_UINTN DestinationY, IN EFI_UINTN Width, IN EFI_UINTN Height, IN EFI_UINTN Delta OPTIONAL ); typedef struct _EFI_GRAPHICS_OUTPUT_PROTCOL { EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode; EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode; EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt; EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode; } EFI_GRAPHICS_OUTPUT_PROTOCOL; typedef struct _EFI_EDID_DISCOVERED_PROTOCOL { EFI_UINT32 SizeOfEdid; EFI_UINT8 *Edid; } EFI_EDID_DISCOVERED_PROTOCOL; typedef struct _EFI_EDID_ACTIVE_PROTOCOL { EFI_UINT32 SizeOfEdid; EFI_UINT8 *Edid; } EFI_EDID_ACTIVE_PROTOCOL; typedef struct _EFI_EDID_OVERRIDE_PROTOCOL EFI_EDID_OVERRIDE_PROTOCOL; typedef EFI_STATUS (EFIAPI *EFI_EDID_OVERRIDE_PROTOCOL_GET_EDID)( IN EFI_EDID_OVERRIDE_PROTOCOL *This, IN EFI_HANDLE *ChildHandle, OUT EFI_UINT32 *Attributes, OUT EFI_UINTN *EdidSize, OUT EFI_UINT8 **Edid ); typedef struct _EFI_EDID_OVERRIDE_PROTOCOL { EFI_EDID_OVERRIDE_PROTOCOL_GET_EDID GetEdid; } EFI_EDID_OVERRIDE_PROTOCOL; #endif /* EFI_PROTOCOLS_CONSOLE_SUPPORT_H */