/** @file Type definitions related to the VBE (VESA BIOS Extension, Int10h AH=4Fh) services GET INFORMATION (AL=00h) and GET MODE INFORMATION (AL=01h). For reference, see Ralf Brown's Interrupt List: Copyright (C) 2014, Red Hat, Inc. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __LEGACY_VGA_BIOS_H__ #define __LEGACY_VGA_BIOS_H__ #include #pragma pack (1) typedef struct { UINT8 Signature[4]; UINT16 VesaVersion; UINT32 OemNameAddress; UINT32 Capabilities; UINT32 ModeListAddress; UINT16 VideoMem64K; UINT16 OemSoftwareVersion; UINT32 VendorNameAddress; UINT32 ProductNameAddress; UINT32 ProductRevAddress; } VBE_INFO_BASE; typedef struct { VBE_INFO_BASE Base; UINT8 Buffer[256 - sizeof (VBE_INFO_BASE)]; } VBE_INFO; typedef struct { UINT16 ModeAttr; UINT8 WindowAAttr; UINT8 WindowBAttr; UINT16 WindowGranularityKB; UINT16 WindowSizeKB; UINT16 WindowAStartSegment; UINT16 WindowBStartSegment; UINT32 WindowPositioningAddress; UINT16 BytesPerScanLine; UINT16 Width; UINT16 Height; UINT8 CharCellWidth; UINT8 CharCellHeight; UINT8 NumPlanes; UINT8 BitsPerPixel; UINT8 NumBanks; UINT8 MemoryModel; UINT8 BankSizeKB; UINT8 NumImagePagesLessOne; UINT8 Vbe3; UINT8 RedMaskSize; UINT8 RedMaskPos; UINT8 GreenMaskSize; UINT8 GreenMaskPos; UINT8 BlueMaskSize; UINT8 BlueMaskPos; UINT8 ReservedMaskSize; UINT8 ReservedMaskPos; UINT8 DirectColorModeInfo; UINT32 LfbAddress; UINT32 OffScreenAddress; UINT16 OffScreenSizeKB; UINT16 BytesPerScanLineLinear; UINT8 NumImagesLessOneBanked; UINT8 NumImagesLessOneLinear; UINT8 RedMaskSizeLinear; UINT8 RedMaskPosLinear; UINT8 GreenMaskSizeLinear; UINT8 GreenMaskPosLinear; UINT8 BlueMaskSizeLinear; UINT8 BlueMaskPosLinear; UINT8 ReservedMaskSizeLinear; UINT8 ReservedMaskPosLinear; UINT32 MaxPixelClockHz; UINT8 Reserved[190]; } VBE_MODE_INFO; typedef struct { UINT16 ModeAttr; UINT8 WindowAAttr; UINT8 WindowBAttr; UINT16 WindowGranularityKB; UINT16 WindowSizeKB; UINT16 WindowAStartSegment; UINT16 WindowBStartSegment; UINT32 WindowPositioningAddress; UINT16 BytesPerScanLine; UINT16 Width; UINT16 Height; UINT8 CharCellWidth; UINT8 CharCellHeight; UINT8 NumPlanes; UINT8 BitsPerPixel; UINT8 NumBanks; UINT8 MemoryModel; UINT8 BankSizeKB; UINT8 NumImagePagesLessOne; UINT8 Vbe3; UINT8 RedMaskSize; UINT8 RedMaskPos; UINT8 GreenMaskSize; UINT8 GreenMaskPos; UINT8 BlueMaskSize; UINT8 BlueMaskPos; UINT8 ReservedMaskSize; UINT8 ReservedMaskPos; UINT8 DirectColorModeInfo; UINT32 LfbAddress; UINT32 OffScreenAddress; UINT16 OffScreenSizeKB; } VBE2_MODE_INFO; #pragma pack () #endif