176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef _VGA_CLASS_H 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define _VGA_CLASS_H 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*++ 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanCopyright (c) 1999 Intel Corporation 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanModule Name: 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman VgaClass.h 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanAbstract: 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman Vga Mini port binding to Vga Class protocol 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanRevision History 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman--*/ 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// VGA Device Structure 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// {0E3D6310-6FE4-11d3-BB81-0080C73C8881} 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define VGA_CLASS_DRIVER_PROTOCOL \ 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { 0xe3d6310, 0x6fe4, 0x11d3, {0xbb, 0x81, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} } 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 3176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(* INIT_VGA_CARD) ( 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN UINTN VgaMode, 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN VOID *Context 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINTN MaxColumns; 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINTN MaxRows; 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} MAX_CONSOLE_GEOMETRY; 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define VGA_CON_OUT_DEV_SIGNATURE EFI_SIGNATURE_32('c','v','g','a') 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINTN Signature; 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_HANDLE Handle; 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman SIMPLE_TEXT_OUTPUT_INTERFACE ConOut; 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman SIMPLE_TEXT_OUTPUT_MODE ConOutMode; 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_DEVICE_PATH *DevicePath; 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 *Buffer; 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_DEVICE_IO_INTERFACE *DeviceIo; 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // Video Card Context 5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman INIT_VGA_CARD InitVgaCard; 5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman VOID *VgaCardContext; 5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman MAX_CONSOLE_GEOMETRY *Geometry; 6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // Video buffer normally 0xb8000 6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT64 VideoBuffer; 6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // Clear Screen & Default Attribute 6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 Attribute; 6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // -1 means search for active VGA device 7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman // 7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_PCI_ADDRESS_UNION Pci; 7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} VGA_CON_OUT_DEV; 7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define VGA_CON_OUT_DEV_FROM_THIS(a) CR(a, VGA_CON_OUT_DEV, ConOut, VGA_CON_OUT_DEV_SIGNATURE) 7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// 7976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// Vga Class Driver Protocol. 8076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// GUID defined in EFI Lib 8176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// 8276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 8376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 8476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 8576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *INSTALL_VGA_DRIVER) ( 8676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN VGA_CON_OUT_DEV *ConOutDev 8776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 8876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 8976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 9076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 Version; 9176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman INSTALL_VGA_DRIVER InstallGenericVgaDriver; 9276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} INSTALL_VGA_DRIVER_INTERFACE; 9376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 9476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 9576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 96