/** @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: | |
<http://www.cs.cmu.edu/~ralf/files.html> | |
<http://www.ctyme.com/rbrown.htm> | |
Copyright (C) 2014, Red Hat, Inc. | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#ifndef __LEGACY_VGA_BIOS_H__ | |
#define __LEGACY_VGA_BIOS_H__ | |
#include <Base.h> | |
#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 |