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