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