github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xkbcommon/include/X11/extensions/syncproto.h (about) 1 /* 2 3 Copyright 1991, 1993, 1994, 1998 The Open Group 4 5 Permission to use, copy, modify, distribute, and sell this software and its 6 documentation for any purpose is hereby granted without fee, provided that 7 the above copyright notice appear in all copies and that both that 8 copyright notice and this permission notice appear in supporting 9 documentation. 10 11 The above copyright notice and this permission notice shall be included in 12 all copies or substantial portions of the Software. 13 14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 18 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 21 Except as contained in this notice, the name of The Open Group shall not be 22 used in advertising or otherwise to promote the sale, use or other dealings 23 in this Software without prior written authorization from The Open Group. 24 25 */ 26 27 /*********************************************************** 28 Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts, 29 and Olivetti Research Limited, Cambridge, England. 30 31 All Rights Reserved 32 33 Permission to use, copy, modify, and distribute this software and its 34 documentation for any purpose and without fee is hereby granted, 35 provided that the above copyright notice appear in all copies and that 36 both that copyright notice and this permission notice appear in 37 supporting documentation, and that the names of Digital or Olivetti 38 not be used in advertising or publicity pertaining to distribution of the 39 software without specific, written prior permission. 40 41 DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 42 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 43 FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR 44 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 45 USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 46 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 47 PERFORMANCE OF THIS SOFTWARE. 48 49 ******************************************************************/ 50 51 #ifndef _SYNCPROTO_H_ 52 #define _SYNCPROTO_H_ 53 54 #include <X11/extensions/syncconst.h> 55 56 #define X_SyncInitialize 0 57 #define X_SyncListSystemCounters 1 58 #define X_SyncCreateCounter 2 59 #define X_SyncSetCounter 3 60 #define X_SyncChangeCounter 4 61 #define X_SyncQueryCounter 5 62 #define X_SyncDestroyCounter 6 63 #define X_SyncAwait 7 64 #define X_SyncCreateAlarm 8 65 #define X_SyncChangeAlarm 9 66 #define X_SyncQueryAlarm 10 67 #define X_SyncDestroyAlarm 11 68 #define X_SyncSetPriority 12 69 #define X_SyncGetPriority 13 70 #define X_SyncCreateFence 14 71 #define X_SyncTriggerFence 15 72 #define X_SyncResetFence 16 73 #define X_SyncDestroyFence 17 74 #define X_SyncQueryFence 18 75 #define X_SyncAwaitFence 19 76 77 /* cover up types from sync.h to make sure they're the right size for 78 * protocol packaging. These will be undef'ed after all the protocol 79 * structures are defined. 80 */ 81 #define XSyncCounter CARD32 82 #define XSyncAlarm CARD32 83 #define XSyncFence CARD32 84 #define Drawable CARD32 85 86 /* 87 * Initialize 88 */ 89 typedef struct _xSyncInitialize { 90 CARD8 reqType; 91 CARD8 syncReqType; 92 CARD16 length; 93 CARD8 majorVersion; 94 CARD8 minorVersion; 95 CARD16 pad; 96 } xSyncInitializeReq; 97 #define sz_xSyncInitializeReq 8 98 99 typedef struct { 100 BYTE type; 101 CARD8 unused; 102 CARD16 sequenceNumber; 103 CARD32 length; 104 CARD8 majorVersion; 105 CARD8 minorVersion; 106 CARD16 pad; 107 CARD32 pad0; 108 CARD32 pad1; 109 CARD32 pad2; 110 CARD32 pad3; 111 CARD32 pad4; 112 } xSyncInitializeReply; 113 #define sz_xSyncInitializeReply 32 114 115 /* 116 * ListSystemCounters 117 */ 118 typedef struct _xSyncListSystemCounters 119 { 120 CARD8 reqType; 121 CARD8 syncReqType; 122 CARD16 length; 123 } xSyncListSystemCountersReq; 124 #define sz_xSyncListSystemCountersReq 4 125 126 typedef struct { 127 BYTE type; 128 CARD8 unused; 129 CARD16 sequenceNumber; 130 CARD32 length; 131 INT32 nCounters; 132 CARD32 pad0; 133 CARD32 pad1; 134 CARD32 pad2; 135 CARD32 pad3; 136 CARD32 pad4; 137 } xSyncListSystemCountersReply; 138 #define sz_xSyncListSystemCountersReply 32 139 140 typedef struct { 141 XSyncCounter counter; 142 INT32 resolution_hi; 143 CARD32 resolution_lo; 144 CARD16 name_length; 145 } xSyncSystemCounter; 146 #define sz_xSyncSystemCounter 14 147 148 /* 149 * Create Counter 150 */ 151 typedef struct _xSyncCreateCounterReq { 152 CARD8 reqType; 153 CARD8 syncReqType; 154 CARD16 length; 155 XSyncCounter cid; 156 INT32 initial_value_hi; 157 CARD32 initial_value_lo; 158 } xSyncCreateCounterReq; 159 #define sz_xSyncCreateCounterReq 16 160 161 /* 162 * Change Counter 163 */ 164 typedef struct _xSyncChangeCounterReq { 165 CARD8 reqType; 166 CARD8 syncReqType; 167 CARD16 length; 168 XSyncCounter cid; 169 INT32 value_hi; 170 CARD32 value_lo; 171 } xSyncChangeCounterReq; 172 #define sz_xSyncChangeCounterReq 16 173 174 /* 175 * Set Counter 176 */ 177 typedef struct _xSyncSetCounterReq { 178 CARD8 reqType; 179 CARD8 syncReqType; 180 CARD16 length; 181 XSyncCounter cid; 182 INT32 value_hi; 183 CARD32 value_lo; 184 } xSyncSetCounterReq; 185 #define sz_xSyncSetCounterReq 16 186 187 /* 188 * Destroy Counter 189 */ 190 typedef struct _xSyncDestroyCounterReq { 191 CARD8 reqType; 192 CARD8 syncReqType; 193 CARD16 length; 194 XSyncCounter counter; 195 } xSyncDestroyCounterReq; 196 #define sz_xSyncDestroyCounterReq 8 197 198 /* 199 * Query Counter 200 */ 201 typedef struct _xSyncQueryCounterReq { 202 CARD8 reqType; 203 CARD8 syncReqType; 204 CARD16 length; 205 XSyncCounter counter; 206 } xSyncQueryCounterReq; 207 #define sz_xSyncQueryCounterReq 8 208 209 210 typedef struct { 211 BYTE type; 212 CARD8 unused; 213 CARD16 sequenceNumber; 214 CARD32 length; 215 INT32 value_hi; 216 CARD32 value_lo; 217 CARD32 pad0; 218 CARD32 pad1; 219 CARD32 pad2; 220 CARD32 pad3; 221 } xSyncQueryCounterReply; 222 #define sz_xSyncQueryCounterReply 32 223 224 /* 225 * Await 226 */ 227 typedef struct _xSyncAwaitReq { 228 CARD8 reqType; 229 CARD8 syncReqType; 230 CARD16 length; 231 } xSyncAwaitReq; 232 #define sz_xSyncAwaitReq 4 233 234 typedef struct _xSyncWaitCondition { 235 XSyncCounter counter; 236 CARD32 value_type; 237 INT32 wait_value_hi; 238 CARD32 wait_value_lo; 239 CARD32 test_type; 240 INT32 event_threshold_hi; 241 CARD32 event_threshold_lo; 242 } xSyncWaitCondition; 243 #define sz_xSyncWaitCondition 28 244 245 /* 246 * Create Alarm 247 */ 248 typedef struct _xSyncCreateAlarmReq { 249 CARD8 reqType; 250 CARD8 syncReqType; 251 CARD16 length; 252 XSyncAlarm id; 253 CARD32 valueMask; 254 } xSyncCreateAlarmReq; 255 #define sz_xSyncCreateAlarmReq 12 256 257 /* 258 * Destroy Alarm 259 */ 260 typedef struct _xSyncDestroyAlarmReq { 261 CARD8 reqType; 262 CARD8 syncReqType; 263 CARD16 length; 264 XSyncAlarm alarm; 265 } xSyncDestroyAlarmReq; 266 #define sz_xSyncDestroyAlarmReq 8 267 268 /* 269 * Query Alarm 270 */ 271 typedef struct _xSyncQueryAlarmReq { 272 CARD8 reqType; 273 CARD8 syncReqType; 274 CARD16 length; 275 XSyncAlarm alarm; 276 } xSyncQueryAlarmReq; 277 #define sz_xSyncQueryAlarmReq 8 278 279 typedef struct { 280 BYTE type; 281 CARD8 unused; 282 CARD16 sequenceNumber; 283 CARD32 length; 284 XSyncCounter counter; 285 CARD32 value_type; 286 INT32 wait_value_hi; 287 CARD32 wait_value_lo; 288 CARD32 test_type; 289 INT32 delta_hi; 290 CARD32 delta_lo; 291 BOOL events; 292 BYTE state; 293 BYTE pad0; 294 BYTE pad1; 295 } xSyncQueryAlarmReply; 296 #define sz_xSyncQueryAlarmReply 40 297 298 /* 299 * Change Alarm 300 */ 301 typedef struct _xSyncChangeAlarmReq { 302 CARD8 reqType; 303 CARD8 syncReqType; 304 CARD16 length; 305 XSyncAlarm alarm; 306 CARD32 valueMask; 307 } xSyncChangeAlarmReq; 308 #define sz_xSyncChangeAlarmReq 12 309 310 /* 311 * SetPriority 312 */ 313 typedef struct _xSyncSetPriority{ 314 CARD8 reqType; 315 CARD8 syncReqType; 316 CARD16 length; 317 CARD32 id; 318 INT32 priority; 319 } xSyncSetPriorityReq; 320 #define sz_xSyncSetPriorityReq 12 321 322 /* 323 * Get Priority 324 */ 325 typedef struct _xSyncGetPriority{ 326 CARD8 reqType; 327 CARD8 syncReqType; 328 CARD16 length; 329 CARD32 id; /*XXX XID? */ 330 } xSyncGetPriorityReq; 331 #define sz_xSyncGetPriorityReq 8 332 333 typedef struct { 334 BYTE type; 335 CARD8 unused; 336 CARD16 sequenceNumber; 337 CARD32 length; 338 INT32 priority; 339 CARD32 pad0; 340 CARD32 pad1; 341 CARD32 pad2; 342 CARD32 pad3; 343 CARD32 pad4; 344 } xSyncGetPriorityReply; 345 #define sz_xSyncGetPriorityReply 32 346 347 /* 348 * Create Fence 349 */ 350 typedef struct _xSyncCreateFenceReq { 351 CARD8 reqType; 352 CARD8 syncReqType; 353 CARD16 length; 354 Drawable d; 355 XSyncFence fid; 356 BOOL initially_triggered; 357 CARD8 pad0; 358 CARD16 pad1; 359 } xSyncCreateFenceReq; 360 #define sz_xSyncCreateFenceReq 16 361 362 /* 363 * Put a fence object in the "triggered" state. 364 */ 365 typedef struct _xSyncTriggerFenceReq { 366 CARD8 reqType; 367 CARD8 syncReqType; 368 CARD16 length; 369 XSyncFence fid; 370 } xSyncTriggerFenceReq; 371 #define sz_xSyncTriggerFenceReq 8 372 373 /* 374 * Put a fence in the "untriggered" state. 375 */ 376 typedef struct _xSyncResetFenceReq { 377 CARD8 reqType; 378 CARD8 syncReqType; 379 CARD16 length; 380 XSyncFence fid; 381 } xSyncResetFenceReq; 382 #define sz_xSyncResetFenceReq 8 383 384 /* 385 * Destroy a fence object 386 */ 387 typedef struct _xSyncDestroyFenceReq { 388 CARD8 reqType; 389 CARD8 syncReqType; 390 CARD16 length; 391 XSyncFence fid; 392 } xSyncDestroyFenceReq; 393 #define sz_xSyncDestroyFenceReq 8 394 395 /* 396 * Query a fence object 397 */ 398 typedef struct _xSyncQueryFenceReq { 399 CARD8 reqType; 400 CARD8 syncReqType; 401 CARD16 length; 402 XSyncFence fid; 403 } xSyncQueryFenceReq; 404 #define sz_xSyncQueryFenceReq 8 405 406 /* 407 * Wait for any of a list of fence sync objects 408 * to reach the "triggered" state. 409 */ 410 typedef struct _xSyncAwaitFenceReq { 411 CARD8 reqType; 412 CARD8 syncReqType; 413 CARD16 length; 414 } xSyncAwaitFenceReq; 415 #define sz_xSyncAwaitFenceReq 4 416 417 typedef struct { 418 BYTE type; 419 CARD8 unused; 420 CARD16 sequenceNumber; 421 CARD32 length; 422 BOOL triggered; 423 BYTE pad0; 424 CARD16 pad1; 425 CARD32 pad2; 426 CARD32 pad3; 427 CARD32 pad4; 428 CARD32 pad5; 429 CARD32 pad6; 430 } xSyncQueryFenceReply; 431 #define sz_xSyncQueryFenceReply 32 432 433 /* 434 * Events 435 */ 436 437 typedef struct _xSyncCounterNotifyEvent { 438 BYTE type; 439 BYTE kind; 440 CARD16 sequenceNumber; 441 XSyncCounter counter; 442 INT32 wait_value_hi; 443 CARD32 wait_value_lo; 444 INT32 counter_value_hi; 445 CARD32 counter_value_lo; 446 CARD32 time; 447 CARD16 count; 448 BOOL destroyed; 449 BYTE pad0; 450 } xSyncCounterNotifyEvent; 451 452 typedef struct _xSyncAlarmNotifyEvent { 453 BYTE type; 454 BYTE kind; 455 CARD16 sequenceNumber; 456 XSyncAlarm alarm; 457 INT32 counter_value_hi; 458 CARD32 counter_value_lo; 459 INT32 alarm_value_hi; 460 CARD32 alarm_value_lo; 461 CARD32 time; 462 CARD8 state; 463 BYTE pad0; 464 BYTE pad1; 465 BYTE pad2; 466 } xSyncAlarmNotifyEvent; 467 468 #undef XSyncCounter 469 #undef XSyncAlarm 470 #undef XSyncFence 471 #undef Drawable 472 473 474 #endif /* _SYNCPROTO_H_ */