mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-11-29 12:35:53 +01:00
130 lines
3.2 KiB
C
130 lines
3.2 KiB
C
|
/** @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
|