xref: /openbsd/sys/stand/efi/include/efigop.h (revision fc61954a)
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