Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:41

0001 /*
0002  * This file generated automatically from sync.xml by c_client.py.
0003  * Edit at your peril.
0004  */
0005 
0006 /**
0007  * @defgroup XCB_Sync_API XCB Sync API
0008  * @brief Sync XCB Protocol Implementation.
0009  * @{
0010  **/
0011 
0012 #ifndef __SYNC_H
0013 #define __SYNC_H
0014 
0015 #include "xcb.h"
0016 #include "xproto.h"
0017 
0018 #ifdef __cplusplus
0019 extern "C" {
0020 #endif
0021 
0022 #define XCB_SYNC_MAJOR_VERSION 3
0023 #define XCB_SYNC_MINOR_VERSION 1
0024 
0025 extern xcb_extension_t xcb_sync_id;
0026 
0027 typedef uint32_t xcb_sync_alarm_t;
0028 
0029 /**
0030  * @brief xcb_sync_alarm_iterator_t
0031  **/
0032 typedef struct xcb_sync_alarm_iterator_t {
0033     xcb_sync_alarm_t *data;
0034     int               rem;
0035     int               index;
0036 } xcb_sync_alarm_iterator_t;
0037 
0038 typedef enum xcb_sync_alarmstate_t {
0039     XCB_SYNC_ALARMSTATE_ACTIVE = 0,
0040     XCB_SYNC_ALARMSTATE_INACTIVE = 1,
0041     XCB_SYNC_ALARMSTATE_DESTROYED = 2
0042 } xcb_sync_alarmstate_t;
0043 
0044 typedef uint32_t xcb_sync_counter_t;
0045 
0046 /**
0047  * @brief xcb_sync_counter_iterator_t
0048  **/
0049 typedef struct xcb_sync_counter_iterator_t {
0050     xcb_sync_counter_t *data;
0051     int                 rem;
0052     int                 index;
0053 } xcb_sync_counter_iterator_t;
0054 
0055 typedef uint32_t xcb_sync_fence_t;
0056 
0057 /**
0058  * @brief xcb_sync_fence_iterator_t
0059  **/
0060 typedef struct xcb_sync_fence_iterator_t {
0061     xcb_sync_fence_t *data;
0062     int               rem;
0063     int               index;
0064 } xcb_sync_fence_iterator_t;
0065 
0066 typedef enum xcb_sync_testtype_t {
0067     XCB_SYNC_TESTTYPE_POSITIVE_TRANSITION = 0,
0068     XCB_SYNC_TESTTYPE_NEGATIVE_TRANSITION = 1,
0069     XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON = 2,
0070     XCB_SYNC_TESTTYPE_NEGATIVE_COMPARISON = 3
0071 } xcb_sync_testtype_t;
0072 
0073 typedef enum xcb_sync_valuetype_t {
0074     XCB_SYNC_VALUETYPE_ABSOLUTE = 0,
0075     XCB_SYNC_VALUETYPE_RELATIVE = 1
0076 } xcb_sync_valuetype_t;
0077 
0078 typedef enum xcb_sync_ca_t {
0079     XCB_SYNC_CA_COUNTER = 1,
0080     XCB_SYNC_CA_VALUE_TYPE = 2,
0081     XCB_SYNC_CA_VALUE = 4,
0082     XCB_SYNC_CA_TEST_TYPE = 8,
0083     XCB_SYNC_CA_DELTA = 16,
0084     XCB_SYNC_CA_EVENTS = 32
0085 } xcb_sync_ca_t;
0086 
0087 /**
0088  * @brief xcb_sync_int64_t
0089  **/
0090 typedef struct xcb_sync_int64_t {
0091     int32_t  hi;
0092     uint32_t lo;
0093 } xcb_sync_int64_t;
0094 
0095 /**
0096  * @brief xcb_sync_int64_iterator_t
0097  **/
0098 typedef struct xcb_sync_int64_iterator_t {
0099     xcb_sync_int64_t *data;
0100     int               rem;
0101     int               index;
0102 } xcb_sync_int64_iterator_t;
0103 
0104 /**
0105  * @brief xcb_sync_systemcounter_t
0106  **/
0107 typedef struct xcb_sync_systemcounter_t {
0108     xcb_sync_counter_t counter;
0109     xcb_sync_int64_t   resolution;
0110     uint16_t           name_len;
0111 } xcb_sync_systemcounter_t;
0112 
0113 /**
0114  * @brief xcb_sync_systemcounter_iterator_t
0115  **/
0116 typedef struct xcb_sync_systemcounter_iterator_t {
0117     xcb_sync_systemcounter_t *data;
0118     int                       rem;
0119     int                       index;
0120 } xcb_sync_systemcounter_iterator_t;
0121 
0122 /**
0123  * @brief xcb_sync_trigger_t
0124  **/
0125 typedef struct xcb_sync_trigger_t {
0126     xcb_sync_counter_t counter;
0127     uint32_t           wait_type;
0128     xcb_sync_int64_t   wait_value;
0129     uint32_t           test_type;
0130 } xcb_sync_trigger_t;
0131 
0132 /**
0133  * @brief xcb_sync_trigger_iterator_t
0134  **/
0135 typedef struct xcb_sync_trigger_iterator_t {
0136     xcb_sync_trigger_t *data;
0137     int                 rem;
0138     int                 index;
0139 } xcb_sync_trigger_iterator_t;
0140 
0141 /**
0142  * @brief xcb_sync_waitcondition_t
0143  **/
0144 typedef struct xcb_sync_waitcondition_t {
0145     xcb_sync_trigger_t trigger;
0146     xcb_sync_int64_t   event_threshold;
0147 } xcb_sync_waitcondition_t;
0148 
0149 /**
0150  * @brief xcb_sync_waitcondition_iterator_t
0151  **/
0152 typedef struct xcb_sync_waitcondition_iterator_t {
0153     xcb_sync_waitcondition_t *data;
0154     int                       rem;
0155     int                       index;
0156 } xcb_sync_waitcondition_iterator_t;
0157 
0158 /** Opcode for xcb_sync_counter. */
0159 #define XCB_SYNC_COUNTER 0
0160 
0161 /**
0162  * @brief xcb_sync_counter_error_t
0163  **/
0164 typedef struct xcb_sync_counter_error_t {
0165     uint8_t  response_type;
0166     uint8_t  error_code;
0167     uint16_t sequence;
0168     uint32_t bad_counter;
0169     uint16_t minor_opcode;
0170     uint8_t  major_opcode;
0171 } xcb_sync_counter_error_t;
0172 
0173 /** Opcode for xcb_sync_alarm. */
0174 #define XCB_SYNC_ALARM 1
0175 
0176 /**
0177  * @brief xcb_sync_alarm_error_t
0178  **/
0179 typedef struct xcb_sync_alarm_error_t {
0180     uint8_t  response_type;
0181     uint8_t  error_code;
0182     uint16_t sequence;
0183     uint32_t bad_alarm;
0184     uint16_t minor_opcode;
0185     uint8_t  major_opcode;
0186 } xcb_sync_alarm_error_t;
0187 
0188 /**
0189  * @brief xcb_sync_initialize_cookie_t
0190  **/
0191 typedef struct xcb_sync_initialize_cookie_t {
0192     unsigned int sequence;
0193 } xcb_sync_initialize_cookie_t;
0194 
0195 /** Opcode for xcb_sync_initialize. */
0196 #define XCB_SYNC_INITIALIZE 0
0197 
0198 /**
0199  * @brief xcb_sync_initialize_request_t
0200  **/
0201 typedef struct xcb_sync_initialize_request_t {
0202     uint8_t  major_opcode;
0203     uint8_t  minor_opcode;
0204     uint16_t length;
0205     uint8_t  desired_major_version;
0206     uint8_t  desired_minor_version;
0207 } xcb_sync_initialize_request_t;
0208 
0209 /**
0210  * @brief xcb_sync_initialize_reply_t
0211  **/
0212 typedef struct xcb_sync_initialize_reply_t {
0213     uint8_t  response_type;
0214     uint8_t  pad0;
0215     uint16_t sequence;
0216     uint32_t length;
0217     uint8_t  major_version;
0218     uint8_t  minor_version;
0219     uint8_t  pad1[22];
0220 } xcb_sync_initialize_reply_t;
0221 
0222 /**
0223  * @brief xcb_sync_list_system_counters_cookie_t
0224  **/
0225 typedef struct xcb_sync_list_system_counters_cookie_t {
0226     unsigned int sequence;
0227 } xcb_sync_list_system_counters_cookie_t;
0228 
0229 /** Opcode for xcb_sync_list_system_counters. */
0230 #define XCB_SYNC_LIST_SYSTEM_COUNTERS 1
0231 
0232 /**
0233  * @brief xcb_sync_list_system_counters_request_t
0234  **/
0235 typedef struct xcb_sync_list_system_counters_request_t {
0236     uint8_t  major_opcode;
0237     uint8_t  minor_opcode;
0238     uint16_t length;
0239 } xcb_sync_list_system_counters_request_t;
0240 
0241 /**
0242  * @brief xcb_sync_list_system_counters_reply_t
0243  **/
0244 typedef struct xcb_sync_list_system_counters_reply_t {
0245     uint8_t  response_type;
0246     uint8_t  pad0;
0247     uint16_t sequence;
0248     uint32_t length;
0249     uint32_t counters_len;
0250     uint8_t  pad1[20];
0251 } xcb_sync_list_system_counters_reply_t;
0252 
0253 /** Opcode for xcb_sync_create_counter. */
0254 #define XCB_SYNC_CREATE_COUNTER 2
0255 
0256 /**
0257  * @brief xcb_sync_create_counter_request_t
0258  **/
0259 typedef struct xcb_sync_create_counter_request_t {
0260     uint8_t            major_opcode;
0261     uint8_t            minor_opcode;
0262     uint16_t           length;
0263     xcb_sync_counter_t id;
0264     xcb_sync_int64_t   initial_value;
0265 } xcb_sync_create_counter_request_t;
0266 
0267 /** Opcode for xcb_sync_destroy_counter. */
0268 #define XCB_SYNC_DESTROY_COUNTER 6
0269 
0270 /**
0271  * @brief xcb_sync_destroy_counter_request_t
0272  **/
0273 typedef struct xcb_sync_destroy_counter_request_t {
0274     uint8_t            major_opcode;
0275     uint8_t            minor_opcode;
0276     uint16_t           length;
0277     xcb_sync_counter_t counter;
0278 } xcb_sync_destroy_counter_request_t;
0279 
0280 /**
0281  * @brief xcb_sync_query_counter_cookie_t
0282  **/
0283 typedef struct xcb_sync_query_counter_cookie_t {
0284     unsigned int sequence;
0285 } xcb_sync_query_counter_cookie_t;
0286 
0287 /** Opcode for xcb_sync_query_counter. */
0288 #define XCB_SYNC_QUERY_COUNTER 5
0289 
0290 /**
0291  * @brief xcb_sync_query_counter_request_t
0292  **/
0293 typedef struct xcb_sync_query_counter_request_t {
0294     uint8_t            major_opcode;
0295     uint8_t            minor_opcode;
0296     uint16_t           length;
0297     xcb_sync_counter_t counter;
0298 } xcb_sync_query_counter_request_t;
0299 
0300 /**
0301  * @brief xcb_sync_query_counter_reply_t
0302  **/
0303 typedef struct xcb_sync_query_counter_reply_t {
0304     uint8_t          response_type;
0305     uint8_t          pad0;
0306     uint16_t         sequence;
0307     uint32_t         length;
0308     xcb_sync_int64_t counter_value;
0309 } xcb_sync_query_counter_reply_t;
0310 
0311 /** Opcode for xcb_sync_await. */
0312 #define XCB_SYNC_AWAIT 7
0313 
0314 /**
0315  * @brief xcb_sync_await_request_t
0316  **/
0317 typedef struct xcb_sync_await_request_t {
0318     uint8_t  major_opcode;
0319     uint8_t  minor_opcode;
0320     uint16_t length;
0321 } xcb_sync_await_request_t;
0322 
0323 /** Opcode for xcb_sync_change_counter. */
0324 #define XCB_SYNC_CHANGE_COUNTER 4
0325 
0326 /**
0327  * @brief xcb_sync_change_counter_request_t
0328  **/
0329 typedef struct xcb_sync_change_counter_request_t {
0330     uint8_t            major_opcode;
0331     uint8_t            minor_opcode;
0332     uint16_t           length;
0333     xcb_sync_counter_t counter;
0334     xcb_sync_int64_t   amount;
0335 } xcb_sync_change_counter_request_t;
0336 
0337 /** Opcode for xcb_sync_set_counter. */
0338 #define XCB_SYNC_SET_COUNTER 3
0339 
0340 /**
0341  * @brief xcb_sync_set_counter_request_t
0342  **/
0343 typedef struct xcb_sync_set_counter_request_t {
0344     uint8_t            major_opcode;
0345     uint8_t            minor_opcode;
0346     uint16_t           length;
0347     xcb_sync_counter_t counter;
0348     xcb_sync_int64_t   value;
0349 } xcb_sync_set_counter_request_t;
0350 
0351 /**
0352  * @brief xcb_sync_create_alarm_value_list_t
0353  **/
0354 typedef struct xcb_sync_create_alarm_value_list_t {
0355     xcb_sync_counter_t counter;
0356     uint32_t           valueType;
0357     xcb_sync_int64_t   value;
0358     uint32_t           testType;
0359     xcb_sync_int64_t   delta;
0360     uint32_t           events;
0361 } xcb_sync_create_alarm_value_list_t;
0362 
0363 /** Opcode for xcb_sync_create_alarm. */
0364 #define XCB_SYNC_CREATE_ALARM 8
0365 
0366 /**
0367  * @brief xcb_sync_create_alarm_request_t
0368  **/
0369 typedef struct xcb_sync_create_alarm_request_t {
0370     uint8_t          major_opcode;
0371     uint8_t          minor_opcode;
0372     uint16_t         length;
0373     xcb_sync_alarm_t id;
0374     uint32_t         value_mask;
0375 } xcb_sync_create_alarm_request_t;
0376 
0377 /**
0378  * @brief xcb_sync_change_alarm_value_list_t
0379  **/
0380 typedef struct xcb_sync_change_alarm_value_list_t {
0381     xcb_sync_counter_t counter;
0382     uint32_t           valueType;
0383     xcb_sync_int64_t   value;
0384     uint32_t           testType;
0385     xcb_sync_int64_t   delta;
0386     uint32_t           events;
0387 } xcb_sync_change_alarm_value_list_t;
0388 
0389 /** Opcode for xcb_sync_change_alarm. */
0390 #define XCB_SYNC_CHANGE_ALARM 9
0391 
0392 /**
0393  * @brief xcb_sync_change_alarm_request_t
0394  **/
0395 typedef struct xcb_sync_change_alarm_request_t {
0396     uint8_t          major_opcode;
0397     uint8_t          minor_opcode;
0398     uint16_t         length;
0399     xcb_sync_alarm_t id;
0400     uint32_t         value_mask;
0401 } xcb_sync_change_alarm_request_t;
0402 
0403 /** Opcode for xcb_sync_destroy_alarm. */
0404 #define XCB_SYNC_DESTROY_ALARM 11
0405 
0406 /**
0407  * @brief xcb_sync_destroy_alarm_request_t
0408  **/
0409 typedef struct xcb_sync_destroy_alarm_request_t {
0410     uint8_t          major_opcode;
0411     uint8_t          minor_opcode;
0412     uint16_t         length;
0413     xcb_sync_alarm_t alarm;
0414 } xcb_sync_destroy_alarm_request_t;
0415 
0416 /**
0417  * @brief xcb_sync_query_alarm_cookie_t
0418  **/
0419 typedef struct xcb_sync_query_alarm_cookie_t {
0420     unsigned int sequence;
0421 } xcb_sync_query_alarm_cookie_t;
0422 
0423 /** Opcode for xcb_sync_query_alarm. */
0424 #define XCB_SYNC_QUERY_ALARM 10
0425 
0426 /**
0427  * @brief xcb_sync_query_alarm_request_t
0428  **/
0429 typedef struct xcb_sync_query_alarm_request_t {
0430     uint8_t          major_opcode;
0431     uint8_t          minor_opcode;
0432     uint16_t         length;
0433     xcb_sync_alarm_t alarm;
0434 } xcb_sync_query_alarm_request_t;
0435 
0436 /**
0437  * @brief xcb_sync_query_alarm_reply_t
0438  **/
0439 typedef struct xcb_sync_query_alarm_reply_t {
0440     uint8_t            response_type;
0441     uint8_t            pad0;
0442     uint16_t           sequence;
0443     uint32_t           length;
0444     xcb_sync_trigger_t trigger;
0445     xcb_sync_int64_t   delta;
0446     uint8_t            events;
0447     uint8_t            state;
0448     uint8_t            pad1[2];
0449 } xcb_sync_query_alarm_reply_t;
0450 
0451 /** Opcode for xcb_sync_set_priority. */
0452 #define XCB_SYNC_SET_PRIORITY 12
0453 
0454 /**
0455  * @brief xcb_sync_set_priority_request_t
0456  **/
0457 typedef struct xcb_sync_set_priority_request_t {
0458     uint8_t  major_opcode;
0459     uint8_t  minor_opcode;
0460     uint16_t length;
0461     uint32_t id;
0462     int32_t  priority;
0463 } xcb_sync_set_priority_request_t;
0464 
0465 /**
0466  * @brief xcb_sync_get_priority_cookie_t
0467  **/
0468 typedef struct xcb_sync_get_priority_cookie_t {
0469     unsigned int sequence;
0470 } xcb_sync_get_priority_cookie_t;
0471 
0472 /** Opcode for xcb_sync_get_priority. */
0473 #define XCB_SYNC_GET_PRIORITY 13
0474 
0475 /**
0476  * @brief xcb_sync_get_priority_request_t
0477  **/
0478 typedef struct xcb_sync_get_priority_request_t {
0479     uint8_t  major_opcode;
0480     uint8_t  minor_opcode;
0481     uint16_t length;
0482     uint32_t id;
0483 } xcb_sync_get_priority_request_t;
0484 
0485 /**
0486  * @brief xcb_sync_get_priority_reply_t
0487  **/
0488 typedef struct xcb_sync_get_priority_reply_t {
0489     uint8_t  response_type;
0490     uint8_t  pad0;
0491     uint16_t sequence;
0492     uint32_t length;
0493     int32_t  priority;
0494 } xcb_sync_get_priority_reply_t;
0495 
0496 /** Opcode for xcb_sync_create_fence. */
0497 #define XCB_SYNC_CREATE_FENCE 14
0498 
0499 /**
0500  * @brief xcb_sync_create_fence_request_t
0501  **/
0502 typedef struct xcb_sync_create_fence_request_t {
0503     uint8_t          major_opcode;
0504     uint8_t          minor_opcode;
0505     uint16_t         length;
0506     xcb_drawable_t   drawable;
0507     xcb_sync_fence_t fence;
0508     uint8_t          initially_triggered;
0509 } xcb_sync_create_fence_request_t;
0510 
0511 /** Opcode for xcb_sync_trigger_fence. */
0512 #define XCB_SYNC_TRIGGER_FENCE 15
0513 
0514 /**
0515  * @brief xcb_sync_trigger_fence_request_t
0516  **/
0517 typedef struct xcb_sync_trigger_fence_request_t {
0518     uint8_t          major_opcode;
0519     uint8_t          minor_opcode;
0520     uint16_t         length;
0521     xcb_sync_fence_t fence;
0522 } xcb_sync_trigger_fence_request_t;
0523 
0524 /** Opcode for xcb_sync_reset_fence. */
0525 #define XCB_SYNC_RESET_FENCE 16
0526 
0527 /**
0528  * @brief xcb_sync_reset_fence_request_t
0529  **/
0530 typedef struct xcb_sync_reset_fence_request_t {
0531     uint8_t          major_opcode;
0532     uint8_t          minor_opcode;
0533     uint16_t         length;
0534     xcb_sync_fence_t fence;
0535 } xcb_sync_reset_fence_request_t;
0536 
0537 /** Opcode for xcb_sync_destroy_fence. */
0538 #define XCB_SYNC_DESTROY_FENCE 17
0539 
0540 /**
0541  * @brief xcb_sync_destroy_fence_request_t
0542  **/
0543 typedef struct xcb_sync_destroy_fence_request_t {
0544     uint8_t          major_opcode;
0545     uint8_t          minor_opcode;
0546     uint16_t         length;
0547     xcb_sync_fence_t fence;
0548 } xcb_sync_destroy_fence_request_t;
0549 
0550 /**
0551  * @brief xcb_sync_query_fence_cookie_t
0552  **/
0553 typedef struct xcb_sync_query_fence_cookie_t {
0554     unsigned int sequence;
0555 } xcb_sync_query_fence_cookie_t;
0556 
0557 /** Opcode for xcb_sync_query_fence. */
0558 #define XCB_SYNC_QUERY_FENCE 18
0559 
0560 /**
0561  * @brief xcb_sync_query_fence_request_t
0562  **/
0563 typedef struct xcb_sync_query_fence_request_t {
0564     uint8_t          major_opcode;
0565     uint8_t          minor_opcode;
0566     uint16_t         length;
0567     xcb_sync_fence_t fence;
0568 } xcb_sync_query_fence_request_t;
0569 
0570 /**
0571  * @brief xcb_sync_query_fence_reply_t
0572  **/
0573 typedef struct xcb_sync_query_fence_reply_t {
0574     uint8_t  response_type;
0575     uint8_t  pad0;
0576     uint16_t sequence;
0577     uint32_t length;
0578     uint8_t  triggered;
0579     uint8_t  pad1[23];
0580 } xcb_sync_query_fence_reply_t;
0581 
0582 /** Opcode for xcb_sync_await_fence. */
0583 #define XCB_SYNC_AWAIT_FENCE 19
0584 
0585 /**
0586  * @brief xcb_sync_await_fence_request_t
0587  **/
0588 typedef struct xcb_sync_await_fence_request_t {
0589     uint8_t  major_opcode;
0590     uint8_t  minor_opcode;
0591     uint16_t length;
0592 } xcb_sync_await_fence_request_t;
0593 
0594 /** Opcode for xcb_sync_counter_notify. */
0595 #define XCB_SYNC_COUNTER_NOTIFY 0
0596 
0597 /**
0598  * @brief xcb_sync_counter_notify_event_t
0599  **/
0600 typedef struct xcb_sync_counter_notify_event_t {
0601     uint8_t            response_type;
0602     uint8_t            kind;
0603     uint16_t           sequence;
0604     xcb_sync_counter_t counter;
0605     xcb_sync_int64_t   wait_value;
0606     xcb_sync_int64_t   counter_value;
0607     xcb_timestamp_t    timestamp;
0608     uint16_t           count;
0609     uint8_t            destroyed;
0610     uint8_t            pad0;
0611 } xcb_sync_counter_notify_event_t;
0612 
0613 /** Opcode for xcb_sync_alarm_notify. */
0614 #define XCB_SYNC_ALARM_NOTIFY 1
0615 
0616 /**
0617  * @brief xcb_sync_alarm_notify_event_t
0618  **/
0619 typedef struct xcb_sync_alarm_notify_event_t {
0620     uint8_t          response_type;
0621     uint8_t          kind;
0622     uint16_t         sequence;
0623     xcb_sync_alarm_t alarm;
0624     xcb_sync_int64_t counter_value;
0625     xcb_sync_int64_t alarm_value;
0626     xcb_timestamp_t  timestamp;
0627     uint8_t          state;
0628     uint8_t          pad0[3];
0629 } xcb_sync_alarm_notify_event_t;
0630 
0631 /**
0632  * Get the next element of the iterator
0633  * @param i Pointer to a xcb_sync_alarm_iterator_t
0634  *
0635  * Get the next element in the iterator. The member rem is
0636  * decreased by one. The member data points to the next
0637  * element. The member index is increased by sizeof(xcb_sync_alarm_t)
0638  */
0639 void
0640 xcb_sync_alarm_next (xcb_sync_alarm_iterator_t *i);
0641 
0642 /**
0643  * Return the iterator pointing to the last element
0644  * @param i An xcb_sync_alarm_iterator_t
0645  * @return  The iterator pointing to the last element
0646  *
0647  * Set the current element in the iterator to the last element.
0648  * The member rem is set to 0. The member data points to the
0649  * last element.
0650  */
0651 xcb_generic_iterator_t
0652 xcb_sync_alarm_end (xcb_sync_alarm_iterator_t i);
0653 
0654 /**
0655  * Get the next element of the iterator
0656  * @param i Pointer to a xcb_sync_counter_iterator_t
0657  *
0658  * Get the next element in the iterator. The member rem is
0659  * decreased by one. The member data points to the next
0660  * element. The member index is increased by sizeof(xcb_sync_counter_t)
0661  */
0662 void
0663 xcb_sync_counter_next (xcb_sync_counter_iterator_t *i);
0664 
0665 /**
0666  * Return the iterator pointing to the last element
0667  * @param i An xcb_sync_counter_iterator_t
0668  * @return  The iterator pointing to the last element
0669  *
0670  * Set the current element in the iterator to the last element.
0671  * The member rem is set to 0. The member data points to the
0672  * last element.
0673  */
0674 xcb_generic_iterator_t
0675 xcb_sync_counter_end (xcb_sync_counter_iterator_t i);
0676 
0677 /**
0678  * Get the next element of the iterator
0679  * @param i Pointer to a xcb_sync_fence_iterator_t
0680  *
0681  * Get the next element in the iterator. The member rem is
0682  * decreased by one. The member data points to the next
0683  * element. The member index is increased by sizeof(xcb_sync_fence_t)
0684  */
0685 void
0686 xcb_sync_fence_next (xcb_sync_fence_iterator_t *i);
0687 
0688 /**
0689  * Return the iterator pointing to the last element
0690  * @param i An xcb_sync_fence_iterator_t
0691  * @return  The iterator pointing to the last element
0692  *
0693  * Set the current element in the iterator to the last element.
0694  * The member rem is set to 0. The member data points to the
0695  * last element.
0696  */
0697 xcb_generic_iterator_t
0698 xcb_sync_fence_end (xcb_sync_fence_iterator_t i);
0699 
0700 /**
0701  * Get the next element of the iterator
0702  * @param i Pointer to a xcb_sync_int64_iterator_t
0703  *
0704  * Get the next element in the iterator. The member rem is
0705  * decreased by one. The member data points to the next
0706  * element. The member index is increased by sizeof(xcb_sync_int64_t)
0707  */
0708 void
0709 xcb_sync_int64_next (xcb_sync_int64_iterator_t *i);
0710 
0711 /**
0712  * Return the iterator pointing to the last element
0713  * @param i An xcb_sync_int64_iterator_t
0714  * @return  The iterator pointing to the last element
0715  *
0716  * Set the current element in the iterator to the last element.
0717  * The member rem is set to 0. The member data points to the
0718  * last element.
0719  */
0720 xcb_generic_iterator_t
0721 xcb_sync_int64_end (xcb_sync_int64_iterator_t i);
0722 
0723 int
0724 xcb_sync_systemcounter_sizeof (const void  *_buffer);
0725 
0726 char *
0727 xcb_sync_systemcounter_name (const xcb_sync_systemcounter_t *R);
0728 
0729 int
0730 xcb_sync_systemcounter_name_length (const xcb_sync_systemcounter_t *R);
0731 
0732 xcb_generic_iterator_t
0733 xcb_sync_systemcounter_name_end (const xcb_sync_systemcounter_t *R);
0734 
0735 /**
0736  * Get the next element of the iterator
0737  * @param i Pointer to a xcb_sync_systemcounter_iterator_t
0738  *
0739  * Get the next element in the iterator. The member rem is
0740  * decreased by one. The member data points to the next
0741  * element. The member index is increased by sizeof(xcb_sync_systemcounter_t)
0742  */
0743 void
0744 xcb_sync_systemcounter_next (xcb_sync_systemcounter_iterator_t *i);
0745 
0746 /**
0747  * Return the iterator pointing to the last element
0748  * @param i An xcb_sync_systemcounter_iterator_t
0749  * @return  The iterator pointing to the last element
0750  *
0751  * Set the current element in the iterator to the last element.
0752  * The member rem is set to 0. The member data points to the
0753  * last element.
0754  */
0755 xcb_generic_iterator_t
0756 xcb_sync_systemcounter_end (xcb_sync_systemcounter_iterator_t i);
0757 
0758 /**
0759  * Get the next element of the iterator
0760  * @param i Pointer to a xcb_sync_trigger_iterator_t
0761  *
0762  * Get the next element in the iterator. The member rem is
0763  * decreased by one. The member data points to the next
0764  * element. The member index is increased by sizeof(xcb_sync_trigger_t)
0765  */
0766 void
0767 xcb_sync_trigger_next (xcb_sync_trigger_iterator_t *i);
0768 
0769 /**
0770  * Return the iterator pointing to the last element
0771  * @param i An xcb_sync_trigger_iterator_t
0772  * @return  The iterator pointing to the last element
0773  *
0774  * Set the current element in the iterator to the last element.
0775  * The member rem is set to 0. The member data points to the
0776  * last element.
0777  */
0778 xcb_generic_iterator_t
0779 xcb_sync_trigger_end (xcb_sync_trigger_iterator_t i);
0780 
0781 /**
0782  * Get the next element of the iterator
0783  * @param i Pointer to a xcb_sync_waitcondition_iterator_t
0784  *
0785  * Get the next element in the iterator. The member rem is
0786  * decreased by one. The member data points to the next
0787  * element. The member index is increased by sizeof(xcb_sync_waitcondition_t)
0788  */
0789 void
0790 xcb_sync_waitcondition_next (xcb_sync_waitcondition_iterator_t *i);
0791 
0792 /**
0793  * Return the iterator pointing to the last element
0794  * @param i An xcb_sync_waitcondition_iterator_t
0795  * @return  The iterator pointing to the last element
0796  *
0797  * Set the current element in the iterator to the last element.
0798  * The member rem is set to 0. The member data points to the
0799  * last element.
0800  */
0801 xcb_generic_iterator_t
0802 xcb_sync_waitcondition_end (xcb_sync_waitcondition_iterator_t i);
0803 
0804 /**
0805  *
0806  * @param c The connection
0807  * @return A cookie
0808  *
0809  * Delivers a request to the X server.
0810  *
0811  */
0812 xcb_sync_initialize_cookie_t
0813 xcb_sync_initialize (xcb_connection_t *c,
0814                      uint8_t           desired_major_version,
0815                      uint8_t           desired_minor_version);
0816 
0817 /**
0818  *
0819  * @param c The connection
0820  * @return A cookie
0821  *
0822  * Delivers a request to the X server.
0823  *
0824  * This form can be used only if the request will cause
0825  * a reply to be generated. Any returned error will be
0826  * placed in the event queue.
0827  */
0828 xcb_sync_initialize_cookie_t
0829 xcb_sync_initialize_unchecked (xcb_connection_t *c,
0830                                uint8_t           desired_major_version,
0831                                uint8_t           desired_minor_version);
0832 
0833 /**
0834  * Return the reply
0835  * @param c      The connection
0836  * @param cookie The cookie
0837  * @param e      The xcb_generic_error_t supplied
0838  *
0839  * Returns the reply of the request asked by
0840  *
0841  * The parameter @p e supplied to this function must be NULL if
0842  * xcb_sync_initialize_unchecked(). is used.
0843  * Otherwise, it stores the error if any.
0844  *
0845  * The returned value must be freed by the caller using free().
0846  */
0847 xcb_sync_initialize_reply_t *
0848 xcb_sync_initialize_reply (xcb_connection_t              *c,
0849                            xcb_sync_initialize_cookie_t   cookie  /**< */,
0850                            xcb_generic_error_t          **e);
0851 
0852 int
0853 xcb_sync_list_system_counters_sizeof (const void  *_buffer);
0854 
0855 /**
0856  *
0857  * @param c The connection
0858  * @return A cookie
0859  *
0860  * Delivers a request to the X server.
0861  *
0862  */
0863 xcb_sync_list_system_counters_cookie_t
0864 xcb_sync_list_system_counters (xcb_connection_t *c);
0865 
0866 /**
0867  *
0868  * @param c The connection
0869  * @return A cookie
0870  *
0871  * Delivers a request to the X server.
0872  *
0873  * This form can be used only if the request will cause
0874  * a reply to be generated. Any returned error will be
0875  * placed in the event queue.
0876  */
0877 xcb_sync_list_system_counters_cookie_t
0878 xcb_sync_list_system_counters_unchecked (xcb_connection_t *c);
0879 
0880 int
0881 xcb_sync_list_system_counters_counters_length (const xcb_sync_list_system_counters_reply_t *R);
0882 
0883 xcb_sync_systemcounter_iterator_t
0884 xcb_sync_list_system_counters_counters_iterator (const xcb_sync_list_system_counters_reply_t *R);
0885 
0886 /**
0887  * Return the reply
0888  * @param c      The connection
0889  * @param cookie The cookie
0890  * @param e      The xcb_generic_error_t supplied
0891  *
0892  * Returns the reply of the request asked by
0893  *
0894  * The parameter @p e supplied to this function must be NULL if
0895  * xcb_sync_list_system_counters_unchecked(). is used.
0896  * Otherwise, it stores the error if any.
0897  *
0898  * The returned value must be freed by the caller using free().
0899  */
0900 xcb_sync_list_system_counters_reply_t *
0901 xcb_sync_list_system_counters_reply (xcb_connection_t                        *c,
0902                                      xcb_sync_list_system_counters_cookie_t   cookie  /**< */,
0903                                      xcb_generic_error_t                    **e);
0904 
0905 /**
0906  *
0907  * @param c The connection
0908  * @return A cookie
0909  *
0910  * Delivers a request to the X server.
0911  *
0912  * This form can be used only if the request will not cause
0913  * a reply to be generated. Any returned error will be
0914  * saved for handling by xcb_request_check().
0915  */
0916 xcb_void_cookie_t
0917 xcb_sync_create_counter_checked (xcb_connection_t   *c,
0918                                  xcb_sync_counter_t  id,
0919                                  xcb_sync_int64_t    initial_value);
0920 
0921 /**
0922  *
0923  * @param c The connection
0924  * @return A cookie
0925  *
0926  * Delivers a request to the X server.
0927  *
0928  */
0929 xcb_void_cookie_t
0930 xcb_sync_create_counter (xcb_connection_t   *c,
0931                          xcb_sync_counter_t  id,
0932                          xcb_sync_int64_t    initial_value);
0933 
0934 /**
0935  *
0936  * @param c The connection
0937  * @return A cookie
0938  *
0939  * Delivers a request to the X server.
0940  *
0941  * This form can be used only if the request will not cause
0942  * a reply to be generated. Any returned error will be
0943  * saved for handling by xcb_request_check().
0944  */
0945 xcb_void_cookie_t
0946 xcb_sync_destroy_counter_checked (xcb_connection_t   *c,
0947                                   xcb_sync_counter_t  counter);
0948 
0949 /**
0950  *
0951  * @param c The connection
0952  * @return A cookie
0953  *
0954  * Delivers a request to the X server.
0955  *
0956  */
0957 xcb_void_cookie_t
0958 xcb_sync_destroy_counter (xcb_connection_t   *c,
0959                           xcb_sync_counter_t  counter);
0960 
0961 /**
0962  *
0963  * @param c The connection
0964  * @return A cookie
0965  *
0966  * Delivers a request to the X server.
0967  *
0968  */
0969 xcb_sync_query_counter_cookie_t
0970 xcb_sync_query_counter (xcb_connection_t   *c,
0971                         xcb_sync_counter_t  counter);
0972 
0973 /**
0974  *
0975  * @param c The connection
0976  * @return A cookie
0977  *
0978  * Delivers a request to the X server.
0979  *
0980  * This form can be used only if the request will cause
0981  * a reply to be generated. Any returned error will be
0982  * placed in the event queue.
0983  */
0984 xcb_sync_query_counter_cookie_t
0985 xcb_sync_query_counter_unchecked (xcb_connection_t   *c,
0986                                   xcb_sync_counter_t  counter);
0987 
0988 /**
0989  * Return the reply
0990  * @param c      The connection
0991  * @param cookie The cookie
0992  * @param e      The xcb_generic_error_t supplied
0993  *
0994  * Returns the reply of the request asked by
0995  *
0996  * The parameter @p e supplied to this function must be NULL if
0997  * xcb_sync_query_counter_unchecked(). is used.
0998  * Otherwise, it stores the error if any.
0999  *
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  */