Files
system76-edk2/OvmfPkg/Include/IndustryStandard/LegacyVgaBios.h
Rebecca Cran e54310451f OvmfPkg: Add VBE2 mode info structure to LegacyVgaBios.h
bhyve uses the older VESA BIOS Extensions 2.0, so add the mode info
structure to IndustryStandard/LegacyVgaBios.h

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Message-Id: <20200430011503.613044-1-rebecca@bsdio.com>
2020-04-30 14:03:44 +00:00

130 lines
2.9 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