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