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