efigop.h revision 271135
1/* $FreeBSD: stable/10/sys/boot/efi/include/efigop.h 271135 2014-09-04 21:01:10Z emaste $ */
2/*++
3
4Copyright (c)  1999 - 2002 Intel Corporation. All rights reserved
5This software and associated documentation (if any) is furnished
6under a license and may only be used or copied in accordance
7with the terms of the license. Except as permitted by such
8license, no part of this software or documentation may be
9reproduced, stored in a retrieval system, or transmitted in any
10form or by any means without the express written consent of
11Intel Corporation.
12
13Module Name:
14
15    efigop.h
16
17Abstract:
18    Info about framebuffers
19
20
21
22
23Revision 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
34INTERFACE_DECL(_EFI_GRAPHICS_OUTPUT);
35
36typedef struct {
37	UINT32	RedMask;
38	UINT32	GreenMask;
39	UINT32	BlueMask;
40	UINT32	ReservedMask;
41} EFI_PIXEL_BITMASK;
42
43typedef enum {
44	PixelRedGreenBlueReserved8BitPerColor,
45	PixelBlueGreenRedReserved8BitPerColor,
46	PixelBitMask,
47	PixelBltOnly,
48	PixelFormatMax,
49} EFI_GRAPHICS_PIXEL_FORMAT;
50
51typedef 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
60typedef 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
69typedef
70EFI_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
78typedef
79EFI_STATUS
80(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE) (
81    IN  struct _EFI_GRAPHICS_OUTPUT	*This,
82    IN  UINT32				ModeNumber
83    );
84
85typedef struct {
86	UINT8	Blue;
87	UINT8	Green;
88	UINT8	Red;
89	UINT8	Reserved;
90} EFI_GRAPHICS_OUTPUT_BLT_PIXEL;
91
92typedef enum {
93	EfiBltVideoFill,
94	EfiBltVideoToBltBuffer,
95	EfiBltBufferToVideo,
96	EfiBltVideoToVideo,
97	EfiGraphcisOutputBltOperationMax,
98} EFI_GRAPHICS_OUTPUT_BLT_OPERATION;
99
100typedef
101EFI_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
115typedef 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