![]() |
|
|||
File indexing completed on 2025-05-11 08:23:41
0001 /** 0002 * @file 0003 * 0004 * @ingroup RTEMSBSPsI386 0005 * 0006 * @brief VESA Bios Extension definitions. 0007 * 0008 * This file contains definitions for constants related to VBE. 0009 * More information can be found at 0010 * <http://www.vesa.org/vesa-standards/free-standards/>. 0011 * VESA public standards may be found at 0012 * <http://www.vesa.org/wp-content/uploads/2010/12/thankspublic.htm>. 0013 */ 0014 0015 /* 0016 * Copyright (C) 2014 Jan Doležal (dolezj21@fel.cvut.cz) 0017 * CTU in Prague. 0018 * 0019 * The license and distribution terms for this file may be 0020 * found in the file LICENSE in this distribution or at 0021 * http://www.rtems.org/license/LICENSE. 0022 */ 0023 0024 #ifndef _VBE_H 0025 #define _VBE_H 0026 0027 #ifndef ASM /* ASM */ 0028 0029 #include <stdint.h> 0030 0031 #ifdef __cplusplus 0032 extern "C" { 0033 #endif /* __cplusplus */ 0034 0035 #include <rtems/score/basedefs.h> 0036 0037 /* VESA BIOS EXTENSION (VBE) Core functions Standard 0038 Version: 3.0 Date: September 16, 1998 */ 0039 0040 /** AL == 4Fh: Function is supported \n 0041 * AL != 4Fh: Function is not supported */ 0042 #define VBE_functionSupported 0x4F 0043 /** AH == 00h: Function call successful */ 0044 #define VBE_callSuccessful 0x00 0045 /** AH == 01h: Function call failed */ 0046 #define VBE_callFailed 0x01 0047 /** AH == 02h: Function is not supported in the current hardware configuration*/ 0048 #define VBE_notSupportedInCurHWConf 0x02 0049 /** AH == 03h: Function call invalid in current video mode */ 0050 #define VBE_callInvalid 0x03 0051 0052 /* VBE Mode Numbers */ 0053 /** D0-D8 = Mode number */ 0054 #define VBE_modeNumberMask 0x01FF 0055 #define VBE_modeNumberShift 0x00 0056 /** If D8 == 0, this is not a VESA defined VBE mode \n 0057 If D8 == 1, this is a VESA defined VBE mode */ 0058 #define VBE_VESAmodeMask 0x0100 0059 #define VBE_VESAmodeShift 0x08 0060 /* D9-D10 = Reserved by VESA for future expansion (= 0) */ 0061 /** If D11 == 0, Use current BIOS default refresh rate \n 0062 If D11 == 1, Use user specified CRTC values for refresh rate */ 0063 #define VBE_refreshRateCtrlMask 0x0800 0064 #define VBE_refreshRateCtrlShift 0x0B 0065 /* D12-13 = Reserved for VBE/AF (must be 0) */ 0066 /** If D14 == 0, Use Banked/Windowed Frame Buffer \n 0067 If D14 == 1, Use Linear/Flat Frame Buffer */ 0068 #define VBE_linearFlatFrameBufMask 0x4000 0069 #define VBE_linearFlatFrameBufShift 0x0E 0070 /** If D15 == 0, Clear display memory \n 0071 If D15 == 1, Preserve display memory */ 0072 #define VBE_preserveDispMemMask 0x8000 0073 #define VBE_preserveDispMemShift 0x0F 0074 0075 /* Graphics modes */ 0076 /** 15-bit mode, Resolution: 640x400, Colors: 256 */ 0077 #define VBE_R640x400C256 0x100 0078 /** 15-bit mode, Resolution: 640x480, Colors: 256 */ 0079 #define VBE_R640x480C256 0x101 0080 /** 15-bit mode, Resolution: 800x600, Colors: 16 */ 0081 #define VBE_R800x600C16 0x102 0082 /** 7-bit mode, Resolution: 800x600, Colors: 16 */ 0083 #define VBE_b7R800x600C16 0x6A 0084 /** 15-bit mode, Resolution: 800x600, Colors: 256 */ 0085 #define VBE_R800x600C256 0x103 0086 /** 15-bit mode, Resolution: 1024x768, Colors: 16 */ 0087 #define VBE_R1024x768C16 0x104 0088 /** 15-bit mode, Resolution: 1024x768, Colors: 256 */ 0089 #define VBE_R1024x768C256 0x105 0090 /** 15-bit mode, Resolution: 1280x1024, Colors: 16 */ 0091 #define VBE_R1280x1024C16 0x106 0092 /** 15-bit mode, Resolution: 1280x1024, Colors: 256 */ 0093 #define VBE_R1280x1024C256 0x107 0094 /** 15-bit mode, Resolution: 320x200, Colors: 32K (1:5:5:5) */ 0095 #define VBE_R320x200C32K 0x10D 0096 /** 15-bit mode, Resolution: 320x200, Colors: 64K (5:6:5) */ 0097 #define VBE_R320x200C64K 0x10E 0098 /** 15-bit mode, Resolution: 320x200, Colors: 16.8M (8:8:8) */ 0099 #define VBE_R320x200C17M 0x10F 0100 /** 15-bit mode, Resolution: 640x480, Colors: 32K (1:5:5:5) */ 0101 #define VBE_R640x480C32K 0x110 0102 /** 15-bit mode, Resolution: 640x480, Colors: 64K (5:6:5) */ 0103 #define VBE_R640x480C64K 0x111 0104 /** 15-bit mode, Resolution: 640x480, Colors: 16.8M (8:8:8) */ 0105 #define VBE_R640x480C17M 0x112 0106 /** 15-bit mode, Resolution: 800x600, Colors: 32K (1:5:5:5) */ 0107 #define VBE_R800x600C32K 0x113 0108 /** 15-bit mode, Resolution: 800x600, Colors: 64K (5:6:5) */ 0109 #define VBE_R800x600C64K 0x114 0110 /** 15-bit mode, Resolution: 800x600, Colors: 16.8M (8:8:8) */ 0111 #define VBE_R800x600C17M 0x115 0112 /** 15-bit mode, Resolution: 1024x768, Colors: 32K (1:5:5:5) */ 0113 #define VBE_R1024x768C32K 0x116 0114 /** 15-bit mode, Resolution: 1024x768, Colors: 64K (5:6:5) */ 0115 #define VBE_R1024x768C64K 0x117 0116 /** 15-bit mode, Resolution: 1024x768, Colors: 16.8M (8:8:8) */ 0117 #define VBE_R1024x768C17M 0x118 0118 /** 15-bit mode, Resolution: 1280x1024, Colors: 32K (1:5:5:5) */ 0119 #define VBE_R1280x1024C32K 0x119 0120 /** 15-bit mode, Resolution: 1280x1024, Colors: 64K (5:6:5) */ 0121 #define VBE_R1280x1024C64K 0x11A 0122 /** 15-bit mode, Resolution: 1280x1024, Colors: 16.8M (8:8:8) */ 0123 #define VBE_R1280x1024C17M 0x11B 0124 #define VBE_SpecialMode 0x81FF 0125 0126 /* Text modes */ 0127 #define VBE_C80R60 0x108 /**< 15-bit mode, Columns: 80, Rows: 60 */ 0128 #define VBE_C132R25 0x109 /**< 15-bit mode, Columns: 132, Rows: 25 */ 0129 #define VBE_C132R43 0x10A /**< 15-bit mode, Columns: 132, Rows: 43 */ 0130 #define VBE_C132R50 0x10B /**< 15-bit mode, Columns: 132, Rows: 50 */ 0131 #define VBE_C132R60 0x10C /**< 15-bit mode, Columns: 132, Rows: 60 */ 0132 0133 /* VBE function numbers - passed in AX register */ 0134 /** VBE function - Return VBE Controller Information */ 0135 #define VBE_RetVBEConInf 0x4F00 0136 /** VBE function - Return VBE Mode Information */ 0137 #define VBE_RetVBEModInf 0x4F01 0138 /** VBE function - Set VBE Mode */ 0139 #define VBE_SetVBEMod 0x4F02 0140 /** VBE function - Return Current VBE Mode */ 0141 #define VBE_RetCurVBEMod 0x4F03 0142 /** VBE function - Save/Restore State */ 0143 #define VBE_SavResSta 0x4F04 0144 /** VBE function - Display Window Control */ 0145 #define VBE_DisWinCon 0x4F05 0146 /** VBE function - Set/Get Logical Scan Line Length */ 0147 #define VBE_SetGetLogScaLinLen 0x4F06 0148 /** VBE function - Set/Get Display Start */ 0149 #define VBE_SetGetDisSta 0x4F07 0150 /** VBE function - Set/Get DAC Palette Format */ 0151 #define VBE_SetGetDACPalFor 0x4F08 0152 /** VBE function - Set/Get Palette Data */ 0153 #define VBE_SetGetPalDat 0x4F09 0154 /** VBE function - Return VBE Protected Mode Interface */ 0155 #define VBE_RetVBEProModInt 0x4F0A 0156 /** VBE function - Get/Set pixel clock */ 0157 #define VBE_GetSetpixclo 0x4F0B 0158 /** VBE function - Power Management Extensions (PM) */ 0159 #define VBE_PowManExt 0x4F10 0160 /** VBE function - Flat Panel Interface Extensions (FP) */ 0161 #define VBE_FlaPanIntExt 0x4F11 0162 /** VBE function - Audio Interface Extensions (AI) */ 0163 #define VBE_AudIntExt 0x4F13 0164 /** VBE function - OEM Extensions */ 0165 #define VBE_OEMExt 0x4F14 0166 /** VBE function - Display Data Channel (DDC), Serial Control Interface (SCI) */ 0167 #define VBE_DisDatCha 0x4F15 0168 0169 /* VBE subfunction numbers - passed in BL register */ 0170 #define VBE_RetVBESupSpeInf 0x00 /**< Return VBE Supplemental 0171 * Specification Information */ 0172 /* *** Structures *** */ 0173 /** 0174 * @brief Far pointer as defined by VBE standard. 0175 */ 0176 typedef struct { 0177 /** @brief Offset to segment described by \a selector. */ 0178 uint16_t offset; 0179 /** @brief Selector or Segment depending on whether this is used from 16bit 0180 protected mode or from real mode. */ 0181 uint16_t selector; 0182 } RTEMS_PACKED VBE_far_pointer; 0183 0184 /** 0185 * @brief Protected mode info block as defined by VBE standard. 0186 */ 0187 typedef struct { 0188 /** PM Info Block Signature */ 0189 uint8_t Signature[4]; 0190 /** Offset of PM entry point within BIOS */ 0191 uint16_t EntryPoint; 0192 /** Offset of PM initialization entry point */ 0193 uint16_t PMInitialize; 0194 /** Selector to BIOS data area emulation block */ 0195 uint16_t BIOSDataSel; 0196 /** Selector to access A0000h physical memmory */ 0197 uint16_t A0000Sel; 0198 /** Selector to access B0000h physical memmory */ 0199 uint16_t B0000Sel; 0200 /** Selector to access B8000h physical memmory */ 0201 uint16_t B8000Sel; 0202 /** Selector to access code segment as data */ 0203 uint16_t CodeSegSel; 0204 /** Set to 1 when in protected mode */ 0205 uint8_t InProtectMode; 0206 /** Checksum byte for structure. Sum over all structure bytes gives 0. */ 0207 uint8_t Checksum; 0208 } RTEMS_PACKED VBE_protected_mode_info_block; 0209 0210 /** General VBE signature */ 0211 #define VBE_SIGNATURE "VESA" 0212 /** Signature for VBE 2.0 and higher */ 0213 #define VBE20plus_SIGNATURE "VBE2" 0214 /** for STUB see VBE CORE FUNCTIONS VERSION 3.0 - Appendix 1 */ 0215 #define VBE_STUB_VideoModeList 0xFFFF 0216 #define VBE_END_OF_VideoModeList 0xFFFF 0217 /** 0218 * @brief Information about VBE implementation. 0219 */ 0220 typedef struct { 0221 /** VBE Signature */ 0222 uint8_t VbeSignature[4]; 0223 /** VBE Version */ 0224 uint16_t VbeVersion; 0225 /** VBE_far_pointer to OEM String */ 0226 uint8_t *OemStringPtr; 0227 /** Capabilities of graphics controller */ 0228 uint8_t Capabilities[4]; 0229 /** VBE_far_pointer to VideoModeList */ 0230 uint32_t *VideoModePtr; 0231 /** Number of 64kb memory blocks */ 0232 uint16_t TotalMemory; 0233 /* Added for VBE 2.0+ */ 0234 /** VBE implementation Software revision */ 0235 uint16_t OemSoftwareRev; 0236 /** VBE_far_pointer to Vendor Name String */ 0237 uint8_t *OemVendorNamePtr; 0238 /** VBE_far_pointer to Product Name String */ 0239 uint8_t *OemProductNamePtr; 0240 /** VBE_far_pointer to Product Revision String */ 0241 uint8_t *OemProductRevPtr; 0242 /** Reserved for VBE implementation scratch */ 0243 uint8_t Reserved[222]; 0244 /** Data Area for OEM Strings */ 0245 uint8_t OemData[256]; 0246 } RTEMS_PACKED VBE_vbe_info_block; 0247 0248 /** 0249 * @brief Describes graphic's mode parameter. 0250 */ 0251 typedef struct { 0252 /* Mandatory information for all VBE revisions */ 0253 /** mode attributes */ 0254 uint16_t ModeAttributes; 0255 /** window A attributes */ 0256 uint8_t WinAAttributes; 0257 /** window B attributes */ 0258 uint8_t WinBAttributes; 0259 /** window granularity */ 0260 uint16_t WinGranularity; 0261 /** window size */ 0262 uint16_t WinSize; 0263 /** window A start segment */ 0264 uint16_t WinASegment; 0265 /** window B start segment */ 0266 uint16_t WinBSegment; 0267 /** real mode pointer to window function */ 0268 uint32_t *WinFuncPtr; 0269 /** bytes per scan line */ 0270 uint16_t BytesPerScanLine; 0271 /* Mandatory information for VBE 1.2 and above */ 0272 /** horizontal resolution in px or chars */ 0273 uint16_t XResolution; 0274 /** vertical resolution in px or chars */ 0275 uint16_t YResolution; 0276 /** character cell width in pixels */ 0277 uint8_t XCharSize; 0278 /** character cell height in pixels */ 0279 uint8_t YCharSize; 0280 /** number of memory planes */ 0281 uint8_t NumberOfPlanes; 0282 /** bits per pixel */ 0283 uint8_t BitsPerPixel; 0284 /** number of banks */ 0285 uint8_t NumberOfBanks; 0286 /** memory model type */ 0287 uint8_t MemoryModel; 0288 /** bank size in KB */ 0289 uint8_t BankSize; 0290 /** number of images */ 0291 uint8_t NumberOfImagePages; 0292 /** reserved for page function */ 0293 uint8_t Reserved0; 0294 /* Direct Color fields (required for direct/6 and YUV/7 memory models) */ 0295 /** size of direct color red mask in bits */ 0296 uint8_t RedMaskSize; 0297 /** bit position of lsb of red mask */ 0298 uint8_t RedFieldPosition; 0299 /** size of direct color green mask in b */ 0300 uint8_t GreenMaskSize; 0301 /** bit position of lsb of green mask */ 0302 uint8_t GreenFieldPosition; 0303 /** size of direct color blue mask in b */ 0304 uint8_t BlueMaskSize; 0305 /** bit position of lsb of blue mask */ 0306 uint8_t BlueFieldPosition; 0307 /** size of direct color reserved mask */ 0308 uint8_t RsvdMaskSize; 0309 /** bit position of lsb of reserved mask */ 0310 uint8_t RsvdFieldPosition; 0311 /** direct color mode attributes */ 0312 uint8_t DirectColorModeInfo; 0313 /* Mandatory information for VBE 2.0 and above */ 0314 /** physical address for flat memory frame buffer */ 0315 uint32_t *PhysBasePtr; 0316 /** Reserved - always set to 0 */ 0317 uint32_t Reserved1; 0318 /** Reserved - always set to 0 */ 0319 uint16_t Reserved2; 0320 /* Mandatory information for VBE 3.0 and above */ 0321 /** bytes per scan line for linear modes */ 0322 uint16_t LinBytesPerScanLine; 0323 /** number of images for banked modes */ 0324 uint8_t BnkNumberOfImagePages; 0325 /** number of images for linear modes */ 0326 uint8_t LinNumberOfImagePages; 0327 /* linear modes */ 0328 /** size of direct color red mask */ 0329 uint8_t LinRedMaskSize; 0330 /** bit position of lsb of red mask */ 0331 uint8_t LinRedFieldPosition; 0332 /** size of direct color green mask */ 0333 uint8_t LinGreenMaskSize; 0334 /** bit position of lsb of green mask */ 0335 uint8_t LinGreenFieldPosition; 0336 /** size of direct color blue mask */ 0337 uint8_t LinBlueMaskSize; 0338 /** bit position of lsb of blue mask */ 0339 uint8_t LinBlueFieldPosition; 0340 /** size of direct color reserved mask */ 0341 uint8_t LinRsvdMaskSize; 0342 /** bit position of lsb of reserved mask */ 0343 uint8_t LinRsvdFieldPosition; 0344 /** maximum pixel clock (in Hz) for graphics mode */ 0345 uint32_t MaxPixelClock; 0346 /** remainder of VBE_mode_info_block */ 0347 uint8_t Reserved3[189]; 0348 } RTEMS_PACKED VBE_mode_info_block; 0349 0350 /** 0351 * @brief Describes monitor synchronization. 0352 */ 0353 typedef struct { 0354 /** Horizontal total in pixels */ 0355 uint16_t HorizontalTotal; 0356 /** Horizontal sync start in pixels */ 0357 uint16_t HorizontalSyncStart; 0358 /** Horizontal sync end in pixels */ 0359 uint16_t HorizontalSyncEnd; 0360 /** Vertical total in lines */ 0361 uint16_t VerticalTotal; 0362 /** Vertical sync start in lines */ 0363 uint16_t VerticalSyncStart; 0364 /** Vertical sync end in lines */ 0365 uint16_t VerticalSyncEnd; 0366 /** Flags (Interlaced, Double Scan etc) */ 0367 uint8_t Flags; 0368 /** Pixel clock in units of Hz */ 0369 uint32_t PixelClock; 0370 /** Refresh rate in units of 0.01 Hz */ 0371 uint16_t RefreshRate; 0372 /** remainder of VBE_mode_info_block */ 0373 uint8_t Reserved[40]; 0374 } RTEMS_PACKED VBE_CRTC_info_block; 0375 0376 /** 0377 * @brief Describes palette entry. 0378 */ 0379 typedef struct { 0380 /** Blue channel value (6 or 8 bits) */ 0381 uint8_t Blue; 0382 /** Green channel value (6 or 8 bits) */ 0383 uint8_t Green; 0384 /** Red channel value(6 or 8 bits) */ 0385 uint8_t Red; 0386 /** DWORD alignment byte (unused) */ 0387 uint8_t Alignment; 0388 } RTEMS_PACKED VBE_palette_entry; 0389 0390 /** 0391 * @brief Supplemental VBE info block. 0392 */ 0393 typedef struct { 0394 /** Supplemental VBE Signature */ 0395 uint8_t SupVbeSignature[7]; 0396 /** Supplemental VBE Version */ 0397 uint16_t SupVbeVersion; 0398 /** Bitfield of supported subfunctions */ 0399 uint8_t SupVbeSubFunc[8]; 0400 /** OEM Software revision */ 0401 uint16_t OemSoftwareRev; 0402 /** VBE_far_pointer to Vendor Name String */ 0403 uint8_t *OemVendorNamePtr; 0404 /** VBE_far_pointer to Product Name String */ 0405 uint8_t *OemProductNamePtr; 0406 /** VBE_far_pointer to Product Revision String */ 0407 uint8_t *OemProductRevPtr; 0408 /** VBE_far_pointer to OEM String */ 0409 uint8_t *OemStringPtr; 0410 /** Reserved for description strings and future expansion */ 0411 uint8_t Reserved[221]; 0412 } RTEMS_PACKED VBE_supplemental_vbe_info_block; 0413 0414 /* VBE_vbe_info_block Capabilities */ 0415 /** VBE Info Block - Capabilities\n 0416 D0 = 0 DAC is fixed width, with 6 bits per primary color \n 0417 D0 = 1 DAC width is switchable to 8 bits per primary color */ 0418 #define VBE_DACswitchableMask 0x0001 0419 /** VBE Info Block - Capabilities\n 0420 D1 = 0 Controller is VGA compatible \n 0421 D1 = 1 Controller is not VGA compatible */ 0422 #define VBE_notVGAcompatibleMask 0x0002 0423 /** VBE Info Block - Capabilities\n 0424 D2 = 0 Normal RAMDAC operation \n 0425 D2 = 1 When programming large blocks of information to the RAMDAC, 0426 use the blank bit in Function 09h. */ 0427 #define VBE_specialRAMDACopMask 0x0004 0428 /** VBE Info Block - Capabilities\n 0429 D3 = 0 No hardware stereoscopic signaling support \n 0430 D3 = 1 Hardware stereoscopic signaling supported by controller */ 0431 #define VBE_hwStereoscopicMask 0x0008 0432 /** VBE Info Block - Capabilities\n 0433 D4 = 0 Stereo signaling supported via external VESA stereo connector \n 0434 D4 = 1 Stereo signaling supported via VESA EVC connector */ 0435 #define VBE_supportEVCconnMask 0x0010 0436 /* D5-31 = Reserved */ 0437 0438 /* VBE_mode_info_block ModeAttributes */ 0439 /** Mode Info Block - Mode Attributes\n 0440 D0 = Mode supported by hardware configuration. 0441 0 = Mode not supported in hardware\n 0442 1 = Mode supported in hardware */ 0443 #define VBE_modSupInHWMask 0x0001 0444 /* D1 = 1 (Reserved) */ 0445 /** Mode Info Block - Mode Attributes\n 0446 D2 = TTY Output functions supported by BIOS. 0447 0 = TTY Output functions not supported by BIOS\n 0448 1 = TTY Output functions supported by BIOS */ 0449 #define VBE_TTYOutSupByBIOSMask 0x0004 0450 /** Mode Info Block - Mode Attributes\n 0451 D3 = Monochrome/color mode (see note below). 0452 0 = Monochrome mode\n 0453 1 = Color mode */ 0454 #define VBE_ColorModeMask 0x0008 0455 /** Mode Info Block - Mode Attributes\n 0456 D4 = Mode type. 0457 0 = Text mode\n 0458 1 = Graphics mode */ 0459 #define VBE_GraphicsModeMask 0x0010 0460 /** Mode Info Block - Mode Attributes\n 0461 D5 = VGA compatible mode. 0462 0 = Yes\n 0463 1 = No */ 0464 #define VBE_VGACompModeMask 0x0020 0465 /** Mode Info Block - Mode Attributes\n 0466 D6 = VGA compatible windowed memory mode is available. 0467 0 = Yes\n 0468 1 = No */ 0469 #define VBE_VGACompWinMemModeMask 0x0040 0470 /** Mode Info Block - Mode Attributes\n 0471 D7 = Linear frame buffer mode is available. 0472 0 = No\n 0473 1 = Yes */ 0474 #define VBE_LinFraBufModeAvaiMask 0x0080 0475 /** Mode Info Block - Mode Attributes\n 0476 D8 = Double scan mode is available. 0477 0 = No\n 0478 1 = Yes */ 0479 #define VBE_DblScnModeAvaiMask 0x0100 0480 /** Mode Info Block - Mode Attributes\n 0481 D9 = Interlaced mode is available. 0482 0 = No\n 0483 1 = Yes */ 0484 #define VBE_InterlModeAvaiMask 0x0200 0485 /** Mode Info Block - Mode Attributes\n 0486 D10 = Hardware triple buffering support. 0487 0 = No\n 0488 1 = Yes */ 0489 #define VBE_HWTripBufSupMask 0x0400 0490 /** Mode Info Block - Mode Attributes\n 0491 D11 = Hardware stereoscopic display support. 0492 0 = No\n 0493 1 = Yes */ 0494 #define VBE_HWSterDispSupMask 0x0800 0495 /** Mode Info Block - Mode Attributes\n 0496 D12 = Dual display start address support. 0497 0 = No\n 0498 1 = Yes */ 0499 #define VBE_DualDispStAdrSupMask 0x1000 0500 /* D13-D15 = Reserved */ 0501 0502 /* VBE_mode_info_block WinXAttributes */ 0503 /** D0 = Relocatable window(s) supported. 0504 0 = Single non-relocatable window only\n 0505 1 = Relocatable window(s) are supported */ 0506 #define VBE_RelocWinSupMask 0x01 0507 /** D1 = Window readable. 0508 0 = Window is not readable\n 0509 1 = Window is readable */ 0510 #define VBE_WinReadableMask 0x02 0511 /** D2 = Window writeable. 0512 0 = Window is not writeable\n 0513 1 = Window is writeable */ 0514 #define VBE_WinWritableMask 0x04 0515 /* D3-D7 = Reserved */ 0516 0517 /* VBE_mode_info_block MemoryModel */ 0518 #define VBE_TextMode 0x00 0519 #define VBE_CGAGraphics 0x01 0520 #define VBE_HerculesGraphics 0x02 0521 #define VBE_Planar 0x03 0522 #define VBE_PackedPixel 0x04 0523 #define VBE_NonChain4Color256 0x05 0524 #define VBE_DirectColor 0x06 0525 #define VBE_YUV 0x07 0526 /* 0x08-0x0F Reserved, to be defined by VESA */ 0527 /* 0x10-0xFF To be defined by OEM */ 0528 0529 /* VBE_mode_info_block DirectColorModeInfo */ 0530 /** D0 = Color ramp is fixed/programmable. 0531 0 = Color ramp is fixed\n 0532 1 = Color ramp is programmable */ 0533 #define VBE_ColRampProgMask 0x01 0534 /** D1 = Bits in Rsvd field are usable/reserved. 0535 0 = Bits in Rsvd field are reserved\n 0536 1 = Bits in Rsvd field are usable by the application */ 0537 #define VBE_RsvdBitsUsableMask 0x02 0538 0539 /* VBE_CRTC_info_block Flags */ 0540 /** CRTC Info Block - Flags\n 0541 D0 = Double Scan Mode Enable. 0542 0 = Graphics mode is not double scanned\n 0543 1 = Graphics mode is double scanned */ 0544 #define VBE_GrModeDblScanMask 0x01 0545 /** CRTC Info Block - Flags\n 0546 D1 = Interlaced Mode Enable. 0547 0 = Graphics mode is non-interlaced\n 0548 1 = Graphics mode is interlaced */ 0549 #define VBE_GrModeInterlMask 0x02 0550 /** CRTC Info Block - Flags\n 0551 D2 = Horizontal sync polarity. 0552 0 = Horizontal sync polarity is positive (+)\n 0553 1 = Horizontal sync polarity is negative (-) */ 0554 #define VBE_HorSncPolNegMask 0x04 0555 /** CRTC Info Block - Flags\n 0556 D3 = Vertical sync polarity. 0557 0 = Vertical sync polarity is positive (+)\n 0558 1 = Vertical sync polarity is negative (-) */ 0559 #define VBE_VerSncPolNegMask 0x08 0560 0561 0562 /* VESA BIOS Extensions/Display Data Channel Standard 0563 Version: 1.1 November 18, 1999 */ 0564 0565 /* VBE/DDC subfunction numbers - passed in BL register */ 0566 /** VBE/DDC subfunction - Report VBE/DDC Capabilities */ 0567 #define VBEDDC_Capabilities 0x0 0568 /** VBE/DDC subfunction - Read EDID */ 0569 #define VBEDDC_ReadEDID 0x1 0570 0571 /* DDC Capabilities */ 0572 /* DDC level supported - returned in BL register */ 0573 /** 0 - DDC1 not supported; 1 - DDC1 supported */ 0574 #define VBEDDC_1SupportedMask 0x1 0575 /** 0 - DDC2 not supported; 1 - DDC2 supported */ 0576 #define VBEDDC_2SupportedMask 0x2 0577 /** 0 - Screen not blanked during data transfer\n 0578 1 - Screen blanked during data transfer */ 0579 #define VBEDDC_scrBlnkDatTrMs 0x4 0580 0581 0582 /* VESA BIOS Extensions/Serial Control Interface Standard 0583 Version: 1.0 Revision: 2 Date: July 2, 1997 */ 0584 0585 /* VBE/SCI subfunction numbers - passed in BL register */ 0586 /** VBE/SCI subfunction - Report VBE/SCI Capabilities */ 0587 #define VBESCI_ReportCapabil 0x10 0588 /** VBE/SCI subfunction - Begin SCL/SDA control */ 0589 #define VBESCI_BegSCLSDACtrl 0x11 0590 /** VBE/SCI subfunction - End SCL/SDA control */ 0591 #define VBESCI_EndSCLSDACtrl 0x12 0592 /** VBE/SCI subfunction - Write SCL clock line */ 0593 #define VBESCI_WrtSCLClkLine 0x13 0594 /** VBE/SCI subfunction - Write SDA data line */ 0595 #define VBESCI_WrtSDADatLine 0x14 0596 /** VBE/SCI subfunction - Read SCL clock line */ 0597 #define VBESCI_RdySCLClkLine 0x15 0598 /** VBE/SCI subfunction - Read SDA data line */ 0599 #define VBESCI_RdySDADatLine 0x16 0600 0601 /* SCI Capabilities */ 0602 /* I2C level supported - returned in BL register */ 0603 /** Can write to SCL clock line */ 0604 #define VBESCI_capSCLwrtMask 0x1 0605 /** Can write to SDA data line */ 0606 #define VBESCI_capSDAwrtMask 0x2 0607 /** Can read from SCL clock line */ 0608 #define VBESCI_capSCLrdyMask 0x4 0609 /** Can read from SDA data line */ 0610 #define VBESCI_capSDArdyMask 0x8 0611 0612 0613 #ifdef __cplusplus 0614 } 0615 #endif /* __cplusplus */ 0616 0617 #endif /* ASM */ 0618 0619 #endif /* _VBE_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |