]> git.proxmox.com Git - efi-boot-shim.git/blob - gnu-efi/inc/protocol/vgaclass.h
New upstream version 15.3
[efi-boot-shim.git] / gnu-efi / inc / protocol / vgaclass.h
1 #ifndef _VGA_CLASS_H
2 #define _VGA_CLASS_H
3
4 /*++
5
6 Copyright (c) 1999 Intel Corporation
7
8 Module Name:
9
10 VgaClass.h
11
12 Abstract:
13
14 Vga Mini port binding to Vga Class protocol
15
16
17
18 Revision 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
30 typedef
31 EFI_STATUS
32 (* INIT_VGA_CARD) (
33 IN UINTN VgaMode,
34 IN VOID *Context
35 );
36
37 typedef 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')
43 typedef 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
83 typedef
84 EFI_STATUS
85 (EFIAPI *INSTALL_VGA_DRIVER) (
86 IN VGA_CON_OUT_DEV *ConOutDev
87 );
88
89 typedef struct {
90 UINT32 Version;
91 INSTALL_VGA_DRIVER InstallGenericVgaDriver;
92 } INSTALL_VGA_DRIVER_INTERFACE;
93
94 #endif
95