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