+++ /dev/null
-/*
- * PROJECT: VGA Miniport Driver
- * LICENSE: BSD - See COPYING.ARM in the top level directory
- * FILE: boot/drivers/video/miniport/vga/vbe.h
- * PURPOSE: VESA VBE Registers and Structures
- * PROGRAMMERS: ReactOS Portable Systems Group
- */
-
-
-#define LOWORD(l) ((USHORT)((ULONG_PTR)(l)))
-#define HIWORD(l) ((USHORT)(((ULONG_PTR)(l)>>16)&0xFFFF))
-
-
-/*
- * VBE Command Definitions
- */
-
-#define VBE_GET_CONTROLLER_INFORMATION 0x4F00
-#define VBE_GET_MODE_INFORMATION 0x4F01
-#define VBE_SET_VBE_MODE 0x4F02
-#define VBE_GET_CURRENT_VBE_MODE 0x4F03
-#define VBE_SAVE_RESTORE_STATE 0x4F04
-#define VBE_DISPLAY_WINDOW_CONTROL 0x4F05
-#define VBE_SET_GET_LOGICAL_SCAN_LINE_LENGTH 0x4F06
-#define VBE_SET_GET_DISPLAY_START 0x4F07
-#define VBE_SET_GET_DAC_PALETTE_FORMAT 0x4F08
-#define VBE_SET_GET_PALETTE_DATA 0x4F09
-
-/* VBE 2.0+ */
-#define VBE_RETURN_PROTECTED_MODE_INTERFACE 0x4F0A
-#define VBE_GET_SET_PIXEL_CLOCK 0x4F0B
-
-/* Extensions */
-#define VBE_POWER_MANAGEMENT_EXTENSIONS 0x4F10
-#define VBE_FLAT_PANEL_INTERFACE_EXTENSIONS 0x4F11
-#define VBE_AUDIO_INTERFACE_EXTENSIONS 0x4F12
-#define VBE_OEM_EXTENSIONS 0x4F13
-#define VBE_DISPLAY_DATA_CHANNEL 0x4F14
-#define VBE_DDC 0x4F15
-
-/*
- * VBE DDC Sub-Functions
- */
-
-#define VBE_DDC_READ_EDID 0x01
-#define VBE_DDC_REPORT_CAPABILITIES 0x10
-#define VBE_DDC_BEGIN_SCL_SDA_CONTROL 0x11
-#define VBE_DDC_END_SCL_SDA_CONTROL 0x12
-#define VBE_DDC_WRITE_SCL_CLOCK_LINE 0x13
-#define VBE_DDC_WRITE_SDA_DATA_LINE 0x14
-#define VBE_DDC_READ_SCL_CLOCK_LINE 0x15
-#define VBE_DDC_READ_SDA_DATA_LINE 0x16
-
-/*
- * VBE Video Mode Information Definitions
- */
-#define VBE_MODEATTR_VALID 0x01
-#define VBE_MODEATTR_COLOR 0x08
-#define VBE_MODEATTR_GRAPHICS 0x10
-#define VBE_MODEATTR_NON_VGA 0x20
-#define VBE_MODEATTR_NO_BANK_SWITCH 0x40
-#define VBE_MODEATTR_LINEAR 0x80
-
-#define VBE_MODE_BITS 8
-#define VBE_MODE_RESERVED_1 0x200
-#define VBE_MODE_RESERVED_2 0x400
-#define VBE_MODE_REFRESH_CONTROL 0x800
-#define VBE_MODE_ACCELERATED_1 0x1000
-#define VBE_MODE_ACCELERATED_2 0x2000
-#define VBE_MODE_LINEAR_FRAMEBUFFER 0x4000
-#define VBE_MODE_PRESERVE_DISPLAY 0x8000
-#define VBE_MODE_MASK ((1 << (VBE_MODE_BITS + 1)) - 1)
-
-#define VBE_MEMORYMODEL_PACKEDPIXEL 0x04
-#define VBE_MEMORYMODEL_DIRECTCOLOR 0x06
-
-/*
- * VBE Return Codes
- */
-
-#define VBE_SUCCESS 0x4F
-#define VBE_UNSUCCESSFUL 0x14F
-#define VBE_NOT_SUPPORTED 0x24F
-#define VBE_FUNCTION_INVALID 0x34F
-
-#define VBE_GETRETURNCODE(x) (x & 0xFFFF)
-
-#include <pshpack1.h>
-
-/*
- * VBE specification defined structure for general adapter info
- * returned by function VBE_GET_CONTROLLER_INFORMATION command.
- */
-
-typedef struct _VBE_CONTROLLER_INFO
-{
- ULONG Signature;
- USHORT Version;
- ULONG OemStringPtr;
- LONG Capabilities;
- ULONG VideoModePtr;
- USHORT TotalMemory;
- USHORT OemSoftwareRevision;
- ULONG OemVendorNamePtr;
- ULONG OemProductNamePtr;
- ULONG OemProductRevPtr;
- CHAR Reserved[222];
- CHAR OemData[256];
-} VBE_CONTROLLER_INFO, *PVBE_CONTROLLER_INFO;
-
-/*
- * VBE specification defined structure for specific video mode
- * info returned by function VBE_GET_MODE_INFORMATION command.
- */
-
-typedef struct _VBE_MODE_INFO
-{
- /* Mandatory information for all VBE revisions */
- USHORT ModeAttributes;
- UCHAR WinAAttributes;
- UCHAR WinBAttributes;
- USHORT WinGranularity;
- USHORT WinSize;
- USHORT WinASegment;
- USHORT WinBSegment;
- ULONG WinFuncPtr;
- USHORT BytesPerScanLine;
-
- /* Mandatory information for VBE 1.2 and above */
- USHORT XResolution;
- USHORT YResolution;
- UCHAR XCharSize;
- UCHAR YCharSize;
- UCHAR NumberOfPlanes;
- UCHAR BitsPerPixel;
- UCHAR NumberOfBanks;
- UCHAR MemoryModel;
- UCHAR BankSize;
- UCHAR NumberOfImagePages;
- UCHAR Reserved1;
-
- /* Direct Color fields (required for Direct/6 and YUV/7 memory models) */
- UCHAR RedMaskSize;
- UCHAR RedFieldPosition;
- UCHAR GreenMaskSize;
- UCHAR GreenFieldPosition;
- UCHAR BlueMaskSize;
- UCHAR BlueFieldPosition;
- UCHAR ReservedMaskSize;
- UCHAR ReservedFieldPosition;
- UCHAR DirectColorModeInfo;
-
- /* Mandatory information for VBE 2.0 and above */
- ULONG PhysBasePtr;
- ULONG Reserved2;
- USHORT Reserved3;
-
- /* Mandatory information for VBE 3.0 and above */
- USHORT LinBytesPerScanLine;
- UCHAR BnkNumberOfImagePages;
- UCHAR LinNumberOfImagePages;
- UCHAR LinRedMaskSize;
- UCHAR LinRedFieldPosition;
- UCHAR LinGreenMaskSize;
- UCHAR LinGreenFieldPosition;
- UCHAR LinBlueMaskSize;
- UCHAR LinBlueFieldPosition;
- UCHAR LinReservedMaskSize;
- UCHAR LinReservedFieldPosition;
- ULONG MaxPixelClock;
-
- CHAR Reserved4[190];
-} VBE_MODE_INFO, *PVBE_MODE_INFO;
-
-#include <poppack.h>
-
-typedef struct _VBE_INFO
-{
- VBE_CONTROLLER_INFO Info;
- VBE_MODE_INFO Modes;
- USHORT ModeArray[129];
-} VBE_INFO, *PVBE_INFO;
-
-C_ASSERT(sizeof(VBE_CONTROLLER_INFO) == 0x200);
-C_ASSERT(sizeof(VBE_MODE_INFO) == 0x100);
-
-typedef struct _VBE_COLOR_REGISTER
-{
- UCHAR Blue;
- UCHAR Green;
- UCHAR Red;
- UCHAR Pad;
-} VBE_COLOR_REGISTER, *PVBE_COLOR_REGISTER;
-
-VOID
-NTAPI
-InitializeModeTable(IN PHW_DEVICE_EXTENSION VgaExtension);
-
-VP_STATUS
-NTAPI
-VbeSetMode(IN PHW_DEVICE_EXTENSION VgaDeviceExtension,
- IN PVIDEOMODE VgaMode,
- OUT PULONG PhysPtrChange);
-
-VP_STATUS
-NTAPI
-VbeSetColorLookup(IN PHW_DEVICE_EXTENSION VgaExtension,
- IN PVIDEO_CLUT ClutBuffer);
-
-BOOLEAN
-NTAPI
-ValidateVbeInfo(IN PHW_DEVICE_EXTENSION VgaExtension,
- IN PVBE_INFO VbeInfo);
-
-extern BOOLEAN g_bIntelBrookdaleBIOS;
-
-/* VBE2 magic number */
-#define VBE2_MAGIC ('V' + ('B' << 8) + ('E' << 16) + ('2' << 24))
-
-/* EOF */