1 /** @file 2 Type definitions related to the VBE (VESA BIOS Extension, Int10h AH=4Fh) 3 services GET INFORMATION (AL=00h) and GET MODE INFORMATION (AL=01h). 4 5 For reference, see Ralf Brown's Interrupt List: 6 <http://www.cs.cmu.edu/~ralf/files.html> 7 <http://www.ctyme.com/rbrown.htm> 8 9 Copyright (C) 2014, Red Hat, Inc. 10 11 This program and the accompanying materials are licensed and made available 12 under the terms and conditions of the BSD License which accompanies this 13 distribution. The full text of the license may be found at 14 http://opensource.org/licenses/bsd-license.php 15 16 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT 17 WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 18 **/ 19 20 #ifndef __LEGACY_VGA_BIOS_H__ 21 #define __LEGACY_VGA_BIOS_H__ 22 23 #include <Base.h> 24 25 #pragma pack (1) 26 typedef struct { 27 UINT8 Signature[4]; 28 UINT16 VesaVersion; 29 UINT32 OemNameAddress; 30 UINT32 Capabilities; 31 UINT32 ModeListAddress; 32 UINT16 VideoMem64K; 33 UINT16 OemSoftwareVersion; 34 UINT32 VendorNameAddress; 35 UINT32 ProductNameAddress; 36 UINT32 ProductRevAddress; 37 } VBE_INFO_BASE; 38 39 typedef struct { 40 VBE_INFO_BASE Base; 41 UINT8 Buffer[256 - sizeof (VBE_INFO_BASE)]; 42 } VBE_INFO; 43 44 typedef struct { 45 UINT16 ModeAttr; 46 UINT8 WindowAAttr; 47 UINT8 WindowBAttr; 48 UINT16 WindowGranularityKB; 49 UINT16 WindowSizeKB; 50 UINT16 WindowAStartSegment; 51 UINT16 WindowBStartSegment; 52 UINT32 WindowPositioningAddress; 53 UINT16 BytesPerScanLine; 54 55 UINT16 Width; 56 UINT16 Height; 57 UINT8 CharCellWidth; 58 UINT8 CharCellHeight; 59 UINT8 NumPlanes; 60 UINT8 BitsPerPixel; 61 UINT8 NumBanks; 62 UINT8 MemoryModel; 63 UINT8 BankSizeKB; 64 UINT8 NumImagePagesLessOne; 65 UINT8 Vbe3; 66 67 UINT8 RedMaskSize; 68 UINT8 RedMaskPos; 69 UINT8 GreenMaskSize; 70 UINT8 GreenMaskPos; 71 UINT8 BlueMaskSize; 72 UINT8 BlueMaskPos; 73 UINT8 ReservedMaskSize; 74 UINT8 ReservedMaskPos; 75 UINT8 DirectColorModeInfo; 76 77 UINT32 LfbAddress; 78 UINT32 OffScreenAddress; 79 UINT16 OffScreenSizeKB; 80 81 UINT16 BytesPerScanLineLinear; 82 UINT8 NumImagesLessOneBanked; 83 UINT8 NumImagesLessOneLinear; 84 UINT8 RedMaskSizeLinear; 85 UINT8 RedMaskPosLinear; 86 UINT8 GreenMaskSizeLinear; 87 UINT8 GreenMaskPosLinear; 88 UINT8 BlueMaskSizeLinear; 89 UINT8 BlueMaskPosLinear; 90 UINT8 ReservedMaskSizeLinear; 91 UINT8 ReservedMaskPosLinear; 92 UINT32 MaxPixelClockHz; 93 UINT8 Reserved[190]; 94 } VBE_MODE_INFO; 95 #pragma pack () 96 97 #endif 98