sync.c revision 1.3 1 /*
2 * This file generated automatically from sync.xml by c_client.py.
3 * Edit at your peril.
4 */
5
6 #ifdef HAVE_CONFIG_H
7 #include "config.h"
8 #endif
9 #include <stdlib.h>
10 #include <string.h>
11 #include <assert.h>
12 #include <stddef.h> /* for offsetof() */
13 #include "xcbext.h"
14 #include "sync.h"
15
16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
17 #include "xproto.h"
18
19 xcb_extension_t xcb_sync_id = { "SYNC", 0 };
20
21
22 /*****************************************************************************
23 **
24 ** void xcb_sync_alarm_next
25 **
26 ** @param xcb_sync_alarm_iterator_t *i
27 ** @returns void
28 **
29 *****************************************************************************/
30
31 void
32 xcb_sync_alarm_next (xcb_sync_alarm_iterator_t *i /**< */)
33 {
34 --i->rem;
35 ++i->data;
36 i->index += sizeof(xcb_sync_alarm_t);
37 }
38
39
40 /*****************************************************************************
41 **
42 ** xcb_generic_iterator_t xcb_sync_alarm_end
43 **
44 ** @param xcb_sync_alarm_iterator_t i
45 ** @returns xcb_generic_iterator_t
46 **
47 *****************************************************************************/
48
49 xcb_generic_iterator_t
50 xcb_sync_alarm_end (xcb_sync_alarm_iterator_t i /**< */)
51 {
52 xcb_generic_iterator_t ret;
53 ret.data = i.data + i.rem;
54 ret.index = i.index + ((char *) ret.data - (char *) i.data);
55 ret.rem = 0;
56 return ret;
57 }
58
59
60 /*****************************************************************************
61 **
62 ** void xcb_sync_counter_next
63 **
64 ** @param xcb_sync_counter_iterator_t *i
65 ** @returns void
66 **
67 *****************************************************************************/
68
69 void
70 xcb_sync_counter_next (xcb_sync_counter_iterator_t *i /**< */)
71 {
72 --i->rem;
73 ++i->data;
74 i->index += sizeof(xcb_sync_counter_t);
75 }
76
77
78 /*****************************************************************************
79 **
80 ** xcb_generic_iterator_t xcb_sync_counter_end
81 **
82 ** @param xcb_sync_counter_iterator_t i
83 ** @returns xcb_generic_iterator_t
84 **
85 *****************************************************************************/
86
87 xcb_generic_iterator_t
88 xcb_sync_counter_end (xcb_sync_counter_iterator_t i /**< */)
89 {
90 xcb_generic_iterator_t ret;
91 ret.data = i.data + i.rem;
92 ret.index = i.index + ((char *) ret.data - (char *) i.data);
93 ret.rem = 0;
94 return ret;
95 }
96
97
98 /*****************************************************************************
99 **
100 ** void xcb_sync_fence_next
101 **
102 ** @param xcb_sync_fence_iterator_t *i
103 ** @returns void
104 **
105 *****************************************************************************/
106
107 void
108 xcb_sync_fence_next (xcb_sync_fence_iterator_t *i /**< */)
109 {
110 --i->rem;
111 ++i->data;
112 i->index += sizeof(xcb_sync_fence_t);
113 }
114
115
116 /*****************************************************************************
117 **
118 ** xcb_generic_iterator_t xcb_sync_fence_end
119 **
120 ** @param xcb_sync_fence_iterator_t i
121 ** @returns xcb_generic_iterator_t
122 **
123 *****************************************************************************/
124
125 xcb_generic_iterator_t
126 xcb_sync_fence_end (xcb_sync_fence_iterator_t i /**< */)
127 {
128 xcb_generic_iterator_t ret;
129 ret.data = i.data + i.rem;
130 ret.index = i.index + ((char *) ret.data - (char *) i.data);
131 ret.rem = 0;
132 return ret;
133 }
134
135
136 /*****************************************************************************
137 **
138 ** void xcb_sync_int64_next
139 **
140 ** @param xcb_sync_int64_iterator_t *i
141 ** @returns void
142 **
143 *****************************************************************************/
144
145 void
146 xcb_sync_int64_next (xcb_sync_int64_iterator_t *i /**< */)
147 {
148 --i->rem;
149 ++i->data;
150 i->index += sizeof(xcb_sync_int64_t);
151 }
152
153
154 /*****************************************************************************
155 **
156 ** xcb_generic_iterator_t xcb_sync_int64_end
157 **
158 ** @param xcb_sync_int64_iterator_t i
159 ** @returns xcb_generic_iterator_t
160 **
161 *****************************************************************************/
162
163 xcb_generic_iterator_t
164 xcb_sync_int64_end (xcb_sync_int64_iterator_t i /**< */)
165 {
166 xcb_generic_iterator_t ret;
167 ret.data = i.data + i.rem;
168 ret.index = i.index + ((char *) ret.data - (char *) i.data);
169 ret.rem = 0;
170 return ret;
171 }
172
173 int
174 xcb_sync_systemcounter_sizeof (const void *_buffer /**< */)
175 {
176 char *xcb_tmp = (char *)_buffer;
177 const xcb_sync_systemcounter_t *_aux = (xcb_sync_systemcounter_t *)_buffer;
178 unsigned int xcb_buffer_len = 0;
179 unsigned int xcb_block_len = 0;
180 unsigned int xcb_pad = 0;
181 unsigned int xcb_align_to = 0;
182
183
184 xcb_block_len += sizeof(xcb_sync_systemcounter_t);
185 xcb_tmp += xcb_block_len;
186 xcb_buffer_len += xcb_block_len;
187 xcb_block_len = 0;
188 /* name */
189 xcb_block_len += _aux->name_len * sizeof(char);
190 xcb_tmp += xcb_block_len;
191 xcb_align_to = ALIGNOF(char);
192 /* insert padding */
193 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
194 xcb_buffer_len += xcb_block_len + xcb_pad;
195 if (0 != xcb_pad) {
196 xcb_tmp += xcb_pad;
197 xcb_pad = 0;
198 }
199 xcb_block_len = 0;
200
201 return xcb_buffer_len;
202 }
203
204
205 /*****************************************************************************
206 **
207 ** char * xcb_sync_systemcounter_name
208 **
209 ** @param const xcb_sync_systemcounter_t *R
210 ** @returns char *
211 **
212 *****************************************************************************/
213
214 char *
215 xcb_sync_systemcounter_name (const xcb_sync_systemcounter_t *R /**< */)
216 {
217 return (char *) (R + 1);
218 }
219
220
221 /*****************************************************************************
222 **
223 ** int xcb_sync_systemcounter_name_length
224 **
225 ** @param const xcb_sync_systemcounter_t *R
226 ** @returns int
227 **
228 *****************************************************************************/
229
230 int
231 xcb_sync_systemcounter_name_length (const xcb_sync_systemcounter_t *R /**< */)
232 {
233 return R->name_len;
234 }
235
236
237 /*****************************************************************************
238 **
239 ** xcb_generic_iterator_t xcb_sync_systemcounter_name_end
240 **
241 ** @param const xcb_sync_systemcounter_t *R
242 ** @returns xcb_generic_iterator_t
243 **
244 *****************************************************************************/
245
246 xcb_generic_iterator_t
247 xcb_sync_systemcounter_name_end (const xcb_sync_systemcounter_t *R /**< */)
248 {
249 xcb_generic_iterator_t i;
250 i.data = ((char *) (R + 1)) + (R->name_len);
251 i.rem = 0;
252 i.index = (char *) i.data - (char *) R;
253 return i;
254 }
255
256
257 /*****************************************************************************
258 **
259 ** void xcb_sync_systemcounter_next
260 **
261 ** @param xcb_sync_systemcounter_iterator_t *i
262 ** @returns void
263 **
264 *****************************************************************************/
265
266 void
267 xcb_sync_systemcounter_next (xcb_sync_systemcounter_iterator_t *i /**< */)
268 {
269 xcb_sync_systemcounter_t *R = i->data;
270 xcb_generic_iterator_t child;
271 child.data = (xcb_sync_systemcounter_t *)(((char *)R) + xcb_sync_systemcounter_sizeof(R));
272 i->index = (char *) child.data - (char *) i->data;
273 --i->rem;
274 i->data = (xcb_sync_systemcounter_t *) child.data;
275 }
276
277
278 /*****************************************************************************
279 **
280 ** xcb_generic_iterator_t xcb_sync_systemcounter_end
281 **
282 ** @param xcb_sync_systemcounter_iterator_t i
283 ** @returns xcb_generic_iterator_t
284 **
285 *****************************************************************************/
286
287 xcb_generic_iterator_t
288 xcb_sync_systemcounter_end (xcb_sync_systemcounter_iterator_t i /**< */)
289 {
290 xcb_generic_iterator_t ret;
291 while(i.rem > 0)
292 xcb_sync_systemcounter_next(&i);
293 ret.data = i.data;
294 ret.rem = i.rem;
295 ret.index = i.index;
296 return ret;
297 }
298
299
300 /*****************************************************************************
301 **
302 ** void xcb_sync_trigger_next
303 **
304 ** @param xcb_sync_trigger_iterator_t *i
305 ** @returns void
306 **
307 *****************************************************************************/
308
309 void
310 xcb_sync_trigger_next (xcb_sync_trigger_iterator_t *i /**< */)
311 {
312 --i->rem;
313 ++i->data;
314 i->index += sizeof(xcb_sync_trigger_t);
315 }
316
317
318 /*****************************************************************************
319 **
320 ** xcb_generic_iterator_t xcb_sync_trigger_end
321 **
322 ** @param xcb_sync_trigger_iterator_t i
323 ** @returns xcb_generic_iterator_t
324 **
325 *****************************************************************************/
326
327 xcb_generic_iterator_t
328 xcb_sync_trigger_end (xcb_sync_trigger_iterator_t i /**< */)
329 {
330 xcb_generic_iterator_t ret;
331 ret.data = i.data + i.rem;
332 ret.index = i.index + ((char *) ret.data - (char *) i.data);
333 ret.rem = 0;
334 return ret;
335 }
336
337
338 /*****************************************************************************
339 **
340 ** void xcb_sync_waitcondition_next
341 **
342 ** @param xcb_sync_waitcondition_iterator_t *i
343 ** @returns void
344 **
345 *****************************************************************************/
346
347 void
348 xcb_sync_waitcondition_next (xcb_sync_waitcondition_iterator_t *i /**< */)
349 {
350 --i->rem;
351 ++i->data;
352 i->index += sizeof(xcb_sync_waitcondition_t);
353 }
354
355
356 /*****************************************************************************
357 **
358 ** xcb_generic_iterator_t xcb_sync_waitcondition_end
359 **
360 ** @param xcb_sync_waitcondition_iterator_t i
361 ** @returns xcb_generic_iterator_t
362 **
363 *****************************************************************************/
364
365 xcb_generic_iterator_t
366 xcb_sync_waitcondition_end (xcb_sync_waitcondition_iterator_t i /**< */)
367 {
368 xcb_generic_iterator_t ret;
369 ret.data = i.data + i.rem;
370 ret.index = i.index + ((char *) ret.data - (char *) i.data);
371 ret.rem = 0;
372 return ret;
373 }
374
375
376 /*****************************************************************************
377 **
378 ** xcb_sync_initialize_cookie_t xcb_sync_initialize
379 **
380 ** @param xcb_connection_t *c
381 ** @param uint8_t desired_major_version
382 ** @param uint8_t desired_minor_version
383 ** @returns xcb_sync_initialize_cookie_t
384 **
385 *****************************************************************************/
386
387 xcb_sync_initialize_cookie_t
388 xcb_sync_initialize (xcb_connection_t *c /**< */,
389 uint8_t desired_major_version /**< */,
390 uint8_t desired_minor_version /**< */)
391 {
392 static const xcb_protocol_request_t xcb_req = {
393 /* count */ 2,
394 /* ext */ &xcb_sync_id,
395 /* opcode */ XCB_SYNC_INITIALIZE,
396 /* isvoid */ 0
397 };
398
399 struct iovec xcb_parts[4];
400 xcb_sync_initialize_cookie_t xcb_ret;
401 xcb_sync_initialize_request_t xcb_out;
402
403 xcb_out.desired_major_version = desired_major_version;
404 xcb_out.desired_minor_version = desired_minor_version;
405
406 xcb_parts[2].iov_base = (char *) &xcb_out;
407 xcb_parts[2].iov_len = sizeof(xcb_out);
408 xcb_parts[3].iov_base = 0;
409 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
410
411 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
412 return xcb_ret;
413 }
414
415
416 /*****************************************************************************
417 **
418 ** xcb_sync_initialize_cookie_t xcb_sync_initialize_unchecked
419 **
420 ** @param xcb_connection_t *c
421 ** @param uint8_t desired_major_version
422 ** @param uint8_t desired_minor_version
423 ** @returns xcb_sync_initialize_cookie_t
424 **
425 *****************************************************************************/
426
427 xcb_sync_initialize_cookie_t
428 xcb_sync_initialize_unchecked (xcb_connection_t *c /**< */,
429 uint8_t desired_major_version /**< */,
430 uint8_t desired_minor_version /**< */)
431 {
432 static const xcb_protocol_request_t xcb_req = {
433 /* count */ 2,
434 /* ext */ &xcb_sync_id,
435 /* opcode */ XCB_SYNC_INITIALIZE,
436 /* isvoid */ 0
437 };
438
439 struct iovec xcb_parts[4];
440 xcb_sync_initialize_cookie_t xcb_ret;
441 xcb_sync_initialize_request_t xcb_out;
442
443 xcb_out.desired_major_version = desired_major_version;
444 xcb_out.desired_minor_version = desired_minor_version;
445
446 xcb_parts[2].iov_base = (char *) &xcb_out;
447 xcb_parts[2].iov_len = sizeof(xcb_out);
448 xcb_parts[3].iov_base = 0;
449 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
450
451 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
452 return xcb_ret;
453 }
454
455
456 /*****************************************************************************
457 **
458 ** xcb_sync_initialize_reply_t * xcb_sync_initialize_reply
459 **
460 ** @param xcb_connection_t *c
461 ** @param xcb_sync_initialize_cookie_t cookie
462 ** @param xcb_generic_error_t **e
463 ** @returns xcb_sync_initialize_reply_t *
464 **
465 *****************************************************************************/
466
467 xcb_sync_initialize_reply_t *
468 xcb_sync_initialize_reply (xcb_connection_t *c /**< */,
469 xcb_sync_initialize_cookie_t cookie /**< */,
470 xcb_generic_error_t **e /**< */)
471 {
472 return (xcb_sync_initialize_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
473 }
474
475 int
476 xcb_sync_list_system_counters_sizeof (const void *_buffer /**< */)
477 {
478 char *xcb_tmp = (char *)_buffer;
479 const xcb_sync_list_system_counters_reply_t *_aux = (xcb_sync_list_system_counters_reply_t *)_buffer;
480 unsigned int xcb_buffer_len = 0;
481 unsigned int xcb_block_len = 0;
482 unsigned int xcb_pad = 0;
483 unsigned int xcb_align_to = 0;
484
485 unsigned int i;
486 unsigned int xcb_tmp_len;
487
488 xcb_block_len += sizeof(xcb_sync_list_system_counters_reply_t);
489 xcb_tmp += xcb_block_len;
490 xcb_buffer_len += xcb_block_len;
491 xcb_block_len = 0;
492 /* counters */
493 for(i=0; i<_aux->counters_len; i++) {
494 xcb_tmp_len = xcb_sync_systemcounter_sizeof(xcb_tmp);
495 xcb_block_len += xcb_tmp_len;
496 xcb_tmp += xcb_tmp_len;
497 }
498 xcb_align_to = ALIGNOF(xcb_sync_systemcounter_t);
499 /* insert padding */
500 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
501 xcb_buffer_len += xcb_block_len + xcb_pad;
502 if (0 != xcb_pad) {
503 xcb_tmp += xcb_pad;
504 xcb_pad = 0;
505 }
506 xcb_block_len = 0;
507
508 return xcb_buffer_len;
509 }
510
511
512 /*****************************************************************************
513 **
514 ** xcb_sync_list_system_counters_cookie_t xcb_sync_list_system_counters
515 **
516 ** @param xcb_connection_t *c
517 ** @returns xcb_sync_list_system_counters_cookie_t
518 **
519 *****************************************************************************/
520
521 xcb_sync_list_system_counters_cookie_t
522 xcb_sync_list_system_counters (xcb_connection_t *c /**< */)
523 {
524 static const xcb_protocol_request_t xcb_req = {
525 /* count */ 2,
526 /* ext */ &xcb_sync_id,
527 /* opcode */ XCB_SYNC_LIST_SYSTEM_COUNTERS,
528 /* isvoid */ 0
529 };
530
531 struct iovec xcb_parts[4];
532 xcb_sync_list_system_counters_cookie_t xcb_ret;
533 xcb_sync_list_system_counters_request_t xcb_out;
534
535
536 xcb_parts[2].iov_base = (char *) &xcb_out;
537 xcb_parts[2].iov_len = sizeof(xcb_out);
538 xcb_parts[3].iov_base = 0;
539 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
540
541 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
542 return xcb_ret;
543 }
544
545
546 /*****************************************************************************
547 **
548 ** xcb_sync_list_system_counters_cookie_t xcb_sync_list_system_counters_unchecked
549 **
550 ** @param xcb_connection_t *c
551 ** @returns xcb_sync_list_system_counters_cookie_t
552 **
553 *****************************************************************************/
554
555 xcb_sync_list_system_counters_cookie_t
556 xcb_sync_list_system_counters_unchecked (xcb_connection_t *c /**< */)
557 {
558 static const xcb_protocol_request_t xcb_req = {
559 /* count */ 2,
560 /* ext */ &xcb_sync_id,
561 /* opcode */ XCB_SYNC_LIST_SYSTEM_COUNTERS,
562 /* isvoid */ 0
563 };
564
565 struct iovec xcb_parts[4];
566 xcb_sync_list_system_counters_cookie_t xcb_ret;
567 xcb_sync_list_system_counters_request_t xcb_out;
568
569
570 xcb_parts[2].iov_base = (char *) &xcb_out;
571 xcb_parts[2].iov_len = sizeof(xcb_out);
572 xcb_parts[3].iov_base = 0;
573 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
574
575 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
576 return xcb_ret;
577 }
578
579
580 /*****************************************************************************
581 **
582 ** int xcb_sync_list_system_counters_counters_length
583 **
584 ** @param const xcb_sync_list_system_counters_reply_t *R
585 ** @returns int
586 **
587 *****************************************************************************/
588
589 int
590 xcb_sync_list_system_counters_counters_length (const xcb_sync_list_system_counters_reply_t *R /**< */)
591 {
592 return R->counters_len;
593 }
594
595
596 /*****************************************************************************
597 **
598 ** xcb_sync_systemcounter_iterator_t xcb_sync_list_system_counters_counters_iterator
599 **
600 ** @param const xcb_sync_list_system_counters_reply_t *R
601 ** @returns xcb_sync_systemcounter_iterator_t
602 **
603 *****************************************************************************/
604
605 xcb_sync_systemcounter_iterator_t
606 xcb_sync_list_system_counters_counters_iterator (const xcb_sync_list_system_counters_reply_t *R /**< */)
607 {
608 xcb_sync_systemcounter_iterator_t i;
609 i.data = (xcb_sync_systemcounter_t *) (R + 1);
610 i.rem = R->counters_len;
611 i.index = (char *) i.data - (char *) R;
612 return i;
613 }
614
615
616 /*****************************************************************************
617 **
618 ** xcb_sync_list_system_counters_reply_t * xcb_sync_list_system_counters_reply
619 **
620 ** @param xcb_connection_t *c
621 ** @param xcb_sync_list_system_counters_cookie_t cookie
622 ** @param xcb_generic_error_t **e
623 ** @returns xcb_sync_list_system_counters_reply_t *
624 **
625 *****************************************************************************/
626
627 xcb_sync_list_system_counters_reply_t *
628 xcb_sync_list_system_counters_reply (xcb_connection_t *c /**< */,
629 xcb_sync_list_system_counters_cookie_t cookie /**< */,
630 xcb_generic_error_t **e /**< */)
631 {
632 return (xcb_sync_list_system_counters_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
633 }
634
635
636 /*****************************************************************************
637 **
638 ** xcb_void_cookie_t xcb_sync_create_counter_checked
639 **
640 ** @param xcb_connection_t *c
641 ** @param xcb_sync_counter_t id
642 ** @param xcb_sync_int64_t initial_value
643 ** @returns xcb_void_cookie_t
644 **
645 *****************************************************************************/
646
647 xcb_void_cookie_t
648 xcb_sync_create_counter_checked (xcb_connection_t *c /**< */,
649 xcb_sync_counter_t id /**< */,
650 xcb_sync_int64_t initial_value /**< */)
651 {
652 static const xcb_protocol_request_t xcb_req = {
653 /* count */ 2,
654 /* ext */ &xcb_sync_id,
655 /* opcode */ XCB_SYNC_CREATE_COUNTER,
656 /* isvoid */ 1
657 };
658
659 struct iovec xcb_parts[4];
660 xcb_void_cookie_t xcb_ret;
661 xcb_sync_create_counter_request_t xcb_out;
662
663 xcb_out.id = id;
664 xcb_out.initial_value = initial_value;
665
666 xcb_parts[2].iov_base = (char *) &xcb_out;
667 xcb_parts[2].iov_len = sizeof(xcb_out);
668 xcb_parts[3].iov_base = 0;
669 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
670
671 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
672 return xcb_ret;
673 }
674
675
676 /*****************************************************************************
677 **
678 ** xcb_void_cookie_t xcb_sync_create_counter
679 **
680 ** @param xcb_connection_t *c
681 ** @param xcb_sync_counter_t id
682 ** @param xcb_sync_int64_t initial_value
683 ** @returns xcb_void_cookie_t
684 **
685 *****************************************************************************/
686
687 xcb_void_cookie_t
688 xcb_sync_create_counter (xcb_connection_t *c /**< */,
689 xcb_sync_counter_t id /**< */,
690 xcb_sync_int64_t initial_value /**< */)
691 {
692 static const xcb_protocol_request_t xcb_req = {
693 /* count */ 2,
694 /* ext */ &xcb_sync_id,
695 /* opcode */ XCB_SYNC_CREATE_COUNTER,
696 /* isvoid */ 1
697 };
698
699 struct iovec xcb_parts[4];
700 xcb_void_cookie_t xcb_ret;
701 xcb_sync_create_counter_request_t xcb_out;
702
703 xcb_out.id = id;
704 xcb_out.initial_value = initial_value;
705
706 xcb_parts[2].iov_base = (char *) &xcb_out;
707 xcb_parts[2].iov_len = sizeof(xcb_out);
708 xcb_parts[3].iov_base = 0;
709 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
710
711 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
712 return xcb_ret;
713 }
714
715
716 /*****************************************************************************
717 **
718 ** xcb_void_cookie_t xcb_sync_destroy_counter_checked
719 **
720 ** @param xcb_connection_t *c
721 ** @param xcb_sync_counter_t counter
722 ** @returns xcb_void_cookie_t
723 **
724 *****************************************************************************/
725
726 xcb_void_cookie_t
727 xcb_sync_destroy_counter_checked (xcb_connection_t *c /**< */,
728 xcb_sync_counter_t counter /**< */)
729 {
730 static const xcb_protocol_request_t xcb_req = {
731 /* count */ 2,
732 /* ext */ &xcb_sync_id,
733 /* opcode */ XCB_SYNC_DESTROY_COUNTER,
734 /* isvoid */ 1
735 };
736
737 struct iovec xcb_parts[4];
738 xcb_void_cookie_t xcb_ret;
739 xcb_sync_destroy_counter_request_t xcb_out;
740
741 xcb_out.counter = counter;
742
743 xcb_parts[2].iov_base = (char *) &xcb_out;
744 xcb_parts[2].iov_len = sizeof(xcb_out);
745 xcb_parts[3].iov_base = 0;
746 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
747
748 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
749 return xcb_ret;
750 }
751
752
753 /*****************************************************************************
754 **
755 ** xcb_void_cookie_t xcb_sync_destroy_counter
756 **
757 ** @param xcb_connection_t *c
758 ** @param xcb_sync_counter_t counter
759 ** @returns xcb_void_cookie_t
760 **
761 *****************************************************************************/
762
763 xcb_void_cookie_t
764 xcb_sync_destroy_counter (xcb_connection_t *c /**< */,
765 xcb_sync_counter_t counter /**< */)
766 {
767 static const xcb_protocol_request_t xcb_req = {
768 /* count */ 2,
769 /* ext */ &xcb_sync_id,
770 /* opcode */ XCB_SYNC_DESTROY_COUNTER,
771 /* isvoid */ 1
772 };
773
774 struct iovec xcb_parts[4];
775 xcb_void_cookie_t xcb_ret;
776 xcb_sync_destroy_counter_request_t xcb_out;
777
778 xcb_out.counter = counter;
779
780 xcb_parts[2].iov_base = (char *) &xcb_out;
781 xcb_parts[2].iov_len = sizeof(xcb_out);
782 xcb_parts[3].iov_base = 0;
783 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
784
785 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
786 return xcb_ret;
787 }
788
789
790 /*****************************************************************************
791 **
792 ** xcb_sync_query_counter_cookie_t xcb_sync_query_counter
793 **
794 ** @param xcb_connection_t *c
795 ** @param xcb_sync_counter_t counter
796 ** @returns xcb_sync_query_counter_cookie_t
797 **
798 *****************************************************************************/
799
800 xcb_sync_query_counter_cookie_t
801 xcb_sync_query_counter (xcb_connection_t *c /**< */,
802 xcb_sync_counter_t counter /**< */)
803 {
804 static const xcb_protocol_request_t xcb_req = {
805 /* count */ 2,
806 /* ext */ &xcb_sync_id,
807 /* opcode */ XCB_SYNC_QUERY_COUNTER,
808 /* isvoid */ 0
809 };
810
811 struct iovec xcb_parts[4];
812 xcb_sync_query_counter_cookie_t xcb_ret;
813 xcb_sync_query_counter_request_t xcb_out;
814
815 xcb_out.counter = counter;
816
817 xcb_parts[2].iov_base = (char *) &xcb_out;
818 xcb_parts[2].iov_len = sizeof(xcb_out);
819 xcb_parts[3].iov_base = 0;
820 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
821
822 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
823 return xcb_ret;
824 }
825
826
827 /*****************************************************************************
828 **
829 ** xcb_sync_query_counter_cookie_t xcb_sync_query_counter_unchecked
830 **
831 ** @param xcb_connection_t *c
832 ** @param xcb_sync_counter_t counter
833 ** @returns xcb_sync_query_counter_cookie_t
834 **
835 *****************************************************************************/
836
837 xcb_sync_query_counter_cookie_t
838 xcb_sync_query_counter_unchecked (xcb_connection_t *c /**< */,
839 xcb_sync_counter_t counter /**< */)
840 {
841 static const xcb_protocol_request_t xcb_req = {
842 /* count */ 2,
843 /* ext */ &xcb_sync_id,
844 /* opcode */ XCB_SYNC_QUERY_COUNTER,
845 /* isvoid */ 0
846 };
847
848 struct iovec xcb_parts[4];
849 xcb_sync_query_counter_cookie_t xcb_ret;
850 xcb_sync_query_counter_request_t xcb_out;
851
852 xcb_out.counter = counter;
853
854 xcb_parts[2].iov_base = (char *) &xcb_out;
855 xcb_parts[2].iov_len = sizeof(xcb_out);
856 xcb_parts[3].iov_base = 0;
857 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
858
859 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
860 return xcb_ret;
861 }
862
863
864 /*****************************************************************************
865 **
866 ** xcb_sync_query_counter_reply_t * xcb_sync_query_counter_reply
867 **
868 ** @param xcb_connection_t *c
869 ** @param xcb_sync_query_counter_cookie_t cookie
870 ** @param xcb_generic_error_t **e
871 ** @returns xcb_sync_query_counter_reply_t *
872 **
873 *****************************************************************************/
874
875 xcb_sync_query_counter_reply_t *
876 xcb_sync_query_counter_reply (xcb_connection_t *c /**< */,
877 xcb_sync_query_counter_cookie_t cookie /**< */,
878 xcb_generic_error_t **e /**< */)
879 {
880 return (xcb_sync_query_counter_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
881 }
882
883 int
884 xcb_sync_await_sizeof (const void *_buffer /**< */,
885 uint32_t wait_list_len /**< */)
886 {
887 char *xcb_tmp = (char *)_buffer;
888 unsigned int xcb_buffer_len = 0;
889 unsigned int xcb_block_len = 0;
890 unsigned int xcb_pad = 0;
891 unsigned int xcb_align_to = 0;
892
893
894 xcb_block_len += sizeof(xcb_sync_await_request_t);
895 xcb_tmp += xcb_block_len;
896 xcb_buffer_len += xcb_block_len;
897 xcb_block_len = 0;
898 /* wait_list */
899 xcb_block_len += wait_list_len * sizeof(xcb_sync_waitcondition_t);
900 xcb_tmp += xcb_block_len;
901 xcb_align_to = ALIGNOF(xcb_sync_waitcondition_t);
902 /* insert padding */
903 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
904 xcb_buffer_len += xcb_block_len + xcb_pad;
905 if (0 != xcb_pad) {
906 xcb_tmp += xcb_pad;
907 xcb_pad = 0;
908 }
909 xcb_block_len = 0;
910
911 return xcb_buffer_len;
912 }
913
914
915 /*****************************************************************************
916 **
917 ** xcb_void_cookie_t xcb_sync_await_checked
918 **
919 ** @param xcb_connection_t *c
920 ** @param uint32_t wait_list_len
921 ** @param const xcb_sync_waitcondition_t *wait_list
922 ** @returns xcb_void_cookie_t
923 **
924 *****************************************************************************/
925
926 xcb_void_cookie_t
927 xcb_sync_await_checked (xcb_connection_t *c /**< */,
928 uint32_t wait_list_len /**< */,
929 const xcb_sync_waitcondition_t *wait_list /**< */)
930 {
931 static const xcb_protocol_request_t xcb_req = {
932 /* count */ 4,
933 /* ext */ &xcb_sync_id,
934 /* opcode */ XCB_SYNC_AWAIT,
935 /* isvoid */ 1
936 };
937
938 struct iovec xcb_parts[6];
939 xcb_void_cookie_t xcb_ret;
940 xcb_sync_await_request_t xcb_out;
941
942
943 xcb_parts[2].iov_base = (char *) &xcb_out;
944 xcb_parts[2].iov_len = sizeof(xcb_out);
945 xcb_parts[3].iov_base = 0;
946 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
947 /* xcb_sync_waitcondition_t wait_list */
948 xcb_parts[4].iov_base = (char *) wait_list;
949 xcb_parts[4].iov_len = wait_list_len * sizeof(xcb_sync_waitcondition_t);
950 xcb_parts[5].iov_base = 0;
951 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
952
953 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
954 return xcb_ret;
955 }
956
957
958 /*****************************************************************************
959 **
960 ** xcb_void_cookie_t xcb_sync_await
961 **
962 ** @param xcb_connection_t *c
963 ** @param uint32_t wait_list_len
964 ** @param const xcb_sync_waitcondition_t *wait_list
965 ** @returns xcb_void_cookie_t
966 **
967 *****************************************************************************/
968
969 xcb_void_cookie_t
970 xcb_sync_await (xcb_connection_t *c /**< */,
971 uint32_t wait_list_len /**< */,
972 const xcb_sync_waitcondition_t *wait_list /**< */)
973 {
974 static const xcb_protocol_request_t xcb_req = {
975 /* count */ 4,
976 /* ext */ &xcb_sync_id,
977 /* opcode */ XCB_SYNC_AWAIT,
978 /* isvoid */ 1
979 };
980
981 struct iovec xcb_parts[6];
982 xcb_void_cookie_t xcb_ret;
983 xcb_sync_await_request_t xcb_out;
984
985
986 xcb_parts[2].iov_base = (char *) &xcb_out;
987 xcb_parts[2].iov_len = sizeof(xcb_out);
988 xcb_parts[3].iov_base = 0;
989 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
990 /* xcb_sync_waitcondition_t wait_list */
991 xcb_parts[4].iov_base = (char *) wait_list;
992 xcb_parts[4].iov_len = wait_list_len * sizeof(xcb_sync_waitcondition_t);
993 xcb_parts[5].iov_base = 0;
994 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
995
996 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
997 return xcb_ret;
998 }
999
1000
1001 /*****************************************************************************
1002 **
1003 ** xcb_void_cookie_t xcb_sync_change_counter_checked
1004 **
1005 ** @param xcb_connection_t *c
1006 ** @param xcb_sync_counter_t counter
1007 ** @param xcb_sync_int64_t amount
1008 ** @returns xcb_void_cookie_t
1009 **
1010 *****************************************************************************/
1011
1012 xcb_void_cookie_t
1013 xcb_sync_change_counter_checked (xcb_connection_t *c /**< */,
1014 xcb_sync_counter_t counter /**< */,
1015 xcb_sync_int64_t amount /**< */)
1016 {
1017 static const xcb_protocol_request_t xcb_req = {
1018 /* count */ 2,
1019 /* ext */ &xcb_sync_id,
1020 /* opcode */ XCB_SYNC_CHANGE_COUNTER,
1021 /* isvoid */ 1
1022 };
1023
1024 struct iovec xcb_parts[4];
1025 xcb_void_cookie_t xcb_ret;
1026 xcb_sync_change_counter_request_t xcb_out;
1027
1028 xcb_out.counter = counter;
1029 xcb_out.amount = amount;
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
1036 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1037 return xcb_ret;
1038 }
1039
1040
1041 /*****************************************************************************
1042 **
1043 ** xcb_void_cookie_t xcb_sync_change_counter
1044 **
1045 ** @param xcb_connection_t *c
1046 ** @param xcb_sync_counter_t counter
1047 ** @param xcb_sync_int64_t amount
1048 ** @returns xcb_void_cookie_t
1049 **
1050 *****************************************************************************/
1051
1052 xcb_void_cookie_t
1053 xcb_sync_change_counter (xcb_connection_t *c /**< */,
1054 xcb_sync_counter_t counter /**< */,
1055 xcb_sync_int64_t amount /**< */)
1056 {
1057 static const xcb_protocol_request_t xcb_req = {
1058 /* count */ 2,
1059 /* ext */ &xcb_sync_id,
1060 /* opcode */ XCB_SYNC_CHANGE_COUNTER,
1061 /* isvoid */ 1
1062 };
1063
1064 struct iovec xcb_parts[4];
1065 xcb_void_cookie_t xcb_ret;
1066 xcb_sync_change_counter_request_t xcb_out;
1067
1068 xcb_out.counter = counter;
1069 xcb_out.amount = amount;
1070
1071 xcb_parts[2].iov_base = (char *) &xcb_out;
1072 xcb_parts[2].iov_len = sizeof(xcb_out);
1073 xcb_parts[3].iov_base = 0;
1074 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1075
1076 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1077 return xcb_ret;
1078 }
1079
1080
1081 /*****************************************************************************
1082 **
1083 ** xcb_void_cookie_t xcb_sync_set_counter_checked
1084 **
1085 ** @param xcb_connection_t *c
1086 ** @param xcb_sync_counter_t counter
1087 ** @param xcb_sync_int64_t value
1088 ** @returns xcb_void_cookie_t
1089 **
1090 *****************************************************************************/
1091
1092 xcb_void_cookie_t
1093 xcb_sync_set_counter_checked (xcb_connection_t *c /**< */,
1094 xcb_sync_counter_t counter /**< */,
1095 xcb_sync_int64_t value /**< */)
1096 {
1097 static const xcb_protocol_request_t xcb_req = {
1098 /* count */ 2,
1099 /* ext */ &xcb_sync_id,
1100 /* opcode */ XCB_SYNC_SET_COUNTER,
1101 /* isvoid */ 1
1102 };
1103
1104 struct iovec xcb_parts[4];
1105 xcb_void_cookie_t xcb_ret;
1106 xcb_sync_set_counter_request_t xcb_out;
1107
1108 xcb_out.counter = counter;
1109 xcb_out.value = value;
1110
1111 xcb_parts[2].iov_base = (char *) &xcb_out;
1112 xcb_parts[2].iov_len = sizeof(xcb_out);
1113 xcb_parts[3].iov_base = 0;
1114 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1115
1116 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1117 return xcb_ret;
1118 }
1119
1120
1121 /*****************************************************************************
1122 **
1123 ** xcb_void_cookie_t xcb_sync_set_counter
1124 **
1125 ** @param xcb_connection_t *c
1126 ** @param xcb_sync_counter_t counter
1127 ** @param xcb_sync_int64_t value
1128 ** @returns xcb_void_cookie_t
1129 **
1130 *****************************************************************************/
1131
1132 xcb_void_cookie_t
1133 xcb_sync_set_counter (xcb_connection_t *c /**< */,
1134 xcb_sync_counter_t counter /**< */,
1135 xcb_sync_int64_t value /**< */)
1136 {
1137 static const xcb_protocol_request_t xcb_req = {
1138 /* count */ 2,
1139 /* ext */ &xcb_sync_id,
1140 /* opcode */ XCB_SYNC_SET_COUNTER,
1141 /* isvoid */ 1
1142 };
1143
1144 struct iovec xcb_parts[4];
1145 xcb_void_cookie_t xcb_ret;
1146 xcb_sync_set_counter_request_t xcb_out;
1147
1148 xcb_out.counter = counter;
1149 xcb_out.value = value;
1150
1151 xcb_parts[2].iov_base = (char *) &xcb_out;
1152 xcb_parts[2].iov_len = sizeof(xcb_out);
1153 xcb_parts[3].iov_base = 0;
1154 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1155
1156 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1157 return xcb_ret;
1158 }
1159
1160 int
1161 xcb_sync_create_alarm_value_list_serialize (void **_buffer /**< */,
1162 uint32_t value_mask /**< */,
1163 const xcb_sync_create_alarm_value_list_t *_aux /**< */)
1164 {
1165 char *xcb_out = *_buffer;
1166 unsigned int xcb_buffer_len = 0;
1167 unsigned int xcb_align_to = 0;
1168
1169 unsigned int xcb_pad = 0;
1170 char xcb_pad0[3] = {0, 0, 0};
1171 struct iovec xcb_parts[7];
1172 unsigned int xcb_parts_idx = 0;
1173 unsigned int xcb_block_len = 0;
1174 unsigned int i;
1175 char *xcb_tmp;
1176
1177 if(value_mask & XCB_SYNC_CA_COUNTER) {
1178 /* xcb_sync_create_alarm_value_list_t.counter */
1179 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->counter;
1180 xcb_block_len += sizeof(xcb_sync_counter_t);
1181 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_counter_t);
1182 xcb_parts_idx++;
1183 xcb_align_to = ALIGNOF(xcb_sync_counter_t);
1184 }
1185 if(value_mask & XCB_SYNC_CA_VALUE_TYPE) {
1186 /* xcb_sync_create_alarm_value_list_t.valueType */
1187 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->valueType;
1188 xcb_block_len += sizeof(uint32_t);
1189 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
1190 xcb_parts_idx++;
1191 xcb_align_to = ALIGNOF(uint32_t);
1192 }
1193 if(value_mask & XCB_SYNC_CA_VALUE) {
1194 /* xcb_sync_create_alarm_value_list_t.value */
1195 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->value;
1196 xcb_block_len += sizeof(xcb_sync_int64_t);
1197 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_int64_t);
1198 xcb_parts_idx++;
1199 xcb_align_to = ALIGNOF(xcb_sync_int64_t);
1200 }
1201 if(value_mask & XCB_SYNC_CA_TEST_TYPE) {
1202 /* xcb_sync_create_alarm_value_list_t.testType */
1203 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->testType;
1204 xcb_block_len += sizeof(uint32_t);
1205 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
1206 xcb_parts_idx++;
1207 xcb_align_to = ALIGNOF(uint32_t);
1208 }
1209 if(value_mask & XCB_SYNC_CA_DELTA) {
1210 /* xcb_sync_create_alarm_value_list_t.delta */
1211 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->delta;
1212 xcb_block_len += sizeof(xcb_sync_int64_t);
1213 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_int64_t);
1214 xcb_parts_idx++;
1215 xcb_align_to = ALIGNOF(xcb_sync_int64_t);
1216 }
1217 if(value_mask & XCB_SYNC_CA_EVENTS) {
1218 /* xcb_sync_create_alarm_value_list_t.events */
1219 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->events;
1220 xcb_block_len += sizeof(uint32_t);
1221 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
1222 xcb_parts_idx++;
1223 xcb_align_to = ALIGNOF(uint32_t);
1224 }
1225 /* insert padding */
1226 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1227 xcb_buffer_len += xcb_block_len + xcb_pad;
1228 if (0 != xcb_pad) {
1229 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
1230 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
1231 xcb_parts_idx++;
1232 xcb_pad = 0;
1233 }
1234 xcb_block_len = 0;
1235
1236 if (NULL == xcb_out) {
1237 /* allocate memory */
1238 xcb_out = malloc(xcb_buffer_len);
1239 *_buffer = xcb_out;
1240 }
1241
1242 xcb_tmp = xcb_out;
1243 for(i=0; i<xcb_parts_idx; i++) {
1244 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
1245 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
1246 if (0 != xcb_parts[i].iov_len)
1247 xcb_tmp += xcb_parts[i].iov_len;
1248 }
1249
1250 return xcb_buffer_len;
1251 }
1252
1253 int
1254 xcb_sync_create_alarm_value_list_unpack (const void *_buffer /**< */,
1255 uint32_t value_mask /**< */,
1256 xcb_sync_create_alarm_value_list_t *_aux /**< */)
1257 {
1258 char *xcb_tmp = (char *)_buffer;
1259 unsigned int xcb_buffer_len = 0;
1260 unsigned int xcb_block_len = 0;
1261 unsigned int xcb_pad = 0;
1262 unsigned int xcb_align_to = 0;
1263
1264
1265 if(value_mask & XCB_SYNC_CA_COUNTER) {
1266 /* xcb_sync_create_alarm_value_list_t.counter */
1267 _aux->counter = *(xcb_sync_counter_t *)xcb_tmp;
1268 xcb_block_len += sizeof(xcb_sync_counter_t);
1269 xcb_tmp += sizeof(xcb_sync_counter_t);
1270 xcb_align_to = ALIGNOF(xcb_sync_counter_t);
1271 }
1272 if(value_mask & XCB_SYNC_CA_VALUE_TYPE) {
1273 /* xcb_sync_create_alarm_value_list_t.valueType */
1274 _aux->valueType = *(uint32_t *)xcb_tmp;
1275 xcb_block_len += sizeof(uint32_t);
1276 xcb_tmp += sizeof(uint32_t);
1277 xcb_align_to = ALIGNOF(uint32_t);
1278 }
1279 if(value_mask & XCB_SYNC_CA_VALUE) {
1280 /* xcb_sync_create_alarm_value_list_t.value */
1281 _aux->value = *(xcb_sync_int64_t *)xcb_tmp;
1282 xcb_block_len += sizeof(xcb_sync_int64_t);
1283 xcb_tmp += sizeof(xcb_sync_int64_t);
1284 xcb_align_to = ALIGNOF(xcb_sync_int64_t);
1285 }
1286 if(value_mask & XCB_SYNC_CA_TEST_TYPE) {
1287 /* xcb_sync_create_alarm_value_list_t.testType */
1288 _aux->testType = *(uint32_t *)xcb_tmp;
1289 xcb_block_len += sizeof(uint32_t);
1290 xcb_tmp += sizeof(uint32_t);
1291 xcb_align_to = ALIGNOF(uint32_t);
1292 }
1293 if(value_mask & XCB_SYNC_CA_DELTA) {
1294 /* xcb_sync_create_alarm_value_list_t.delta */
1295 _aux->delta = *(xcb_sync_int64_t *)xcb_tmp;
1296 xcb_block_len += sizeof(xcb_sync_int64_t);
1297 xcb_tmp += sizeof(xcb_sync_int64_t);
1298 xcb_align_to = ALIGNOF(xcb_sync_int64_t);
1299 }
1300 if(value_mask & XCB_SYNC_CA_EVENTS) {
1301 /* xcb_sync_create_alarm_value_list_t.events */
1302 _aux->events = *(uint32_t *)xcb_tmp;
1303 xcb_block_len += sizeof(uint32_t);
1304 xcb_tmp += sizeof(uint32_t);
1305 xcb_align_to = ALIGNOF(uint32_t);
1306 }
1307 /* insert padding */
1308 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1309 xcb_buffer_len += xcb_block_len + xcb_pad;
1310 if (0 != xcb_pad) {
1311 xcb_tmp += xcb_pad;
1312 xcb_pad = 0;
1313 }
1314 xcb_block_len = 0;
1315
1316 return xcb_buffer_len;
1317 }
1318
1319 int
1320 xcb_sync_create_alarm_value_list_sizeof (const void *_buffer /**< */,
1321 uint32_t value_mask /**< */)
1322 {
1323 xcb_sync_create_alarm_value_list_t _aux;
1324 return xcb_sync_create_alarm_value_list_unpack(_buffer, value_mask, &_aux);
1325 }
1326
1327
1328 /*****************************************************************************
1329 **
1330 ** xcb_void_cookie_t xcb_sync_create_alarm_checked
1331 **
1332 ** @param xcb_connection_t *c
1333 ** @param xcb_sync_alarm_t id
1334 ** @param uint32_t value_mask
1335 ** @param const void *value_list
1336 ** @returns xcb_void_cookie_t
1337 **
1338 *****************************************************************************/
1339
1340 xcb_void_cookie_t
1341 xcb_sync_create_alarm_checked (xcb_connection_t *c /**< */,
1342 xcb_sync_alarm_t id /**< */,
1343 uint32_t value_mask /**< */,
1344 const void *value_list /**< */)
1345 {
1346 static const xcb_protocol_request_t xcb_req = {
1347 /* count */ 3,
1348 /* ext */ &xcb_sync_id,
1349 /* opcode */ XCB_SYNC_CREATE_ALARM,
1350 /* isvoid */ 1
1351 };
1352
1353 struct iovec xcb_parts[5];
1354 xcb_void_cookie_t xcb_ret;
1355 xcb_sync_create_alarm_request_t xcb_out;
1356
1357 xcb_out.id = id;
1358 xcb_out.value_mask = value_mask;
1359
1360 xcb_parts[2].iov_base = (char *) &xcb_out;
1361 xcb_parts[2].iov_len = sizeof(xcb_out);
1362 xcb_parts[3].iov_base = 0;
1363 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1364 /* xcb_sync_create_alarm_value_list_t value_list */
1365 xcb_parts[4].iov_base = (char *) value_list;
1366 xcb_parts[4].iov_len =
1367 xcb_sync_create_alarm_value_list_sizeof (value_list, value_mask);
1368
1369 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1370 return xcb_ret;
1371 }
1372
1373
1374 /*****************************************************************************
1375 **
1376 ** xcb_void_cookie_t xcb_sync_create_alarm
1377 **
1378 ** @param xcb_connection_t *c
1379 ** @param xcb_sync_alarm_t id
1380 ** @param uint32_t value_mask
1381 ** @param const void *value_list
1382 ** @returns xcb_void_cookie_t
1383 **
1384 *****************************************************************************/
1385
1386 xcb_void_cookie_t
1387 xcb_sync_create_alarm (xcb_connection_t *c /**< */,
1388 xcb_sync_alarm_t id /**< */,
1389 uint32_t value_mask /**< */,
1390 const void *value_list /**< */)
1391 {
1392 static const xcb_protocol_request_t xcb_req = {
1393 /* count */ 3,
1394 /* ext */ &xcb_sync_id,
1395 /* opcode */ XCB_SYNC_CREATE_ALARM,
1396 /* isvoid */ 1
1397 };
1398
1399 struct iovec xcb_parts[5];
1400 xcb_void_cookie_t xcb_ret;
1401 xcb_sync_create_alarm_request_t xcb_out;
1402
1403 xcb_out.id = id;
1404 xcb_out.value_mask = value_mask;
1405
1406 xcb_parts[2].iov_base = (char *) &xcb_out;
1407 xcb_parts[2].iov_len = sizeof(xcb_out);
1408 xcb_parts[3].iov_base = 0;
1409 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1410 /* xcb_sync_create_alarm_value_list_t value_list */
1411 xcb_parts[4].iov_base = (char *) value_list;
1412 xcb_parts[4].iov_len =
1413 xcb_sync_create_alarm_value_list_sizeof (value_list, value_mask);
1414
1415 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1416 return xcb_ret;
1417 }
1418
1419
1420 /*****************************************************************************
1421 **
1422 ** xcb_void_cookie_t xcb_sync_create_alarm_aux_checked
1423 **
1424 ** @param xcb_connection_t *c
1425 ** @param xcb_sync_alarm_t id
1426 ** @param uint32_t value_mask
1427 ** @param const xcb_sync_create_alarm_value_list_t *value_list
1428 ** @returns xcb_void_cookie_t
1429 **
1430 *****************************************************************************/
1431
1432 xcb_void_cookie_t
1433 xcb_sync_create_alarm_aux_checked (xcb_connection_t *c /**< */,
1434 xcb_sync_alarm_t id /**< */,
1435 uint32_t value_mask /**< */,
1436 const xcb_sync_create_alarm_value_list_t *value_list /**< */)
1437 {
1438 static const xcb_protocol_request_t xcb_req = {
1439 /* count */ 3,
1440 /* ext */ &xcb_sync_id,
1441 /* opcode */ XCB_SYNC_CREATE_ALARM,
1442 /* isvoid */ 1
1443 };
1444
1445 struct iovec xcb_parts[5];
1446 xcb_void_cookie_t xcb_ret;
1447 xcb_sync_create_alarm_request_t xcb_out;
1448 void *xcb_aux0 = 0;
1449
1450 xcb_out.id = id;
1451 xcb_out.value_mask = value_mask;
1452
1453 xcb_parts[2].iov_base = (char *) &xcb_out;
1454 xcb_parts[2].iov_len = sizeof(xcb_out);
1455 xcb_parts[3].iov_base = 0;
1456 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1457 /* xcb_sync_create_alarm_value_list_t value_list */
1458 xcb_parts[4].iov_len =
1459 xcb_sync_create_alarm_value_list_serialize (&xcb_aux0, value_mask, value_list);
1460 xcb_parts[4].iov_base = xcb_aux0;
1461
1462 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1463 free(xcb_aux0);
1464 return xcb_ret;
1465 }
1466
1467
1468 /*****************************************************************************
1469 **
1470 ** xcb_void_cookie_t xcb_sync_create_alarm_aux
1471 **
1472 ** @param xcb_connection_t *c
1473 ** @param xcb_sync_alarm_t id
1474 ** @param uint32_t value_mask
1475 ** @param const xcb_sync_create_alarm_value_list_t *value_list
1476 ** @returns xcb_void_cookie_t
1477 **
1478 *****************************************************************************/
1479
1480 xcb_void_cookie_t
1481 xcb_sync_create_alarm_aux (xcb_connection_t *c /**< */,
1482 xcb_sync_alarm_t id /**< */,
1483 uint32_t value_mask /**< */,
1484 const xcb_sync_create_alarm_value_list_t *value_list /**< */)
1485 {
1486 static const xcb_protocol_request_t xcb_req = {
1487 /* count */ 3,
1488 /* ext */ &xcb_sync_id,
1489 /* opcode */ XCB_SYNC_CREATE_ALARM,
1490 /* isvoid */ 1
1491 };
1492
1493 struct iovec xcb_parts[5];
1494 xcb_void_cookie_t xcb_ret;
1495 xcb_sync_create_alarm_request_t xcb_out;
1496 void *xcb_aux0 = 0;
1497
1498 xcb_out.id = id;
1499 xcb_out.value_mask = value_mask;
1500
1501 xcb_parts[2].iov_base = (char *) &xcb_out;
1502 xcb_parts[2].iov_len = sizeof(xcb_out);
1503 xcb_parts[3].iov_base = 0;
1504 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1505 /* xcb_sync_create_alarm_value_list_t value_list */
1506 xcb_parts[4].iov_len =
1507 xcb_sync_create_alarm_value_list_serialize (&xcb_aux0, value_mask, value_list);
1508 xcb_parts[4].iov_base = xcb_aux0;
1509
1510 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1511 free(xcb_aux0);
1512 return xcb_ret;
1513 }
1514
1515 int
1516 xcb_sync_change_alarm_value_list_serialize (void **_buffer /**< */,
1517 uint32_t value_mask /**< */,
1518 const xcb_sync_change_alarm_value_list_t *_aux /**< */)
1519 {
1520 char *xcb_out = *_buffer;
1521 unsigned int xcb_buffer_len = 0;
1522 unsigned int xcb_align_to = 0;
1523
1524 unsigned int xcb_pad = 0;
1525 char xcb_pad0[3] = {0, 0, 0};
1526 struct iovec xcb_parts[7];
1527 unsigned int xcb_parts_idx = 0;
1528 unsigned int xcb_block_len = 0;
1529 unsigned int i;
1530 char *xcb_tmp;
1531
1532 if(value_mask & XCB_SYNC_CA_COUNTER) {
1533 /* xcb_sync_change_alarm_value_list_t.counter */
1534 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->counter;
1535 xcb_block_len += sizeof(xcb_sync_counter_t);
1536 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_counter_t);
1537 xcb_parts_idx++;
1538 xcb_align_to = ALIGNOF(xcb_sync_counter_t);
1539 }
1540 if(value_mask & XCB_SYNC_CA_VALUE_TYPE) {
1541 /* xcb_sync_change_alarm_value_list_t.valueType */
1542 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->valueType;
1543 xcb_block_len += sizeof(uint32_t);
1544 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
1545 xcb_parts_idx++;
1546 xcb_align_to = ALIGNOF(uint32_t);
1547 }
1548 if(value_mask & XCB_SYNC_CA_VALUE) {
1549 /* xcb_sync_change_alarm_value_list_t.value */
1550 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->value;
1551 xcb_block_len += sizeof(xcb_sync_int64_t);
1552 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_int64_t);
1553 xcb_parts_idx++;
1554 xcb_align_to = ALIGNOF(xcb_sync_int64_t);
1555 }
1556 if(value_mask & XCB_SYNC_CA_TEST_TYPE) {
1557 /* xcb_sync_change_alarm_value_list_t.testType */
1558 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->testType;
1559 xcb_block_len += sizeof(uint32_t);
1560 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
1561 xcb_parts_idx++;
1562 xcb_align_to = ALIGNOF(uint32_t);
1563 }
1564 if(value_mask & XCB_SYNC_CA_DELTA) {
1565 /* xcb_sync_change_alarm_value_list_t.delta */
1566 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->delta;
1567 xcb_block_len += sizeof(xcb_sync_int64_t);
1568 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_int64_t);
1569 xcb_parts_idx++;
1570 xcb_align_to = ALIGNOF(xcb_sync_int64_t);
1571 }
1572 if(value_mask & XCB_SYNC_CA_EVENTS) {
1573 /* xcb_sync_change_alarm_value_list_t.events */
1574 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->events;
1575 xcb_block_len += sizeof(uint32_t);
1576 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
1577 xcb_parts_idx++;
1578 xcb_align_to = ALIGNOF(uint32_t);
1579 }
1580 /* insert padding */
1581 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1582 xcb_buffer_len += xcb_block_len + xcb_pad;
1583 if (0 != xcb_pad) {
1584 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
1585 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
1586 xcb_parts_idx++;
1587 xcb_pad = 0;
1588 }
1589 xcb_block_len = 0;
1590
1591 if (NULL == xcb_out) {
1592 /* allocate memory */
1593 xcb_out = malloc(xcb_buffer_len);
1594 *_buffer = xcb_out;
1595 }
1596
1597 xcb_tmp = xcb_out;
1598 for(i=0; i<xcb_parts_idx; i++) {
1599 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
1600 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
1601 if (0 != xcb_parts[i].iov_len)
1602 xcb_tmp += xcb_parts[i].iov_len;
1603 }
1604
1605 return xcb_buffer_len;
1606 }
1607
1608 int
1609 xcb_sync_change_alarm_value_list_unpack (const void *_buffer /**< */,
1610 uint32_t value_mask /**< */,
1611 xcb_sync_change_alarm_value_list_t *_aux /**< */)
1612 {
1613 char *xcb_tmp = (char *)_buffer;
1614 unsigned int xcb_buffer_len = 0;
1615 unsigned int xcb_block_len = 0;
1616 unsigned int xcb_pad = 0;
1617 unsigned int xcb_align_to = 0;
1618
1619
1620 if(value_mask & XCB_SYNC_CA_COUNTER) {
1621 /* xcb_sync_change_alarm_value_list_t.counter */
1622 _aux->counter = *(xcb_sync_counter_t *)xcb_tmp;
1623 xcb_block_len += sizeof(xcb_sync_counter_t);
1624 xcb_tmp += sizeof(xcb_sync_counter_t);
1625 xcb_align_to = ALIGNOF(xcb_sync_counter_t);
1626 }
1627 if(value_mask & XCB_SYNC_CA_VALUE_TYPE) {
1628 /* xcb_sync_change_alarm_value_list_t.valueType */
1629 _aux->valueType = *(uint32_t *)xcb_tmp;
1630 xcb_block_len += sizeof(uint32_t);
1631 xcb_tmp += sizeof(uint32_t);
1632 xcb_align_to = ALIGNOF(uint32_t);
1633 }
1634 if(value_mask & XCB_SYNC_CA_VALUE) {
1635 /* xcb_sync_change_alarm_value_list_t.value */
1636 _aux->value = *(xcb_sync_int64_t *)xcb_tmp;
1637 xcb_block_len += sizeof(xcb_sync_int64_t);
1638 xcb_tmp += sizeof(xcb_sync_int64_t);
1639 xcb_align_to = ALIGNOF(xcb_sync_int64_t);
1640 }
1641 if(value_mask & XCB_SYNC_CA_TEST_TYPE) {
1642 /* xcb_sync_change_alarm_value_list_t.testType */
1643 _aux->testType = *(uint32_t *)xcb_tmp;
1644 xcb_block_len += sizeof(uint32_t);
1645 xcb_tmp += sizeof(uint32_t);
1646 xcb_align_to = ALIGNOF(uint32_t);
1647 }
1648 if(value_mask & XCB_SYNC_CA_DELTA) {
1649 /* xcb_sync_change_alarm_value_list_t.delta */
1650 _aux->delta = *(xcb_sync_int64_t *)xcb_tmp;
1651 xcb_block_len += sizeof(xcb_sync_int64_t);
1652 xcb_tmp += sizeof(xcb_sync_int64_t);
1653 xcb_align_to = ALIGNOF(xcb_sync_int64_t);
1654 }
1655 if(value_mask & XCB_SYNC_CA_EVENTS) {
1656 /* xcb_sync_change_alarm_value_list_t.events */
1657 _aux->events = *(uint32_t *)xcb_tmp;
1658 xcb_block_len += sizeof(uint32_t);
1659 xcb_tmp += sizeof(uint32_t);
1660 xcb_align_to = ALIGNOF(uint32_t);
1661 }
1662 /* insert padding */
1663 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1664 xcb_buffer_len += xcb_block_len + xcb_pad;
1665 if (0 != xcb_pad) {
1666 xcb_tmp += xcb_pad;
1667 xcb_pad = 0;
1668 }
1669 xcb_block_len = 0;
1670
1671 return xcb_buffer_len;
1672 }
1673
1674 int
1675 xcb_sync_change_alarm_value_list_sizeof (const void *_buffer /**< */,
1676 uint32_t value_mask /**< */)
1677 {
1678 xcb_sync_change_alarm_value_list_t _aux;
1679 return xcb_sync_change_alarm_value_list_unpack(_buffer, value_mask, &_aux);
1680 }
1681
1682
1683 /*****************************************************************************
1684 **
1685 ** xcb_void_cookie_t xcb_sync_change_alarm_checked
1686 **
1687 ** @param xcb_connection_t *c
1688 ** @param xcb_sync_alarm_t id
1689 ** @param uint32_t value_mask
1690 ** @param const void *value_list
1691 ** @returns xcb_void_cookie_t
1692 **
1693 *****************************************************************************/
1694
1695 xcb_void_cookie_t
1696 xcb_sync_change_alarm_checked (xcb_connection_t *c /**< */,
1697 xcb_sync_alarm_t id /**< */,
1698 uint32_t value_mask /**< */,
1699 const void *value_list /**< */)
1700 {
1701 static const xcb_protocol_request_t xcb_req = {
1702 /* count */ 3,
1703 /* ext */ &xcb_sync_id,
1704 /* opcode */ XCB_SYNC_CHANGE_ALARM,
1705 /* isvoid */ 1
1706 };
1707
1708 struct iovec xcb_parts[5];
1709 xcb_void_cookie_t xcb_ret;
1710 xcb_sync_change_alarm_request_t xcb_out;
1711
1712 xcb_out.id = id;
1713 xcb_out.value_mask = value_mask;
1714
1715 xcb_parts[2].iov_base = (char *) &xcb_out;
1716 xcb_parts[2].iov_len = sizeof(xcb_out);
1717 xcb_parts[3].iov_base = 0;
1718 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1719 /* xcb_sync_change_alarm_value_list_t value_list */
1720 xcb_parts[4].iov_base = (char *) value_list;
1721 xcb_parts[4].iov_len =
1722 xcb_sync_change_alarm_value_list_sizeof (value_list, value_mask);
1723
1724 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1725 return xcb_ret;
1726 }
1727
1728
1729 /*****************************************************************************
1730 **
1731 ** xcb_void_cookie_t xcb_sync_change_alarm
1732 **
1733 ** @param xcb_connection_t *c
1734 ** @param xcb_sync_alarm_t id
1735 ** @param uint32_t value_mask
1736 ** @param const void *value_list
1737 ** @returns xcb_void_cookie_t
1738 **
1739 *****************************************************************************/
1740
1741 xcb_void_cookie_t
1742 xcb_sync_change_alarm (xcb_connection_t *c /**< */,
1743 xcb_sync_alarm_t id /**< */,
1744 uint32_t value_mask /**< */,
1745 const void *value_list /**< */)
1746 {
1747 static const xcb_protocol_request_t xcb_req = {
1748 /* count */ 3,
1749 /* ext */ &xcb_sync_id,
1750 /* opcode */ XCB_SYNC_CHANGE_ALARM,
1751 /* isvoid */ 1
1752 };
1753
1754 struct iovec xcb_parts[5];
1755 xcb_void_cookie_t xcb_ret;
1756 xcb_sync_change_alarm_request_t xcb_out;
1757
1758 xcb_out.id = id;
1759 xcb_out.value_mask = value_mask;
1760
1761 xcb_parts[2].iov_base = (char *) &xcb_out;
1762 xcb_parts[2].iov_len = sizeof(xcb_out);
1763 xcb_parts[3].iov_base = 0;
1764 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1765 /* xcb_sync_change_alarm_value_list_t value_list */
1766 xcb_parts[4].iov_base = (char *) value_list;
1767 xcb_parts[4].iov_len =
1768 xcb_sync_change_alarm_value_list_sizeof (value_list, value_mask);
1769
1770 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1771 return xcb_ret;
1772 }
1773
1774
1775 /*****************************************************************************
1776 **
1777 ** xcb_void_cookie_t xcb_sync_change_alarm_aux_checked
1778 **
1779 ** @param xcb_connection_t *c
1780 ** @param xcb_sync_alarm_t id
1781 ** @param uint32_t value_mask
1782 ** @param const xcb_sync_change_alarm_value_list_t *value_list
1783 ** @returns xcb_void_cookie_t
1784 **
1785 *****************************************************************************/
1786
1787 xcb_void_cookie_t
1788 xcb_sync_change_alarm_aux_checked (xcb_connection_t *c /**< */,
1789 xcb_sync_alarm_t id /**< */,
1790 uint32_t value_mask /**< */,
1791 const xcb_sync_change_alarm_value_list_t *value_list /**< */)
1792 {
1793 static const xcb_protocol_request_t xcb_req = {
1794 /* count */ 3,
1795 /* ext */ &xcb_sync_id,
1796 /* opcode */ XCB_SYNC_CHANGE_ALARM,
1797 /* isvoid */ 1
1798 };
1799
1800 struct iovec xcb_parts[5];
1801 xcb_void_cookie_t xcb_ret;
1802 xcb_sync_change_alarm_request_t xcb_out;
1803 void *xcb_aux0 = 0;
1804
1805 xcb_out.id = id;
1806 xcb_out.value_mask = value_mask;
1807
1808 xcb_parts[2].iov_base = (char *) &xcb_out;
1809 xcb_parts[2].iov_len = sizeof(xcb_out);
1810 xcb_parts[3].iov_base = 0;
1811 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1812 /* xcb_sync_change_alarm_value_list_t value_list */
1813 xcb_parts[4].iov_len =
1814 xcb_sync_change_alarm_value_list_serialize (&xcb_aux0, value_mask, value_list);
1815 xcb_parts[4].iov_base = xcb_aux0;
1816
1817 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1818 free(xcb_aux0);
1819 return xcb_ret;
1820 }
1821
1822
1823 /*****************************************************************************
1824 **
1825 ** xcb_void_cookie_t xcb_sync_change_alarm_aux
1826 **
1827 ** @param xcb_connection_t *c
1828 ** @param xcb_sync_alarm_t id
1829 ** @param uint32_t value_mask
1830 ** @param const xcb_sync_change_alarm_value_list_t *value_list
1831 ** @returns xcb_void_cookie_t
1832 **
1833 *****************************************************************************/
1834
1835 xcb_void_cookie_t
1836 xcb_sync_change_alarm_aux (xcb_connection_t *c /**< */,
1837 xcb_sync_alarm_t id /**< */,
1838 uint32_t value_mask /**< */,
1839 const xcb_sync_change_alarm_value_list_t *value_list /**< */)
1840 {
1841 static const xcb_protocol_request_t xcb_req = {
1842 /* count */ 3,
1843 /* ext */ &xcb_sync_id,
1844 /* opcode */ XCB_SYNC_CHANGE_ALARM,
1845 /* isvoid */ 1
1846 };
1847
1848 struct iovec xcb_parts[5];
1849 xcb_void_cookie_t xcb_ret;
1850 xcb_sync_change_alarm_request_t xcb_out;
1851 void *xcb_aux0 = 0;
1852
1853 xcb_out.id = id;
1854 xcb_out.value_mask = value_mask;
1855
1856 xcb_parts[2].iov_base = (char *) &xcb_out;
1857 xcb_parts[2].iov_len = sizeof(xcb_out);
1858 xcb_parts[3].iov_base = 0;
1859 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1860 /* xcb_sync_change_alarm_value_list_t value_list */
1861 xcb_parts[4].iov_len =
1862 xcb_sync_change_alarm_value_list_serialize (&xcb_aux0, value_mask, value_list);
1863 xcb_parts[4].iov_base = xcb_aux0;
1864
1865 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1866 free(xcb_aux0);
1867 return xcb_ret;
1868 }
1869
1870
1871 /*****************************************************************************
1872 **
1873 ** xcb_void_cookie_t xcb_sync_destroy_alarm_checked
1874 **
1875 ** @param xcb_connection_t *c
1876 ** @param xcb_sync_alarm_t alarm
1877 ** @returns xcb_void_cookie_t
1878 **
1879 *****************************************************************************/
1880
1881 xcb_void_cookie_t
1882 xcb_sync_destroy_alarm_checked (xcb_connection_t *c /**< */,
1883 xcb_sync_alarm_t alarm /**< */)
1884 {
1885 static const xcb_protocol_request_t xcb_req = {
1886 /* count */ 2,
1887 /* ext */ &xcb_sync_id,
1888 /* opcode */ XCB_SYNC_DESTROY_ALARM,
1889 /* isvoid */ 1
1890 };
1891
1892 struct iovec xcb_parts[4];
1893 xcb_void_cookie_t xcb_ret;
1894 xcb_sync_destroy_alarm_request_t xcb_out;
1895
1896 xcb_out.alarm = alarm;
1897
1898 xcb_parts[2].iov_base = (char *) &xcb_out;
1899 xcb_parts[2].iov_len = sizeof(xcb_out);
1900 xcb_parts[3].iov_base = 0;
1901 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1902
1903 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1904 return xcb_ret;
1905 }
1906
1907
1908 /*****************************************************************************
1909 **
1910 ** xcb_void_cookie_t xcb_sync_destroy_alarm
1911 **
1912 ** @param xcb_connection_t *c
1913 ** @param xcb_sync_alarm_t alarm
1914 ** @returns xcb_void_cookie_t
1915 **
1916 *****************************************************************************/
1917
1918 xcb_void_cookie_t
1919 xcb_sync_destroy_alarm (xcb_connection_t *c /**< */,
1920 xcb_sync_alarm_t alarm /**< */)
1921 {
1922 static const xcb_protocol_request_t xcb_req = {
1923 /* count */ 2,
1924 /* ext */ &xcb_sync_id,
1925 /* opcode */ XCB_SYNC_DESTROY_ALARM,
1926 /* isvoid */ 1
1927 };
1928
1929 struct iovec xcb_parts[4];
1930 xcb_void_cookie_t xcb_ret;
1931 xcb_sync_destroy_alarm_request_t xcb_out;
1932
1933 xcb_out.alarm = alarm;
1934
1935 xcb_parts[2].iov_base = (char *) &xcb_out;
1936 xcb_parts[2].iov_len = sizeof(xcb_out);
1937 xcb_parts[3].iov_base = 0;
1938 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1939
1940 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1941 return xcb_ret;
1942 }
1943
1944
1945 /*****************************************************************************
1946 **
1947 ** xcb_sync_query_alarm_cookie_t xcb_sync_query_alarm
1948 **
1949 ** @param xcb_connection_t *c
1950 ** @param xcb_sync_alarm_t alarm
1951 ** @returns xcb_sync_query_alarm_cookie_t
1952 **
1953 *****************************************************************************/
1954
1955 xcb_sync_query_alarm_cookie_t
1956 xcb_sync_query_alarm (xcb_connection_t *c /**< */,
1957 xcb_sync_alarm_t alarm /**< */)
1958 {
1959 static const xcb_protocol_request_t xcb_req = {
1960 /* count */ 2,
1961 /* ext */ &xcb_sync_id,
1962 /* opcode */ XCB_SYNC_QUERY_ALARM,
1963 /* isvoid */ 0
1964 };
1965
1966 struct iovec xcb_parts[4];
1967 xcb_sync_query_alarm_cookie_t xcb_ret;
1968 xcb_sync_query_alarm_request_t xcb_out;
1969
1970 xcb_out.alarm = alarm;
1971
1972 xcb_parts[2].iov_base = (char *) &xcb_out;
1973 xcb_parts[2].iov_len = sizeof(xcb_out);
1974 xcb_parts[3].iov_base = 0;
1975 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1976
1977 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1978 return xcb_ret;
1979 }
1980
1981
1982 /*****************************************************************************
1983 **
1984 ** xcb_sync_query_alarm_cookie_t xcb_sync_query_alarm_unchecked
1985 **
1986 ** @param xcb_connection_t *c
1987 ** @param xcb_sync_alarm_t alarm
1988 ** @returns xcb_sync_query_alarm_cookie_t
1989 **
1990 *****************************************************************************/
1991
1992 xcb_sync_query_alarm_cookie_t
1993 xcb_sync_query_alarm_unchecked (xcb_connection_t *c /**< */,
1994 xcb_sync_alarm_t alarm /**< */)
1995 {
1996 static const xcb_protocol_request_t xcb_req = {
1997 /* count */ 2,
1998 /* ext */ &xcb_sync_id,
1999 /* opcode */ XCB_SYNC_QUERY_ALARM,
2000 /* isvoid */ 0
2001 };
2002
2003 struct iovec xcb_parts[4];
2004 xcb_sync_query_alarm_cookie_t xcb_ret;
2005 xcb_sync_query_alarm_request_t xcb_out;
2006
2007 xcb_out.alarm = alarm;
2008
2009 xcb_parts[2].iov_base = (char *) &xcb_out;
2010 xcb_parts[2].iov_len = sizeof(xcb_out);
2011 xcb_parts[3].iov_base = 0;
2012 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2013
2014 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2015 return xcb_ret;
2016 }
2017
2018
2019 /*****************************************************************************
2020 **
2021 ** xcb_sync_query_alarm_reply_t * xcb_sync_query_alarm_reply
2022 **
2023 ** @param xcb_connection_t *c
2024 ** @param xcb_sync_query_alarm_cookie_t cookie
2025 ** @param xcb_generic_error_t **e
2026 ** @returns xcb_sync_query_alarm_reply_t *
2027 **
2028 *****************************************************************************/
2029
2030 xcb_sync_query_alarm_reply_t *
2031 xcb_sync_query_alarm_reply (xcb_connection_t *c /**< */,
2032 xcb_sync_query_alarm_cookie_t cookie /**< */,
2033 xcb_generic_error_t **e /**< */)
2034 {
2035 return (xcb_sync_query_alarm_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2036 }
2037
2038
2039 /*****************************************************************************
2040 **
2041 ** xcb_void_cookie_t xcb_sync_set_priority_checked
2042 **
2043 ** @param xcb_connection_t *c
2044 ** @param uint32_t id
2045 ** @param int32_t priority
2046 ** @returns xcb_void_cookie_t
2047 **
2048 *****************************************************************************/
2049
2050 xcb_void_cookie_t
2051 xcb_sync_set_priority_checked (xcb_connection_t *c /**< */,
2052 uint32_t id /**< */,
2053 int32_t priority /**< */)
2054 {
2055 static const xcb_protocol_request_t xcb_req = {
2056 /* count */ 2,
2057 /* ext */ &xcb_sync_id,
2058 /* opcode */ XCB_SYNC_SET_PRIORITY,
2059 /* isvoid */ 1
2060 };
2061
2062 struct iovec xcb_parts[4];
2063 xcb_void_cookie_t xcb_ret;
2064 xcb_sync_set_priority_request_t xcb_out;
2065
2066 xcb_out.id = id;
2067 xcb_out.priority = priority;
2068
2069 xcb_parts[2].iov_base = (char *) &xcb_out;
2070 xcb_parts[2].iov_len = sizeof(xcb_out);
2071 xcb_parts[3].iov_base = 0;
2072 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2073
2074 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2075 return xcb_ret;
2076 }
2077
2078
2079 /*****************************************************************************
2080 **
2081 ** xcb_void_cookie_t xcb_sync_set_priority
2082 **
2083 ** @param xcb_connection_t *c
2084 ** @param uint32_t id
2085 ** @param int32_t priority
2086 ** @returns xcb_void_cookie_t
2087 **
2088 *****************************************************************************/
2089
2090 xcb_void_cookie_t
2091 xcb_sync_set_priority (xcb_connection_t *c /**< */,
2092 uint32_t id /**< */,
2093 int32_t priority /**< */)
2094 {
2095 static const xcb_protocol_request_t xcb_req = {
2096 /* count */ 2,
2097 /* ext */ &xcb_sync_id,
2098 /* opcode */ XCB_SYNC_SET_PRIORITY,
2099 /* isvoid */ 1
2100 };
2101
2102 struct iovec xcb_parts[4];
2103 xcb_void_cookie_t xcb_ret;
2104 xcb_sync_set_priority_request_t xcb_out;
2105
2106 xcb_out.id = id;
2107 xcb_out.priority = priority;
2108
2109 xcb_parts[2].iov_base = (char *) &xcb_out;
2110 xcb_parts[2].iov_len = sizeof(xcb_out);
2111 xcb_parts[3].iov_base = 0;
2112 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2113
2114 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2115 return xcb_ret;
2116 }
2117
2118
2119 /*****************************************************************************
2120 **
2121 ** xcb_sync_get_priority_cookie_t xcb_sync_get_priority
2122 **
2123 ** @param xcb_connection_t *c
2124 ** @param uint32_t id
2125 ** @returns xcb_sync_get_priority_cookie_t
2126 **
2127 *****************************************************************************/
2128
2129 xcb_sync_get_priority_cookie_t
2130 xcb_sync_get_priority (xcb_connection_t *c /**< */,
2131 uint32_t id /**< */)
2132 {
2133 static const xcb_protocol_request_t xcb_req = {
2134 /* count */ 2,
2135 /* ext */ &xcb_sync_id,
2136 /* opcode */ XCB_SYNC_GET_PRIORITY,
2137 /* isvoid */ 0
2138 };
2139
2140 struct iovec xcb_parts[4];
2141 xcb_sync_get_priority_cookie_t xcb_ret;
2142 xcb_sync_get_priority_request_t xcb_out;
2143
2144 xcb_out.id = id;
2145
2146 xcb_parts[2].iov_base = (char *) &xcb_out;
2147 xcb_parts[2].iov_len = sizeof(xcb_out);
2148 xcb_parts[3].iov_base = 0;
2149 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2150
2151 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2152 return xcb_ret;
2153 }
2154
2155
2156 /*****************************************************************************
2157 **
2158 ** xcb_sync_get_priority_cookie_t xcb_sync_get_priority_unchecked
2159 **
2160 ** @param xcb_connection_t *c
2161 ** @param uint32_t id
2162 ** @returns xcb_sync_get_priority_cookie_t
2163 **
2164 *****************************************************************************/
2165
2166 xcb_sync_get_priority_cookie_t
2167 xcb_sync_get_priority_unchecked (xcb_connection_t *c /**< */,
2168 uint32_t id /**< */)
2169 {
2170 static const xcb_protocol_request_t xcb_req = {
2171 /* count */ 2,
2172 /* ext */ &xcb_sync_id,
2173 /* opcode */ XCB_SYNC_GET_PRIORITY,
2174 /* isvoid */ 0
2175 };
2176
2177 struct iovec xcb_parts[4];
2178 xcb_sync_get_priority_cookie_t xcb_ret;
2179 xcb_sync_get_priority_request_t xcb_out;
2180
2181 xcb_out.id = id;
2182
2183 xcb_parts[2].iov_base = (char *) &xcb_out;
2184 xcb_parts[2].iov_len = sizeof(xcb_out);
2185 xcb_parts[3].iov_base = 0;
2186 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2187
2188 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2189 return xcb_ret;
2190 }
2191
2192
2193 /*****************************************************************************
2194 **
2195 ** xcb_sync_get_priority_reply_t * xcb_sync_get_priority_reply
2196 **
2197 ** @param xcb_connection_t *c
2198 ** @param xcb_sync_get_priority_cookie_t cookie
2199 ** @param xcb_generic_error_t **e
2200 ** @returns xcb_sync_get_priority_reply_t *
2201 **
2202 *****************************************************************************/
2203
2204 xcb_sync_get_priority_reply_t *
2205 xcb_sync_get_priority_reply (xcb_connection_t *c /**< */,
2206 xcb_sync_get_priority_cookie_t cookie /**< */,
2207 xcb_generic_error_t **e /**< */)
2208 {
2209 return (xcb_sync_get_priority_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2210 }
2211
2212
2213 /*****************************************************************************
2214 **
2215 ** xcb_void_cookie_t xcb_sync_create_fence_checked
2216 **
2217 ** @param xcb_connection_t *c
2218 ** @param xcb_drawable_t drawable
2219 ** @param xcb_sync_fence_t fence
2220 ** @param uint8_t initially_triggered
2221 ** @returns xcb_void_cookie_t
2222 **
2223 *****************************************************************************/
2224
2225 xcb_void_cookie_t
2226 xcb_sync_create_fence_checked (xcb_connection_t *c /**< */,
2227 xcb_drawable_t drawable /**< */,
2228 xcb_sync_fence_t fence /**< */,
2229 uint8_t initially_triggered /**< */)
2230 {
2231 static const xcb_protocol_request_t xcb_req = {
2232 /* count */ 2,
2233 /* ext */ &xcb_sync_id,
2234 /* opcode */ XCB_SYNC_CREATE_FENCE,
2235 /* isvoid */ 1
2236 };
2237
2238 struct iovec xcb_parts[4];
2239 xcb_void_cookie_t xcb_ret;
2240 xcb_sync_create_fence_request_t xcb_out;
2241
2242 xcb_out.drawable = drawable;
2243 xcb_out.fence = fence;
2244 xcb_out.initially_triggered = initially_triggered;
2245
2246 xcb_parts[2].iov_base = (char *) &xcb_out;
2247 xcb_parts[2].iov_len = sizeof(xcb_out);
2248 xcb_parts[3].iov_base = 0;
2249 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2250
2251 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2252 return xcb_ret;
2253 }
2254
2255
2256 /*****************************************************************************
2257 **
2258 ** xcb_void_cookie_t xcb_sync_create_fence
2259 **
2260 ** @param xcb_connection_t *c
2261 ** @param xcb_drawable_t drawable
2262 ** @param xcb_sync_fence_t fence
2263 ** @param uint8_t initially_triggered
2264 ** @returns xcb_void_cookie_t
2265 **
2266 *****************************************************************************/
2267
2268 xcb_void_cookie_t
2269 xcb_sync_create_fence (xcb_connection_t *c /**< */,
2270 xcb_drawable_t drawable /**< */,
2271 xcb_sync_fence_t fence /**< */,
2272 uint8_t initially_triggered /**< */)
2273 {
2274 static const xcb_protocol_request_t xcb_req = {
2275 /* count */ 2,
2276 /* ext */ &xcb_sync_id,
2277 /* opcode */ XCB_SYNC_CREATE_FENCE,
2278 /* isvoid */ 1
2279 };
2280
2281 struct iovec xcb_parts[4];
2282 xcb_void_cookie_t xcb_ret;
2283 xcb_sync_create_fence_request_t xcb_out;
2284
2285 xcb_out.drawable = drawable;
2286 xcb_out.fence = fence;
2287 xcb_out.initially_triggered = initially_triggered;
2288
2289 xcb_parts[2].iov_base = (char *) &xcb_out;
2290 xcb_parts[2].iov_len = sizeof(xcb_out);
2291 xcb_parts[3].iov_base = 0;
2292 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2293
2294 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2295 return xcb_ret;
2296 }
2297
2298
2299 /*****************************************************************************
2300 **
2301 ** xcb_void_cookie_t xcb_sync_trigger_fence_checked
2302 **
2303 ** @param xcb_connection_t *c
2304 ** @param xcb_sync_fence_t fence
2305 ** @returns xcb_void_cookie_t
2306 **
2307 *****************************************************************************/
2308
2309 xcb_void_cookie_t
2310 xcb_sync_trigger_fence_checked (xcb_connection_t *c /**< */,
2311 xcb_sync_fence_t fence /**< */)
2312 {
2313 static const xcb_protocol_request_t xcb_req = {
2314 /* count */ 2,
2315 /* ext */ &xcb_sync_id,
2316 /* opcode */ XCB_SYNC_TRIGGER_FENCE,
2317 /* isvoid */ 1
2318 };
2319
2320 struct iovec xcb_parts[4];
2321 xcb_void_cookie_t xcb_ret;
2322 xcb_sync_trigger_fence_request_t xcb_out;
2323
2324 xcb_out.fence = fence;
2325
2326 xcb_parts[2].iov_base = (char *) &xcb_out;
2327 xcb_parts[2].iov_len = sizeof(xcb_out);
2328 xcb_parts[3].iov_base = 0;
2329 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2330
2331 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2332 return xcb_ret;
2333 }
2334
2335
2336 /*****************************************************************************
2337 **
2338 ** xcb_void_cookie_t xcb_sync_trigger_fence
2339 **
2340 ** @param xcb_connection_t *c
2341 ** @param xcb_sync_fence_t fence
2342 ** @returns xcb_void_cookie_t
2343 **
2344 *****************************************************************************/
2345
2346 xcb_void_cookie_t
2347 xcb_sync_trigger_fence (xcb_connection_t *c /**< */,
2348 xcb_sync_fence_t fence /**< */)
2349 {
2350 static const xcb_protocol_request_t xcb_req = {
2351 /* count */ 2,
2352 /* ext */ &xcb_sync_id,
2353 /* opcode */ XCB_SYNC_TRIGGER_FENCE,
2354 /* isvoid */ 1
2355 };
2356
2357 struct iovec xcb_parts[4];
2358 xcb_void_cookie_t xcb_ret;
2359 xcb_sync_trigger_fence_request_t xcb_out;
2360
2361 xcb_out.fence = fence;
2362
2363 xcb_parts[2].iov_base = (char *) &xcb_out;
2364 xcb_parts[2].iov_len = sizeof(xcb_out);
2365 xcb_parts[3].iov_base = 0;
2366 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2367
2368 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2369 return xcb_ret;
2370 }
2371
2372
2373 /*****************************************************************************
2374 **
2375 ** xcb_void_cookie_t xcb_sync_reset_fence_checked
2376 **
2377 ** @param xcb_connection_t *c
2378 ** @param xcb_sync_fence_t fence
2379 ** @returns xcb_void_cookie_t
2380 **
2381 *****************************************************************************/
2382
2383 xcb_void_cookie_t
2384 xcb_sync_reset_fence_checked (xcb_connection_t *c /**< */,
2385 xcb_sync_fence_t fence /**< */)
2386 {
2387 static const xcb_protocol_request_t xcb_req = {
2388 /* count */ 2,
2389 /* ext */ &xcb_sync_id,
2390 /* opcode */ XCB_SYNC_RESET_FENCE,
2391 /* isvoid */ 1
2392 };
2393
2394 struct iovec xcb_parts[4];
2395 xcb_void_cookie_t xcb_ret;
2396 xcb_sync_reset_fence_request_t xcb_out;
2397
2398 xcb_out.fence = fence;
2399
2400 xcb_parts[2].iov_base = (char *) &xcb_out;
2401 xcb_parts[2].iov_len = sizeof(xcb_out);
2402 xcb_parts[3].iov_base = 0;
2403 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2404
2405 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2406 return xcb_ret;
2407 }
2408
2409
2410 /*****************************************************************************
2411 **
2412 ** xcb_void_cookie_t xcb_sync_reset_fence
2413 **
2414 ** @param xcb_connection_t *c
2415 ** @param xcb_sync_fence_t fence
2416 ** @returns xcb_void_cookie_t
2417 **
2418 *****************************************************************************/
2419
2420 xcb_void_cookie_t
2421 xcb_sync_reset_fence (xcb_connection_t *c /**< */,
2422 xcb_sync_fence_t fence /**< */)
2423 {
2424 static const xcb_protocol_request_t xcb_req = {
2425 /* count */ 2,
2426 /* ext */ &xcb_sync_id,
2427 /* opcode */ XCB_SYNC_RESET_FENCE,
2428 /* isvoid */ 1
2429 };
2430
2431 struct iovec xcb_parts[4];
2432 xcb_void_cookie_t xcb_ret;
2433 xcb_sync_reset_fence_request_t xcb_out;
2434
2435 xcb_out.fence = fence;
2436
2437 xcb_parts[2].iov_base = (char *) &xcb_out;
2438 xcb_parts[2].iov_len = sizeof(xcb_out);
2439 xcb_parts[3].iov_base = 0;
2440 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2441
2442 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2443 return xcb_ret;
2444 }
2445
2446
2447 /*****************************************************************************
2448 **
2449 ** xcb_void_cookie_t xcb_sync_destroy_fence_checked
2450 **
2451 ** @param xcb_connection_t *c
2452 ** @param xcb_sync_fence_t fence
2453 ** @returns xcb_void_cookie_t
2454 **
2455 *****************************************************************************/
2456
2457 xcb_void_cookie_t
2458 xcb_sync_destroy_fence_checked (xcb_connection_t *c /**< */,
2459 xcb_sync_fence_t fence /**< */)
2460 {
2461 static const xcb_protocol_request_t xcb_req = {
2462 /* count */ 2,
2463 /* ext */ &xcb_sync_id,
2464 /* opcode */ XCB_SYNC_DESTROY_FENCE,
2465 /* isvoid */ 1
2466 };
2467
2468 struct iovec xcb_parts[4];
2469 xcb_void_cookie_t xcb_ret;
2470 xcb_sync_destroy_fence_request_t xcb_out;
2471
2472 xcb_out.fence = fence;
2473
2474 xcb_parts[2].iov_base = (char *) &xcb_out;
2475 xcb_parts[2].iov_len = sizeof(xcb_out);
2476 xcb_parts[3].iov_base = 0;
2477 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2478
2479 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2480 return xcb_ret;
2481 }
2482
2483
2484 /*****************************************************************************
2485 **
2486 ** xcb_void_cookie_t xcb_sync_destroy_fence
2487 **
2488 ** @param xcb_connection_t *c
2489 ** @param xcb_sync_fence_t fence
2490 ** @returns xcb_void_cookie_t
2491 **
2492 *****************************************************************************/
2493
2494 xcb_void_cookie_t
2495 xcb_sync_destroy_fence (xcb_connection_t *c /**< */,
2496 xcb_sync_fence_t fence /**< */)
2497 {
2498 static const xcb_protocol_request_t xcb_req = {
2499 /* count */ 2,
2500 /* ext */ &xcb_sync_id,
2501 /* opcode */ XCB_SYNC_DESTROY_FENCE,
2502 /* isvoid */ 1
2503 };
2504
2505 struct iovec xcb_parts[4];
2506 xcb_void_cookie_t xcb_ret;
2507 xcb_sync_destroy_fence_request_t xcb_out;
2508
2509 xcb_out.fence = fence;
2510
2511 xcb_parts[2].iov_base = (char *) &xcb_out;
2512 xcb_parts[2].iov_len = sizeof(xcb_out);
2513 xcb_parts[3].iov_base = 0;
2514 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2515
2516 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2517 return xcb_ret;
2518 }
2519
2520
2521 /*****************************************************************************
2522 **
2523 ** xcb_sync_query_fence_cookie_t xcb_sync_query_fence
2524 **
2525 ** @param xcb_connection_t *c
2526 ** @param xcb_sync_fence_t fence
2527 ** @returns xcb_sync_query_fence_cookie_t
2528 **
2529 *****************************************************************************/
2530
2531 xcb_sync_query_fence_cookie_t
2532 xcb_sync_query_fence (xcb_connection_t *c /**< */,
2533 xcb_sync_fence_t fence /**< */)
2534 {
2535 static const xcb_protocol_request_t xcb_req = {
2536 /* count */ 2,
2537 /* ext */ &xcb_sync_id,
2538 /* opcode */ XCB_SYNC_QUERY_FENCE,
2539 /* isvoid */ 0
2540 };
2541
2542 struct iovec xcb_parts[4];
2543 xcb_sync_query_fence_cookie_t xcb_ret;
2544 xcb_sync_query_fence_request_t xcb_out;
2545
2546 xcb_out.fence = fence;
2547
2548 xcb_parts[2].iov_base = (char *) &xcb_out;
2549 xcb_parts[2].iov_len = sizeof(xcb_out);
2550 xcb_parts[3].iov_base = 0;
2551 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2552
2553 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2554 return xcb_ret;
2555 }
2556
2557
2558 /*****************************************************************************
2559 **
2560 ** xcb_sync_query_fence_cookie_t xcb_sync_query_fence_unchecked
2561 **
2562 ** @param xcb_connection_t *c
2563 ** @param xcb_sync_fence_t fence
2564 ** @returns xcb_sync_query_fence_cookie_t
2565 **
2566 *****************************************************************************/
2567
2568 xcb_sync_query_fence_cookie_t
2569 xcb_sync_query_fence_unchecked (xcb_connection_t *c /**< */,
2570 xcb_sync_fence_t fence /**< */)
2571 {
2572 static const xcb_protocol_request_t xcb_req = {
2573 /* count */ 2,
2574 /* ext */ &xcb_sync_id,
2575 /* opcode */ XCB_SYNC_QUERY_FENCE,
2576 /* isvoid */ 0
2577 };
2578
2579 struct iovec xcb_parts[4];
2580 xcb_sync_query_fence_cookie_t xcb_ret;
2581 xcb_sync_query_fence_request_t xcb_out;
2582
2583 xcb_out.fence = fence;
2584
2585 xcb_parts[2].iov_base = (char *) &xcb_out;
2586 xcb_parts[2].iov_len = sizeof(xcb_out);
2587 xcb_parts[3].iov_base = 0;
2588 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2589
2590 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2591 return xcb_ret;
2592 }
2593
2594
2595 /*****************************************************************************
2596 **
2597 ** xcb_sync_query_fence_reply_t * xcb_sync_query_fence_reply
2598 **
2599 ** @param xcb_connection_t *c
2600 ** @param xcb_sync_query_fence_cookie_t cookie
2601 ** @param xcb_generic_error_t **e
2602 ** @returns xcb_sync_query_fence_reply_t *
2603 **
2604 *****************************************************************************/
2605
2606 xcb_sync_query_fence_reply_t *
2607 xcb_sync_query_fence_reply (xcb_connection_t *c /**< */,
2608 xcb_sync_query_fence_cookie_t cookie /**< */,
2609 xcb_generic_error_t **e /**< */)
2610 {
2611 return (xcb_sync_query_fence_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2612 }
2613
2614 int
2615 xcb_sync_await_fence_sizeof (const void *_buffer /**< */,
2616 uint32_t fence_list_len /**< */)
2617 {
2618 char *xcb_tmp = (char *)_buffer;
2619 unsigned int xcb_buffer_len = 0;
2620 unsigned int xcb_block_len = 0;
2621 unsigned int xcb_pad = 0;
2622 unsigned int xcb_align_to = 0;
2623
2624
2625 xcb_block_len += sizeof(xcb_sync_await_fence_request_t);
2626 xcb_tmp += xcb_block_len;
2627 xcb_buffer_len += xcb_block_len;
2628 xcb_block_len = 0;
2629 /* fence_list */
2630 xcb_block_len += fence_list_len * sizeof(xcb_sync_fence_t);
2631 xcb_tmp += xcb_block_len;
2632 xcb_align_to = ALIGNOF(xcb_sync_fence_t);
2633 /* insert padding */
2634 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2635 xcb_buffer_len += xcb_block_len + xcb_pad;
2636 if (0 != xcb_pad) {
2637 xcb_tmp += xcb_pad;
2638 xcb_pad = 0;
2639 }
2640 xcb_block_len = 0;
2641
2642 return xcb_buffer_len;
2643 }
2644
2645
2646 /*****************************************************************************
2647 **
2648 ** xcb_void_cookie_t xcb_sync_await_fence_checked
2649 **
2650 ** @param xcb_connection_t *c
2651 ** @param uint32_t fence_list_len
2652 ** @param const xcb_sync_fence_t *fence_list
2653 ** @returns xcb_void_cookie_t
2654 **
2655 *****************************************************************************/
2656
2657 xcb_void_cookie_t
2658 xcb_sync_await_fence_checked (xcb_connection_t *c /**< */,
2659 uint32_t fence_list_len /**< */,
2660 const xcb_sync_fence_t *fence_list /**< */)
2661 {
2662 static const xcb_protocol_request_t xcb_req = {
2663 /* count */ 4,
2664 /* ext */ &xcb_sync_id,
2665 /* opcode */ XCB_SYNC_AWAIT_FENCE,
2666 /* isvoid */ 1
2667 };
2668
2669 struct iovec xcb_parts[6];
2670 xcb_void_cookie_t xcb_ret;
2671 xcb_sync_await_fence_request_t xcb_out;
2672
2673
2674 xcb_parts[2].iov_base = (char *) &xcb_out;
2675 xcb_parts[2].iov_len = sizeof(xcb_out);
2676 xcb_parts[3].iov_base = 0;
2677 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2678 /* xcb_sync_fence_t fence_list */
2679 xcb_parts[4].iov_base = (char *) fence_list;
2680 xcb_parts[4].iov_len = fence_list_len * sizeof(xcb_sync_fence_t);
2681 xcb_parts[5].iov_base = 0;
2682 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2683
2684 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2685 return xcb_ret;
2686 }
2687
2688
2689 /*****************************************************************************
2690 **
2691 ** xcb_void_cookie_t xcb_sync_await_fence
2692 **
2693 ** @param xcb_connection_t *c
2694 ** @param uint32_t fence_list_len
2695 ** @param const xcb_sync_fence_t *fence_list
2696 ** @returns xcb_void_cookie_t
2697 **
2698 *****************************************************************************/
2699
2700 xcb_void_cookie_t
2701 xcb_sync_await_fence (xcb_connection_t *c /**< */,
2702 uint32_t fence_list_len /**< */,
2703 const xcb_sync_fence_t *fence_list /**< */)
2704 {
2705 static const xcb_protocol_request_t xcb_req = {
2706 /* count */ 4,
2707 /* ext */ &xcb_sync_id,
2708 /* opcode */ XCB_SYNC_AWAIT_FENCE,
2709 /* isvoid */ 1
2710 };
2711
2712 struct iovec xcb_parts[6];
2713 xcb_void_cookie_t xcb_ret;
2714 xcb_sync_await_fence_request_t xcb_out;
2715
2716
2717 xcb_parts[2].iov_base = (char *) &xcb_out;
2718 xcb_parts[2].iov_len = sizeof(xcb_out);
2719 xcb_parts[3].iov_base = 0;
2720 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2721 /* xcb_sync_fence_t fence_list */
2722 xcb_parts[4].iov_base = (char *) fence_list;
2723 xcb_parts[4].iov_len = fence_list_len * sizeof(xcb_sync_fence_t);
2724 xcb_parts[5].iov_base = 0;
2725 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2726
2727 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2728 return xcb_ret;
2729 }
2730
2731