/usr/include/xorg/vbe.h is in xserver-xorg-dev-lts-utopic 2:1.16.0-1ubuntu1.2~trusty2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 | /*
* XFree86 vbe module
* Copyright 2000 Egbert Eich
*
* The mode query/save/set/restore functions from the vesa driver
* have been moved here.
* Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com)
* Authors: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
*/
#ifndef _VBE_H
#define _VBE_H
#include "xf86int10.h"
#include "xf86DDC.h"
typedef enum {
DDC_UNCHECKED,
DDC_NONE,
DDC_1,
DDC_2,
DDC_1_2
} ddc_lvl;
typedef struct {
xf86Int10InfoPtr pInt10;
int version;
void *memory;
int real_mode_base;
int num_pages;
Bool init_int10;
ddc_lvl ddc;
Bool ddc_blank;
} vbeInfoRec, *vbeInfoPtr;
#define VBE_VERSION_MAJOR(x) *((CARD8*)(&x) + 1)
#define VBE_VERSION_MINOR(x) (CARD8)(x)
extern _X_EXPORT vbeInfoPtr VBEInit(xf86Int10InfoPtr pInt, int entityIndex);
extern _X_EXPORT vbeInfoPtr VBEExtendedInit(xf86Int10InfoPtr pInt,
int entityIndex, int Flags);
extern _X_EXPORT void vbeFree(vbeInfoPtr pVbe);
extern _X_EXPORT xf86MonPtr vbeDoEDID(vbeInfoPtr pVbe, void *pDDCModule);
#pragma pack(1)
typedef struct vbeControllerInfoBlock {
CARD8 VbeSignature[4];
CARD16 VbeVersion;
CARD32 OemStringPtr;
CARD8 Capabilities[4];
CARD32 VideoModePtr;
CARD16 TotalMem;
CARD16 OemSoftwareRev;
CARD32 OemVendorNamePtr;
CARD32 OemProductNamePtr;
CARD32 OemProductRevPtr;
CARD8 Scratch[222];
CARD8 OemData[256];
} vbeControllerInfoRec, *vbeControllerInfoPtr;
#if defined(__GNUC__) || defined(__USLC__) || defined(__SUNPRO_C)
#pragma pack() /* All GCC versions recognise this syntax */
#else
#pragma pack(0)
#endif
#if !( defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) )
#define __attribute__(a)
#endif
typedef struct _VbeInfoBlock VbeInfoBlock;
typedef struct _VbeModeInfoBlock VbeModeInfoBlock;
typedef struct _VbeCRTCInfoBlock VbeCRTCInfoBlock;
/*
* INT 0
*/
struct _VbeInfoBlock {
/* VESA 1.2 fields */
CARD8 VESASignature[4]; /* VESA */
CARD16 VESAVersion; /* Higher byte major, lower byte minor */
/*CARD32 */ char *OEMStringPtr;
/* Pointer to OEM string */
CARD8 Capabilities[4]; /* Capabilities of the video environment */
/*CARD32 */ CARD16 *VideoModePtr;
/* pointer to supported Super VGA modes */
CARD16 TotalMemory; /* Number of 64kb memory blocks on board */
/* if not VESA 2, 236 scratch bytes follow (256 bytes total size) */
/* VESA 2 fields */
CARD16 OemSoftwareRev; /* VBE implementation Software revision */
/*CARD32 */ char *OemVendorNamePtr;
/* Pointer to Vendor Name String */
/*CARD32 */ char *OemProductNamePtr;
/* Pointer to Product Name String */
/*CARD32 */ char *OemProductRevPtr;
/* Pointer to Product Revision String */
CARD8 Reserved[222]; /* Reserved for VBE implementation */
CARD8 OemData[256]; /* Data Area for OEM Strings */
} __attribute__ ((packed));
/* Return Super VGA Information */
extern _X_EXPORT VbeInfoBlock *VBEGetVBEInfo(vbeInfoPtr pVbe);
extern _X_EXPORT void VBEFreeVBEInfo(VbeInfoBlock * block);
/*
* INT 1
*/
struct _VbeModeInfoBlock {
CARD16 ModeAttributes; /* mode attributes */
CARD8 WinAAttributes; /* window A attributes */
CARD8 WinBAttributes; /* window B attributes */
CARD16 WinGranularity; /* window granularity */
CARD16 WinSize; /* window size */
CARD16 WinASegment; /* window A start segment */
CARD16 WinBSegment; /* window B start segment */
CARD32 WinFuncPtr; /* real mode pointer to window function */
CARD16 BytesPerScanline; /* bytes per scanline */
/* Mandatory information for VBE 1.2 and above */
CARD16 XResolution; /* horizontal resolution in pixels or characters */
CARD16 YResolution; /* vertical resolution in pixels or characters */
CARD8 XCharSize; /* character cell width in pixels */
CARD8 YCharSize; /* character cell height in pixels */
CARD8 NumberOfPlanes; /* number of memory planes */
CARD8 BitsPerPixel; /* bits per pixel */
CARD8 NumberOfBanks; /* number of banks */
CARD8 MemoryModel; /* memory model type */
CARD8 BankSize; /* bank size in KB */
CARD8 NumberOfImages; /* number of images */
CARD8 Reserved; /* 1 *//* reserved for page function */
/* Direct color fields (required for direct/6 and YUV/7 memory models) */
CARD8 RedMaskSize; /* size of direct color red mask in bits */
CARD8 RedFieldPosition; /* bit position of lsb of red mask */
CARD8 GreenMaskSize; /* size of direct color green mask in bits */
CARD8 GreenFieldPosition; /* bit position of lsb of green mask */
CARD8 BlueMaskSize; /* size of direct color blue mask in bits */
CARD8 BlueFieldPosition; /* bit position of lsb of blue mask */
CARD8 RsvdMaskSize; /* size of direct color reserved mask in bits */
CARD8 RsvdFieldPosition; /* bit position of lsb of reserved mask */
CARD8 DirectColorModeInfo; /* direct color mode attributes */
/* Mandatory information for VBE 2.0 and above */
CARD32 PhysBasePtr; /* physical address for flat memory frame buffer */
CARD32 Reserved32; /* 0 *//* Reserved - always set to 0 */
CARD16 Reserved16; /* 0 *//* Reserved - always set to 0 */
/* Mandatory information for VBE 3.0 and above */
CARD16 LinBytesPerScanLine; /* bytes per scan line for linear modes */
CARD8 BnkNumberOfImagePages; /* number of images for banked modes */
CARD8 LinNumberOfImagePages; /* number of images for linear modes */
CARD8 LinRedMaskSize; /* size of direct color red mask (linear modes) */
CARD8 LinRedFieldPosition; /* bit position of lsb of red mask (linear modes) */
CARD8 LinGreenMaskSize; /* size of direct color green mask (linear modes) */
CARD8 LinGreenFieldPosition; /* bit position of lsb of green mask (linear modes) */
CARD8 LinBlueMaskSize; /* size of direct color blue mask (linear modes) */
CARD8 LinBlueFieldPosition; /* bit position of lsb of blue mask (linear modes) */
CARD8 LinRsvdMaskSize; /* size of direct color reserved mask (linear modes) */
CARD8 LinRsvdFieldPosition; /* bit position of lsb of reserved mask (linear modes) */
CARD32 MaxPixelClock; /* maximum pixel clock (in Hz) for graphics mode */
CARD8 Reserved2[189]; /* remainder of VbeModeInfoBlock */
} __attribute__ ((packed));
/* Return VBE Mode Information */
extern _X_EXPORT VbeModeInfoBlock *VBEGetModeInfo(vbeInfoPtr pVbe, int mode);
extern _X_EXPORT void VBEFreeModeInfo(VbeModeInfoBlock * block);
/*
* INT2
*/
#define CRTC_DBLSCAN (1<<0)
#define CRTC_INTERLACE (1<<1)
#define CRTC_NHSYNC (1<<2)
#define CRTC_NVSYNC (1<<3)
struct _VbeCRTCInfoBlock {
CARD16 HorizontalTotal; /* Horizontal total in pixels */
CARD16 HorizontalSyncStart; /* Horizontal sync start in pixels */
CARD16 HorizontalSyncEnd; /* Horizontal sync end in pixels */
CARD16 VerticalTotal; /* Vertical total in lines */
CARD16 VerticalSyncStart; /* Vertical sync start in lines */
CARD16 VerticalSyncEnd; /* Vertical sync end in lines */
CARD8 Flags; /* Flags (Interlaced, Double Scan etc) */
CARD32 PixelClock; /* Pixel clock in units of Hz */
CARD16 RefreshRate; /* Refresh rate in units of 0.01 Hz */
CARD8 Reserved[40]; /* remainder of ModeInfoBlock */
} __attribute__ ((packed));
/* VbeCRTCInfoBlock is in the VESA 3.0 specs */
extern _X_EXPORT Bool VBESetVBEMode(vbeInfoPtr pVbe, int mode,
VbeCRTCInfoBlock * crtc);
/*
* INT 3
*/
extern _X_EXPORT Bool VBEGetVBEMode(vbeInfoPtr pVbe, int *mode);
/*
* INT 4
*/
/* Save/Restore Super VGA video state */
/* function values are (values stored in VESAPtr):
* 0 := query & allocate amount of memory to save state
* 1 := save state
* 2 := restore state
*
* function 0 called automatically if function 1 called without
* a previous call to function 0.
*/
typedef enum {
MODE_QUERY,
MODE_SAVE,
MODE_RESTORE
} vbeSaveRestoreFunction;
extern _X_EXPORT Bool
VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction fuction,
void **memory, int *size, int *real_mode_pages);
/*
* INT 5
*/
extern _X_EXPORT Bool
VBEBankSwitch(vbeInfoPtr pVbe, unsigned int iBank, int window);
/*
* INT 6
*/
typedef enum {
SCANWID_SET,
SCANWID_GET,
SCANWID_SET_BYTES,
SCANWID_GET_MAX
} vbeScanwidthCommand;
#define VBESetLogicalScanline(pVbe, width) \
VBESetGetLogicalScanlineLength(pVbe, SCANWID_SET, width, \
NULL, NULL, NULL)
#define VBESetLogicalScanlineBytes(pVbe, width) \
VBESetGetLogicalScanlineLength(pVbe, SCANWID_SET_BYTES, width, \
NULL, NULL, NULL)
#define VBEGetLogicalScanline(pVbe, pixels, bytes, max) \
VBESetGetLogicalScanlineLength(pVbe, SCANWID_GET, 0, \
pixels, bytes, max)
#define VBEGetMaxLogicalScanline(pVbe, pixels, bytes, max) \
VBESetGetLogicalScanlineLength(pVbe, SCANWID_GET_MAX, 0, \
pixels, bytes, max)
extern _X_EXPORT Bool VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe,
vbeScanwidthCommand
command, int width,
int *pixels, int *bytes,
int *max);
/*
* INT 7
*/
/* 16 bit code */
extern _X_EXPORT Bool VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y,
Bool wait_retrace);
extern _X_EXPORT Bool VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y);
/*
* INT 8
*/
/* if bits is 0, then it is a GET */
extern _X_EXPORT int VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits);
/*
* INT 9
*/
/*
* If getting a palette, the data argument is not used. It will return
* the data.
* If setting a palette, it will return the pointer received on success,
* NULL on failure.
*/
extern _X_EXPORT CARD32 *VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set,
int first, int num, CARD32 *data,
Bool secondary,
Bool wait_retrace);
#define VBEFreePaletteData(data) free(data)
/*
* INT A
*/
typedef struct _VBEpmi {
int seg_tbl;
int tbl_off;
int tbl_len;
} VBEpmi;
extern _X_EXPORT VBEpmi *VBEGetVBEpmi(vbeInfoPtr pVbe);
#define VESAFreeVBEpmi(pmi) free(pmi)
/* high level helper functions */
typedef struct _vbeModeInfoRec {
int width;
int height;
int bpp;
int n;
struct _vbeModeInfoRec *next;
} vbeModeInfoRec, *vbeModeInfoPtr;
typedef struct {
CARD8 *state;
CARD8 *pstate;
int statePage;
int stateSize;
int stateMode;
} vbeSaveRestoreRec, *vbeSaveRestorePtr;
extern _X_EXPORT void
VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeSaveRestorePtr vbe_sr,
vbeSaveRestoreFunction function);
extern _X_EXPORT int VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int Clock);
extern _X_EXPORT Bool VBEDPMSSet(vbeInfoPtr pVbe, int mode);
struct vbePanelID {
short hsize;
short vsize;
short fptype;
char redbpp;
char greenbpp;
char bluebpp;
char reservedbpp;
int reserved_offscreen_mem_size;
int reserved_offscreen_mem_pointer;
char reserved[14];
};
extern _X_EXPORT void VBEInterpretPanelID(ScrnInfoPtr pScrn,
struct vbePanelID *data);
extern _X_EXPORT struct vbePanelID *VBEReadPanelID(vbeInfoPtr pVbe);
#endif
|