xref: /DragonStub/inc/protocol/vgaclass.h (revision e7db4418b1fe6ea0220974b77c3b10918ab9b7a0)
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 
96