1 /* 2 * This file generated automatically from sync.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6 /** 7 * @defgroup XCB_Sync_API XCB Sync API 8 * @brief Sync XCB Protocol Implementation. 9 * @{ 10 **/ 11 12 #ifndef __SYNC_H 13 #define __SYNC_H 14 15 #include "xcb.h" 16 #include "xproto.h" 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 #define XCB_SYNC_MAJOR_VERSION 3 23 #define XCB_SYNC_MINOR_VERSION 1 24 25 extern xcb_extension_t xcb_sync_id; 26 27 typedef uint32_t xcb_sync_alarm_t; 28 29 /** 30 * @brief xcb_sync_alarm_iterator_t 31 **/ 32 typedef struct xcb_sync_alarm_iterator_t { 33 xcb_sync_alarm_t *data; 34 int rem; 35 int index; 36 } xcb_sync_alarm_iterator_t; 37 38 typedef enum xcb_sync_alarmstate_t { 39 XCB_SYNC_ALARMSTATE_ACTIVE = 0, 40 XCB_SYNC_ALARMSTATE_INACTIVE = 1, 41 XCB_SYNC_ALARMSTATE_DESTROYED = 2 42 } xcb_sync_alarmstate_t; 43 44 typedef uint32_t xcb_sync_counter_t; 45 46 /** 47 * @brief xcb_sync_counter_iterator_t 48 **/ 49 typedef struct xcb_sync_counter_iterator_t { 50 xcb_sync_counter_t *data; 51 int rem; 52 int index; 53 } xcb_sync_counter_iterator_t; 54 55 typedef uint32_t xcb_sync_fence_t; 56 57 /** 58 * @brief xcb_sync_fence_iterator_t 59 **/ 60 typedef struct xcb_sync_fence_iterator_t { 61 xcb_sync_fence_t *data; 62 int rem; 63 int index; 64 } xcb_sync_fence_iterator_t; 65 66 typedef enum xcb_sync_testtype_t { 67 XCB_SYNC_TESTTYPE_POSITIVE_TRANSITION = 0, 68 XCB_SYNC_TESTTYPE_NEGATIVE_TRANSITION = 1, 69 XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON = 2, 70 XCB_SYNC_TESTTYPE_NEGATIVE_COMPARISON = 3 71 } xcb_sync_testtype_t; 72 73 typedef enum xcb_sync_valuetype_t { 74 XCB_SYNC_VALUETYPE_ABSOLUTE = 0, 75 XCB_SYNC_VALUETYPE_RELATIVE = 1 76 } xcb_sync_valuetype_t; 77 78 typedef enum xcb_sync_ca_t { 79 XCB_SYNC_CA_COUNTER = 1, 80 XCB_SYNC_CA_VALUE_TYPE = 2, 81 XCB_SYNC_CA_VALUE = 4, 82 XCB_SYNC_CA_TEST_TYPE = 8, 83 XCB_SYNC_CA_DELTA = 16, 84 XCB_SYNC_CA_EVENTS = 32 85 } xcb_sync_ca_t; 86 87 /** 88 * @brief xcb_sync_int64_t 89 **/ 90 typedef struct xcb_sync_int64_t { 91 int32_t hi; 92 uint32_t lo; 93 } xcb_sync_int64_t; 94 95 /** 96 * @brief xcb_sync_int64_iterator_t 97 **/ 98 typedef struct xcb_sync_int64_iterator_t { 99 xcb_sync_int64_t *data; 100 int rem; 101 int index; 102 } xcb_sync_int64_iterator_t; 103 104 /** 105 * @brief xcb_sync_systemcounter_t 106 **/ 107 typedef struct xcb_sync_systemcounter_t { 108 xcb_sync_counter_t counter; 109 xcb_sync_int64_t resolution; 110 uint16_t name_len; 111 } xcb_sync_systemcounter_t; 112 113 /** 114 * @brief xcb_sync_systemcounter_iterator_t 115 **/ 116 typedef struct xcb_sync_systemcounter_iterator_t { 117 xcb_sync_systemcounter_t *data; 118 int rem; 119 int index; 120 } xcb_sync_systemcounter_iterator_t; 121 122 /** 123 * @brief xcb_sync_trigger_t 124 **/ 125 typedef struct xcb_sync_trigger_t { 126 xcb_sync_counter_t counter; 127 uint32_t wait_type; 128 xcb_sync_int64_t wait_value; 129 uint32_t test_type; 130 } xcb_sync_trigger_t; 131 132 /** 133 * @brief xcb_sync_trigger_iterator_t 134 **/ 135 typedef struct xcb_sync_trigger_iterator_t { 136 xcb_sync_trigger_t *data; 137 int rem; 138 int index; 139 } xcb_sync_trigger_iterator_t; 140 141 /** 142 * @brief xcb_sync_waitcondition_t 143 **/ 144 typedef struct xcb_sync_waitcondition_t { 145 xcb_sync_trigger_t trigger; 146 xcb_sync_int64_t event_threshold; 147 } xcb_sync_waitcondition_t; 148 149 /** 150 * @brief xcb_sync_waitcondition_iterator_t 151 **/ 152 typedef struct xcb_sync_waitcondition_iterator_t { 153 xcb_sync_waitcondition_t *data; 154 int rem; 155 int index; 156 } xcb_sync_waitcondition_iterator_t; 157 158 /** Opcode for xcb_sync_counter. */ 159 #define XCB_SYNC_COUNTER 0 160 161 /** 162 * @brief xcb_sync_counter_error_t 163 **/ 164 typedef struct xcb_sync_counter_error_t { 165 uint8_t response_type; 166 uint8_t error_code; 167 uint16_t sequence; 168 uint32_t bad_counter; 169 uint16_t minor_opcode; 170 uint8_t major_opcode; 171 } xcb_sync_counter_error_t; 172 173 /** Opcode for xcb_sync_alarm. */ 174 #define XCB_SYNC_ALARM 1 175 176 /** 177 * @brief xcb_sync_alarm_error_t 178 **/ 179 typedef struct xcb_sync_alarm_error_t { 180 uint8_t response_type; 181 uint8_t error_code; 182 uint16_t sequence; 183 uint32_t bad_alarm; 184 uint16_t minor_opcode; 185 uint8_t major_opcode; 186 } xcb_sync_alarm_error_t; 187 188 /** 189 * @brief xcb_sync_initialize_cookie_t 190 **/ 191 typedef struct xcb_sync_initialize_cookie_t { 192 unsigned int sequence; 193 } xcb_sync_initialize_cookie_t; 194 195 /** Opcode for xcb_sync_initialize. */ 196 #define XCB_SYNC_INITIALIZE 0 197 198 /** 199 * @brief xcb_sync_initialize_request_t 200 **/ 201 typedef struct xcb_sync_initialize_request_t { 202 uint8_t major_opcode; 203 uint8_t minor_opcode; 204 uint16_t length; 205 uint8_t desired_major_version; 206 uint8_t desired_minor_version; 207 } xcb_sync_initialize_request_t; 208 209 /** 210 * @brief xcb_sync_initialize_reply_t 211 **/ 212 typedef struct xcb_sync_initialize_reply_t { 213 uint8_t response_type; 214 uint8_t pad0; 215 uint16_t sequence; 216 uint32_t length; 217 uint8_t major_version; 218 uint8_t minor_version; 219 uint8_t pad1[22]; 220 } xcb_sync_initialize_reply_t; 221 222 /** 223 * @brief xcb_sync_list_system_counters_cookie_t 224 **/ 225 typedef struct xcb_sync_list_system_counters_cookie_t { 226 unsigned int sequence; 227 } xcb_sync_list_system_counters_cookie_t; 228 229 /** Opcode for xcb_sync_list_system_counters. */ 230 #define XCB_SYNC_LIST_SYSTEM_COUNTERS 1 231 232 /** 233 * @brief xcb_sync_list_system_counters_request_t 234 **/ 235 typedef struct xcb_sync_list_system_counters_request_t { 236 uint8_t major_opcode; 237 uint8_t minor_opcode; 238 uint16_t length; 239 } xcb_sync_list_system_counters_request_t; 240 241 /** 242 * @brief xcb_sync_list_system_counters_reply_t 243 **/ 244 typedef struct xcb_sync_list_system_counters_reply_t { 245 uint8_t response_type; 246 uint8_t pad0; 247 uint16_t sequence; 248 uint32_t length; 249 uint32_t counters_len; 250 uint8_t pad1[20]; 251 } xcb_sync_list_system_counters_reply_t; 252 253 /** Opcode for xcb_sync_create_counter. */ 254 #define XCB_SYNC_CREATE_COUNTER 2 255 256 /** 257 * @brief xcb_sync_create_counter_request_t 258 **/ 259 typedef struct xcb_sync_create_counter_request_t { 260 uint8_t major_opcode; 261 uint8_t minor_opcode; 262 uint16_t length; 263 xcb_sync_counter_t id; 264 xcb_sync_int64_t initial_value; 265 } xcb_sync_create_counter_request_t; 266 267 /** Opcode for xcb_sync_destroy_counter. */ 268 #define XCB_SYNC_DESTROY_COUNTER 6 269 270 /** 271 * @brief xcb_sync_destroy_counter_request_t 272 **/ 273 typedef struct xcb_sync_destroy_counter_request_t { 274 uint8_t major_opcode; 275 uint8_t minor_opcode; 276 uint16_t length; 277 xcb_sync_counter_t counter; 278 } xcb_sync_destroy_counter_request_t; 279 280 /** 281 * @brief xcb_sync_query_counter_cookie_t 282 **/ 283 typedef struct xcb_sync_query_counter_cookie_t { 284 unsigned int sequence; 285 } xcb_sync_query_counter_cookie_t; 286 287 /** Opcode for xcb_sync_query_counter. */ 288 #define XCB_SYNC_QUERY_COUNTER 5 289 290 /** 291 * @brief xcb_sync_query_counter_request_t 292 **/ 293 typedef struct xcb_sync_query_counter_request_t { 294 uint8_t major_opcode; 295 uint8_t minor_opcode; 296 uint16_t length; 297 xcb_sync_counter_t counter; 298 } xcb_sync_query_counter_request_t; 299 300 /** 301 * @brief xcb_sync_query_counter_reply_t 302 **/ 303 typedef struct xcb_sync_query_counter_reply_t { 304 uint8_t response_type; 305 uint8_t pad0; 306 uint16_t sequence; 307 uint32_t length; 308 xcb_sync_int64_t counter_value; 309 } xcb_sync_query_counter_reply_t; 310 311 /** Opcode for xcb_sync_await. */ 312 #define XCB_SYNC_AWAIT 7 313 314 /** 315 * @brief xcb_sync_await_request_t 316 **/ 317 typedef struct xcb_sync_await_request_t { 318 uint8_t major_opcode; 319 uint8_t minor_opcode; 320 uint16_t length; 321 } xcb_sync_await_request_t; 322 323 /** Opcode for xcb_sync_change_counter. */ 324 #define XCB_SYNC_CHANGE_COUNTER 4 325 326 /** 327 * @brief xcb_sync_change_counter_request_t 328 **/ 329 typedef struct xcb_sync_change_counter_request_t { 330 uint8_t major_opcode; 331 uint8_t minor_opcode; 332 uint16_t length; 333 xcb_sync_counter_t counter; 334 xcb_sync_int64_t amount; 335 } xcb_sync_change_counter_request_t; 336 337 /** Opcode for xcb_sync_set_counter. */ 338 #define XCB_SYNC_SET_COUNTER 3 339 340 /** 341 * @brief xcb_sync_set_counter_request_t 342 **/ 343 typedef struct xcb_sync_set_counter_request_t { 344 uint8_t major_opcode; 345 uint8_t minor_opcode; 346 uint16_t length; 347 xcb_sync_counter_t counter; 348 xcb_sync_int64_t value; 349 } xcb_sync_set_counter_request_t; 350 351 /** 352 * @brief xcb_sync_create_alarm_value_list_t 353 **/ 354 typedef struct xcb_sync_create_alarm_value_list_t { 355 xcb_sync_counter_t counter; 356 uint32_t valueType; 357 xcb_sync_int64_t value; 358 uint32_t testType; 359 xcb_sync_int64_t delta; 360 uint32_t events; 361 } xcb_sync_create_alarm_value_list_t; 362 363 /** Opcode for xcb_sync_create_alarm. */ 364 #define XCB_SYNC_CREATE_ALARM 8 365 366 /** 367 * @brief xcb_sync_create_alarm_request_t 368 **/ 369 typedef struct xcb_sync_create_alarm_request_t { 370 uint8_t major_opcode; 371 uint8_t minor_opcode; 372 uint16_t length; 373 xcb_sync_alarm_t id; 374 uint32_t value_mask; 375 } xcb_sync_create_alarm_request_t; 376 377 /** 378 * @brief xcb_sync_change_alarm_value_list_t 379 **/ 380 typedef struct xcb_sync_change_alarm_value_list_t { 381 xcb_sync_counter_t counter; 382 uint32_t valueType; 383 xcb_sync_int64_t value; 384 uint32_t testType; 385 xcb_sync_int64_t delta; 386 uint32_t events; 387 } xcb_sync_change_alarm_value_list_t; 388 389 /** Opcode for xcb_sync_change_alarm. */ 390 #define XCB_SYNC_CHANGE_ALARM 9 391 392 /** 393 * @brief xcb_sync_change_alarm_request_t 394 **/ 395 typedef struct xcb_sync_change_alarm_request_t { 396 uint8_t major_opcode; 397 uint8_t minor_opcode; 398 uint16_t length; 399 xcb_sync_alarm_t id; 400 uint32_t value_mask; 401 } xcb_sync_change_alarm_request_t; 402 403 /** Opcode for xcb_sync_destroy_alarm. */ 404 #define XCB_SYNC_DESTROY_ALARM 11 405 406 /** 407 * @brief xcb_sync_destroy_alarm_request_t 408 **/ 409 typedef struct xcb_sync_destroy_alarm_request_t { 410 uint8_t major_opcode; 411 uint8_t minor_opcode; 412 uint16_t length; 413 xcb_sync_alarm_t alarm; 414 } xcb_sync_destroy_alarm_request_t; 415 416 /** 417 * @brief xcb_sync_query_alarm_cookie_t 418 **/ 419 typedef struct xcb_sync_query_alarm_cookie_t { 420 unsigned int sequence; 421 } xcb_sync_query_alarm_cookie_t; 422 423 /** Opcode for xcb_sync_query_alarm. */ 424 #define XCB_SYNC_QUERY_ALARM 10 425 426 /** 427 * @brief xcb_sync_query_alarm_request_t 428 **/ 429 typedef struct xcb_sync_query_alarm_request_t { 430 uint8_t major_opcode; 431 uint8_t minor_opcode; 432 uint16_t length; 433 xcb_sync_alarm_t alarm; 434 } xcb_sync_query_alarm_request_t; 435 436 /** 437 * @brief xcb_sync_query_alarm_reply_t 438 **/ 439 typedef struct xcb_sync_query_alarm_reply_t { 440 uint8_t response_type; 441 uint8_t pad0; 442 uint16_t sequence; 443 uint32_t length; 444 xcb_sync_trigger_t trigger; 445 xcb_sync_int64_t delta; 446 uint8_t events; 447 uint8_t state; 448 uint8_t pad1[2]; 449 } xcb_sync_query_alarm_reply_t; 450 451 /** Opcode for xcb_sync_set_priority. */ 452 #define XCB_SYNC_SET_PRIORITY 12 453 454 /** 455 * @brief xcb_sync_set_priority_request_t 456 **/ 457 typedef struct xcb_sync_set_priority_request_t { 458 uint8_t major_opcode; 459 uint8_t minor_opcode; 460 uint16_t length; 461 uint32_t id; 462 int32_t priority; 463 } xcb_sync_set_priority_request_t; 464 465 /** 466 * @brief xcb_sync_get_priority_cookie_t 467 **/ 468 typedef struct xcb_sync_get_priority_cookie_t { 469 unsigned int sequence; 470 } xcb_sync_get_priority_cookie_t; 471 472 /** Opcode for xcb_sync_get_priority. */ 473 #define XCB_SYNC_GET_PRIORITY 13 474 475 /** 476 * @brief xcb_sync_get_priority_request_t 477 **/ 478 typedef struct xcb_sync_get_priority_request_t { 479 uint8_t major_opcode; 480 uint8_t minor_opcode; 481 uint16_t length; 482 uint32_t id; 483 } xcb_sync_get_priority_request_t; 484 485 /** 486 * @brief xcb_sync_get_priority_reply_t 487 **/ 488 typedef struct xcb_sync_get_priority_reply_t { 489 uint8_t response_type; 490 uint8_t pad0; 491 uint16_t sequence; 492 uint32_t length; 493 int32_t priority; 494 } xcb_sync_get_priority_reply_t; 495 496 /** Opcode for xcb_sync_create_fence. */ 497 #define XCB_SYNC_CREATE_FENCE 14 498 499 /** 500 * @brief xcb_sync_create_fence_request_t 501 **/ 502 typedef struct xcb_sync_create_fence_request_t { 503 uint8_t major_opcode; 504 uint8_t minor_opcode; 505 uint16_t length; 506 xcb_drawable_t drawable; 507 xcb_sync_fence_t fence; 508 uint8_t initially_triggered; 509 } xcb_sync_create_fence_request_t; 510 511 /** Opcode for xcb_sync_trigger_fence. */ 512 #define XCB_SYNC_TRIGGER_FENCE 15 513 514 /** 515 * @brief xcb_sync_trigger_fence_request_t 516 **/ 517 typedef struct xcb_sync_trigger_fence_request_t { 518 uint8_t major_opcode; 519 uint8_t minor_opcode; 520 uint16_t length; 521 xcb_sync_fence_t fence; 522 } xcb_sync_trigger_fence_request_t; 523 524 /** Opcode for xcb_sync_reset_fence. */ 525 #define XCB_SYNC_RESET_FENCE 16 526 527 /** 528 * @brief xcb_sync_reset_fence_request_t 529 **/ 530 typedef struct xcb_sync_reset_fence_request_t { 531 uint8_t major_opcode; 532 uint8_t minor_opcode; 533 uint16_t length; 534 xcb_sync_fence_t fence; 535 } xcb_sync_reset_fence_request_t; 536 537 /** Opcode for xcb_sync_destroy_fence. */ 538 #define XCB_SYNC_DESTROY_FENCE 17 539 540 /** 541 * @brief xcb_sync_destroy_fence_request_t 542 **/ 543 typedef struct xcb_sync_destroy_fence_request_t { 544 uint8_t major_opcode; 545 uint8_t minor_opcode; 546 uint16_t length; 547 xcb_sync_fence_t fence; 548 } xcb_sync_destroy_fence_request_t; 549 550 /** 551 * @brief xcb_sync_query_fence_cookie_t 552 **/ 553 typedef struct xcb_sync_query_fence_cookie_t { 554 unsigned int sequence; 555 } xcb_sync_query_fence_cookie_t; 556 557 /** Opcode for xcb_sync_query_fence. */ 558 #define XCB_SYNC_QUERY_FENCE 18 559 560 /** 561 * @brief xcb_sync_query_fence_request_t 562 **/ 563 typedef struct xcb_sync_query_fence_request_t { 564 uint8_t major_opcode; 565 uint8_t minor_opcode; 566 uint16_t length; 567 xcb_sync_fence_t fence; 568 } xcb_sync_query_fence_request_t; 569 570 /** 571 * @brief xcb_sync_query_fence_reply_t 572 **/ 573 typedef struct xcb_sync_query_fence_reply_t { 574 uint8_t response_type; 575 uint8_t pad0; 576 uint16_t sequence; 577 uint32_t length; 578 uint8_t triggered; 579 uint8_t pad1[23]; 580 } xcb_sync_query_fence_reply_t; 581 582 /** Opcode for xcb_sync_await_fence. */ 583 #define XCB_SYNC_AWAIT_FENCE 19 584 585 /** 586 * @brief xcb_sync_await_fence_request_t 587 **/ 588 typedef struct xcb_sync_await_fence_request_t { 589 uint8_t major_opcode; 590 uint8_t minor_opcode; 591 uint16_t length; 592 } xcb_sync_await_fence_request_t; 593 594 /** Opcode for xcb_sync_counter_notify. */ 595 #define XCB_SYNC_COUNTER_NOTIFY 0 596 597 /** 598 * @brief xcb_sync_counter_notify_event_t 599 **/ 600 typedef struct xcb_sync_counter_notify_event_t { 601 uint8_t response_type; 602 uint8_t kind; 603 uint16_t sequence; 604 xcb_sync_counter_t counter; 605 xcb_sync_int64_t wait_value; 606 xcb_sync_int64_t counter_value; 607 xcb_timestamp_t timestamp; 608 uint16_t count; 609 uint8_t destroyed; 610 uint8_t pad0; 611 } xcb_sync_counter_notify_event_t; 612 613 /** Opcode for xcb_sync_alarm_notify. */ 614 #define XCB_SYNC_ALARM_NOTIFY 1 615 616 /** 617 * @brief xcb_sync_alarm_notify_event_t 618 **/ 619 typedef struct xcb_sync_alarm_notify_event_t { 620 uint8_t response_type; 621 uint8_t kind; 622 uint16_t sequence; 623 xcb_sync_alarm_t alarm; 624 xcb_sync_int64_t counter_value; 625 xcb_sync_int64_t alarm_value; 626 xcb_timestamp_t timestamp; 627 uint8_t state; 628 uint8_t pad0[3]; 629 } xcb_sync_alarm_notify_event_t; 630 631 /** 632 * Get the next element of the iterator 633 * @param i Pointer to a xcb_sync_alarm_iterator_t 634 * 635 * Get the next element in the iterator. The member rem is 636 * decreased by one. The member data points to the next 637 * element. The member index is increased by sizeof(xcb_sync_alarm_t) 638 */ 639 void 640 xcb_sync_alarm_next (xcb_sync_alarm_iterator_t *i); 641 642 /** 643 * Return the iterator pointing to the last element 644 * @param i An xcb_sync_alarm_iterator_t 645 * @return The iterator pointing to the last element 646 * 647 * Set the current element in the iterator to the last element. 648 * The member rem is set to 0. The member data points to the 649 * last element. 650 */ 651 xcb_generic_iterator_t 652 xcb_sync_alarm_end (xcb_sync_alarm_iterator_t i); 653 654 /** 655 * Get the next element of the iterator 656 * @param i Pointer to a xcb_sync_counter_iterator_t 657 * 658 * Get the next element in the iterator. The member rem is 659 * decreased by one. The member data points to the next 660 * element. The member index is increased by sizeof(xcb_sync_counter_t) 661 */ 662 void 663 xcb_sync_counter_next (xcb_sync_counter_iterator_t *i); 664 665 /** 666 * Return the iterator pointing to the last element 667 * @param i An xcb_sync_counter_iterator_t 668 * @return The iterator pointing to the last element 669 * 670 * Set the current element in the iterator to the last element. 671 * The member rem is set to 0. The member data points to the 672 * last element. 673 */ 674 xcb_generic_iterator_t 675 xcb_sync_counter_end (xcb_sync_counter_iterator_t i); 676 677 /** 678 * Get the next element of the iterator 679 * @param i Pointer to a xcb_sync_fence_iterator_t 680 * 681 * Get the next element in the iterator. The member rem is 682 * decreased by one. The member data points to the next 683 * element. The member index is increased by sizeof(xcb_sync_fence_t) 684 */ 685 void 686 xcb_sync_fence_next (xcb_sync_fence_iterator_t *i); 687 688 /** 689 * Return the iterator pointing to the last element 690 * @param i An xcb_sync_fence_iterator_t 691 * @return The iterator pointing to the last element 692 * 693 * Set the current element in the iterator to the last element. 694 * The member rem is set to 0. The member data points to the 695 * last element. 696 */ 697 xcb_generic_iterator_t 698 xcb_sync_fence_end (xcb_sync_fence_iterator_t i); 699 700 /** 701 * Get the next element of the iterator 702 * @param i Pointer to a xcb_sync_int64_iterator_t 703 * 704 * Get the next element in the iterator. The member rem is 705 * decreased by one. The member data points to the next 706 * element. The member index is increased by sizeof(xcb_sync_int64_t) 707 */ 708 void 709 xcb_sync_int64_next (xcb_sync_int64_iterator_t *i); 710 711 /** 712 * Return the iterator pointing to the last element 713 * @param i An xcb_sync_int64_iterator_t 714 * @return The iterator pointing to the last element 715 * 716 * Set the current element in the iterator to the last element. 717 * The member rem is set to 0. The member data points to the 718 * last element. 719 */ 720 xcb_generic_iterator_t 721 xcb_sync_int64_end (xcb_sync_int64_iterator_t i); 722 723 int 724 xcb_sync_systemcounter_sizeof (const void *_buffer); 725 726 char * 727 xcb_sync_systemcounter_name (const xcb_sync_systemcounter_t *R); 728 729 int 730 xcb_sync_systemcounter_name_length (const xcb_sync_systemcounter_t *R); 731 732 xcb_generic_iterator_t 733 xcb_sync_systemcounter_name_end (const xcb_sync_systemcounter_t *R); 734 735 /** 736 * Get the next element of the iterator 737 * @param i Pointer to a xcb_sync_systemcounter_iterator_t 738 * 739 * Get the next element in the iterator. The member rem is 740 * decreased by one. The member data points to the next 741 * element. The member index is increased by sizeof(xcb_sync_systemcounter_t) 742 */ 743 void 744 xcb_sync_systemcounter_next (xcb_sync_systemcounter_iterator_t *i); 745 746 /** 747 * Return the iterator pointing to the last element 748 * @param i An xcb_sync_systemcounter_iterator_t 749 * @return The iterator pointing to the last element 750 * 751 * Set the current element in the iterator to the last element. 752 * The member rem is set to 0. The member data points to the 753 * last element. 754 */ 755 xcb_generic_iterator_t 756 xcb_sync_systemcounter_end (xcb_sync_systemcounter_iterator_t i); 757 758 /** 759 * Get the next element of the iterator 760 * @param i Pointer to a xcb_sync_trigger_iterator_t 761 * 762 * Get the next element in the iterator. The member rem is 763 * decreased by one. The member data points to the next 764 * element. The member index is increased by sizeof(xcb_sync_trigger_t) 765 */ 766 void 767 xcb_sync_trigger_next (xcb_sync_trigger_iterator_t *i); 768 769 /** 770 * Return the iterator pointing to the last element 771 * @param i An xcb_sync_trigger_iterator_t 772 * @return The iterator pointing to the last element 773 * 774 * Set the current element in the iterator to the last element. 775 * The member rem is set to 0. The member data points to the 776 * last element. 777 */ 778 xcb_generic_iterator_t 779 xcb_sync_trigger_end (xcb_sync_trigger_iterator_t i); 780 781 /** 782 * Get the next element of the iterator 783 * @param i Pointer to a xcb_sync_waitcondition_iterator_t 784 * 785 * Get the next element in the iterator. The member rem is 786 * decreased by one. The member data points to the next 787 * element. The member index is increased by sizeof(xcb_sync_waitcondition_t) 788 */ 789 void 790 xcb_sync_waitcondition_next (xcb_sync_waitcondition_iterator_t *i); 791 792 /** 793 * Return the iterator pointing to the last element 794 * @param i An xcb_sync_waitcondition_iterator_t 795 * @return The iterator pointing to the last element 796 * 797 * Set the current element in the iterator to the last element. 798 * The member rem is set to 0. The member data points to the 799 * last element. 800 */ 801 xcb_generic_iterator_t 802 xcb_sync_waitcondition_end (xcb_sync_waitcondition_iterator_t i); 803 804 /** 805 * 806 * @param c The connection 807 * @return A cookie 808 * 809 * Delivers a request to the X server. 810 * 811 */ 812 xcb_sync_initialize_cookie_t 813 xcb_sync_initialize (xcb_connection_t *c, 814 uint8_t desired_major_version, 815 uint8_t desired_minor_version); 816 817 /** 818 * 819 * @param c The connection 820 * @return A cookie 821 * 822 * Delivers a request to the X server. 823 * 824 * This form can be used only if the request will cause 825 * a reply to be generated. Any returned error will be 826 * placed in the event queue. 827 */ 828 xcb_sync_initialize_cookie_t 829 xcb_sync_initialize_unchecked (xcb_connection_t *c, 830 uint8_t desired_major_version, 831 uint8_t desired_minor_version); 832 833 /** 834 * Return the reply 835 * @param c The connection 836 * @param cookie The cookie 837 * @param e The xcb_generic_error_t supplied 838 * 839 * Returns the reply of the request asked by 840 * 841 * The parameter @p e supplied to this function must be NULL if 842 * xcb_sync_initialize_unchecked(). is used. 843 * Otherwise, it stores the error if any. 844 * 845 * The returned value must be freed by the caller using free(). 846 */ 847 xcb_sync_initialize_reply_t * 848 xcb_sync_initialize_reply (xcb_connection_t *c, 849 xcb_sync_initialize_cookie_t cookie /**< */, 850 xcb_generic_error_t **e); 851 852 int 853 xcb_sync_list_system_counters_sizeof (const void *_buffer); 854 855 /** 856 * 857 * @param c The connection 858 * @return A cookie 859 * 860 * Delivers a request to the X server. 861 * 862 */ 863 xcb_sync_list_system_counters_cookie_t 864 xcb_sync_list_system_counters (xcb_connection_t *c); 865 866 /** 867 * 868 * @param c The connection 869 * @return A cookie 870 * 871 * Delivers a request to the X server. 872 * 873 * This form can be used only if the request will cause 874 * a reply to be generated. Any returned error will be 875 * placed in the event queue. 876 */ 877 xcb_sync_list_system_counters_cookie_t 878 xcb_sync_list_system_counters_unchecked (xcb_connection_t *c); 879 880 int 881 xcb_sync_list_system_counters_counters_length (const xcb_sync_list_system_counters_reply_t *R); 882 883 xcb_sync_systemcounter_iterator_t 884 xcb_sync_list_system_counters_counters_iterator (const xcb_sync_list_system_counters_reply_t *R); 885 886 /** 887 * Return the reply 888 * @param c The connection 889 * @param cookie The cookie 890 * @param e The xcb_generic_error_t supplied 891 * 892 * Returns the reply of the request asked by 893 * 894 * The parameter @p e supplied to this function must be NULL if 895 * xcb_sync_list_system_counters_unchecked(). is used. 896 * Otherwise, it stores the error if any. 897 * 898 * The returned value must be freed by the caller using free(). 899 */ 900 xcb_sync_list_system_counters_reply_t * 901 xcb_sync_list_system_counters_reply (xcb_connection_t *c, 902 xcb_sync_list_system_counters_cookie_t cookie /**< */, 903 xcb_generic_error_t **e); 904 905 /** 906 * 907 * @param c The connection 908 * @return A cookie 909 * 910 * Delivers a request to the X server. 911 * 912 * This form can be used only if the request will not cause 913 * a reply to be generated. Any returned error will be 914 * saved for handling by xcb_request_check(). 915 */ 916 xcb_void_cookie_t 917 xcb_sync_create_counter_checked (xcb_connection_t *c, 918 xcb_sync_counter_t id, 919 xcb_sync_int64_t initial_value); 920 921 /** 922 * 923 * @param c The connection 924 * @return A cookie 925 * 926 * Delivers a request to the X server. 927 * 928 */ 929 xcb_void_cookie_t 930 xcb_sync_create_counter (xcb_connection_t *c, 931 xcb_sync_counter_t id, 932 xcb_sync_int64_t initial_value); 933 934 /** 935 * 936 * @param c The connection 937 * @return A cookie 938 * 939 * Delivers a request to the X server. 940 * 941 * This form can be used only if the request will not cause 942 * a reply to be generated. Any returned error will be 943 * saved for handling by xcb_request_check(). 944 */ 945 xcb_void_cookie_t 946 xcb_sync_destroy_counter_checked (xcb_connection_t *c, 947 xcb_sync_counter_t counter); 948 949 /** 950 * 951 * @param c The connection 952 * @return A cookie 953 * 954 * Delivers a request to the X server. 955 * 956 */ 957 xcb_void_cookie_t 958 xcb_sync_destroy_counter (xcb_connection_t *c, 959 xcb_sync_counter_t counter); 960 961 /** 962 * 963 * @param c The connection 964 * @return A cookie 965 * 966 * Delivers a request to the X server. 967 * 968 */ 969 xcb_sync_query_counter_cookie_t 970 xcb_sync_query_counter (xcb_connection_t *c, 971 xcb_sync_counter_t counter); 972 973 /** 974 * 975 * @param c The connection 976 * @return A cookie 977 * 978 * Delivers a request to the X server. 979 * 980 * This form can be used only if the request will cause 981 * a reply to be generated. Any returned error will be 982 * placed in the event queue. 983 */ 984 xcb_sync_query_counter_cookie_t 985 xcb_sync_query_counter_unchecked (xcb_connection_t *c, 986 xcb_sync_counter_t counter); 987 988 /** 989 * Return the reply 990 * @param c The connection 991 * @param cookie The cookie 992 * @param e The xcb_generic_error_t supplied 993 * 994 * Returns the reply of the request asked by 995 * 996 * The parameter @p e supplied to this function must be NULL if 997 * xcb_sync_query_counter_unchecked(). is used. 998 * Otherwise, it stores the error if any. 999 * 1000 * The returned value must be freed by the caller using free(). 1001 */ 1002 xcb_sync_query_counter_reply_t * 1003 xcb_sync_query_counter_reply (xcb_connection_t *c, 1004 xcb_sync_query_counter_cookie_t cookie /**< */, 1005 xcb_generic_error_t **e); 1006 1007 int 1008 xcb_sync_await_sizeof (const void *_buffer, 1009 uint32_t wait_list_len); 1010 1011 /** 1012 * 1013 * @param c The connection 1014 * @return A cookie 1015 * 1016 * Delivers a request to the X server. 1017 * 1018 * This form can be used only if the request will not cause 1019 * a reply to be generated. Any returned error will be 1020 * saved for handling by xcb_request_check(). 1021 */ 1022 xcb_void_cookie_t 1023 xcb_sync_await_checked (xcb_connection_t *c, 1024 uint32_t wait_list_len, 1025 const xcb_sync_waitcondition_t *wait_list); 1026 1027 /** 1028 * 1029 * @param c The connection 1030 * @return A cookie 1031 * 1032 * Delivers a request to the X server. 1033 * 1034 */ 1035 xcb_void_cookie_t 1036 xcb_sync_await (xcb_connection_t *c, 1037 uint32_t wait_list_len, 1038 const xcb_sync_waitcondition_t *wait_list); 1039 1040 xcb_sync_waitcondition_t * 1041 xcb_sync_await_wait_list (const xcb_sync_await_request_t *R); 1042 1043 int 1044 xcb_sync_await_wait_list_length (const xcb_sync_await_request_t *R); 1045 1046 xcb_sync_waitcondition_iterator_t 1047 xcb_sync_await_wait_list_iterator (const xcb_sync_await_request_t *R); 1048 1049 /** 1050 * 1051 * @param c The connection 1052 * @return A cookie 1053 * 1054 * Delivers a request to the X server. 1055 * 1056 * This form can be used only if the request will not cause 1057 * a reply to be generated. Any returned error will be 1058 * saved for handling by xcb_request_check(). 1059 */ 1060 xcb_void_cookie_t 1061 xcb_sync_change_counter_checked (xcb_connection_t *c, 1062 xcb_sync_counter_t counter, 1063 xcb_sync_int64_t amount); 1064 1065 /** 1066 * 1067 * @param c The connection 1068 * @return A cookie 1069 * 1070 * Delivers a request to the X server. 1071 * 1072 */ 1073 xcb_void_cookie_t 1074 xcb_sync_change_counter (xcb_connection_t *c, 1075 xcb_sync_counter_t counter, 1076 xcb_sync_int64_t amount); 1077 1078 /** 1079 * 1080 * @param c The connection 1081 * @return A cookie 1082 * 1083 * Delivers a request to the X server. 1084 * 1085 * This form can be used only if the request will not cause 1086 * a reply to be generated. Any returned error will be 1087 * saved for handling by xcb_request_check(). 1088 */ 1089 xcb_void_cookie_t 1090 xcb_sync_set_counter_checked (xcb_connection_t *c, 1091 xcb_sync_counter_t counter, 1092 xcb_sync_int64_t value); 1093 1094 /** 1095 * 1096 * @param c The connection 1097 * @return A cookie 1098 * 1099 * Delivers a request to the X server. 1100 * 1101 */ 1102 xcb_void_cookie_t 1103 xcb_sync_set_counter (xcb_connection_t *c, 1104 xcb_sync_counter_t counter, 1105 xcb_sync_int64_t value); 1106 1107 int 1108 xcb_sync_create_alarm_value_list_serialize (void **_buffer, 1109 uint32_t value_mask, 1110 const xcb_sync_create_alarm_value_list_t *_aux); 1111 1112 int 1113 xcb_sync_create_alarm_value_list_unpack (const void *_buffer, 1114 uint32_t value_mask, 1115 xcb_sync_create_alarm_value_list_t *_aux); 1116 1117 int 1118 xcb_sync_create_alarm_value_list_sizeof (const void *_buffer, 1119 uint32_t value_mask); 1120 1121 int 1122 xcb_sync_create_alarm_sizeof (const void *_buffer); 1123 1124 /** 1125 * 1126 * @param c The connection 1127 * @return A cookie 1128 * 1129 * Delivers a request to the X server. 1130 * 1131 * This form can be used only if the request will not cause 1132 * a reply to be generated. Any returned error will be 1133 * saved for handling by xcb_request_check(). 1134 */ 1135 xcb_void_cookie_t 1136 xcb_sync_create_alarm_checked (xcb_connection_t *c, 1137 xcb_sync_alarm_t id, 1138 uint32_t value_mask, 1139 const void *value_list); 1140 1141 /** 1142 * 1143 * @param c The connection 1144 * @return A cookie 1145 * 1146 * Delivers a request to the X server. 1147 * 1148 */ 1149 xcb_void_cookie_t 1150 xcb_sync_create_alarm (xcb_connection_t *c, 1151 xcb_sync_alarm_t id, 1152 uint32_t value_mask, 1153 const void *value_list); 1154 1155 /** 1156 * 1157 * @param c The connection 1158 * @return A cookie 1159 * 1160 * Delivers a request to the X server. 1161 * 1162 * This form can be used only if the request will not cause 1163 * a reply to be generated. Any returned error will be 1164 * saved for handling by xcb_request_check(). 1165 */ 1166 xcb_void_cookie_t 1167 xcb_sync_create_alarm_aux_checked (xcb_connection_t *c, 1168 xcb_sync_alarm_t id, 1169 uint32_t value_mask, 1170 const xcb_sync_create_alarm_value_list_t *value_list); 1171 1172 /** 1173 * 1174 * @param c The connection 1175 * @return A cookie 1176 * 1177 * Delivers a request to the X server. 1178 * 1179 */ 1180 xcb_void_cookie_t 1181 xcb_sync_create_alarm_aux (xcb_connection_t *c, 1182 xcb_sync_alarm_t id, 1183 uint32_t value_mask, 1184 const xcb_sync_create_alarm_value_list_t *value_list); 1185 1186 void * 1187 xcb_sync_create_alarm_value_list (const xcb_sync_create_alarm_request_t *R); 1188 1189 int 1190 xcb_sync_change_alarm_value_list_serialize (void **_buffer, 1191 uint32_t value_mask, 1192 const xcb_sync_change_alarm_value_list_t *_aux); 1193 1194 int 1195 xcb_sync_change_alarm_value_list_unpack (const void *_buffer, 1196 uint32_t value_mask, 1197 xcb_sync_change_alarm_value_list_t *_aux); 1198 1199 int 1200 xcb_sync_change_alarm_value_list_sizeof (const void *_buffer, 1201 uint32_t value_mask); 1202 1203 int 1204 xcb_sync_change_alarm_sizeof (const void *_buffer); 1205 1206 /** 1207 * 1208 * @param c The connection 1209 * @return A cookie 1210 * 1211 * Delivers a request to the X server. 1212 * 1213 * This form can be used only if the request will not cause 1214 * a reply to be generated. Any returned error will be 1215 * saved for handling by xcb_request_check(). 1216 */ 1217 xcb_void_cookie_t 1218 xcb_sync_change_alarm_checked (xcb_connection_t *c, 1219 xcb_sync_alarm_t id, 1220 uint32_t value_mask, 1221 const void *value_list); 1222 1223 /** 1224 * 1225 * @param c The connection 1226 * @return A cookie 1227 * 1228 * Delivers a request to the X server. 1229 * 1230 */ 1231 xcb_void_cookie_t 1232 xcb_sync_change_alarm (xcb_connection_t *c, 1233 xcb_sync_alarm_t id, 1234 uint32_t value_mask, 1235 const void *value_list); 1236 1237 /** 1238 * 1239 * @param c The connection 1240 * @return A cookie 1241 * 1242 * Delivers a request to the X server. 1243 * 1244 * This form can be used only if the request will not cause 1245 * a reply to be generated. Any returned error will be 1246 * saved for handling by xcb_request_check(). 1247 */ 1248 xcb_void_cookie_t 1249 xcb_sync_change_alarm_aux_checked (xcb_connection_t *c, 1250 xcb_sync_alarm_t id, 1251 uint32_t value_mask, 1252 const xcb_sync_change_alarm_value_list_t *value_list); 1253 1254 /** 1255 * 1256 * @param c The connection 1257 * @return A cookie 1258 * 1259 * Delivers a request to the X server. 1260 * 1261 */ 1262 xcb_void_cookie_t 1263 xcb_sync_change_alarm_aux (xcb_connection_t *c, 1264 xcb_sync_alarm_t id, 1265 uint32_t value_mask, 1266 const xcb_sync_change_alarm_value_list_t *value_list); 1267 1268 void * 1269 xcb_sync_change_alarm_value_list (const xcb_sync_change_alarm_request_t *R); 1270 1271 /** 1272 * 1273 * @param c The connection 1274 * @return A cookie 1275 * 1276 * Delivers a request to the X server. 1277 * 1278 * This form can be used only if the request will not cause 1279 * a reply to be generated. Any returned error will be 1280 * saved for handling by xcb_request_check(). 1281 */ 1282 xcb_void_cookie_t 1283 xcb_sync_destroy_alarm_checked (xcb_connection_t *c, 1284 xcb_sync_alarm_t alarm); 1285 1286 /** 1287 * 1288 * @param c The connection 1289 * @return A cookie 1290 * 1291 * Delivers a request to the X server. 1292 * 1293 */ 1294 xcb_void_cookie_t 1295 xcb_sync_destroy_alarm (xcb_connection_t *c, 1296 xcb_sync_alarm_t alarm); 1297 1298 /** 1299 * 1300 * @param c The connection 1301 * @return A cookie 1302 * 1303 * Delivers a request to the X server. 1304 * 1305 */ 1306 xcb_sync_query_alarm_cookie_t 1307 xcb_sync_query_alarm (xcb_connection_t *c, 1308 xcb_sync_alarm_t alarm); 1309 1310 /** 1311 * 1312 * @param c The connection 1313 * @return A cookie 1314 * 1315 * Delivers a request to the X server. 1316 * 1317 * This form can be used only if the request will cause 1318 * a reply to be generated. Any returned error will be 1319 * placed in the event queue. 1320 */ 1321 xcb_sync_query_alarm_cookie_t 1322 xcb_sync_query_alarm_unchecked (xcb_connection_t *c, 1323 xcb_sync_alarm_t alarm); 1324 1325 /** 1326 * Return the reply 1327 * @param c The connection 1328 * @param cookie The cookie 1329 * @param e The xcb_generic_error_t supplied 1330 * 1331 * Returns the reply of the request asked by 1332 * 1333 * The parameter @p e supplied to this function must be NULL if 1334 * xcb_sync_query_alarm_unchecked(). is used. 1335 * Otherwise, it stores the error if any. 1336 * 1337 * The returned value must be freed by the caller using free(). 1338 */ 1339 xcb_sync_query_alarm_reply_t * 1340 xcb_sync_query_alarm_reply (xcb_connection_t *c, 1341 xcb_sync_query_alarm_cookie_t cookie /**< */, 1342 xcb_generic_error_t **e); 1343 1344 /** 1345 * 1346 * @param c The connection 1347 * @return A cookie 1348 * 1349 * Delivers a request to the X server. 1350 * 1351 * This form can be used only if the request will not cause 1352 * a reply to be generated. Any returned error will be 1353 * saved for handling by xcb_request_check(). 1354 */ 1355 xcb_void_cookie_t 1356 xcb_sync_set_priority_checked (xcb_connection_t *c, 1357 uint32_t id, 1358 int32_t priority); 1359 1360 /** 1361 * 1362 * @param c The connection 1363 * @return A cookie 1364 * 1365 * Delivers a request to the X server. 1366 * 1367 */ 1368 xcb_void_cookie_t 1369 xcb_sync_set_priority (xcb_connection_t *c, 1370 uint32_t id, 1371 int32_t priority); 1372 1373 /** 1374 * 1375 * @param c The connection 1376 * @return A cookie 1377 * 1378 * Delivers a request to the X server. 1379 * 1380 */ 1381 xcb_sync_get_priority_cookie_t 1382 xcb_sync_get_priority (xcb_connection_t *c, 1383 uint32_t id); 1384 1385 /** 1386 * 1387 * @param c The connection 1388 * @return A cookie 1389 * 1390 * Delivers a request to the X server. 1391 * 1392 * This form can be used only if the request will cause 1393 * a reply to be generated. Any returned error will be 1394 * placed in the event queue. 1395 */ 1396 xcb_sync_get_priority_cookie_t 1397 xcb_sync_get_priority_unchecked (xcb_connection_t *c, 1398 uint32_t id); 1399 1400 /** 1401 * Return the reply 1402 * @param c The connection 1403 * @param cookie The cookie 1404 * @param e The xcb_generic_error_t supplied 1405 * 1406 * Returns the reply of the request asked by 1407 * 1408 * The parameter @p e supplied to this function must be NULL if 1409 * xcb_sync_get_priority_unchecked(). is used. 1410 * Otherwise, it stores the error if any. 1411 * 1412 * The returned value must be freed by the caller using free(). 1413 */ 1414 xcb_sync_get_priority_reply_t * 1415 xcb_sync_get_priority_reply (xcb_connection_t *c, 1416 xcb_sync_get_priority_cookie_t cookie /**< */, 1417 xcb_generic_error_t **e); 1418 1419 /** 1420 * 1421 * @param c The connection 1422 * @return A cookie 1423 * 1424 * Delivers a request to the X server. 1425 * 1426 * This form can be used only if the request will not cause 1427 * a reply to be generated. Any returned error will be 1428 * saved for handling by xcb_request_check(). 1429 */ 1430 xcb_void_cookie_t 1431 xcb_sync_create_fence_checked (xcb_connection_t *c, 1432 xcb_drawable_t drawable, 1433 xcb_sync_fence_t fence, 1434 uint8_t initially_triggered); 1435 1436 /** 1437 * 1438 * @param c The connection 1439 * @return A cookie 1440 * 1441 * Delivers a request to the X server. 1442 * 1443 */ 1444 xcb_void_cookie_t 1445 xcb_sync_create_fence (xcb_connection_t *c, 1446 xcb_drawable_t drawable, 1447 xcb_sync_fence_t fence, 1448 uint8_t initially_triggered); 1449 1450 /** 1451 * 1452 * @param c The connection 1453 * @return A cookie 1454 * 1455 * Delivers a request to the X server. 1456 * 1457 * This form can be used only if the request will not cause 1458 * a reply to be generated. Any returned error will be 1459 * saved for handling by xcb_request_check(). 1460 */ 1461 xcb_void_cookie_t 1462 xcb_sync_trigger_fence_checked (xcb_connection_t *c, 1463 xcb_sync_fence_t fence); 1464 1465 /** 1466 * 1467 * @param c The connection 1468 * @return A cookie 1469 * 1470 * Delivers a request to the X server. 1471 * 1472 */ 1473 xcb_void_cookie_t 1474 xcb_sync_trigger_fence (xcb_connection_t *c, 1475 xcb_sync_fence_t fence); 1476 1477 /** 1478 * 1479 * @param c The connection 1480 * @return A cookie 1481 * 1482 * Delivers a request to the X server. 1483 * 1484 * This form can be used only if the request will not cause 1485 * a reply to be generated. Any returned error will be 1486 * saved for handling by xcb_request_check(). 1487 */ 1488 xcb_void_cookie_t 1489 xcb_sync_reset_fence_checked (xcb_connection_t *c, 1490 xcb_sync_fence_t fence); 1491 1492 /** 1493 * 1494 * @param c The connection 1495 * @return A cookie 1496 * 1497 * Delivers a request to the X server. 1498 * 1499 */ 1500 xcb_void_cookie_t 1501 xcb_sync_reset_fence (xcb_connection_t *c, 1502 xcb_sync_fence_t fence); 1503 1504 /** 1505 * 1506 * @param c The connection 1507 * @return A cookie 1508 * 1509 * Delivers a request to the X server. 1510 * 1511 * This form can be used only if the request will not cause 1512 * a reply to be generated. Any returned error will be 1513 * saved for handling by xcb_request_check(). 1514 */ 1515 xcb_void_cookie_t 1516 xcb_sync_destroy_fence_checked (xcb_connection_t *c, 1517 xcb_sync_fence_t fence); 1518 1519 /** 1520 * 1521 * @param c The connection 1522 * @return A cookie 1523 * 1524 * Delivers a request to the X server. 1525 * 1526 */ 1527 xcb_void_cookie_t 1528 xcb_sync_destroy_fence (xcb_connection_t *c, 1529 xcb_sync_fence_t fence); 1530 1531 /** 1532 * 1533 * @param c The connection 1534 * @return A cookie 1535 * 1536 * Delivers a request to the X server. 1537 * 1538 */ 1539 xcb_sync_query_fence_cookie_t 1540 xcb_sync_query_fence (xcb_connection_t *c, 1541 xcb_sync_fence_t fence); 1542 1543 /** 1544 * 1545 * @param c The connection 1546 * @return A cookie 1547 * 1548 * Delivers a request to the X server. 1549 * 1550 * This form can be used only if the request will cause 1551 * a reply to be generated. Any returned error will be 1552 * placed in the event queue. 1553 */ 1554 xcb_sync_query_fence_cookie_t 1555 xcb_sync_query_fence_unchecked (xcb_connection_t *c, 1556 xcb_sync_fence_t fence); 1557 1558 /** 1559 * Return the reply 1560 * @param c The connection 1561 * @param cookie The cookie 1562 * @param e The xcb_generic_error_t supplied 1563 * 1564 * Returns the reply of the request asked by 1565 * 1566 * The parameter @p e supplied to this function must be NULL if 1567 * xcb_sync_query_fence_unchecked(). is used. 1568 * Otherwise, it stores the error if any. 1569 * 1570 * The returned value must be freed by the caller using free(). 1571 */ 1572 xcb_sync_query_fence_reply_t * 1573 xcb_sync_query_fence_reply (xcb_connection_t *c, 1574 xcb_sync_query_fence_cookie_t cookie /**< */, 1575 xcb_generic_error_t **e); 1576 1577 int 1578 xcb_sync_await_fence_sizeof (const void *_buffer, 1579 uint32_t fence_list_len); 1580 1581 /** 1582 * 1583 * @param c The connection 1584 * @return A cookie 1585 * 1586 * Delivers a request to the X server. 1587 * 1588 * This form can be used only if the request will not cause 1589 * a reply to be generated. Any returned error will be 1590 * saved for handling by xcb_request_check(). 1591 */ 1592 xcb_void_cookie_t 1593 xcb_sync_await_fence_checked (xcb_connection_t *c, 1594 uint32_t fence_list_len, 1595 const xcb_sync_fence_t *fence_list); 1596 1597 /** 1598 * 1599 * @param c The connection 1600 * @return A cookie 1601 * 1602 * Delivers a request to the X server. 1603 * 1604 */ 1605 xcb_void_cookie_t 1606 xcb_sync_await_fence (xcb_connection_t *c, 1607 uint32_t fence_list_len, 1608 const xcb_sync_fence_t *fence_list); 1609 1610 xcb_sync_fence_t * 1611 xcb_sync_await_fence_fence_list (const xcb_sync_await_fence_request_t *R); 1612 1613 int 1614 xcb_sync_await_fence_fence_list_length (const xcb_sync_await_fence_request_t *R); 1615 1616 xcb_generic_iterator_t 1617 xcb_sync_await_fence_fence_list_end (const xcb_sync_await_fence_request_t *R); 1618 1619 1620 #ifdef __cplusplus 1621 } 1622 #endif 1623 1624 #endif 1625 1626 /** 1627 * @} 1628 */ 1629