VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/BIOS/vbe.h@ 69052

Last change on this file since 69052 was 69052, checked in by vboxsync, 7 years ago

DevVGA+VGABIOS: Eliminate the redundant header file parts, using one file for DevVGA and the VGA BIOS. The new central header contains more than just private defines right now, but since no one else but the device and firmware wants to use this, there's no point in splitting this up further.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.0 KB
Line 
1#ifndef vbe_h_included
2#define vbe_h_included
3
4#include "vgabios.h"
5
6#include <VBoxVideoVBE.h>
7#include <VBoxVideoVBEPrivate.h>
8
9// DISPI helper function
10//void dispi_set_enable(Boolean enable);
11
12/** VBE int10 API
13 *
14 * See the function descriptions in vbe.c for more information
15 */
16
17/* Far pointer for VBE info block usage. */
18typedef union vbe_ptr {
19 uint32_t Ptr32;
20 void __far *Ptr;
21 union {
22 uint16_t Off;
23 uint16_t Seg;
24 };
25} vbe_ptr;
26
27// The official VBE Information Block
28typedef struct VbeInfoBlock
29{
30 union {
31 uint8_t SigChr[4];
32 uint32_t Sig32;
33 } VbeSignature;
34 uint16_t VbeVersion;
35 vbe_ptr OemString;
36 uint8_t Capabilities[4];
37 uint16_t VideoModePtr_Off;
38 uint16_t VideoModePtr_Seg;
39 uint16_t TotalMemory;
40 uint16_t OemSoftwareRev;
41 vbe_ptr OemVendorName;
42 vbe_ptr OemProductName;
43 vbe_ptr OemProductRev;
44 uint16_t Reserved[111]; // used for dynamically generated mode list
45 uint8_t OemData[256];
46} VbeInfoBlock;
47
48
49typedef struct ModeInfoBlock
50{
51// Mandatory information for all VBE revisions
52 uint16_t ModeAttributes;
53 uint8_t WinAAttributes;
54 uint8_t WinBAttributes;
55 uint16_t WinGranularity;
56 uint16_t WinSize;
57 uint16_t WinASegment;
58 uint16_t WinBSegment;
59 uint32_t WinFuncPtr;
60 uint16_t BytesPerScanLine;
61// Mandatory information for VBE 1.2 and above
62 uint16_t XResolution;
63 uint16_t YResolution;
64 uint8_t XCharSize;
65 uint8_t YCharSize;
66 uint8_t NumberOfPlanes;
67 uint8_t BitsPerPixel;
68 uint8_t NumberOfBanks;
69 uint8_t MemoryModel;
70 uint8_t BankSize;
71 uint8_t NumberOfImagePages;
72 uint8_t Reserved_page;
73// Direct Color fields (required for direct/6 and YUV/7 memory models)
74 uint8_t RedMaskSize;
75 uint8_t RedFieldPosition;
76 uint8_t GreenMaskSize;
77 uint8_t GreenFieldPosition;
78 uint8_t BlueMaskSize;
79 uint8_t BlueFieldPosition;
80 uint8_t RsvdMaskSize;
81 uint8_t RsvdFieldPosition;
82 uint8_t DirectColorModeInfo;
83// Mandatory information for VBE 2.0 and above
84 uint32_t PhysBasePtr;
85 uint32_t OffScreenMemOffset;
86 uint16_t OffScreenMemSize;
87// Mandatory information for VBE 3.0 and above
88 uint16_t LinBytesPerScanLine;
89 uint8_t BnkNumberOfPages;
90 uint8_t LinNumberOfPages;
91 uint8_t LinRedMaskSize;
92 uint8_t LinRedFieldPosition;
93 uint8_t LinGreenMaskSize;
94 uint8_t LinGreenFieldPosition;
95 uint8_t LinBlueMaskSize;
96 uint8_t LinBlueFieldPosition;
97 uint8_t LinRsvdMaskSize;
98 uint8_t LinRsvdFieldPosition;
99 uint32_t MaxPixelClock;
100 uint8_t Reserved[189];
101} ModeInfoBlock;
102
103// VBE Return Status Info
104// AL
105#define VBE_RETURN_STATUS_SUPPORTED 0x4F
106#define VBE_RETURN_STATUS_UNSUPPORTED 0x00
107// AH
108#define VBE_RETURN_STATUS_SUCCESSFULL 0x00
109#define VBE_RETURN_STATUS_FAILED 0x01
110#define VBE_RETURN_STATUS_NOT_SUPPORTED 0x02
111#define VBE_RETURN_STATUS_INVALID 0x03
112
113#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette