1/*++ 2 3Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 4This software and associated documentation (if any) is furnished 5under a license and may only be used or copied in accordance 6with the terms of the license. Except as permitted by such 7license, no part of this software or documentation may be 8reproduced, stored in a retrieval system, or transmitted in any 9form or by any means without the express written consent of 10Intel Corporation. 11 12Module Name: 13 14 efigop.h 15 16Abstract: 17 Info about framebuffers 18 19 20 21 22Revision History 23 24--*/ 25 26#ifndef _EFIGOP_H 27#define _EFIGOP_H 28 29#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \ 30 { 0x9042a9de, 0x23dc, 0x4a38, {0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a} } 31 32INTERFACE_DECL(_EFI_GRAPHICS_OUTPUT); 33 34typedef struct { 35 UINT32 RedMask; 36 UINT32 GreenMask; 37 UINT32 BlueMask; 38 UINT32 ReservedMask; 39} EFI_PIXEL_BITMASK; 40 41typedef enum { 42 PixelRedGreenBlueReserved8BitPerColor, 43 PixelBlueGreenRedReserved8BitPerColor, 44 PixelBitMask, 45 PixelBltOnly, 46 PixelFormatMax, 47} EFI_GRAPHICS_PIXEL_FORMAT; 48 49typedef struct { 50 UINT32 Version; 51 UINT32 HorizontalResolution; 52 UINT32 VerticalResolution; 53 EFI_GRAPHICS_PIXEL_FORMAT PixelFormat; 54 EFI_PIXEL_BITMASK PixelInformation; 55 UINT32 PixelsPerScanLine; 56} EFI_GRAPHICS_OUTPUT_MODE_INFORMATION; 57 58typedef struct { 59 UINT32 MaxMode; 60 UINT32 Mode; 61 EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info; 62 UINTN SizeOfInfo; 63 EFI_PHYSICAL_ADDRESS FrameBufferBase; 64 UINTN FrameBufferSize; 65} EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE; 66 67typedef 68EFI_STATUS 69(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE) ( 70 IN struct _EFI_GRAPHICS_OUTPUT *This, 71 IN UINT32 ModeNumber, 72 OUT UINTN *SizeOfInfo, 73 OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info 74 ); 75 76typedef 77EFI_STATUS 78(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE) ( 79 IN struct _EFI_GRAPHICS_OUTPUT *This, 80 IN UINT32 ModeNumber 81 ); 82 83typedef struct { 84 UINT8 Blue; 85 UINT8 Green; 86 UINT8 Red; 87 UINT8 Reserved; 88} EFI_GRAPHICS_OUTPUT_BLT_PIXEL; 89 90typedef enum { 91 EfiBltVideoFill, 92 EfiBltVideoToBltBuffer, 93 EfiBltBufferToVideo, 94 EfiBltVideoToVideo, 95 EfiGraphcisOutputBltOperationMax, 96} EFI_GRAPHICS_OUTPUT_BLT_OPERATION; 97 98typedef 99EFI_STATUS 100(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT) ( 101 IN struct _EFI_GRAPHICS_OUTPUT *This, 102 IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, 103 IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation, 104 IN UINTN SourceX, 105 IN UINTN SourceY, 106 IN UINTN DestinationX, 107 IN UINTN DestinationY, 108 IN UINTN Width, 109 IN UINTN Height, 110 IN UINTN Delta 111 ); 112 113typedef struct _EFI_GRAPHICS_OUTPUT { 114 EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode; 115 EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode; 116 EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt; 117 EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode; 118} EFI_GRAPHICS_OUTPUT; 119 120#endif /* _EFIGOP_H */ 121