summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/Include/IndustryStandard/LegacyVgaBios.h
blob: 317dac3a5679f482732103b961f65dabec21ed05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/** @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;
#pragma pack ()

#endif