Imported Upstream version 3.0
[platform/upstream/gnu-efi.git] / 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