xf86vmproto.h revision 17ca54c3
1/* 2 3Copyright 1995 Kaleb S. KEITHLEY 4 5Permission is hereby granted, free of charge, to any person obtaining 6a copy of this software and associated documentation files (the 7"Software"), to deal in the Software without restriction, including 8without limitation the rights to use, copy, modify, merge, publish, 9distribute, sublicense, and/or sell copies of the Software, and to 10permit persons to whom the Software is furnished to do so, subject to 11the following conditions: 12 13The above copyright notice and this permission notice shall be 14included in all copies or substantial portions of the Software. 15 16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES 20OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22OTHER DEALINGS IN THE SOFTWARE. 23 24Except as contained in this notice, the name of Kaleb S. KEITHLEY 25shall not be used in advertising or otherwise to promote the sale, use 26or other dealings in this Software without prior written authorization 27from Kaleb S. KEITHLEY 28 29*/ 30 31/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */ 32 33#ifndef _XF86VIDMODEPROTO_H_ 34#define _XF86VIDMODEPROTO_H_ 35 36#include <X11/extensions/xf86vm.h> 37 38#define XF86VIDMODENAME "XFree86-VidModeExtension" 39 40#define XF86VIDMODE_MAJOR_VERSION 2 /* current version numbers */ 41#define XF86VIDMODE_MINOR_VERSION 2 42 43#define X_XF86VidModeQueryVersion 0 44#define X_XF86VidModeGetModeLine 1 45#define X_XF86VidModeModModeLine 2 46#define X_XF86VidModeSwitchMode 3 47#define X_XF86VidModeGetMonitor 4 48#define X_XF86VidModeLockModeSwitch 5 49#define X_XF86VidModeGetAllModeLines 6 50#define X_XF86VidModeAddModeLine 7 51#define X_XF86VidModeDeleteModeLine 8 52#define X_XF86VidModeValidateModeLine 9 53#define X_XF86VidModeSwitchToMode 10 54#define X_XF86VidModeGetViewPort 11 55#define X_XF86VidModeSetViewPort 12 56/* new for version 2.x of this extension */ 57#define X_XF86VidModeGetDotClocks 13 58#define X_XF86VidModeSetClientVersion 14 59#define X_XF86VidModeSetGamma 15 60#define X_XF86VidModeGetGamma 16 61#define X_XF86VidModeGetGammaRamp 17 62#define X_XF86VidModeSetGammaRamp 18 63#define X_XF86VidModeGetGammaRampSize 19 64#define X_XF86VidModeGetPermissions 20 65/* 66 * major version 0 == uses parameter-to-wire functions in XFree86 libXxf86vm. 67 * major version 1 == uses parameter-to-wire functions hard-coded in xvidtune 68 * client. 69 * major version 2 == uses new protocol version in XFree86 4.0. 70 */ 71 72typedef struct _XF86VidModeQueryVersion { 73 CARD8 reqType; /* always XF86VidModeReqCode */ 74 CARD8 xf86vidmodeReqType; /* always X_XF86VidModeQueryVersion */ 75 CARD16 length B16; 76} xXF86VidModeQueryVersionReq; 77#define sz_xXF86VidModeQueryVersionReq 4 78 79typedef struct { 80 BYTE type; /* X_Reply */ 81 BOOL pad1; 82 CARD16 sequenceNumber B16; 83 CARD32 length B32; 84 CARD16 majorVersion B16; /* major version of XF86VidMode */ 85 CARD16 minorVersion B16; /* minor version of XF86VidMode */ 86 CARD32 pad2 B32; 87 CARD32 pad3 B32; 88 CARD32 pad4 B32; 89 CARD32 pad5 B32; 90 CARD32 pad6 B32; 91} xXF86VidModeQueryVersionReply; 92#define sz_xXF86VidModeQueryVersionReply 32 93 94typedef struct _XF86VidModeGetModeLine { 95 CARD8 reqType; /* always XF86VidModeReqCode */ 96 CARD8 xf86vidmodeReqType; 97 CARD16 length B16; 98 CARD16 screen B16; 99 CARD16 pad B16; 100} xXF86VidModeGetModeLineReq, 101 xXF86VidModeGetAllModeLinesReq, 102 xXF86VidModeGetMonitorReq, 103 xXF86VidModeGetViewPortReq, 104 xXF86VidModeGetDotClocksReq, 105 xXF86VidModeGetPermissionsReq; 106#define sz_xXF86VidModeGetModeLineReq 8 107#define sz_xXF86VidModeGetAllModeLinesReq 8 108#define sz_xXF86VidModeGetMonitorReq 8 109#define sz_xXF86VidModeGetViewPortReq 8 110#define sz_xXF86VidModeGetDotClocksReq 8 111#define sz_xXF86VidModeGetPermissionsReq 8 112 113typedef struct { 114 BYTE type; /* X_Reply */ 115 BOOL pad1; 116 CARD16 sequenceNumber B16; 117 CARD32 length B32; 118 CARD32 dotclock B32; 119 CARD16 hdisplay B16; 120 CARD16 hsyncstart B16; 121 CARD16 hsyncend B16; 122 CARD16 htotal B16; 123 CARD16 hskew B16; 124 CARD16 vdisplay B16; 125 CARD16 vsyncstart B16; 126 CARD16 vsyncend B16; 127 CARD16 vtotal B16; 128 CARD16 pad2 B16; 129 CARD32 flags B32; 130 CARD32 reserved1 B32; 131 CARD32 reserved2 B32; 132 CARD32 reserved3 B32; 133 CARD32 privsize B32; 134} xXF86VidModeGetModeLineReply; 135#define sz_xXF86VidModeGetModeLineReply 52 136 137/* 0.x version */ 138typedef struct { 139 BYTE type; /* X_Reply */ 140 BOOL pad1; 141 CARD16 sequenceNumber B16; 142 CARD32 length B32; 143 CARD32 dotclock B32; 144 CARD16 hdisplay B16; 145 CARD16 hsyncstart B16; 146 CARD16 hsyncend B16; 147 CARD16 htotal B16; 148 CARD16 vdisplay B16; 149 CARD16 vsyncstart B16; 150 CARD16 vsyncend B16; 151 CARD16 vtotal B16; 152 CARD32 flags B32; 153 CARD32 privsize B32; 154} xXF86OldVidModeGetModeLineReply; 155#define sz_xXF86OldVidModeGetModeLineReply 36 156 157typedef struct { 158 CARD32 dotclock B32; 159 CARD16 hdisplay B16; 160 CARD16 hsyncstart B16; 161 CARD16 hsyncend B16; 162 CARD16 htotal B16; 163 CARD32 hskew B16; 164 CARD16 vdisplay B16; 165 CARD16 vsyncstart B16; 166 CARD16 vsyncend B16; 167 CARD16 vtotal B16; 168 CARD16 pad1 B16; 169 CARD32 flags B32; 170 CARD32 reserved1 B32; 171 CARD32 reserved2 B32; 172 CARD32 reserved3 B32; 173 CARD32 privsize B32; 174} xXF86VidModeModeInfo; 175 176/* 0.x version */ 177typedef struct { 178 CARD32 dotclock B32; 179 CARD16 hdisplay B16; 180 CARD16 hsyncstart B16; 181 CARD16 hsyncend B16; 182 CARD16 htotal B16; 183 CARD16 vdisplay B16; 184 CARD16 vsyncstart B16; 185 CARD16 vsyncend B16; 186 CARD16 vtotal B16; 187 CARD32 flags B32; 188 CARD32 privsize B32; 189} xXF86OldVidModeModeInfo; 190 191typedef struct { 192 BYTE type; /* X_Reply */ 193 BOOL pad1; 194 CARD16 sequenceNumber B16; 195 CARD32 length B32; 196 CARD32 modecount B32; 197 CARD32 pad2 B32; 198 CARD32 pad3 B32; 199 CARD32 pad4 B32; 200 CARD32 pad5 B32; 201 CARD32 pad6 B32; 202} xXF86VidModeGetAllModeLinesReply; 203#define sz_xXF86VidModeGetAllModeLinesReply 32 204 205typedef struct _XF86VidModeAddModeLine { 206 CARD8 reqType; /* always XF86VidModeReqCode */ 207 CARD8 xf86vidmodeReqType; /* always X_XF86VidModeAddMode */ 208 CARD16 length B16; 209 CARD32 screen B32; /* could be CARD16 but need the pad */ 210 CARD32 dotclock B32; 211 CARD16 hdisplay B16; 212 CARD16 hsyncstart B16; 213 CARD16 hsyncend B16; 214 CARD16 htotal B16; 215 CARD16 hskew B16; 216 CARD16 vdisplay B16; 217 CARD16 vsyncstart B16; 218 CARD16 vsyncend B16; 219 CARD16 vtotal B16; 220 CARD16 pad1 B16; 221 CARD32 flags B32; 222 CARD32 reserved1 B32; 223 CARD32 reserved2 B32; 224 CARD32 reserved3 B32; 225 CARD32 privsize B32; 226 CARD32 after_dotclock B32; 227 CARD16 after_hdisplay B16; 228 CARD16 after_hsyncstart B16; 229 CARD16 after_hsyncend B16; 230 CARD16 after_htotal B16; 231 CARD16 after_hskew B16; 232 CARD16 after_vdisplay B16; 233 CARD16 after_vsyncstart B16; 234 CARD16 after_vsyncend B16; 235 CARD16 after_vtotal B16; 236 CARD16 pad2 B16; 237 CARD32 after_flags B32; 238 CARD32 reserved4 B32; 239 CARD32 reserved5 B32; 240 CARD32 reserved6 B32; 241} xXF86VidModeAddModeLineReq; 242#define sz_xXF86VidModeAddModeLineReq 92 243 244/* 0.x version */ 245typedef struct _XF86OldVidModeAddModeLine { 246 CARD8 reqType; /* always XF86VidModeReqCode */ 247 CARD8 xf86vidmodeReqType; /* always X_XF86VidModeAddMode */ 248 CARD16 length B16; 249 CARD32 screen B32; /* could be CARD16 but need the pad */ 250 CARD32 dotclock B32; 251 CARD16 hdisplay B16; 252 CARD16 hsyncstart B16; 253 CARD16 hsyncend B16; 254 CARD16 htotal B16; 255 CARD16 vdisplay B16; 256 CARD16 vsyncstart B16; 257 CARD16 vsyncend B16; 258 CARD16 vtotal B16; 259 CARD32 flags B32; 260 CARD32 privsize B32; 261 CARD32 after_dotclock B32; 262 CARD16 after_hdisplay B16; 263 CARD16 after_hsyncstart B16; 264 CARD16 after_hsyncend B16; 265 CARD16 after_htotal B16; 266 CARD16 after_vdisplay B16; 267 CARD16 after_vsyncstart B16; 268 CARD16 after_vsyncend B16; 269 CARD16 after_vtotal B16; 270 CARD32 after_flags B32; 271} xXF86OldVidModeAddModeLineReq; 272#define sz_xXF86OldVidModeAddModeLineReq 60 273 274typedef struct _XF86VidModeModModeLine { 275 CARD8 reqType; /* always XF86VidModeReqCode */ 276 CARD8 xf86vidmodeReqType; /* always X_XF86VidModeModModeLine */ 277 CARD16 length B16; 278 CARD32 screen B32; /* could be CARD16 but need the pad */ 279 CARD16 hdisplay B16; 280 CARD16 hsyncstart B16; 281 CARD16 hsyncend B16; 282 CARD16 htotal B16; 283 CARD16 hskew B16; 284 CARD16 vdisplay B16; 285 CARD16 vsyncstart B16; 286 CARD16 vsyncend B16; 287 CARD16 vtotal B16; 288 CARD16 pad1 B16; 289 CARD32 flags B32; 290 CARD32 reserved1 B32; 291 CARD32 reserved2 B32; 292 CARD32 reserved3 B32; 293 CARD32 privsize B32; 294} xXF86VidModeModModeLineReq; 295#define sz_xXF86VidModeModModeLineReq 48 296 297/* 0.x version */ 298typedef struct _XF86OldVidModeModModeLine { 299 CARD8 reqType; /* always XF86OldVidModeReqCode */ 300 CARD8 xf86vidmodeReqType; /* always X_XF86OldVidModeModModeLine */ 301 CARD16 length B16; 302 CARD32 screen B32; /* could be CARD16 but need the pad */ 303 CARD16 hdisplay B16; 304 CARD16 hsyncstart B16; 305 CARD16 hsyncend B16; 306 CARD16 htotal B16; 307 CARD16 vdisplay B16; 308 CARD16 vsyncstart B16; 309 CARD16 vsyncend B16; 310 CARD16 vtotal B16; 311 CARD32 flags B32; 312 CARD32 privsize B32; 313} xXF86OldVidModeModModeLineReq; 314#define sz_xXF86OldVidModeModModeLineReq 32 315 316typedef struct _XF86VidModeValidateModeLine { 317 CARD8 reqType; /* always XF86VidModeReqCode */ 318 CARD8 xf86vidmodeReqType; 319 CARD16 length B16; 320 CARD32 screen B32; /* could be CARD16 but need the pad */ 321 CARD32 dotclock B32; 322 CARD16 hdisplay B16; 323 CARD16 hsyncstart B16; 324 CARD16 hsyncend B16; 325 CARD16 htotal B16; 326 CARD16 hskew B16; 327 CARD16 vdisplay B16; 328 CARD16 vsyncstart B16; 329 CARD16 vsyncend B16; 330 CARD16 vtotal B16; 331 CARD16 pad1 B16; 332 CARD32 flags B32; 333 CARD32 reserved1 B32; 334 CARD32 reserved2 B32; 335 CARD32 reserved3 B32; 336 CARD32 privsize B32; 337} xXF86VidModeDeleteModeLineReq, 338 xXF86VidModeValidateModeLineReq, 339 xXF86VidModeSwitchToModeReq; 340#define sz_xXF86VidModeDeleteModeLineReq 52 341#define sz_xXF86VidModeValidateModeLineReq 52 342#define sz_xXF86VidModeSwitchToModeReq 52 343 344/* 0.x version */ 345typedef struct _XF86OldVidModeValidateModeLine { 346 CARD8 reqType; /* always XF86OldVidModeReqCode */ 347 CARD8 xf86vidmodeReqType; 348 CARD16 length B16; 349 CARD32 screen B32; /* could be CARD16 but need the pad */ 350 CARD32 dotclock B32; 351 CARD16 hdisplay B16; 352 CARD16 hsyncstart B16; 353 CARD16 hsyncend B16; 354 CARD16 htotal B16; 355 CARD16 vdisplay B16; 356 CARD16 vsyncstart B16; 357 CARD16 vsyncend B16; 358 CARD16 vtotal B16; 359 CARD32 flags B32; 360 CARD32 privsize B32; 361} xXF86OldVidModeDeleteModeLineReq, 362 xXF86OldVidModeValidateModeLineReq, 363 xXF86OldVidModeSwitchToModeReq; 364#define sz_xXF86OldVidModeDeleteModeLineReq 36 365#define sz_xXF86OldVidModeValidateModeLineReq 36 366#define sz_xXF86OldVidModeSwitchToModeReq 36 367 368typedef struct _XF86VidModeSwitchMode { 369 CARD8 reqType; /* always XF86VidModeReqCode */ 370 CARD8 xf86vidmodeReqType; /* always X_XF86VidModeSwitchMode */ 371 CARD16 length B16; 372 CARD16 screen B16; 373 CARD16 zoom B16; 374} xXF86VidModeSwitchModeReq; 375#define sz_xXF86VidModeSwitchModeReq 8 376 377typedef struct _XF86VidModeLockModeSwitch { 378 CARD8 reqType; /* always XF86VidModeReqCode */ 379 CARD8 xf86vidmodeReqType; /* always X_XF86VidModeLockModeSwitch */ 380 CARD16 length B16; 381 CARD16 screen B16; 382 CARD16 lock B16; 383} xXF86VidModeLockModeSwitchReq; 384#define sz_xXF86VidModeLockModeSwitchReq 8 385 386typedef struct { 387 BYTE type; /* X_Reply */ 388 BOOL pad1; 389 CARD16 sequenceNumber B16; 390 CARD32 length B32; 391 CARD32 status B32; 392 CARD32 pad2 B32; 393 CARD32 pad3 B32; 394 CARD32 pad4 B32; 395 CARD32 pad5 B32; 396 CARD32 pad6 B32; 397} xXF86VidModeValidateModeLineReply; 398#define sz_xXF86VidModeValidateModeLineReply 32 399 400typedef struct { 401 BYTE type; /* X_Reply */ 402 BOOL pad1; 403 CARD16 sequenceNumber B16; 404 CARD32 length B32; 405 CARD8 vendorLength; 406 CARD8 modelLength; 407 CARD8 nhsync; 408 CARD8 nvsync; 409 CARD32 pad2 B32; 410 CARD32 pad3 B32; 411 CARD32 pad4 B32; 412 CARD32 pad5 B32; 413 CARD32 pad6 B32; 414} xXF86VidModeGetMonitorReply; 415#define sz_xXF86VidModeGetMonitorReply 32 416 417typedef struct { 418 BYTE type; 419 BOOL pad1; 420 CARD16 sequenceNumber B16; 421 CARD32 length B32; 422 CARD32 x B32; 423 CARD32 y B32; 424 CARD32 pad2 B32; 425 CARD32 pad3 B32; 426 CARD32 pad4 B32; 427 CARD32 pad5 B32; 428} xXF86VidModeGetViewPortReply; 429#define sz_xXF86VidModeGetViewPortReply 32 430 431typedef struct _XF86VidModeSetViewPort { 432 CARD8 reqType; /* always VidModeReqCode */ 433 CARD8 xf86vidmodeReqType; /* always X_XF86VidModeSetViewPort */ 434 CARD16 length B16; 435 CARD16 screen B16; 436 CARD16 pad B16; 437 CARD32 x B32; 438 CARD32 y B32; 439} xXF86VidModeSetViewPortReq; 440#define sz_xXF86VidModeSetViewPortReq 16 441 442typedef struct { 443 BYTE type; 444 BOOL pad1; 445 CARD16 sequenceNumber B16; 446 CARD32 length B32; 447 CARD32 flags B32; 448 CARD32 clocks B32; 449 CARD32 maxclocks B32; 450 CARD32 pad2 B32; 451 CARD32 pad3 B32; 452 CARD32 pad4 B32; 453} xXF86VidModeGetDotClocksReply; 454#define sz_xXF86VidModeGetDotClocksReply 32 455 456typedef struct _XF86VidModeSetClientVersion { 457 CARD8 reqType; /* always XF86VidModeReqCode */ 458 CARD8 xf86vidmodeReqType; 459 CARD16 length B16; 460 CARD16 major B16; 461 CARD16 minor B16; 462} xXF86VidModeSetClientVersionReq; 463#define sz_xXF86VidModeSetClientVersionReq 8 464 465typedef struct _XF86VidModeGetGamma { 466 CARD8 reqType; /* always XF86VidModeReqCode */ 467 CARD8 xf86vidmodeReqType; 468 CARD16 length B16; 469 CARD16 screen B16; 470 CARD16 pad B16; 471 CARD32 pad1 B32; 472 CARD32 pad2 B32; 473 CARD32 pad3 B32; 474 CARD32 pad4 B32; 475 CARD32 pad5 B32; 476 CARD32 pad6 B32; 477} xXF86VidModeGetGammaReq; 478#define sz_xXF86VidModeGetGammaReq 32 479 480typedef struct { 481 BYTE type; 482 BOOL pad; 483 CARD16 sequenceNumber B16; 484 CARD32 length B32; 485 CARD32 red B32; 486 CARD32 green B32; 487 CARD32 blue B32; 488 CARD32 pad1 B32; 489 CARD32 pad2 B32; 490 CARD32 pad3 B32; 491} xXF86VidModeGetGammaReply; 492#define sz_xXF86VidModeGetGammaReply 32 493 494typedef struct _XF86VidModeSetGamma { 495 CARD8 reqType; /* always XF86VidModeReqCode */ 496 CARD8 xf86vidmodeReqType; 497 CARD16 length B16; 498 CARD16 screen B16; 499 CARD16 pad B16; 500 CARD32 red B32; 501 CARD32 green B32; 502 CARD32 blue B32; 503 CARD32 pad1 B32; 504 CARD32 pad2 B32; 505 CARD32 pad3 B32; 506} xXF86VidModeSetGammaReq; 507#define sz_xXF86VidModeSetGammaReq 32 508 509 510typedef struct _XF86VidModeSetGammaRamp { 511 CARD8 reqType; /* always XF86VidModeReqCode */ 512 CARD8 xf86vidmodeReqType; 513 CARD16 length B16; 514 CARD16 screen B16; 515 CARD16 size B16; 516} xXF86VidModeSetGammaRampReq; 517#define sz_xXF86VidModeSetGammaRampReq 8 518 519typedef struct _XF86VidModeGetGammaRamp { 520 CARD8 reqType; /* always XF86VidModeReqCode */ 521 CARD8 xf86vidmodeReqType; 522 CARD16 length B16; 523 CARD16 screen B16; 524 CARD16 size B16; 525} xXF86VidModeGetGammaRampReq; 526#define sz_xXF86VidModeGetGammaRampReq 8 527 528typedef struct { 529 BYTE type; 530 BOOL pad; 531 CARD16 sequenceNumber B16; 532 CARD32 length B32; 533 CARD16 size B16; 534 CARD16 pad0 B16; 535 CARD32 pad1 B32; 536 CARD32 pad2 B32; 537 CARD32 pad3 B32; 538 CARD32 pad4 B32; 539 CARD32 pad5 B32; 540} xXF86VidModeGetGammaRampReply; 541#define sz_xXF86VidModeGetGammaRampReply 32 542 543typedef struct _XF86VidModeGetGammaRampSize { 544 CARD8 reqType; /* always XF86VidModeReqCode */ 545 CARD8 xf86vidmodeReqType; 546 CARD16 length B16; 547 CARD16 screen B16; 548 CARD16 pad B16; 549} xXF86VidModeGetGammaRampSizeReq; 550#define sz_xXF86VidModeGetGammaRampSizeReq 8 551 552typedef struct { 553 BYTE type; 554 BOOL pad; 555 CARD16 sequenceNumber B16; 556 CARD32 length B32; 557 CARD16 size B16; 558 CARD16 pad0 B16; 559 CARD32 pad1 B32; 560 CARD32 pad2 B32; 561 CARD32 pad3 B32; 562 CARD32 pad4 B32; 563 CARD32 pad5 B32; 564} xXF86VidModeGetGammaRampSizeReply; 565#define sz_xXF86VidModeGetGammaRampSizeReply 32 566 567typedef struct { 568 BYTE type; 569 BOOL pad; 570 CARD16 sequenceNumber B16; 571 CARD32 length B32; 572 CARD32 permissions B32; 573 CARD32 pad1 B32; 574 CARD32 pad2 B32; 575 CARD32 pad3 B32; 576 CARD32 pad4 B32; 577 CARD32 pad5 B32; 578} xXF86VidModeGetPermissionsReply; 579#define sz_xXF86VidModeGetPermissionsReply 32 580 581 582#endif /* _XF86VIDMODEPROTO_H_ */ 583 584