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 19extern "C" { 20#endif 21 22#define XCB_SYNC_MAJOR_VERSION 3 23#define XCB_SYNC_MINOR_VERSION 1 24 25extern xcb_extension_t xcb_sync_id; 26 27typedef uint32_t xcb_sync_alarm_t; 28 29/** 30 * @brief xcb_sync_alarm_iterator_t 31 **/ 32typedef 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 38typedef 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 44typedef uint32_t xcb_sync_counter_t; 45 46/** 47 * @brief xcb_sync_counter_iterator_t 48 **/ 49typedef 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 55typedef uint32_t xcb_sync_fence_t; 56 57/** 58 * @brief xcb_sync_fence_iterator_t 59 **/ 60typedef 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 66typedef 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 73typedef enum xcb_sync_valuetype_t { 74 XCB_SYNC_VALUETYPE_ABSOLUTE = 0, 75 XCB_SYNC_VALUETYPE_RELATIVE = 1 76} xcb_sync_valuetype_t; 77 78typedef 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 **/ 90typedef 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 **/ 98typedef 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 **/ 107typedef 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 **/ 116typedef 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 **/ 125typedef 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 **/ 135typedef 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 **/ 144typedef 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 **/ 152typedef 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 **/ 164typedef 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 **/ 179typedef 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 **/ 191typedef 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 **/ 201typedef 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 **/ 212typedef 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 **/ 225typedef 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 **/ 235typedef 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 **/ 244typedef 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 **/ 259typedef 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 **/ 273typedef 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 **/ 283typedef 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 **/ 293typedef 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 **/ 303typedef 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 **/ 317typedef 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 **/ 329typedef 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 **/ 343typedef 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 **/ 354typedef 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 **/ 369typedef 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 **/ 380typedef 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 **/ 395typedef 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 **/ 409typedef 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 **/ 419typedef 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 **/ 429typedef 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 **/ 439typedef 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 **/ 457typedef 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 **/ 468typedef 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 **/ 478typedef 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 **/ 488typedef 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 **/ 502typedef 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 **/ 517typedef 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 **/ 530typedef 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 **/ 543typedef 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 **/ 553typedef 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 **/ 563typedef 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 **/ 573typedef 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 **/ 588typedef 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 **/ 600typedef 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 **/ 619typedef 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 */ 639void 640xcb_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 */ 651xcb_generic_iterator_t 652xcb_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 */ 662void 663xcb_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 */ 674xcb_generic_iterator_t 675xcb_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 */ 685void 686xcb_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 */ 697xcb_generic_iterator_t 698xcb_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 */ 708void 709xcb_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 */ 720xcb_generic_iterator_t 721xcb_sync_int64_end (xcb_sync_int64_iterator_t i); 722 723int 724xcb_sync_systemcounter_sizeof (const void *_buffer); 725 726char * 727xcb_sync_systemcounter_name (const xcb_sync_systemcounter_t *R); 728 729int 730xcb_sync_systemcounter_name_length (const xcb_sync_systemcounter_t *R); 731 732xcb_generic_iterator_t 733xcb_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 */ 743void 744xcb_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 */ 755xcb_generic_iterator_t 756xcb_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 */ 766void 767xcb_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 */ 778xcb_generic_iterator_t 779xcb_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 */ 789void 790xcb_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 */ 801xcb_generic_iterator_t 802xcb_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 */ 812xcb_sync_initialize_cookie_t 813xcb_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 */ 828xcb_sync_initialize_cookie_t 829xcb_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 */ 847xcb_sync_initialize_reply_t * 848xcb_sync_initialize_reply (xcb_connection_t *c, 849 xcb_sync_initialize_cookie_t cookie /**< */, 850 xcb_generic_error_t **e); 851 852int 853xcb_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 */ 863xcb_sync_list_system_counters_cookie_t 864xcb_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 */ 877xcb_sync_list_system_counters_cookie_t 878xcb_sync_list_system_counters_unchecked (xcb_connection_t *c); 879 880int 881xcb_sync_list_system_counters_counters_length (const xcb_sync_list_system_counters_reply_t *R); 882 883xcb_sync_systemcounter_iterator_t 884xcb_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 */ 900xcb_sync_list_system_counters_reply_t * 901xcb_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 */ 916xcb_void_cookie_t 917xcb_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 */ 929xcb_void_cookie_t 930xcb_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 */ 945xcb_void_cookie_t 946xcb_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 */ 957xcb_void_cookie_t 958xcb_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 */ 969xcb_sync_query_counter_cookie_t 970xcb_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 */ 984xcb_sync_query_counter_cookie_t 985xcb_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 */ 1002xcb_sync_query_counter_reply_t * 1003xcb_sync_query_counter_reply (xcb_connection_t *c, 1004 xcb_sync_query_counter_cookie_t cookie /**< */, 1005 xcb_generic_error_t **e); 1006 1007int 1008xcb_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 */ 1022xcb_void_cookie_t 1023xcb_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 */ 1035xcb_void_cookie_t 1036xcb_sync_await (xcb_connection_t *c, 1037 uint32_t wait_list_len, 1038 const xcb_sync_waitcondition_t *wait_list); 1039 1040xcb_sync_waitcondition_t * 1041xcb_sync_await_wait_list (const xcb_sync_await_request_t *R); 1042 1043int 1044xcb_sync_await_wait_list_length (const xcb_sync_await_request_t *R); 1045 1046xcb_sync_waitcondition_iterator_t 1047xcb_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 */ 1060xcb_void_cookie_t 1061xcb_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 */ 1073xcb_void_cookie_t 1074xcb_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 */ 1089xcb_void_cookie_t 1090xcb_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 */ 1102xcb_void_cookie_t 1103xcb_sync_set_counter (xcb_connection_t *c, 1104 xcb_sync_counter_t counter, 1105 xcb_sync_int64_t value); 1106 1107int 1108xcb_sync_create_alarm_value_list_serialize (void **_buffer, 1109 uint32_t value_mask, 1110 const xcb_sync_create_alarm_value_list_t *_aux); 1111 1112int 1113xcb_sync_create_alarm_value_list_unpack (const void *_buffer, 1114 uint32_t value_mask, 1115 xcb_sync_create_alarm_value_list_t *_aux); 1116 1117int 1118xcb_sync_create_alarm_value_list_sizeof (const void *_buffer, 1119 uint32_t value_mask); 1120 1121int 1122xcb_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 */ 1135xcb_void_cookie_t 1136xcb_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 */ 1149xcb_void_cookie_t 1150xcb_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 */ 1166xcb_void_cookie_t 1167xcb_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 */ 1180xcb_void_cookie_t 1181xcb_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 1186void * 1187xcb_sync_create_alarm_value_list (const xcb_sync_create_alarm_request_t *R); 1188 1189int 1190xcb_sync_change_alarm_value_list_serialize (void **_buffer, 1191 uint32_t value_mask, 1192 const xcb_sync_change_alarm_value_list_t *_aux); 1193 1194int 1195xcb_sync_change_alarm_value_list_unpack (const void *_buffer, 1196 uint32_t value_mask, 1197 xcb_sync_change_alarm_value_list_t *_aux); 1198 1199int 1200xcb_sync_change_alarm_value_list_sizeof (const void *_buffer, 1201 uint32_t value_mask); 1202 1203int 1204xcb_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 */ 1217xcb_void_cookie_t 1218xcb_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 */ 1231xcb_void_cookie_t 1232xcb_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 */ 1248xcb_void_cookie_t 1249xcb_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 */ 1262xcb_void_cookie_t 1263xcb_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 1268void * 1269xcb_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 */ 1282xcb_void_cookie_t 1283xcb_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 */ 1294xcb_void_cookie_t 1295xcb_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 */ 1306xcb_sync_query_alarm_cookie_t 1307xcb_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 */ 1321xcb_sync_query_alarm_cookie_t 1322xcb_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 */ 1339xcb_sync_query_alarm_reply_t * 1340xcb_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 */ 1355xcb_void_cookie_t 1356xcb_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 */ 1368xcb_void_cookie_t 1369xcb_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 */ 1381xcb_sync_get_priority_cookie_t 1382xcb_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 */ 1396xcb_sync_get_priority_cookie_t 1397xcb_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 */ 1414xcb_sync_get_priority_reply_t * 1415xcb_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 */ 1430xcb_void_cookie_t 1431xcb_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 */ 1444xcb_void_cookie_t 1445xcb_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 */ 1461xcb_void_cookie_t 1462xcb_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 */ 1473xcb_void_cookie_t 1474xcb_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 */ 1488xcb_void_cookie_t 1489xcb_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 */ 1500xcb_void_cookie_t 1501xcb_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 */ 1515xcb_void_cookie_t 1516xcb_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 */ 1527xcb_void_cookie_t 1528xcb_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 */ 1539xcb_sync_query_fence_cookie_t 1540xcb_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 */ 1554xcb_sync_query_fence_cookie_t 1555xcb_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 */ 1572xcb_sync_query_fence_reply_t * 1573xcb_sync_query_fence_reply (xcb_connection_t *c, 1574 xcb_sync_query_fence_cookie_t cookie /**< */, 1575 xcb_generic_error_t **e); 1576 1577int 1578xcb_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 */ 1592xcb_void_cookie_t 1593xcb_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 */ 1605xcb_void_cookie_t 1606xcb_sync_await_fence (xcb_connection_t *c, 1607 uint32_t fence_list_len, 1608 const xcb_sync_fence_t *fence_list); 1609 1610xcb_sync_fence_t * 1611xcb_sync_await_fence_fence_list (const xcb_sync_await_fence_request_t *R); 1612 1613int 1614xcb_sync_await_fence_fence_list_length (const xcb_sync_await_fence_request_t *R); 1615 1616xcb_generic_iterator_t 1617xcb_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