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