1060fee10Skettenis /* $FreeBSD: head/sys/boot/efi/include/efigop.h 264095 2014-04-04 00:16:46Z emaste $ */ 2060fee10Skettenis /*++ 3060fee10Skettenis 4060fee10Skettenis Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 5060fee10Skettenis This software and associated documentation (if any) is furnished 6060fee10Skettenis under a license and may only be used or copied in accordance 7060fee10Skettenis with the terms of the license. Except as permitted by such 8060fee10Skettenis license, no part of this software or documentation may be 9060fee10Skettenis reproduced, stored in a retrieval system, or transmitted in any 10060fee10Skettenis form or by any means without the express written consent of 11060fee10Skettenis Intel Corporation. 12060fee10Skettenis 13060fee10Skettenis Module Name: 14060fee10Skettenis 15060fee10Skettenis efigop.h 16060fee10Skettenis 17060fee10Skettenis Abstract: 18060fee10Skettenis Info about framebuffers 19060fee10Skettenis 20060fee10Skettenis 21060fee10Skettenis 22060fee10Skettenis 23060fee10Skettenis Revision History 24060fee10Skettenis 25060fee10Skettenis --*/ 26060fee10Skettenis 27060fee10Skettenis #ifndef _EFIGOP_H 28060fee10Skettenis #define _EFIGOP_H 29060fee10Skettenis 30060fee10Skettenis #define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \ 31*aa2a8ca5Sjsg { 0x9042a9de, 0x23dc, 0x4a38, { 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a } } 32060fee10Skettenis 33060fee10Skettenis INTERFACE_DECL(_EFI_GRAPHICS_OUTPUT); 34060fee10Skettenis 35060fee10Skettenis typedef struct { 36060fee10Skettenis UINT32 RedMask; 37060fee10Skettenis UINT32 GreenMask; 38060fee10Skettenis UINT32 BlueMask; 39060fee10Skettenis UINT32 ReservedMask; 40060fee10Skettenis } EFI_PIXEL_BITMASK; 41060fee10Skettenis 42060fee10Skettenis typedef enum { 43060fee10Skettenis PixelRedGreenBlueReserved8BitPerColor, 44060fee10Skettenis PixelBlueGreenRedReserved8BitPerColor, 45060fee10Skettenis PixelBitMask, 46060fee10Skettenis PixelBltOnly, 47060fee10Skettenis PixelFormatMax, 48060fee10Skettenis } EFI_GRAPHICS_PIXEL_FORMAT; 49060fee10Skettenis 50060fee10Skettenis typedef struct { 51060fee10Skettenis UINT32 Version; 52060fee10Skettenis UINT32 HorizontalResolution; 53060fee10Skettenis UINT32 VerticalResolution; 54060fee10Skettenis EFI_GRAPHICS_PIXEL_FORMAT PixelFormat; 55060fee10Skettenis EFI_PIXEL_BITMASK PixelInformation; 56060fee10Skettenis UINT32 PixelsPerScanLine; 57060fee10Skettenis } EFI_GRAPHICS_OUTPUT_MODE_INFORMATION; 58060fee10Skettenis 59060fee10Skettenis typedef struct { 60060fee10Skettenis UINT32 MaxMode; 61060fee10Skettenis UINT32 Mode; 62060fee10Skettenis EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info; 63060fee10Skettenis UINTN SizeOfInfo; 64060fee10Skettenis EFI_PHYSICAL_ADDRESS FrameBufferBase; 65060fee10Skettenis UINTN FrameBufferSize; 66060fee10Skettenis } EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE; 67060fee10Skettenis 68060fee10Skettenis typedef 69060fee10Skettenis EFI_STATUS 70060fee10Skettenis (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE) ( 71060fee10Skettenis IN struct _EFI_GRAPHICS_OUTPUT *This, 72060fee10Skettenis IN UINT32 ModeNumber, 73060fee10Skettenis OUT UINTN *SizeOfInfo, 74060fee10Skettenis OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info 75060fee10Skettenis ); 76060fee10Skettenis 77060fee10Skettenis typedef 78060fee10Skettenis EFI_STATUS 79060fee10Skettenis (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE) ( 80060fee10Skettenis IN struct _EFI_GRAPHICS_OUTPUT *This, 81060fee10Skettenis IN UINT32 ModeNumber 82060fee10Skettenis ); 83060fee10Skettenis 84060fee10Skettenis typedef struct { 85060fee10Skettenis UINT8 Blue; 86060fee10Skettenis UINT8 Green; 87060fee10Skettenis UINT8 Red; 88060fee10Skettenis UINT8 Reserved; 89060fee10Skettenis } EFI_GRAPHICS_OUTPUT_BLT_PIXEL; 90060fee10Skettenis 91060fee10Skettenis typedef enum { 92060fee10Skettenis EfiBltVideoFill, 93060fee10Skettenis EfiBltVideoToBltBuffer, 94060fee10Skettenis EfiBltBufferToVideo, 95060fee10Skettenis EfiBltVideoToVideo, 96060fee10Skettenis EfiGraphcisOutputBltOperationMax, 97060fee10Skettenis } EFI_GRAPHICS_OUTPUT_BLT_OPERATION; 98060fee10Skettenis 99060fee10Skettenis typedef 100060fee10Skettenis EFI_STATUS 101060fee10Skettenis (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT) ( 102060fee10Skettenis IN struct _EFI_GRAPHICS_OUTPUT *This, 103060fee10Skettenis IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, 104060fee10Skettenis IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation, 105060fee10Skettenis IN UINTN SourceX, 106060fee10Skettenis IN UINTN SourceY, 107060fee10Skettenis IN UINTN DestinationX, 108060fee10Skettenis IN UINTN DestinationY, 109060fee10Skettenis IN UINTN Width, 110060fee10Skettenis IN UINTN Height, 111060fee10Skettenis IN UINTN Delta 112060fee10Skettenis ); 113060fee10Skettenis 114060fee10Skettenis typedef struct _EFI_GRAPHICS_OUTPUT { 115060fee10Skettenis EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode; 116060fee10Skettenis EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode; 117060fee10Skettenis EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt; 118060fee10Skettenis EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode; 119060fee10Skettenis } EFI_GRAPHICS_OUTPUT; 120060fee10Skettenis 121060fee10Skettenis #endif /* _EFIGOP_H */ 122