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