]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/boot/efi/include/efigop.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / boot / efi / include / efigop.h
1 /* $FreeBSD$ */
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 */