github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xkbcommon/include/X11/extensions/lbxproto.h (about) 1 /* 2 * Copyright 1992 Network Computing Devices 3 * 4 * Permission to use, copy, modify, distribute, and sell this software and its 5 * documentation for any purpose is hereby granted without fee, provided that 6 * the above copyright notice appear in all copies and that both that 7 * copyright notice and this permission notice appear in supporting 8 * documentation, and that the name of NCD. not be used in advertising or 9 * publicity pertaining to distribution of the software without specific, 10 * written prior permission. NCD. makes no representations about the 11 * suitability of this software for any purpose. It is provided "as is" 12 * without express or implied warranty. 13 * 14 * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD. 16 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 18 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 19 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20 * 21 */ 22 23 #ifndef _LBXPROTO_H_ 24 #define _LBXPROTO_H_ 25 26 #include <X11/extensions/lbx.h> 27 /* 28 * NOTE: any changes or additions to the opcodes needs to be reflected 29 * in the lbxCacheable array in Xserver/lbx/lbxmain.c 30 */ 31 32 #define X_LbxQueryVersion 0 33 #define X_LbxStartProxy 1 34 #define X_LbxStopProxy 2 35 #define X_LbxSwitch 3 36 #define X_LbxNewClient 4 37 #define X_LbxCloseClient 5 38 #define X_LbxModifySequence 6 39 #define X_LbxAllowMotion 7 40 #define X_LbxIncrementPixel 8 41 #define X_LbxDelta 9 42 #define X_LbxGetModifierMapping 10 43 #define X_LbxInvalidateTag 12 44 #define X_LbxPolyPoint 13 45 #define X_LbxPolyLine 14 46 #define X_LbxPolySegment 15 47 #define X_LbxPolyRectangle 16 48 #define X_LbxPolyArc 17 49 #define X_LbxFillPoly 18 50 #define X_LbxPolyFillRectangle 19 51 #define X_LbxPolyFillArc 20 52 #define X_LbxGetKeyboardMapping 21 53 #define X_LbxQueryFont 22 54 #define X_LbxChangeProperty 23 55 #define X_LbxGetProperty 24 56 #define X_LbxTagData 25 57 58 #define X_LbxCopyArea 26 59 #define X_LbxCopyPlane 27 60 #define X_LbxPolyText8 28 61 #define X_LbxPolyText16 29 62 #define X_LbxImageText8 30 63 #define X_LbxImageText16 31 64 65 #define X_LbxQueryExtension 32 66 #define X_LbxPutImage 33 67 #define X_LbxGetImage 34 68 69 #define X_LbxBeginLargeRequest 35 70 #define X_LbxLargeRequestData 36 71 #define X_LbxEndLargeRequest 37 72 73 #define X_LbxInternAtoms 38 74 #define X_LbxGetWinAttrAndGeom 39 75 76 #define X_LbxGrabCmap 40 77 #define X_LbxReleaseCmap 41 78 #define X_LbxAllocColor 42 79 80 #define X_LbxSync 43 81 82 /* 83 * Redefine some basic types used by structures defined herein. This removes 84 * any possibility on 64-bit architectures of one entity viewing communicated 85 * data as 32-bit quantities and another entity viewing the same data as 64-bit 86 * quantities. 87 */ 88 #define XID CARD32 89 #define Atom CARD32 90 #define Colormap CARD32 91 #define Drawable CARD32 92 #define VisualID CARD32 93 #define Window CARD32 94 95 typedef struct { 96 BOOL success; /* TRUE */ 97 BOOL changeType; 98 CARD16 majorVersion, 99 minorVersion; 100 CARD16 length; /* 1/4 additional bytes in setup info */ 101 CARD32 tag; 102 } xLbxConnSetupPrefix; 103 104 typedef struct _LbxQueryVersion { 105 CARD8 reqType; /* always LbxReqCode */ 106 CARD8 lbxReqType; /* always X_LbxQueryVersion */ 107 CARD16 length; 108 } xLbxQueryVersionReq; 109 #define sz_xLbxQueryVersionReq 4 110 111 typedef struct { 112 BYTE type; /* X_Reply */ 113 CARD8 unused; 114 CARD16 sequenceNumber; 115 CARD32 length; 116 CARD16 majorVersion; /* major version of LBX protocol */ 117 CARD16 minorVersion; /* minor version of LBX protocol */ 118 CARD32 pad0; 119 CARD32 pad1; 120 CARD32 pad2; 121 CARD32 pad3; 122 CARD32 pad4; 123 } xLbxQueryVersionReply; 124 #define sz_xLbxQueryVersionReply 32 125 126 typedef struct _LbxStartProxy { 127 CARD8 reqType; /* always LbxReqCode */ 128 CARD8 lbxReqType; /* always X_LbxStartProxy */ 129 CARD16 length; 130 } xLbxStartProxyReq; 131 #define sz_xLbxStartProxyReq 4 132 133 typedef struct _LbxStopProxy { 134 CARD8 reqType; /* always LbxReqCode */ 135 CARD8 lbxReqType; /* always X_LbxStopProxy */ 136 CARD16 length; 137 } xLbxStopProxyReq; 138 #define sz_xLbxStopProxyReq 4 139 140 typedef struct _LbxSwitch { 141 CARD8 reqType; /* always LbxReqCode */ 142 CARD8 lbxReqType; /* always X_LbxSwitch */ 143 CARD16 length; 144 CARD32 client; /* new client */ 145 } xLbxSwitchReq; 146 #define sz_xLbxSwitchReq 8 147 148 typedef struct _LbxNewClient { 149 CARD8 reqType; /* always LbxReqCode */ 150 CARD8 lbxReqType; /* always X_LbxNewClient */ 151 CARD16 length; 152 CARD32 client; /* new client */ 153 } xLbxNewClientReq; 154 #define sz_xLbxNewClientReq 8 155 156 typedef struct _LbxCloseClient { 157 CARD8 reqType; /* always LbxReqCode */ 158 CARD8 lbxReqType; /* always X_LbxCloseClient */ 159 CARD16 length; 160 CARD32 client; /* new client */ 161 } xLbxCloseClientReq; 162 #define sz_xLbxCloseClientReq 8 163 164 typedef struct _LbxModifySequence { 165 CARD8 reqType; /* always LbxReqCode */ 166 CARD8 lbxReqType; /* always X_LbxModifySequence */ 167 CARD16 length; 168 CARD32 adjust; 169 } xLbxModifySequenceReq; 170 #define sz_xLbxModifySequenceReq 8 171 172 typedef struct _LbxAllowMotion { 173 CARD8 reqType; /* always LbxReqCode */ 174 CARD8 lbxReqType; /* always X_LbxAllowMotion */ 175 CARD16 length; 176 CARD32 num; 177 } xLbxAllowMotionReq; 178 #define sz_xLbxAllowMotionReq 8 179 180 typedef struct { 181 CARD8 reqType; /* always LbxReqCode */ 182 CARD8 lbxReqType; /* always X_LbxGrabCmap */ 183 CARD16 length; 184 Colormap cmap; 185 } xLbxGrabCmapReq; 186 #define sz_xLbxGrabCmapReq 8 187 188 #define LBX_SMART_GRAB 0x80 189 #define LBX_AUTO_RELEASE 0x40 190 #define LBX_3CHANNELS 0x20 191 #define LBX_2BYTE_PIXELS 0x10 192 #define LBX_RGB_BITS_MASK 0x0f 193 194 #define LBX_LIST_END 0 195 #define LBX_PIXEL_PRIVATE 1 196 #define LBX_PIXEL_SHARED 2 197 #define LBX_PIXEL_RANGE_PRIVATE 3 198 #define LBX_PIXEL_RANGE_SHARED 4 199 #define LBX_NEXT_CHANNEL 5 200 201 typedef struct { 202 BYTE type; /* X_Reply */ 203 CARD8 flags; 204 CARD16 sequenceNumber; 205 CARD32 length; 206 CARD32 pad0; 207 CARD32 pad1; 208 CARD32 pad2; 209 CARD32 pad3; 210 CARD32 pad4; 211 CARD32 pad5; 212 } xLbxGrabCmapReply; 213 #define sz_xLbxGrabCmapReply 32 214 #define sz_xLbxGrabCmapReplyHdr 8 215 216 217 typedef struct { 218 CARD8 reqType; /* always LbxReqCode */ 219 CARD8 lbxReqType; /* always X_LbxReleaseCmap */ 220 CARD16 length; 221 Colormap cmap; 222 } xLbxReleaseCmapReq; 223 #define sz_xLbxReleaseCmapReq 8 224 225 typedef struct { 226 CARD8 reqType; /* always LbxReqCode */ 227 CARD8 lbxReqType; /* always X_LbxAllocColor */ 228 CARD16 length; 229 Colormap cmap; 230 CARD32 pixel; 231 CARD16 red, green, blue; 232 CARD16 pad; 233 } xLbxAllocColorReq; 234 #define sz_xLbxAllocColorReq 20 235 236 typedef struct _LbxIncrementPixel { 237 CARD8 reqType; /* always LbxReqCode */ 238 CARD8 lbxReqType; /* always X_LbxIncrementPixel */ 239 CARD16 length; 240 CARD32 cmap; 241 CARD32 pixel; 242 } xLbxIncrementPixelReq; 243 #define sz_xLbxIncrementPixelReq 12 244 245 typedef struct _LbxDelta { 246 CARD8 reqType; /* always LbxReqCode */ 247 CARD8 lbxReqType; /* always X_LbxDelta */ 248 CARD16 length; 249 CARD8 diffs; /* number of diffs */ 250 CARD8 cindex; /* cache index */ 251 /* list of diffs follows */ 252 } xLbxDeltaReq; 253 #define sz_xLbxDeltaReq 6 254 255 typedef struct _LbxGetModifierMapping { 256 CARD8 reqType; /* always LbxReqCode */ 257 CARD8 lbxReqType; /* always X_LbxGetModifierMapping */ 258 CARD16 length; 259 } xLbxGetModifierMappingReq; 260 #define sz_xLbxGetModifierMappingReq 4 261 262 typedef struct { 263 BYTE type; /* X_Reply */ 264 CARD8 keyspermod; 265 CARD16 sequenceNumber; 266 CARD32 length; 267 CARD32 tag; 268 CARD32 pad0; 269 CARD32 pad1; 270 CARD32 pad2; 271 CARD32 pad3; 272 CARD32 pad4; 273 } xLbxGetModifierMappingReply; 274 #define sz_xLbxGetModifierMappingReply 32 275 276 typedef struct _LbxGetKeyboardMapping { 277 CARD8 reqType; /* always LbxReqCode */ 278 CARD8 lbxReqType; /* always X_LbxGetKeyboardMapping */ 279 CARD16 length; 280 KeyCode firstKeyCode; 281 CARD8 count; 282 CARD16 pad1; 283 } xLbxGetKeyboardMappingReq; 284 #define sz_xLbxGetKeyboardMappingReq 8 285 286 typedef struct { 287 BYTE type; /* X_Reply */ 288 CARD8 keysperkeycode; 289 CARD16 sequenceNumber; 290 CARD32 length; 291 CARD32 tag; 292 CARD32 pad0; 293 CARD32 pad1; 294 CARD32 pad2; 295 CARD32 pad3; 296 CARD32 pad4; 297 } xLbxGetKeyboardMappingReply; 298 #define sz_xLbxGetKeyboardMappingReply 32 299 300 typedef struct _LbxQueryFont { 301 CARD8 reqType; /* always LbxReqCode */ 302 CARD8 lbxReqType; /* always X_LbxQueryFont */ 303 CARD16 length; 304 CARD32 fid; 305 } xLbxQueryFontReq; 306 #define sz_xLbxQueryFontReq 8 307 308 typedef struct _LbxInternAtoms { 309 CARD8 reqType; /* always LbxReqCode */ 310 CARD8 lbxReqType; /* always X_LbxInternAtoms */ 311 CARD16 length; 312 CARD16 num; 313 } xLbxInternAtomsReq; 314 #define sz_xLbxInternAtomsReq 6 315 316 typedef struct { 317 BYTE type; /* X_Reply */ 318 CARD8 unused; 319 CARD16 sequenceNumber; 320 CARD32 length; 321 CARD32 atomsStart; 322 CARD32 pad0; 323 CARD32 pad1; 324 CARD32 pad2; 325 CARD32 pad3; 326 CARD32 pad4; 327 } xLbxInternAtomsReply; 328 #define sz_xLbxInternAtomsReply 32 329 #define sz_xLbxInternAtomsReplyHdr 8 330 331 332 typedef struct _LbxGetWinAttrAndGeom { 333 CARD8 reqType; /* always LbxReqCode */ 334 CARD8 lbxReqType; /* always X_LbxGetWinAttrAndGeom */ 335 CARD16 length; 336 CARD32 id; /* window id */ 337 } xLbxGetWinAttrAndGeomReq; 338 #define sz_xLbxGetWinAttrAndGeomReq 8 339 340 typedef struct { 341 BYTE type; /* X_Reply */ 342 CARD8 backingStore; 343 CARD16 sequenceNumber; 344 CARD32 length; /* NOT 0; this is an extra-large reply */ 345 VisualID visualID; 346 #if defined(__cplusplus) || defined(c_plusplus) 347 CARD16 c_class; 348 #else 349 CARD16 class; 350 #endif 351 CARD8 bitGravity; 352 CARD8 winGravity; 353 CARD32 backingBitPlanes; 354 CARD32 backingPixel; 355 BOOL saveUnder; 356 BOOL mapInstalled; 357 CARD8 mapState; 358 BOOL override; 359 Colormap colormap; 360 CARD32 allEventMasks; 361 CARD32 yourEventMask; 362 CARD16 doNotPropagateMask; 363 CARD16 pad1; 364 Window root; 365 INT16 x, y; 366 CARD16 width, height; 367 CARD16 borderWidth; 368 CARD8 depth; 369 CARD8 pad2; 370 } xLbxGetWinAttrAndGeomReply; 371 #define sz_xLbxGetWinAttrAndGeomReply 60 372 373 374 typedef struct { 375 CARD8 reqType; /* always LbxReqCode */ 376 CARD8 lbxReqType; /* always X_LbxSync */ 377 CARD16 length; 378 } xLbxSyncReq; 379 #define sz_xLbxSyncReq 4 380 381 typedef struct { 382 BYTE type; /* X_Reply */ 383 CARD8 pad0; 384 CARD16 sequenceNumber; 385 CARD32 length; 386 CARD32 pad1; 387 CARD32 pad2; 388 CARD32 pad3; 389 CARD32 pad4; 390 CARD32 pad5; 391 CARD32 pad6; 392 } xLbxSyncReply; 393 #define sz_xLbxSyncReply 32 394 395 396 /* an LBX squished charinfo packs the data in a CARD32 as follows */ 397 #define LBX_WIDTH_SHIFT 26 398 #define LBX_LEFT_SHIFT 20 399 #define LBX_RIGHT_SHIFT 13 400 #define LBX_ASCENT_SHIFT 7 401 #define LBX_DESCENT_SHIFT 0 402 403 #define LBX_WIDTH_BITS 6 404 #define LBX_LEFT_BITS 6 405 #define LBX_RIGHT_BITS 7 406 #define LBX_ASCENT_BITS 6 407 #define LBX_DESCENT_BITS 7 408 409 #define LBX_WIDTH_MASK 0xfc000000 410 #define LBX_LEFT_MASK 0x03f00000 411 #define LBX_RIGHT_MASK 0x000fe000 412 #define LBX_ASCENT_MASK 0x00001f80 413 #define LBX_DESCENT_MASK 0x0000007f 414 415 #define LBX_MASK_BITS(val, n) ((unsigned int) ((val) & ((1 << (n)) - 1))) 416 417 typedef struct { 418 CARD32 metrics; 419 } xLbxCharInfo; 420 421 /* note that this is identical to xQueryFontReply except for missing 422 * first 2 words 423 */ 424 typedef struct { 425 xCharInfo minBounds; 426 /* XXX do we need to leave this gunk? */ 427 #ifndef WORD64 428 CARD32 walign1; 429 #endif 430 xCharInfo maxBounds; 431 #ifndef WORD64 432 CARD32 walign2; 433 #endif 434 CARD16 minCharOrByte2, maxCharOrByte2; 435 CARD16 defaultChar; 436 CARD16 nFontProps; /* followed by this many xFontProp structures */ 437 CARD8 drawDirection; 438 CARD8 minByte1, maxByte1; 439 BOOL allCharsExist; 440 INT16 fontAscent, fontDescent; 441 CARD32 nCharInfos; /* followed by this many xLbxCharInfo structures */ 442 } xLbxFontInfo; 443 444 typedef struct { 445 BYTE type; /* X_Reply */ 446 CARD8 compression; 447 CARD16 sequenceNumber; 448 CARD32 length; 449 CARD32 tag; 450 CARD32 pad0; 451 CARD32 pad1; 452 CARD32 pad2; 453 CARD32 pad3; 454 CARD32 pad4; 455 /* X_QueryFont sticks much of the data in the base reply packet, 456 * but we hope that it won't be needed, (and it won't fit in 32 bytes 457 * with the tag anyways) 458 * 459 * if any additional data is needed, its sent in a xLbxFontInfo 460 */ 461 } xLbxQueryFontReply; 462 #define sz_xLbxQueryFontReply 32 463 464 typedef struct _LbxChangeProperty { 465 CARD8 reqType; /* always LbxReqCode */ 466 CARD8 lbxReqType; /* always X_LbxChangeProperty */ 467 CARD16 length; 468 Window window; 469 Atom property; 470 Atom type; 471 CARD8 format; 472 CARD8 mode; 473 BYTE pad[2]; 474 CARD32 nUnits; 475 } xLbxChangePropertyReq; 476 #define sz_xLbxChangePropertyReq 24 477 478 typedef struct { 479 BYTE type; /* X_Reply */ 480 CARD8 pad; 481 CARD16 sequenceNumber; 482 CARD32 length; 483 CARD32 tag; 484 CARD32 pad0; 485 CARD32 pad1; 486 CARD32 pad2; 487 CARD32 pad3; 488 CARD32 pad4; 489 } xLbxChangePropertyReply; 490 #define sz_xLbxChangePropertyReply 32 491 492 typedef struct _LbxGetProperty { 493 CARD8 reqType; /* always LbxReqCode */ 494 CARD8 lbxReqType; /* always X_LbxGetProperty */ 495 CARD16 length; 496 Window window; 497 Atom property; 498 Atom type; 499 CARD8 delete; 500 BYTE pad[3]; 501 CARD32 longOffset; 502 CARD32 longLength; 503 } xLbxGetPropertyReq; 504 #define sz_xLbxGetPropertyReq 28 505 506 typedef struct { 507 BYTE type; /* X_Reply */ 508 CARD8 format; 509 CARD16 sequenceNumber; 510 CARD32 length; 511 Atom propertyType; 512 CARD32 bytesAfter; 513 CARD32 nItems; 514 CARD32 tag; 515 CARD32 pad1; 516 CARD32 pad2; 517 } xLbxGetPropertyReply; 518 #define sz_xLbxGetPropertyReply 32 519 520 typedef struct _LbxTagData { 521 CARD8 reqType; /* always LbxReqCode */ 522 CARD8 lbxReqType; /* always X_LbxTagData */ 523 CARD16 length; 524 XID tag; 525 CARD32 real_length; 526 /* data */ 527 } xLbxTagDataReq; 528 #define sz_xLbxTagDataReq 12 529 530 typedef struct _LbxInvalidateTag { 531 CARD8 reqType; /* always LbxReqCode */ 532 CARD8 lbxReqType; /* always X_LbxInvalidateTag */ 533 CARD16 length; 534 CARD32 tag; 535 } xLbxInvalidateTagReq; 536 #define sz_xLbxInvalidateTagReq 8 537 538 typedef struct _LbxPutImage { 539 CARD8 reqType; /* always LbxReqCode */ 540 CARD8 lbxReqType; /* always X_LbxPutImage */ 541 CARD16 length; 542 CARD8 compressionMethod; 543 CARD8 cacheEnts; 544 CARD8 bitPacked; 545 /* rest is variable */ 546 } xLbxPutImageReq; 547 #define sz_xLbxPutImageReq 7 548 549 typedef struct { 550 CARD8 reqType; /* always LbxReqCode */ 551 CARD8 lbxReqType; /* always X_LbxGetImage */ 552 CARD16 length; 553 Drawable drawable; 554 INT16 x, y; 555 CARD16 width, height; 556 CARD32 planeMask; 557 CARD8 format; 558 CARD8 pad1; 559 CARD16 pad2; 560 } xLbxGetImageReq; 561 562 #define sz_xLbxGetImageReq 24 563 564 typedef struct { 565 BYTE type; /* X_Reply */ 566 CARD8 depth; 567 CARD16 sequenceNumber; 568 CARD32 lbxLength; 569 CARD32 xLength; 570 VisualID visual; 571 CARD8 compressionMethod; 572 CARD8 pad1; 573 CARD16 pad2; 574 CARD32 pad3; 575 CARD32 pad4; 576 CARD32 pad5; 577 } xLbxGetImageReply; 578 579 #define sz_xLbxGetImageReply 32 580 581 /* Following used for LbxPolyPoint, LbxPolyLine, LbxPolySegment, 582 LbxPolyRectangle, LbxPolyArc, LbxPolyFillRectangle and LbxPolyFillArc */ 583 584 #define GFX_CACHE_SIZE 15 585 586 #define GFXdCacheEnt(e) ((e) & 0xf) 587 #define GFXgCacheEnt(e) (((e) >> 4) & 0xf) 588 #define GFXCacheEnts(d,g) (((d) & 0xf) | (((g) & 0xf) << 4)) 589 590 #define GFXCacheNone 0xf 591 592 typedef struct _LbxPolyPoint { 593 CARD8 reqType; /* always LbxReqCode */ 594 CARD8 lbxReqType; 595 CARD16 length; 596 CARD8 cacheEnts; 597 CARD8 padBytes; 598 } xLbxPolyPointReq; 599 600 #define sz_xLbxPolyPointReq 6 601 602 typedef xLbxPolyPointReq xLbxPolyLineReq; 603 typedef xLbxPolyPointReq xLbxPolySegmentReq; 604 typedef xLbxPolyPointReq xLbxPolyRectangleReq; 605 typedef xLbxPolyPointReq xLbxPolyArcReq; 606 typedef xLbxPolyPointReq xLbxPolyFillRectangleReq; 607 typedef xLbxPolyPointReq xLbxPolyFillArcReq; 608 609 #define sz_xLbxPolyLineReq sz_xLbxPolyPointReq 610 #define sz_xLbxPolySegmentReq sz_xLbxPolyPointReq 611 #define sz_xLbxPolyRectangleReq sz_xLbxPolyPointReq 612 #define sz_xLbxPolyArcReq sz_xLbxPolyPointReq 613 #define sz_xLbxPolyFillRectangleReq sz_xLbxPolyPointReq 614 #define sz_xLbxPolyFillArc sz_xLbxPolyPointReq 615 616 typedef struct _LbxFillPoly { 617 CARD8 reqType; /* always LbxReqCode */ 618 CARD8 lbxReqType; 619 CARD16 length; 620 CARD8 cacheEnts; 621 BYTE shape; 622 CARD8 padBytes; 623 } xLbxFillPolyReq; 624 #define sz_xLbxFillPolyReq 7 625 626 typedef struct _LbxCopyArea { 627 CARD8 reqType; /* always LbxReqCode */ 628 CARD8 lbxReqType; 629 CARD16 length; 630 CARD8 srcCache; /* source drawable */ 631 CARD8 cacheEnts; /* dest drawable and gc */ 632 /* followed by encoded src x, src y, dst x, dst y, width, height */ 633 } xLbxCopyAreaReq; 634 635 #define sz_xLbxCopyAreaReq 6 636 637 typedef struct _LbxCopyPlane { 638 CARD8 reqType; /* always LbxReqCode */ 639 CARD8 lbxReqType; 640 CARD16 length; 641 CARD32 bitPlane; 642 CARD8 srcCache; /* source drawable */ 643 CARD8 cacheEnts; /* dest drawable and gc */ 644 /* followed by encoded src x, src y, dst x, dst y, width, height */ 645 } xLbxCopyPlaneReq; 646 647 #define sz_xLbxCopyPlaneReq 10 648 649 typedef struct _LbxPolyText { 650 CARD8 reqType; /* always LbxReqCode */ 651 CARD8 lbxReqType; 652 CARD16 length; 653 CARD8 cacheEnts; 654 /* followed by encoded src x, src y coordinates and text elts */ 655 } xLbxPolyTextReq; 656 657 #define sz_xLbxPolyTextReq 5 658 659 typedef xLbxPolyTextReq xLbxPolyText8Req; 660 typedef xLbxPolyTextReq xLbxPolyText16Req; 661 662 #define sz_xLbxPolyTextReq 5 663 #define sz_xLbxPolyText8Req 5 664 #define sz_xLbxPolyText16Req 5 665 666 typedef struct _LbxImageText { 667 CARD8 reqType; /* always LbxReqCode */ 668 CARD8 lbxReqType; 669 CARD16 length; 670 CARD8 cacheEnts; 671 CARD8 nChars; 672 /* followed by encoded src x, src y coordinates and string */ 673 } xLbxImageTextReq; 674 675 typedef xLbxImageTextReq xLbxImageText8Req; 676 typedef xLbxImageTextReq xLbxImageText16Req; 677 678 #define sz_xLbxImageTextReq 6 679 #define sz_xLbxImageText8Req 6 680 #define sz_xLbxImageText16Req 6 681 682 typedef struct { 683 CARD8 offset; 684 CARD8 diff; 685 } xLbxDiffItem; 686 #define sz_xLbxDiffItem 2 687 688 typedef struct { 689 BYTE type; /* X_Reply */ 690 CARD8 nOpts; 691 CARD16 sequenceNumber; 692 CARD32 length; 693 CARD32 optDataStart; 694 CARD32 pad0; 695 CARD32 pad1; 696 CARD32 pad2; 697 CARD32 pad3; 698 CARD32 pad4; 699 } xLbxStartReply; 700 #define sz_xLbxStartReply 32 701 #define sz_xLbxStartReplyHdr 8 702 703 typedef struct _LbxQueryExtension { 704 CARD8 reqType; /* always LbxReqCode */ 705 CARD8 lbxReqType; /* always X_LbxQueryExtension */ 706 CARD16 length; 707 CARD32 nbytes; 708 } xLbxQueryExtensionReq; 709 #define sz_xLbxQueryExtensionReq 8 710 711 typedef struct _LbxQueryExtensionReply { 712 BYTE type; /* X_Reply */ 713 CARD8 numReqs; 714 CARD16 sequenceNumber; 715 CARD32 length; 716 BOOL present; 717 CARD8 major_opcode; 718 CARD8 first_event; 719 CARD8 first_error; 720 CARD32 pad0; 721 CARD32 pad1; 722 CARD32 pad2; 723 CARD32 pad3; 724 CARD32 pad4; 725 726 /* reply & event generating requests */ 727 } xLbxQueryExtensionReply; 728 #define sz_xLbxQueryExtensionReply 32 729 730 731 typedef struct _LbxBeginLargeRequest { 732 CARD8 reqType; /* always LbxReqCode */ 733 CARD8 lbxReqType; /* always X_LbxBeginLargeRequest */ 734 CARD16 length; 735 CARD32 largeReqLength; 736 } xLbxBeginLargeRequestReq; 737 #define sz_BeginLargeRequestReq 8 738 739 typedef struct _LbxLargeRequestData { 740 CARD8 reqType; /* always LbxReqCode */ 741 CARD8 lbxReqType; /* always X_LbxLargeRequestData */ 742 CARD16 length; 743 /* followed by LISTofCARD8 data */ 744 } xLbxLargeRequestDataReq; 745 #define sz_LargeRequestDataReq 4 746 747 typedef struct _LbxEndLargeRequest { 748 CARD8 reqType; /* always LbxReqCode */ 749 CARD8 lbxReqType; /* always X_LbxEndLargeRequest */ 750 CARD16 length; 751 } xLbxEndLargeRequestReq; 752 #define sz_EndLargeRequestReq 4 753 754 755 756 typedef struct _LbxSwitchEvent { 757 BYTE type; /* always eventBase + LbxEvent */ 758 BYTE lbxType; /* LbxSwitchEvent */ 759 CARD16 pad; 760 CARD32 client; 761 } xLbxSwitchEvent; 762 #define sz_xLbxSwitchEvent 8 763 764 typedef struct _LbxCloseEvent { 765 BYTE type; /* always eventBase + LbxEvent */ 766 BYTE lbxType; /* LbxCloseEvent */ 767 CARD16 sequenceNumber; 768 CARD32 client; 769 CARD32 pad1; 770 CARD32 pad2; 771 CARD32 pad3; 772 CARD32 pad4; 773 CARD32 pad5; 774 CARD32 pad6; 775 } xLbxCloseEvent; 776 #define sz_xLbxCloseEvent 32 777 778 typedef struct _LbxInvalidateTagEvent { 779 BYTE type; /* always eventBase + LbxEvent */ 780 BYTE lbxType; /* LbxInvalidateTagEvent */ 781 CARD16 sequenceNumber; 782 CARD32 tag; 783 CARD32 tagType; 784 CARD32 pad1; 785 CARD32 pad2; 786 CARD32 pad3; 787 CARD32 pad4; 788 CARD32 pad5; 789 } xLbxInvalidateTagEvent; 790 #define sz_xLbxInvalidateTagEvent 32 791 792 typedef struct _LbxSendTagDataEvent { 793 BYTE type; /* always eventBase + LbxEvent */ 794 BYTE lbxType; /* LbxSendTagDataEvent */ 795 CARD16 sequenceNumber; 796 CARD32 tag; 797 CARD32 tagType; 798 CARD32 pad1; 799 CARD32 pad2; 800 CARD32 pad3; 801 CARD32 pad4; 802 CARD32 pad5; 803 } xLbxSendTagDataEvent; 804 #define sz_xLbxSendTagDataEvent 32 805 806 typedef struct _LbxListenToOneEvent { 807 BYTE type; /* always eventBase + LbxEvent */ 808 BYTE lbxType; /* LbxListenToOneEvent */ 809 CARD16 sequenceNumber; 810 CARD32 client; 811 CARD32 pad1; 812 CARD32 pad2; 813 CARD32 pad3; 814 CARD32 pad4; 815 CARD32 pad5; 816 CARD32 pad6; 817 } xLbxListenToOneEvent; 818 #define sz_xLbxListenToOneEvent 32 819 820 typedef struct _LbxListenToAllEvent { 821 BYTE type; /* always eventBase + LbxEvent */ 822 BYTE lbxType; /* LbxListenToAllEvent */ 823 CARD16 sequenceNumber; 824 CARD32 pad1; 825 CARD32 pad2; 826 CARD32 pad3; 827 CARD32 pad4; 828 CARD32 pad5; 829 CARD32 pad6; 830 CARD32 pad7; 831 } xLbxListenToAllEvent; 832 #define sz_xLbxListenToOneEvent 32 833 834 typedef struct _LbxReleaseCmapEvent { 835 BYTE type; /* always eventBase + LbxEvent */ 836 BYTE lbxType; /* LbxReleaseCmapEvent */ 837 CARD16 sequenceNumber; 838 Colormap colormap; 839 CARD32 pad1; 840 CARD32 pad2; 841 CARD32 pad3; 842 CARD32 pad4; 843 CARD32 pad5; 844 CARD32 pad6; 845 } xLbxReleaseCmapEvent; 846 #define sz_xLbxReleaseCmapEvent 32 847 848 849 typedef struct _LbxFreeCellsEvent { 850 BYTE type; /* always eventBase + LbxEvent */ 851 BYTE lbxType; /* LbxFreeCellsEvent */ 852 CARD16 sequenceNumber; 853 Colormap colormap; 854 CARD32 pixelStart; 855 CARD32 pixelEnd; 856 CARD32 pad1; 857 CARD32 pad2; 858 CARD32 pad3; 859 CARD32 pad4; 860 } xLbxFreeCellsEvent; 861 #define sz_xLbxFreeCellsEvent 32 862 863 864 /* 865 * squished X event sizes. If these change, be sure to update lbxquish.c 866 * and unsquish.c appropriately 867 * 868 * lbxsz_* is the padded squished length 869 * lbxupsz_* is the unpadded squished length 870 */ 871 872 #define lbxsz_KeyButtonEvent 32 873 #define lbxupsz_KeyButtonEvent 31 874 875 #define lbxsz_EnterLeaveEvent 32 876 #define lbxupsz_EnterLeaveEvent 32 877 878 #define lbxsz_FocusEvent 12 879 #define lbxupsz_FocusEvent 9 880 881 #define lbxsz_KeymapEvent 32 882 #define lbxupsz_KeymapEvent 32 883 884 #define lbxsz_ExposeEvent 20 885 #define lbxupsz_ExposeEvent 18 886 887 #define lbxsz_GfxExposeEvent 24 888 #define lbxupsz_GfxExposeEvent 21 889 890 #define lbxsz_NoExposeEvent 12 891 #define lbxupsz_NoExposeEvent 11 892 893 #define lbxsz_VisibilityEvent 12 894 #define lbxupsz_VisibilityEvent 9 895 896 #define lbxsz_CreateNotifyEvent 24 897 #define lbxupsz_CreateNotifyEvent 23 898 899 #define lbxsz_DestroyNotifyEvent 12 900 #define lbxupsz_DestroyNotifyEvent 12 901 902 #define lbxsz_UnmapNotifyEvent 16 903 #define lbxupsz_UnmapNotifyEvent 13 904 905 #define lbxsz_MapNotifyEvent 16 906 #define lbxupsz_MapNotifyEvent 13 907 908 #define lbxsz_MapRequestEvent 12 909 #define lbxupsz_MapRequestEvent 12 910 911 #define lbxsz_ReparentEvent 24 912 #define lbxupsz_ReparentEvent 21 913 914 #define lbxsz_ConfigureNotifyEvent 28 915 #define lbxupsz_ConfigureNotifyEvent 27 916 917 #define lbxsz_ConfigureRequestEvent 28 918 #define lbxupsz_ConfigureRequestEvent 28 919 920 #define lbxsz_GravityEvent 16 921 #define lbxupsz_GravityEvent 16 922 923 #define lbxsz_ResizeRequestEvent 12 924 #define lbxupsz_ResizeRequestEvent 12 925 926 #define lbxsz_CirculateEvent 20 927 #define lbxupsz_CirculateEvent 17 928 929 #define lbxsz_PropertyEvent 20 930 #define lbxupsz_PropertyEvent 17 931 932 #define lbxsz_SelectionClearEvent 16 933 #define lbxupsz_SelectionClearEvent 16 934 935 #define lbxsz_SelectionRequestEvent 28 936 #define lbxupsz_SelectionRequestEvent 28 937 938 #define lbxsz_SelectionNotifyEvent 24 939 #define lbxupsz_SelectionNotifyEvent 24 940 941 #define lbxsz_ColormapEvent 16 942 #define lbxupsz_ColormapEvent 14 943 944 #define lbxsz_MappingNotifyEvent 8 945 #define lbxupsz_MappingNotifyEvent 7 946 947 #define lbxsz_ClientMessageEvent 32 948 #define lbxupsz_ClientMessageEvent 32 949 950 #define lbxsz_UnknownEvent 32 951 952 #ifdef DEBUG 953 954 #define DBG_SWITCH 0x00000001 955 #define DBG_CLOSE 0x00000002 956 #define DBG_IO 0x00000004 957 #define DBG_READ_REQ 0x00000008 958 #define DBG_LEN 0x00000010 959 #define DBG_BLOCK 0x00000020 960 #define DBG_CLIENT 0x00000040 961 #define DBG_DELTA 0x00000080 962 #endif 963 /* 964 * Cancel the previous redefinition of the basic types, thus restoring their 965 * X.h definitions. 966 */ 967 968 #undef XID 969 #undef Atom 970 #undef Colormap 971 #undef Drawable 972 #undef VisualID 973 #undef Window 974 975 #endif /* _LBXPROTO_H_ */