VirtualBox

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

Last change on this file was 76565, checked in by vboxsync, 5 years ago

Devices: Use VBOX_INCLUDED_SRC_ as header guard prefix with scm.

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

© 2023 Oracle
ContactPrivacy policyTerms of Use