blob: d0deb5ce65e2151cb99172de9429a774e0ed56e7 [file] [log] [blame]
Greg Hartman76d05dc2016-11-23 15:51:27 -08001#ifndef _VGA_CLASS_H
2#define _VGA_CLASS_H
3
4/*++
5
6Copyright (c) 1999 Intel Corporation
7
8Module Name:
9
10 VgaClass.h
11
12Abstract:
13
14 Vga Mini port binding to Vga Class protocol
15
16
17
18Revision History
19
20--*/
21
22//
23// VGA Device Structure
24//
25
26// {0E3D6310-6FE4-11d3-BB81-0080C73C8881}
27#define VGA_CLASS_DRIVER_PROTOCOL \
28 { 0xe3d6310, 0x6fe4, 0x11d3, {0xbb, 0x81, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
29
30typedef
31EFI_STATUS
32(* INIT_VGA_CARD) (
33 IN UINTN VgaMode,
34 IN VOID *Context
35 );
36
37typedef struct {
38 UINTN MaxColumns;
39 UINTN MaxRows;
40} MAX_CONSOLE_GEOMETRY;
41
42#define VGA_CON_OUT_DEV_SIGNATURE EFI_SIGNATURE_32('c','v','g','a')
43typedef struct {
44 UINTN Signature;
45
46 EFI_HANDLE Handle;
47 SIMPLE_TEXT_OUTPUT_INTERFACE ConOut;
48 SIMPLE_TEXT_OUTPUT_MODE ConOutMode;
49 EFI_DEVICE_PATH *DevicePath;
50
51 UINT8 *Buffer;
52 EFI_DEVICE_IO_INTERFACE *DeviceIo;
53
54 //
55 // Video Card Context
56 //
57 INIT_VGA_CARD InitVgaCard;
58 VOID *VgaCardContext;
59 MAX_CONSOLE_GEOMETRY *Geometry;
60 //
61 // Video buffer normally 0xb8000
62 //
63 UINT64 VideoBuffer;
64
65 //
66 // Clear Screen & Default Attribute
67 //
68 UINT32 Attribute;
69
70 //
71 // -1 means search for active VGA device
72 //
73 EFI_PCI_ADDRESS_UNION Pci;
74} VGA_CON_OUT_DEV;
75
76#define VGA_CON_OUT_DEV_FROM_THIS(a) CR(a, VGA_CON_OUT_DEV, ConOut, VGA_CON_OUT_DEV_SIGNATURE)
77
78//
79// Vga Class Driver Protocol.
80// GUID defined in EFI Lib
81//
82
83typedef
84EFI_STATUS
85(EFIAPI *INSTALL_VGA_DRIVER) (
86 IN VGA_CON_OUT_DEV *ConOutDev
87 );
88
89typedef struct {
90 UINT32 Version;
91 INSTALL_VGA_DRIVER InstallGenericVgaDriver;
92} INSTALL_VGA_DRIVER_INTERFACE;
93
94#endif
95