xref: /netbsd-src/external/mit/xorg/lib/libxcb/files/xinput.c (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
1 /*
2  * This file generated automatically from xinput.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 "xinput.h"
15 
16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
17 #include "xproto.h"
18 #include "render.h"
19 #include "shape.h"
20 #include "xfixes.h"
21 
22 xcb_extension_t xcb_input_id = { "XInputExtension", 0 };
23 
24 
25 /*****************************************************************************
26  **
27  ** void xcb_input_event_class_next
28  **
29  ** @param xcb_input_event_class_iterator_t *i
30  ** @returns void
31  **
32  *****************************************************************************/
33 
34 void
35 xcb_input_event_class_next (xcb_input_event_class_iterator_t *i  /**< */)
36 {
37     --i->rem;
38     ++i->data;
39     i->index += sizeof(xcb_input_event_class_t);
40 }
41 
42 
43 /*****************************************************************************
44  **
45  ** xcb_generic_iterator_t xcb_input_event_class_end
46  **
47  ** @param xcb_input_event_class_iterator_t i
48  ** @returns xcb_generic_iterator_t
49  **
50  *****************************************************************************/
51 
52 xcb_generic_iterator_t
53 xcb_input_event_class_end (xcb_input_event_class_iterator_t i  /**< */)
54 {
55     xcb_generic_iterator_t ret;
56     ret.data = i.data + i.rem;
57     ret.index = i.index + ((char *) ret.data - (char *) i.data);
58     ret.rem = 0;
59     return ret;
60 }
61 
62 
63 /*****************************************************************************
64  **
65  ** void xcb_input_key_code_next
66  **
67  ** @param xcb_input_key_code_iterator_t *i
68  ** @returns void
69  **
70  *****************************************************************************/
71 
72 void
73 xcb_input_key_code_next (xcb_input_key_code_iterator_t *i  /**< */)
74 {
75     --i->rem;
76     ++i->data;
77     i->index += sizeof(xcb_input_key_code_t);
78 }
79 
80 
81 /*****************************************************************************
82  **
83  ** xcb_generic_iterator_t xcb_input_key_code_end
84  **
85  ** @param xcb_input_key_code_iterator_t i
86  ** @returns xcb_generic_iterator_t
87  **
88  *****************************************************************************/
89 
90 xcb_generic_iterator_t
91 xcb_input_key_code_end (xcb_input_key_code_iterator_t i  /**< */)
92 {
93     xcb_generic_iterator_t ret;
94     ret.data = i.data + i.rem;
95     ret.index = i.index + ((char *) ret.data - (char *) i.data);
96     ret.rem = 0;
97     return ret;
98 }
99 
100 
101 /*****************************************************************************
102  **
103  ** void xcb_input_device_id_next
104  **
105  ** @param xcb_input_device_id_iterator_t *i
106  ** @returns void
107  **
108  *****************************************************************************/
109 
110 void
111 xcb_input_device_id_next (xcb_input_device_id_iterator_t *i  /**< */)
112 {
113     --i->rem;
114     ++i->data;
115     i->index += sizeof(xcb_input_device_id_t);
116 }
117 
118 
119 /*****************************************************************************
120  **
121  ** xcb_generic_iterator_t xcb_input_device_id_end
122  **
123  ** @param xcb_input_device_id_iterator_t i
124  ** @returns xcb_generic_iterator_t
125  **
126  *****************************************************************************/
127 
128 xcb_generic_iterator_t
129 xcb_input_device_id_end (xcb_input_device_id_iterator_t i  /**< */)
130 {
131     xcb_generic_iterator_t ret;
132     ret.data = i.data + i.rem;
133     ret.index = i.index + ((char *) ret.data - (char *) i.data);
134     ret.rem = 0;
135     return ret;
136 }
137 
138 
139 /*****************************************************************************
140  **
141  ** void xcb_input_fp1616_next
142  **
143  ** @param xcb_input_fp1616_iterator_t *i
144  ** @returns void
145  **
146  *****************************************************************************/
147 
148 void
149 xcb_input_fp1616_next (xcb_input_fp1616_iterator_t *i  /**< */)
150 {
151     --i->rem;
152     ++i->data;
153     i->index += sizeof(xcb_input_fp1616_t);
154 }
155 
156 
157 /*****************************************************************************
158  **
159  ** xcb_generic_iterator_t xcb_input_fp1616_end
160  **
161  ** @param xcb_input_fp1616_iterator_t i
162  ** @returns xcb_generic_iterator_t
163  **
164  *****************************************************************************/
165 
166 xcb_generic_iterator_t
167 xcb_input_fp1616_end (xcb_input_fp1616_iterator_t i  /**< */)
168 {
169     xcb_generic_iterator_t ret;
170     ret.data = i.data + i.rem;
171     ret.index = i.index + ((char *) ret.data - (char *) i.data);
172     ret.rem = 0;
173     return ret;
174 }
175 
176 
177 /*****************************************************************************
178  **
179  ** void xcb_input_fp3232_next
180  **
181  ** @param xcb_input_fp3232_iterator_t *i
182  ** @returns void
183  **
184  *****************************************************************************/
185 
186 void
187 xcb_input_fp3232_next (xcb_input_fp3232_iterator_t *i  /**< */)
188 {
189     --i->rem;
190     ++i->data;
191     i->index += sizeof(xcb_input_fp3232_t);
192 }
193 
194 
195 /*****************************************************************************
196  **
197  ** xcb_generic_iterator_t xcb_input_fp3232_end
198  **
199  ** @param xcb_input_fp3232_iterator_t i
200  ** @returns xcb_generic_iterator_t
201  **
202  *****************************************************************************/
203 
204 xcb_generic_iterator_t
205 xcb_input_fp3232_end (xcb_input_fp3232_iterator_t i  /**< */)
206 {
207     xcb_generic_iterator_t ret;
208     ret.data = i.data + i.rem;
209     ret.index = i.index + ((char *) ret.data - (char *) i.data);
210     ret.rem = 0;
211     return ret;
212 }
213 
214 int
215 xcb_input_get_extension_version_sizeof (const void  *_buffer  /**< */)
216 {
217     char *xcb_tmp = (char *)_buffer;
218     const xcb_input_get_extension_version_request_t *_aux = (xcb_input_get_extension_version_request_t *)_buffer;
219     unsigned int xcb_buffer_len = 0;
220     unsigned int xcb_block_len = 0;
221     unsigned int xcb_pad = 0;
222     unsigned int xcb_align_to = 0;
223 
224 
225     xcb_block_len += sizeof(xcb_input_get_extension_version_request_t);
226     xcb_tmp += xcb_block_len;
227     xcb_buffer_len += xcb_block_len;
228     xcb_block_len = 0;
229     /* name */
230     xcb_block_len += _aux->name_len * sizeof(char);
231     xcb_tmp += xcb_block_len;
232     xcb_align_to = ALIGNOF(char);
233     /* insert padding */
234     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
235     xcb_buffer_len += xcb_block_len + xcb_pad;
236     if (0 != xcb_pad) {
237         xcb_tmp += xcb_pad;
238         xcb_pad = 0;
239     }
240     xcb_block_len = 0;
241 
242     return xcb_buffer_len;
243 }
244 
245 
246 /*****************************************************************************
247  **
248  ** xcb_input_get_extension_version_cookie_t xcb_input_get_extension_version
249  **
250  ** @param xcb_connection_t *c
251  ** @param uint16_t          name_len
252  ** @param const char       *name
253  ** @returns xcb_input_get_extension_version_cookie_t
254  **
255  *****************************************************************************/
256 
257 xcb_input_get_extension_version_cookie_t
258 xcb_input_get_extension_version (xcb_connection_t *c  /**< */,
259                                  uint16_t          name_len  /**< */,
260                                  const char       *name  /**< */)
261 {
262     static const xcb_protocol_request_t xcb_req = {
263         /* count */ 4,
264         /* ext */ &xcb_input_id,
265         /* opcode */ XCB_INPUT_GET_EXTENSION_VERSION,
266         /* isvoid */ 0
267     };
268 
269     struct iovec xcb_parts[6];
270     xcb_input_get_extension_version_cookie_t xcb_ret;
271     xcb_input_get_extension_version_request_t xcb_out;
272 
273     xcb_out.name_len = name_len;
274     memset(xcb_out.pad0, 0, 2);
275 
276     xcb_parts[2].iov_base = (char *) &xcb_out;
277     xcb_parts[2].iov_len = sizeof(xcb_out);
278     xcb_parts[3].iov_base = 0;
279     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
280     /* char name */
281     xcb_parts[4].iov_base = (char *) name;
282     xcb_parts[4].iov_len = name_len * sizeof(char);
283     xcb_parts[5].iov_base = 0;
284     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
285 
286     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
287     return xcb_ret;
288 }
289 
290 
291 /*****************************************************************************
292  **
293  ** xcb_input_get_extension_version_cookie_t xcb_input_get_extension_version_unchecked
294  **
295  ** @param xcb_connection_t *c
296  ** @param uint16_t          name_len
297  ** @param const char       *name
298  ** @returns xcb_input_get_extension_version_cookie_t
299  **
300  *****************************************************************************/
301 
302 xcb_input_get_extension_version_cookie_t
303 xcb_input_get_extension_version_unchecked (xcb_connection_t *c  /**< */,
304                                            uint16_t          name_len  /**< */,
305                                            const char       *name  /**< */)
306 {
307     static const xcb_protocol_request_t xcb_req = {
308         /* count */ 4,
309         /* ext */ &xcb_input_id,
310         /* opcode */ XCB_INPUT_GET_EXTENSION_VERSION,
311         /* isvoid */ 0
312     };
313 
314     struct iovec xcb_parts[6];
315     xcb_input_get_extension_version_cookie_t xcb_ret;
316     xcb_input_get_extension_version_request_t xcb_out;
317 
318     xcb_out.name_len = name_len;
319     memset(xcb_out.pad0, 0, 2);
320 
321     xcb_parts[2].iov_base = (char *) &xcb_out;
322     xcb_parts[2].iov_len = sizeof(xcb_out);
323     xcb_parts[3].iov_base = 0;
324     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
325     /* char name */
326     xcb_parts[4].iov_base = (char *) name;
327     xcb_parts[4].iov_len = name_len * sizeof(char);
328     xcb_parts[5].iov_base = 0;
329     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
330 
331     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
332     return xcb_ret;
333 }
334 
335 
336 /*****************************************************************************
337  **
338  ** xcb_input_get_extension_version_reply_t * xcb_input_get_extension_version_reply
339  **
340  ** @param xcb_connection_t                          *c
341  ** @param xcb_input_get_extension_version_cookie_t   cookie
342  ** @param xcb_generic_error_t                      **e
343  ** @returns xcb_input_get_extension_version_reply_t *
344  **
345  *****************************************************************************/
346 
347 xcb_input_get_extension_version_reply_t *
348 xcb_input_get_extension_version_reply (xcb_connection_t                          *c  /**< */,
349                                        xcb_input_get_extension_version_cookie_t   cookie  /**< */,
350                                        xcb_generic_error_t                      **e  /**< */)
351 {
352     return (xcb_input_get_extension_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
353 }
354 
355 
356 /*****************************************************************************
357  **
358  ** void xcb_input_device_info_next
359  **
360  ** @param xcb_input_device_info_iterator_t *i
361  ** @returns void
362  **
363  *****************************************************************************/
364 
365 void
366 xcb_input_device_info_next (xcb_input_device_info_iterator_t *i  /**< */)
367 {
368     --i->rem;
369     ++i->data;
370     i->index += sizeof(xcb_input_device_info_t);
371 }
372 
373 
374 /*****************************************************************************
375  **
376  ** xcb_generic_iterator_t xcb_input_device_info_end
377  **
378  ** @param xcb_input_device_info_iterator_t i
379  ** @returns xcb_generic_iterator_t
380  **
381  *****************************************************************************/
382 
383 xcb_generic_iterator_t
384 xcb_input_device_info_end (xcb_input_device_info_iterator_t i  /**< */)
385 {
386     xcb_generic_iterator_t ret;
387     ret.data = i.data + i.rem;
388     ret.index = i.index + ((char *) ret.data - (char *) i.data);
389     ret.rem = 0;
390     return ret;
391 }
392 
393 
394 /*****************************************************************************
395  **
396  ** void xcb_input_key_info_next
397  **
398  ** @param xcb_input_key_info_iterator_t *i
399  ** @returns void
400  **
401  *****************************************************************************/
402 
403 void
404 xcb_input_key_info_next (xcb_input_key_info_iterator_t *i  /**< */)
405 {
406     --i->rem;
407     ++i->data;
408     i->index += sizeof(xcb_input_key_info_t);
409 }
410 
411 
412 /*****************************************************************************
413  **
414  ** xcb_generic_iterator_t xcb_input_key_info_end
415  **
416  ** @param xcb_input_key_info_iterator_t i
417  ** @returns xcb_generic_iterator_t
418  **
419  *****************************************************************************/
420 
421 xcb_generic_iterator_t
422 xcb_input_key_info_end (xcb_input_key_info_iterator_t i  /**< */)
423 {
424     xcb_generic_iterator_t ret;
425     ret.data = i.data + i.rem;
426     ret.index = i.index + ((char *) ret.data - (char *) i.data);
427     ret.rem = 0;
428     return ret;
429 }
430 
431 
432 /*****************************************************************************
433  **
434  ** void xcb_input_button_info_next
435  **
436  ** @param xcb_input_button_info_iterator_t *i
437  ** @returns void
438  **
439  *****************************************************************************/
440 
441 void
442 xcb_input_button_info_next (xcb_input_button_info_iterator_t *i  /**< */)
443 {
444     --i->rem;
445     ++i->data;
446     i->index += sizeof(xcb_input_button_info_t);
447 }
448 
449 
450 /*****************************************************************************
451  **
452  ** xcb_generic_iterator_t xcb_input_button_info_end
453  **
454  ** @param xcb_input_button_info_iterator_t i
455  ** @returns xcb_generic_iterator_t
456  **
457  *****************************************************************************/
458 
459 xcb_generic_iterator_t
460 xcb_input_button_info_end (xcb_input_button_info_iterator_t i  /**< */)
461 {
462     xcb_generic_iterator_t ret;
463     ret.data = i.data + i.rem;
464     ret.index = i.index + ((char *) ret.data - (char *) i.data);
465     ret.rem = 0;
466     return ret;
467 }
468 
469 
470 /*****************************************************************************
471  **
472  ** void xcb_input_axis_info_next
473  **
474  ** @param xcb_input_axis_info_iterator_t *i
475  ** @returns void
476  **
477  *****************************************************************************/
478 
479 void
480 xcb_input_axis_info_next (xcb_input_axis_info_iterator_t *i  /**< */)
481 {
482     --i->rem;
483     ++i->data;
484     i->index += sizeof(xcb_input_axis_info_t);
485 }
486 
487 
488 /*****************************************************************************
489  **
490  ** xcb_generic_iterator_t xcb_input_axis_info_end
491  **
492  ** @param xcb_input_axis_info_iterator_t i
493  ** @returns xcb_generic_iterator_t
494  **
495  *****************************************************************************/
496 
497 xcb_generic_iterator_t
498 xcb_input_axis_info_end (xcb_input_axis_info_iterator_t i  /**< */)
499 {
500     xcb_generic_iterator_t ret;
501     ret.data = i.data + i.rem;
502     ret.index = i.index + ((char *) ret.data - (char *) i.data);
503     ret.rem = 0;
504     return ret;
505 }
506 
507 int
508 xcb_input_valuator_info_sizeof (const void  *_buffer  /**< */)
509 {
510     char *xcb_tmp = (char *)_buffer;
511     const xcb_input_valuator_info_t *_aux = (xcb_input_valuator_info_t *)_buffer;
512     unsigned int xcb_buffer_len = 0;
513     unsigned int xcb_block_len = 0;
514     unsigned int xcb_pad = 0;
515     unsigned int xcb_align_to = 0;
516 
517 
518     xcb_block_len += sizeof(xcb_input_valuator_info_t);
519     xcb_tmp += xcb_block_len;
520     xcb_buffer_len += xcb_block_len;
521     xcb_block_len = 0;
522     /* axes */
523     xcb_block_len += _aux->axes_len * sizeof(xcb_input_axis_info_t);
524     xcb_tmp += xcb_block_len;
525     xcb_align_to = ALIGNOF(xcb_input_axis_info_t);
526     /* insert padding */
527     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
528     xcb_buffer_len += xcb_block_len + xcb_pad;
529     if (0 != xcb_pad) {
530         xcb_tmp += xcb_pad;
531         xcb_pad = 0;
532     }
533     xcb_block_len = 0;
534 
535     return xcb_buffer_len;
536 }
537 
538 
539 /*****************************************************************************
540  **
541  ** xcb_input_axis_info_t * xcb_input_valuator_info_axes
542  **
543  ** @param const xcb_input_valuator_info_t *R
544  ** @returns xcb_input_axis_info_t *
545  **
546  *****************************************************************************/
547 
548 xcb_input_axis_info_t *
549 xcb_input_valuator_info_axes (const xcb_input_valuator_info_t *R  /**< */)
550 {
551     return (xcb_input_axis_info_t *) (R + 1);
552 }
553 
554 
555 /*****************************************************************************
556  **
557  ** int xcb_input_valuator_info_axes_length
558  **
559  ** @param const xcb_input_valuator_info_t *R
560  ** @returns int
561  **
562  *****************************************************************************/
563 
564 int
565 xcb_input_valuator_info_axes_length (const xcb_input_valuator_info_t *R  /**< */)
566 {
567     return R->axes_len;
568 }
569 
570 
571 /*****************************************************************************
572  **
573  ** xcb_input_axis_info_iterator_t xcb_input_valuator_info_axes_iterator
574  **
575  ** @param const xcb_input_valuator_info_t *R
576  ** @returns xcb_input_axis_info_iterator_t
577  **
578  *****************************************************************************/
579 
580 xcb_input_axis_info_iterator_t
581 xcb_input_valuator_info_axes_iterator (const xcb_input_valuator_info_t *R  /**< */)
582 {
583     xcb_input_axis_info_iterator_t i;
584     i.data = (xcb_input_axis_info_t *) (R + 1);
585     i.rem = R->axes_len;
586     i.index = (char *) i.data - (char *) R;
587     return i;
588 }
589 
590 
591 /*****************************************************************************
592  **
593  ** void xcb_input_valuator_info_next
594  **
595  ** @param xcb_input_valuator_info_iterator_t *i
596  ** @returns void
597  **
598  *****************************************************************************/
599 
600 void
601 xcb_input_valuator_info_next (xcb_input_valuator_info_iterator_t *i  /**< */)
602 {
603     xcb_input_valuator_info_t *R = i->data;
604     xcb_generic_iterator_t child;
605     child.data = (xcb_input_valuator_info_t *)(((char *)R) + xcb_input_valuator_info_sizeof(R));
606     i->index = (char *) child.data - (char *) i->data;
607     --i->rem;
608     i->data = (xcb_input_valuator_info_t *) child.data;
609 }
610 
611 
612 /*****************************************************************************
613  **
614  ** xcb_generic_iterator_t xcb_input_valuator_info_end
615  **
616  ** @param xcb_input_valuator_info_iterator_t i
617  ** @returns xcb_generic_iterator_t
618  **
619  *****************************************************************************/
620 
621 xcb_generic_iterator_t
622 xcb_input_valuator_info_end (xcb_input_valuator_info_iterator_t i  /**< */)
623 {
624     xcb_generic_iterator_t ret;
625     while(i.rem > 0)
626         xcb_input_valuator_info_next(&i);
627     ret.data = i.data;
628     ret.rem = i.rem;
629     ret.index = i.index;
630     return ret;
631 }
632 
633 
634 /*****************************************************************************
635  **
636  ** void xcb_input_input_info_next
637  **
638  ** @param xcb_input_input_info_iterator_t *i
639  ** @returns void
640  **
641  *****************************************************************************/
642 
643 void
644 xcb_input_input_info_next (xcb_input_input_info_iterator_t *i  /**< */)
645 {
646     --i->rem;
647     ++i->data;
648     i->index += sizeof(xcb_input_input_info_t);
649 }
650 
651 
652 /*****************************************************************************
653  **
654  ** xcb_generic_iterator_t xcb_input_input_info_end
655  **
656  ** @param xcb_input_input_info_iterator_t i
657  ** @returns xcb_generic_iterator_t
658  **
659  *****************************************************************************/
660 
661 xcb_generic_iterator_t
662 xcb_input_input_info_end (xcb_input_input_info_iterator_t i  /**< */)
663 {
664     xcb_generic_iterator_t ret;
665     ret.data = i.data + i.rem;
666     ret.index = i.index + ((char *) ret.data - (char *) i.data);
667     ret.rem = 0;
668     return ret;
669 }
670 
671 int
672 xcb_input_device_name_sizeof (const void  *_buffer  /**< */)
673 {
674     char *xcb_tmp = (char *)_buffer;
675     const xcb_input_device_name_t *_aux = (xcb_input_device_name_t *)_buffer;
676     unsigned int xcb_buffer_len = 0;
677     unsigned int xcb_block_len = 0;
678     unsigned int xcb_pad = 0;
679     unsigned int xcb_align_to = 0;
680 
681 
682     xcb_block_len += sizeof(xcb_input_device_name_t);
683     xcb_tmp += xcb_block_len;
684     xcb_buffer_len += xcb_block_len;
685     xcb_block_len = 0;
686     /* string */
687     xcb_block_len += _aux->len * sizeof(char);
688     xcb_tmp += xcb_block_len;
689     xcb_align_to = ALIGNOF(char);
690     /* insert padding */
691     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
692     xcb_buffer_len += xcb_block_len + xcb_pad;
693     if (0 != xcb_pad) {
694         xcb_tmp += xcb_pad;
695         xcb_pad = 0;
696     }
697     xcb_block_len = 0;
698 
699     return xcb_buffer_len;
700 }
701 
702 
703 /*****************************************************************************
704  **
705  ** char * xcb_input_device_name_string
706  **
707  ** @param const xcb_input_device_name_t *R
708  ** @returns char *
709  **
710  *****************************************************************************/
711 
712 char *
713 xcb_input_device_name_string (const xcb_input_device_name_t *R  /**< */)
714 {
715     return (char *) (R + 1);
716 }
717 
718 
719 /*****************************************************************************
720  **
721  ** int xcb_input_device_name_string_length
722  **
723  ** @param const xcb_input_device_name_t *R
724  ** @returns int
725  **
726  *****************************************************************************/
727 
728 int
729 xcb_input_device_name_string_length (const xcb_input_device_name_t *R  /**< */)
730 {
731     return R->len;
732 }
733 
734 
735 /*****************************************************************************
736  **
737  ** xcb_generic_iterator_t xcb_input_device_name_string_end
738  **
739  ** @param const xcb_input_device_name_t *R
740  ** @returns xcb_generic_iterator_t
741  **
742  *****************************************************************************/
743 
744 xcb_generic_iterator_t
745 xcb_input_device_name_string_end (const xcb_input_device_name_t *R  /**< */)
746 {
747     xcb_generic_iterator_t i;
748     i.data = ((char *) (R + 1)) + (R->len);
749     i.rem = 0;
750     i.index = (char *) i.data - (char *) R;
751     return i;
752 }
753 
754 
755 /*****************************************************************************
756  **
757  ** void xcb_input_device_name_next
758  **
759  ** @param xcb_input_device_name_iterator_t *i
760  ** @returns void
761  **
762  *****************************************************************************/
763 
764 void
765 xcb_input_device_name_next (xcb_input_device_name_iterator_t *i  /**< */)
766 {
767     xcb_input_device_name_t *R = i->data;
768     xcb_generic_iterator_t child;
769     child.data = (xcb_input_device_name_t *)(((char *)R) + xcb_input_device_name_sizeof(R));
770     i->index = (char *) child.data - (char *) i->data;
771     --i->rem;
772     i->data = (xcb_input_device_name_t *) child.data;
773 }
774 
775 
776 /*****************************************************************************
777  **
778  ** xcb_generic_iterator_t xcb_input_device_name_end
779  **
780  ** @param xcb_input_device_name_iterator_t i
781  ** @returns xcb_generic_iterator_t
782  **
783  *****************************************************************************/
784 
785 xcb_generic_iterator_t
786 xcb_input_device_name_end (xcb_input_device_name_iterator_t i  /**< */)
787 {
788     xcb_generic_iterator_t ret;
789     while(i.rem > 0)
790         xcb_input_device_name_next(&i);
791     ret.data = i.data;
792     ret.rem = i.rem;
793     ret.index = i.index;
794     return ret;
795 }
796 
797 int
798 xcb_input_list_input_devices_sizeof (const void  *_buffer  /**< */)
799 {
800     char *xcb_tmp = (char *)_buffer;
801     const xcb_input_list_input_devices_reply_t *_aux = (xcb_input_list_input_devices_reply_t *)_buffer;
802     unsigned int xcb_buffer_len = 0;
803     unsigned int xcb_block_len = 0;
804     unsigned int xcb_pad = 0;
805     unsigned int xcb_align_to = 0;
806 
807 
808     xcb_block_len += sizeof(xcb_input_list_input_devices_reply_t);
809     xcb_tmp += xcb_block_len;
810     xcb_buffer_len += xcb_block_len;
811     xcb_block_len = 0;
812     /* devices */
813     xcb_block_len += _aux->devices_len * sizeof(xcb_input_device_info_t);
814     xcb_tmp += xcb_block_len;
815     xcb_align_to = ALIGNOF(xcb_input_device_info_t);
816     /* insert padding */
817     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
818     xcb_buffer_len += xcb_block_len + xcb_pad;
819     if (0 != xcb_pad) {
820         xcb_tmp += xcb_pad;
821         xcb_pad = 0;
822     }
823     xcb_block_len = 0;
824 
825     return xcb_buffer_len;
826 }
827 
828 
829 /*****************************************************************************
830  **
831  ** xcb_input_list_input_devices_cookie_t xcb_input_list_input_devices
832  **
833  ** @param xcb_connection_t *c
834  ** @returns xcb_input_list_input_devices_cookie_t
835  **
836  *****************************************************************************/
837 
838 xcb_input_list_input_devices_cookie_t
839 xcb_input_list_input_devices (xcb_connection_t *c  /**< */)
840 {
841     static const xcb_protocol_request_t xcb_req = {
842         /* count */ 2,
843         /* ext */ &xcb_input_id,
844         /* opcode */ XCB_INPUT_LIST_INPUT_DEVICES,
845         /* isvoid */ 0
846     };
847 
848     struct iovec xcb_parts[4];
849     xcb_input_list_input_devices_cookie_t xcb_ret;
850     xcb_input_list_input_devices_request_t xcb_out;
851 
852 
853     xcb_parts[2].iov_base = (char *) &xcb_out;
854     xcb_parts[2].iov_len = sizeof(xcb_out);
855     xcb_parts[3].iov_base = 0;
856     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
857 
858     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
859     return xcb_ret;
860 }
861 
862 
863 /*****************************************************************************
864  **
865  ** xcb_input_list_input_devices_cookie_t xcb_input_list_input_devices_unchecked
866  **
867  ** @param xcb_connection_t *c
868  ** @returns xcb_input_list_input_devices_cookie_t
869  **
870  *****************************************************************************/
871 
872 xcb_input_list_input_devices_cookie_t
873 xcb_input_list_input_devices_unchecked (xcb_connection_t *c  /**< */)
874 {
875     static const xcb_protocol_request_t xcb_req = {
876         /* count */ 2,
877         /* ext */ &xcb_input_id,
878         /* opcode */ XCB_INPUT_LIST_INPUT_DEVICES,
879         /* isvoid */ 0
880     };
881 
882     struct iovec xcb_parts[4];
883     xcb_input_list_input_devices_cookie_t xcb_ret;
884     xcb_input_list_input_devices_request_t xcb_out;
885 
886 
887     xcb_parts[2].iov_base = (char *) &xcb_out;
888     xcb_parts[2].iov_len = sizeof(xcb_out);
889     xcb_parts[3].iov_base = 0;
890     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
891 
892     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
893     return xcb_ret;
894 }
895 
896 
897 /*****************************************************************************
898  **
899  ** xcb_input_device_info_t * xcb_input_list_input_devices_devices
900  **
901  ** @param const xcb_input_list_input_devices_reply_t *R
902  ** @returns xcb_input_device_info_t *
903  **
904  *****************************************************************************/
905 
906 xcb_input_device_info_t *
907 xcb_input_list_input_devices_devices (const xcb_input_list_input_devices_reply_t *R  /**< */)
908 {
909     return (xcb_input_device_info_t *) (R + 1);
910 }
911 
912 
913 /*****************************************************************************
914  **
915  ** int xcb_input_list_input_devices_devices_length
916  **
917  ** @param const xcb_input_list_input_devices_reply_t *R
918  ** @returns int
919  **
920  *****************************************************************************/
921 
922 int
923 xcb_input_list_input_devices_devices_length (const xcb_input_list_input_devices_reply_t *R  /**< */)
924 {
925     return R->devices_len;
926 }
927 
928 
929 /*****************************************************************************
930  **
931  ** xcb_input_device_info_iterator_t xcb_input_list_input_devices_devices_iterator
932  **
933  ** @param const xcb_input_list_input_devices_reply_t *R
934  ** @returns xcb_input_device_info_iterator_t
935  **
936  *****************************************************************************/
937 
938 xcb_input_device_info_iterator_t
939 xcb_input_list_input_devices_devices_iterator (const xcb_input_list_input_devices_reply_t *R  /**< */)
940 {
941     xcb_input_device_info_iterator_t i;
942     i.data = (xcb_input_device_info_t *) (R + 1);
943     i.rem = R->devices_len;
944     i.index = (char *) i.data - (char *) R;
945     return i;
946 }
947 
948 
949 /*****************************************************************************
950  **
951  ** xcb_input_list_input_devices_reply_t * xcb_input_list_input_devices_reply
952  **
953  ** @param xcb_connection_t                       *c
954  ** @param xcb_input_list_input_devices_cookie_t   cookie
955  ** @param xcb_generic_error_t                   **e
956  ** @returns xcb_input_list_input_devices_reply_t *
957  **
958  *****************************************************************************/
959 
960 xcb_input_list_input_devices_reply_t *
961 xcb_input_list_input_devices_reply (xcb_connection_t                       *c  /**< */,
962                                     xcb_input_list_input_devices_cookie_t   cookie  /**< */,
963                                     xcb_generic_error_t                   **e  /**< */)
964 {
965     return (xcb_input_list_input_devices_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
966 }
967 
968 
969 /*****************************************************************************
970  **
971  ** void xcb_input_input_class_info_next
972  **
973  ** @param xcb_input_input_class_info_iterator_t *i
974  ** @returns void
975  **
976  *****************************************************************************/
977 
978 void
979 xcb_input_input_class_info_next (xcb_input_input_class_info_iterator_t *i  /**< */)
980 {
981     --i->rem;
982     ++i->data;
983     i->index += sizeof(xcb_input_input_class_info_t);
984 }
985 
986 
987 /*****************************************************************************
988  **
989  ** xcb_generic_iterator_t xcb_input_input_class_info_end
990  **
991  ** @param xcb_input_input_class_info_iterator_t i
992  ** @returns xcb_generic_iterator_t
993  **
994  *****************************************************************************/
995 
996 xcb_generic_iterator_t
997 xcb_input_input_class_info_end (xcb_input_input_class_info_iterator_t i  /**< */)
998 {
999     xcb_generic_iterator_t ret;
1000     ret.data = i.data + i.rem;
1001     ret.index = i.index + ((char *) ret.data - (char *) i.data);
1002     ret.rem = 0;
1003     return ret;
1004 }
1005 
1006 int
1007 xcb_input_open_device_sizeof (const void  *_buffer  /**< */)
1008 {
1009     char *xcb_tmp = (char *)_buffer;
1010     const xcb_input_open_device_reply_t *_aux = (xcb_input_open_device_reply_t *)_buffer;
1011     unsigned int xcb_buffer_len = 0;
1012     unsigned int xcb_block_len = 0;
1013     unsigned int xcb_pad = 0;
1014     unsigned int xcb_align_to = 0;
1015 
1016 
1017     xcb_block_len += sizeof(xcb_input_open_device_reply_t);
1018     xcb_tmp += xcb_block_len;
1019     xcb_buffer_len += xcb_block_len;
1020     xcb_block_len = 0;
1021     /* class_info */
1022     xcb_block_len += _aux->num_classes * sizeof(xcb_input_input_class_info_t);
1023     xcb_tmp += xcb_block_len;
1024     xcb_align_to = ALIGNOF(xcb_input_input_class_info_t);
1025     /* insert padding */
1026     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1027     xcb_buffer_len += xcb_block_len + xcb_pad;
1028     if (0 != xcb_pad) {
1029         xcb_tmp += xcb_pad;
1030         xcb_pad = 0;
1031     }
1032     xcb_block_len = 0;
1033 
1034     return xcb_buffer_len;
1035 }
1036 
1037 
1038 /*****************************************************************************
1039  **
1040  ** xcb_input_open_device_cookie_t xcb_input_open_device
1041  **
1042  ** @param xcb_connection_t *c
1043  ** @param uint8_t           device_id
1044  ** @returns xcb_input_open_device_cookie_t
1045  **
1046  *****************************************************************************/
1047 
1048 xcb_input_open_device_cookie_t
1049 xcb_input_open_device (xcb_connection_t *c  /**< */,
1050                        uint8_t           device_id  /**< */)
1051 {
1052     static const xcb_protocol_request_t xcb_req = {
1053         /* count */ 2,
1054         /* ext */ &xcb_input_id,
1055         /* opcode */ XCB_INPUT_OPEN_DEVICE,
1056         /* isvoid */ 0
1057     };
1058 
1059     struct iovec xcb_parts[4];
1060     xcb_input_open_device_cookie_t xcb_ret;
1061     xcb_input_open_device_request_t xcb_out;
1062 
1063     xcb_out.device_id = device_id;
1064     memset(xcb_out.pad0, 0, 3);
1065 
1066     xcb_parts[2].iov_base = (char *) &xcb_out;
1067     xcb_parts[2].iov_len = sizeof(xcb_out);
1068     xcb_parts[3].iov_base = 0;
1069     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1070 
1071     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1072     return xcb_ret;
1073 }
1074 
1075 
1076 /*****************************************************************************
1077  **
1078  ** xcb_input_open_device_cookie_t xcb_input_open_device_unchecked
1079  **
1080  ** @param xcb_connection_t *c
1081  ** @param uint8_t           device_id
1082  ** @returns xcb_input_open_device_cookie_t
1083  **
1084  *****************************************************************************/
1085 
1086 xcb_input_open_device_cookie_t
1087 xcb_input_open_device_unchecked (xcb_connection_t *c  /**< */,
1088                                  uint8_t           device_id  /**< */)
1089 {
1090     static const xcb_protocol_request_t xcb_req = {
1091         /* count */ 2,
1092         /* ext */ &xcb_input_id,
1093         /* opcode */ XCB_INPUT_OPEN_DEVICE,
1094         /* isvoid */ 0
1095     };
1096 
1097     struct iovec xcb_parts[4];
1098     xcb_input_open_device_cookie_t xcb_ret;
1099     xcb_input_open_device_request_t xcb_out;
1100 
1101     xcb_out.device_id = device_id;
1102     memset(xcb_out.pad0, 0, 3);
1103 
1104     xcb_parts[2].iov_base = (char *) &xcb_out;
1105     xcb_parts[2].iov_len = sizeof(xcb_out);
1106     xcb_parts[3].iov_base = 0;
1107     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1108 
1109     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1110     return xcb_ret;
1111 }
1112 
1113 
1114 /*****************************************************************************
1115  **
1116  ** xcb_input_input_class_info_t * xcb_input_open_device_class_info
1117  **
1118  ** @param const xcb_input_open_device_reply_t *R
1119  ** @returns xcb_input_input_class_info_t *
1120  **
1121  *****************************************************************************/
1122 
1123 xcb_input_input_class_info_t *
1124 xcb_input_open_device_class_info (const xcb_input_open_device_reply_t *R  /**< */)
1125 {
1126     return (xcb_input_input_class_info_t *) (R + 1);
1127 }
1128 
1129 
1130 /*****************************************************************************
1131  **
1132  ** int xcb_input_open_device_class_info_length
1133  **
1134  ** @param const xcb_input_open_device_reply_t *R
1135  ** @returns int
1136  **
1137  *****************************************************************************/
1138 
1139 int
1140 xcb_input_open_device_class_info_length (const xcb_input_open_device_reply_t *R  /**< */)
1141 {
1142     return R->num_classes;
1143 }
1144 
1145 
1146 /*****************************************************************************
1147  **
1148  ** xcb_input_input_class_info_iterator_t xcb_input_open_device_class_info_iterator
1149  **
1150  ** @param const xcb_input_open_device_reply_t *R
1151  ** @returns xcb_input_input_class_info_iterator_t
1152  **
1153  *****************************************************************************/
1154 
1155 xcb_input_input_class_info_iterator_t
1156 xcb_input_open_device_class_info_iterator (const xcb_input_open_device_reply_t *R  /**< */)
1157 {
1158     xcb_input_input_class_info_iterator_t i;
1159     i.data = (xcb_input_input_class_info_t *) (R + 1);
1160     i.rem = R->num_classes;
1161     i.index = (char *) i.data - (char *) R;
1162     return i;
1163 }
1164 
1165 
1166 /*****************************************************************************
1167  **
1168  ** xcb_input_open_device_reply_t * xcb_input_open_device_reply
1169  **
1170  ** @param xcb_connection_t                *c
1171  ** @param xcb_input_open_device_cookie_t   cookie
1172  ** @param xcb_generic_error_t            **e
1173  ** @returns xcb_input_open_device_reply_t *
1174  **
1175  *****************************************************************************/
1176 
1177 xcb_input_open_device_reply_t *
1178 xcb_input_open_device_reply (xcb_connection_t                *c  /**< */,
1179                              xcb_input_open_device_cookie_t   cookie  /**< */,
1180                              xcb_generic_error_t            **e  /**< */)
1181 {
1182     return (xcb_input_open_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1183 }
1184 
1185 
1186 /*****************************************************************************
1187  **
1188  ** xcb_void_cookie_t xcb_input_close_device_checked
1189  **
1190  ** @param xcb_connection_t *c
1191  ** @param uint8_t           device_id
1192  ** @returns xcb_void_cookie_t
1193  **
1194  *****************************************************************************/
1195 
1196 xcb_void_cookie_t
1197 xcb_input_close_device_checked (xcb_connection_t *c  /**< */,
1198                                 uint8_t           device_id  /**< */)
1199 {
1200     static const xcb_protocol_request_t xcb_req = {
1201         /* count */ 2,
1202         /* ext */ &xcb_input_id,
1203         /* opcode */ XCB_INPUT_CLOSE_DEVICE,
1204         /* isvoid */ 1
1205     };
1206 
1207     struct iovec xcb_parts[4];
1208     xcb_void_cookie_t xcb_ret;
1209     xcb_input_close_device_request_t xcb_out;
1210 
1211     xcb_out.device_id = device_id;
1212     memset(xcb_out.pad0, 0, 3);
1213 
1214     xcb_parts[2].iov_base = (char *) &xcb_out;
1215     xcb_parts[2].iov_len = sizeof(xcb_out);
1216     xcb_parts[3].iov_base = 0;
1217     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1218 
1219     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1220     return xcb_ret;
1221 }
1222 
1223 
1224 /*****************************************************************************
1225  **
1226  ** xcb_void_cookie_t xcb_input_close_device
1227  **
1228  ** @param xcb_connection_t *c
1229  ** @param uint8_t           device_id
1230  ** @returns xcb_void_cookie_t
1231  **
1232  *****************************************************************************/
1233 
1234 xcb_void_cookie_t
1235 xcb_input_close_device (xcb_connection_t *c  /**< */,
1236                         uint8_t           device_id  /**< */)
1237 {
1238     static const xcb_protocol_request_t xcb_req = {
1239         /* count */ 2,
1240         /* ext */ &xcb_input_id,
1241         /* opcode */ XCB_INPUT_CLOSE_DEVICE,
1242         /* isvoid */ 1
1243     };
1244 
1245     struct iovec xcb_parts[4];
1246     xcb_void_cookie_t xcb_ret;
1247     xcb_input_close_device_request_t xcb_out;
1248 
1249     xcb_out.device_id = device_id;
1250     memset(xcb_out.pad0, 0, 3);
1251 
1252     xcb_parts[2].iov_base = (char *) &xcb_out;
1253     xcb_parts[2].iov_len = sizeof(xcb_out);
1254     xcb_parts[3].iov_base = 0;
1255     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1256 
1257     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1258     return xcb_ret;
1259 }
1260 
1261 
1262 /*****************************************************************************
1263  **
1264  ** xcb_input_set_device_mode_cookie_t xcb_input_set_device_mode
1265  **
1266  ** @param xcb_connection_t *c
1267  ** @param uint8_t           device_id
1268  ** @param uint8_t           mode
1269  ** @returns xcb_input_set_device_mode_cookie_t
1270  **
1271  *****************************************************************************/
1272 
1273 xcb_input_set_device_mode_cookie_t
1274 xcb_input_set_device_mode (xcb_connection_t *c  /**< */,
1275                            uint8_t           device_id  /**< */,
1276                            uint8_t           mode  /**< */)
1277 {
1278     static const xcb_protocol_request_t xcb_req = {
1279         /* count */ 2,
1280         /* ext */ &xcb_input_id,
1281         /* opcode */ XCB_INPUT_SET_DEVICE_MODE,
1282         /* isvoid */ 0
1283     };
1284 
1285     struct iovec xcb_parts[4];
1286     xcb_input_set_device_mode_cookie_t xcb_ret;
1287     xcb_input_set_device_mode_request_t xcb_out;
1288 
1289     xcb_out.device_id = device_id;
1290     xcb_out.mode = mode;
1291     memset(xcb_out.pad0, 0, 2);
1292 
1293     xcb_parts[2].iov_base = (char *) &xcb_out;
1294     xcb_parts[2].iov_len = sizeof(xcb_out);
1295     xcb_parts[3].iov_base = 0;
1296     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1297 
1298     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1299     return xcb_ret;
1300 }
1301 
1302 
1303 /*****************************************************************************
1304  **
1305  ** xcb_input_set_device_mode_cookie_t xcb_input_set_device_mode_unchecked
1306  **
1307  ** @param xcb_connection_t *c
1308  ** @param uint8_t           device_id
1309  ** @param uint8_t           mode
1310  ** @returns xcb_input_set_device_mode_cookie_t
1311  **
1312  *****************************************************************************/
1313 
1314 xcb_input_set_device_mode_cookie_t
1315 xcb_input_set_device_mode_unchecked (xcb_connection_t *c  /**< */,
1316                                      uint8_t           device_id  /**< */,
1317                                      uint8_t           mode  /**< */)
1318 {
1319     static const xcb_protocol_request_t xcb_req = {
1320         /* count */ 2,
1321         /* ext */ &xcb_input_id,
1322         /* opcode */ XCB_INPUT_SET_DEVICE_MODE,
1323         /* isvoid */ 0
1324     };
1325 
1326     struct iovec xcb_parts[4];
1327     xcb_input_set_device_mode_cookie_t xcb_ret;
1328     xcb_input_set_device_mode_request_t xcb_out;
1329 
1330     xcb_out.device_id = device_id;
1331     xcb_out.mode = mode;
1332     memset(xcb_out.pad0, 0, 2);
1333 
1334     xcb_parts[2].iov_base = (char *) &xcb_out;
1335     xcb_parts[2].iov_len = sizeof(xcb_out);
1336     xcb_parts[3].iov_base = 0;
1337     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1338 
1339     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1340     return xcb_ret;
1341 }
1342 
1343 
1344 /*****************************************************************************
1345  **
1346  ** xcb_input_set_device_mode_reply_t * xcb_input_set_device_mode_reply
1347  **
1348  ** @param xcb_connection_t                    *c
1349  ** @param xcb_input_set_device_mode_cookie_t   cookie
1350  ** @param xcb_generic_error_t                **e
1351  ** @returns xcb_input_set_device_mode_reply_t *
1352  **
1353  *****************************************************************************/
1354 
1355 xcb_input_set_device_mode_reply_t *
1356 xcb_input_set_device_mode_reply (xcb_connection_t                    *c  /**< */,
1357                                  xcb_input_set_device_mode_cookie_t   cookie  /**< */,
1358                                  xcb_generic_error_t                **e  /**< */)
1359 {
1360     return (xcb_input_set_device_mode_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1361 }
1362 
1363 int
1364 xcb_input_select_extension_event_sizeof (const void  *_buffer  /**< */)
1365 {
1366     char *xcb_tmp = (char *)_buffer;
1367     const xcb_input_select_extension_event_request_t *_aux = (xcb_input_select_extension_event_request_t *)_buffer;
1368     unsigned int xcb_buffer_len = 0;
1369     unsigned int xcb_block_len = 0;
1370     unsigned int xcb_pad = 0;
1371     unsigned int xcb_align_to = 0;
1372 
1373 
1374     xcb_block_len += sizeof(xcb_input_select_extension_event_request_t);
1375     xcb_tmp += xcb_block_len;
1376     xcb_buffer_len += xcb_block_len;
1377     xcb_block_len = 0;
1378     /* classes */
1379     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1380     xcb_tmp += xcb_block_len;
1381     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1382     /* insert padding */
1383     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1384     xcb_buffer_len += xcb_block_len + xcb_pad;
1385     if (0 != xcb_pad) {
1386         xcb_tmp += xcb_pad;
1387         xcb_pad = 0;
1388     }
1389     xcb_block_len = 0;
1390 
1391     return xcb_buffer_len;
1392 }
1393 
1394 
1395 /*****************************************************************************
1396  **
1397  ** xcb_void_cookie_t xcb_input_select_extension_event_checked
1398  **
1399  ** @param xcb_connection_t              *c
1400  ** @param xcb_window_t                   window
1401  ** @param uint16_t                       num_classes
1402  ** @param const xcb_input_event_class_t *classes
1403  ** @returns xcb_void_cookie_t
1404  **
1405  *****************************************************************************/
1406 
1407 xcb_void_cookie_t
1408 xcb_input_select_extension_event_checked (xcb_connection_t              *c  /**< */,
1409                                           xcb_window_t                   window  /**< */,
1410                                           uint16_t                       num_classes  /**< */,
1411                                           const xcb_input_event_class_t *classes  /**< */)
1412 {
1413     static const xcb_protocol_request_t xcb_req = {
1414         /* count */ 4,
1415         /* ext */ &xcb_input_id,
1416         /* opcode */ XCB_INPUT_SELECT_EXTENSION_EVENT,
1417         /* isvoid */ 1
1418     };
1419 
1420     struct iovec xcb_parts[6];
1421     xcb_void_cookie_t xcb_ret;
1422     xcb_input_select_extension_event_request_t xcb_out;
1423 
1424     xcb_out.window = window;
1425     xcb_out.num_classes = num_classes;
1426     memset(xcb_out.pad0, 0, 2);
1427 
1428     xcb_parts[2].iov_base = (char *) &xcb_out;
1429     xcb_parts[2].iov_len = sizeof(xcb_out);
1430     xcb_parts[3].iov_base = 0;
1431     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1432     /* xcb_input_event_class_t classes */
1433     xcb_parts[4].iov_base = (char *) classes;
1434     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1435     xcb_parts[5].iov_base = 0;
1436     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1437 
1438     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1439     return xcb_ret;
1440 }
1441 
1442 
1443 /*****************************************************************************
1444  **
1445  ** xcb_void_cookie_t xcb_input_select_extension_event
1446  **
1447  ** @param xcb_connection_t              *c
1448  ** @param xcb_window_t                   window
1449  ** @param uint16_t                       num_classes
1450  ** @param const xcb_input_event_class_t *classes
1451  ** @returns xcb_void_cookie_t
1452  **
1453  *****************************************************************************/
1454 
1455 xcb_void_cookie_t
1456 xcb_input_select_extension_event (xcb_connection_t              *c  /**< */,
1457                                   xcb_window_t                   window  /**< */,
1458                                   uint16_t                       num_classes  /**< */,
1459                                   const xcb_input_event_class_t *classes  /**< */)
1460 {
1461     static const xcb_protocol_request_t xcb_req = {
1462         /* count */ 4,
1463         /* ext */ &xcb_input_id,
1464         /* opcode */ XCB_INPUT_SELECT_EXTENSION_EVENT,
1465         /* isvoid */ 1
1466     };
1467 
1468     struct iovec xcb_parts[6];
1469     xcb_void_cookie_t xcb_ret;
1470     xcb_input_select_extension_event_request_t xcb_out;
1471 
1472     xcb_out.window = window;
1473     xcb_out.num_classes = num_classes;
1474     memset(xcb_out.pad0, 0, 2);
1475 
1476     xcb_parts[2].iov_base = (char *) &xcb_out;
1477     xcb_parts[2].iov_len = sizeof(xcb_out);
1478     xcb_parts[3].iov_base = 0;
1479     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1480     /* xcb_input_event_class_t classes */
1481     xcb_parts[4].iov_base = (char *) classes;
1482     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1483     xcb_parts[5].iov_base = 0;
1484     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1485 
1486     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1487     return xcb_ret;
1488 }
1489 
1490 int
1491 xcb_input_get_selected_extension_events_sizeof (const void  *_buffer  /**< */)
1492 {
1493     char *xcb_tmp = (char *)_buffer;
1494     const xcb_input_get_selected_extension_events_reply_t *_aux = (xcb_input_get_selected_extension_events_reply_t *)_buffer;
1495     unsigned int xcb_buffer_len = 0;
1496     unsigned int xcb_block_len = 0;
1497     unsigned int xcb_pad = 0;
1498     unsigned int xcb_align_to = 0;
1499 
1500 
1501     xcb_block_len += sizeof(xcb_input_get_selected_extension_events_reply_t);
1502     xcb_tmp += xcb_block_len;
1503     xcb_buffer_len += xcb_block_len;
1504     xcb_block_len = 0;
1505     /* this_classes */
1506     xcb_block_len += _aux->num_this_classes * sizeof(xcb_input_event_class_t);
1507     xcb_tmp += xcb_block_len;
1508     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1509     /* insert padding */
1510     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1511     xcb_buffer_len += xcb_block_len + xcb_pad;
1512     if (0 != xcb_pad) {
1513         xcb_tmp += xcb_pad;
1514         xcb_pad = 0;
1515     }
1516     xcb_block_len = 0;
1517     /* all_classes */
1518     xcb_block_len += _aux->num_all_classes * sizeof(xcb_input_event_class_t);
1519     xcb_tmp += xcb_block_len;
1520     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1521     /* insert padding */
1522     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1523     xcb_buffer_len += xcb_block_len + xcb_pad;
1524     if (0 != xcb_pad) {
1525         xcb_tmp += xcb_pad;
1526         xcb_pad = 0;
1527     }
1528     xcb_block_len = 0;
1529 
1530     return xcb_buffer_len;
1531 }
1532 
1533 
1534 /*****************************************************************************
1535  **
1536  ** xcb_input_get_selected_extension_events_cookie_t xcb_input_get_selected_extension_events
1537  **
1538  ** @param xcb_connection_t *c
1539  ** @param xcb_window_t      window
1540  ** @returns xcb_input_get_selected_extension_events_cookie_t
1541  **
1542  *****************************************************************************/
1543 
1544 xcb_input_get_selected_extension_events_cookie_t
1545 xcb_input_get_selected_extension_events (xcb_connection_t *c  /**< */,
1546                                          xcb_window_t      window  /**< */)
1547 {
1548     static const xcb_protocol_request_t xcb_req = {
1549         /* count */ 2,
1550         /* ext */ &xcb_input_id,
1551         /* opcode */ XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS,
1552         /* isvoid */ 0
1553     };
1554 
1555     struct iovec xcb_parts[4];
1556     xcb_input_get_selected_extension_events_cookie_t xcb_ret;
1557     xcb_input_get_selected_extension_events_request_t xcb_out;
1558 
1559     xcb_out.window = window;
1560 
1561     xcb_parts[2].iov_base = (char *) &xcb_out;
1562     xcb_parts[2].iov_len = sizeof(xcb_out);
1563     xcb_parts[3].iov_base = 0;
1564     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1565 
1566     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1567     return xcb_ret;
1568 }
1569 
1570 
1571 /*****************************************************************************
1572  **
1573  ** xcb_input_get_selected_extension_events_cookie_t xcb_input_get_selected_extension_events_unchecked
1574  **
1575  ** @param xcb_connection_t *c
1576  ** @param xcb_window_t      window
1577  ** @returns xcb_input_get_selected_extension_events_cookie_t
1578  **
1579  *****************************************************************************/
1580 
1581 xcb_input_get_selected_extension_events_cookie_t
1582 xcb_input_get_selected_extension_events_unchecked (xcb_connection_t *c  /**< */,
1583                                                    xcb_window_t      window  /**< */)
1584 {
1585     static const xcb_protocol_request_t xcb_req = {
1586         /* count */ 2,
1587         /* ext */ &xcb_input_id,
1588         /* opcode */ XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS,
1589         /* isvoid */ 0
1590     };
1591 
1592     struct iovec xcb_parts[4];
1593     xcb_input_get_selected_extension_events_cookie_t xcb_ret;
1594     xcb_input_get_selected_extension_events_request_t xcb_out;
1595 
1596     xcb_out.window = window;
1597 
1598     xcb_parts[2].iov_base = (char *) &xcb_out;
1599     xcb_parts[2].iov_len = sizeof(xcb_out);
1600     xcb_parts[3].iov_base = 0;
1601     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1602 
1603     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1604     return xcb_ret;
1605 }
1606 
1607 
1608 /*****************************************************************************
1609  **
1610  ** xcb_input_event_class_t * xcb_input_get_selected_extension_events_this_classes
1611  **
1612  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1613  ** @returns xcb_input_event_class_t *
1614  **
1615  *****************************************************************************/
1616 
1617 xcb_input_event_class_t *
1618 xcb_input_get_selected_extension_events_this_classes (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1619 {
1620     return (xcb_input_event_class_t *) (R + 1);
1621 }
1622 
1623 
1624 /*****************************************************************************
1625  **
1626  ** int xcb_input_get_selected_extension_events_this_classes_length
1627  **
1628  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1629  ** @returns int
1630  **
1631  *****************************************************************************/
1632 
1633 int
1634 xcb_input_get_selected_extension_events_this_classes_length (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1635 {
1636     return R->num_this_classes;
1637 }
1638 
1639 
1640 /*****************************************************************************
1641  **
1642  ** xcb_generic_iterator_t xcb_input_get_selected_extension_events_this_classes_end
1643  **
1644  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1645  ** @returns xcb_generic_iterator_t
1646  **
1647  *****************************************************************************/
1648 
1649 xcb_generic_iterator_t
1650 xcb_input_get_selected_extension_events_this_classes_end (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1651 {
1652     xcb_generic_iterator_t i;
1653     i.data = ((xcb_input_event_class_t *) (R + 1)) + (R->num_this_classes);
1654     i.rem = 0;
1655     i.index = (char *) i.data - (char *) R;
1656     return i;
1657 }
1658 
1659 
1660 /*****************************************************************************
1661  **
1662  ** xcb_input_event_class_t * xcb_input_get_selected_extension_events_all_classes
1663  **
1664  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1665  ** @returns xcb_input_event_class_t *
1666  **
1667  *****************************************************************************/
1668 
1669 xcb_input_event_class_t *
1670 xcb_input_get_selected_extension_events_all_classes (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1671 {
1672     xcb_generic_iterator_t prev = xcb_input_get_selected_extension_events_this_classes_end(R);
1673     return (xcb_input_event_class_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_input_event_class_t, prev.index) + 0);
1674 }
1675 
1676 
1677 /*****************************************************************************
1678  **
1679  ** int xcb_input_get_selected_extension_events_all_classes_length
1680  **
1681  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1682  ** @returns int
1683  **
1684  *****************************************************************************/
1685 
1686 int
1687 xcb_input_get_selected_extension_events_all_classes_length (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1688 {
1689     return R->num_all_classes;
1690 }
1691 
1692 
1693 /*****************************************************************************
1694  **
1695  ** xcb_generic_iterator_t xcb_input_get_selected_extension_events_all_classes_end
1696  **
1697  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1698  ** @returns xcb_generic_iterator_t
1699  **
1700  *****************************************************************************/
1701 
1702 xcb_generic_iterator_t
1703 xcb_input_get_selected_extension_events_all_classes_end (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1704 {
1705     xcb_generic_iterator_t i;
1706     xcb_generic_iterator_t child = xcb_input_get_selected_extension_events_this_classes_end(R);
1707     i.data = ((xcb_input_event_class_t *) child.data) + (R->num_all_classes);
1708     i.rem = 0;
1709     i.index = (char *) i.data - (char *) R;
1710     return i;
1711 }
1712 
1713 
1714 /*****************************************************************************
1715  **
1716  ** xcb_input_get_selected_extension_events_reply_t * xcb_input_get_selected_extension_events_reply
1717  **
1718  ** @param xcb_connection_t                                  *c
1719  ** @param xcb_input_get_selected_extension_events_cookie_t   cookie
1720  ** @param xcb_generic_error_t                              **e
1721  ** @returns xcb_input_get_selected_extension_events_reply_t *
1722  **
1723  *****************************************************************************/
1724 
1725 xcb_input_get_selected_extension_events_reply_t *
1726 xcb_input_get_selected_extension_events_reply (xcb_connection_t                                  *c  /**< */,
1727                                                xcb_input_get_selected_extension_events_cookie_t   cookie  /**< */,
1728                                                xcb_generic_error_t                              **e  /**< */)
1729 {
1730     return (xcb_input_get_selected_extension_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1731 }
1732 
1733 int
1734 xcb_input_change_device_dont_propagate_list_sizeof (const void  *_buffer  /**< */)
1735 {
1736     char *xcb_tmp = (char *)_buffer;
1737     const xcb_input_change_device_dont_propagate_list_request_t *_aux = (xcb_input_change_device_dont_propagate_list_request_t *)_buffer;
1738     unsigned int xcb_buffer_len = 0;
1739     unsigned int xcb_block_len = 0;
1740     unsigned int xcb_pad = 0;
1741     unsigned int xcb_align_to = 0;
1742 
1743 
1744     xcb_block_len += sizeof(xcb_input_change_device_dont_propagate_list_request_t);
1745     xcb_tmp += xcb_block_len;
1746     xcb_buffer_len += xcb_block_len;
1747     xcb_block_len = 0;
1748     /* classes */
1749     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1750     xcb_tmp += xcb_block_len;
1751     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1752     /* insert padding */
1753     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1754     xcb_buffer_len += xcb_block_len + xcb_pad;
1755     if (0 != xcb_pad) {
1756         xcb_tmp += xcb_pad;
1757         xcb_pad = 0;
1758     }
1759     xcb_block_len = 0;
1760 
1761     return xcb_buffer_len;
1762 }
1763 
1764 
1765 /*****************************************************************************
1766  **
1767  ** xcb_void_cookie_t xcb_input_change_device_dont_propagate_list_checked
1768  **
1769  ** @param xcb_connection_t              *c
1770  ** @param xcb_window_t                   window
1771  ** @param uint16_t                       num_classes
1772  ** @param uint8_t                        mode
1773  ** @param const xcb_input_event_class_t *classes
1774  ** @returns xcb_void_cookie_t
1775  **
1776  *****************************************************************************/
1777 
1778 xcb_void_cookie_t
1779 xcb_input_change_device_dont_propagate_list_checked (xcb_connection_t              *c  /**< */,
1780                                                      xcb_window_t                   window  /**< */,
1781                                                      uint16_t                       num_classes  /**< */,
1782                                                      uint8_t                        mode  /**< */,
1783                                                      const xcb_input_event_class_t *classes  /**< */)
1784 {
1785     static const xcb_protocol_request_t xcb_req = {
1786         /* count */ 4,
1787         /* ext */ &xcb_input_id,
1788         /* opcode */ XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST,
1789         /* isvoid */ 1
1790     };
1791 
1792     struct iovec xcb_parts[6];
1793     xcb_void_cookie_t xcb_ret;
1794     xcb_input_change_device_dont_propagate_list_request_t xcb_out;
1795 
1796     xcb_out.window = window;
1797     xcb_out.num_classes = num_classes;
1798     xcb_out.mode = mode;
1799     xcb_out.pad0 = 0;
1800 
1801     xcb_parts[2].iov_base = (char *) &xcb_out;
1802     xcb_parts[2].iov_len = sizeof(xcb_out);
1803     xcb_parts[3].iov_base = 0;
1804     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1805     /* xcb_input_event_class_t classes */
1806     xcb_parts[4].iov_base = (char *) classes;
1807     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1808     xcb_parts[5].iov_base = 0;
1809     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1810 
1811     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1812     return xcb_ret;
1813 }
1814 
1815 
1816 /*****************************************************************************
1817  **
1818  ** xcb_void_cookie_t xcb_input_change_device_dont_propagate_list
1819  **
1820  ** @param xcb_connection_t              *c
1821  ** @param xcb_window_t                   window
1822  ** @param uint16_t                       num_classes
1823  ** @param uint8_t                        mode
1824  ** @param const xcb_input_event_class_t *classes
1825  ** @returns xcb_void_cookie_t
1826  **
1827  *****************************************************************************/
1828 
1829 xcb_void_cookie_t
1830 xcb_input_change_device_dont_propagate_list (xcb_connection_t              *c  /**< */,
1831                                              xcb_window_t                   window  /**< */,
1832                                              uint16_t                       num_classes  /**< */,
1833                                              uint8_t                        mode  /**< */,
1834                                              const xcb_input_event_class_t *classes  /**< */)
1835 {
1836     static const xcb_protocol_request_t xcb_req = {
1837         /* count */ 4,
1838         /* ext */ &xcb_input_id,
1839         /* opcode */ XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST,
1840         /* isvoid */ 1
1841     };
1842 
1843     struct iovec xcb_parts[6];
1844     xcb_void_cookie_t xcb_ret;
1845     xcb_input_change_device_dont_propagate_list_request_t xcb_out;
1846 
1847     xcb_out.window = window;
1848     xcb_out.num_classes = num_classes;
1849     xcb_out.mode = mode;
1850     xcb_out.pad0 = 0;
1851 
1852     xcb_parts[2].iov_base = (char *) &xcb_out;
1853     xcb_parts[2].iov_len = sizeof(xcb_out);
1854     xcb_parts[3].iov_base = 0;
1855     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1856     /* xcb_input_event_class_t classes */
1857     xcb_parts[4].iov_base = (char *) classes;
1858     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1859     xcb_parts[5].iov_base = 0;
1860     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1861 
1862     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1863     return xcb_ret;
1864 }
1865 
1866 int
1867 xcb_input_get_device_dont_propagate_list_sizeof (const void  *_buffer  /**< */)
1868 {
1869     char *xcb_tmp = (char *)_buffer;
1870     const xcb_input_get_device_dont_propagate_list_reply_t *_aux = (xcb_input_get_device_dont_propagate_list_reply_t *)_buffer;
1871     unsigned int xcb_buffer_len = 0;
1872     unsigned int xcb_block_len = 0;
1873     unsigned int xcb_pad = 0;
1874     unsigned int xcb_align_to = 0;
1875 
1876 
1877     xcb_block_len += sizeof(xcb_input_get_device_dont_propagate_list_reply_t);
1878     xcb_tmp += xcb_block_len;
1879     xcb_buffer_len += xcb_block_len;
1880     xcb_block_len = 0;
1881     /* classes */
1882     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1883     xcb_tmp += xcb_block_len;
1884     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1885     /* insert padding */
1886     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1887     xcb_buffer_len += xcb_block_len + xcb_pad;
1888     if (0 != xcb_pad) {
1889         xcb_tmp += xcb_pad;
1890         xcb_pad = 0;
1891     }
1892     xcb_block_len = 0;
1893 
1894     return xcb_buffer_len;
1895 }
1896 
1897 
1898 /*****************************************************************************
1899  **
1900  ** xcb_input_get_device_dont_propagate_list_cookie_t xcb_input_get_device_dont_propagate_list
1901  **
1902  ** @param xcb_connection_t *c
1903  ** @param xcb_window_t      window
1904  ** @returns xcb_input_get_device_dont_propagate_list_cookie_t
1905  **
1906  *****************************************************************************/
1907 
1908 xcb_input_get_device_dont_propagate_list_cookie_t
1909 xcb_input_get_device_dont_propagate_list (xcb_connection_t *c  /**< */,
1910                                           xcb_window_t      window  /**< */)
1911 {
1912     static const xcb_protocol_request_t xcb_req = {
1913         /* count */ 2,
1914         /* ext */ &xcb_input_id,
1915         /* opcode */ XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST,
1916         /* isvoid */ 0
1917     };
1918 
1919     struct iovec xcb_parts[4];
1920     xcb_input_get_device_dont_propagate_list_cookie_t xcb_ret;
1921     xcb_input_get_device_dont_propagate_list_request_t xcb_out;
1922 
1923     xcb_out.window = window;
1924 
1925     xcb_parts[2].iov_base = (char *) &xcb_out;
1926     xcb_parts[2].iov_len = sizeof(xcb_out);
1927     xcb_parts[3].iov_base = 0;
1928     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1929 
1930     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1931     return xcb_ret;
1932 }
1933 
1934 
1935 /*****************************************************************************
1936  **
1937  ** xcb_input_get_device_dont_propagate_list_cookie_t xcb_input_get_device_dont_propagate_list_unchecked
1938  **
1939  ** @param xcb_connection_t *c
1940  ** @param xcb_window_t      window
1941  ** @returns xcb_input_get_device_dont_propagate_list_cookie_t
1942  **
1943  *****************************************************************************/
1944 
1945 xcb_input_get_device_dont_propagate_list_cookie_t
1946 xcb_input_get_device_dont_propagate_list_unchecked (xcb_connection_t *c  /**< */,
1947                                                     xcb_window_t      window  /**< */)
1948 {
1949     static const xcb_protocol_request_t xcb_req = {
1950         /* count */ 2,
1951         /* ext */ &xcb_input_id,
1952         /* opcode */ XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST,
1953         /* isvoid */ 0
1954     };
1955 
1956     struct iovec xcb_parts[4];
1957     xcb_input_get_device_dont_propagate_list_cookie_t xcb_ret;
1958     xcb_input_get_device_dont_propagate_list_request_t xcb_out;
1959 
1960     xcb_out.window = window;
1961 
1962     xcb_parts[2].iov_base = (char *) &xcb_out;
1963     xcb_parts[2].iov_len = sizeof(xcb_out);
1964     xcb_parts[3].iov_base = 0;
1965     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1966 
1967     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1968     return xcb_ret;
1969 }
1970 
1971 
1972 /*****************************************************************************
1973  **
1974  ** xcb_input_event_class_t * xcb_input_get_device_dont_propagate_list_classes
1975  **
1976  ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
1977  ** @returns xcb_input_event_class_t *
1978  **
1979  *****************************************************************************/
1980 
1981 xcb_input_event_class_t *
1982 xcb_input_get_device_dont_propagate_list_classes (const xcb_input_get_device_dont_propagate_list_reply_t *R  /**< */)
1983 {
1984     return (xcb_input_event_class_t *) (R + 1);
1985 }
1986 
1987 
1988 /*****************************************************************************
1989  **
1990  ** int xcb_input_get_device_dont_propagate_list_classes_length
1991  **
1992  ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
1993  ** @returns int
1994  **
1995  *****************************************************************************/
1996 
1997 int
1998 xcb_input_get_device_dont_propagate_list_classes_length (const xcb_input_get_device_dont_propagate_list_reply_t *R  /**< */)
1999 {
2000     return R->num_classes;
2001 }
2002 
2003 
2004 /*****************************************************************************
2005  **
2006  ** xcb_generic_iterator_t xcb_input_get_device_dont_propagate_list_classes_end
2007  **
2008  ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
2009  ** @returns xcb_generic_iterator_t
2010  **
2011  *****************************************************************************/
2012 
2013 xcb_generic_iterator_t
2014 xcb_input_get_device_dont_propagate_list_classes_end (const xcb_input_get_device_dont_propagate_list_reply_t *R  /**< */)
2015 {
2016     xcb_generic_iterator_t i;
2017     i.data = ((xcb_input_event_class_t *) (R + 1)) + (R->num_classes);
2018     i.rem = 0;
2019     i.index = (char *) i.data - (char *) R;
2020     return i;
2021 }
2022 
2023 
2024 /*****************************************************************************
2025  **
2026  ** xcb_input_get_device_dont_propagate_list_reply_t * xcb_input_get_device_dont_propagate_list_reply
2027  **
2028  ** @param xcb_connection_t                                   *c
2029  ** @param xcb_input_get_device_dont_propagate_list_cookie_t   cookie
2030  ** @param xcb_generic_error_t                               **e
2031  ** @returns xcb_input_get_device_dont_propagate_list_reply_t *
2032  **
2033  *****************************************************************************/
2034 
2035 xcb_input_get_device_dont_propagate_list_reply_t *
2036 xcb_input_get_device_dont_propagate_list_reply (xcb_connection_t                                   *c  /**< */,
2037                                                 xcb_input_get_device_dont_propagate_list_cookie_t   cookie  /**< */,
2038                                                 xcb_generic_error_t                               **e  /**< */)
2039 {
2040     return (xcb_input_get_device_dont_propagate_list_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2041 }
2042 
2043 
2044 /*****************************************************************************
2045  **
2046  ** void xcb_input_device_time_coord_next
2047  **
2048  ** @param xcb_input_device_time_coord_iterator_t *i
2049  ** @returns void
2050  **
2051  *****************************************************************************/
2052 
2053 void
2054 xcb_input_device_time_coord_next (xcb_input_device_time_coord_iterator_t *i  /**< */)
2055 {
2056     --i->rem;
2057     ++i->data;
2058     i->index += sizeof(xcb_input_device_time_coord_t);
2059 }
2060 
2061 
2062 /*****************************************************************************
2063  **
2064  ** xcb_generic_iterator_t xcb_input_device_time_coord_end
2065  **
2066  ** @param xcb_input_device_time_coord_iterator_t i
2067  ** @returns xcb_generic_iterator_t
2068  **
2069  *****************************************************************************/
2070 
2071 xcb_generic_iterator_t
2072 xcb_input_device_time_coord_end (xcb_input_device_time_coord_iterator_t i  /**< */)
2073 {
2074     xcb_generic_iterator_t ret;
2075     ret.data = i.data + i.rem;
2076     ret.index = i.index + ((char *) ret.data - (char *) i.data);
2077     ret.rem = 0;
2078     return ret;
2079 }
2080 
2081 
2082 /*****************************************************************************
2083  **
2084  ** xcb_input_get_device_motion_events_cookie_t xcb_input_get_device_motion_events
2085  **
2086  ** @param xcb_connection_t *c
2087  ** @param xcb_timestamp_t   start
2088  ** @param xcb_timestamp_t   stop
2089  ** @param uint8_t           device_id
2090  ** @returns xcb_input_get_device_motion_events_cookie_t
2091  **
2092  *****************************************************************************/
2093 
2094 xcb_input_get_device_motion_events_cookie_t
2095 xcb_input_get_device_motion_events (xcb_connection_t *c  /**< */,
2096                                     xcb_timestamp_t   start  /**< */,
2097                                     xcb_timestamp_t   stop  /**< */,
2098                                     uint8_t           device_id  /**< */)
2099 {
2100     static const xcb_protocol_request_t xcb_req = {
2101         /* count */ 2,
2102         /* ext */ &xcb_input_id,
2103         /* opcode */ XCB_INPUT_GET_DEVICE_MOTION_EVENTS,
2104         /* isvoid */ 0
2105     };
2106 
2107     struct iovec xcb_parts[4];
2108     xcb_input_get_device_motion_events_cookie_t xcb_ret;
2109     xcb_input_get_device_motion_events_request_t xcb_out;
2110 
2111     xcb_out.start = start;
2112     xcb_out.stop = stop;
2113     xcb_out.device_id = device_id;
2114 
2115     xcb_parts[2].iov_base = (char *) &xcb_out;
2116     xcb_parts[2].iov_len = sizeof(xcb_out);
2117     xcb_parts[3].iov_base = 0;
2118     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2119 
2120     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2121     return xcb_ret;
2122 }
2123 
2124 
2125 /*****************************************************************************
2126  **
2127  ** xcb_input_get_device_motion_events_cookie_t xcb_input_get_device_motion_events_unchecked
2128  **
2129  ** @param xcb_connection_t *c
2130  ** @param xcb_timestamp_t   start
2131  ** @param xcb_timestamp_t   stop
2132  ** @param uint8_t           device_id
2133  ** @returns xcb_input_get_device_motion_events_cookie_t
2134  **
2135  *****************************************************************************/
2136 
2137 xcb_input_get_device_motion_events_cookie_t
2138 xcb_input_get_device_motion_events_unchecked (xcb_connection_t *c  /**< */,
2139                                               xcb_timestamp_t   start  /**< */,
2140                                               xcb_timestamp_t   stop  /**< */,
2141                                               uint8_t           device_id  /**< */)
2142 {
2143     static const xcb_protocol_request_t xcb_req = {
2144         /* count */ 2,
2145         /* ext */ &xcb_input_id,
2146         /* opcode */ XCB_INPUT_GET_DEVICE_MOTION_EVENTS,
2147         /* isvoid */ 0
2148     };
2149 
2150     struct iovec xcb_parts[4];
2151     xcb_input_get_device_motion_events_cookie_t xcb_ret;
2152     xcb_input_get_device_motion_events_request_t xcb_out;
2153 
2154     xcb_out.start = start;
2155     xcb_out.stop = stop;
2156     xcb_out.device_id = device_id;
2157 
2158     xcb_parts[2].iov_base = (char *) &xcb_out;
2159     xcb_parts[2].iov_len = sizeof(xcb_out);
2160     xcb_parts[3].iov_base = 0;
2161     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2162 
2163     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2164     return xcb_ret;
2165 }
2166 
2167 
2168 /*****************************************************************************
2169  **
2170  ** xcb_input_get_device_motion_events_reply_t * xcb_input_get_device_motion_events_reply
2171  **
2172  ** @param xcb_connection_t                             *c
2173  ** @param xcb_input_get_device_motion_events_cookie_t   cookie
2174  ** @param xcb_generic_error_t                         **e
2175  ** @returns xcb_input_get_device_motion_events_reply_t *
2176  **
2177  *****************************************************************************/
2178 
2179 xcb_input_get_device_motion_events_reply_t *
2180 xcb_input_get_device_motion_events_reply (xcb_connection_t                             *c  /**< */,
2181                                           xcb_input_get_device_motion_events_cookie_t   cookie  /**< */,
2182                                           xcb_generic_error_t                         **e  /**< */)
2183 {
2184     return (xcb_input_get_device_motion_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2185 }
2186 
2187 
2188 /*****************************************************************************
2189  **
2190  ** xcb_input_change_keyboard_device_cookie_t xcb_input_change_keyboard_device
2191  **
2192  ** @param xcb_connection_t *c
2193  ** @param uint8_t           device_id
2194  ** @returns xcb_input_change_keyboard_device_cookie_t
2195  **
2196  *****************************************************************************/
2197 
2198 xcb_input_change_keyboard_device_cookie_t
2199 xcb_input_change_keyboard_device (xcb_connection_t *c  /**< */,
2200                                   uint8_t           device_id  /**< */)
2201 {
2202     static const xcb_protocol_request_t xcb_req = {
2203         /* count */ 2,
2204         /* ext */ &xcb_input_id,
2205         /* opcode */ XCB_INPUT_CHANGE_KEYBOARD_DEVICE,
2206         /* isvoid */ 0
2207     };
2208 
2209     struct iovec xcb_parts[4];
2210     xcb_input_change_keyboard_device_cookie_t xcb_ret;
2211     xcb_input_change_keyboard_device_request_t xcb_out;
2212 
2213     xcb_out.device_id = device_id;
2214     memset(xcb_out.pad0, 0, 3);
2215 
2216     xcb_parts[2].iov_base = (char *) &xcb_out;
2217     xcb_parts[2].iov_len = sizeof(xcb_out);
2218     xcb_parts[3].iov_base = 0;
2219     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2220 
2221     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2222     return xcb_ret;
2223 }
2224 
2225 
2226 /*****************************************************************************
2227  **
2228  ** xcb_input_change_keyboard_device_cookie_t xcb_input_change_keyboard_device_unchecked
2229  **
2230  ** @param xcb_connection_t *c
2231  ** @param uint8_t           device_id
2232  ** @returns xcb_input_change_keyboard_device_cookie_t
2233  **
2234  *****************************************************************************/
2235 
2236 xcb_input_change_keyboard_device_cookie_t
2237 xcb_input_change_keyboard_device_unchecked (xcb_connection_t *c  /**< */,
2238                                             uint8_t           device_id  /**< */)
2239 {
2240     static const xcb_protocol_request_t xcb_req = {
2241         /* count */ 2,
2242         /* ext */ &xcb_input_id,
2243         /* opcode */ XCB_INPUT_CHANGE_KEYBOARD_DEVICE,
2244         /* isvoid */ 0
2245     };
2246 
2247     struct iovec xcb_parts[4];
2248     xcb_input_change_keyboard_device_cookie_t xcb_ret;
2249     xcb_input_change_keyboard_device_request_t xcb_out;
2250 
2251     xcb_out.device_id = device_id;
2252     memset(xcb_out.pad0, 0, 3);
2253 
2254     xcb_parts[2].iov_base = (char *) &xcb_out;
2255     xcb_parts[2].iov_len = sizeof(xcb_out);
2256     xcb_parts[3].iov_base = 0;
2257     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2258 
2259     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2260     return xcb_ret;
2261 }
2262 
2263 
2264 /*****************************************************************************
2265  **
2266  ** xcb_input_change_keyboard_device_reply_t * xcb_input_change_keyboard_device_reply
2267  **
2268  ** @param xcb_connection_t                           *c
2269  ** @param xcb_input_change_keyboard_device_cookie_t   cookie
2270  ** @param xcb_generic_error_t                       **e
2271  ** @returns xcb_input_change_keyboard_device_reply_t *
2272  **
2273  *****************************************************************************/
2274 
2275 xcb_input_change_keyboard_device_reply_t *
2276 xcb_input_change_keyboard_device_reply (xcb_connection_t                           *c  /**< */,
2277                                         xcb_input_change_keyboard_device_cookie_t   cookie  /**< */,
2278                                         xcb_generic_error_t                       **e  /**< */)
2279 {
2280     return (xcb_input_change_keyboard_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2281 }
2282 
2283 
2284 /*****************************************************************************
2285  **
2286  ** xcb_input_change_pointer_device_cookie_t xcb_input_change_pointer_device
2287  **
2288  ** @param xcb_connection_t *c
2289  ** @param uint8_t           x_axis
2290  ** @param uint8_t           y_axis
2291  ** @param uint8_t           device_id
2292  ** @returns xcb_input_change_pointer_device_cookie_t
2293  **
2294  *****************************************************************************/
2295 
2296 xcb_input_change_pointer_device_cookie_t
2297 xcb_input_change_pointer_device (xcb_connection_t *c  /**< */,
2298                                  uint8_t           x_axis  /**< */,
2299                                  uint8_t           y_axis  /**< */,
2300                                  uint8_t           device_id  /**< */)
2301 {
2302     static const xcb_protocol_request_t xcb_req = {
2303         /* count */ 2,
2304         /* ext */ &xcb_input_id,
2305         /* opcode */ XCB_INPUT_CHANGE_POINTER_DEVICE,
2306         /* isvoid */ 0
2307     };
2308 
2309     struct iovec xcb_parts[4];
2310     xcb_input_change_pointer_device_cookie_t xcb_ret;
2311     xcb_input_change_pointer_device_request_t xcb_out;
2312 
2313     xcb_out.x_axis = x_axis;
2314     xcb_out.y_axis = y_axis;
2315     xcb_out.device_id = device_id;
2316     xcb_out.pad0 = 0;
2317 
2318     xcb_parts[2].iov_base = (char *) &xcb_out;
2319     xcb_parts[2].iov_len = sizeof(xcb_out);
2320     xcb_parts[3].iov_base = 0;
2321     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2322 
2323     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2324     return xcb_ret;
2325 }
2326 
2327 
2328 /*****************************************************************************
2329  **
2330  ** xcb_input_change_pointer_device_cookie_t xcb_input_change_pointer_device_unchecked
2331  **
2332  ** @param xcb_connection_t *c
2333  ** @param uint8_t           x_axis
2334  ** @param uint8_t           y_axis
2335  ** @param uint8_t           device_id
2336  ** @returns xcb_input_change_pointer_device_cookie_t
2337  **
2338  *****************************************************************************/
2339 
2340 xcb_input_change_pointer_device_cookie_t
2341 xcb_input_change_pointer_device_unchecked (xcb_connection_t *c  /**< */,
2342                                            uint8_t           x_axis  /**< */,
2343                                            uint8_t           y_axis  /**< */,
2344                                            uint8_t           device_id  /**< */)
2345 {
2346     static const xcb_protocol_request_t xcb_req = {
2347         /* count */ 2,
2348         /* ext */ &xcb_input_id,
2349         /* opcode */ XCB_INPUT_CHANGE_POINTER_DEVICE,
2350         /* isvoid */ 0
2351     };
2352 
2353     struct iovec xcb_parts[4];
2354     xcb_input_change_pointer_device_cookie_t xcb_ret;
2355     xcb_input_change_pointer_device_request_t xcb_out;
2356 
2357     xcb_out.x_axis = x_axis;
2358     xcb_out.y_axis = y_axis;
2359     xcb_out.device_id = device_id;
2360     xcb_out.pad0 = 0;
2361 
2362     xcb_parts[2].iov_base = (char *) &xcb_out;
2363     xcb_parts[2].iov_len = sizeof(xcb_out);
2364     xcb_parts[3].iov_base = 0;
2365     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2366 
2367     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2368     return xcb_ret;
2369 }
2370 
2371 
2372 /*****************************************************************************
2373  **
2374  ** xcb_input_change_pointer_device_reply_t * xcb_input_change_pointer_device_reply
2375  **
2376  ** @param xcb_connection_t                          *c
2377  ** @param xcb_input_change_pointer_device_cookie_t   cookie
2378  ** @param xcb_generic_error_t                      **e
2379  ** @returns xcb_input_change_pointer_device_reply_t *
2380  **
2381  *****************************************************************************/
2382 
2383 xcb_input_change_pointer_device_reply_t *
2384 xcb_input_change_pointer_device_reply (xcb_connection_t                          *c  /**< */,
2385                                        xcb_input_change_pointer_device_cookie_t   cookie  /**< */,
2386                                        xcb_generic_error_t                      **e  /**< */)
2387 {
2388     return (xcb_input_change_pointer_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2389 }
2390 
2391 int
2392 xcb_input_grab_device_sizeof (const void  *_buffer  /**< */)
2393 {
2394     char *xcb_tmp = (char *)_buffer;
2395     const xcb_input_grab_device_request_t *_aux = (xcb_input_grab_device_request_t *)_buffer;
2396     unsigned int xcb_buffer_len = 0;
2397     unsigned int xcb_block_len = 0;
2398     unsigned int xcb_pad = 0;
2399     unsigned int xcb_align_to = 0;
2400 
2401 
2402     xcb_block_len += sizeof(xcb_input_grab_device_request_t);
2403     xcb_tmp += xcb_block_len;
2404     xcb_buffer_len += xcb_block_len;
2405     xcb_block_len = 0;
2406     /* classes */
2407     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2408     xcb_tmp += xcb_block_len;
2409     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2410     /* insert padding */
2411     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2412     xcb_buffer_len += xcb_block_len + xcb_pad;
2413     if (0 != xcb_pad) {
2414         xcb_tmp += xcb_pad;
2415         xcb_pad = 0;
2416     }
2417     xcb_block_len = 0;
2418 
2419     return xcb_buffer_len;
2420 }
2421 
2422 
2423 /*****************************************************************************
2424  **
2425  ** xcb_input_grab_device_cookie_t xcb_input_grab_device
2426  **
2427  ** @param xcb_connection_t              *c
2428  ** @param xcb_window_t                   grab_window
2429  ** @param xcb_timestamp_t                time
2430  ** @param uint16_t                       num_classes
2431  ** @param uint8_t                        this_device_mode
2432  ** @param uint8_t                        other_device_mode
2433  ** @param uint8_t                        owner_events
2434  ** @param uint8_t                        device_id
2435  ** @param const xcb_input_event_class_t *classes
2436  ** @returns xcb_input_grab_device_cookie_t
2437  **
2438  *****************************************************************************/
2439 
2440 xcb_input_grab_device_cookie_t
2441 xcb_input_grab_device (xcb_connection_t              *c  /**< */,
2442                        xcb_window_t                   grab_window  /**< */,
2443                        xcb_timestamp_t                time  /**< */,
2444                        uint16_t                       num_classes  /**< */,
2445                        uint8_t                        this_device_mode  /**< */,
2446                        uint8_t                        other_device_mode  /**< */,
2447                        uint8_t                        owner_events  /**< */,
2448                        uint8_t                        device_id  /**< */,
2449                        const xcb_input_event_class_t *classes  /**< */)
2450 {
2451     static const xcb_protocol_request_t xcb_req = {
2452         /* count */ 4,
2453         /* ext */ &xcb_input_id,
2454         /* opcode */ XCB_INPUT_GRAB_DEVICE,
2455         /* isvoid */ 0
2456     };
2457 
2458     struct iovec xcb_parts[6];
2459     xcb_input_grab_device_cookie_t xcb_ret;
2460     xcb_input_grab_device_request_t xcb_out;
2461 
2462     xcb_out.grab_window = grab_window;
2463     xcb_out.time = time;
2464     xcb_out.num_classes = num_classes;
2465     xcb_out.this_device_mode = this_device_mode;
2466     xcb_out.other_device_mode = other_device_mode;
2467     xcb_out.owner_events = owner_events;
2468     xcb_out.device_id = device_id;
2469     memset(xcb_out.pad0, 0, 2);
2470 
2471     xcb_parts[2].iov_base = (char *) &xcb_out;
2472     xcb_parts[2].iov_len = sizeof(xcb_out);
2473     xcb_parts[3].iov_base = 0;
2474     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2475     /* xcb_input_event_class_t classes */
2476     xcb_parts[4].iov_base = (char *) classes;
2477     xcb_parts[4].iov_len = num_classes * sizeof(uint32_t);
2478     xcb_parts[5].iov_base = 0;
2479     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2480 
2481     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2482     return xcb_ret;
2483 }
2484 
2485 
2486 /*****************************************************************************
2487  **
2488  ** xcb_input_grab_device_cookie_t xcb_input_grab_device_unchecked
2489  **
2490  ** @param xcb_connection_t              *c
2491  ** @param xcb_window_t                   grab_window
2492  ** @param xcb_timestamp_t                time
2493  ** @param uint16_t                       num_classes
2494  ** @param uint8_t                        this_device_mode
2495  ** @param uint8_t                        other_device_mode
2496  ** @param uint8_t                        owner_events
2497  ** @param uint8_t                        device_id
2498  ** @param const xcb_input_event_class_t *classes
2499  ** @returns xcb_input_grab_device_cookie_t
2500  **
2501  *****************************************************************************/
2502 
2503 xcb_input_grab_device_cookie_t
2504 xcb_input_grab_device_unchecked (xcb_connection_t              *c  /**< */,
2505                                  xcb_window_t                   grab_window  /**< */,
2506                                  xcb_timestamp_t                time  /**< */,
2507                                  uint16_t                       num_classes  /**< */,
2508                                  uint8_t                        this_device_mode  /**< */,
2509                                  uint8_t                        other_device_mode  /**< */,
2510                                  uint8_t                        owner_events  /**< */,
2511                                  uint8_t                        device_id  /**< */,
2512                                  const xcb_input_event_class_t *classes  /**< */)
2513 {
2514     static const xcb_protocol_request_t xcb_req = {
2515         /* count */ 4,
2516         /* ext */ &xcb_input_id,
2517         /* opcode */ XCB_INPUT_GRAB_DEVICE,
2518         /* isvoid */ 0
2519     };
2520 
2521     struct iovec xcb_parts[6];
2522     xcb_input_grab_device_cookie_t xcb_ret;
2523     xcb_input_grab_device_request_t xcb_out;
2524 
2525     xcb_out.grab_window = grab_window;
2526     xcb_out.time = time;
2527     xcb_out.num_classes = num_classes;
2528     xcb_out.this_device_mode = this_device_mode;
2529     xcb_out.other_device_mode = other_device_mode;
2530     xcb_out.owner_events = owner_events;
2531     xcb_out.device_id = device_id;
2532     memset(xcb_out.pad0, 0, 2);
2533 
2534     xcb_parts[2].iov_base = (char *) &xcb_out;
2535     xcb_parts[2].iov_len = sizeof(xcb_out);
2536     xcb_parts[3].iov_base = 0;
2537     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2538     /* xcb_input_event_class_t classes */
2539     xcb_parts[4].iov_base = (char *) classes;
2540     xcb_parts[4].iov_len = num_classes * sizeof(uint32_t);
2541     xcb_parts[5].iov_base = 0;
2542     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2543 
2544     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2545     return xcb_ret;
2546 }
2547 
2548 
2549 /*****************************************************************************
2550  **
2551  ** xcb_input_grab_device_reply_t * xcb_input_grab_device_reply
2552  **
2553  ** @param xcb_connection_t                *c
2554  ** @param xcb_input_grab_device_cookie_t   cookie
2555  ** @param xcb_generic_error_t            **e
2556  ** @returns xcb_input_grab_device_reply_t *
2557  **
2558  *****************************************************************************/
2559 
2560 xcb_input_grab_device_reply_t *
2561 xcb_input_grab_device_reply (xcb_connection_t                *c  /**< */,
2562                              xcb_input_grab_device_cookie_t   cookie  /**< */,
2563                              xcb_generic_error_t            **e  /**< */)
2564 {
2565     return (xcb_input_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2566 }
2567 
2568 
2569 /*****************************************************************************
2570  **
2571  ** xcb_void_cookie_t xcb_input_ungrab_device_checked
2572  **
2573  ** @param xcb_connection_t *c
2574  ** @param xcb_timestamp_t   time
2575  ** @param uint8_t           device_id
2576  ** @returns xcb_void_cookie_t
2577  **
2578  *****************************************************************************/
2579 
2580 xcb_void_cookie_t
2581 xcb_input_ungrab_device_checked (xcb_connection_t *c  /**< */,
2582                                  xcb_timestamp_t   time  /**< */,
2583                                  uint8_t           device_id  /**< */)
2584 {
2585     static const xcb_protocol_request_t xcb_req = {
2586         /* count */ 2,
2587         /* ext */ &xcb_input_id,
2588         /* opcode */ XCB_INPUT_UNGRAB_DEVICE,
2589         /* isvoid */ 1
2590     };
2591 
2592     struct iovec xcb_parts[4];
2593     xcb_void_cookie_t xcb_ret;
2594     xcb_input_ungrab_device_request_t xcb_out;
2595 
2596     xcb_out.time = time;
2597     xcb_out.device_id = device_id;
2598 
2599     xcb_parts[2].iov_base = (char *) &xcb_out;
2600     xcb_parts[2].iov_len = sizeof(xcb_out);
2601     xcb_parts[3].iov_base = 0;
2602     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2603 
2604     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2605     return xcb_ret;
2606 }
2607 
2608 
2609 /*****************************************************************************
2610  **
2611  ** xcb_void_cookie_t xcb_input_ungrab_device
2612  **
2613  ** @param xcb_connection_t *c
2614  ** @param xcb_timestamp_t   time
2615  ** @param uint8_t           device_id
2616  ** @returns xcb_void_cookie_t
2617  **
2618  *****************************************************************************/
2619 
2620 xcb_void_cookie_t
2621 xcb_input_ungrab_device (xcb_connection_t *c  /**< */,
2622                          xcb_timestamp_t   time  /**< */,
2623                          uint8_t           device_id  /**< */)
2624 {
2625     static const xcb_protocol_request_t xcb_req = {
2626         /* count */ 2,
2627         /* ext */ &xcb_input_id,
2628         /* opcode */ XCB_INPUT_UNGRAB_DEVICE,
2629         /* isvoid */ 1
2630     };
2631 
2632     struct iovec xcb_parts[4];
2633     xcb_void_cookie_t xcb_ret;
2634     xcb_input_ungrab_device_request_t xcb_out;
2635 
2636     xcb_out.time = time;
2637     xcb_out.device_id = device_id;
2638 
2639     xcb_parts[2].iov_base = (char *) &xcb_out;
2640     xcb_parts[2].iov_len = sizeof(xcb_out);
2641     xcb_parts[3].iov_base = 0;
2642     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2643 
2644     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2645     return xcb_ret;
2646 }
2647 
2648 int
2649 xcb_input_grab_device_key_sizeof (const void  *_buffer  /**< */)
2650 {
2651     char *xcb_tmp = (char *)_buffer;
2652     const xcb_input_grab_device_key_request_t *_aux = (xcb_input_grab_device_key_request_t *)_buffer;
2653     unsigned int xcb_buffer_len = 0;
2654     unsigned int xcb_block_len = 0;
2655     unsigned int xcb_pad = 0;
2656     unsigned int xcb_align_to = 0;
2657 
2658 
2659     xcb_block_len += sizeof(xcb_input_grab_device_key_request_t);
2660     xcb_tmp += xcb_block_len;
2661     xcb_buffer_len += xcb_block_len;
2662     xcb_block_len = 0;
2663     /* classes */
2664     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2665     xcb_tmp += xcb_block_len;
2666     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2667     /* insert padding */
2668     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2669     xcb_buffer_len += xcb_block_len + xcb_pad;
2670     if (0 != xcb_pad) {
2671         xcb_tmp += xcb_pad;
2672         xcb_pad = 0;
2673     }
2674     xcb_block_len = 0;
2675 
2676     return xcb_buffer_len;
2677 }
2678 
2679 
2680 /*****************************************************************************
2681  **
2682  ** xcb_void_cookie_t xcb_input_grab_device_key_checked
2683  **
2684  ** @param xcb_connection_t              *c
2685  ** @param xcb_window_t                   grab_window
2686  ** @param uint16_t                       num_classes
2687  ** @param uint16_t                       modifiers
2688  ** @param uint8_t                        modifier_device
2689  ** @param uint8_t                        grabbed_device
2690  ** @param uint8_t                        key
2691  ** @param uint8_t                        this_device_mode
2692  ** @param uint8_t                        other_device_mode
2693  ** @param uint8_t                        owner_events
2694  ** @param const xcb_input_event_class_t *classes
2695  ** @returns xcb_void_cookie_t
2696  **
2697  *****************************************************************************/
2698 
2699 xcb_void_cookie_t
2700 xcb_input_grab_device_key_checked (xcb_connection_t              *c  /**< */,
2701                                    xcb_window_t                   grab_window  /**< */,
2702                                    uint16_t                       num_classes  /**< */,
2703                                    uint16_t                       modifiers  /**< */,
2704                                    uint8_t                        modifier_device  /**< */,
2705                                    uint8_t                        grabbed_device  /**< */,
2706                                    uint8_t                        key  /**< */,
2707                                    uint8_t                        this_device_mode  /**< */,
2708                                    uint8_t                        other_device_mode  /**< */,
2709                                    uint8_t                        owner_events  /**< */,
2710                                    const xcb_input_event_class_t *classes  /**< */)
2711 {
2712     static const xcb_protocol_request_t xcb_req = {
2713         /* count */ 4,
2714         /* ext */ &xcb_input_id,
2715         /* opcode */ XCB_INPUT_GRAB_DEVICE_KEY,
2716         /* isvoid */ 1
2717     };
2718 
2719     struct iovec xcb_parts[6];
2720     xcb_void_cookie_t xcb_ret;
2721     xcb_input_grab_device_key_request_t xcb_out;
2722 
2723     xcb_out.grab_window = grab_window;
2724     xcb_out.num_classes = num_classes;
2725     xcb_out.modifiers = modifiers;
2726     xcb_out.modifier_device = modifier_device;
2727     xcb_out.grabbed_device = grabbed_device;
2728     xcb_out.key = key;
2729     xcb_out.this_device_mode = this_device_mode;
2730     xcb_out.other_device_mode = other_device_mode;
2731     xcb_out.owner_events = owner_events;
2732     memset(xcb_out.pad0, 0, 2);
2733 
2734     xcb_parts[2].iov_base = (char *) &xcb_out;
2735     xcb_parts[2].iov_len = sizeof(xcb_out);
2736     xcb_parts[3].iov_base = 0;
2737     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2738     /* xcb_input_event_class_t classes */
2739     xcb_parts[4].iov_base = (char *) classes;
2740     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
2741     xcb_parts[5].iov_base = 0;
2742     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2743 
2744     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2745     return xcb_ret;
2746 }
2747 
2748 
2749 /*****************************************************************************
2750  **
2751  ** xcb_void_cookie_t xcb_input_grab_device_key
2752  **
2753  ** @param xcb_connection_t              *c
2754  ** @param xcb_window_t                   grab_window
2755  ** @param uint16_t                       num_classes
2756  ** @param uint16_t                       modifiers
2757  ** @param uint8_t                        modifier_device
2758  ** @param uint8_t                        grabbed_device
2759  ** @param uint8_t                        key
2760  ** @param uint8_t                        this_device_mode
2761  ** @param uint8_t                        other_device_mode
2762  ** @param uint8_t                        owner_events
2763  ** @param const xcb_input_event_class_t *classes
2764  ** @returns xcb_void_cookie_t
2765  **
2766  *****************************************************************************/
2767 
2768 xcb_void_cookie_t
2769 xcb_input_grab_device_key (xcb_connection_t              *c  /**< */,
2770                            xcb_window_t                   grab_window  /**< */,
2771                            uint16_t                       num_classes  /**< */,
2772                            uint16_t                       modifiers  /**< */,
2773                            uint8_t                        modifier_device  /**< */,
2774                            uint8_t                        grabbed_device  /**< */,
2775                            uint8_t                        key  /**< */,
2776                            uint8_t                        this_device_mode  /**< */,
2777                            uint8_t                        other_device_mode  /**< */,
2778                            uint8_t                        owner_events  /**< */,
2779                            const xcb_input_event_class_t *classes  /**< */)
2780 {
2781     static const xcb_protocol_request_t xcb_req = {
2782         /* count */ 4,
2783         /* ext */ &xcb_input_id,
2784         /* opcode */ XCB_INPUT_GRAB_DEVICE_KEY,
2785         /* isvoid */ 1
2786     };
2787 
2788     struct iovec xcb_parts[6];
2789     xcb_void_cookie_t xcb_ret;
2790     xcb_input_grab_device_key_request_t xcb_out;
2791 
2792     xcb_out.grab_window = grab_window;
2793     xcb_out.num_classes = num_classes;
2794     xcb_out.modifiers = modifiers;
2795     xcb_out.modifier_device = modifier_device;
2796     xcb_out.grabbed_device = grabbed_device;
2797     xcb_out.key = key;
2798     xcb_out.this_device_mode = this_device_mode;
2799     xcb_out.other_device_mode = other_device_mode;
2800     xcb_out.owner_events = owner_events;
2801     memset(xcb_out.pad0, 0, 2);
2802 
2803     xcb_parts[2].iov_base = (char *) &xcb_out;
2804     xcb_parts[2].iov_len = sizeof(xcb_out);
2805     xcb_parts[3].iov_base = 0;
2806     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2807     /* xcb_input_event_class_t classes */
2808     xcb_parts[4].iov_base = (char *) classes;
2809     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
2810     xcb_parts[5].iov_base = 0;
2811     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2812 
2813     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2814     return xcb_ret;
2815 }
2816 
2817 
2818 /*****************************************************************************
2819  **
2820  ** xcb_void_cookie_t xcb_input_ungrab_device_key_checked
2821  **
2822  ** @param xcb_connection_t *c
2823  ** @param xcb_window_t      grabWindow
2824  ** @param uint16_t          modifiers
2825  ** @param uint8_t           modifier_device
2826  ** @param uint8_t           key
2827  ** @param uint8_t           grabbed_device
2828  ** @returns xcb_void_cookie_t
2829  **
2830  *****************************************************************************/
2831 
2832 xcb_void_cookie_t
2833 xcb_input_ungrab_device_key_checked (xcb_connection_t *c  /**< */,
2834                                      xcb_window_t      grabWindow  /**< */,
2835                                      uint16_t          modifiers  /**< */,
2836                                      uint8_t           modifier_device  /**< */,
2837                                      uint8_t           key  /**< */,
2838                                      uint8_t           grabbed_device  /**< */)
2839 {
2840     static const xcb_protocol_request_t xcb_req = {
2841         /* count */ 2,
2842         /* ext */ &xcb_input_id,
2843         /* opcode */ XCB_INPUT_UNGRAB_DEVICE_KEY,
2844         /* isvoid */ 1
2845     };
2846 
2847     struct iovec xcb_parts[4];
2848     xcb_void_cookie_t xcb_ret;
2849     xcb_input_ungrab_device_key_request_t xcb_out;
2850 
2851     xcb_out.grabWindow = grabWindow;
2852     xcb_out.modifiers = modifiers;
2853     xcb_out.modifier_device = modifier_device;
2854     xcb_out.key = key;
2855     xcb_out.grabbed_device = grabbed_device;
2856 
2857     xcb_parts[2].iov_base = (char *) &xcb_out;
2858     xcb_parts[2].iov_len = sizeof(xcb_out);
2859     xcb_parts[3].iov_base = 0;
2860     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2861 
2862     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2863     return xcb_ret;
2864 }
2865 
2866 
2867 /*****************************************************************************
2868  **
2869  ** xcb_void_cookie_t xcb_input_ungrab_device_key
2870  **
2871  ** @param xcb_connection_t *c
2872  ** @param xcb_window_t      grabWindow
2873  ** @param uint16_t          modifiers
2874  ** @param uint8_t           modifier_device
2875  ** @param uint8_t           key
2876  ** @param uint8_t           grabbed_device
2877  ** @returns xcb_void_cookie_t
2878  **
2879  *****************************************************************************/
2880 
2881 xcb_void_cookie_t
2882 xcb_input_ungrab_device_key (xcb_connection_t *c  /**< */,
2883                              xcb_window_t      grabWindow  /**< */,
2884                              uint16_t          modifiers  /**< */,
2885                              uint8_t           modifier_device  /**< */,
2886                              uint8_t           key  /**< */,
2887                              uint8_t           grabbed_device  /**< */)
2888 {
2889     static const xcb_protocol_request_t xcb_req = {
2890         /* count */ 2,
2891         /* ext */ &xcb_input_id,
2892         /* opcode */ XCB_INPUT_UNGRAB_DEVICE_KEY,
2893         /* isvoid */ 1
2894     };
2895 
2896     struct iovec xcb_parts[4];
2897     xcb_void_cookie_t xcb_ret;
2898     xcb_input_ungrab_device_key_request_t xcb_out;
2899 
2900     xcb_out.grabWindow = grabWindow;
2901     xcb_out.modifiers = modifiers;
2902     xcb_out.modifier_device = modifier_device;
2903     xcb_out.key = key;
2904     xcb_out.grabbed_device = grabbed_device;
2905 
2906     xcb_parts[2].iov_base = (char *) &xcb_out;
2907     xcb_parts[2].iov_len = sizeof(xcb_out);
2908     xcb_parts[3].iov_base = 0;
2909     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2910 
2911     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2912     return xcb_ret;
2913 }
2914 
2915 int
2916 xcb_input_grab_device_button_sizeof (const void  *_buffer  /**< */)
2917 {
2918     char *xcb_tmp = (char *)_buffer;
2919     const xcb_input_grab_device_button_request_t *_aux = (xcb_input_grab_device_button_request_t *)_buffer;
2920     unsigned int xcb_buffer_len = 0;
2921     unsigned int xcb_block_len = 0;
2922     unsigned int xcb_pad = 0;
2923     unsigned int xcb_align_to = 0;
2924 
2925 
2926     xcb_block_len += sizeof(xcb_input_grab_device_button_request_t);
2927     xcb_tmp += xcb_block_len;
2928     xcb_buffer_len += xcb_block_len;
2929     xcb_block_len = 0;
2930     /* classes */
2931     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2932     xcb_tmp += xcb_block_len;
2933     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2934     /* insert padding */
2935     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2936     xcb_buffer_len += xcb_block_len + xcb_pad;
2937     if (0 != xcb_pad) {
2938         xcb_tmp += xcb_pad;
2939         xcb_pad = 0;
2940     }
2941     xcb_block_len = 0;
2942 
2943     return xcb_buffer_len;
2944 }
2945 
2946 
2947 /*****************************************************************************
2948  **
2949  ** xcb_void_cookie_t xcb_input_grab_device_button_checked
2950  **
2951  ** @param xcb_connection_t              *c
2952  ** @param xcb_window_t                   grab_window
2953  ** @param uint8_t                        grabbed_device
2954  ** @param uint8_t                        modifier_device
2955  ** @param uint16_t                       num_classes
2956  ** @param uint16_t                       modifiers
2957  ** @param uint8_t                        this_device_mode
2958  ** @param uint8_t                        other_device_mode
2959  ** @param uint8_t                        button
2960  ** @param uint8_t                        owner_events
2961  ** @param const xcb_input_event_class_t *classes
2962  ** @returns xcb_void_cookie_t
2963  **
2964  *****************************************************************************/
2965 
2966 xcb_void_cookie_t
2967 xcb_input_grab_device_button_checked (xcb_connection_t              *c  /**< */,
2968                                       xcb_window_t                   grab_window  /**< */,
2969                                       uint8_t                        grabbed_device  /**< */,
2970                                       uint8_t                        modifier_device  /**< */,
2971                                       uint16_t                       num_classes  /**< */,
2972                                       uint16_t                       modifiers  /**< */,
2973                                       uint8_t                        this_device_mode  /**< */,
2974                                       uint8_t                        other_device_mode  /**< */,
2975                                       uint8_t                        button  /**< */,
2976                                       uint8_t                        owner_events  /**< */,
2977                                       const xcb_input_event_class_t *classes  /**< */)
2978 {
2979     static const xcb_protocol_request_t xcb_req = {
2980         /* count */ 4,
2981         /* ext */ &xcb_input_id,
2982         /* opcode */ XCB_INPUT_GRAB_DEVICE_BUTTON,
2983         /* isvoid */ 1
2984     };
2985 
2986     struct iovec xcb_parts[6];
2987     xcb_void_cookie_t xcb_ret;
2988     xcb_input_grab_device_button_request_t xcb_out;
2989 
2990     xcb_out.grab_window = grab_window;
2991     xcb_out.grabbed_device = grabbed_device;
2992     xcb_out.modifier_device = modifier_device;
2993     xcb_out.num_classes = num_classes;
2994     xcb_out.modifiers = modifiers;
2995     xcb_out.this_device_mode = this_device_mode;
2996     xcb_out.other_device_mode = other_device_mode;
2997     xcb_out.button = button;
2998     xcb_out.owner_events = owner_events;
2999     memset(xcb_out.pad0, 0, 2);
3000 
3001     xcb_parts[2].iov_base = (char *) &xcb_out;
3002     xcb_parts[2].iov_len = sizeof(xcb_out);
3003     xcb_parts[3].iov_base = 0;
3004     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3005     /* xcb_input_event_class_t classes */
3006     xcb_parts[4].iov_base = (char *) classes;
3007     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
3008     xcb_parts[5].iov_base = 0;
3009     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3010 
3011     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3012     return xcb_ret;
3013 }
3014 
3015 
3016 /*****************************************************************************
3017  **
3018  ** xcb_void_cookie_t xcb_input_grab_device_button
3019  **
3020  ** @param xcb_connection_t              *c
3021  ** @param xcb_window_t                   grab_window
3022  ** @param uint8_t                        grabbed_device
3023  ** @param uint8_t                        modifier_device
3024  ** @param uint16_t                       num_classes
3025  ** @param uint16_t                       modifiers
3026  ** @param uint8_t                        this_device_mode
3027  ** @param uint8_t                        other_device_mode
3028  ** @param uint8_t                        button
3029  ** @param uint8_t                        owner_events
3030  ** @param const xcb_input_event_class_t *classes
3031  ** @returns xcb_void_cookie_t
3032  **
3033  *****************************************************************************/
3034 
3035 xcb_void_cookie_t
3036 xcb_input_grab_device_button (xcb_connection_t              *c  /**< */,
3037                               xcb_window_t                   grab_window  /**< */,
3038                               uint8_t                        grabbed_device  /**< */,
3039                               uint8_t                        modifier_device  /**< */,
3040                               uint16_t                       num_classes  /**< */,
3041                               uint16_t                       modifiers  /**< */,
3042                               uint8_t                        this_device_mode  /**< */,
3043                               uint8_t                        other_device_mode  /**< */,
3044                               uint8_t                        button  /**< */,
3045                               uint8_t                        owner_events  /**< */,
3046                               const xcb_input_event_class_t *classes  /**< */)
3047 {
3048     static const xcb_protocol_request_t xcb_req = {
3049         /* count */ 4,
3050         /* ext */ &xcb_input_id,
3051         /* opcode */ XCB_INPUT_GRAB_DEVICE_BUTTON,
3052         /* isvoid */ 1
3053     };
3054 
3055     struct iovec xcb_parts[6];
3056     xcb_void_cookie_t xcb_ret;
3057     xcb_input_grab_device_button_request_t xcb_out;
3058 
3059     xcb_out.grab_window = grab_window;
3060     xcb_out.grabbed_device = grabbed_device;
3061     xcb_out.modifier_device = modifier_device;
3062     xcb_out.num_classes = num_classes;
3063     xcb_out.modifiers = modifiers;
3064     xcb_out.this_device_mode = this_device_mode;
3065     xcb_out.other_device_mode = other_device_mode;
3066     xcb_out.button = button;
3067     xcb_out.owner_events = owner_events;
3068     memset(xcb_out.pad0, 0, 2);
3069 
3070     xcb_parts[2].iov_base = (char *) &xcb_out;
3071     xcb_parts[2].iov_len = sizeof(xcb_out);
3072     xcb_parts[3].iov_base = 0;
3073     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3074     /* xcb_input_event_class_t classes */
3075     xcb_parts[4].iov_base = (char *) classes;
3076     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
3077     xcb_parts[5].iov_base = 0;
3078     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3079 
3080     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3081     return xcb_ret;
3082 }
3083 
3084 
3085 /*****************************************************************************
3086  **
3087  ** xcb_void_cookie_t xcb_input_ungrab_device_button_checked
3088  **
3089  ** @param xcb_connection_t *c
3090  ** @param xcb_window_t      grab_window
3091  ** @param uint16_t          modifiers
3092  ** @param uint8_t           modifier_device
3093  ** @param uint8_t           button
3094  ** @param uint8_t           grabbed_device
3095  ** @returns xcb_void_cookie_t
3096  **
3097  *****************************************************************************/
3098 
3099 xcb_void_cookie_t
3100 xcb_input_ungrab_device_button_checked (xcb_connection_t *c  /**< */,
3101                                         xcb_window_t      grab_window  /**< */,
3102                                         uint16_t          modifiers  /**< */,
3103                                         uint8_t           modifier_device  /**< */,
3104                                         uint8_t           button  /**< */,
3105                                         uint8_t           grabbed_device  /**< */)
3106 {
3107     static const xcb_protocol_request_t xcb_req = {
3108         /* count */ 2,
3109         /* ext */ &xcb_input_id,
3110         /* opcode */ XCB_INPUT_UNGRAB_DEVICE_BUTTON,
3111         /* isvoid */ 1
3112     };
3113 
3114     struct iovec xcb_parts[4];
3115     xcb_void_cookie_t xcb_ret;
3116     xcb_input_ungrab_device_button_request_t xcb_out;
3117 
3118     xcb_out.grab_window = grab_window;
3119     xcb_out.modifiers = modifiers;
3120     xcb_out.modifier_device = modifier_device;
3121     xcb_out.button = button;
3122     xcb_out.grabbed_device = grabbed_device;
3123 
3124     xcb_parts[2].iov_base = (char *) &xcb_out;
3125     xcb_parts[2].iov_len = sizeof(xcb_out);
3126     xcb_parts[3].iov_base = 0;
3127     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3128 
3129     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3130     return xcb_ret;
3131 }
3132 
3133 
3134 /*****************************************************************************
3135  **
3136  ** xcb_void_cookie_t xcb_input_ungrab_device_button
3137  **
3138  ** @param xcb_connection_t *c
3139  ** @param xcb_window_t      grab_window
3140  ** @param uint16_t          modifiers
3141  ** @param uint8_t           modifier_device
3142  ** @param uint8_t           button
3143  ** @param uint8_t           grabbed_device
3144  ** @returns xcb_void_cookie_t
3145  **
3146  *****************************************************************************/
3147 
3148 xcb_void_cookie_t
3149 xcb_input_ungrab_device_button (xcb_connection_t *c  /**< */,
3150                                 xcb_window_t      grab_window  /**< */,
3151                                 uint16_t          modifiers  /**< */,
3152                                 uint8_t           modifier_device  /**< */,
3153                                 uint8_t           button  /**< */,
3154                                 uint8_t           grabbed_device  /**< */)
3155 {
3156     static const xcb_protocol_request_t xcb_req = {
3157         /* count */ 2,
3158         /* ext */ &xcb_input_id,
3159         /* opcode */ XCB_INPUT_UNGRAB_DEVICE_BUTTON,
3160         /* isvoid */ 1
3161     };
3162 
3163     struct iovec xcb_parts[4];
3164     xcb_void_cookie_t xcb_ret;
3165     xcb_input_ungrab_device_button_request_t xcb_out;
3166 
3167     xcb_out.grab_window = grab_window;
3168     xcb_out.modifiers = modifiers;
3169     xcb_out.modifier_device = modifier_device;
3170     xcb_out.button = button;
3171     xcb_out.grabbed_device = grabbed_device;
3172 
3173     xcb_parts[2].iov_base = (char *) &xcb_out;
3174     xcb_parts[2].iov_len = sizeof(xcb_out);
3175     xcb_parts[3].iov_base = 0;
3176     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3177 
3178     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3179     return xcb_ret;
3180 }
3181 
3182 
3183 /*****************************************************************************
3184  **
3185  ** xcb_void_cookie_t xcb_input_allow_device_events_checked
3186  **
3187  ** @param xcb_connection_t *c
3188  ** @param xcb_timestamp_t   time
3189  ** @param uint8_t           mode
3190  ** @param uint8_t           device_id
3191  ** @returns xcb_void_cookie_t
3192  **
3193  *****************************************************************************/
3194 
3195 xcb_void_cookie_t
3196 xcb_input_allow_device_events_checked (xcb_connection_t *c  /**< */,
3197                                        xcb_timestamp_t   time  /**< */,
3198                                        uint8_t           mode  /**< */,
3199                                        uint8_t           device_id  /**< */)
3200 {
3201     static const xcb_protocol_request_t xcb_req = {
3202         /* count */ 2,
3203         /* ext */ &xcb_input_id,
3204         /* opcode */ XCB_INPUT_ALLOW_DEVICE_EVENTS,
3205         /* isvoid */ 1
3206     };
3207 
3208     struct iovec xcb_parts[4];
3209     xcb_void_cookie_t xcb_ret;
3210     xcb_input_allow_device_events_request_t xcb_out;
3211 
3212     xcb_out.time = time;
3213     xcb_out.mode = mode;
3214     xcb_out.device_id = device_id;
3215 
3216     xcb_parts[2].iov_base = (char *) &xcb_out;
3217     xcb_parts[2].iov_len = sizeof(xcb_out);
3218     xcb_parts[3].iov_base = 0;
3219     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3220 
3221     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3222     return xcb_ret;
3223 }
3224 
3225 
3226 /*****************************************************************************
3227  **
3228  ** xcb_void_cookie_t xcb_input_allow_device_events
3229  **
3230  ** @param xcb_connection_t *c
3231  ** @param xcb_timestamp_t   time
3232  ** @param uint8_t           mode
3233  ** @param uint8_t           device_id
3234  ** @returns xcb_void_cookie_t
3235  **
3236  *****************************************************************************/
3237 
3238 xcb_void_cookie_t
3239 xcb_input_allow_device_events (xcb_connection_t *c  /**< */,
3240                                xcb_timestamp_t   time  /**< */,
3241                                uint8_t           mode  /**< */,
3242                                uint8_t           device_id  /**< */)
3243 {
3244     static const xcb_protocol_request_t xcb_req = {
3245         /* count */ 2,
3246         /* ext */ &xcb_input_id,
3247         /* opcode */ XCB_INPUT_ALLOW_DEVICE_EVENTS,
3248         /* isvoid */ 1
3249     };
3250 
3251     struct iovec xcb_parts[4];
3252     xcb_void_cookie_t xcb_ret;
3253     xcb_input_allow_device_events_request_t xcb_out;
3254 
3255     xcb_out.time = time;
3256     xcb_out.mode = mode;
3257     xcb_out.device_id = device_id;
3258 
3259     xcb_parts[2].iov_base = (char *) &xcb_out;
3260     xcb_parts[2].iov_len = sizeof(xcb_out);
3261     xcb_parts[3].iov_base = 0;
3262     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3263 
3264     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3265     return xcb_ret;
3266 }
3267 
3268 
3269 /*****************************************************************************
3270  **
3271  ** xcb_input_get_device_focus_cookie_t xcb_input_get_device_focus
3272  **
3273  ** @param xcb_connection_t *c
3274  ** @param uint8_t           device_id
3275  ** @returns xcb_input_get_device_focus_cookie_t
3276  **
3277  *****************************************************************************/
3278 
3279 xcb_input_get_device_focus_cookie_t
3280 xcb_input_get_device_focus (xcb_connection_t *c  /**< */,
3281                             uint8_t           device_id  /**< */)
3282 {
3283     static const xcb_protocol_request_t xcb_req = {
3284         /* count */ 2,
3285         /* ext */ &xcb_input_id,
3286         /* opcode */ XCB_INPUT_GET_DEVICE_FOCUS,
3287         /* isvoid */ 0
3288     };
3289 
3290     struct iovec xcb_parts[4];
3291     xcb_input_get_device_focus_cookie_t xcb_ret;
3292     xcb_input_get_device_focus_request_t xcb_out;
3293 
3294     xcb_out.device_id = device_id;
3295     memset(xcb_out.pad0, 0, 3);
3296 
3297     xcb_parts[2].iov_base = (char *) &xcb_out;
3298     xcb_parts[2].iov_len = sizeof(xcb_out);
3299     xcb_parts[3].iov_base = 0;
3300     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3301 
3302     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3303     return xcb_ret;
3304 }
3305 
3306 
3307 /*****************************************************************************
3308  **
3309  ** xcb_input_get_device_focus_cookie_t xcb_input_get_device_focus_unchecked
3310  **
3311  ** @param xcb_connection_t *c
3312  ** @param uint8_t           device_id
3313  ** @returns xcb_input_get_device_focus_cookie_t
3314  **
3315  *****************************************************************************/
3316 
3317 xcb_input_get_device_focus_cookie_t
3318 xcb_input_get_device_focus_unchecked (xcb_connection_t *c  /**< */,
3319                                       uint8_t           device_id  /**< */)
3320 {
3321     static const xcb_protocol_request_t xcb_req = {
3322         /* count */ 2,
3323         /* ext */ &xcb_input_id,
3324         /* opcode */ XCB_INPUT_GET_DEVICE_FOCUS,
3325         /* isvoid */ 0
3326     };
3327 
3328     struct iovec xcb_parts[4];
3329     xcb_input_get_device_focus_cookie_t xcb_ret;
3330     xcb_input_get_device_focus_request_t xcb_out;
3331 
3332     xcb_out.device_id = device_id;
3333     memset(xcb_out.pad0, 0, 3);
3334 
3335     xcb_parts[2].iov_base = (char *) &xcb_out;
3336     xcb_parts[2].iov_len = sizeof(xcb_out);
3337     xcb_parts[3].iov_base = 0;
3338     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3339 
3340     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3341     return xcb_ret;
3342 }
3343 
3344 
3345 /*****************************************************************************
3346  **
3347  ** xcb_input_get_device_focus_reply_t * xcb_input_get_device_focus_reply
3348  **
3349  ** @param xcb_connection_t                     *c
3350  ** @param xcb_input_get_device_focus_cookie_t   cookie
3351  ** @param xcb_generic_error_t                 **e
3352  ** @returns xcb_input_get_device_focus_reply_t *
3353  **
3354  *****************************************************************************/
3355 
3356 xcb_input_get_device_focus_reply_t *
3357 xcb_input_get_device_focus_reply (xcb_connection_t                     *c  /**< */,
3358                                   xcb_input_get_device_focus_cookie_t   cookie  /**< */,
3359                                   xcb_generic_error_t                 **e  /**< */)
3360 {
3361     return (xcb_input_get_device_focus_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
3362 }
3363 
3364 
3365 /*****************************************************************************
3366  **
3367  ** xcb_void_cookie_t xcb_input_set_device_focus_checked
3368  **
3369  ** @param xcb_connection_t *c
3370  ** @param xcb_window_t      focus
3371  ** @param xcb_timestamp_t   time
3372  ** @param uint8_t           revert_to
3373  ** @param uint8_t           device_id
3374  ** @returns xcb_void_cookie_t
3375  **
3376  *****************************************************************************/
3377 
3378 xcb_void_cookie_t
3379 xcb_input_set_device_focus_checked (xcb_connection_t *c  /**< */,
3380                                     xcb_window_t      focus  /**< */,
3381                                     xcb_timestamp_t   time  /**< */,
3382                                     uint8_t           revert_to  /**< */,
3383                                     uint8_t           device_id  /**< */)
3384 {
3385     static const xcb_protocol_request_t xcb_req = {
3386         /* count */ 2,
3387         /* ext */ &xcb_input_id,
3388         /* opcode */ XCB_INPUT_SET_DEVICE_FOCUS,
3389         /* isvoid */ 1
3390     };
3391 
3392     struct iovec xcb_parts[4];
3393     xcb_void_cookie_t xcb_ret;
3394     xcb_input_set_device_focus_request_t xcb_out;
3395 
3396     xcb_out.focus = focus;
3397     xcb_out.time = time;
3398     xcb_out.revert_to = revert_to;
3399     xcb_out.device_id = device_id;
3400 
3401     xcb_parts[2].iov_base = (char *) &xcb_out;
3402     xcb_parts[2].iov_len = sizeof(xcb_out);
3403     xcb_parts[3].iov_base = 0;
3404     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3405 
3406     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3407     return xcb_ret;
3408 }
3409 
3410 
3411 /*****************************************************************************
3412  **
3413  ** xcb_void_cookie_t xcb_input_set_device_focus
3414  **
3415  ** @param xcb_connection_t *c
3416  ** @param xcb_window_t      focus
3417  ** @param xcb_timestamp_t   time
3418  ** @param uint8_t           revert_to
3419  ** @param uint8_t           device_id
3420  ** @returns xcb_void_cookie_t
3421  **
3422  *****************************************************************************/
3423 
3424 xcb_void_cookie_t
3425 xcb_input_set_device_focus (xcb_connection_t *c  /**< */,
3426                             xcb_window_t      focus  /**< */,
3427                             xcb_timestamp_t   time  /**< */,
3428                             uint8_t           revert_to  /**< */,
3429                             uint8_t           device_id  /**< */)
3430 {
3431     static const xcb_protocol_request_t xcb_req = {
3432         /* count */ 2,
3433         /* ext */ &xcb_input_id,
3434         /* opcode */ XCB_INPUT_SET_DEVICE_FOCUS,
3435         /* isvoid */ 1
3436     };
3437 
3438     struct iovec xcb_parts[4];
3439     xcb_void_cookie_t xcb_ret;
3440     xcb_input_set_device_focus_request_t xcb_out;
3441 
3442     xcb_out.focus = focus;
3443     xcb_out.time = time;
3444     xcb_out.revert_to = revert_to;
3445     xcb_out.device_id = device_id;
3446 
3447     xcb_parts[2].iov_base = (char *) &xcb_out;
3448     xcb_parts[2].iov_len = sizeof(xcb_out);
3449     xcb_parts[3].iov_base = 0;
3450     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3451 
3452     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3453     return xcb_ret;
3454 }
3455 
3456 
3457 /*****************************************************************************
3458  **
3459  ** void xcb_input_kbd_feedback_state_next
3460  **
3461  ** @param xcb_input_kbd_feedback_state_iterator_t *i
3462  ** @returns void
3463  **
3464  *****************************************************************************/
3465 
3466 void
3467 xcb_input_kbd_feedback_state_next (xcb_input_kbd_feedback_state_iterator_t *i  /**< */)
3468 {
3469     --i->rem;
3470     ++i->data;
3471     i->index += sizeof(xcb_input_kbd_feedback_state_t);
3472 }
3473 
3474 
3475 /*****************************************************************************
3476  **
3477  ** xcb_generic_iterator_t xcb_input_kbd_feedback_state_end
3478  **
3479  ** @param xcb_input_kbd_feedback_state_iterator_t i
3480  ** @returns xcb_generic_iterator_t
3481  **
3482  *****************************************************************************/
3483 
3484 xcb_generic_iterator_t
3485 xcb_input_kbd_feedback_state_end (xcb_input_kbd_feedback_state_iterator_t i  /**< */)
3486 {
3487     xcb_generic_iterator_t ret;
3488     ret.data = i.data + i.rem;
3489     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3490     ret.rem = 0;
3491     return ret;
3492 }
3493 
3494 
3495 /*****************************************************************************
3496  **
3497  ** void xcb_input_ptr_feedback_state_next
3498  **
3499  ** @param xcb_input_ptr_feedback_state_iterator_t *i
3500  ** @returns void
3501  **
3502  *****************************************************************************/
3503 
3504 void
3505 xcb_input_ptr_feedback_state_next (xcb_input_ptr_feedback_state_iterator_t *i  /**< */)
3506 {
3507     --i->rem;
3508     ++i->data;
3509     i->index += sizeof(xcb_input_ptr_feedback_state_t);
3510 }
3511 
3512 
3513 /*****************************************************************************
3514  **
3515  ** xcb_generic_iterator_t xcb_input_ptr_feedback_state_end
3516  **
3517  ** @param xcb_input_ptr_feedback_state_iterator_t i
3518  ** @returns xcb_generic_iterator_t
3519  **
3520  *****************************************************************************/
3521 
3522 xcb_generic_iterator_t
3523 xcb_input_ptr_feedback_state_end (xcb_input_ptr_feedback_state_iterator_t i  /**< */)
3524 {
3525     xcb_generic_iterator_t ret;
3526     ret.data = i.data + i.rem;
3527     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3528     ret.rem = 0;
3529     return ret;
3530 }
3531 
3532 
3533 /*****************************************************************************
3534  **
3535  ** void xcb_input_integer_feedback_state_next
3536  **
3537  ** @param xcb_input_integer_feedback_state_iterator_t *i
3538  ** @returns void
3539  **
3540  *****************************************************************************/
3541 
3542 void
3543 xcb_input_integer_feedback_state_next (xcb_input_integer_feedback_state_iterator_t *i  /**< */)
3544 {
3545     --i->rem;
3546     ++i->data;
3547     i->index += sizeof(xcb_input_integer_feedback_state_t);
3548 }
3549 
3550 
3551 /*****************************************************************************
3552  **
3553  ** xcb_generic_iterator_t xcb_input_integer_feedback_state_end
3554  **
3555  ** @param xcb_input_integer_feedback_state_iterator_t i
3556  ** @returns xcb_generic_iterator_t
3557  **
3558  *****************************************************************************/
3559 
3560 xcb_generic_iterator_t
3561 xcb_input_integer_feedback_state_end (xcb_input_integer_feedback_state_iterator_t i  /**< */)
3562 {
3563     xcb_generic_iterator_t ret;
3564     ret.data = i.data + i.rem;
3565     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3566     ret.rem = 0;
3567     return ret;
3568 }
3569 
3570 int
3571 xcb_input_string_feedback_state_sizeof (const void  *_buffer  /**< */)
3572 {
3573     char *xcb_tmp = (char *)_buffer;
3574     const xcb_input_string_feedback_state_t *_aux = (xcb_input_string_feedback_state_t *)_buffer;
3575     unsigned int xcb_buffer_len = 0;
3576     unsigned int xcb_block_len = 0;
3577     unsigned int xcb_pad = 0;
3578     unsigned int xcb_align_to = 0;
3579 
3580 
3581     xcb_block_len += sizeof(xcb_input_string_feedback_state_t);
3582     xcb_tmp += xcb_block_len;
3583     xcb_buffer_len += xcb_block_len;
3584     xcb_block_len = 0;
3585     /* keysyms */
3586     xcb_block_len += _aux->num_keysyms * sizeof(xcb_keysym_t);
3587     xcb_tmp += xcb_block_len;
3588     xcb_align_to = ALIGNOF(xcb_keysym_t);
3589     /* insert padding */
3590     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
3591     xcb_buffer_len += xcb_block_len + xcb_pad;
3592     if (0 != xcb_pad) {
3593         xcb_tmp += xcb_pad;
3594         xcb_pad = 0;
3595     }
3596     xcb_block_len = 0;
3597 
3598     return xcb_buffer_len;
3599 }
3600 
3601 
3602 /*****************************************************************************
3603  **
3604  ** xcb_keysym_t * xcb_input_string_feedback_state_keysyms
3605  **
3606  ** @param const xcb_input_string_feedback_state_t *R
3607  ** @returns xcb_keysym_t *
3608  **
3609  *****************************************************************************/
3610 
3611 xcb_keysym_t *
3612 xcb_input_string_feedback_state_keysyms (const xcb_input_string_feedback_state_t *R  /**< */)
3613 {
3614     return (xcb_keysym_t *) (R + 1);
3615 }
3616 
3617 
3618 /*****************************************************************************
3619  **
3620  ** int xcb_input_string_feedback_state_keysyms_length
3621  **
3622  ** @param const xcb_input_string_feedback_state_t *R
3623  ** @returns int
3624  **
3625  *****************************************************************************/
3626 
3627 int
3628 xcb_input_string_feedback_state_keysyms_length (const xcb_input_string_feedback_state_t *R  /**< */)
3629 {
3630     return R->num_keysyms;
3631 }
3632 
3633 
3634 /*****************************************************************************
3635  **
3636  ** xcb_generic_iterator_t xcb_input_string_feedback_state_keysyms_end
3637  **
3638  ** @param const xcb_input_string_feedback_state_t *R
3639  ** @returns xcb_generic_iterator_t
3640  **
3641  *****************************************************************************/
3642 
3643 xcb_generic_iterator_t
3644 xcb_input_string_feedback_state_keysyms_end (const xcb_input_string_feedback_state_t *R  /**< */)
3645 {
3646     xcb_generic_iterator_t i;
3647     i.data = ((xcb_keysym_t *) (R + 1)) + (R->num_keysyms);
3648     i.rem = 0;
3649     i.index = (char *) i.data - (char *) R;
3650     return i;
3651 }
3652 
3653 
3654 /*****************************************************************************
3655  **
3656  ** void xcb_input_string_feedback_state_next
3657  **
3658  ** @param xcb_input_string_feedback_state_iterator_t *i
3659  ** @returns void
3660  **
3661  *****************************************************************************/
3662 
3663 void
3664 xcb_input_string_feedback_state_next (xcb_input_string_feedback_state_iterator_t *i  /**< */)
3665 {
3666     xcb_input_string_feedback_state_t *R = i->data;
3667     xcb_generic_iterator_t child;
3668     child.data = (xcb_input_string_feedback_state_t *)(((char *)R) + xcb_input_string_feedback_state_sizeof(R));
3669     i->index = (char *) child.data - (char *) i->data;
3670     --i->rem;
3671     i->data = (xcb_input_string_feedback_state_t *) child.data;
3672 }
3673 
3674 
3675 /*****************************************************************************
3676  **
3677  ** xcb_generic_iterator_t xcb_input_string_feedback_state_end
3678  **
3679  ** @param xcb_input_string_feedback_state_iterator_t i
3680  ** @returns xcb_generic_iterator_t
3681  **
3682  *****************************************************************************/
3683 
3684 xcb_generic_iterator_t
3685 xcb_input_string_feedback_state_end (xcb_input_string_feedback_state_iterator_t i  /**< */)
3686 {
3687     xcb_generic_iterator_t ret;
3688     while(i.rem > 0)
3689         xcb_input_string_feedback_state_next(&i);
3690     ret.data = i.data;
3691     ret.rem = i.rem;
3692     ret.index = i.index;
3693     return ret;
3694 }
3695 
3696 
3697 /*****************************************************************************
3698  **
3699  ** void xcb_input_bell_feedback_state_next
3700  **
3701  ** @param xcb_input_bell_feedback_state_iterator_t *i
3702  ** @returns void
3703  **
3704  *****************************************************************************/
3705 
3706 void
3707 xcb_input_bell_feedback_state_next (xcb_input_bell_feedback_state_iterator_t *i  /**< */)
3708 {
3709     --i->rem;
3710     ++i->data;
3711     i->index += sizeof(xcb_input_bell_feedback_state_t);
3712 }
3713 
3714 
3715 /*****************************************************************************
3716  **
3717  ** xcb_generic_iterator_t xcb_input_bell_feedback_state_end
3718  **
3719  ** @param xcb_input_bell_feedback_state_iterator_t i
3720  ** @returns xcb_generic_iterator_t
3721  **
3722  *****************************************************************************/
3723 
3724 xcb_generic_iterator_t
3725 xcb_input_bell_feedback_state_end (xcb_input_bell_feedback_state_iterator_t i  /**< */)
3726 {
3727     xcb_generic_iterator_t ret;
3728     ret.data = i.data + i.rem;
3729     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3730     ret.rem = 0;
3731     return ret;
3732 }
3733 
3734 
3735 /*****************************************************************************
3736  **
3737  ** void xcb_input_led_feedback_state_next
3738  **
3739  ** @param xcb_input_led_feedback_state_iterator_t *i
3740  ** @returns void
3741  **
3742  *****************************************************************************/
3743 
3744 void
3745 xcb_input_led_feedback_state_next (xcb_input_led_feedback_state_iterator_t *i  /**< */)
3746 {
3747     --i->rem;
3748     ++i->data;
3749     i->index += sizeof(xcb_input_led_feedback_state_t);
3750 }
3751 
3752 
3753 /*****************************************************************************
3754  **
3755  ** xcb_generic_iterator_t xcb_input_led_feedback_state_end
3756  **
3757  ** @param xcb_input_led_feedback_state_iterator_t i
3758  ** @returns xcb_generic_iterator_t
3759  **
3760  *****************************************************************************/
3761 
3762 xcb_generic_iterator_t
3763 xcb_input_led_feedback_state_end (xcb_input_led_feedback_state_iterator_t i  /**< */)
3764 {
3765     xcb_generic_iterator_t ret;
3766     ret.data = i.data + i.rem;
3767     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3768     ret.rem = 0;
3769     return ret;
3770 }
3771 
3772 int
3773 xcb_input_feedback_state_sizeof (const void  *_buffer  /**< */)
3774 {
3775     char *xcb_tmp = (char *)_buffer;
3776     const xcb_input_feedback_state_t *_aux = (xcb_input_feedback_state_t *)_buffer;
3777     unsigned int xcb_buffer_len = 0;
3778     unsigned int xcb_block_len = 0;
3779     unsigned int xcb_pad = 0;
3780     unsigned int xcb_align_to = 0;
3781 
3782 
3783     xcb_block_len += sizeof(xcb_input_feedback_state_t);
3784     xcb_tmp += xcb_block_len;
3785     xcb_buffer_len += xcb_block_len;
3786     xcb_block_len = 0;
3787     /* uninterpreted_data */
3788     xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
3789     xcb_tmp += xcb_block_len;
3790     xcb_align_to = ALIGNOF(uint8_t);
3791     /* insert padding */
3792     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
3793     xcb_buffer_len += xcb_block_len + xcb_pad;
3794     if (0 != xcb_pad) {
3795         xcb_tmp += xcb_pad;
3796         xcb_pad = 0;
3797     }
3798     xcb_block_len = 0;
3799 
3800     return xcb_buffer_len;
3801 }
3802 
3803 
3804 /*****************************************************************************
3805  **
3806  ** uint8_t * xcb_input_feedback_state_uninterpreted_data
3807  **
3808  ** @param const xcb_input_feedback_state_t *R
3809  ** @returns uint8_t *
3810  **
3811  *****************************************************************************/
3812 
3813 uint8_t *
3814 xcb_input_feedback_state_uninterpreted_data (const xcb_input_feedback_state_t *R  /**< */)
3815 {
3816     return (uint8_t *) (R + 1);
3817 }
3818 
3819 
3820 /*****************************************************************************
3821  **
3822  ** int xcb_input_feedback_state_uninterpreted_data_length
3823  **
3824  ** @param const xcb_input_feedback_state_t *R
3825  ** @returns int
3826  **
3827  *****************************************************************************/
3828 
3829 int
3830 xcb_input_feedback_state_uninterpreted_data_length (const xcb_input_feedback_state_t *R  /**< */)
3831 {
3832     return (R->len - 4);
3833 }
3834 
3835 
3836 /*****************************************************************************
3837  **
3838  ** xcb_generic_iterator_t xcb_input_feedback_state_uninterpreted_data_end
3839  **
3840  ** @param const xcb_input_feedback_state_t *R
3841  ** @returns xcb_generic_iterator_t
3842  **
3843  *****************************************************************************/
3844 
3845 xcb_generic_iterator_t
3846 xcb_input_feedback_state_uninterpreted_data_end (const xcb_input_feedback_state_t *R  /**< */)
3847 {
3848     xcb_generic_iterator_t i;
3849     i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
3850     i.rem = 0;
3851     i.index = (char *) i.data - (char *) R;
3852     return i;
3853 }
3854 
3855 
3856 /*****************************************************************************
3857  **
3858  ** void xcb_input_feedback_state_next
3859  **
3860  ** @param xcb_input_feedback_state_iterator_t *i
3861  ** @returns void
3862  **
3863  *****************************************************************************/
3864 
3865 void
3866 xcb_input_feedback_state_next (xcb_input_feedback_state_iterator_t *i  /**< */)
3867 {
3868     xcb_input_feedback_state_t *R = i->data;
3869     xcb_generic_iterator_t child;
3870     child.data = (xcb_input_feedback_state_t *)(((char *)R) + xcb_input_feedback_state_sizeof(R));
3871     i->index = (char *) child.data - (char *) i->data;
3872     --i->rem;
3873     i->data = (xcb_input_feedback_state_t *) child.data;
3874 }
3875 
3876 
3877 /*****************************************************************************
3878  **
3879  ** xcb_generic_iterator_t xcb_input_feedback_state_end
3880  **
3881  ** @param xcb_input_feedback_state_iterator_t i
3882  ** @returns xcb_generic_iterator_t
3883  **
3884  *****************************************************************************/
3885 
3886 xcb_generic_iterator_t
3887 xcb_input_feedback_state_end (xcb_input_feedback_state_iterator_t i  /**< */)
3888 {
3889     xcb_generic_iterator_t ret;
3890     while(i.rem > 0)
3891         xcb_input_feedback_state_next(&i);
3892     ret.data = i.data;
3893     ret.rem = i.rem;
3894     ret.index = i.index;
3895     return ret;
3896 }
3897 
3898 int
3899 xcb_input_get_feedback_control_sizeof (const void  *_buffer  /**< */)
3900 {
3901     char *xcb_tmp = (char *)_buffer;
3902     const xcb_input_get_feedback_control_reply_t *_aux = (xcb_input_get_feedback_control_reply_t *)_buffer;
3903     unsigned int xcb_buffer_len = 0;
3904     unsigned int xcb_block_len = 0;
3905     unsigned int xcb_pad = 0;
3906     unsigned int xcb_align_to = 0;
3907 
3908     unsigned int i;
3909     unsigned int xcb_tmp_len;
3910 
3911     xcb_block_len += sizeof(xcb_input_get_feedback_control_reply_t);
3912     xcb_tmp += xcb_block_len;
3913     xcb_buffer_len += xcb_block_len;
3914     xcb_block_len = 0;
3915     /* feedbacks */
3916     for(i=0; i<_aux->num_feedbacks; i++) {
3917         xcb_tmp_len = xcb_input_feedback_state_sizeof(xcb_tmp);
3918         xcb_block_len += xcb_tmp_len;
3919         xcb_tmp += xcb_tmp_len;
3920     }
3921     xcb_align_to = ALIGNOF(xcb_input_feedback_state_t);
3922     /* insert padding */
3923     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
3924     xcb_buffer_len += xcb_block_len + xcb_pad;
3925     if (0 != xcb_pad) {
3926         xcb_tmp += xcb_pad;
3927         xcb_pad = 0;
3928     }
3929     xcb_block_len = 0;
3930 
3931     return xcb_buffer_len;
3932 }
3933 
3934 
3935 /*****************************************************************************
3936  **
3937  ** xcb_input_get_feedback_control_cookie_t xcb_input_get_feedback_control
3938  **
3939  ** @param xcb_connection_t *c
3940  ** @param uint8_t           device_id
3941  ** @returns xcb_input_get_feedback_control_cookie_t
3942  **
3943  *****************************************************************************/
3944 
3945 xcb_input_get_feedback_control_cookie_t
3946 xcb_input_get_feedback_control (xcb_connection_t *c  /**< */,
3947                                 uint8_t           device_id  /**< */)
3948 {
3949     static const xcb_protocol_request_t xcb_req = {
3950         /* count */ 2,
3951         /* ext */ &xcb_input_id,
3952         /* opcode */ XCB_INPUT_GET_FEEDBACK_CONTROL,
3953         /* isvoid */ 0
3954     };
3955 
3956     struct iovec xcb_parts[4];
3957     xcb_input_get_feedback_control_cookie_t xcb_ret;
3958     xcb_input_get_feedback_control_request_t xcb_out;
3959 
3960     xcb_out.device_id = device_id;
3961     memset(xcb_out.pad0, 0, 3);
3962 
3963     xcb_parts[2].iov_base = (char *) &xcb_out;
3964     xcb_parts[2].iov_len = sizeof(xcb_out);
3965     xcb_parts[3].iov_base = 0;
3966     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3967 
3968     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3969     return xcb_ret;
3970 }
3971 
3972 
3973 /*****************************************************************************
3974  **
3975  ** xcb_input_get_feedback_control_cookie_t xcb_input_get_feedback_control_unchecked
3976  **
3977  ** @param xcb_connection_t *c
3978  ** @param uint8_t           device_id
3979  ** @returns xcb_input_get_feedback_control_cookie_t
3980  **
3981  *****************************************************************************/
3982 
3983 xcb_input_get_feedback_control_cookie_t
3984 xcb_input_get_feedback_control_unchecked (xcb_connection_t *c  /**< */,
3985                                           uint8_t           device_id  /**< */)
3986 {
3987     static const xcb_protocol_request_t xcb_req = {
3988         /* count */ 2,
3989         /* ext */ &xcb_input_id,
3990         /* opcode */ XCB_INPUT_GET_FEEDBACK_CONTROL,
3991         /* isvoid */ 0
3992     };
3993 
3994     struct iovec xcb_parts[4];
3995     xcb_input_get_feedback_control_cookie_t xcb_ret;
3996     xcb_input_get_feedback_control_request_t xcb_out;
3997 
3998     xcb_out.device_id = device_id;
3999     memset(xcb_out.pad0, 0, 3);
4000 
4001     xcb_parts[2].iov_base = (char *) &xcb_out;
4002     xcb_parts[2].iov_len = sizeof(xcb_out);
4003     xcb_parts[3].iov_base = 0;
4004     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4005 
4006     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4007     return xcb_ret;
4008 }
4009 
4010 
4011 /*****************************************************************************
4012  **
4013  ** int xcb_input_get_feedback_control_feedbacks_length
4014  **
4015  ** @param const xcb_input_get_feedback_control_reply_t *R
4016  ** @returns int
4017  **
4018  *****************************************************************************/
4019 
4020 int
4021 xcb_input_get_feedback_control_feedbacks_length (const xcb_input_get_feedback_control_reply_t *R  /**< */)
4022 {
4023     return R->num_feedbacks;
4024 }
4025 
4026 
4027 /*****************************************************************************
4028  **
4029  ** xcb_input_feedback_state_iterator_t xcb_input_get_feedback_control_feedbacks_iterator
4030  **
4031  ** @param const xcb_input_get_feedback_control_reply_t *R
4032  ** @returns xcb_input_feedback_state_iterator_t
4033  **
4034  *****************************************************************************/
4035 
4036 xcb_input_feedback_state_iterator_t
4037 xcb_input_get_feedback_control_feedbacks_iterator (const xcb_input_get_feedback_control_reply_t *R  /**< */)
4038 {
4039     xcb_input_feedback_state_iterator_t i;
4040     i.data = (xcb_input_feedback_state_t *) (R + 1);
4041     i.rem = R->num_feedbacks;
4042     i.index = (char *) i.data - (char *) R;
4043     return i;
4044 }
4045 
4046 
4047 /*****************************************************************************
4048  **
4049  ** xcb_input_get_feedback_control_reply_t * xcb_input_get_feedback_control_reply
4050  **
4051  ** @param xcb_connection_t                         *c
4052  ** @param xcb_input_get_feedback_control_cookie_t   cookie
4053  ** @param xcb_generic_error_t                     **e
4054  ** @returns xcb_input_get_feedback_control_reply_t *
4055  **
4056  *****************************************************************************/
4057 
4058 xcb_input_get_feedback_control_reply_t *
4059 xcb_input_get_feedback_control_reply (xcb_connection_t                         *c  /**< */,
4060                                       xcb_input_get_feedback_control_cookie_t   cookie  /**< */,
4061                                       xcb_generic_error_t                     **e  /**< */)
4062 {
4063     return (xcb_input_get_feedback_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4064 }
4065 
4066 
4067 /*****************************************************************************
4068  **
4069  ** void xcb_input_kbd_feedback_ctl_next
4070  **
4071  ** @param xcb_input_kbd_feedback_ctl_iterator_t *i
4072  ** @returns void
4073  **
4074  *****************************************************************************/
4075 
4076 void
4077 xcb_input_kbd_feedback_ctl_next (xcb_input_kbd_feedback_ctl_iterator_t *i  /**< */)
4078 {
4079     --i->rem;
4080     ++i->data;
4081     i->index += sizeof(xcb_input_kbd_feedback_ctl_t);
4082 }
4083 
4084 
4085 /*****************************************************************************
4086  **
4087  ** xcb_generic_iterator_t xcb_input_kbd_feedback_ctl_end
4088  **
4089  ** @param xcb_input_kbd_feedback_ctl_iterator_t i
4090  ** @returns xcb_generic_iterator_t
4091  **
4092  *****************************************************************************/
4093 
4094 xcb_generic_iterator_t
4095 xcb_input_kbd_feedback_ctl_end (xcb_input_kbd_feedback_ctl_iterator_t i  /**< */)
4096 {
4097     xcb_generic_iterator_t ret;
4098     ret.data = i.data + i.rem;
4099     ret.index = i.index + ((char *) ret.data - (char *) i.data);
4100     ret.rem = 0;
4101     return ret;
4102 }
4103 
4104 
4105 /*****************************************************************************
4106  **
4107  ** void xcb_input_ptr_feedback_ctl_next
4108  **
4109  ** @param xcb_input_ptr_feedback_ctl_iterator_t *i
4110  ** @returns void
4111  **
4112  *****************************************************************************/
4113 
4114 void
4115 xcb_input_ptr_feedback_ctl_next (xcb_input_ptr_feedback_ctl_iterator_t *i  /**< */)
4116 {
4117     --i->rem;
4118     ++i->data;
4119     i->index += sizeof(xcb_input_ptr_feedback_ctl_t);
4120 }
4121 
4122 
4123 /*****************************************************************************
4124  **
4125  ** xcb_generic_iterator_t xcb_input_ptr_feedback_ctl_end
4126  **
4127  ** @param xcb_input_ptr_feedback_ctl_iterator_t i
4128  ** @returns xcb_generic_iterator_t
4129  **
4130  *****************************************************************************/
4131 
4132 xcb_generic_iterator_t
4133 xcb_input_ptr_feedback_ctl_end (xcb_input_ptr_feedback_ctl_iterator_t i  /**< */)
4134 {
4135     xcb_generic_iterator_t ret;
4136     ret.data = i.data + i.rem;
4137     ret.index = i.index + ((char *) ret.data - (char *) i.data);
4138     ret.rem = 0;
4139     return ret;
4140 }
4141 
4142 
4143 /*****************************************************************************
4144  **
4145  ** void xcb_input_integer_feedback_ctl_next
4146  **
4147  ** @param xcb_input_integer_feedback_ctl_iterator_t *i
4148  ** @returns void
4149  **
4150  *****************************************************************************/
4151 
4152 void
4153 xcb_input_integer_feedback_ctl_next (xcb_input_integer_feedback_ctl_iterator_t *i  /**< */)
4154 {
4155     --i->rem;
4156     ++i->data;
4157     i->index += sizeof(xcb_input_integer_feedback_ctl_t);
4158 }
4159 
4160 
4161 /*****************************************************************************
4162  **
4163  ** xcb_generic_iterator_t xcb_input_integer_feedback_ctl_end
4164  **
4165  ** @param xcb_input_integer_feedback_ctl_iterator_t i
4166  ** @returns xcb_generic_iterator_t
4167  **
4168  *****************************************************************************/
4169 
4170 xcb_generic_iterator_t
4171 xcb_input_integer_feedback_ctl_end (xcb_input_integer_feedback_ctl_iterator_t i  /**< */)
4172 {
4173     xcb_generic_iterator_t ret;
4174     ret.data = i.data + i.rem;
4175     ret.index = i.index + ((char *) ret.data - (char *) i.data);
4176     ret.rem = 0;
4177     return ret;
4178 }
4179 
4180 int
4181 xcb_input_string_feedback_ctl_sizeof (const void  *_buffer  /**< */)
4182 {
4183     char *xcb_tmp = (char *)_buffer;
4184     const xcb_input_string_feedback_ctl_t *_aux = (xcb_input_string_feedback_ctl_t *)_buffer;
4185     unsigned int xcb_buffer_len = 0;
4186     unsigned int xcb_block_len = 0;
4187     unsigned int xcb_pad = 0;
4188     unsigned int xcb_align_to = 0;
4189 
4190 
4191     xcb_block_len += sizeof(xcb_input_string_feedback_ctl_t);
4192     xcb_tmp += xcb_block_len;
4193     xcb_buffer_len += xcb_block_len;
4194     xcb_block_len = 0;
4195     /* keysyms */
4196     xcb_block_len += _aux->num_keysyms * sizeof(xcb_keysym_t);
4197     xcb_tmp += xcb_block_len;
4198     xcb_align_to = ALIGNOF(xcb_keysym_t);
4199     /* insert padding */
4200     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4201     xcb_buffer_len += xcb_block_len + xcb_pad;
4202     if (0 != xcb_pad) {
4203         xcb_tmp += xcb_pad;
4204         xcb_pad = 0;
4205     }
4206     xcb_block_len = 0;
4207 
4208     return xcb_buffer_len;
4209 }
4210 
4211 
4212 /*****************************************************************************
4213  **
4214  ** xcb_keysym_t * xcb_input_string_feedback_ctl_keysyms
4215  **
4216  ** @param const xcb_input_string_feedback_ctl_t *R
4217  ** @returns xcb_keysym_t *
4218  **
4219  *****************************************************************************/
4220 
4221 xcb_keysym_t *
4222 xcb_input_string_feedback_ctl_keysyms (const xcb_input_string_feedback_ctl_t *R  /**< */)
4223 {
4224     return (xcb_keysym_t *) (R + 1);
4225 }
4226 
4227 
4228 /*****************************************************************************
4229  **
4230  ** int xcb_input_string_feedback_ctl_keysyms_length
4231  **
4232  ** @param const xcb_input_string_feedback_ctl_t *R
4233  ** @returns int
4234  **
4235  *****************************************************************************/
4236 
4237 int
4238 xcb_input_string_feedback_ctl_keysyms_length (const xcb_input_string_feedback_ctl_t *R  /**< */)
4239 {
4240     return R->num_keysyms;
4241 }
4242 
4243 
4244 /*****************************************************************************
4245  **
4246  ** xcb_generic_iterator_t xcb_input_string_feedback_ctl_keysyms_end
4247  **
4248  ** @param const xcb_input_string_feedback_ctl_t *R
4249  ** @returns xcb_generic_iterator_t
4250  **
4251  *****************************************************************************/
4252 
4253 xcb_generic_iterator_t
4254 xcb_input_string_feedback_ctl_keysyms_end (const xcb_input_string_feedback_ctl_t *R  /**< */)
4255 {
4256     xcb_generic_iterator_t i;
4257     i.data = ((xcb_keysym_t *) (R + 1)) + (R->num_keysyms);
4258     i.rem = 0;
4259     i.index = (char *) i.data - (char *) R;
4260     return i;
4261 }
4262 
4263 
4264 /*****************************************************************************
4265  **
4266  ** void xcb_input_string_feedback_ctl_next
4267  **
4268  ** @param xcb_input_string_feedback_ctl_iterator_t *i
4269  ** @returns void
4270  **
4271  *****************************************************************************/
4272 
4273 void
4274 xcb_input_string_feedback_ctl_next (xcb_input_string_feedback_ctl_iterator_t *i  /**< */)
4275 {
4276     xcb_input_string_feedback_ctl_t *R = i->data;
4277     xcb_generic_iterator_t child;
4278     child.data = (xcb_input_string_feedback_ctl_t *)(((char *)R) + xcb_input_string_feedback_ctl_sizeof(R));
4279     i->index = (char *) child.data - (char *) i->data;
4280     --i->rem;
4281     i->data = (xcb_input_string_feedback_ctl_t *) child.data;
4282 }
4283 
4284 
4285 /*****************************************************************************
4286  **
4287  ** xcb_generic_iterator_t xcb_input_string_feedback_ctl_end
4288  **
4289  ** @param xcb_input_string_feedback_ctl_iterator_t i
4290  ** @returns xcb_generic_iterator_t
4291  **
4292  *****************************************************************************/
4293 
4294 xcb_generic_iterator_t
4295 xcb_input_string_feedback_ctl_end (xcb_input_string_feedback_ctl_iterator_t i  /**< */)
4296 {
4297     xcb_generic_iterator_t ret;
4298     while(i.rem > 0)
4299         xcb_input_string_feedback_ctl_next(&i);
4300     ret.data = i.data;
4301     ret.rem = i.rem;
4302     ret.index = i.index;
4303     return ret;
4304 }
4305 
4306 
4307 /*****************************************************************************
4308  **
4309  ** void xcb_input_bell_feedback_ctl_next
4310  **
4311  ** @param xcb_input_bell_feedback_ctl_iterator_t *i
4312  ** @returns void
4313  **
4314  *****************************************************************************/
4315 
4316 void
4317 xcb_input_bell_feedback_ctl_next (xcb_input_bell_feedback_ctl_iterator_t *i  /**< */)
4318 {
4319     --i->rem;
4320     ++i->data;
4321     i->index += sizeof(xcb_input_bell_feedback_ctl_t);
4322 }
4323 
4324 
4325 /*****************************************************************************
4326  **
4327  ** xcb_generic_iterator_t xcb_input_bell_feedback_ctl_end
4328  **
4329  ** @param xcb_input_bell_feedback_ctl_iterator_t i
4330  ** @returns xcb_generic_iterator_t
4331  **
4332  *****************************************************************************/
4333 
4334 xcb_generic_iterator_t
4335 xcb_input_bell_feedback_ctl_end (xcb_input_bell_feedback_ctl_iterator_t i  /**< */)
4336 {
4337     xcb_generic_iterator_t ret;
4338     ret.data = i.data + i.rem;
4339     ret.index = i.index + ((char *) ret.data - (char *) i.data);
4340     ret.rem = 0;
4341     return ret;
4342 }
4343 
4344 
4345 /*****************************************************************************
4346  **
4347  ** void xcb_input_led_feedback_ctl_next
4348  **
4349  ** @param xcb_input_led_feedback_ctl_iterator_t *i
4350  ** @returns void
4351  **
4352  *****************************************************************************/
4353 
4354 void
4355 xcb_input_led_feedback_ctl_next (xcb_input_led_feedback_ctl_iterator_t *i  /**< */)
4356 {
4357     --i->rem;
4358     ++i->data;
4359     i->index += sizeof(xcb_input_led_feedback_ctl_t);
4360 }
4361 
4362 
4363 /*****************************************************************************
4364  **
4365  ** xcb_generic_iterator_t xcb_input_led_feedback_ctl_end
4366  **
4367  ** @param xcb_input_led_feedback_ctl_iterator_t i
4368  ** @returns xcb_generic_iterator_t
4369  **
4370  *****************************************************************************/
4371 
4372 xcb_generic_iterator_t
4373 xcb_input_led_feedback_ctl_end (xcb_input_led_feedback_ctl_iterator_t i  /**< */)
4374 {
4375     xcb_generic_iterator_t ret;
4376     ret.data = i.data + i.rem;
4377     ret.index = i.index + ((char *) ret.data - (char *) i.data);
4378     ret.rem = 0;
4379     return ret;
4380 }
4381 
4382 int
4383 xcb_input_feedback_ctl_sizeof (const void  *_buffer  /**< */)
4384 {
4385     char *xcb_tmp = (char *)_buffer;
4386     const xcb_input_feedback_ctl_t *_aux = (xcb_input_feedback_ctl_t *)_buffer;
4387     unsigned int xcb_buffer_len = 0;
4388     unsigned int xcb_block_len = 0;
4389     unsigned int xcb_pad = 0;
4390     unsigned int xcb_align_to = 0;
4391 
4392 
4393     xcb_block_len += sizeof(xcb_input_feedback_ctl_t);
4394     xcb_tmp += xcb_block_len;
4395     xcb_buffer_len += xcb_block_len;
4396     xcb_block_len = 0;
4397     /* uninterpreted_data */
4398     xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
4399     xcb_tmp += xcb_block_len;
4400     xcb_align_to = ALIGNOF(uint8_t);
4401     /* insert padding */
4402     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4403     xcb_buffer_len += xcb_block_len + xcb_pad;
4404     if (0 != xcb_pad) {
4405         xcb_tmp += xcb_pad;
4406         xcb_pad = 0;
4407     }
4408     xcb_block_len = 0;
4409 
4410     return xcb_buffer_len;
4411 }
4412 
4413 
4414 /*****************************************************************************
4415  **
4416  ** uint8_t * xcb_input_feedback_ctl_uninterpreted_data
4417  **
4418  ** @param const xcb_input_feedback_ctl_t *R
4419  ** @returns uint8_t *
4420  **
4421  *****************************************************************************/
4422 
4423 uint8_t *
4424 xcb_input_feedback_ctl_uninterpreted_data (const xcb_input_feedback_ctl_t *R  /**< */)
4425 {
4426     return (uint8_t *) (R + 1);
4427 }
4428 
4429 
4430 /*****************************************************************************
4431  **
4432  ** int xcb_input_feedback_ctl_uninterpreted_data_length
4433  **
4434  ** @param const xcb_input_feedback_ctl_t *R
4435  ** @returns int
4436  **
4437  *****************************************************************************/
4438 
4439 int
4440 xcb_input_feedback_ctl_uninterpreted_data_length (const xcb_input_feedback_ctl_t *R  /**< */)
4441 {
4442     return (R->len - 4);
4443 }
4444 
4445 
4446 /*****************************************************************************
4447  **
4448  ** xcb_generic_iterator_t xcb_input_feedback_ctl_uninterpreted_data_end
4449  **
4450  ** @param const xcb_input_feedback_ctl_t *R
4451  ** @returns xcb_generic_iterator_t
4452  **
4453  *****************************************************************************/
4454 
4455 xcb_generic_iterator_t
4456 xcb_input_feedback_ctl_uninterpreted_data_end (const xcb_input_feedback_ctl_t *R  /**< */)
4457 {
4458     xcb_generic_iterator_t i;
4459     i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
4460     i.rem = 0;
4461     i.index = (char *) i.data - (char *) R;
4462     return i;
4463 }
4464 
4465 
4466 /*****************************************************************************
4467  **
4468  ** void xcb_input_feedback_ctl_next
4469  **
4470  ** @param xcb_input_feedback_ctl_iterator_t *i
4471  ** @returns void
4472  **
4473  *****************************************************************************/
4474 
4475 void
4476 xcb_input_feedback_ctl_next (xcb_input_feedback_ctl_iterator_t *i  /**< */)
4477 {
4478     xcb_input_feedback_ctl_t *R = i->data;
4479     xcb_generic_iterator_t child;
4480     child.data = (xcb_input_feedback_ctl_t *)(((char *)R) + xcb_input_feedback_ctl_sizeof(R));
4481     i->index = (char *) child.data - (char *) i->data;
4482     --i->rem;
4483     i->data = (xcb_input_feedback_ctl_t *) child.data;
4484 }
4485 
4486 
4487 /*****************************************************************************
4488  **
4489  ** xcb_generic_iterator_t xcb_input_feedback_ctl_end
4490  **
4491  ** @param xcb_input_feedback_ctl_iterator_t i
4492  ** @returns xcb_generic_iterator_t
4493  **
4494  *****************************************************************************/
4495 
4496 xcb_generic_iterator_t
4497 xcb_input_feedback_ctl_end (xcb_input_feedback_ctl_iterator_t i  /**< */)
4498 {
4499     xcb_generic_iterator_t ret;
4500     while(i.rem > 0)
4501         xcb_input_feedback_ctl_next(&i);
4502     ret.data = i.data;
4503     ret.rem = i.rem;
4504     ret.index = i.index;
4505     return ret;
4506 }
4507 
4508 int
4509 xcb_input_change_feedback_control_sizeof (const void  *_buffer  /**< */)
4510 {
4511     char *xcb_tmp = (char *)_buffer;
4512     unsigned int xcb_buffer_len = 0;
4513     unsigned int xcb_block_len = 0;
4514     unsigned int xcb_pad = 0;
4515     unsigned int xcb_align_to = 0;
4516 
4517 
4518     xcb_block_len += sizeof(xcb_input_change_feedback_control_request_t);
4519     xcb_tmp += xcb_block_len;
4520     xcb_buffer_len += xcb_block_len;
4521     xcb_block_len = 0;
4522     /* feedback */
4523     xcb_block_len += xcb_input_feedback_ctl_sizeof(xcb_tmp);
4524     xcb_tmp += xcb_block_len;
4525     xcb_align_to = ALIGNOF(xcb_input_feedback_ctl_t);
4526     /* insert padding */
4527     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4528     xcb_buffer_len += xcb_block_len + xcb_pad;
4529     if (0 != xcb_pad) {
4530         xcb_tmp += xcb_pad;
4531         xcb_pad = 0;
4532     }
4533     xcb_block_len = 0;
4534 
4535     return xcb_buffer_len;
4536 }
4537 
4538 
4539 /*****************************************************************************
4540  **
4541  ** xcb_void_cookie_t xcb_input_change_feedback_control_checked
4542  **
4543  ** @param xcb_connection_t         *c
4544  ** @param uint32_t                  mask
4545  ** @param uint8_t                   device_id
4546  ** @param uint8_t                   feedback_id
4547  ** @param xcb_input_feedback_ctl_t *feedback
4548  ** @returns xcb_void_cookie_t
4549  **
4550  *****************************************************************************/
4551 
4552 xcb_void_cookie_t
4553 xcb_input_change_feedback_control_checked (xcb_connection_t         *c  /**< */,
4554                                            uint32_t                  mask  /**< */,
4555                                            uint8_t                   device_id  /**< */,
4556                                            uint8_t                   feedback_id  /**< */,
4557                                            xcb_input_feedback_ctl_t *feedback  /**< */)
4558 {
4559     static const xcb_protocol_request_t xcb_req = {
4560         /* count */ 4,
4561         /* ext */ &xcb_input_id,
4562         /* opcode */ XCB_INPUT_CHANGE_FEEDBACK_CONTROL,
4563         /* isvoid */ 1
4564     };
4565 
4566     struct iovec xcb_parts[6];
4567     xcb_void_cookie_t xcb_ret;
4568     xcb_input_change_feedback_control_request_t xcb_out;
4569 
4570     xcb_out.mask = mask;
4571     xcb_out.device_id = device_id;
4572     xcb_out.feedback_id = feedback_id;
4573 
4574     xcb_parts[2].iov_base = (char *) &xcb_out;
4575     xcb_parts[2].iov_len = sizeof(xcb_out);
4576     xcb_parts[3].iov_base = 0;
4577     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4578     /* xcb_input_feedback_ctl_t feedback */
4579     xcb_parts[4].iov_base = (char *) feedback;
4580     xcb_parts[4].iov_len =
4581       xcb_input_feedback_ctl_sizeof (feedback);
4582 
4583     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4584     return xcb_ret;
4585 }
4586 
4587 
4588 /*****************************************************************************
4589  **
4590  ** xcb_void_cookie_t xcb_input_change_feedback_control
4591  **
4592  ** @param xcb_connection_t         *c
4593  ** @param uint32_t                  mask
4594  ** @param uint8_t                   device_id
4595  ** @param uint8_t                   feedback_id
4596  ** @param xcb_input_feedback_ctl_t *feedback
4597  ** @returns xcb_void_cookie_t
4598  **
4599  *****************************************************************************/
4600 
4601 xcb_void_cookie_t
4602 xcb_input_change_feedback_control (xcb_connection_t         *c  /**< */,
4603                                    uint32_t                  mask  /**< */,
4604                                    uint8_t                   device_id  /**< */,
4605                                    uint8_t                   feedback_id  /**< */,
4606                                    xcb_input_feedback_ctl_t *feedback  /**< */)
4607 {
4608     static const xcb_protocol_request_t xcb_req = {
4609         /* count */ 4,
4610         /* ext */ &xcb_input_id,
4611         /* opcode */ XCB_INPUT_CHANGE_FEEDBACK_CONTROL,
4612         /* isvoid */ 1
4613     };
4614 
4615     struct iovec xcb_parts[6];
4616     xcb_void_cookie_t xcb_ret;
4617     xcb_input_change_feedback_control_request_t xcb_out;
4618 
4619     xcb_out.mask = mask;
4620     xcb_out.device_id = device_id;
4621     xcb_out.feedback_id = feedback_id;
4622 
4623     xcb_parts[2].iov_base = (char *) &xcb_out;
4624     xcb_parts[2].iov_len = sizeof(xcb_out);
4625     xcb_parts[3].iov_base = 0;
4626     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4627     /* xcb_input_feedback_ctl_t feedback */
4628     xcb_parts[4].iov_base = (char *) feedback;
4629     xcb_parts[4].iov_len =
4630       xcb_input_feedback_ctl_sizeof (feedback);
4631 
4632     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4633     return xcb_ret;
4634 }
4635 
4636 int
4637 xcb_input_get_device_key_mapping_sizeof (const void  *_buffer  /**< */)
4638 {
4639     char *xcb_tmp = (char *)_buffer;
4640     const xcb_input_get_device_key_mapping_reply_t *_aux = (xcb_input_get_device_key_mapping_reply_t *)_buffer;
4641     unsigned int xcb_buffer_len = 0;
4642     unsigned int xcb_block_len = 0;
4643     unsigned int xcb_pad = 0;
4644     unsigned int xcb_align_to = 0;
4645 
4646 
4647     xcb_block_len += sizeof(xcb_input_get_device_key_mapping_reply_t);
4648     xcb_tmp += xcb_block_len;
4649     xcb_buffer_len += xcb_block_len;
4650     xcb_block_len = 0;
4651     /* keysyms */
4652     xcb_block_len += _aux->length * sizeof(xcb_keysym_t);
4653     xcb_tmp += xcb_block_len;
4654     xcb_align_to = ALIGNOF(xcb_keysym_t);
4655     /* insert padding */
4656     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4657     xcb_buffer_len += xcb_block_len + xcb_pad;
4658     if (0 != xcb_pad) {
4659         xcb_tmp += xcb_pad;
4660         xcb_pad = 0;
4661     }
4662     xcb_block_len = 0;
4663 
4664     return xcb_buffer_len;
4665 }
4666 
4667 
4668 /*****************************************************************************
4669  **
4670  ** xcb_input_get_device_key_mapping_cookie_t xcb_input_get_device_key_mapping
4671  **
4672  ** @param xcb_connection_t     *c
4673  ** @param uint8_t               device_id
4674  ** @param xcb_input_key_code_t  first_keycode
4675  ** @param uint8_t               count
4676  ** @returns xcb_input_get_device_key_mapping_cookie_t
4677  **
4678  *****************************************************************************/
4679 
4680 xcb_input_get_device_key_mapping_cookie_t
4681 xcb_input_get_device_key_mapping (xcb_connection_t     *c  /**< */,
4682                                   uint8_t               device_id  /**< */,
4683                                   xcb_input_key_code_t  first_keycode  /**< */,
4684                                   uint8_t               count  /**< */)
4685 {
4686     static const xcb_protocol_request_t xcb_req = {
4687         /* count */ 2,
4688         /* ext */ &xcb_input_id,
4689         /* opcode */ XCB_INPUT_GET_DEVICE_KEY_MAPPING,
4690         /* isvoid */ 0
4691     };
4692 
4693     struct iovec xcb_parts[4];
4694     xcb_input_get_device_key_mapping_cookie_t xcb_ret;
4695     xcb_input_get_device_key_mapping_request_t xcb_out;
4696 
4697     xcb_out.device_id = device_id;
4698     xcb_out.first_keycode = first_keycode;
4699     xcb_out.count = count;
4700 
4701     xcb_parts[2].iov_base = (char *) &xcb_out;
4702     xcb_parts[2].iov_len = sizeof(xcb_out);
4703     xcb_parts[3].iov_base = 0;
4704     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4705 
4706     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4707     return xcb_ret;
4708 }
4709 
4710 
4711 /*****************************************************************************
4712  **
4713  ** xcb_input_get_device_key_mapping_cookie_t xcb_input_get_device_key_mapping_unchecked
4714  **
4715  ** @param xcb_connection_t     *c
4716  ** @param uint8_t               device_id
4717  ** @param xcb_input_key_code_t  first_keycode
4718  ** @param uint8_t               count
4719  ** @returns xcb_input_get_device_key_mapping_cookie_t
4720  **
4721  *****************************************************************************/
4722 
4723 xcb_input_get_device_key_mapping_cookie_t
4724 xcb_input_get_device_key_mapping_unchecked (xcb_connection_t     *c  /**< */,
4725                                             uint8_t               device_id  /**< */,
4726                                             xcb_input_key_code_t  first_keycode  /**< */,
4727                                             uint8_t               count  /**< */)
4728 {
4729     static const xcb_protocol_request_t xcb_req = {
4730         /* count */ 2,
4731         /* ext */ &xcb_input_id,
4732         /* opcode */ XCB_INPUT_GET_DEVICE_KEY_MAPPING,
4733         /* isvoid */ 0
4734     };
4735 
4736     struct iovec xcb_parts[4];
4737     xcb_input_get_device_key_mapping_cookie_t xcb_ret;
4738     xcb_input_get_device_key_mapping_request_t xcb_out;
4739 
4740     xcb_out.device_id = device_id;
4741     xcb_out.first_keycode = first_keycode;
4742     xcb_out.count = count;
4743 
4744     xcb_parts[2].iov_base = (char *) &xcb_out;
4745     xcb_parts[2].iov_len = sizeof(xcb_out);
4746     xcb_parts[3].iov_base = 0;
4747     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4748 
4749     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4750     return xcb_ret;
4751 }
4752 
4753 
4754 /*****************************************************************************
4755  **
4756  ** xcb_keysym_t * xcb_input_get_device_key_mapping_keysyms
4757  **
4758  ** @param const xcb_input_get_device_key_mapping_reply_t *R
4759  ** @returns xcb_keysym_t *
4760  **
4761  *****************************************************************************/
4762 
4763 xcb_keysym_t *
4764 xcb_input_get_device_key_mapping_keysyms (const xcb_input_get_device_key_mapping_reply_t *R  /**< */)
4765 {
4766     return (xcb_keysym_t *) (R + 1);
4767 }
4768 
4769 
4770 /*****************************************************************************
4771  **
4772  ** int xcb_input_get_device_key_mapping_keysyms_length
4773  **
4774  ** @param const xcb_input_get_device_key_mapping_reply_t *R
4775  ** @returns int
4776  **
4777  *****************************************************************************/
4778 
4779 int
4780 xcb_input_get_device_key_mapping_keysyms_length (const xcb_input_get_device_key_mapping_reply_t *R  /**< */)
4781 {
4782     return R->length;
4783 }
4784 
4785 
4786 /*****************************************************************************
4787  **
4788  ** xcb_generic_iterator_t xcb_input_get_device_key_mapping_keysyms_end
4789  **
4790  ** @param const xcb_input_get_device_key_mapping_reply_t *R
4791  ** @returns xcb_generic_iterator_t
4792  **
4793  *****************************************************************************/
4794 
4795 xcb_generic_iterator_t
4796 xcb_input_get_device_key_mapping_keysyms_end (const xcb_input_get_device_key_mapping_reply_t *R  /**< */)
4797 {
4798     xcb_generic_iterator_t i;
4799     i.data = ((xcb_keysym_t *) (R + 1)) + (R->length);
4800     i.rem = 0;
4801     i.index = (char *) i.data - (char *) R;
4802     return i;
4803 }
4804 
4805 
4806 /*****************************************************************************
4807  **
4808  ** xcb_input_get_device_key_mapping_reply_t * xcb_input_get_device_key_mapping_reply
4809  **
4810  ** @param xcb_connection_t                           *c
4811  ** @param xcb_input_get_device_key_mapping_cookie_t   cookie
4812  ** @param xcb_generic_error_t                       **e
4813  ** @returns xcb_input_get_device_key_mapping_reply_t *
4814  **
4815  *****************************************************************************/
4816 
4817 xcb_input_get_device_key_mapping_reply_t *
4818 xcb_input_get_device_key_mapping_reply (xcb_connection_t                           *c  /**< */,
4819                                         xcb_input_get_device_key_mapping_cookie_t   cookie  /**< */,
4820                                         xcb_generic_error_t                       **e  /**< */)
4821 {
4822     return (xcb_input_get_device_key_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4823 }
4824 
4825 int
4826 xcb_input_change_device_key_mapping_sizeof (const void  *_buffer  /**< */)
4827 {
4828     char *xcb_tmp = (char *)_buffer;
4829     const xcb_input_change_device_key_mapping_request_t *_aux = (xcb_input_change_device_key_mapping_request_t *)_buffer;
4830     unsigned int xcb_buffer_len = 0;
4831     unsigned int xcb_block_len = 0;
4832     unsigned int xcb_pad = 0;
4833     unsigned int xcb_align_to = 0;
4834 
4835 
4836     xcb_block_len += sizeof(xcb_input_change_device_key_mapping_request_t);
4837     xcb_tmp += xcb_block_len;
4838     xcb_buffer_len += xcb_block_len;
4839     xcb_block_len = 0;
4840     /* keysyms */
4841     xcb_block_len += (_aux->keycode_count * _aux->keysyms_per_keycode) * sizeof(xcb_keysym_t);
4842     xcb_tmp += xcb_block_len;
4843     xcb_align_to = ALIGNOF(xcb_keysym_t);
4844     /* insert padding */
4845     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4846     xcb_buffer_len += xcb_block_len + xcb_pad;
4847     if (0 != xcb_pad) {
4848         xcb_tmp += xcb_pad;
4849         xcb_pad = 0;
4850     }
4851     xcb_block_len = 0;
4852 
4853     return xcb_buffer_len;
4854 }
4855 
4856 
4857 /*****************************************************************************
4858  **
4859  ** xcb_void_cookie_t xcb_input_change_device_key_mapping_checked
4860  **
4861  ** @param xcb_connection_t     *c
4862  ** @param uint8_t               device_id
4863  ** @param xcb_input_key_code_t  first_keycode
4864  ** @param uint8_t               keysyms_per_keycode
4865  ** @param uint8_t               keycode_count
4866  ** @param const xcb_keysym_t   *keysyms
4867  ** @returns xcb_void_cookie_t
4868  **
4869  *****************************************************************************/
4870 
4871 xcb_void_cookie_t
4872 xcb_input_change_device_key_mapping_checked (xcb_connection_t     *c  /**< */,
4873                                              uint8_t               device_id  /**< */,
4874                                              xcb_input_key_code_t  first_keycode  /**< */,
4875                                              uint8_t               keysyms_per_keycode  /**< */,
4876                                              uint8_t               keycode_count  /**< */,
4877                                              const xcb_keysym_t   *keysyms  /**< */)
4878 {
4879     static const xcb_protocol_request_t xcb_req = {
4880         /* count */ 4,
4881         /* ext */ &xcb_input_id,
4882         /* opcode */ XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING,
4883         /* isvoid */ 1
4884     };
4885 
4886     struct iovec xcb_parts[6];
4887     xcb_void_cookie_t xcb_ret;
4888     xcb_input_change_device_key_mapping_request_t xcb_out;
4889 
4890     xcb_out.device_id = device_id;
4891     xcb_out.first_keycode = first_keycode;
4892     xcb_out.keysyms_per_keycode = keysyms_per_keycode;
4893     xcb_out.keycode_count = keycode_count;
4894 
4895     xcb_parts[2].iov_base = (char *) &xcb_out;
4896     xcb_parts[2].iov_len = sizeof(xcb_out);
4897     xcb_parts[3].iov_base = 0;
4898     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4899     /* xcb_keysym_t keysyms */
4900     xcb_parts[4].iov_base = (char *) keysyms;
4901     xcb_parts[4].iov_len = (keycode_count * keysyms_per_keycode) * sizeof(xcb_keysym_t);
4902     xcb_parts[5].iov_base = 0;
4903     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4904 
4905     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4906     return xcb_ret;
4907 }
4908 
4909 
4910 /*****************************************************************************
4911  **
4912  ** xcb_void_cookie_t xcb_input_change_device_key_mapping
4913  **
4914  ** @param xcb_connection_t     *c
4915  ** @param uint8_t               device_id
4916  ** @param xcb_input_key_code_t  first_keycode
4917  ** @param uint8_t               keysyms_per_keycode
4918  ** @param uint8_t               keycode_count
4919  ** @param const xcb_keysym_t   *keysyms
4920  ** @returns xcb_void_cookie_t
4921  **
4922  *****************************************************************************/
4923 
4924 xcb_void_cookie_t
4925 xcb_input_change_device_key_mapping (xcb_connection_t     *c  /**< */,
4926                                      uint8_t               device_id  /**< */,
4927                                      xcb_input_key_code_t  first_keycode  /**< */,
4928                                      uint8_t               keysyms_per_keycode  /**< */,
4929                                      uint8_t               keycode_count  /**< */,
4930                                      const xcb_keysym_t   *keysyms  /**< */)
4931 {
4932     static const xcb_protocol_request_t xcb_req = {
4933         /* count */ 4,
4934         /* ext */ &xcb_input_id,
4935         /* opcode */ XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING,
4936         /* isvoid */ 1
4937     };
4938 
4939     struct iovec xcb_parts[6];
4940     xcb_void_cookie_t xcb_ret;
4941     xcb_input_change_device_key_mapping_request_t xcb_out;
4942 
4943     xcb_out.device_id = device_id;
4944     xcb_out.first_keycode = first_keycode;
4945     xcb_out.keysyms_per_keycode = keysyms_per_keycode;
4946     xcb_out.keycode_count = keycode_count;
4947 
4948     xcb_parts[2].iov_base = (char *) &xcb_out;
4949     xcb_parts[2].iov_len = sizeof(xcb_out);
4950     xcb_parts[3].iov_base = 0;
4951     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4952     /* xcb_keysym_t keysyms */
4953     xcb_parts[4].iov_base = (char *) keysyms;
4954     xcb_parts[4].iov_len = (keycode_count * keysyms_per_keycode) * sizeof(xcb_keysym_t);
4955     xcb_parts[5].iov_base = 0;
4956     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4957 
4958     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4959     return xcb_ret;
4960 }
4961 
4962 int
4963 xcb_input_get_device_modifier_mapping_sizeof (const void  *_buffer  /**< */)
4964 {
4965     char *xcb_tmp = (char *)_buffer;
4966     const xcb_input_get_device_modifier_mapping_reply_t *_aux = (xcb_input_get_device_modifier_mapping_reply_t *)_buffer;
4967     unsigned int xcb_buffer_len = 0;
4968     unsigned int xcb_block_len = 0;
4969     unsigned int xcb_pad = 0;
4970     unsigned int xcb_align_to = 0;
4971 
4972 
4973     xcb_block_len += sizeof(xcb_input_get_device_modifier_mapping_reply_t);
4974     xcb_tmp += xcb_block_len;
4975     xcb_buffer_len += xcb_block_len;
4976     xcb_block_len = 0;
4977     /* keymaps */
4978     xcb_block_len += (_aux->keycodes_per_modifier * 8) * sizeof(uint8_t);
4979     xcb_tmp += xcb_block_len;
4980     xcb_align_to = ALIGNOF(uint8_t);
4981     /* insert padding */
4982     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4983     xcb_buffer_len += xcb_block_len + xcb_pad;
4984     if (0 != xcb_pad) {
4985         xcb_tmp += xcb_pad;
4986         xcb_pad = 0;
4987     }
4988     xcb_block_len = 0;
4989 
4990     return xcb_buffer_len;
4991 }
4992 
4993 
4994 /*****************************************************************************
4995  **
4996  ** xcb_input_get_device_modifier_mapping_cookie_t xcb_input_get_device_modifier_mapping
4997  **
4998  ** @param xcb_connection_t *c
4999  ** @param uint8_t           device_id
5000  ** @returns xcb_input_get_device_modifier_mapping_cookie_t
5001  **
5002  *****************************************************************************/
5003 
5004 xcb_input_get_device_modifier_mapping_cookie_t
5005 xcb_input_get_device_modifier_mapping (xcb_connection_t *c  /**< */,
5006                                        uint8_t           device_id  /**< */)
5007 {
5008     static const xcb_protocol_request_t xcb_req = {
5009         /* count */ 2,
5010         /* ext */ &xcb_input_id,
5011         /* opcode */ XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING,
5012         /* isvoid */ 0
5013     };
5014 
5015     struct iovec xcb_parts[4];
5016     xcb_input_get_device_modifier_mapping_cookie_t xcb_ret;
5017     xcb_input_get_device_modifier_mapping_request_t xcb_out;
5018 
5019     xcb_out.device_id = device_id;
5020     memset(xcb_out.pad0, 0, 3);
5021 
5022     xcb_parts[2].iov_base = (char *) &xcb_out;
5023     xcb_parts[2].iov_len = sizeof(xcb_out);
5024     xcb_parts[3].iov_base = 0;
5025     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5026 
5027     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5028     return xcb_ret;
5029 }
5030 
5031 
5032 /*****************************************************************************
5033  **
5034  ** xcb_input_get_device_modifier_mapping_cookie_t xcb_input_get_device_modifier_mapping_unchecked
5035  **
5036  ** @param xcb_connection_t *c
5037  ** @param uint8_t           device_id
5038  ** @returns xcb_input_get_device_modifier_mapping_cookie_t
5039  **
5040  *****************************************************************************/
5041 
5042 xcb_input_get_device_modifier_mapping_cookie_t
5043 xcb_input_get_device_modifier_mapping_unchecked (xcb_connection_t *c  /**< */,
5044                                                  uint8_t           device_id  /**< */)
5045 {
5046     static const xcb_protocol_request_t xcb_req = {
5047         /* count */ 2,
5048         /* ext */ &xcb_input_id,
5049         /* opcode */ XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING,
5050         /* isvoid */ 0
5051     };
5052 
5053     struct iovec xcb_parts[4];
5054     xcb_input_get_device_modifier_mapping_cookie_t xcb_ret;
5055     xcb_input_get_device_modifier_mapping_request_t xcb_out;
5056 
5057     xcb_out.device_id = device_id;
5058     memset(xcb_out.pad0, 0, 3);
5059 
5060     xcb_parts[2].iov_base = (char *) &xcb_out;
5061     xcb_parts[2].iov_len = sizeof(xcb_out);
5062     xcb_parts[3].iov_base = 0;
5063     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5064 
5065     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5066     return xcb_ret;
5067 }
5068 
5069 
5070 /*****************************************************************************
5071  **
5072  ** uint8_t * xcb_input_get_device_modifier_mapping_keymaps
5073  **
5074  ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
5075  ** @returns uint8_t *
5076  **
5077  *****************************************************************************/
5078 
5079 uint8_t *
5080 xcb_input_get_device_modifier_mapping_keymaps (const xcb_input_get_device_modifier_mapping_reply_t *R  /**< */)
5081 {
5082     return (uint8_t *) (R + 1);
5083 }
5084 
5085 
5086 /*****************************************************************************
5087  **
5088  ** int xcb_input_get_device_modifier_mapping_keymaps_length
5089  **
5090  ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
5091  ** @returns int
5092  **
5093  *****************************************************************************/
5094 
5095 int
5096 xcb_input_get_device_modifier_mapping_keymaps_length (const xcb_input_get_device_modifier_mapping_reply_t *R  /**< */)
5097 {
5098     return (R->keycodes_per_modifier * 8);
5099 }
5100 
5101 
5102 /*****************************************************************************
5103  **
5104  ** xcb_generic_iterator_t xcb_input_get_device_modifier_mapping_keymaps_end
5105  **
5106  ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
5107  ** @returns xcb_generic_iterator_t
5108  **
5109  *****************************************************************************/
5110 
5111 xcb_generic_iterator_t
5112 xcb_input_get_device_modifier_mapping_keymaps_end (const xcb_input_get_device_modifier_mapping_reply_t *R  /**< */)
5113 {
5114     xcb_generic_iterator_t i;
5115     i.data = ((uint8_t *) (R + 1)) + ((R->keycodes_per_modifier * 8));
5116     i.rem = 0;
5117     i.index = (char *) i.data - (char *) R;
5118     return i;
5119 }
5120 
5121 
5122 /*****************************************************************************
5123  **
5124  ** xcb_input_get_device_modifier_mapping_reply_t * xcb_input_get_device_modifier_mapping_reply
5125  **
5126  ** @param xcb_connection_t                                *c
5127  ** @param xcb_input_get_device_modifier_mapping_cookie_t   cookie
5128  ** @param xcb_generic_error_t                            **e
5129  ** @returns xcb_input_get_device_modifier_mapping_reply_t *
5130  **
5131  *****************************************************************************/
5132 
5133 xcb_input_get_device_modifier_mapping_reply_t *
5134 xcb_input_get_device_modifier_mapping_reply (xcb_connection_t                                *c  /**< */,
5135                                              xcb_input_get_device_modifier_mapping_cookie_t   cookie  /**< */,
5136                                              xcb_generic_error_t                            **e  /**< */)
5137 {
5138     return (xcb_input_get_device_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5139 }
5140 
5141 int
5142 xcb_input_set_device_modifier_mapping_sizeof (const void  *_buffer  /**< */)
5143 {
5144     char *xcb_tmp = (char *)_buffer;
5145     const xcb_input_set_device_modifier_mapping_request_t *_aux = (xcb_input_set_device_modifier_mapping_request_t *)_buffer;
5146     unsigned int xcb_buffer_len = 0;
5147     unsigned int xcb_block_len = 0;
5148     unsigned int xcb_pad = 0;
5149     unsigned int xcb_align_to = 0;
5150 
5151 
5152     xcb_block_len += sizeof(xcb_input_set_device_modifier_mapping_request_t);
5153     xcb_tmp += xcb_block_len;
5154     xcb_buffer_len += xcb_block_len;
5155     xcb_block_len = 0;
5156     /* keymaps */
5157     xcb_block_len += (_aux->keycodes_per_modifier * 8) * sizeof(uint8_t);
5158     xcb_tmp += xcb_block_len;
5159     xcb_align_to = ALIGNOF(uint8_t);
5160     /* insert padding */
5161     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5162     xcb_buffer_len += xcb_block_len + xcb_pad;
5163     if (0 != xcb_pad) {
5164         xcb_tmp += xcb_pad;
5165         xcb_pad = 0;
5166     }
5167     xcb_block_len = 0;
5168 
5169     return xcb_buffer_len;
5170 }
5171 
5172 
5173 /*****************************************************************************
5174  **
5175  ** xcb_input_set_device_modifier_mapping_cookie_t xcb_input_set_device_modifier_mapping
5176  **
5177  ** @param xcb_connection_t *c
5178  ** @param uint8_t           device_id
5179  ** @param uint8_t           keycodes_per_modifier
5180  ** @param const uint8_t    *keymaps
5181  ** @returns xcb_input_set_device_modifier_mapping_cookie_t
5182  **
5183  *****************************************************************************/
5184 
5185 xcb_input_set_device_modifier_mapping_cookie_t
5186 xcb_input_set_device_modifier_mapping (xcb_connection_t *c  /**< */,
5187                                        uint8_t           device_id  /**< */,
5188                                        uint8_t           keycodes_per_modifier  /**< */,
5189                                        const uint8_t    *keymaps  /**< */)
5190 {
5191     static const xcb_protocol_request_t xcb_req = {
5192         /* count */ 4,
5193         /* ext */ &xcb_input_id,
5194         /* opcode */ XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING,
5195         /* isvoid */ 0
5196     };
5197 
5198     struct iovec xcb_parts[6];
5199     xcb_input_set_device_modifier_mapping_cookie_t xcb_ret;
5200     xcb_input_set_device_modifier_mapping_request_t xcb_out;
5201 
5202     xcb_out.device_id = device_id;
5203     xcb_out.keycodes_per_modifier = keycodes_per_modifier;
5204     xcb_out.pad0 = 0;
5205 
5206     xcb_parts[2].iov_base = (char *) &xcb_out;
5207     xcb_parts[2].iov_len = sizeof(xcb_out);
5208     xcb_parts[3].iov_base = 0;
5209     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5210     /* uint8_t keymaps */
5211     xcb_parts[4].iov_base = (char *) keymaps;
5212     xcb_parts[4].iov_len = (keycodes_per_modifier * 8) * sizeof(uint8_t);
5213     xcb_parts[5].iov_base = 0;
5214     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5215 
5216     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5217     return xcb_ret;
5218 }
5219 
5220 
5221 /*****************************************************************************
5222  **
5223  ** xcb_input_set_device_modifier_mapping_cookie_t xcb_input_set_device_modifier_mapping_unchecked
5224  **
5225  ** @param xcb_connection_t *c
5226  ** @param uint8_t           device_id
5227  ** @param uint8_t           keycodes_per_modifier
5228  ** @param const uint8_t    *keymaps
5229  ** @returns xcb_input_set_device_modifier_mapping_cookie_t
5230  **
5231  *****************************************************************************/
5232 
5233 xcb_input_set_device_modifier_mapping_cookie_t
5234 xcb_input_set_device_modifier_mapping_unchecked (xcb_connection_t *c  /**< */,
5235                                                  uint8_t           device_id  /**< */,
5236                                                  uint8_t           keycodes_per_modifier  /**< */,
5237                                                  const uint8_t    *keymaps  /**< */)
5238 {
5239     static const xcb_protocol_request_t xcb_req = {
5240         /* count */ 4,
5241         /* ext */ &xcb_input_id,
5242         /* opcode */ XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING,
5243         /* isvoid */ 0
5244     };
5245 
5246     struct iovec xcb_parts[6];
5247     xcb_input_set_device_modifier_mapping_cookie_t xcb_ret;
5248     xcb_input_set_device_modifier_mapping_request_t xcb_out;
5249 
5250     xcb_out.device_id = device_id;
5251     xcb_out.keycodes_per_modifier = keycodes_per_modifier;
5252     xcb_out.pad0 = 0;
5253 
5254     xcb_parts[2].iov_base = (char *) &xcb_out;
5255     xcb_parts[2].iov_len = sizeof(xcb_out);
5256     xcb_parts[3].iov_base = 0;
5257     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5258     /* uint8_t keymaps */
5259     xcb_parts[4].iov_base = (char *) keymaps;
5260     xcb_parts[4].iov_len = (keycodes_per_modifier * 8) * sizeof(uint8_t);
5261     xcb_parts[5].iov_base = 0;
5262     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5263 
5264     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5265     return xcb_ret;
5266 }
5267 
5268 
5269 /*****************************************************************************
5270  **
5271  ** xcb_input_set_device_modifier_mapping_reply_t * xcb_input_set_device_modifier_mapping_reply
5272  **
5273  ** @param xcb_connection_t                                *c
5274  ** @param xcb_input_set_device_modifier_mapping_cookie_t   cookie
5275  ** @param xcb_generic_error_t                            **e
5276  ** @returns xcb_input_set_device_modifier_mapping_reply_t *
5277  **
5278  *****************************************************************************/
5279 
5280 xcb_input_set_device_modifier_mapping_reply_t *
5281 xcb_input_set_device_modifier_mapping_reply (xcb_connection_t                                *c  /**< */,
5282                                              xcb_input_set_device_modifier_mapping_cookie_t   cookie  /**< */,
5283                                              xcb_generic_error_t                            **e  /**< */)
5284 {
5285     return (xcb_input_set_device_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5286 }
5287 
5288 int
5289 xcb_input_get_device_button_mapping_sizeof (const void  *_buffer  /**< */)
5290 {
5291     char *xcb_tmp = (char *)_buffer;
5292     const xcb_input_get_device_button_mapping_reply_t *_aux = (xcb_input_get_device_button_mapping_reply_t *)_buffer;
5293     unsigned int xcb_buffer_len = 0;
5294     unsigned int xcb_block_len = 0;
5295     unsigned int xcb_pad = 0;
5296     unsigned int xcb_align_to = 0;
5297 
5298 
5299     xcb_block_len += sizeof(xcb_input_get_device_button_mapping_reply_t);
5300     xcb_tmp += xcb_block_len;
5301     xcb_buffer_len += xcb_block_len;
5302     xcb_block_len = 0;
5303     /* map */
5304     xcb_block_len += _aux->map_size * sizeof(uint8_t);
5305     xcb_tmp += xcb_block_len;
5306     xcb_align_to = ALIGNOF(uint8_t);
5307     /* insert padding */
5308     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5309     xcb_buffer_len += xcb_block_len + xcb_pad;
5310     if (0 != xcb_pad) {
5311         xcb_tmp += xcb_pad;
5312         xcb_pad = 0;
5313     }
5314     xcb_block_len = 0;
5315 
5316     return xcb_buffer_len;
5317 }
5318 
5319 
5320 /*****************************************************************************
5321  **
5322  ** xcb_input_get_device_button_mapping_cookie_t xcb_input_get_device_button_mapping
5323  **
5324  ** @param xcb_connection_t *c
5325  ** @param uint8_t           device_id
5326  ** @returns xcb_input_get_device_button_mapping_cookie_t
5327  **
5328  *****************************************************************************/
5329 
5330 xcb_input_get_device_button_mapping_cookie_t
5331 xcb_input_get_device_button_mapping (xcb_connection_t *c  /**< */,
5332                                      uint8_t           device_id  /**< */)
5333 {
5334     static const xcb_protocol_request_t xcb_req = {
5335         /* count */ 2,
5336         /* ext */ &xcb_input_id,
5337         /* opcode */ XCB_INPUT_GET_DEVICE_BUTTON_MAPPING,
5338         /* isvoid */ 0
5339     };
5340 
5341     struct iovec xcb_parts[4];
5342     xcb_input_get_device_button_mapping_cookie_t xcb_ret;
5343     xcb_input_get_device_button_mapping_request_t xcb_out;
5344 
5345     xcb_out.device_id = device_id;
5346     memset(xcb_out.pad0, 0, 3);
5347 
5348     xcb_parts[2].iov_base = (char *) &xcb_out;
5349     xcb_parts[2].iov_len = sizeof(xcb_out);
5350     xcb_parts[3].iov_base = 0;
5351     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5352 
5353     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5354     return xcb_ret;
5355 }
5356 
5357 
5358 /*****************************************************************************
5359  **
5360  ** xcb_input_get_device_button_mapping_cookie_t xcb_input_get_device_button_mapping_unchecked
5361  **
5362  ** @param xcb_connection_t *c
5363  ** @param uint8_t           device_id
5364  ** @returns xcb_input_get_device_button_mapping_cookie_t
5365  **
5366  *****************************************************************************/
5367 
5368 xcb_input_get_device_button_mapping_cookie_t
5369 xcb_input_get_device_button_mapping_unchecked (xcb_connection_t *c  /**< */,
5370                                                uint8_t           device_id  /**< */)
5371 {
5372     static const xcb_protocol_request_t xcb_req = {
5373         /* count */ 2,
5374         /* ext */ &xcb_input_id,
5375         /* opcode */ XCB_INPUT_GET_DEVICE_BUTTON_MAPPING,
5376         /* isvoid */ 0
5377     };
5378 
5379     struct iovec xcb_parts[4];
5380     xcb_input_get_device_button_mapping_cookie_t xcb_ret;
5381     xcb_input_get_device_button_mapping_request_t xcb_out;
5382 
5383     xcb_out.device_id = device_id;
5384     memset(xcb_out.pad0, 0, 3);
5385 
5386     xcb_parts[2].iov_base = (char *) &xcb_out;
5387     xcb_parts[2].iov_len = sizeof(xcb_out);
5388     xcb_parts[3].iov_base = 0;
5389     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5390 
5391     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5392     return xcb_ret;
5393 }
5394 
5395 
5396 /*****************************************************************************
5397  **
5398  ** uint8_t * xcb_input_get_device_button_mapping_map
5399  **
5400  ** @param const xcb_input_get_device_button_mapping_reply_t *R
5401  ** @returns uint8_t *
5402  **
5403  *****************************************************************************/
5404 
5405 uint8_t *
5406 xcb_input_get_device_button_mapping_map (const xcb_input_get_device_button_mapping_reply_t *R  /**< */)
5407 {
5408     return (uint8_t *) (R + 1);
5409 }
5410 
5411 
5412 /*****************************************************************************
5413  **
5414  ** int xcb_input_get_device_button_mapping_map_length
5415  **
5416  ** @param const xcb_input_get_device_button_mapping_reply_t *R
5417  ** @returns int
5418  **
5419  *****************************************************************************/
5420 
5421 int
5422 xcb_input_get_device_button_mapping_map_length (const xcb_input_get_device_button_mapping_reply_t *R  /**< */)
5423 {
5424     return R->map_size;
5425 }
5426 
5427 
5428 /*****************************************************************************
5429  **
5430  ** xcb_generic_iterator_t xcb_input_get_device_button_mapping_map_end
5431  **
5432  ** @param const xcb_input_get_device_button_mapping_reply_t *R
5433  ** @returns xcb_generic_iterator_t
5434  **
5435  *****************************************************************************/
5436 
5437 xcb_generic_iterator_t
5438 xcb_input_get_device_button_mapping_map_end (const xcb_input_get_device_button_mapping_reply_t *R  /**< */)
5439 {
5440     xcb_generic_iterator_t i;
5441     i.data = ((uint8_t *) (R + 1)) + (R->map_size);
5442     i.rem = 0;
5443     i.index = (char *) i.data - (char *) R;
5444     return i;
5445 }
5446 
5447 
5448 /*****************************************************************************
5449  **
5450  ** xcb_input_get_device_button_mapping_reply_t * xcb_input_get_device_button_mapping_reply
5451  **
5452  ** @param xcb_connection_t                              *c
5453  ** @param xcb_input_get_device_button_mapping_cookie_t   cookie
5454  ** @param xcb_generic_error_t                          **e
5455  ** @returns xcb_input_get_device_button_mapping_reply_t *
5456  **
5457  *****************************************************************************/
5458 
5459 xcb_input_get_device_button_mapping_reply_t *
5460 xcb_input_get_device_button_mapping_reply (xcb_connection_t                              *c  /**< */,
5461                                            xcb_input_get_device_button_mapping_cookie_t   cookie  /**< */,
5462                                            xcb_generic_error_t                          **e  /**< */)
5463 {
5464     return (xcb_input_get_device_button_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5465 }
5466 
5467 int
5468 xcb_input_set_device_button_mapping_sizeof (const void  *_buffer  /**< */)
5469 {
5470     char *xcb_tmp = (char *)_buffer;
5471     const xcb_input_set_device_button_mapping_request_t *_aux = (xcb_input_set_device_button_mapping_request_t *)_buffer;
5472     unsigned int xcb_buffer_len = 0;
5473     unsigned int xcb_block_len = 0;
5474     unsigned int xcb_pad = 0;
5475     unsigned int xcb_align_to = 0;
5476 
5477 
5478     xcb_block_len += sizeof(xcb_input_set_device_button_mapping_request_t);
5479     xcb_tmp += xcb_block_len;
5480     xcb_buffer_len += xcb_block_len;
5481     xcb_block_len = 0;
5482     /* map */
5483     xcb_block_len += _aux->map_size * sizeof(uint8_t);
5484     xcb_tmp += xcb_block_len;
5485     xcb_align_to = ALIGNOF(uint8_t);
5486     /* insert padding */
5487     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5488     xcb_buffer_len += xcb_block_len + xcb_pad;
5489     if (0 != xcb_pad) {
5490         xcb_tmp += xcb_pad;
5491         xcb_pad = 0;
5492     }
5493     xcb_block_len = 0;
5494 
5495     return xcb_buffer_len;
5496 }
5497 
5498 
5499 /*****************************************************************************
5500  **
5501  ** xcb_input_set_device_button_mapping_cookie_t xcb_input_set_device_button_mapping
5502  **
5503  ** @param xcb_connection_t *c
5504  ** @param uint8_t           device_id
5505  ** @param uint8_t           map_size
5506  ** @param const uint8_t    *map
5507  ** @returns xcb_input_set_device_button_mapping_cookie_t
5508  **
5509  *****************************************************************************/
5510 
5511 xcb_input_set_device_button_mapping_cookie_t
5512 xcb_input_set_device_button_mapping (xcb_connection_t *c  /**< */,
5513                                      uint8_t           device_id  /**< */,
5514                                      uint8_t           map_size  /**< */,
5515                                      const uint8_t    *map  /**< */)
5516 {
5517     static const xcb_protocol_request_t xcb_req = {
5518         /* count */ 4,
5519         /* ext */ &xcb_input_id,
5520         /* opcode */ XCB_INPUT_SET_DEVICE_BUTTON_MAPPING,
5521         /* isvoid */ 0
5522     };
5523 
5524     struct iovec xcb_parts[6];
5525     xcb_input_set_device_button_mapping_cookie_t xcb_ret;
5526     xcb_input_set_device_button_mapping_request_t xcb_out;
5527 
5528     xcb_out.device_id = device_id;
5529     xcb_out.map_size = map_size;
5530     memset(xcb_out.pad0, 0, 2);
5531 
5532     xcb_parts[2].iov_base = (char *) &xcb_out;
5533     xcb_parts[2].iov_len = sizeof(xcb_out);
5534     xcb_parts[3].iov_base = 0;
5535     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5536     /* uint8_t map */
5537     xcb_parts[4].iov_base = (char *) map;
5538     xcb_parts[4].iov_len = map_size * sizeof(uint8_t);
5539     xcb_parts[5].iov_base = 0;
5540     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5541 
5542     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5543     return xcb_ret;
5544 }
5545 
5546 
5547 /*****************************************************************************
5548  **
5549  ** xcb_input_set_device_button_mapping_cookie_t xcb_input_set_device_button_mapping_unchecked
5550  **
5551  ** @param xcb_connection_t *c
5552  ** @param uint8_t           device_id
5553  ** @param uint8_t           map_size
5554  ** @param const uint8_t    *map
5555  ** @returns xcb_input_set_device_button_mapping_cookie_t
5556  **
5557  *****************************************************************************/
5558 
5559 xcb_input_set_device_button_mapping_cookie_t
5560 xcb_input_set_device_button_mapping_unchecked (xcb_connection_t *c  /**< */,
5561                                                uint8_t           device_id  /**< */,
5562                                                uint8_t           map_size  /**< */,
5563                                                const uint8_t    *map  /**< */)
5564 {
5565     static const xcb_protocol_request_t xcb_req = {
5566         /* count */ 4,
5567         /* ext */ &xcb_input_id,
5568         /* opcode */ XCB_INPUT_SET_DEVICE_BUTTON_MAPPING,
5569         /* isvoid */ 0
5570     };
5571 
5572     struct iovec xcb_parts[6];
5573     xcb_input_set_device_button_mapping_cookie_t xcb_ret;
5574     xcb_input_set_device_button_mapping_request_t xcb_out;
5575 
5576     xcb_out.device_id = device_id;
5577     xcb_out.map_size = map_size;
5578     memset(xcb_out.pad0, 0, 2);
5579 
5580     xcb_parts[2].iov_base = (char *) &xcb_out;
5581     xcb_parts[2].iov_len = sizeof(xcb_out);
5582     xcb_parts[3].iov_base = 0;
5583     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5584     /* uint8_t map */
5585     xcb_parts[4].iov_base = (char *) map;
5586     xcb_parts[4].iov_len = map_size * sizeof(uint8_t);
5587     xcb_parts[5].iov_base = 0;
5588     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5589 
5590     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5591     return xcb_ret;
5592 }
5593 
5594 
5595 /*****************************************************************************
5596  **
5597  ** xcb_input_set_device_button_mapping_reply_t * xcb_input_set_device_button_mapping_reply
5598  **
5599  ** @param xcb_connection_t                              *c
5600  ** @param xcb_input_set_device_button_mapping_cookie_t   cookie
5601  ** @param xcb_generic_error_t                          **e
5602  ** @returns xcb_input_set_device_button_mapping_reply_t *
5603  **
5604  *****************************************************************************/
5605 
5606 xcb_input_set_device_button_mapping_reply_t *
5607 xcb_input_set_device_button_mapping_reply (xcb_connection_t                              *c  /**< */,
5608                                            xcb_input_set_device_button_mapping_cookie_t   cookie  /**< */,
5609                                            xcb_generic_error_t                          **e  /**< */)
5610 {
5611     return (xcb_input_set_device_button_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5612 }
5613 
5614 
5615 /*****************************************************************************
5616  **
5617  ** void xcb_input_key_state_next
5618  **
5619  ** @param xcb_input_key_state_iterator_t *i
5620  ** @returns void
5621  **
5622  *****************************************************************************/
5623 
5624 void
5625 xcb_input_key_state_next (xcb_input_key_state_iterator_t *i  /**< */)
5626 {
5627     --i->rem;
5628     ++i->data;
5629     i->index += sizeof(xcb_input_key_state_t);
5630 }
5631 
5632 
5633 /*****************************************************************************
5634  **
5635  ** xcb_generic_iterator_t xcb_input_key_state_end
5636  **
5637  ** @param xcb_input_key_state_iterator_t i
5638  ** @returns xcb_generic_iterator_t
5639  **
5640  *****************************************************************************/
5641 
5642 xcb_generic_iterator_t
5643 xcb_input_key_state_end (xcb_input_key_state_iterator_t i  /**< */)
5644 {
5645     xcb_generic_iterator_t ret;
5646     ret.data = i.data + i.rem;
5647     ret.index = i.index + ((char *) ret.data - (char *) i.data);
5648     ret.rem = 0;
5649     return ret;
5650 }
5651 
5652 
5653 /*****************************************************************************
5654  **
5655  ** void xcb_input_button_state_next
5656  **
5657  ** @param xcb_input_button_state_iterator_t *i
5658  ** @returns void
5659  **
5660  *****************************************************************************/
5661 
5662 void
5663 xcb_input_button_state_next (xcb_input_button_state_iterator_t *i  /**< */)
5664 {
5665     --i->rem;
5666     ++i->data;
5667     i->index += sizeof(xcb_input_button_state_t);
5668 }
5669 
5670 
5671 /*****************************************************************************
5672  **
5673  ** xcb_generic_iterator_t xcb_input_button_state_end
5674  **
5675  ** @param xcb_input_button_state_iterator_t i
5676  ** @returns xcb_generic_iterator_t
5677  **
5678  *****************************************************************************/
5679 
5680 xcb_generic_iterator_t
5681 xcb_input_button_state_end (xcb_input_button_state_iterator_t i  /**< */)
5682 {
5683     xcb_generic_iterator_t ret;
5684     ret.data = i.data + i.rem;
5685     ret.index = i.index + ((char *) ret.data - (char *) i.data);
5686     ret.rem = 0;
5687     return ret;
5688 }
5689 
5690 int
5691 xcb_input_valuator_state_sizeof (const void  *_buffer  /**< */)
5692 {
5693     char *xcb_tmp = (char *)_buffer;
5694     const xcb_input_valuator_state_t *_aux = (xcb_input_valuator_state_t *)_buffer;
5695     unsigned int xcb_buffer_len = 0;
5696     unsigned int xcb_block_len = 0;
5697     unsigned int xcb_pad = 0;
5698     unsigned int xcb_align_to = 0;
5699 
5700 
5701     xcb_block_len += sizeof(xcb_input_valuator_state_t);
5702     xcb_tmp += xcb_block_len;
5703     xcb_buffer_len += xcb_block_len;
5704     xcb_block_len = 0;
5705     /* valuators */
5706     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
5707     xcb_tmp += xcb_block_len;
5708     xcb_align_to = ALIGNOF(uint32_t);
5709     /* insert padding */
5710     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5711     xcb_buffer_len += xcb_block_len + xcb_pad;
5712     if (0 != xcb_pad) {
5713         xcb_tmp += xcb_pad;
5714         xcb_pad = 0;
5715     }
5716     xcb_block_len = 0;
5717 
5718     return xcb_buffer_len;
5719 }
5720 
5721 
5722 /*****************************************************************************
5723  **
5724  ** uint32_t * xcb_input_valuator_state_valuators
5725  **
5726  ** @param const xcb_input_valuator_state_t *R
5727  ** @returns uint32_t *
5728  **
5729  *****************************************************************************/
5730 
5731 uint32_t *
5732 xcb_input_valuator_state_valuators (const xcb_input_valuator_state_t *R  /**< */)
5733 {
5734     return (uint32_t *) (R + 1);
5735 }
5736 
5737 
5738 /*****************************************************************************
5739  **
5740  ** int xcb_input_valuator_state_valuators_length
5741  **
5742  ** @param const xcb_input_valuator_state_t *R
5743  ** @returns int
5744  **
5745  *****************************************************************************/
5746 
5747 int
5748 xcb_input_valuator_state_valuators_length (const xcb_input_valuator_state_t *R  /**< */)
5749 {
5750     return R->num_valuators;
5751 }
5752 
5753 
5754 /*****************************************************************************
5755  **
5756  ** xcb_generic_iterator_t xcb_input_valuator_state_valuators_end
5757  **
5758  ** @param const xcb_input_valuator_state_t *R
5759  ** @returns xcb_generic_iterator_t
5760  **
5761  *****************************************************************************/
5762 
5763 xcb_generic_iterator_t
5764 xcb_input_valuator_state_valuators_end (const xcb_input_valuator_state_t *R  /**< */)
5765 {
5766     xcb_generic_iterator_t i;
5767     i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
5768     i.rem = 0;
5769     i.index = (char *) i.data - (char *) R;
5770     return i;
5771 }
5772 
5773 
5774 /*****************************************************************************
5775  **
5776  ** void xcb_input_valuator_state_next
5777  **
5778  ** @param xcb_input_valuator_state_iterator_t *i
5779  ** @returns void
5780  **
5781  *****************************************************************************/
5782 
5783 void
5784 xcb_input_valuator_state_next (xcb_input_valuator_state_iterator_t *i  /**< */)
5785 {
5786     xcb_input_valuator_state_t *R = i->data;
5787     xcb_generic_iterator_t child;
5788     child.data = (xcb_input_valuator_state_t *)(((char *)R) + xcb_input_valuator_state_sizeof(R));
5789     i->index = (char *) child.data - (char *) i->data;
5790     --i->rem;
5791     i->data = (xcb_input_valuator_state_t *) child.data;
5792 }
5793 
5794 
5795 /*****************************************************************************
5796  **
5797  ** xcb_generic_iterator_t xcb_input_valuator_state_end
5798  **
5799  ** @param xcb_input_valuator_state_iterator_t i
5800  ** @returns xcb_generic_iterator_t
5801  **
5802  *****************************************************************************/
5803 
5804 xcb_generic_iterator_t
5805 xcb_input_valuator_state_end (xcb_input_valuator_state_iterator_t i  /**< */)
5806 {
5807     xcb_generic_iterator_t ret;
5808     while(i.rem > 0)
5809         xcb_input_valuator_state_next(&i);
5810     ret.data = i.data;
5811     ret.rem = i.rem;
5812     ret.index = i.index;
5813     return ret;
5814 }
5815 
5816 int
5817 xcb_input_input_state_sizeof (const void  *_buffer  /**< */)
5818 {
5819     char *xcb_tmp = (char *)_buffer;
5820     const xcb_input_input_state_t *_aux = (xcb_input_input_state_t *)_buffer;
5821     unsigned int xcb_buffer_len = 0;
5822     unsigned int xcb_block_len = 0;
5823     unsigned int xcb_pad = 0;
5824     unsigned int xcb_align_to = 0;
5825 
5826 
5827     xcb_block_len += sizeof(xcb_input_input_state_t);
5828     xcb_tmp += xcb_block_len;
5829     xcb_buffer_len += xcb_block_len;
5830     xcb_block_len = 0;
5831     /* uninterpreted_data */
5832     xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
5833     xcb_tmp += xcb_block_len;
5834     xcb_align_to = ALIGNOF(uint8_t);
5835     /* insert padding */
5836     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5837     xcb_buffer_len += xcb_block_len + xcb_pad;
5838     if (0 != xcb_pad) {
5839         xcb_tmp += xcb_pad;
5840         xcb_pad = 0;
5841     }
5842     xcb_block_len = 0;
5843 
5844     return xcb_buffer_len;
5845 }
5846 
5847 
5848 /*****************************************************************************
5849  **
5850  ** uint8_t * xcb_input_input_state_uninterpreted_data
5851  **
5852  ** @param const xcb_input_input_state_t *R
5853  ** @returns uint8_t *
5854  **
5855  *****************************************************************************/
5856 
5857 uint8_t *
5858 xcb_input_input_state_uninterpreted_data (const xcb_input_input_state_t *R  /**< */)
5859 {
5860     return (uint8_t *) (R + 1);
5861 }
5862 
5863 
5864 /*****************************************************************************
5865  **
5866  ** int xcb_input_input_state_uninterpreted_data_length
5867  **
5868  ** @param const xcb_input_input_state_t *R
5869  ** @returns int
5870  **
5871  *****************************************************************************/
5872 
5873 int
5874 xcb_input_input_state_uninterpreted_data_length (const xcb_input_input_state_t *R  /**< */)
5875 {
5876     return (R->len - 4);
5877 }
5878 
5879 
5880 /*****************************************************************************
5881  **
5882  ** xcb_generic_iterator_t xcb_input_input_state_uninterpreted_data_end
5883  **
5884  ** @param const xcb_input_input_state_t *R
5885  ** @returns xcb_generic_iterator_t
5886  **
5887  *****************************************************************************/
5888 
5889 xcb_generic_iterator_t
5890 xcb_input_input_state_uninterpreted_data_end (const xcb_input_input_state_t *R  /**< */)
5891 {
5892     xcb_generic_iterator_t i;
5893     i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
5894     i.rem = 0;
5895     i.index = (char *) i.data - (char *) R;
5896     return i;
5897 }
5898 
5899 
5900 /*****************************************************************************
5901  **
5902  ** void xcb_input_input_state_next
5903  **
5904  ** @param xcb_input_input_state_iterator_t *i
5905  ** @returns void
5906  **
5907  *****************************************************************************/
5908 
5909 void
5910 xcb_input_input_state_next (xcb_input_input_state_iterator_t *i  /**< */)
5911 {
5912     xcb_input_input_state_t *R = i->data;
5913     xcb_generic_iterator_t child;
5914     child.data = (xcb_input_input_state_t *)(((char *)R) + xcb_input_input_state_sizeof(R));
5915     i->index = (char *) child.data - (char *) i->data;
5916     --i->rem;
5917     i->data = (xcb_input_input_state_t *) child.data;
5918 }
5919 
5920 
5921 /*****************************************************************************
5922  **
5923  ** xcb_generic_iterator_t xcb_input_input_state_end
5924  **
5925  ** @param xcb_input_input_state_iterator_t i
5926  ** @returns xcb_generic_iterator_t
5927  **
5928  *****************************************************************************/
5929 
5930 xcb_generic_iterator_t
5931 xcb_input_input_state_end (xcb_input_input_state_iterator_t i  /**< */)
5932 {
5933     xcb_generic_iterator_t ret;
5934     while(i.rem > 0)
5935         xcb_input_input_state_next(&i);
5936     ret.data = i.data;
5937     ret.rem = i.rem;
5938     ret.index = i.index;
5939     return ret;
5940 }
5941 
5942 int
5943 xcb_input_query_device_state_sizeof (const void  *_buffer  /**< */)
5944 {
5945     char *xcb_tmp = (char *)_buffer;
5946     const xcb_input_query_device_state_reply_t *_aux = (xcb_input_query_device_state_reply_t *)_buffer;
5947     unsigned int xcb_buffer_len = 0;
5948     unsigned int xcb_block_len = 0;
5949     unsigned int xcb_pad = 0;
5950     unsigned int xcb_align_to = 0;
5951 
5952     unsigned int i;
5953     unsigned int xcb_tmp_len;
5954 
5955     xcb_block_len += sizeof(xcb_input_query_device_state_reply_t);
5956     xcb_tmp += xcb_block_len;
5957     xcb_buffer_len += xcb_block_len;
5958     xcb_block_len = 0;
5959     /* classes */
5960     for(i=0; i<_aux->num_classes; i++) {
5961         xcb_tmp_len = xcb_input_input_state_sizeof(xcb_tmp);
5962         xcb_block_len += xcb_tmp_len;
5963         xcb_tmp += xcb_tmp_len;
5964     }
5965     xcb_align_to = ALIGNOF(xcb_input_input_state_t);
5966     /* insert padding */
5967     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5968     xcb_buffer_len += xcb_block_len + xcb_pad;
5969     if (0 != xcb_pad) {
5970         xcb_tmp += xcb_pad;
5971         xcb_pad = 0;
5972     }
5973     xcb_block_len = 0;
5974 
5975     return xcb_buffer_len;
5976 }
5977 
5978 
5979 /*****************************************************************************
5980  **
5981  ** xcb_input_query_device_state_cookie_t xcb_input_query_device_state
5982  **
5983  ** @param xcb_connection_t *c
5984  ** @param uint8_t           device_id
5985  ** @returns xcb_input_query_device_state_cookie_t
5986  **
5987  *****************************************************************************/
5988 
5989 xcb_input_query_device_state_cookie_t
5990 xcb_input_query_device_state (xcb_connection_t *c  /**< */,
5991                               uint8_t           device_id  /**< */)
5992 {
5993     static const xcb_protocol_request_t xcb_req = {
5994         /* count */ 2,
5995         /* ext */ &xcb_input_id,
5996         /* opcode */ XCB_INPUT_QUERY_DEVICE_STATE,
5997         /* isvoid */ 0
5998     };
5999 
6000     struct iovec xcb_parts[4];
6001     xcb_input_query_device_state_cookie_t xcb_ret;
6002     xcb_input_query_device_state_request_t xcb_out;
6003 
6004     xcb_out.device_id = device_id;
6005     memset(xcb_out.pad0, 0, 3);
6006 
6007     xcb_parts[2].iov_base = (char *) &xcb_out;
6008     xcb_parts[2].iov_len = sizeof(xcb_out);
6009     xcb_parts[3].iov_base = 0;
6010     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6011 
6012     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6013     return xcb_ret;
6014 }
6015 
6016 
6017 /*****************************************************************************
6018  **
6019  ** xcb_input_query_device_state_cookie_t xcb_input_query_device_state_unchecked
6020  **
6021  ** @param xcb_connection_t *c
6022  ** @param uint8_t           device_id
6023  ** @returns xcb_input_query_device_state_cookie_t
6024  **
6025  *****************************************************************************/
6026 
6027 xcb_input_query_device_state_cookie_t
6028 xcb_input_query_device_state_unchecked (xcb_connection_t *c  /**< */,
6029                                         uint8_t           device_id  /**< */)
6030 {
6031     static const xcb_protocol_request_t xcb_req = {
6032         /* count */ 2,
6033         /* ext */ &xcb_input_id,
6034         /* opcode */ XCB_INPUT_QUERY_DEVICE_STATE,
6035         /* isvoid */ 0
6036     };
6037 
6038     struct iovec xcb_parts[4];
6039     xcb_input_query_device_state_cookie_t xcb_ret;
6040     xcb_input_query_device_state_request_t xcb_out;
6041 
6042     xcb_out.device_id = device_id;
6043     memset(xcb_out.pad0, 0, 3);
6044 
6045     xcb_parts[2].iov_base = (char *) &xcb_out;
6046     xcb_parts[2].iov_len = sizeof(xcb_out);
6047     xcb_parts[3].iov_base = 0;
6048     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6049 
6050     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6051     return xcb_ret;
6052 }
6053 
6054 
6055 /*****************************************************************************
6056  **
6057  ** int xcb_input_query_device_state_classes_length
6058  **
6059  ** @param const xcb_input_query_device_state_reply_t *R
6060  ** @returns int
6061  **
6062  *****************************************************************************/
6063 
6064 int
6065 xcb_input_query_device_state_classes_length (const xcb_input_query_device_state_reply_t *R  /**< */)
6066 {
6067     return R->num_classes;
6068 }
6069 
6070 
6071 /*****************************************************************************
6072  **
6073  ** xcb_input_input_state_iterator_t xcb_input_query_device_state_classes_iterator
6074  **
6075  ** @param const xcb_input_query_device_state_reply_t *R
6076  ** @returns xcb_input_input_state_iterator_t
6077  **
6078  *****************************************************************************/
6079 
6080 xcb_input_input_state_iterator_t
6081 xcb_input_query_device_state_classes_iterator (const xcb_input_query_device_state_reply_t *R  /**< */)
6082 {
6083     xcb_input_input_state_iterator_t i;
6084     i.data = (xcb_input_input_state_t *) (R + 1);
6085     i.rem = R->num_classes;
6086     i.index = (char *) i.data - (char *) R;
6087     return i;
6088 }
6089 
6090 
6091 /*****************************************************************************
6092  **
6093  ** xcb_input_query_device_state_reply_t * xcb_input_query_device_state_reply
6094  **
6095  ** @param xcb_connection_t                       *c
6096  ** @param xcb_input_query_device_state_cookie_t   cookie
6097  ** @param xcb_generic_error_t                   **e
6098  ** @returns xcb_input_query_device_state_reply_t *
6099  **
6100  *****************************************************************************/
6101 
6102 xcb_input_query_device_state_reply_t *
6103 xcb_input_query_device_state_reply (xcb_connection_t                       *c  /**< */,
6104                                     xcb_input_query_device_state_cookie_t   cookie  /**< */,
6105                                     xcb_generic_error_t                   **e  /**< */)
6106 {
6107     return (xcb_input_query_device_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
6108 }
6109 
6110 int
6111 xcb_input_send_extension_event_sizeof (const void  *_buffer  /**< */)
6112 {
6113     char *xcb_tmp = (char *)_buffer;
6114     const xcb_input_send_extension_event_request_t *_aux = (xcb_input_send_extension_event_request_t *)_buffer;
6115     unsigned int xcb_buffer_len = 0;
6116     unsigned int xcb_block_len = 0;
6117     unsigned int xcb_pad = 0;
6118     unsigned int xcb_align_to = 0;
6119 
6120 
6121     xcb_block_len += sizeof(xcb_input_send_extension_event_request_t);
6122     xcb_tmp += xcb_block_len;
6123     xcb_buffer_len += xcb_block_len;
6124     xcb_block_len = 0;
6125     /* events */
6126     xcb_block_len += (_aux->num_events * 32) * sizeof(uint8_t);
6127     xcb_tmp += xcb_block_len;
6128     xcb_align_to = ALIGNOF(uint8_t);
6129     /* insert padding */
6130     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6131     xcb_buffer_len += xcb_block_len + xcb_pad;
6132     if (0 != xcb_pad) {
6133         xcb_tmp += xcb_pad;
6134         xcb_pad = 0;
6135     }
6136     xcb_block_len = 0;
6137     /* classes */
6138     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
6139     xcb_tmp += xcb_block_len;
6140     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
6141     /* insert padding */
6142     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6143     xcb_buffer_len += xcb_block_len + xcb_pad;
6144     if (0 != xcb_pad) {
6145         xcb_tmp += xcb_pad;
6146         xcb_pad = 0;
6147     }
6148     xcb_block_len = 0;
6149 
6150     return xcb_buffer_len;
6151 }
6152 
6153 
6154 /*****************************************************************************
6155  **
6156  ** xcb_void_cookie_t xcb_input_send_extension_event_checked
6157  **
6158  ** @param xcb_connection_t              *c
6159  ** @param xcb_window_t                   destination
6160  ** @param uint8_t                        device_id
6161  ** @param uint8_t                        propagate
6162  ** @param uint16_t                       num_classes
6163  ** @param uint8_t                        num_events
6164  ** @param const uint8_t                 *events
6165  ** @param const xcb_input_event_class_t *classes
6166  ** @returns xcb_void_cookie_t
6167  **
6168  *****************************************************************************/
6169 
6170 xcb_void_cookie_t
6171 xcb_input_send_extension_event_checked (xcb_connection_t              *c  /**< */,
6172                                         xcb_window_t                   destination  /**< */,
6173                                         uint8_t                        device_id  /**< */,
6174                                         uint8_t                        propagate  /**< */,
6175                                         uint16_t                       num_classes  /**< */,
6176                                         uint8_t                        num_events  /**< */,
6177                                         const uint8_t                 *events  /**< */,
6178                                         const xcb_input_event_class_t *classes  /**< */)
6179 {
6180     static const xcb_protocol_request_t xcb_req = {
6181         /* count */ 6,
6182         /* ext */ &xcb_input_id,
6183         /* opcode */ XCB_INPUT_SEND_EXTENSION_EVENT,
6184         /* isvoid */ 1
6185     };
6186 
6187     struct iovec xcb_parts[8];
6188     xcb_void_cookie_t xcb_ret;
6189     xcb_input_send_extension_event_request_t xcb_out;
6190 
6191     xcb_out.destination = destination;
6192     xcb_out.device_id = device_id;
6193     xcb_out.propagate = propagate;
6194     xcb_out.num_classes = num_classes;
6195     xcb_out.num_events = num_events;
6196     memset(xcb_out.pad0, 0, 3);
6197 
6198     xcb_parts[2].iov_base = (char *) &xcb_out;
6199     xcb_parts[2].iov_len = sizeof(xcb_out);
6200     xcb_parts[3].iov_base = 0;
6201     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6202     /* uint8_t events */
6203     xcb_parts[4].iov_base = (char *) events;
6204     xcb_parts[4].iov_len = (num_events * 32) * sizeof(uint8_t);
6205     xcb_parts[5].iov_base = 0;
6206     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
6207     /* xcb_input_event_class_t classes */
6208     xcb_parts[6].iov_base = (char *) classes;
6209     xcb_parts[6].iov_len = num_classes * sizeof(xcb_input_event_class_t);
6210     xcb_parts[7].iov_base = 0;
6211     xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
6212 
6213     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6214     return xcb_ret;
6215 }
6216 
6217 
6218 /*****************************************************************************
6219  **
6220  ** xcb_void_cookie_t xcb_input_send_extension_event
6221  **
6222  ** @param xcb_connection_t              *c
6223  ** @param xcb_window_t                   destination
6224  ** @param uint8_t                        device_id
6225  ** @param uint8_t                        propagate
6226  ** @param uint16_t                       num_classes
6227  ** @param uint8_t                        num_events
6228  ** @param const uint8_t                 *events
6229  ** @param const xcb_input_event_class_t *classes
6230  ** @returns xcb_void_cookie_t
6231  **
6232  *****************************************************************************/
6233 
6234 xcb_void_cookie_t
6235 xcb_input_send_extension_event (xcb_connection_t              *c  /**< */,
6236                                 xcb_window_t                   destination  /**< */,
6237                                 uint8_t                        device_id  /**< */,
6238                                 uint8_t                        propagate  /**< */,
6239                                 uint16_t                       num_classes  /**< */,
6240                                 uint8_t                        num_events  /**< */,
6241                                 const uint8_t                 *events  /**< */,
6242                                 const xcb_input_event_class_t *classes  /**< */)
6243 {
6244     static const xcb_protocol_request_t xcb_req = {
6245         /* count */ 6,
6246         /* ext */ &xcb_input_id,
6247         /* opcode */ XCB_INPUT_SEND_EXTENSION_EVENT,
6248         /* isvoid */ 1
6249     };
6250 
6251     struct iovec xcb_parts[8];
6252     xcb_void_cookie_t xcb_ret;
6253     xcb_input_send_extension_event_request_t xcb_out;
6254 
6255     xcb_out.destination = destination;
6256     xcb_out.device_id = device_id;
6257     xcb_out.propagate = propagate;
6258     xcb_out.num_classes = num_classes;
6259     xcb_out.num_events = num_events;
6260     memset(xcb_out.pad0, 0, 3);
6261 
6262     xcb_parts[2].iov_base = (char *) &xcb_out;
6263     xcb_parts[2].iov_len = sizeof(xcb_out);
6264     xcb_parts[3].iov_base = 0;
6265     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6266     /* uint8_t events */
6267     xcb_parts[4].iov_base = (char *) events;
6268     xcb_parts[4].iov_len = (num_events * 32) * sizeof(uint8_t);
6269     xcb_parts[5].iov_base = 0;
6270     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
6271     /* xcb_input_event_class_t classes */
6272     xcb_parts[6].iov_base = (char *) classes;
6273     xcb_parts[6].iov_len = num_classes * sizeof(xcb_input_event_class_t);
6274     xcb_parts[7].iov_base = 0;
6275     xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
6276 
6277     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6278     return xcb_ret;
6279 }
6280 
6281 
6282 /*****************************************************************************
6283  **
6284  ** xcb_void_cookie_t xcb_input_device_bell_checked
6285  **
6286  ** @param xcb_connection_t *c
6287  ** @param uint8_t           device_id
6288  ** @param uint8_t           feedback_id
6289  ** @param uint8_t           feedback_class
6290  ** @param int8_t            percent
6291  ** @returns xcb_void_cookie_t
6292  **
6293  *****************************************************************************/
6294 
6295 xcb_void_cookie_t
6296 xcb_input_device_bell_checked (xcb_connection_t *c  /**< */,
6297                                uint8_t           device_id  /**< */,
6298                                uint8_t           feedback_id  /**< */,
6299                                uint8_t           feedback_class  /**< */,
6300                                int8_t            percent  /**< */)
6301 {
6302     static const xcb_protocol_request_t xcb_req = {
6303         /* count */ 2,
6304         /* ext */ &xcb_input_id,
6305         /* opcode */ XCB_INPUT_DEVICE_BELL,
6306         /* isvoid */ 1
6307     };
6308 
6309     struct iovec xcb_parts[4];
6310     xcb_void_cookie_t xcb_ret;
6311     xcb_input_device_bell_request_t xcb_out;
6312 
6313     xcb_out.device_id = device_id;
6314     xcb_out.feedback_id = feedback_id;
6315     xcb_out.feedback_class = feedback_class;
6316     xcb_out.percent = percent;
6317 
6318     xcb_parts[2].iov_base = (char *) &xcb_out;
6319     xcb_parts[2].iov_len = sizeof(xcb_out);
6320     xcb_parts[3].iov_base = 0;
6321     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6322 
6323     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6324     return xcb_ret;
6325 }
6326 
6327 
6328 /*****************************************************************************
6329  **
6330  ** xcb_void_cookie_t xcb_input_device_bell
6331  **
6332  ** @param xcb_connection_t *c
6333  ** @param uint8_t           device_id
6334  ** @param uint8_t           feedback_id
6335  ** @param uint8_t           feedback_class
6336  ** @param int8_t            percent
6337  ** @returns xcb_void_cookie_t
6338  **
6339  *****************************************************************************/
6340 
6341 xcb_void_cookie_t
6342 xcb_input_device_bell (xcb_connection_t *c  /**< */,
6343                        uint8_t           device_id  /**< */,
6344                        uint8_t           feedback_id  /**< */,
6345                        uint8_t           feedback_class  /**< */,
6346                        int8_t            percent  /**< */)
6347 {
6348     static const xcb_protocol_request_t xcb_req = {
6349         /* count */ 2,
6350         /* ext */ &xcb_input_id,
6351         /* opcode */ XCB_INPUT_DEVICE_BELL,
6352         /* isvoid */ 1
6353     };
6354 
6355     struct iovec xcb_parts[4];
6356     xcb_void_cookie_t xcb_ret;
6357     xcb_input_device_bell_request_t xcb_out;
6358 
6359     xcb_out.device_id = device_id;
6360     xcb_out.feedback_id = feedback_id;
6361     xcb_out.feedback_class = feedback_class;
6362     xcb_out.percent = percent;
6363 
6364     xcb_parts[2].iov_base = (char *) &xcb_out;
6365     xcb_parts[2].iov_len = sizeof(xcb_out);
6366     xcb_parts[3].iov_base = 0;
6367     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6368 
6369     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6370     return xcb_ret;
6371 }
6372 
6373 int
6374 xcb_input_set_device_valuators_sizeof (const void  *_buffer  /**< */)
6375 {
6376     char *xcb_tmp = (char *)_buffer;
6377     const xcb_input_set_device_valuators_request_t *_aux = (xcb_input_set_device_valuators_request_t *)_buffer;
6378     unsigned int xcb_buffer_len = 0;
6379     unsigned int xcb_block_len = 0;
6380     unsigned int xcb_pad = 0;
6381     unsigned int xcb_align_to = 0;
6382 
6383 
6384     xcb_block_len += sizeof(xcb_input_set_device_valuators_request_t);
6385     xcb_tmp += xcb_block_len;
6386     xcb_buffer_len += xcb_block_len;
6387     xcb_block_len = 0;
6388     /* valuators */
6389     xcb_block_len += _aux->num_valuators * sizeof(int32_t);
6390     xcb_tmp += xcb_block_len;
6391     xcb_align_to = ALIGNOF(int32_t);
6392     /* insert padding */
6393     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6394     xcb_buffer_len += xcb_block_len + xcb_pad;
6395     if (0 != xcb_pad) {
6396         xcb_tmp += xcb_pad;
6397         xcb_pad = 0;
6398     }
6399     xcb_block_len = 0;
6400 
6401     return xcb_buffer_len;
6402 }
6403 
6404 
6405 /*****************************************************************************
6406  **
6407  ** xcb_input_set_device_valuators_cookie_t xcb_input_set_device_valuators
6408  **
6409  ** @param xcb_connection_t *c
6410  ** @param uint8_t           device_id
6411  ** @param uint8_t           first_valuator
6412  ** @param uint8_t           num_valuators
6413  ** @param const int32_t    *valuators
6414  ** @returns xcb_input_set_device_valuators_cookie_t
6415  **
6416  *****************************************************************************/
6417 
6418 xcb_input_set_device_valuators_cookie_t
6419 xcb_input_set_device_valuators (xcb_connection_t *c  /**< */,
6420                                 uint8_t           device_id  /**< */,
6421                                 uint8_t           first_valuator  /**< */,
6422                                 uint8_t           num_valuators  /**< */,
6423                                 const int32_t    *valuators  /**< */)
6424 {
6425     static const xcb_protocol_request_t xcb_req = {
6426         /* count */ 4,
6427         /* ext */ &xcb_input_id,
6428         /* opcode */ XCB_INPUT_SET_DEVICE_VALUATORS,
6429         /* isvoid */ 0
6430     };
6431 
6432     struct iovec xcb_parts[6];
6433     xcb_input_set_device_valuators_cookie_t xcb_ret;
6434     xcb_input_set_device_valuators_request_t xcb_out;
6435 
6436     xcb_out.device_id = device_id;
6437     xcb_out.first_valuator = first_valuator;
6438     xcb_out.num_valuators = num_valuators;
6439     xcb_out.pad0 = 0;
6440 
6441     xcb_parts[2].iov_base = (char *) &xcb_out;
6442     xcb_parts[2].iov_len = sizeof(xcb_out);
6443     xcb_parts[3].iov_base = 0;
6444     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6445     /* int32_t valuators */
6446     xcb_parts[4].iov_base = (char *) valuators;
6447     xcb_parts[4].iov_len = num_valuators * sizeof(int32_t);
6448     xcb_parts[5].iov_base = 0;
6449     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
6450 
6451     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6452     return xcb_ret;
6453 }
6454 
6455 
6456 /*****************************************************************************
6457  **
6458  ** xcb_input_set_device_valuators_cookie_t xcb_input_set_device_valuators_unchecked
6459  **
6460  ** @param xcb_connection_t *c
6461  ** @param uint8_t           device_id
6462  ** @param uint8_t           first_valuator
6463  ** @param uint8_t           num_valuators
6464  ** @param const int32_t    *valuators
6465  ** @returns xcb_input_set_device_valuators_cookie_t
6466  **
6467  *****************************************************************************/
6468 
6469 xcb_input_set_device_valuators_cookie_t
6470 xcb_input_set_device_valuators_unchecked (xcb_connection_t *c  /**< */,
6471                                           uint8_t           device_id  /**< */,
6472                                           uint8_t           first_valuator  /**< */,
6473                                           uint8_t           num_valuators  /**< */,
6474                                           const int32_t    *valuators  /**< */)
6475 {
6476     static const xcb_protocol_request_t xcb_req = {
6477         /* count */ 4,
6478         /* ext */ &xcb_input_id,
6479         /* opcode */ XCB_INPUT_SET_DEVICE_VALUATORS,
6480         /* isvoid */ 0
6481     };
6482 
6483     struct iovec xcb_parts[6];
6484     xcb_input_set_device_valuators_cookie_t xcb_ret;
6485     xcb_input_set_device_valuators_request_t xcb_out;
6486 
6487     xcb_out.device_id = device_id;
6488     xcb_out.first_valuator = first_valuator;
6489     xcb_out.num_valuators = num_valuators;
6490     xcb_out.pad0 = 0;
6491 
6492     xcb_parts[2].iov_base = (char *) &xcb_out;
6493     xcb_parts[2].iov_len = sizeof(xcb_out);
6494     xcb_parts[3].iov_base = 0;
6495     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6496     /* int32_t valuators */
6497     xcb_parts[4].iov_base = (char *) valuators;
6498     xcb_parts[4].iov_len = num_valuators * sizeof(int32_t);
6499     xcb_parts[5].iov_base = 0;
6500     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
6501 
6502     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6503     return xcb_ret;
6504 }
6505 
6506 
6507 /*****************************************************************************
6508  **
6509  ** xcb_input_set_device_valuators_reply_t * xcb_input_set_device_valuators_reply
6510  **
6511  ** @param xcb_connection_t                         *c
6512  ** @param xcb_input_set_device_valuators_cookie_t   cookie
6513  ** @param xcb_generic_error_t                     **e
6514  ** @returns xcb_input_set_device_valuators_reply_t *
6515  **
6516  *****************************************************************************/
6517 
6518 xcb_input_set_device_valuators_reply_t *
6519 xcb_input_set_device_valuators_reply (xcb_connection_t                         *c  /**< */,
6520                                       xcb_input_set_device_valuators_cookie_t   cookie  /**< */,
6521                                       xcb_generic_error_t                     **e  /**< */)
6522 {
6523     return (xcb_input_set_device_valuators_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
6524 }
6525 
6526 int
6527 xcb_input_device_resolution_state_sizeof (const void  *_buffer  /**< */)
6528 {
6529     char *xcb_tmp = (char *)_buffer;
6530     const xcb_input_device_resolution_state_t *_aux = (xcb_input_device_resolution_state_t *)_buffer;
6531     unsigned int xcb_buffer_len = 0;
6532     unsigned int xcb_block_len = 0;
6533     unsigned int xcb_pad = 0;
6534     unsigned int xcb_align_to = 0;
6535 
6536 
6537     xcb_block_len += sizeof(xcb_input_device_resolution_state_t);
6538     xcb_tmp += xcb_block_len;
6539     xcb_buffer_len += xcb_block_len;
6540     xcb_block_len = 0;
6541     /* resolution_values */
6542     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
6543     xcb_tmp += xcb_block_len;
6544     xcb_align_to = ALIGNOF(uint32_t);
6545     /* insert padding */
6546     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6547     xcb_buffer_len += xcb_block_len + xcb_pad;
6548     if (0 != xcb_pad) {
6549         xcb_tmp += xcb_pad;
6550         xcb_pad = 0;
6551     }
6552     xcb_block_len = 0;
6553     /* resolution_min */
6554     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
6555     xcb_tmp += xcb_block_len;
6556     xcb_align_to = ALIGNOF(uint32_t);
6557     /* insert padding */
6558     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6559     xcb_buffer_len += xcb_block_len + xcb_pad;
6560     if (0 != xcb_pad) {
6561         xcb_tmp += xcb_pad;
6562         xcb_pad = 0;
6563     }
6564     xcb_block_len = 0;
6565     /* resolution_max */
6566     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
6567     xcb_tmp += xcb_block_len;
6568     xcb_align_to = ALIGNOF(uint32_t);
6569     /* insert padding */
6570     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6571     xcb_buffer_len += xcb_block_len + xcb_pad;
6572     if (0 != xcb_pad) {
6573         xcb_tmp += xcb_pad;
6574         xcb_pad = 0;
6575     }
6576     xcb_block_len = 0;
6577 
6578     return xcb_buffer_len;
6579 }
6580 
6581 
6582 /*****************************************************************************
6583  **
6584  ** uint32_t * xcb_input_device_resolution_state_resolution_values
6585  **
6586  ** @param const xcb_input_device_resolution_state_t *R
6587  ** @returns uint32_t *
6588  **
6589  *****************************************************************************/
6590 
6591 uint32_t *
6592 xcb_input_device_resolution_state_resolution_values (const xcb_input_device_resolution_state_t *R  /**< */)
6593 {
6594     return (uint32_t *) (R + 1);
6595 }
6596 
6597 
6598 /*****************************************************************************
6599  **
6600  ** int xcb_input_device_resolution_state_resolution_values_length
6601  **
6602  ** @param const xcb_input_device_resolution_state_t *R
6603  ** @returns int
6604  **
6605  *****************************************************************************/
6606 
6607 int
6608 xcb_input_device_resolution_state_resolution_values_length (const xcb_input_device_resolution_state_t *R  /**< */)
6609 {
6610     return R->num_valuators;
6611 }
6612 
6613 
6614 /*****************************************************************************
6615  **
6616  ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_values_end
6617  **
6618  ** @param const xcb_input_device_resolution_state_t *R
6619  ** @returns xcb_generic_iterator_t
6620  **
6621  *****************************************************************************/
6622 
6623 xcb_generic_iterator_t
6624 xcb_input_device_resolution_state_resolution_values_end (const xcb_input_device_resolution_state_t *R  /**< */)
6625 {
6626     xcb_generic_iterator_t i;
6627     i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
6628     i.rem = 0;
6629     i.index = (char *) i.data - (char *) R;
6630     return i;
6631 }
6632 
6633 
6634 /*****************************************************************************
6635  **
6636  ** uint32_t * xcb_input_device_resolution_state_resolution_min
6637  **
6638  ** @param const xcb_input_device_resolution_state_t *R
6639  ** @returns uint32_t *
6640  **
6641  *****************************************************************************/
6642 
6643 uint32_t *
6644 xcb_input_device_resolution_state_resolution_min (const xcb_input_device_resolution_state_t *R  /**< */)
6645 {
6646     xcb_generic_iterator_t prev = xcb_input_device_resolution_state_resolution_values_end(R);
6647     return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
6648 }
6649 
6650 
6651 /*****************************************************************************
6652  **
6653  ** int xcb_input_device_resolution_state_resolution_min_length
6654  **
6655  ** @param const xcb_input_device_resolution_state_t *R
6656  ** @returns int
6657  **
6658  *****************************************************************************/
6659 
6660 int
6661 xcb_input_device_resolution_state_resolution_min_length (const xcb_input_device_resolution_state_t *R  /**< */)
6662 {
6663     return R->num_valuators;
6664 }
6665 
6666 
6667 /*****************************************************************************
6668  **
6669  ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_min_end
6670  **
6671  ** @param const xcb_input_device_resolution_state_t *R
6672  ** @returns xcb_generic_iterator_t
6673  **
6674  *****************************************************************************/
6675 
6676 xcb_generic_iterator_t
6677 xcb_input_device_resolution_state_resolution_min_end (const xcb_input_device_resolution_state_t *R  /**< */)
6678 {
6679     xcb_generic_iterator_t i;
6680     xcb_generic_iterator_t child = xcb_input_device_resolution_state_resolution_values_end(R);
6681     i.data = ((uint32_t *) child.data) + (R->num_valuators);
6682     i.rem = 0;
6683     i.index = (char *) i.data - (char *) R;
6684     return i;
6685 }
6686 
6687 
6688 /*****************************************************************************
6689  **
6690  ** uint32_t * xcb_input_device_resolution_state_resolution_max
6691  **
6692  ** @param const xcb_input_device_resolution_state_t *R
6693  ** @returns uint32_t *
6694  **
6695  *****************************************************************************/
6696 
6697 uint32_t *
6698 xcb_input_device_resolution_state_resolution_max (const xcb_input_device_resolution_state_t *R  /**< */)
6699 {
6700     xcb_generic_iterator_t prev = xcb_input_device_resolution_state_resolution_min_end(R);
6701     return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
6702 }
6703 
6704 
6705 /*****************************************************************************
6706  **
6707  ** int xcb_input_device_resolution_state_resolution_max_length
6708  **
6709  ** @param const xcb_input_device_resolution_state_t *R
6710  ** @returns int
6711  **
6712  *****************************************************************************/
6713 
6714 int
6715 xcb_input_device_resolution_state_resolution_max_length (const xcb_input_device_resolution_state_t *R  /**< */)
6716 {
6717     return R->num_valuators;
6718 }
6719 
6720 
6721 /*****************************************************************************
6722  **
6723  ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_max_end
6724  **
6725  ** @param const xcb_input_device_resolution_state_t *R
6726  ** @returns xcb_generic_iterator_t
6727  **
6728  *****************************************************************************/
6729 
6730 xcb_generic_iterator_t
6731 xcb_input_device_resolution_state_resolution_max_end (const xcb_input_device_resolution_state_t *R  /**< */)
6732 {
6733     xcb_generic_iterator_t i;
6734     xcb_generic_iterator_t child = xcb_input_device_resolution_state_resolution_min_end(R);
6735     i.data = ((uint32_t *) child.data) + (R->num_valuators);
6736     i.rem = 0;
6737     i.index = (char *) i.data - (char *) R;
6738     return i;
6739 }
6740 
6741 
6742 /*****************************************************************************
6743  **
6744  ** void xcb_input_device_resolution_state_next
6745  **
6746  ** @param xcb_input_device_resolution_state_iterator_t *i
6747  ** @returns void
6748  **
6749  *****************************************************************************/
6750 
6751 void
6752 xcb_input_device_resolution_state_next (xcb_input_device_resolution_state_iterator_t *i  /**< */)
6753 {
6754     xcb_input_device_resolution_state_t *R = i->data;
6755     xcb_generic_iterator_t child;
6756     child.data = (xcb_input_device_resolution_state_t *)(((char *)R) + xcb_input_device_resolution_state_sizeof(R));
6757     i->index = (char *) child.data - (char *) i->data;
6758     --i->rem;
6759     i->data = (xcb_input_device_resolution_state_t *) child.data;
6760 }
6761 
6762 
6763 /*****************************************************************************
6764  **
6765  ** xcb_generic_iterator_t xcb_input_device_resolution_state_end
6766  **
6767  ** @param xcb_input_device_resolution_state_iterator_t i
6768  ** @returns xcb_generic_iterator_t
6769  **
6770  *****************************************************************************/
6771 
6772 xcb_generic_iterator_t
6773 xcb_input_device_resolution_state_end (xcb_input_device_resolution_state_iterator_t i  /**< */)
6774 {
6775     xcb_generic_iterator_t ret;
6776     while(i.rem > 0)
6777         xcb_input_device_resolution_state_next(&i);
6778     ret.data = i.data;
6779     ret.rem = i.rem;
6780     ret.index = i.index;
6781     return ret;
6782 }
6783 
6784 
6785 /*****************************************************************************
6786  **
6787  ** void xcb_input_device_abs_calib_state_next
6788  **
6789  ** @param xcb_input_device_abs_calib_state_iterator_t *i
6790  ** @returns void
6791  **
6792  *****************************************************************************/
6793 
6794 void
6795 xcb_input_device_abs_calib_state_next (xcb_input_device_abs_calib_state_iterator_t *i  /**< */)
6796 {
6797     --i->rem;
6798     ++i->data;
6799     i->index += sizeof(xcb_input_device_abs_calib_state_t);
6800 }
6801 
6802 
6803 /*****************************************************************************
6804  **
6805  ** xcb_generic_iterator_t xcb_input_device_abs_calib_state_end
6806  **
6807  ** @param xcb_input_device_abs_calib_state_iterator_t i
6808  ** @returns xcb_generic_iterator_t
6809  **
6810  *****************************************************************************/
6811 
6812 xcb_generic_iterator_t
6813 xcb_input_device_abs_calib_state_end (xcb_input_device_abs_calib_state_iterator_t i  /**< */)
6814 {
6815     xcb_generic_iterator_t ret;
6816     ret.data = i.data + i.rem;
6817     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6818     ret.rem = 0;
6819     return ret;
6820 }
6821 
6822 
6823 /*****************************************************************************
6824  **
6825  ** void xcb_input_device_abs_area_state_next
6826  **
6827  ** @param xcb_input_device_abs_area_state_iterator_t *i
6828  ** @returns void
6829  **
6830  *****************************************************************************/
6831 
6832 void
6833 xcb_input_device_abs_area_state_next (xcb_input_device_abs_area_state_iterator_t *i  /**< */)
6834 {
6835     --i->rem;
6836     ++i->data;
6837     i->index += sizeof(xcb_input_device_abs_area_state_t);
6838 }
6839 
6840 
6841 /*****************************************************************************
6842  **
6843  ** xcb_generic_iterator_t xcb_input_device_abs_area_state_end
6844  **
6845  ** @param xcb_input_device_abs_area_state_iterator_t i
6846  ** @returns xcb_generic_iterator_t
6847  **
6848  *****************************************************************************/
6849 
6850 xcb_generic_iterator_t
6851 xcb_input_device_abs_area_state_end (xcb_input_device_abs_area_state_iterator_t i  /**< */)
6852 {
6853     xcb_generic_iterator_t ret;
6854     ret.data = i.data + i.rem;
6855     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6856     ret.rem = 0;
6857     return ret;
6858 }
6859 
6860 
6861 /*****************************************************************************
6862  **
6863  ** void xcb_input_device_core_state_next
6864  **
6865  ** @param xcb_input_device_core_state_iterator_t *i
6866  ** @returns void
6867  **
6868  *****************************************************************************/
6869 
6870 void
6871 xcb_input_device_core_state_next (xcb_input_device_core_state_iterator_t *i  /**< */)
6872 {
6873     --i->rem;
6874     ++i->data;
6875     i->index += sizeof(xcb_input_device_core_state_t);
6876 }
6877 
6878 
6879 /*****************************************************************************
6880  **
6881  ** xcb_generic_iterator_t xcb_input_device_core_state_end
6882  **
6883  ** @param xcb_input_device_core_state_iterator_t i
6884  ** @returns xcb_generic_iterator_t
6885  **
6886  *****************************************************************************/
6887 
6888 xcb_generic_iterator_t
6889 xcb_input_device_core_state_end (xcb_input_device_core_state_iterator_t i  /**< */)
6890 {
6891     xcb_generic_iterator_t ret;
6892     ret.data = i.data + i.rem;
6893     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6894     ret.rem = 0;
6895     return ret;
6896 }
6897 
6898 
6899 /*****************************************************************************
6900  **
6901  ** void xcb_input_device_enable_state_next
6902  **
6903  ** @param xcb_input_device_enable_state_iterator_t *i
6904  ** @returns void
6905  **
6906  *****************************************************************************/
6907 
6908 void
6909 xcb_input_device_enable_state_next (xcb_input_device_enable_state_iterator_t *i  /**< */)
6910 {
6911     --i->rem;
6912     ++i->data;
6913     i->index += sizeof(xcb_input_device_enable_state_t);
6914 }
6915 
6916 
6917 /*****************************************************************************
6918  **
6919  ** xcb_generic_iterator_t xcb_input_device_enable_state_end
6920  **
6921  ** @param xcb_input_device_enable_state_iterator_t i
6922  ** @returns xcb_generic_iterator_t
6923  **
6924  *****************************************************************************/
6925 
6926 xcb_generic_iterator_t
6927 xcb_input_device_enable_state_end (xcb_input_device_enable_state_iterator_t i  /**< */)
6928 {
6929     xcb_generic_iterator_t ret;
6930     ret.data = i.data + i.rem;
6931     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6932     ret.rem = 0;
6933     return ret;
6934 }
6935 
6936 int
6937 xcb_input_device_state_sizeof (const void  *_buffer  /**< */)
6938 {
6939     char *xcb_tmp = (char *)_buffer;
6940     const xcb_input_device_state_t *_aux = (xcb_input_device_state_t *)_buffer;
6941     unsigned int xcb_buffer_len = 0;
6942     unsigned int xcb_block_len = 0;
6943     unsigned int xcb_pad = 0;
6944     unsigned int xcb_align_to = 0;
6945 
6946 
6947     xcb_block_len += sizeof(xcb_input_device_state_t);
6948     xcb_tmp += xcb_block_len;
6949     xcb_buffer_len += xcb_block_len;
6950     xcb_block_len = 0;
6951     /* uninterpreted_data */
6952     xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
6953     xcb_tmp += xcb_block_len;
6954     xcb_align_to = ALIGNOF(uint8_t);
6955     /* insert padding */
6956     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6957     xcb_buffer_len += xcb_block_len + xcb_pad;
6958     if (0 != xcb_pad) {
6959         xcb_tmp += xcb_pad;
6960         xcb_pad = 0;
6961     }
6962     xcb_block_len = 0;
6963 
6964     return xcb_buffer_len;
6965 }
6966 
6967 
6968 /*****************************************************************************
6969  **
6970  ** uint8_t * xcb_input_device_state_uninterpreted_data
6971  **
6972  ** @param const xcb_input_device_state_t *R
6973  ** @returns uint8_t *
6974  **
6975  *****************************************************************************/
6976 
6977 uint8_t *
6978 xcb_input_device_state_uninterpreted_data (const xcb_input_device_state_t *R  /**< */)
6979 {
6980     return (uint8_t *) (R + 1);
6981 }
6982 
6983 
6984 /*****************************************************************************
6985  **
6986  ** int xcb_input_device_state_uninterpreted_data_length
6987  **
6988  ** @param const xcb_input_device_state_t *R
6989  ** @returns int
6990  **
6991  *****************************************************************************/
6992 
6993 int
6994 xcb_input_device_state_uninterpreted_data_length (const xcb_input_device_state_t *R  /**< */)
6995 {
6996     return (R->len - 4);
6997 }
6998 
6999 
7000 /*****************************************************************************
7001  **
7002  ** xcb_generic_iterator_t xcb_input_device_state_uninterpreted_data_end
7003  **
7004  ** @param const xcb_input_device_state_t *R
7005  ** @returns xcb_generic_iterator_t
7006  **
7007  *****************************************************************************/
7008 
7009 xcb_generic_iterator_t
7010 xcb_input_device_state_uninterpreted_data_end (const xcb_input_device_state_t *R  /**< */)
7011 {
7012     xcb_generic_iterator_t i;
7013     i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
7014     i.rem = 0;
7015     i.index = (char *) i.data - (char *) R;
7016     return i;
7017 }
7018 
7019 
7020 /*****************************************************************************
7021  **
7022  ** void xcb_input_device_state_next
7023  **
7024  ** @param xcb_input_device_state_iterator_t *i
7025  ** @returns void
7026  **
7027  *****************************************************************************/
7028 
7029 void
7030 xcb_input_device_state_next (xcb_input_device_state_iterator_t *i  /**< */)
7031 {
7032     xcb_input_device_state_t *R = i->data;
7033     xcb_generic_iterator_t child;
7034     child.data = (xcb_input_device_state_t *)(((char *)R) + xcb_input_device_state_sizeof(R));
7035     i->index = (char *) child.data - (char *) i->data;
7036     --i->rem;
7037     i->data = (xcb_input_device_state_t *) child.data;
7038 }
7039 
7040 
7041 /*****************************************************************************
7042  **
7043  ** xcb_generic_iterator_t xcb_input_device_state_end
7044  **
7045  ** @param xcb_input_device_state_iterator_t i
7046  ** @returns xcb_generic_iterator_t
7047  **
7048  *****************************************************************************/
7049 
7050 xcb_generic_iterator_t
7051 xcb_input_device_state_end (xcb_input_device_state_iterator_t i  /**< */)
7052 {
7053     xcb_generic_iterator_t ret;
7054     while(i.rem > 0)
7055         xcb_input_device_state_next(&i);
7056     ret.data = i.data;
7057     ret.rem = i.rem;
7058     ret.index = i.index;
7059     return ret;
7060 }
7061 
7062 int
7063 xcb_input_get_device_control_sizeof (const void  *_buffer  /**< */)
7064 {
7065     char *xcb_tmp = (char *)_buffer;
7066     unsigned int xcb_buffer_len = 0;
7067     unsigned int xcb_block_len = 0;
7068     unsigned int xcb_pad = 0;
7069     unsigned int xcb_align_to = 0;
7070 
7071 
7072     xcb_block_len += sizeof(xcb_input_get_device_control_reply_t);
7073     xcb_tmp += xcb_block_len;
7074     xcb_buffer_len += xcb_block_len;
7075     xcb_block_len = 0;
7076     /* control */
7077     xcb_block_len += xcb_input_device_state_sizeof(xcb_tmp);
7078     xcb_tmp += xcb_block_len;
7079     xcb_align_to = ALIGNOF(xcb_input_device_state_t);
7080     /* insert padding */
7081     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7082     xcb_buffer_len += xcb_block_len + xcb_pad;
7083     if (0 != xcb_pad) {
7084         xcb_tmp += xcb_pad;
7085         xcb_pad = 0;
7086     }
7087     xcb_block_len = 0;
7088 
7089     return xcb_buffer_len;
7090 }
7091 
7092 
7093 /*****************************************************************************
7094  **
7095  ** xcb_input_get_device_control_cookie_t xcb_input_get_device_control
7096  **
7097  ** @param xcb_connection_t *c
7098  ** @param uint16_t          control_id
7099  ** @param uint8_t           device_id
7100  ** @returns xcb_input_get_device_control_cookie_t
7101  **
7102  *****************************************************************************/
7103 
7104 xcb_input_get_device_control_cookie_t
7105 xcb_input_get_device_control (xcb_connection_t *c  /**< */,
7106                               uint16_t          control_id  /**< */,
7107                               uint8_t           device_id  /**< */)
7108 {
7109     static const xcb_protocol_request_t xcb_req = {
7110         /* count */ 2,
7111         /* ext */ &xcb_input_id,
7112         /* opcode */ XCB_INPUT_GET_DEVICE_CONTROL,
7113         /* isvoid */ 0
7114     };
7115 
7116     struct iovec xcb_parts[4];
7117     xcb_input_get_device_control_cookie_t xcb_ret;
7118     xcb_input_get_device_control_request_t xcb_out;
7119 
7120     xcb_out.control_id = control_id;
7121     xcb_out.device_id = device_id;
7122     xcb_out.pad0 = 0;
7123 
7124     xcb_parts[2].iov_base = (char *) &xcb_out;
7125     xcb_parts[2].iov_len = sizeof(xcb_out);
7126     xcb_parts[3].iov_base = 0;
7127     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7128 
7129     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
7130     return xcb_ret;
7131 }
7132 
7133 
7134 /*****************************************************************************
7135  **
7136  ** xcb_input_get_device_control_cookie_t xcb_input_get_device_control_unchecked
7137  **
7138  ** @param xcb_connection_t *c
7139  ** @param uint16_t          control_id
7140  ** @param uint8_t           device_id
7141  ** @returns xcb_input_get_device_control_cookie_t
7142  **
7143  *****************************************************************************/
7144 
7145 xcb_input_get_device_control_cookie_t
7146 xcb_input_get_device_control_unchecked (xcb_connection_t *c  /**< */,
7147                                         uint16_t          control_id  /**< */,
7148                                         uint8_t           device_id  /**< */)
7149 {
7150     static const xcb_protocol_request_t xcb_req = {
7151         /* count */ 2,
7152         /* ext */ &xcb_input_id,
7153         /* opcode */ XCB_INPUT_GET_DEVICE_CONTROL,
7154         /* isvoid */ 0
7155     };
7156 
7157     struct iovec xcb_parts[4];
7158     xcb_input_get_device_control_cookie_t xcb_ret;
7159     xcb_input_get_device_control_request_t xcb_out;
7160 
7161     xcb_out.control_id = control_id;
7162     xcb_out.device_id = device_id;
7163     xcb_out.pad0 = 0;
7164 
7165     xcb_parts[2].iov_base = (char *) &xcb_out;
7166     xcb_parts[2].iov_len = sizeof(xcb_out);
7167     xcb_parts[3].iov_base = 0;
7168     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7169 
7170     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
7171     return xcb_ret;
7172 }
7173 
7174 
7175 /*****************************************************************************
7176  **
7177  ** xcb_input_device_state_t * xcb_input_get_device_control_control
7178  **
7179  ** @param const xcb_input_get_device_control_reply_t *R
7180  ** @returns xcb_input_device_state_t *
7181  **
7182  *****************************************************************************/
7183 
7184 xcb_input_device_state_t *
7185 xcb_input_get_device_control_control (const xcb_input_get_device_control_reply_t *R  /**< */)
7186 {
7187     return (xcb_input_device_state_t *) (R + 1);
7188 }
7189 
7190 
7191 /*****************************************************************************
7192  **
7193  ** xcb_input_get_device_control_reply_t * xcb_input_get_device_control_reply
7194  **
7195  ** @param xcb_connection_t                       *c
7196  ** @param xcb_input_get_device_control_cookie_t   cookie
7197  ** @param xcb_generic_error_t                   **e
7198  ** @returns xcb_input_get_device_control_reply_t *
7199  **
7200  *****************************************************************************/
7201 
7202 xcb_input_get_device_control_reply_t *
7203 xcb_input_get_device_control_reply (xcb_connection_t                       *c  /**< */,
7204                                     xcb_input_get_device_control_cookie_t   cookie  /**< */,
7205                                     xcb_generic_error_t                   **e  /**< */)
7206 {
7207     return (xcb_input_get_device_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
7208 }
7209 
7210 int
7211 xcb_input_device_resolution_ctl_sizeof (const void  *_buffer  /**< */)
7212 {
7213     char *xcb_tmp = (char *)_buffer;
7214     const xcb_input_device_resolution_ctl_t *_aux = (xcb_input_device_resolution_ctl_t *)_buffer;
7215     unsigned int xcb_buffer_len = 0;
7216     unsigned int xcb_block_len = 0;
7217     unsigned int xcb_pad = 0;
7218     unsigned int xcb_align_to = 0;
7219 
7220 
7221     xcb_block_len += sizeof(xcb_input_device_resolution_ctl_t);
7222     xcb_tmp += xcb_block_len;
7223     xcb_buffer_len += xcb_block_len;
7224     xcb_block_len = 0;
7225     /* resolution_values */
7226     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
7227     xcb_tmp += xcb_block_len;
7228     xcb_align_to = ALIGNOF(uint32_t);
7229     /* insert padding */
7230     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7231     xcb_buffer_len += xcb_block_len + xcb_pad;
7232     if (0 != xcb_pad) {
7233         xcb_tmp += xcb_pad;
7234         xcb_pad = 0;
7235     }
7236     xcb_block_len = 0;
7237 
7238     return xcb_buffer_len;
7239 }
7240 
7241 
7242 /*****************************************************************************
7243  **
7244  ** uint32_t * xcb_input_device_resolution_ctl_resolution_values
7245  **
7246  ** @param const xcb_input_device_resolution_ctl_t *R
7247  ** @returns uint32_t *
7248  **
7249  *****************************************************************************/
7250 
7251 uint32_t *
7252 xcb_input_device_resolution_ctl_resolution_values (const xcb_input_device_resolution_ctl_t *R  /**< */)
7253 {
7254     return (uint32_t *) (R + 1);
7255 }
7256 
7257 
7258 /*****************************************************************************
7259  **
7260  ** int xcb_input_device_resolution_ctl_resolution_values_length
7261  **
7262  ** @param const xcb_input_device_resolution_ctl_t *R
7263  ** @returns int
7264  **
7265  *****************************************************************************/
7266 
7267 int
7268 xcb_input_device_resolution_ctl_resolution_values_length (const xcb_input_device_resolution_ctl_t *R  /**< */)
7269 {
7270     return R->num_valuators;
7271 }
7272 
7273 
7274 /*****************************************************************************
7275  **
7276  ** xcb_generic_iterator_t xcb_input_device_resolution_ctl_resolution_values_end
7277  **
7278  ** @param const xcb_input_device_resolution_ctl_t *R
7279  ** @returns xcb_generic_iterator_t
7280  **
7281  *****************************************************************************/
7282 
7283 xcb_generic_iterator_t
7284 xcb_input_device_resolution_ctl_resolution_values_end (const xcb_input_device_resolution_ctl_t *R  /**< */)
7285 {
7286     xcb_generic_iterator_t i;
7287     i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
7288     i.rem = 0;
7289     i.index = (char *) i.data - (char *) R;
7290     return i;
7291 }
7292 
7293 
7294 /*****************************************************************************
7295  **
7296  ** void xcb_input_device_resolution_ctl_next
7297  **
7298  ** @param xcb_input_device_resolution_ctl_iterator_t *i
7299  ** @returns void
7300  **
7301  *****************************************************************************/
7302 
7303 void
7304 xcb_input_device_resolution_ctl_next (xcb_input_device_resolution_ctl_iterator_t *i  /**< */)
7305 {
7306     xcb_input_device_resolution_ctl_t *R = i->data;
7307     xcb_generic_iterator_t child;
7308     child.data = (xcb_input_device_resolution_ctl_t *)(((char *)R) + xcb_input_device_resolution_ctl_sizeof(R));
7309     i->index = (char *) child.data - (char *) i->data;
7310     --i->rem;
7311     i->data = (xcb_input_device_resolution_ctl_t *) child.data;
7312 }
7313 
7314 
7315 /*****************************************************************************
7316  **
7317  ** xcb_generic_iterator_t xcb_input_device_resolution_ctl_end
7318  **
7319  ** @param xcb_input_device_resolution_ctl_iterator_t i
7320  ** @returns xcb_generic_iterator_t
7321  **
7322  *****************************************************************************/
7323 
7324 xcb_generic_iterator_t
7325 xcb_input_device_resolution_ctl_end (xcb_input_device_resolution_ctl_iterator_t i  /**< */)
7326 {
7327     xcb_generic_iterator_t ret;
7328     while(i.rem > 0)
7329         xcb_input_device_resolution_ctl_next(&i);
7330     ret.data = i.data;
7331     ret.rem = i.rem;
7332     ret.index = i.index;
7333     return ret;
7334 }
7335 
7336 
7337 /*****************************************************************************
7338  **
7339  ** void xcb_input_device_abs_calib_ctl_next
7340  **
7341  ** @param xcb_input_device_abs_calib_ctl_iterator_t *i
7342  ** @returns void
7343  **
7344  *****************************************************************************/
7345 
7346 void
7347 xcb_input_device_abs_calib_ctl_next (xcb_input_device_abs_calib_ctl_iterator_t *i  /**< */)
7348 {
7349     --i->rem;
7350     ++i->data;
7351     i->index += sizeof(xcb_input_device_abs_calib_ctl_t);
7352 }
7353 
7354 
7355 /*****************************************************************************
7356  **
7357  ** xcb_generic_iterator_t xcb_input_device_abs_calib_ctl_end
7358  **
7359  ** @param xcb_input_device_abs_calib_ctl_iterator_t i
7360  ** @returns xcb_generic_iterator_t
7361  **
7362  *****************************************************************************/
7363 
7364 xcb_generic_iterator_t
7365 xcb_input_device_abs_calib_ctl_end (xcb_input_device_abs_calib_ctl_iterator_t i  /**< */)
7366 {
7367     xcb_generic_iterator_t ret;
7368     ret.data = i.data + i.rem;
7369     ret.index = i.index + ((char *) ret.data - (char *) i.data);
7370     ret.rem = 0;
7371     return ret;
7372 }
7373 
7374 
7375 /*****************************************************************************
7376  **
7377  ** void xcb_input_device_abs_area_ctrl_next
7378  **
7379  ** @param xcb_input_device_abs_area_ctrl_iterator_t *i
7380  ** @returns void
7381  **
7382  *****************************************************************************/
7383 
7384 void
7385 xcb_input_device_abs_area_ctrl_next (xcb_input_device_abs_area_ctrl_iterator_t *i  /**< */)
7386 {
7387     --i->rem;
7388     ++i->data;
7389     i->index += sizeof(xcb_input_device_abs_area_ctrl_t);
7390 }
7391 
7392 
7393 /*****************************************************************************
7394  **
7395  ** xcb_generic_iterator_t xcb_input_device_abs_area_ctrl_end
7396  **
7397  ** @param xcb_input_device_abs_area_ctrl_iterator_t i
7398  ** @returns xcb_generic_iterator_t
7399  **
7400  *****************************************************************************/
7401 
7402 xcb_generic_iterator_t
7403 xcb_input_device_abs_area_ctrl_end (xcb_input_device_abs_area_ctrl_iterator_t i  /**< */)
7404 {
7405     xcb_generic_iterator_t ret;
7406     ret.data = i.data + i.rem;
7407     ret.index = i.index + ((char *) ret.data - (char *) i.data);
7408     ret.rem = 0;
7409     return ret;
7410 }
7411 
7412 
7413 /*****************************************************************************
7414  **
7415  ** void xcb_input_device_core_ctrl_next
7416  **
7417  ** @param xcb_input_device_core_ctrl_iterator_t *i
7418  ** @returns void
7419  **
7420  *****************************************************************************/
7421 
7422 void
7423 xcb_input_device_core_ctrl_next (xcb_input_device_core_ctrl_iterator_t *i  /**< */)
7424 {
7425     --i->rem;
7426     ++i->data;
7427     i->index += sizeof(xcb_input_device_core_ctrl_t);
7428 }
7429 
7430 
7431 /*****************************************************************************
7432  **
7433  ** xcb_generic_iterator_t xcb_input_device_core_ctrl_end
7434  **
7435  ** @param xcb_input_device_core_ctrl_iterator_t i
7436  ** @returns xcb_generic_iterator_t
7437  **
7438  *****************************************************************************/
7439 
7440 xcb_generic_iterator_t
7441 xcb_input_device_core_ctrl_end (xcb_input_device_core_ctrl_iterator_t i  /**< */)
7442 {
7443     xcb_generic_iterator_t ret;
7444     ret.data = i.data + i.rem;
7445     ret.index = i.index + ((char *) ret.data - (char *) i.data);
7446     ret.rem = 0;
7447     return ret;
7448 }
7449 
7450 
7451 /*****************************************************************************
7452  **
7453  ** void xcb_input_device_enable_ctrl_next
7454  **
7455  ** @param xcb_input_device_enable_ctrl_iterator_t *i
7456  ** @returns void
7457  **
7458  *****************************************************************************/
7459 
7460 void
7461 xcb_input_device_enable_ctrl_next (xcb_input_device_enable_ctrl_iterator_t *i  /**< */)
7462 {
7463     --i->rem;
7464     ++i->data;
7465     i->index += sizeof(xcb_input_device_enable_ctrl_t);
7466 }
7467 
7468 
7469 /*****************************************************************************
7470  **
7471  ** xcb_generic_iterator_t xcb_input_device_enable_ctrl_end
7472  **
7473  ** @param xcb_input_device_enable_ctrl_iterator_t i
7474  ** @returns xcb_generic_iterator_t
7475  **
7476  *****************************************************************************/
7477 
7478 xcb_generic_iterator_t
7479 xcb_input_device_enable_ctrl_end (xcb_input_device_enable_ctrl_iterator_t i  /**< */)
7480 {
7481     xcb_generic_iterator_t ret;
7482     ret.data = i.data + i.rem;
7483     ret.index = i.index + ((char *) ret.data - (char *) i.data);
7484     ret.rem = 0;
7485     return ret;
7486 }
7487 
7488 int
7489 xcb_input_device_ctl_sizeof (const void  *_buffer  /**< */)
7490 {
7491     char *xcb_tmp = (char *)_buffer;
7492     const xcb_input_device_ctl_t *_aux = (xcb_input_device_ctl_t *)_buffer;
7493     unsigned int xcb_buffer_len = 0;
7494     unsigned int xcb_block_len = 0;
7495     unsigned int xcb_pad = 0;
7496     unsigned int xcb_align_to = 0;
7497 
7498 
7499     xcb_block_len += sizeof(xcb_input_device_ctl_t);
7500     xcb_tmp += xcb_block_len;
7501     xcb_buffer_len += xcb_block_len;
7502     xcb_block_len = 0;
7503     /* uninterpreted_data */
7504     xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
7505     xcb_tmp += xcb_block_len;
7506     xcb_align_to = ALIGNOF(uint8_t);
7507     /* insert padding */
7508     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7509     xcb_buffer_len += xcb_block_len + xcb_pad;
7510     if (0 != xcb_pad) {
7511         xcb_tmp += xcb_pad;
7512         xcb_pad = 0;
7513     }
7514     xcb_block_len = 0;
7515 
7516     return xcb_buffer_len;
7517 }
7518 
7519 
7520 /*****************************************************************************
7521  **
7522  ** uint8_t * xcb_input_device_ctl_uninterpreted_data
7523  **
7524  ** @param const xcb_input_device_ctl_t *R
7525  ** @returns uint8_t *
7526  **
7527  *****************************************************************************/
7528 
7529 uint8_t *
7530 xcb_input_device_ctl_uninterpreted_data (const xcb_input_device_ctl_t *R  /**< */)
7531 {
7532     return (uint8_t *) (R + 1);
7533 }
7534 
7535 
7536 /*****************************************************************************
7537  **
7538  ** int xcb_input_device_ctl_uninterpreted_data_length
7539  **
7540  ** @param const xcb_input_device_ctl_t *R
7541  ** @returns int
7542  **
7543  *****************************************************************************/
7544 
7545 int
7546 xcb_input_device_ctl_uninterpreted_data_length (const xcb_input_device_ctl_t *R  /**< */)
7547 {
7548     return (R->len - 4);
7549 }
7550 
7551 
7552 /*****************************************************************************
7553  **
7554  ** xcb_generic_iterator_t xcb_input_device_ctl_uninterpreted_data_end
7555  **
7556  ** @param const xcb_input_device_ctl_t *R
7557  ** @returns xcb_generic_iterator_t
7558  **
7559  *****************************************************************************/
7560 
7561 xcb_generic_iterator_t
7562 xcb_input_device_ctl_uninterpreted_data_end (const xcb_input_device_ctl_t *R  /**< */)
7563 {
7564     xcb_generic_iterator_t i;
7565     i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
7566     i.rem = 0;
7567     i.index = (char *) i.data - (char *) R;
7568     return i;
7569 }
7570 
7571 
7572 /*****************************************************************************
7573  **
7574  ** void xcb_input_device_ctl_next
7575  **
7576  ** @param xcb_input_device_ctl_iterator_t *i
7577  ** @returns void
7578  **
7579  *****************************************************************************/
7580 
7581 void
7582 xcb_input_device_ctl_next (xcb_input_device_ctl_iterator_t *i  /**< */)
7583 {
7584     xcb_input_device_ctl_t *R = i->data;
7585     xcb_generic_iterator_t child;
7586     child.data = (xcb_input_device_ctl_t *)(((char *)R) + xcb_input_device_ctl_sizeof(R));
7587     i->index = (char *) child.data - (char *) i->data;
7588     --i->rem;
7589     i->data = (xcb_input_device_ctl_t *) child.data;
7590 }
7591 
7592 
7593 /*****************************************************************************
7594  **
7595  ** xcb_generic_iterator_t xcb_input_device_ctl_end
7596  **
7597  ** @param xcb_input_device_ctl_iterator_t i
7598  ** @returns xcb_generic_iterator_t
7599  **
7600  *****************************************************************************/
7601 
7602 xcb_generic_iterator_t
7603 xcb_input_device_ctl_end (xcb_input_device_ctl_iterator_t i  /**< */)
7604 {
7605     xcb_generic_iterator_t ret;
7606     while(i.rem > 0)
7607         xcb_input_device_ctl_next(&i);
7608     ret.data = i.data;
7609     ret.rem = i.rem;
7610     ret.index = i.index;
7611     return ret;
7612 }
7613 
7614 int
7615 xcb_input_change_device_control_sizeof (const void  *_buffer  /**< */)
7616 {
7617     char *xcb_tmp = (char *)_buffer;
7618     unsigned int xcb_buffer_len = 0;
7619     unsigned int xcb_block_len = 0;
7620     unsigned int xcb_pad = 0;
7621     unsigned int xcb_align_to = 0;
7622 
7623 
7624     xcb_block_len += sizeof(xcb_input_change_device_control_request_t);
7625     xcb_tmp += xcb_block_len;
7626     xcb_buffer_len += xcb_block_len;
7627     xcb_block_len = 0;
7628     /* control */
7629     xcb_block_len += xcb_input_device_ctl_sizeof(xcb_tmp);
7630     xcb_tmp += xcb_block_len;
7631     xcb_align_to = ALIGNOF(xcb_input_device_ctl_t);
7632     /* insert padding */
7633     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7634     xcb_buffer_len += xcb_block_len + xcb_pad;
7635     if (0 != xcb_pad) {
7636         xcb_tmp += xcb_pad;
7637         xcb_pad = 0;
7638     }
7639     xcb_block_len = 0;
7640 
7641     return xcb_buffer_len;
7642 }
7643 
7644 
7645 /*****************************************************************************
7646  **
7647  ** xcb_input_change_device_control_cookie_t xcb_input_change_device_control
7648  **
7649  ** @param xcb_connection_t       *c
7650  ** @param uint16_t                control_id
7651  ** @param uint8_t                 device_id
7652  ** @param xcb_input_device_ctl_t *control
7653  ** @returns xcb_input_change_device_control_cookie_t
7654  **
7655  *****************************************************************************/
7656 
7657 xcb_input_change_device_control_cookie_t
7658 xcb_input_change_device_control (xcb_connection_t       *c  /**< */,
7659                                  uint16_t                control_id  /**< */,
7660                                  uint8_t                 device_id  /**< */,
7661                                  xcb_input_device_ctl_t *control  /**< */)
7662 {
7663     static const xcb_protocol_request_t xcb_req = {
7664         /* count */ 4,
7665         /* ext */ &xcb_input_id,
7666         /* opcode */ XCB_INPUT_CHANGE_DEVICE_CONTROL,
7667         /* isvoid */ 0
7668     };
7669 
7670     struct iovec xcb_parts[6];
7671     xcb_input_change_device_control_cookie_t xcb_ret;
7672     xcb_input_change_device_control_request_t xcb_out;
7673 
7674     xcb_out.control_id = control_id;
7675     xcb_out.device_id = device_id;
7676     xcb_out.pad0 = 0;
7677 
7678     xcb_parts[2].iov_base = (char *) &xcb_out;
7679     xcb_parts[2].iov_len = sizeof(xcb_out);
7680     xcb_parts[3].iov_base = 0;
7681     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7682     /* xcb_input_device_ctl_t control */
7683     xcb_parts[4].iov_base = (char *) control;
7684     xcb_parts[4].iov_len =
7685       xcb_input_device_ctl_sizeof (control);
7686 
7687     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
7688     return xcb_ret;
7689 }
7690 
7691 
7692 /*****************************************************************************
7693  **
7694  ** xcb_input_change_device_control_cookie_t xcb_input_change_device_control_unchecked
7695  **
7696  ** @param xcb_connection_t       *c
7697  ** @param uint16_t                control_id
7698  ** @param uint8_t                 device_id
7699  ** @param xcb_input_device_ctl_t *control
7700  ** @returns xcb_input_change_device_control_cookie_t
7701  **
7702  *****************************************************************************/
7703 
7704 xcb_input_change_device_control_cookie_t
7705 xcb_input_change_device_control_unchecked (xcb_connection_t       *c  /**< */,
7706                                            uint16_t                control_id  /**< */,
7707                                            uint8_t                 device_id  /**< */,
7708                                            xcb_input_device_ctl_t *control  /**< */)
7709 {
7710     static const xcb_protocol_request_t xcb_req = {
7711         /* count */ 4,
7712         /* ext */ &xcb_input_id,
7713         /* opcode */ XCB_INPUT_CHANGE_DEVICE_CONTROL,
7714         /* isvoid */ 0
7715     };
7716 
7717     struct iovec xcb_parts[6];
7718     xcb_input_change_device_control_cookie_t xcb_ret;
7719     xcb_input_change_device_control_request_t xcb_out;
7720 
7721     xcb_out.control_id = control_id;
7722     xcb_out.device_id = device_id;
7723     xcb_out.pad0 = 0;
7724 
7725     xcb_parts[2].iov_base = (char *) &xcb_out;
7726     xcb_parts[2].iov_len = sizeof(xcb_out);
7727     xcb_parts[3].iov_base = 0;
7728     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7729     /* xcb_input_device_ctl_t control */
7730     xcb_parts[4].iov_base = (char *) control;
7731     xcb_parts[4].iov_len =
7732       xcb_input_device_ctl_sizeof (control);
7733 
7734     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
7735     return xcb_ret;
7736 }
7737 
7738 
7739 /*****************************************************************************
7740  **
7741  ** xcb_input_change_device_control_reply_t * xcb_input_change_device_control_reply
7742  **
7743  ** @param xcb_connection_t                          *c
7744  ** @param xcb_input_change_device_control_cookie_t   cookie
7745  ** @param xcb_generic_error_t                      **e
7746  ** @returns xcb_input_change_device_control_reply_t *
7747  **
7748  *****************************************************************************/
7749 
7750 xcb_input_change_device_control_reply_t *
7751 xcb_input_change_device_control_reply (xcb_connection_t                          *c  /**< */,
7752                                        xcb_input_change_device_control_cookie_t   cookie  /**< */,
7753                                        xcb_generic_error_t                      **e  /**< */)
7754 {
7755     return (xcb_input_change_device_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
7756 }
7757 
7758 int
7759 xcb_input_list_device_properties_sizeof (const void  *_buffer  /**< */)
7760 {
7761     char *xcb_tmp = (char *)_buffer;
7762     const xcb_input_list_device_properties_reply_t *_aux = (xcb_input_list_device_properties_reply_t *)_buffer;
7763     unsigned int xcb_buffer_len = 0;
7764     unsigned int xcb_block_len = 0;
7765     unsigned int xcb_pad = 0;
7766     unsigned int xcb_align_to = 0;
7767 
7768 
7769     xcb_block_len += sizeof(xcb_input_list_device_properties_reply_t);
7770     xcb_tmp += xcb_block_len;
7771     xcb_buffer_len += xcb_block_len;
7772     xcb_block_len = 0;
7773     /* atoms */
7774     xcb_block_len += _aux->num_atoms * sizeof(xcb_atom_t);
7775     xcb_tmp += xcb_block_len;
7776     xcb_align_to = ALIGNOF(xcb_atom_t);
7777     /* insert padding */
7778     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7779     xcb_buffer_len += xcb_block_len + xcb_pad;
7780     if (0 != xcb_pad) {
7781         xcb_tmp += xcb_pad;
7782         xcb_pad = 0;
7783     }
7784     xcb_block_len = 0;
7785 
7786     return xcb_buffer_len;
7787 }
7788 
7789 
7790 /*****************************************************************************
7791  **
7792  ** xcb_input_list_device_properties_cookie_t xcb_input_list_device_properties
7793  **
7794  ** @param xcb_connection_t *c
7795  ** @param uint8_t           device_id
7796  ** @returns xcb_input_list_device_properties_cookie_t
7797  **
7798  *****************************************************************************/
7799 
7800 xcb_input_list_device_properties_cookie_t
7801 xcb_input_list_device_properties (xcb_connection_t *c  /**< */,
7802                                   uint8_t           device_id  /**< */)
7803 {
7804     static const xcb_protocol_request_t xcb_req = {
7805         /* count */ 2,
7806         /* ext */ &xcb_input_id,
7807         /* opcode */ XCB_INPUT_LIST_DEVICE_PROPERTIES,
7808         /* isvoid */ 0
7809     };
7810 
7811     struct iovec xcb_parts[4];
7812     xcb_input_list_device_properties_cookie_t xcb_ret;
7813     xcb_input_list_device_properties_request_t xcb_out;
7814 
7815     xcb_out.device_id = device_id;
7816     memset(xcb_out.pad0, 0, 3);
7817 
7818     xcb_parts[2].iov_base = (char *) &xcb_out;
7819     xcb_parts[2].iov_len = sizeof(xcb_out);
7820     xcb_parts[3].iov_base = 0;
7821     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7822 
7823     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
7824     return xcb_ret;
7825 }
7826 
7827 
7828 /*****************************************************************************
7829  **
7830  ** xcb_input_list_device_properties_cookie_t xcb_input_list_device_properties_unchecked
7831  **
7832  ** @param xcb_connection_t *c
7833  ** @param uint8_t           device_id
7834  ** @returns xcb_input_list_device_properties_cookie_t
7835  **
7836  *****************************************************************************/
7837 
7838 xcb_input_list_device_properties_cookie_t
7839 xcb_input_list_device_properties_unchecked (xcb_connection_t *c  /**< */,
7840                                             uint8_t           device_id  /**< */)
7841 {
7842     static const xcb_protocol_request_t xcb_req = {
7843         /* count */ 2,
7844         /* ext */ &xcb_input_id,
7845         /* opcode */ XCB_INPUT_LIST_DEVICE_PROPERTIES,
7846         /* isvoid */ 0
7847     };
7848 
7849     struct iovec xcb_parts[4];
7850     xcb_input_list_device_properties_cookie_t xcb_ret;
7851     xcb_input_list_device_properties_request_t xcb_out;
7852 
7853     xcb_out.device_id = device_id;
7854     memset(xcb_out.pad0, 0, 3);
7855 
7856     xcb_parts[2].iov_base = (char *) &xcb_out;
7857     xcb_parts[2].iov_len = sizeof(xcb_out);
7858     xcb_parts[3].iov_base = 0;
7859     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7860 
7861     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
7862     return xcb_ret;
7863 }
7864 
7865 
7866 /*****************************************************************************
7867  **
7868  ** xcb_atom_t * xcb_input_list_device_properties_atoms
7869  **
7870  ** @param const xcb_input_list_device_properties_reply_t *R
7871  ** @returns xcb_atom_t *
7872  **
7873  *****************************************************************************/
7874 
7875 xcb_atom_t *
7876 xcb_input_list_device_properties_atoms (const xcb_input_list_device_properties_reply_t *R  /**< */)
7877 {
7878     return (xcb_atom_t *) (R + 1);
7879 }
7880 
7881 
7882 /*****************************************************************************
7883  **
7884  ** int xcb_input_list_device_properties_atoms_length
7885  **
7886  ** @param const xcb_input_list_device_properties_reply_t *R
7887  ** @returns int
7888  **
7889  *****************************************************************************/
7890 
7891 int
7892 xcb_input_list_device_properties_atoms_length (const xcb_input_list_device_properties_reply_t *R  /**< */)
7893 {
7894     return R->num_atoms;
7895 }
7896 
7897 
7898 /*****************************************************************************
7899  **
7900  ** xcb_generic_iterator_t xcb_input_list_device_properties_atoms_end
7901  **
7902  ** @param const xcb_input_list_device_properties_reply_t *R
7903  ** @returns xcb_generic_iterator_t
7904  **
7905  *****************************************************************************/
7906 
7907 xcb_generic_iterator_t
7908 xcb_input_list_device_properties_atoms_end (const xcb_input_list_device_properties_reply_t *R  /**< */)
7909 {
7910     xcb_generic_iterator_t i;
7911     i.data = ((xcb_atom_t *) (R + 1)) + (R->num_atoms);
7912     i.rem = 0;
7913     i.index = (char *) i.data - (char *) R;
7914     return i;
7915 }
7916 
7917 
7918 /*****************************************************************************
7919  **
7920  ** xcb_input_list_device_properties_reply_t * xcb_input_list_device_properties_reply
7921  **
7922  ** @param xcb_connection_t                           *c
7923  ** @param xcb_input_list_device_properties_cookie_t   cookie
7924  ** @param xcb_generic_error_t                       **e
7925  ** @returns xcb_input_list_device_properties_reply_t *
7926  **
7927  *****************************************************************************/
7928 
7929 xcb_input_list_device_properties_reply_t *
7930 xcb_input_list_device_properties_reply (xcb_connection_t                           *c  /**< */,
7931                                         xcb_input_list_device_properties_cookie_t   cookie  /**< */,
7932                                         xcb_generic_error_t                       **e  /**< */)
7933 {
7934     return (xcb_input_list_device_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
7935 }
7936 
7937 
7938 /*****************************************************************************
7939  **
7940  ** uint8_t * xcb_input_change_device_property_items_data_8
7941  **
7942  ** @param const xcb_input_change_device_property_items_t *S
7943  ** @returns uint8_t *
7944  **
7945  *****************************************************************************/
7946 
7947 uint8_t *
7948 xcb_input_change_device_property_items_data_8 (const xcb_input_change_device_property_items_t *S  /**< */)
7949 {
7950     return /* items */ S->data8;
7951 }
7952 
7953 
7954 /*****************************************************************************
7955  **
7956  ** int xcb_input_change_device_property_items_data_8_length
7957  **
7958  ** @param const xcb_input_change_device_property_items_t *R
7959  ** @returns int
7960  **
7961  *****************************************************************************/
7962 
7963 int
7964 xcb_input_change_device_property_items_data_8_length (const xcb_input_change_device_property_request_t *R  /**< */,
7965                                                       const xcb_input_change_device_property_items_t *S  /**< */)
7966 {
7967     return R->num_items;
7968 }
7969 
7970 
7971 /*****************************************************************************
7972  **
7973  ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_8_end
7974  **
7975  ** @param const xcb_input_change_device_property_items_t *R
7976  ** @returns xcb_generic_iterator_t
7977  **
7978  *****************************************************************************/
7979 
7980 xcb_generic_iterator_t
7981 xcb_input_change_device_property_items_data_8_end (const xcb_input_change_device_property_request_t *R  /**< */,
7982                                                    const xcb_input_change_device_property_items_t *S  /**< */)
7983 {
7984     xcb_generic_iterator_t i;
7985     i.data = /* items */ S->data8 + R->num_items;
7986     i.rem = 0;
7987     i.index = (char *) i.data - (char *) S;
7988     return i;
7989 }
7990 
7991 
7992 /*****************************************************************************
7993  **
7994  ** uint16_t * xcb_input_change_device_property_items_data_16
7995  **
7996  ** @param const xcb_input_change_device_property_items_t *S
7997  ** @returns uint16_t *
7998  **
7999  *****************************************************************************/
8000 
8001 uint16_t *
8002 xcb_input_change_device_property_items_data_16 (const xcb_input_change_device_property_items_t *S  /**< */)
8003 {
8004     return /* items */ S->data16;
8005 }
8006 
8007 
8008 /*****************************************************************************
8009  **
8010  ** int xcb_input_change_device_property_items_data_16_length
8011  **
8012  ** @param const xcb_input_change_device_property_items_t *R
8013  ** @returns int
8014  **
8015  *****************************************************************************/
8016 
8017 int
8018 xcb_input_change_device_property_items_data_16_length (const xcb_input_change_device_property_request_t *R  /**< */,
8019                                                        const xcb_input_change_device_property_items_t *S  /**< */)
8020 {
8021     return R->num_items;
8022 }
8023 
8024 
8025 /*****************************************************************************
8026  **
8027  ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_16_end
8028  **
8029  ** @param const xcb_input_change_device_property_items_t *R
8030  ** @returns xcb_generic_iterator_t
8031  **
8032  *****************************************************************************/
8033 
8034 xcb_generic_iterator_t
8035 xcb_input_change_device_property_items_data_16_end (const xcb_input_change_device_property_request_t *R  /**< */,
8036                                                     const xcb_input_change_device_property_items_t *S  /**< */)
8037 {
8038     xcb_generic_iterator_t i;
8039     i.data = /* items */ S->data16 + R->num_items;
8040     i.rem = 0;
8041     i.index = (char *) i.data - (char *) S;
8042     return i;
8043 }
8044 
8045 
8046 /*****************************************************************************
8047  **
8048  ** uint32_t * xcb_input_change_device_property_items_data_32
8049  **
8050  ** @param const xcb_input_change_device_property_items_t *S
8051  ** @returns uint32_t *
8052  **
8053  *****************************************************************************/
8054 
8055 uint32_t *
8056 xcb_input_change_device_property_items_data_32 (const xcb_input_change_device_property_items_t *S  /**< */)
8057 {
8058     return /* items */ S->data32;
8059 }
8060 
8061 
8062 /*****************************************************************************
8063  **
8064  ** int xcb_input_change_device_property_items_data_32_length
8065  **
8066  ** @param const xcb_input_change_device_property_items_t *R
8067  ** @returns int
8068  **
8069  *****************************************************************************/
8070 
8071 int
8072 xcb_input_change_device_property_items_data_32_length (const xcb_input_change_device_property_request_t *R  /**< */,
8073                                                        const xcb_input_change_device_property_items_t *S  /**< */)
8074 {
8075     return R->num_items;
8076 }
8077 
8078 
8079 /*****************************************************************************
8080  **
8081  ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_32_end
8082  **
8083  ** @param const xcb_input_change_device_property_items_t *R
8084  ** @returns xcb_generic_iterator_t
8085  **
8086  *****************************************************************************/
8087 
8088 xcb_generic_iterator_t
8089 xcb_input_change_device_property_items_data_32_end (const xcb_input_change_device_property_request_t *R  /**< */,
8090                                                     const xcb_input_change_device_property_items_t *S  /**< */)
8091 {
8092     xcb_generic_iterator_t i;
8093     i.data = /* items */ S->data32 + R->num_items;
8094     i.rem = 0;
8095     i.index = (char *) i.data - (char *) S;
8096     return i;
8097 }
8098 
8099 int
8100 xcb_input_change_device_property_items_serialize (void                                           **_buffer  /**< */,
8101                                                   uint32_t                                         num_items  /**< */,
8102                                                   uint8_t                                          format  /**< */,
8103                                                   const xcb_input_change_device_property_items_t  *_aux  /**< */)
8104 {
8105     char *xcb_out = *_buffer;
8106     unsigned int xcb_buffer_len = 0;
8107     unsigned int xcb_align_to = 0;
8108 
8109     unsigned int xcb_pad = 0;
8110     char xcb_pad0[3] = {0, 0, 0};
8111     struct iovec xcb_parts[7];
8112     unsigned int xcb_parts_idx = 0;
8113     unsigned int xcb_block_len = 0;
8114     unsigned int i;
8115     char *xcb_tmp;
8116 
8117     if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
8118         /* insert padding */
8119         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8120         xcb_buffer_len += xcb_block_len + xcb_pad;
8121         if (0 != xcb_pad) {
8122             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8123             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8124             xcb_parts_idx++;
8125             xcb_pad = 0;
8126         }
8127         xcb_block_len = 0;
8128         /* data8 */
8129         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data8;
8130         xcb_block_len += num_items * sizeof(uint8_t);
8131         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint8_t);
8132         xcb_parts_idx++;
8133         xcb_align_to = ALIGNOF(uint8_t);
8134     }
8135     if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
8136         /* insert padding */
8137         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8138         xcb_buffer_len += xcb_block_len + xcb_pad;
8139         if (0 != xcb_pad) {
8140             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8141             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8142             xcb_parts_idx++;
8143             xcb_pad = 0;
8144         }
8145         xcb_block_len = 0;
8146         /* data16 */
8147         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data16;
8148         xcb_block_len += num_items * sizeof(uint16_t);
8149         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint16_t);
8150         xcb_parts_idx++;
8151         xcb_align_to = ALIGNOF(uint16_t);
8152     }
8153     if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
8154         /* insert padding */
8155         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8156         xcb_buffer_len += xcb_block_len + xcb_pad;
8157         if (0 != xcb_pad) {
8158             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8159             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8160             xcb_parts_idx++;
8161             xcb_pad = 0;
8162         }
8163         xcb_block_len = 0;
8164         /* data32 */
8165         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data32;
8166         xcb_block_len += num_items * sizeof(uint32_t);
8167         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint32_t);
8168         xcb_parts_idx++;
8169         xcb_align_to = ALIGNOF(uint32_t);
8170     }
8171     /* insert padding */
8172     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8173     xcb_buffer_len += xcb_block_len + xcb_pad;
8174     if (0 != xcb_pad) {
8175         xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8176         xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8177         xcb_parts_idx++;
8178         xcb_pad = 0;
8179     }
8180     xcb_block_len = 0;
8181 
8182     if (NULL == xcb_out) {
8183         /* allocate memory */
8184         xcb_out = malloc(xcb_buffer_len);
8185         *_buffer = xcb_out;
8186     }
8187 
8188     xcb_tmp = xcb_out;
8189     for(i=0; i<xcb_parts_idx; i++) {
8190         if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
8191             memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
8192         if (0 != xcb_parts[i].iov_len)
8193             xcb_tmp += xcb_parts[i].iov_len;
8194     }
8195 
8196     return xcb_buffer_len;
8197 }
8198 
8199 int
8200 xcb_input_change_device_property_items_unpack (const void                                *_buffer  /**< */,
8201                                                uint32_t                                   num_items  /**< */,
8202                                                uint8_t                                    format  /**< */,
8203                                                xcb_input_change_device_property_items_t  *_aux  /**< */)
8204 {
8205     char *xcb_tmp = (char *)_buffer;
8206     unsigned int xcb_buffer_len = 0;
8207     unsigned int xcb_block_len = 0;
8208     unsigned int xcb_pad = 0;
8209     unsigned int xcb_align_to = 0;
8210 
8211 
8212     if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
8213         /* insert padding */
8214         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8215         xcb_buffer_len += xcb_block_len + xcb_pad;
8216         if (0 != xcb_pad) {
8217             xcb_tmp += xcb_pad;
8218             xcb_pad = 0;
8219         }
8220         xcb_block_len = 0;
8221         /* data8 */
8222         _aux->data8 = (uint8_t *)xcb_tmp;
8223         xcb_block_len += num_items * sizeof(uint8_t);
8224         xcb_tmp += xcb_block_len;
8225         xcb_align_to = ALIGNOF(uint8_t);
8226     }
8227     if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
8228         /* insert padding */
8229         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8230         xcb_buffer_len += xcb_block_len + xcb_pad;
8231         if (0 != xcb_pad) {
8232             xcb_tmp += xcb_pad;
8233             xcb_pad = 0;
8234         }
8235         xcb_block_len = 0;
8236         /* data16 */
8237         _aux->data16 = (uint16_t *)xcb_tmp;
8238         xcb_block_len += num_items * sizeof(uint16_t);
8239         xcb_tmp += xcb_block_len;
8240         xcb_align_to = ALIGNOF(uint16_t);
8241     }
8242     if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
8243         /* insert padding */
8244         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8245         xcb_buffer_len += xcb_block_len + xcb_pad;
8246         if (0 != xcb_pad) {
8247             xcb_tmp += xcb_pad;
8248             xcb_pad = 0;
8249         }
8250         xcb_block_len = 0;
8251         /* data32 */
8252         _aux->data32 = (uint32_t *)xcb_tmp;
8253         xcb_block_len += num_items * sizeof(uint32_t);
8254         xcb_tmp += xcb_block_len;
8255         xcb_align_to = ALIGNOF(uint32_t);
8256     }
8257     /* insert padding */
8258     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8259     xcb_buffer_len += xcb_block_len + xcb_pad;
8260     if (0 != xcb_pad) {
8261         xcb_tmp += xcb_pad;
8262         xcb_pad = 0;
8263     }
8264     xcb_block_len = 0;
8265 
8266     return xcb_buffer_len;
8267 }
8268 
8269 int
8270 xcb_input_change_device_property_items_sizeof (const void  *_buffer  /**< */,
8271                                                uint32_t     num_items  /**< */,
8272                                                uint8_t      format  /**< */)
8273 {
8274     xcb_input_change_device_property_items_t _aux;
8275     return xcb_input_change_device_property_items_unpack(_buffer, num_items, format, &_aux);
8276 }
8277 
8278 
8279 /*****************************************************************************
8280  **
8281  ** xcb_void_cookie_t xcb_input_change_device_property_checked
8282  **
8283  ** @param xcb_connection_t *c
8284  ** @param xcb_atom_t        property
8285  ** @param xcb_atom_t        type
8286  ** @param uint8_t           device_id
8287  ** @param uint8_t           format
8288  ** @param uint8_t           mode
8289  ** @param uint32_t          num_items
8290  ** @param const void       *items
8291  ** @returns xcb_void_cookie_t
8292  **
8293  *****************************************************************************/
8294 
8295 xcb_void_cookie_t
8296 xcb_input_change_device_property_checked (xcb_connection_t *c  /**< */,
8297                                           xcb_atom_t        property  /**< */,
8298                                           xcb_atom_t        type  /**< */,
8299                                           uint8_t           device_id  /**< */,
8300                                           uint8_t           format  /**< */,
8301                                           uint8_t           mode  /**< */,
8302                                           uint32_t          num_items  /**< */,
8303                                           const void       *items  /**< */)
8304 {
8305     static const xcb_protocol_request_t xcb_req = {
8306         /* count */ 3,
8307         /* ext */ &xcb_input_id,
8308         /* opcode */ XCB_INPUT_CHANGE_DEVICE_PROPERTY,
8309         /* isvoid */ 1
8310     };
8311 
8312     struct iovec xcb_parts[5];
8313     xcb_void_cookie_t xcb_ret;
8314     xcb_input_change_device_property_request_t xcb_out;
8315 
8316     xcb_out.property = property;
8317     xcb_out.type = type;
8318     xcb_out.device_id = device_id;
8319     xcb_out.format = format;
8320     xcb_out.mode = mode;
8321     xcb_out.pad0 = 0;
8322     xcb_out.num_items = num_items;
8323 
8324     xcb_parts[2].iov_base = (char *) &xcb_out;
8325     xcb_parts[2].iov_len = sizeof(xcb_out);
8326     xcb_parts[3].iov_base = 0;
8327     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8328     /* xcb_input_change_device_property_items_t items */
8329     xcb_parts[4].iov_base = (char *) items;
8330     xcb_parts[4].iov_len =
8331       xcb_input_change_device_property_items_sizeof (items, num_items, format);
8332 
8333     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8334     return xcb_ret;
8335 }
8336 
8337 
8338 /*****************************************************************************
8339  **
8340  ** xcb_void_cookie_t xcb_input_change_device_property
8341  **
8342  ** @param xcb_connection_t *c
8343  ** @param xcb_atom_t        property
8344  ** @param xcb_atom_t        type
8345  ** @param uint8_t           device_id
8346  ** @param uint8_t           format
8347  ** @param uint8_t           mode
8348  ** @param uint32_t          num_items
8349  ** @param const void       *items
8350  ** @returns xcb_void_cookie_t
8351  **
8352  *****************************************************************************/
8353 
8354 xcb_void_cookie_t
8355 xcb_input_change_device_property (xcb_connection_t *c  /**< */,
8356                                   xcb_atom_t        property  /**< */,
8357                                   xcb_atom_t        type  /**< */,
8358                                   uint8_t           device_id  /**< */,
8359                                   uint8_t           format  /**< */,
8360                                   uint8_t           mode  /**< */,
8361                                   uint32_t          num_items  /**< */,
8362                                   const void       *items  /**< */)
8363 {
8364     static const xcb_protocol_request_t xcb_req = {
8365         /* count */ 3,
8366         /* ext */ &xcb_input_id,
8367         /* opcode */ XCB_INPUT_CHANGE_DEVICE_PROPERTY,
8368         /* isvoid */ 1
8369     };
8370 
8371     struct iovec xcb_parts[5];
8372     xcb_void_cookie_t xcb_ret;
8373     xcb_input_change_device_property_request_t xcb_out;
8374 
8375     xcb_out.property = property;
8376     xcb_out.type = type;
8377     xcb_out.device_id = device_id;
8378     xcb_out.format = format;
8379     xcb_out.mode = mode;
8380     xcb_out.pad0 = 0;
8381     xcb_out.num_items = num_items;
8382 
8383     xcb_parts[2].iov_base = (char *) &xcb_out;
8384     xcb_parts[2].iov_len = sizeof(xcb_out);
8385     xcb_parts[3].iov_base = 0;
8386     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8387     /* xcb_input_change_device_property_items_t items */
8388     xcb_parts[4].iov_base = (char *) items;
8389     xcb_parts[4].iov_len =
8390       xcb_input_change_device_property_items_sizeof (items, num_items, format);
8391 
8392     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
8393     return xcb_ret;
8394 }
8395 
8396 
8397 /*****************************************************************************
8398  **
8399  ** xcb_void_cookie_t xcb_input_change_device_property_aux_checked
8400  **
8401  ** @param xcb_connection_t                               *c
8402  ** @param xcb_atom_t                                      property
8403  ** @param xcb_atom_t                                      type
8404  ** @param uint8_t                                         device_id
8405  ** @param uint8_t                                         format
8406  ** @param uint8_t                                         mode
8407  ** @param uint32_t                                        num_items
8408  ** @param const xcb_input_change_device_property_items_t *items
8409  ** @returns xcb_void_cookie_t
8410  **
8411  *****************************************************************************/
8412 
8413 xcb_void_cookie_t
8414 xcb_input_change_device_property_aux_checked (xcb_connection_t                               *c  /**< */,
8415                                               xcb_atom_t                                      property  /**< */,
8416                                               xcb_atom_t                                      type  /**< */,
8417                                               uint8_t                                         device_id  /**< */,
8418                                               uint8_t                                         format  /**< */,
8419                                               uint8_t                                         mode  /**< */,
8420                                               uint32_t                                        num_items  /**< */,
8421                                               const xcb_input_change_device_property_items_t *items  /**< */)
8422 {
8423     static const xcb_protocol_request_t xcb_req = {
8424         /* count */ 3,
8425         /* ext */ &xcb_input_id,
8426         /* opcode */ XCB_INPUT_CHANGE_DEVICE_PROPERTY,
8427         /* isvoid */ 1
8428     };
8429 
8430     struct iovec xcb_parts[5];
8431     xcb_void_cookie_t xcb_ret;
8432     xcb_input_change_device_property_request_t xcb_out;
8433     void *xcb_aux0 = 0;
8434 
8435     xcb_out.property = property;
8436     xcb_out.type = type;
8437     xcb_out.device_id = device_id;
8438     xcb_out.format = format;
8439     xcb_out.mode = mode;
8440     xcb_out.pad0 = 0;
8441     xcb_out.num_items = num_items;
8442 
8443     xcb_parts[2].iov_base = (char *) &xcb_out;
8444     xcb_parts[2].iov_len = sizeof(xcb_out);
8445     xcb_parts[3].iov_base = 0;
8446     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8447     /* xcb_input_change_device_property_items_t items */
8448     xcb_parts[4].iov_len =
8449       xcb_input_change_device_property_items_serialize (&xcb_aux0, num_items, format, items);
8450     xcb_parts[4].iov_base = xcb_aux0;
8451 
8452     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8453     free(xcb_aux0);
8454     return xcb_ret;
8455 }
8456 
8457 
8458 /*****************************************************************************
8459  **
8460  ** xcb_void_cookie_t xcb_input_change_device_property_aux
8461  **
8462  ** @param xcb_connection_t                               *c
8463  ** @param xcb_atom_t                                      property
8464  ** @param xcb_atom_t                                      type
8465  ** @param uint8_t                                         device_id
8466  ** @param uint8_t                                         format
8467  ** @param uint8_t                                         mode
8468  ** @param uint32_t                                        num_items
8469  ** @param const xcb_input_change_device_property_items_t *items
8470  ** @returns xcb_void_cookie_t
8471  **
8472  *****************************************************************************/
8473 
8474 xcb_void_cookie_t
8475 xcb_input_change_device_property_aux (xcb_connection_t                               *c  /**< */,
8476                                       xcb_atom_t                                      property  /**< */,
8477                                       xcb_atom_t                                      type  /**< */,
8478                                       uint8_t                                         device_id  /**< */,
8479                                       uint8_t                                         format  /**< */,
8480                                       uint8_t                                         mode  /**< */,
8481                                       uint32_t                                        num_items  /**< */,
8482                                       const xcb_input_change_device_property_items_t *items  /**< */)
8483 {
8484     static const xcb_protocol_request_t xcb_req = {
8485         /* count */ 3,
8486         /* ext */ &xcb_input_id,
8487         /* opcode */ XCB_INPUT_CHANGE_DEVICE_PROPERTY,
8488         /* isvoid */ 1
8489     };
8490 
8491     struct iovec xcb_parts[5];
8492     xcb_void_cookie_t xcb_ret;
8493     xcb_input_change_device_property_request_t xcb_out;
8494     void *xcb_aux0 = 0;
8495 
8496     xcb_out.property = property;
8497     xcb_out.type = type;
8498     xcb_out.device_id = device_id;
8499     xcb_out.format = format;
8500     xcb_out.mode = mode;
8501     xcb_out.pad0 = 0;
8502     xcb_out.num_items = num_items;
8503 
8504     xcb_parts[2].iov_base = (char *) &xcb_out;
8505     xcb_parts[2].iov_len = sizeof(xcb_out);
8506     xcb_parts[3].iov_base = 0;
8507     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8508     /* xcb_input_change_device_property_items_t items */
8509     xcb_parts[4].iov_len =
8510       xcb_input_change_device_property_items_serialize (&xcb_aux0, num_items, format, items);
8511     xcb_parts[4].iov_base = xcb_aux0;
8512 
8513     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
8514     free(xcb_aux0);
8515     return xcb_ret;
8516 }
8517 
8518 
8519 /*****************************************************************************
8520  **
8521  ** xcb_void_cookie_t xcb_input_delete_device_property_checked
8522  **
8523  ** @param xcb_connection_t *c
8524  ** @param xcb_atom_t        property
8525  ** @param uint8_t           device_id
8526  ** @returns xcb_void_cookie_t
8527  **
8528  *****************************************************************************/
8529 
8530 xcb_void_cookie_t
8531 xcb_input_delete_device_property_checked (xcb_connection_t *c  /**< */,
8532                                           xcb_atom_t        property  /**< */,
8533                                           uint8_t           device_id  /**< */)
8534 {
8535     static const xcb_protocol_request_t xcb_req = {
8536         /* count */ 2,
8537         /* ext */ &xcb_input_id,
8538         /* opcode */ XCB_INPUT_DELETE_DEVICE_PROPERTY,
8539         /* isvoid */ 1
8540     };
8541 
8542     struct iovec xcb_parts[4];
8543     xcb_void_cookie_t xcb_ret;
8544     xcb_input_delete_device_property_request_t xcb_out;
8545 
8546     xcb_out.property = property;
8547     xcb_out.device_id = device_id;
8548     memset(xcb_out.pad0, 0, 3);
8549 
8550     xcb_parts[2].iov_base = (char *) &xcb_out;
8551     xcb_parts[2].iov_len = sizeof(xcb_out);
8552     xcb_parts[3].iov_base = 0;
8553     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8554 
8555     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8556     return xcb_ret;
8557 }
8558 
8559 
8560 /*****************************************************************************
8561  **
8562  ** xcb_void_cookie_t xcb_input_delete_device_property
8563  **
8564  ** @param xcb_connection_t *c
8565  ** @param xcb_atom_t        property
8566  ** @param uint8_t           device_id
8567  ** @returns xcb_void_cookie_t
8568  **
8569  *****************************************************************************/
8570 
8571 xcb_void_cookie_t
8572 xcb_input_delete_device_property (xcb_connection_t *c  /**< */,
8573                                   xcb_atom_t        property  /**< */,
8574                                   uint8_t           device_id  /**< */)
8575 {
8576     static const xcb_protocol_request_t xcb_req = {
8577         /* count */ 2,
8578         /* ext */ &xcb_input_id,
8579         /* opcode */ XCB_INPUT_DELETE_DEVICE_PROPERTY,
8580         /* isvoid */ 1
8581     };
8582 
8583     struct iovec xcb_parts[4];
8584     xcb_void_cookie_t xcb_ret;
8585     xcb_input_delete_device_property_request_t xcb_out;
8586 
8587     xcb_out.property = property;
8588     xcb_out.device_id = device_id;
8589     memset(xcb_out.pad0, 0, 3);
8590 
8591     xcb_parts[2].iov_base = (char *) &xcb_out;
8592     xcb_parts[2].iov_len = sizeof(xcb_out);
8593     xcb_parts[3].iov_base = 0;
8594     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8595 
8596     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
8597     return xcb_ret;
8598 }
8599 
8600 
8601 /*****************************************************************************
8602  **
8603  ** uint8_t * xcb_input_get_device_property_items_data_8
8604  **
8605  ** @param const xcb_input_get_device_property_items_t *S
8606  ** @returns uint8_t *
8607  **
8608  *****************************************************************************/
8609 
8610 uint8_t *
8611 xcb_input_get_device_property_items_data_8 (const xcb_input_get_device_property_items_t *S  /**< */)
8612 {
8613     return /* items */ S->data8;
8614 }
8615 
8616 
8617 /*****************************************************************************
8618  **
8619  ** int xcb_input_get_device_property_items_data_8_length
8620  **
8621  ** @param const xcb_input_get_device_property_items_t *R
8622  ** @returns int
8623  **
8624  *****************************************************************************/
8625 
8626 int
8627 xcb_input_get_device_property_items_data_8_length (const xcb_input_get_device_property_reply_t *R  /**< */,
8628                                                    const xcb_input_get_device_property_items_t *S  /**< */)
8629 {
8630     return R->num_items;
8631 }
8632 
8633 
8634 /*****************************************************************************
8635  **
8636  ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_8_end
8637  **
8638  ** @param const xcb_input_get_device_property_items_t *R
8639  ** @returns xcb_generic_iterator_t
8640  **
8641  *****************************************************************************/
8642 
8643 xcb_generic_iterator_t
8644 xcb_input_get_device_property_items_data_8_end (const xcb_input_get_device_property_reply_t *R  /**< */,
8645                                                 const xcb_input_get_device_property_items_t *S  /**< */)
8646 {
8647     xcb_generic_iterator_t i;
8648     i.data = /* items */ S->data8 + R->num_items;
8649     i.rem = 0;
8650     i.index = (char *) i.data - (char *) S;
8651     return i;
8652 }
8653 
8654 
8655 /*****************************************************************************
8656  **
8657  ** uint16_t * xcb_input_get_device_property_items_data_16
8658  **
8659  ** @param const xcb_input_get_device_property_items_t *S
8660  ** @returns uint16_t *
8661  **
8662  *****************************************************************************/
8663 
8664 uint16_t *
8665 xcb_input_get_device_property_items_data_16 (const xcb_input_get_device_property_items_t *S  /**< */)
8666 {
8667     return /* items */ S->data16;
8668 }
8669 
8670 
8671 /*****************************************************************************
8672  **
8673  ** int xcb_input_get_device_property_items_data_16_length
8674  **
8675  ** @param const xcb_input_get_device_property_items_t *R
8676  ** @returns int
8677  **
8678  *****************************************************************************/
8679 
8680 int
8681 xcb_input_get_device_property_items_data_16_length (const xcb_input_get_device_property_reply_t *R  /**< */,
8682                                                     const xcb_input_get_device_property_items_t *S  /**< */)
8683 {
8684     return R->num_items;
8685 }
8686 
8687 
8688 /*****************************************************************************
8689  **
8690  ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_16_end
8691  **
8692  ** @param const xcb_input_get_device_property_items_t *R
8693  ** @returns xcb_generic_iterator_t
8694  **
8695  *****************************************************************************/
8696 
8697 xcb_generic_iterator_t
8698 xcb_input_get_device_property_items_data_16_end (const xcb_input_get_device_property_reply_t *R  /**< */,
8699                                                  const xcb_input_get_device_property_items_t *S  /**< */)
8700 {
8701     xcb_generic_iterator_t i;
8702     i.data = /* items */ S->data16 + R->num_items;
8703     i.rem = 0;
8704     i.index = (char *) i.data - (char *) S;
8705     return i;
8706 }
8707 
8708 
8709 /*****************************************************************************
8710  **
8711  ** uint32_t * xcb_input_get_device_property_items_data_32
8712  **
8713  ** @param const xcb_input_get_device_property_items_t *S
8714  ** @returns uint32_t *
8715  **
8716  *****************************************************************************/
8717 
8718 uint32_t *
8719 xcb_input_get_device_property_items_data_32 (const xcb_input_get_device_property_items_t *S  /**< */)
8720 {
8721     return /* items */ S->data32;
8722 }
8723 
8724 
8725 /*****************************************************************************
8726  **
8727  ** int xcb_input_get_device_property_items_data_32_length
8728  **
8729  ** @param const xcb_input_get_device_property_items_t *R
8730  ** @returns int
8731  **
8732  *****************************************************************************/
8733 
8734 int
8735 xcb_input_get_device_property_items_data_32_length (const xcb_input_get_device_property_reply_t *R  /**< */,
8736                                                     const xcb_input_get_device_property_items_t *S  /**< */)
8737 {
8738     return R->num_items;
8739 }
8740 
8741 
8742 /*****************************************************************************
8743  **
8744  ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_32_end
8745  **
8746  ** @param const xcb_input_get_device_property_items_t *R
8747  ** @returns xcb_generic_iterator_t
8748  **
8749  *****************************************************************************/
8750 
8751 xcb_generic_iterator_t
8752 xcb_input_get_device_property_items_data_32_end (const xcb_input_get_device_property_reply_t *R  /**< */,
8753                                                  const xcb_input_get_device_property_items_t *S  /**< */)
8754 {
8755     xcb_generic_iterator_t i;
8756     i.data = /* items */ S->data32 + R->num_items;
8757     i.rem = 0;
8758     i.index = (char *) i.data - (char *) S;
8759     return i;
8760 }
8761 
8762 int
8763 xcb_input_get_device_property_items_serialize (void                                        **_buffer  /**< */,
8764                                                uint32_t                                      num_items  /**< */,
8765                                                uint8_t                                       format  /**< */,
8766                                                const xcb_input_get_device_property_items_t  *_aux  /**< */)
8767 {
8768     char *xcb_out = *_buffer;
8769     unsigned int xcb_buffer_len = 0;
8770     unsigned int xcb_align_to = 0;
8771 
8772     unsigned int xcb_pad = 0;
8773     char xcb_pad0[3] = {0, 0, 0};
8774     struct iovec xcb_parts[7];
8775     unsigned int xcb_parts_idx = 0;
8776     unsigned int xcb_block_len = 0;
8777     unsigned int i;
8778     char *xcb_tmp;
8779 
8780     if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
8781         /* insert padding */
8782         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8783         xcb_buffer_len += xcb_block_len + xcb_pad;
8784         if (0 != xcb_pad) {
8785             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8786             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8787             xcb_parts_idx++;
8788             xcb_pad = 0;
8789         }
8790         xcb_block_len = 0;
8791         /* data8 */
8792         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data8;
8793         xcb_block_len += num_items * sizeof(uint8_t);
8794         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint8_t);
8795         xcb_parts_idx++;
8796         xcb_align_to = ALIGNOF(uint8_t);
8797     }
8798     if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
8799         /* insert padding */
8800         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8801         xcb_buffer_len += xcb_block_len + xcb_pad;
8802         if (0 != xcb_pad) {
8803             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8804             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8805             xcb_parts_idx++;
8806             xcb_pad = 0;
8807         }
8808         xcb_block_len = 0;
8809         /* data16 */
8810         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data16;
8811         xcb_block_len += num_items * sizeof(uint16_t);
8812         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint16_t);
8813         xcb_parts_idx++;
8814         xcb_align_to = ALIGNOF(uint16_t);
8815     }
8816     if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
8817         /* insert padding */
8818         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8819         xcb_buffer_len += xcb_block_len + xcb_pad;
8820         if (0 != xcb_pad) {
8821             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8822             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8823             xcb_parts_idx++;
8824             xcb_pad = 0;
8825         }
8826         xcb_block_len = 0;
8827         /* data32 */
8828         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data32;
8829         xcb_block_len += num_items * sizeof(uint32_t);
8830         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint32_t);
8831         xcb_parts_idx++;
8832         xcb_align_to = ALIGNOF(uint32_t);
8833     }
8834     /* insert padding */
8835     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8836     xcb_buffer_len += xcb_block_len + xcb_pad;
8837     if (0 != xcb_pad) {
8838         xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8839         xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8840         xcb_parts_idx++;
8841         xcb_pad = 0;
8842     }
8843     xcb_block_len = 0;
8844 
8845     if (NULL == xcb_out) {
8846         /* allocate memory */
8847         xcb_out = malloc(xcb_buffer_len);
8848         *_buffer = xcb_out;
8849     }
8850 
8851     xcb_tmp = xcb_out;
8852     for(i=0; i<xcb_parts_idx; i++) {
8853         if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
8854             memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
8855         if (0 != xcb_parts[i].iov_len)
8856             xcb_tmp += xcb_parts[i].iov_len;
8857     }
8858 
8859     return xcb_buffer_len;
8860 }
8861 
8862 int
8863 xcb_input_get_device_property_items_unpack (const void                             *_buffer  /**< */,
8864                                             uint32_t                                num_items  /**< */,
8865                                             uint8_t                                 format  /**< */,
8866                                             xcb_input_get_device_property_items_t  *_aux  /**< */)
8867 {
8868     char *xcb_tmp = (char *)_buffer;
8869     unsigned int xcb_buffer_len = 0;
8870     unsigned int xcb_block_len = 0;
8871     unsigned int xcb_pad = 0;
8872     unsigned int xcb_align_to = 0;
8873 
8874 
8875     if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
8876         /* insert padding */
8877         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8878         xcb_buffer_len += xcb_block_len + xcb_pad;
8879         if (0 != xcb_pad) {
8880             xcb_tmp += xcb_pad;
8881             xcb_pad = 0;
8882         }
8883         xcb_block_len = 0;
8884         /* data8 */
8885         _aux->data8 = (uint8_t *)xcb_tmp;
8886         xcb_block_len += num_items * sizeof(uint8_t);
8887         xcb_tmp += xcb_block_len;
8888         xcb_align_to = ALIGNOF(uint8_t);
8889     }
8890     if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
8891         /* insert padding */
8892         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8893         xcb_buffer_len += xcb_block_len + xcb_pad;
8894         if (0 != xcb_pad) {
8895             xcb_tmp += xcb_pad;
8896             xcb_pad = 0;
8897         }
8898         xcb_block_len = 0;
8899         /* data16 */
8900         _aux->data16 = (uint16_t *)xcb_tmp;
8901         xcb_block_len += num_items * sizeof(uint16_t);
8902         xcb_tmp += xcb_block_len;
8903         xcb_align_to = ALIGNOF(uint16_t);
8904     }
8905     if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
8906         /* insert padding */
8907         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8908         xcb_buffer_len += xcb_block_len + xcb_pad;
8909         if (0 != xcb_pad) {
8910             xcb_tmp += xcb_pad;
8911             xcb_pad = 0;
8912         }
8913         xcb_block_len = 0;
8914         /* data32 */
8915         _aux->data32 = (uint32_t *)xcb_tmp;
8916         xcb_block_len += num_items * sizeof(uint32_t);
8917         xcb_tmp += xcb_block_len;
8918         xcb_align_to = ALIGNOF(uint32_t);
8919     }
8920     /* insert padding */
8921     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8922     xcb_buffer_len += xcb_block_len + xcb_pad;
8923     if (0 != xcb_pad) {
8924         xcb_tmp += xcb_pad;
8925         xcb_pad = 0;
8926     }
8927     xcb_block_len = 0;
8928 
8929     return xcb_buffer_len;
8930 }
8931 
8932 int
8933 xcb_input_get_device_property_items_sizeof (const void  *_buffer  /**< */,
8934                                             uint32_t     num_items  /**< */,
8935                                             uint8_t      format  /**< */)
8936 {
8937     xcb_input_get_device_property_items_t _aux;
8938     return xcb_input_get_device_property_items_unpack(_buffer, num_items, format, &_aux);
8939 }
8940 
8941 
8942 /*****************************************************************************
8943  **
8944  ** xcb_input_get_device_property_cookie_t xcb_input_get_device_property
8945  **
8946  ** @param xcb_connection_t *c
8947  ** @param xcb_atom_t        property
8948  ** @param xcb_atom_t        type
8949  ** @param uint32_t          offset
8950  ** @param uint32_t          len
8951  ** @param uint8_t           device_id
8952  ** @param uint8_t           _delete
8953  ** @returns xcb_input_get_device_property_cookie_t
8954  **
8955  *****************************************************************************/
8956 
8957 xcb_input_get_device_property_cookie_t
8958 xcb_input_get_device_property (xcb_connection_t *c  /**< */,
8959                                xcb_atom_t        property  /**< */,
8960                                xcb_atom_t        type  /**< */,
8961                                uint32_t          offset  /**< */,
8962                                uint32_t          len  /**< */,
8963                                uint8_t           device_id  /**< */,
8964                                uint8_t           _delete  /**< */)
8965 {
8966     static const xcb_protocol_request_t xcb_req = {
8967         /* count */ 2,
8968         /* ext */ &xcb_input_id,
8969         /* opcode */ XCB_INPUT_GET_DEVICE_PROPERTY,
8970         /* isvoid */ 0
8971     };
8972 
8973     struct iovec xcb_parts[4];
8974     xcb_input_get_device_property_cookie_t xcb_ret;
8975     xcb_input_get_device_property_request_t xcb_out;
8976 
8977     xcb_out.property = property;
8978     xcb_out.type = type;
8979     xcb_out.offset = offset;
8980     xcb_out.len = len;
8981     xcb_out.device_id = device_id;
8982     xcb_out._delete = _delete;
8983     memset(xcb_out.pad0, 0, 2);
8984 
8985     xcb_parts[2].iov_base = (char *) &xcb_out;
8986     xcb_parts[2].iov_len = sizeof(xcb_out);
8987     xcb_parts[3].iov_base = 0;
8988     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8989 
8990     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8991     return xcb_ret;
8992 }
8993 
8994 
8995 /*****************************************************************************
8996  **
8997  ** xcb_input_get_device_property_cookie_t xcb_input_get_device_property_unchecked
8998  **
8999  ** @param xcb_connection_t *c
9000  ** @param xcb_atom_t        property
9001  ** @param xcb_atom_t        type
9002  ** @param uint32_t          offset
9003  ** @param uint32_t          len
9004  ** @param uint8_t           device_id
9005  ** @param uint8_t           _delete
9006  ** @returns xcb_input_get_device_property_cookie_t
9007  **
9008  *****************************************************************************/
9009 
9010 xcb_input_get_device_property_cookie_t
9011 xcb_input_get_device_property_unchecked (xcb_connection_t *c  /**< */,
9012                                          xcb_atom_t        property  /**< */,
9013                                          xcb_atom_t        type  /**< */,
9014                                          uint32_t          offset  /**< */,
9015                                          uint32_t          len  /**< */,
9016                                          uint8_t           device_id  /**< */,
9017                                          uint8_t           _delete  /**< */)
9018 {
9019     static const xcb_protocol_request_t xcb_req = {
9020         /* count */ 2,
9021         /* ext */ &xcb_input_id,
9022         /* opcode */ XCB_INPUT_GET_DEVICE_PROPERTY,
9023         /* isvoid */ 0
9024     };
9025 
9026     struct iovec xcb_parts[4];
9027     xcb_input_get_device_property_cookie_t xcb_ret;
9028     xcb_input_get_device_property_request_t xcb_out;
9029 
9030     xcb_out.property = property;
9031     xcb_out.type = type;
9032     xcb_out.offset = offset;
9033     xcb_out.len = len;
9034     xcb_out.device_id = device_id;
9035     xcb_out._delete = _delete;
9036     memset(xcb_out.pad0, 0, 2);
9037 
9038     xcb_parts[2].iov_base = (char *) &xcb_out;
9039     xcb_parts[2].iov_len = sizeof(xcb_out);
9040     xcb_parts[3].iov_base = 0;
9041     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9042 
9043     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
9044     return xcb_ret;
9045 }
9046 
9047 
9048 /*****************************************************************************
9049  **
9050  ** xcb_input_get_device_property_items_t * xcb_input_get_device_property_items
9051  **
9052  ** @param const xcb_input_get_device_property_reply_t *R
9053  ** @returns xcb_input_get_device_property_items_t *
9054  **
9055  *****************************************************************************/
9056 
9057 void *
9058 xcb_input_get_device_property_items (const xcb_input_get_device_property_reply_t *R  /**< */)
9059 {
9060     return (void *) (R + 1);
9061 }
9062 
9063 
9064 /*****************************************************************************
9065  **
9066  ** xcb_input_get_device_property_reply_t * xcb_input_get_device_property_reply
9067  **
9068  ** @param xcb_connection_t                        *c
9069  ** @param xcb_input_get_device_property_cookie_t   cookie
9070  ** @param xcb_generic_error_t                    **e
9071  ** @returns xcb_input_get_device_property_reply_t *
9072  **
9073  *****************************************************************************/
9074 
9075 xcb_input_get_device_property_reply_t *
9076 xcb_input_get_device_property_reply (xcb_connection_t                        *c  /**< */,
9077                                      xcb_input_get_device_property_cookie_t   cookie  /**< */,
9078                                      xcb_generic_error_t                    **e  /**< */)
9079 {
9080     return (xcb_input_get_device_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
9081 }
9082 
9083 
9084 /*****************************************************************************
9085  **
9086  ** void xcb_input_group_info_next
9087  **
9088  ** @param xcb_input_group_info_iterator_t *i
9089  ** @returns void
9090  **
9091  *****************************************************************************/
9092 
9093 void
9094 xcb_input_group_info_next (xcb_input_group_info_iterator_t *i  /**< */)
9095 {
9096     --i->rem;
9097     ++i->data;
9098     i->index += sizeof(xcb_input_group_info_t);
9099 }
9100 
9101 
9102 /*****************************************************************************
9103  **
9104  ** xcb_generic_iterator_t xcb_input_group_info_end
9105  **
9106  ** @param xcb_input_group_info_iterator_t i
9107  ** @returns xcb_generic_iterator_t
9108  **
9109  *****************************************************************************/
9110 
9111 xcb_generic_iterator_t
9112 xcb_input_group_info_end (xcb_input_group_info_iterator_t i  /**< */)
9113 {
9114     xcb_generic_iterator_t ret;
9115     ret.data = i.data + i.rem;
9116     ret.index = i.index + ((char *) ret.data - (char *) i.data);
9117     ret.rem = 0;
9118     return ret;
9119 }
9120 
9121 
9122 /*****************************************************************************
9123  **
9124  ** void xcb_input_modifier_info_next
9125  **
9126  ** @param xcb_input_modifier_info_iterator_t *i
9127  ** @returns void
9128  **
9129  *****************************************************************************/
9130 
9131 void
9132 xcb_input_modifier_info_next (xcb_input_modifier_info_iterator_t *i  /**< */)
9133 {
9134     --i->rem;
9135     ++i->data;
9136     i->index += sizeof(xcb_input_modifier_info_t);
9137 }
9138 
9139 
9140 /*****************************************************************************
9141  **
9142  ** xcb_generic_iterator_t xcb_input_modifier_info_end
9143  **
9144  ** @param xcb_input_modifier_info_iterator_t i
9145  ** @returns xcb_generic_iterator_t
9146  **
9147  *****************************************************************************/
9148 
9149 xcb_generic_iterator_t
9150 xcb_input_modifier_info_end (xcb_input_modifier_info_iterator_t i  /**< */)
9151 {
9152     xcb_generic_iterator_t ret;
9153     ret.data = i.data + i.rem;
9154     ret.index = i.index + ((char *) ret.data - (char *) i.data);
9155     ret.rem = 0;
9156     return ret;
9157 }
9158 
9159 int
9160 xcb_input_xi_query_pointer_sizeof (const void  *_buffer  /**< */)
9161 {
9162     char *xcb_tmp = (char *)_buffer;
9163     const xcb_input_xi_query_pointer_reply_t *_aux = (xcb_input_xi_query_pointer_reply_t *)_buffer;
9164     unsigned int xcb_buffer_len = 0;
9165     unsigned int xcb_block_len = 0;
9166     unsigned int xcb_pad = 0;
9167     unsigned int xcb_align_to = 0;
9168 
9169 
9170     xcb_block_len += sizeof(xcb_input_xi_query_pointer_reply_t);
9171     xcb_tmp += xcb_block_len;
9172     xcb_buffer_len += xcb_block_len;
9173     xcb_block_len = 0;
9174     /* buttons */
9175     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
9176     xcb_tmp += xcb_block_len;
9177     xcb_align_to = ALIGNOF(uint32_t);
9178     /* insert padding */
9179     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
9180     xcb_buffer_len += xcb_block_len + xcb_pad;
9181     if (0 != xcb_pad) {
9182         xcb_tmp += xcb_pad;
9183         xcb_pad = 0;
9184     }
9185     xcb_block_len = 0;
9186 
9187     return xcb_buffer_len;
9188 }
9189 
9190 
9191 /*****************************************************************************
9192  **
9193  ** xcb_input_xi_query_pointer_cookie_t xcb_input_xi_query_pointer
9194  **
9195  ** @param xcb_connection_t      *c
9196  ** @param xcb_window_t           window
9197  ** @param xcb_input_device_id_t  deviceid
9198  ** @returns xcb_input_xi_query_pointer_cookie_t
9199  **
9200  *****************************************************************************/
9201 
9202 xcb_input_xi_query_pointer_cookie_t
9203 xcb_input_xi_query_pointer (xcb_connection_t      *c  /**< */,
9204                             xcb_window_t           window  /**< */,
9205                             xcb_input_device_id_t  deviceid  /**< */)
9206 {
9207     static const xcb_protocol_request_t xcb_req = {
9208         /* count */ 2,
9209         /* ext */ &xcb_input_id,
9210         /* opcode */ XCB_INPUT_XI_QUERY_POINTER,
9211         /* isvoid */ 0
9212     };
9213 
9214     struct iovec xcb_parts[4];
9215     xcb_input_xi_query_pointer_cookie_t xcb_ret;
9216     xcb_input_xi_query_pointer_request_t xcb_out;
9217 
9218     xcb_out.window = window;
9219     xcb_out.deviceid = deviceid;
9220     memset(xcb_out.pad0, 0, 2);
9221 
9222     xcb_parts[2].iov_base = (char *) &xcb_out;
9223     xcb_parts[2].iov_len = sizeof(xcb_out);
9224     xcb_parts[3].iov_base = 0;
9225     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9226 
9227     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
9228     return xcb_ret;
9229 }
9230 
9231 
9232 /*****************************************************************************
9233  **
9234  ** xcb_input_xi_query_pointer_cookie_t xcb_input_xi_query_pointer_unchecked
9235  **
9236  ** @param xcb_connection_t      *c
9237  ** @param xcb_window_t           window
9238  ** @param xcb_input_device_id_t  deviceid
9239  ** @returns xcb_input_xi_query_pointer_cookie_t
9240  **
9241  *****************************************************************************/
9242 
9243 xcb_input_xi_query_pointer_cookie_t
9244 xcb_input_xi_query_pointer_unchecked (xcb_connection_t      *c  /**< */,
9245                                       xcb_window_t           window  /**< */,
9246                                       xcb_input_device_id_t  deviceid  /**< */)
9247 {
9248     static const xcb_protocol_request_t xcb_req = {
9249         /* count */ 2,
9250         /* ext */ &xcb_input_id,
9251         /* opcode */ XCB_INPUT_XI_QUERY_POINTER,
9252         /* isvoid */ 0
9253     };
9254 
9255     struct iovec xcb_parts[4];
9256     xcb_input_xi_query_pointer_cookie_t xcb_ret;
9257     xcb_input_xi_query_pointer_request_t xcb_out;
9258 
9259     xcb_out.window = window;
9260     xcb_out.deviceid = deviceid;
9261     memset(xcb_out.pad0, 0, 2);
9262 
9263     xcb_parts[2].iov_base = (char *) &xcb_out;
9264     xcb_parts[2].iov_len = sizeof(xcb_out);
9265     xcb_parts[3].iov_base = 0;
9266     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9267 
9268     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
9269     return xcb_ret;
9270 }
9271 
9272 
9273 /*****************************************************************************
9274  **
9275  ** uint32_t * xcb_input_xi_query_pointer_buttons
9276  **
9277  ** @param const xcb_input_xi_query_pointer_reply_t *R
9278  ** @returns uint32_t *
9279  **
9280  *****************************************************************************/
9281 
9282 uint32_t *
9283 xcb_input_xi_query_pointer_buttons (const xcb_input_xi_query_pointer_reply_t *R  /**< */)
9284 {
9285     return (uint32_t *) (R + 1);
9286 }
9287 
9288 
9289 /*****************************************************************************
9290  **
9291  ** int xcb_input_xi_query_pointer_buttons_length
9292  **
9293  ** @param const xcb_input_xi_query_pointer_reply_t *R
9294  ** @returns int
9295  **
9296  *****************************************************************************/
9297 
9298 int
9299 xcb_input_xi_query_pointer_buttons_length (const xcb_input_xi_query_pointer_reply_t *R  /**< */)
9300 {
9301     return R->buttons_len;
9302 }
9303 
9304 
9305 /*****************************************************************************
9306  **
9307  ** xcb_generic_iterator_t xcb_input_xi_query_pointer_buttons_end
9308  **
9309  ** @param const xcb_input_xi_query_pointer_reply_t *R
9310  ** @returns xcb_generic_iterator_t
9311  **
9312  *****************************************************************************/
9313 
9314 xcb_generic_iterator_t
9315 xcb_input_xi_query_pointer_buttons_end (const xcb_input_xi_query_pointer_reply_t *R  /**< */)
9316 {
9317     xcb_generic_iterator_t i;
9318     i.data = ((uint32_t *) (R + 1)) + (R->buttons_len);
9319     i.rem = 0;
9320     i.index = (char *) i.data - (char *) R;
9321     return i;
9322 }
9323 
9324 
9325 /*****************************************************************************
9326  **
9327  ** xcb_input_xi_query_pointer_reply_t * xcb_input_xi_query_pointer_reply
9328  **
9329  ** @param xcb_connection_t                     *c
9330  ** @param xcb_input_xi_query_pointer_cookie_t   cookie
9331  ** @param xcb_generic_error_t                 **e
9332  ** @returns xcb_input_xi_query_pointer_reply_t *
9333  **
9334  *****************************************************************************/
9335 
9336 xcb_input_xi_query_pointer_reply_t *
9337 xcb_input_xi_query_pointer_reply (xcb_connection_t                     *c  /**< */,
9338                                   xcb_input_xi_query_pointer_cookie_t   cookie  /**< */,
9339                                   xcb_generic_error_t                 **e  /**< */)
9340 {
9341     return (xcb_input_xi_query_pointer_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
9342 }
9343 
9344 
9345 /*****************************************************************************
9346  **
9347  ** xcb_void_cookie_t xcb_input_xi_warp_pointer_checked
9348  **
9349  ** @param xcb_connection_t      *c
9350  ** @param xcb_window_t           src_win
9351  ** @param xcb_window_t           dst_win
9352  ** @param xcb_input_fp1616_t     src_x
9353  ** @param xcb_input_fp1616_t     src_y
9354  ** @param uint16_t               src_width
9355  ** @param uint16_t               src_height
9356  ** @param xcb_input_fp1616_t     dst_x
9357  ** @param xcb_input_fp1616_t     dst_y
9358  ** @param xcb_input_device_id_t  deviceid
9359  ** @returns xcb_void_cookie_t
9360  **
9361  *****************************************************************************/
9362 
9363 xcb_void_cookie_t
9364 xcb_input_xi_warp_pointer_checked (xcb_connection_t      *c  /**< */,
9365                                    xcb_window_t           src_win  /**< */,
9366                                    xcb_window_t           dst_win  /**< */,
9367                                    xcb_input_fp1616_t     src_x  /**< */,
9368                                    xcb_input_fp1616_t     src_y  /**< */,
9369                                    uint16_t               src_width  /**< */,
9370                                    uint16_t               src_height  /**< */,
9371                                    xcb_input_fp1616_t     dst_x  /**< */,
9372                                    xcb_input_fp1616_t     dst_y  /**< */,
9373                                    xcb_input_device_id_t  deviceid  /**< */)
9374 {
9375     static const xcb_protocol_request_t xcb_req = {
9376         /* count */ 2,
9377         /* ext */ &xcb_input_id,
9378         /* opcode */ XCB_INPUT_XI_WARP_POINTER,
9379         /* isvoid */ 1
9380     };
9381 
9382     struct iovec xcb_parts[4];
9383     xcb_void_cookie_t xcb_ret;
9384     xcb_input_xi_warp_pointer_request_t xcb_out;
9385 
9386     xcb_out.src_win = src_win;
9387     xcb_out.dst_win = dst_win;
9388     xcb_out.src_x = src_x;
9389     xcb_out.src_y = src_y;
9390     xcb_out.src_width = src_width;
9391     xcb_out.src_height = src_height;
9392     xcb_out.dst_x = dst_x;
9393     xcb_out.dst_y = dst_y;
9394     xcb_out.deviceid = deviceid;
9395     memset(xcb_out.pad0, 0, 2);
9396 
9397     xcb_parts[2].iov_base = (char *) &xcb_out;
9398     xcb_parts[2].iov_len = sizeof(xcb_out);
9399     xcb_parts[3].iov_base = 0;
9400     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9401 
9402     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
9403     return xcb_ret;
9404 }
9405 
9406 
9407 /*****************************************************************************
9408  **
9409  ** xcb_void_cookie_t xcb_input_xi_warp_pointer
9410  **
9411  ** @param xcb_connection_t      *c
9412  ** @param xcb_window_t           src_win
9413  ** @param xcb_window_t           dst_win
9414  ** @param xcb_input_fp1616_t     src_x
9415  ** @param xcb_input_fp1616_t     src_y
9416  ** @param uint16_t               src_width
9417  ** @param uint16_t               src_height
9418  ** @param xcb_input_fp1616_t     dst_x
9419  ** @param xcb_input_fp1616_t     dst_y
9420  ** @param xcb_input_device_id_t  deviceid
9421  ** @returns xcb_void_cookie_t
9422  **
9423  *****************************************************************************/
9424 
9425 xcb_void_cookie_t
9426 xcb_input_xi_warp_pointer (xcb_connection_t      *c  /**< */,
9427                            xcb_window_t           src_win  /**< */,
9428                            xcb_window_t           dst_win  /**< */,
9429                            xcb_input_fp1616_t     src_x  /**< */,
9430                            xcb_input_fp1616_t     src_y  /**< */,
9431                            uint16_t               src_width  /**< */,
9432                            uint16_t               src_height  /**< */,
9433                            xcb_input_fp1616_t     dst_x  /**< */,
9434                            xcb_input_fp1616_t     dst_y  /**< */,
9435                            xcb_input_device_id_t  deviceid  /**< */)
9436 {
9437     static const xcb_protocol_request_t xcb_req = {
9438         /* count */ 2,
9439         /* ext */ &xcb_input_id,
9440         /* opcode */ XCB_INPUT_XI_WARP_POINTER,
9441         /* isvoid */ 1
9442     };
9443 
9444     struct iovec xcb_parts[4];
9445     xcb_void_cookie_t xcb_ret;
9446     xcb_input_xi_warp_pointer_request_t xcb_out;
9447 
9448     xcb_out.src_win = src_win;
9449     xcb_out.dst_win = dst_win;
9450     xcb_out.src_x = src_x;
9451     xcb_out.src_y = src_y;
9452     xcb_out.src_width = src_width;
9453     xcb_out.src_height = src_height;
9454     xcb_out.dst_x = dst_x;
9455     xcb_out.dst_y = dst_y;
9456     xcb_out.deviceid = deviceid;
9457     memset(xcb_out.pad0, 0, 2);
9458 
9459     xcb_parts[2].iov_base = (char *) &xcb_out;
9460     xcb_parts[2].iov_len = sizeof(xcb_out);
9461     xcb_parts[3].iov_base = 0;
9462     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9463 
9464     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
9465     return xcb_ret;
9466 }
9467 
9468 
9469 /*****************************************************************************
9470  **
9471  ** xcb_void_cookie_t xcb_input_xi_change_cursor_checked
9472  **
9473  ** @param xcb_connection_t      *c
9474  ** @param xcb_window_t           window
9475  ** @param xcb_cursor_t           cursor
9476  ** @param xcb_input_device_id_t  deviceid
9477  ** @returns xcb_void_cookie_t
9478  **
9479  *****************************************************************************/
9480 
9481 xcb_void_cookie_t
9482 xcb_input_xi_change_cursor_checked (xcb_connection_t      *c  /**< */,
9483                                     xcb_window_t           window  /**< */,
9484                                     xcb_cursor_t           cursor  /**< */,
9485                                     xcb_input_device_id_t  deviceid  /**< */)
9486 {
9487     static const xcb_protocol_request_t xcb_req = {
9488         /* count */ 2,
9489         /* ext */ &xcb_input_id,
9490         /* opcode */ XCB_INPUT_XI_CHANGE_CURSOR,
9491         /* isvoid */ 1
9492     };
9493 
9494     struct iovec xcb_parts[4];
9495     xcb_void_cookie_t xcb_ret;
9496     xcb_input_xi_change_cursor_request_t xcb_out;
9497 
9498     xcb_out.window = window;
9499     xcb_out.cursor = cursor;
9500     xcb_out.deviceid = deviceid;
9501     memset(xcb_out.pad0, 0, 2);
9502 
9503     xcb_parts[2].iov_base = (char *) &xcb_out;
9504     xcb_parts[2].iov_len = sizeof(xcb_out);
9505     xcb_parts[3].iov_base = 0;
9506     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9507 
9508     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
9509     return xcb_ret;
9510 }
9511 
9512 
9513 /*****************************************************************************
9514  **
9515  ** xcb_void_cookie_t xcb_input_xi_change_cursor
9516  **
9517  ** @param xcb_connection_t      *c
9518  ** @param xcb_window_t           window
9519  ** @param xcb_cursor_t           cursor
9520  ** @param xcb_input_device_id_t  deviceid
9521  ** @returns xcb_void_cookie_t
9522  **
9523  *****************************************************************************/
9524 
9525 xcb_void_cookie_t
9526 xcb_input_xi_change_cursor (xcb_connection_t      *c  /**< */,
9527                             xcb_window_t           window  /**< */,
9528                             xcb_cursor_t           cursor  /**< */,
9529                             xcb_input_device_id_t  deviceid  /**< */)
9530 {
9531     static const xcb_protocol_request_t xcb_req = {
9532         /* count */ 2,
9533         /* ext */ &xcb_input_id,
9534         /* opcode */ XCB_INPUT_XI_CHANGE_CURSOR,
9535         /* isvoid */ 1
9536     };
9537 
9538     struct iovec xcb_parts[4];
9539     xcb_void_cookie_t xcb_ret;
9540     xcb_input_xi_change_cursor_request_t xcb_out;
9541 
9542     xcb_out.window = window;
9543     xcb_out.cursor = cursor;
9544     xcb_out.deviceid = deviceid;
9545     memset(xcb_out.pad0, 0, 2);
9546 
9547     xcb_parts[2].iov_base = (char *) &xcb_out;
9548     xcb_parts[2].iov_len = sizeof(xcb_out);
9549     xcb_parts[3].iov_base = 0;
9550     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9551 
9552     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
9553     return xcb_ret;
9554 }
9555 
9556 int
9557 xcb_input_add_master_sizeof (const void  *_buffer  /**< */)
9558 {
9559     char *xcb_tmp = (char *)_buffer;
9560     const xcb_input_add_master_t *_aux = (xcb_input_add_master_t *)_buffer;
9561     unsigned int xcb_buffer_len = 0;
9562     unsigned int xcb_block_len = 0;
9563     unsigned int xcb_pad = 0;
9564     unsigned int xcb_align_to = 0;
9565 
9566 
9567     xcb_block_len += sizeof(xcb_input_add_master_t);
9568     xcb_tmp += xcb_block_len;
9569     xcb_buffer_len += xcb_block_len;
9570     xcb_block_len = 0;
9571     /* name */
9572     xcb_block_len += _aux->name_len * sizeof(char);
9573     xcb_tmp += xcb_block_len;
9574     xcb_align_to = ALIGNOF(char);
9575     /* insert padding */
9576     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
9577     xcb_buffer_len += xcb_block_len + xcb_pad;
9578     if (0 != xcb_pad) {
9579         xcb_tmp += xcb_pad;
9580         xcb_pad = 0;
9581     }
9582     xcb_block_len = 0;
9583 
9584     return xcb_buffer_len;
9585 }
9586 
9587 
9588 /*****************************************************************************
9589  **
9590  ** char * xcb_input_add_master_name
9591  **
9592  ** @param const xcb_input_add_master_t *R
9593  ** @returns char *
9594  **
9595  *****************************************************************************/
9596 
9597 char *
9598 xcb_input_add_master_name (const xcb_input_add_master_t *R  /**< */)
9599 {
9600     return (char *) (R + 1);
9601 }
9602 
9603 
9604 /*****************************************************************************
9605  **
9606  ** int xcb_input_add_master_name_length
9607  **
9608  ** @param const xcb_input_add_master_t *R
9609  ** @returns int
9610  **
9611  *****************************************************************************/
9612 
9613 int
9614 xcb_input_add_master_name_length (const xcb_input_add_master_t *R  /**< */)
9615 {
9616     return R->name_len;
9617 }
9618 
9619 
9620 /*****************************************************************************
9621  **
9622  ** xcb_generic_iterator_t xcb_input_add_master_name_end
9623  **
9624  ** @param const xcb_input_add_master_t *R
9625  ** @returns xcb_generic_iterator_t
9626  **
9627  *****************************************************************************/
9628 
9629 xcb_generic_iterator_t
9630 xcb_input_add_master_name_end (const xcb_input_add_master_t *R  /**< */)
9631 {
9632     xcb_generic_iterator_t i;
9633     i.data = ((char *) (R + 1)) + (R->name_len);
9634     i.rem = 0;
9635     i.index = (char *) i.data - (char *) R;
9636     return i;
9637 }
9638 
9639 
9640 /*****************************************************************************
9641  **
9642  ** void xcb_input_add_master_next
9643  **
9644  ** @param xcb_input_add_master_iterator_t *i
9645  ** @returns void
9646  **
9647  *****************************************************************************/
9648 
9649 void
9650 xcb_input_add_master_next (xcb_input_add_master_iterator_t *i  /**< */)
9651 {
9652     xcb_input_add_master_t *R = i->data;
9653     xcb_generic_iterator_t child;
9654     child.data = (xcb_input_add_master_t *)(((char *)R) + xcb_input_add_master_sizeof(R));
9655     i->index = (char *) child.data - (char *) i->data;
9656     --i->rem;
9657     i->data = (xcb_input_add_master_t *) child.data;
9658 }
9659 
9660 
9661 /*****************************************************************************
9662  **
9663  ** xcb_generic_iterator_t xcb_input_add_master_end
9664  **
9665  ** @param xcb_input_add_master_iterator_t i
9666  ** @returns xcb_generic_iterator_t
9667  **
9668  *****************************************************************************/
9669 
9670 xcb_generic_iterator_t
9671 xcb_input_add_master_end (xcb_input_add_master_iterator_t i  /**< */)
9672 {
9673     xcb_generic_iterator_t ret;
9674     while(i.rem > 0)
9675         xcb_input_add_master_next(&i);
9676     ret.data = i.data;
9677     ret.rem = i.rem;
9678     ret.index = i.index;
9679     return ret;
9680 }
9681 
9682 
9683 /*****************************************************************************
9684  **
9685  ** void xcb_input_remove_master_next
9686  **
9687  ** @param xcb_input_remove_master_iterator_t *i
9688  ** @returns void
9689  **
9690  *****************************************************************************/
9691 
9692 void
9693 xcb_input_remove_master_next (xcb_input_remove_master_iterator_t *i  /**< */)
9694 {
9695     --i->rem;
9696     ++i->data;
9697     i->index += sizeof(xcb_input_remove_master_t);
9698 }
9699 
9700 
9701 /*****************************************************************************
9702  **
9703  ** xcb_generic_iterator_t xcb_input_remove_master_end
9704  **
9705  ** @param xcb_input_remove_master_iterator_t i
9706  ** @returns xcb_generic_iterator_t
9707  **
9708  *****************************************************************************/
9709 
9710 xcb_generic_iterator_t
9711 xcb_input_remove_master_end (xcb_input_remove_master_iterator_t i  /**< */)
9712 {
9713     xcb_generic_iterator_t ret;
9714     ret.data = i.data + i.rem;
9715     ret.index = i.index + ((char *) ret.data - (char *) i.data);
9716     ret.rem = 0;
9717     return ret;
9718 }
9719 
9720 
9721 /*****************************************************************************
9722  **
9723  ** void xcb_input_attach_slave_next
9724  **
9725  ** @param xcb_input_attach_slave_iterator_t *i
9726  ** @returns void
9727  **
9728  *****************************************************************************/
9729 
9730 void
9731 xcb_input_attach_slave_next (xcb_input_attach_slave_iterator_t *i  /**< */)
9732 {
9733     --i->rem;
9734     ++i->data;
9735     i->index += sizeof(xcb_input_attach_slave_t);
9736 }
9737 
9738 
9739 /*****************************************************************************
9740  **
9741  ** xcb_generic_iterator_t xcb_input_attach_slave_end
9742  **
9743  ** @param xcb_input_attach_slave_iterator_t i
9744  ** @returns xcb_generic_iterator_t
9745  **
9746  *****************************************************************************/
9747 
9748 xcb_generic_iterator_t
9749 xcb_input_attach_slave_end (xcb_input_attach_slave_iterator_t i  /**< */)
9750 {
9751     xcb_generic_iterator_t ret;
9752     ret.data = i.data + i.rem;
9753     ret.index = i.index + ((char *) ret.data - (char *) i.data);
9754     ret.rem = 0;
9755     return ret;
9756 }
9757 
9758 
9759 /*****************************************************************************
9760  **
9761  ** void xcb_input_detach_slave_next
9762  **
9763  ** @param xcb_input_detach_slave_iterator_t *i
9764  ** @returns void
9765  **
9766  *****************************************************************************/
9767 
9768 void
9769 xcb_input_detach_slave_next (xcb_input_detach_slave_iterator_t *i  /**< */)
9770 {
9771     --i->rem;
9772     ++i->data;
9773     i->index += sizeof(xcb_input_detach_slave_t);
9774 }
9775 
9776 
9777 /*****************************************************************************
9778  **
9779  ** xcb_generic_iterator_t xcb_input_detach_slave_end
9780  **
9781  ** @param xcb_input_detach_slave_iterator_t i
9782  ** @returns xcb_generic_iterator_t
9783  **
9784  *****************************************************************************/
9785 
9786 xcb_generic_iterator_t
9787 xcb_input_detach_slave_end (xcb_input_detach_slave_iterator_t i  /**< */)
9788 {
9789     xcb_generic_iterator_t ret;
9790     ret.data = i.data + i.rem;
9791     ret.index = i.index + ((char *) ret.data - (char *) i.data);
9792     ret.rem = 0;
9793     return ret;
9794 }
9795 
9796 int
9797 xcb_input_hierarchy_change_sizeof (const void  *_buffer  /**< */)
9798 {
9799     char *xcb_tmp = (char *)_buffer;
9800     const xcb_input_hierarchy_change_t *_aux = (xcb_input_hierarchy_change_t *)_buffer;
9801     unsigned int xcb_buffer_len = 0;
9802     unsigned int xcb_block_len = 0;
9803     unsigned int xcb_pad = 0;
9804     unsigned int xcb_align_to = 0;
9805 
9806 
9807     xcb_block_len += sizeof(xcb_input_hierarchy_change_t);
9808     xcb_tmp += xcb_block_len;
9809     xcb_buffer_len += xcb_block_len;
9810     xcb_block_len = 0;
9811     /* uninterpreted_data */
9812     xcb_block_len += ((_aux->len * 4) - 4) * sizeof(uint8_t);
9813     xcb_tmp += xcb_block_len;
9814     xcb_align_to = ALIGNOF(uint8_t);
9815     /* insert padding */
9816     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
9817     xcb_buffer_len += xcb_block_len + xcb_pad;
9818     if (0 != xcb_pad) {
9819         xcb_tmp += xcb_pad;
9820         xcb_pad = 0;
9821     }
9822     xcb_block_len = 0;
9823 
9824     return xcb_buffer_len;
9825 }
9826 
9827 
9828 /*****************************************************************************
9829  **
9830  ** uint8_t * xcb_input_hierarchy_change_uninterpreted_data
9831  **
9832  ** @param const xcb_input_hierarchy_change_t *R
9833  ** @returns uint8_t *
9834  **
9835  *****************************************************************************/
9836 
9837 uint8_t *
9838 xcb_input_hierarchy_change_uninterpreted_data (const xcb_input_hierarchy_change_t *R  /**< */)
9839 {
9840     return (uint8_t *) (R + 1);
9841 }
9842 
9843 
9844 /*****************************************************************************
9845  **
9846  ** int xcb_input_hierarchy_change_uninterpreted_data_length
9847  **
9848  ** @param const xcb_input_hierarchy_change_t *R
9849  ** @returns int
9850  **
9851  *****************************************************************************/
9852 
9853 int
9854 xcb_input_hierarchy_change_uninterpreted_data_length (const xcb_input_hierarchy_change_t *R  /**< */)
9855 {
9856     return ((R->len * 4) - 4);
9857 }
9858 
9859 
9860 /*****************************************************************************
9861  **
9862  ** xcb_generic_iterator_t xcb_input_hierarchy_change_uninterpreted_data_end
9863  **
9864  ** @param const xcb_input_hierarchy_change_t *R
9865  ** @returns xcb_generic_iterator_t
9866  **
9867  *****************************************************************************/
9868 
9869 xcb_generic_iterator_t
9870 xcb_input_hierarchy_change_uninterpreted_data_end (const xcb_input_hierarchy_change_t *R  /**< */)
9871 {
9872     xcb_generic_iterator_t i;
9873     i.data = ((uint8_t *) (R + 1)) + (((R->len * 4) - 4));
9874     i.rem = 0;
9875     i.index = (char *) i.data - (char *) R;
9876     return i;
9877 }
9878 
9879 
9880 /*****************************************************************************
9881  **
9882  ** void xcb_input_hierarchy_change_next
9883  **
9884  ** @param xcb_input_hierarchy_change_iterator_t *i
9885  ** @returns void
9886  **
9887  *****************************************************************************/
9888 
9889 void
9890 xcb_input_hierarchy_change_next (xcb_input_hierarchy_change_iterator_t *i  /**< */)
9891 {
9892     xcb_input_hierarchy_change_t *R = i->data;
9893     xcb_generic_iterator_t child;
9894     child.data = (xcb_input_hierarchy_change_t *)(((char *)R) + xcb_input_hierarchy_change_sizeof(R));
9895     i->index = (char *) child.data - (char *) i->data;
9896     --i->rem;
9897     i->data = (xcb_input_hierarchy_change_t *) child.data;
9898 }
9899 
9900 
9901 /*****************************************************************************
9902  **
9903  ** xcb_generic_iterator_t xcb_input_hierarchy_change_end
9904  **
9905  ** @param xcb_input_hierarchy_change_iterator_t i
9906  ** @returns xcb_generic_iterator_t
9907  **
9908  *****************************************************************************/
9909 
9910 xcb_generic_iterator_t
9911 xcb_input_hierarchy_change_end (xcb_input_hierarchy_change_iterator_t i  /**< */)
9912 {
9913     xcb_generic_iterator_t ret;
9914     while(i.rem > 0)
9915         xcb_input_hierarchy_change_next(&i);
9916     ret.data = i.data;
9917     ret.rem = i.rem;
9918     ret.index = i.index;
9919     return ret;
9920 }
9921 
9922 int
9923 xcb_input_xi_change_hierarchy_sizeof (const void  *_buffer  /**< */)
9924 {
9925     char *xcb_tmp = (char *)_buffer;
9926     const xcb_input_xi_change_hierarchy_request_t *_aux = (xcb_input_xi_change_hierarchy_request_t *)_buffer;
9927     unsigned int xcb_buffer_len = 0;
9928     unsigned int xcb_block_len = 0;
9929     unsigned int xcb_pad = 0;
9930     unsigned int xcb_align_to = 0;
9931 
9932     unsigned int i;
9933     unsigned int xcb_tmp_len;
9934 
9935     xcb_block_len += sizeof(xcb_input_xi_change_hierarchy_request_t);
9936     xcb_tmp += xcb_block_len;
9937     xcb_buffer_len += xcb_block_len;
9938     xcb_block_len = 0;
9939     /* changes */
9940     for(i=0; i<_aux->num_changes; i++) {
9941         xcb_tmp_len = xcb_input_hierarchy_change_sizeof(xcb_tmp);
9942         xcb_block_len += xcb_tmp_len;
9943         xcb_tmp += xcb_tmp_len;
9944     }
9945     xcb_align_to = ALIGNOF(xcb_input_hierarchy_change_t);
9946     /* insert padding */
9947     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
9948     xcb_buffer_len += xcb_block_len + xcb_pad;
9949     if (0 != xcb_pad) {
9950         xcb_tmp += xcb_pad;
9951         xcb_pad = 0;
9952     }
9953     xcb_block_len = 0;
9954 
9955     return xcb_buffer_len;
9956 }
9957 
9958 
9959 /*****************************************************************************
9960  **
9961  ** xcb_void_cookie_t xcb_input_xi_change_hierarchy_checked
9962  **
9963  ** @param xcb_connection_t                   *c
9964  ** @param uint8_t                             num_changes
9965  ** @param const xcb_input_hierarchy_change_t *changes
9966  ** @returns xcb_void_cookie_t
9967  **
9968  *****************************************************************************/
9969 
9970 xcb_void_cookie_t
9971 xcb_input_xi_change_hierarchy_checked (xcb_connection_t                   *c  /**< */,
9972                                        uint8_t                             num_changes  /**< */,
9973                                        const xcb_input_hierarchy_change_t *changes  /**< */)
9974 {
9975     static const xcb_protocol_request_t xcb_req = {
9976         /* count */ 4,
9977         /* ext */ &xcb_input_id,
9978         /* opcode */ XCB_INPUT_XI_CHANGE_HIERARCHY,
9979         /* isvoid */ 1
9980     };
9981 
9982     struct iovec xcb_parts[6];
9983     xcb_void_cookie_t xcb_ret;
9984     xcb_input_xi_change_hierarchy_request_t xcb_out;
9985     unsigned int i;
9986     unsigned int xcb_tmp_len;
9987     char *xcb_tmp;
9988 
9989     xcb_out.num_changes = num_changes;
9990 
9991     xcb_parts[2].iov_base = (char *) &xcb_out;
9992     xcb_parts[2].iov_len = sizeof(xcb_out);
9993     xcb_parts[3].iov_base = 0;
9994     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9995     /* xcb_input_hierarchy_change_t changes */
9996     xcb_parts[4].iov_base = (char *) changes;
9997     xcb_parts[4].iov_len = 0;
9998     xcb_tmp = (char *)changes;
9999     for(i=0; i<num_changes; i++) {
10000         xcb_tmp_len = xcb_input_hierarchy_change_sizeof(xcb_tmp);
10001         xcb_parts[4].iov_len += xcb_tmp_len;
10002         xcb_tmp += xcb_tmp_len;
10003     }
10004     xcb_parts[5].iov_base = 0;
10005     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
10006 
10007     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10008     return xcb_ret;
10009 }
10010 
10011 
10012 /*****************************************************************************
10013  **
10014  ** xcb_void_cookie_t xcb_input_xi_change_hierarchy
10015  **
10016  ** @param xcb_connection_t                   *c
10017  ** @param uint8_t                             num_changes
10018  ** @param const xcb_input_hierarchy_change_t *changes
10019  ** @returns xcb_void_cookie_t
10020  **
10021  *****************************************************************************/
10022 
10023 xcb_void_cookie_t
10024 xcb_input_xi_change_hierarchy (xcb_connection_t                   *c  /**< */,
10025                                uint8_t                             num_changes  /**< */,
10026                                const xcb_input_hierarchy_change_t *changes  /**< */)
10027 {
10028     static const xcb_protocol_request_t xcb_req = {
10029         /* count */ 4,
10030         /* ext */ &xcb_input_id,
10031         /* opcode */ XCB_INPUT_XI_CHANGE_HIERARCHY,
10032         /* isvoid */ 1
10033     };
10034 
10035     struct iovec xcb_parts[6];
10036     xcb_void_cookie_t xcb_ret;
10037     xcb_input_xi_change_hierarchy_request_t xcb_out;
10038     unsigned int i;
10039     unsigned int xcb_tmp_len;
10040     char *xcb_tmp;
10041 
10042     xcb_out.num_changes = num_changes;
10043 
10044     xcb_parts[2].iov_base = (char *) &xcb_out;
10045     xcb_parts[2].iov_len = sizeof(xcb_out);
10046     xcb_parts[3].iov_base = 0;
10047     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10048     /* xcb_input_hierarchy_change_t changes */
10049     xcb_parts[4].iov_base = (char *) changes;
10050     xcb_parts[4].iov_len = 0;
10051     xcb_tmp = (char *)changes;
10052     for(i=0; i<num_changes; i++) {
10053         xcb_tmp_len = xcb_input_hierarchy_change_sizeof(xcb_tmp);
10054         xcb_parts[4].iov_len += xcb_tmp_len;
10055         xcb_tmp += xcb_tmp_len;
10056     }
10057     xcb_parts[5].iov_base = 0;
10058     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
10059 
10060     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10061     return xcb_ret;
10062 }
10063 
10064 
10065 /*****************************************************************************
10066  **
10067  ** xcb_void_cookie_t xcb_input_xi_set_client_pointer_checked
10068  **
10069  ** @param xcb_connection_t      *c
10070  ** @param xcb_window_t           window
10071  ** @param xcb_input_device_id_t  deviceid
10072  ** @returns xcb_void_cookie_t
10073  **
10074  *****************************************************************************/
10075 
10076 xcb_void_cookie_t
10077 xcb_input_xi_set_client_pointer_checked (xcb_connection_t      *c  /**< */,
10078                                          xcb_window_t           window  /**< */,
10079                                          xcb_input_device_id_t  deviceid  /**< */)
10080 {
10081     static const xcb_protocol_request_t xcb_req = {
10082         /* count */ 2,
10083         /* ext */ &xcb_input_id,
10084         /* opcode */ XCB_INPUT_XI_SET_CLIENT_POINTER,
10085         /* isvoid */ 1
10086     };
10087 
10088     struct iovec xcb_parts[4];
10089     xcb_void_cookie_t xcb_ret;
10090     xcb_input_xi_set_client_pointer_request_t xcb_out;
10091 
10092     xcb_out.window = window;
10093     xcb_out.deviceid = deviceid;
10094     memset(xcb_out.pad0, 0, 2);
10095 
10096     xcb_parts[2].iov_base = (char *) &xcb_out;
10097     xcb_parts[2].iov_len = sizeof(xcb_out);
10098     xcb_parts[3].iov_base = 0;
10099     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10100 
10101     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10102     return xcb_ret;
10103 }
10104 
10105 
10106 /*****************************************************************************
10107  **
10108  ** xcb_void_cookie_t xcb_input_xi_set_client_pointer
10109  **
10110  ** @param xcb_connection_t      *c
10111  ** @param xcb_window_t           window
10112  ** @param xcb_input_device_id_t  deviceid
10113  ** @returns xcb_void_cookie_t
10114  **
10115  *****************************************************************************/
10116 
10117 xcb_void_cookie_t
10118 xcb_input_xi_set_client_pointer (xcb_connection_t      *c  /**< */,
10119                                  xcb_window_t           window  /**< */,
10120                                  xcb_input_device_id_t  deviceid  /**< */)
10121 {
10122     static const xcb_protocol_request_t xcb_req = {
10123         /* count */ 2,
10124         /* ext */ &xcb_input_id,
10125         /* opcode */ XCB_INPUT_XI_SET_CLIENT_POINTER,
10126         /* isvoid */ 1
10127     };
10128 
10129     struct iovec xcb_parts[4];
10130     xcb_void_cookie_t xcb_ret;
10131     xcb_input_xi_set_client_pointer_request_t xcb_out;
10132 
10133     xcb_out.window = window;
10134     xcb_out.deviceid = deviceid;
10135     memset(xcb_out.pad0, 0, 2);
10136 
10137     xcb_parts[2].iov_base = (char *) &xcb_out;
10138     xcb_parts[2].iov_len = sizeof(xcb_out);
10139     xcb_parts[3].iov_base = 0;
10140     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10141 
10142     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10143     return xcb_ret;
10144 }
10145 
10146 
10147 /*****************************************************************************
10148  **
10149  ** xcb_input_xi_get_client_pointer_cookie_t xcb_input_xi_get_client_pointer
10150  **
10151  ** @param xcb_connection_t *c
10152  ** @param xcb_window_t      window
10153  ** @returns xcb_input_xi_get_client_pointer_cookie_t
10154  **
10155  *****************************************************************************/
10156 
10157 xcb_input_xi_get_client_pointer_cookie_t
10158 xcb_input_xi_get_client_pointer (xcb_connection_t *c  /**< */,
10159                                  xcb_window_t      window  /**< */)
10160 {
10161     static const xcb_protocol_request_t xcb_req = {
10162         /* count */ 2,
10163         /* ext */ &xcb_input_id,
10164         /* opcode */ XCB_INPUT_XI_GET_CLIENT_POINTER,
10165         /* isvoid */ 0
10166     };
10167 
10168     struct iovec xcb_parts[4];
10169     xcb_input_xi_get_client_pointer_cookie_t xcb_ret;
10170     xcb_input_xi_get_client_pointer_request_t xcb_out;
10171 
10172     xcb_out.window = window;
10173 
10174     xcb_parts[2].iov_base = (char *) &xcb_out;
10175     xcb_parts[2].iov_len = sizeof(xcb_out);
10176     xcb_parts[3].iov_base = 0;
10177     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10178 
10179     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10180     return xcb_ret;
10181 }
10182 
10183 
10184 /*****************************************************************************
10185  **
10186  ** xcb_input_xi_get_client_pointer_cookie_t xcb_input_xi_get_client_pointer_unchecked
10187  **
10188  ** @param xcb_connection_t *c
10189  ** @param xcb_window_t      window
10190  ** @returns xcb_input_xi_get_client_pointer_cookie_t
10191  **
10192  *****************************************************************************/
10193 
10194 xcb_input_xi_get_client_pointer_cookie_t
10195 xcb_input_xi_get_client_pointer_unchecked (xcb_connection_t *c  /**< */,
10196                                            xcb_window_t      window  /**< */)
10197 {
10198     static const xcb_protocol_request_t xcb_req = {
10199         /* count */ 2,
10200         /* ext */ &xcb_input_id,
10201         /* opcode */ XCB_INPUT_XI_GET_CLIENT_POINTER,
10202         /* isvoid */ 0
10203     };
10204 
10205     struct iovec xcb_parts[4];
10206     xcb_input_xi_get_client_pointer_cookie_t xcb_ret;
10207     xcb_input_xi_get_client_pointer_request_t xcb_out;
10208 
10209     xcb_out.window = window;
10210 
10211     xcb_parts[2].iov_base = (char *) &xcb_out;
10212     xcb_parts[2].iov_len = sizeof(xcb_out);
10213     xcb_parts[3].iov_base = 0;
10214     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10215 
10216     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10217     return xcb_ret;
10218 }
10219 
10220 
10221 /*****************************************************************************
10222  **
10223  ** xcb_input_xi_get_client_pointer_reply_t * xcb_input_xi_get_client_pointer_reply
10224  **
10225  ** @param xcb_connection_t                          *c
10226  ** @param xcb_input_xi_get_client_pointer_cookie_t   cookie
10227  ** @param xcb_generic_error_t                      **e
10228  ** @returns xcb_input_xi_get_client_pointer_reply_t *
10229  **
10230  *****************************************************************************/
10231 
10232 xcb_input_xi_get_client_pointer_reply_t *
10233 xcb_input_xi_get_client_pointer_reply (xcb_connection_t                          *c  /**< */,
10234                                        xcb_input_xi_get_client_pointer_cookie_t   cookie  /**< */,
10235                                        xcb_generic_error_t                      **e  /**< */)
10236 {
10237     return (xcb_input_xi_get_client_pointer_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
10238 }
10239 
10240 int
10241 xcb_input_event_mask_sizeof (const void  *_buffer  /**< */)
10242 {
10243     char *xcb_tmp = (char *)_buffer;
10244     const xcb_input_event_mask_t *_aux = (xcb_input_event_mask_t *)_buffer;
10245     unsigned int xcb_buffer_len = 0;
10246     unsigned int xcb_block_len = 0;
10247     unsigned int xcb_pad = 0;
10248     unsigned int xcb_align_to = 0;
10249 
10250 
10251     xcb_block_len += sizeof(xcb_input_event_mask_t);
10252     xcb_tmp += xcb_block_len;
10253     xcb_buffer_len += xcb_block_len;
10254     xcb_block_len = 0;
10255     /* mask */
10256     xcb_block_len += _aux->mask_len * sizeof(uint32_t);
10257     xcb_tmp += xcb_block_len;
10258     xcb_align_to = ALIGNOF(uint32_t);
10259     /* insert padding */
10260     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10261     xcb_buffer_len += xcb_block_len + xcb_pad;
10262     if (0 != xcb_pad) {
10263         xcb_tmp += xcb_pad;
10264         xcb_pad = 0;
10265     }
10266     xcb_block_len = 0;
10267 
10268     return xcb_buffer_len;
10269 }
10270 
10271 
10272 /*****************************************************************************
10273  **
10274  ** uint32_t * xcb_input_event_mask_mask
10275  **
10276  ** @param const xcb_input_event_mask_t *R
10277  ** @returns uint32_t *
10278  **
10279  *****************************************************************************/
10280 
10281 uint32_t *
10282 xcb_input_event_mask_mask (const xcb_input_event_mask_t *R  /**< */)
10283 {
10284     return (uint32_t *) (R + 1);
10285 }
10286 
10287 
10288 /*****************************************************************************
10289  **
10290  ** int xcb_input_event_mask_mask_length
10291  **
10292  ** @param const xcb_input_event_mask_t *R
10293  ** @returns int
10294  **
10295  *****************************************************************************/
10296 
10297 int
10298 xcb_input_event_mask_mask_length (const xcb_input_event_mask_t *R  /**< */)
10299 {
10300     return R->mask_len;
10301 }
10302 
10303 
10304 /*****************************************************************************
10305  **
10306  ** xcb_generic_iterator_t xcb_input_event_mask_mask_end
10307  **
10308  ** @param const xcb_input_event_mask_t *R
10309  ** @returns xcb_generic_iterator_t
10310  **
10311  *****************************************************************************/
10312 
10313 xcb_generic_iterator_t
10314 xcb_input_event_mask_mask_end (const xcb_input_event_mask_t *R  /**< */)
10315 {
10316     xcb_generic_iterator_t i;
10317     i.data = ((uint32_t *) (R + 1)) + (R->mask_len);
10318     i.rem = 0;
10319     i.index = (char *) i.data - (char *) R;
10320     return i;
10321 }
10322 
10323 
10324 /*****************************************************************************
10325  **
10326  ** void xcb_input_event_mask_next
10327  **
10328  ** @param xcb_input_event_mask_iterator_t *i
10329  ** @returns void
10330  **
10331  *****************************************************************************/
10332 
10333 void
10334 xcb_input_event_mask_next (xcb_input_event_mask_iterator_t *i  /**< */)
10335 {
10336     xcb_input_event_mask_t *R = i->data;
10337     xcb_generic_iterator_t child;
10338     child.data = (xcb_input_event_mask_t *)(((char *)R) + xcb_input_event_mask_sizeof(R));
10339     i->index = (char *) child.data - (char *) i->data;
10340     --i->rem;
10341     i->data = (xcb_input_event_mask_t *) child.data;
10342 }
10343 
10344 
10345 /*****************************************************************************
10346  **
10347  ** xcb_generic_iterator_t xcb_input_event_mask_end
10348  **
10349  ** @param xcb_input_event_mask_iterator_t i
10350  ** @returns xcb_generic_iterator_t
10351  **
10352  *****************************************************************************/
10353 
10354 xcb_generic_iterator_t
10355 xcb_input_event_mask_end (xcb_input_event_mask_iterator_t i  /**< */)
10356 {
10357     xcb_generic_iterator_t ret;
10358     while(i.rem > 0)
10359         xcb_input_event_mask_next(&i);
10360     ret.data = i.data;
10361     ret.rem = i.rem;
10362     ret.index = i.index;
10363     return ret;
10364 }
10365 
10366 int
10367 xcb_input_xi_select_events_sizeof (const void  *_buffer  /**< */)
10368 {
10369     char *xcb_tmp = (char *)_buffer;
10370     const xcb_input_xi_select_events_request_t *_aux = (xcb_input_xi_select_events_request_t *)_buffer;
10371     unsigned int xcb_buffer_len = 0;
10372     unsigned int xcb_block_len = 0;
10373     unsigned int xcb_pad = 0;
10374     unsigned int xcb_align_to = 0;
10375 
10376     unsigned int i;
10377     unsigned int xcb_tmp_len;
10378 
10379     xcb_block_len += sizeof(xcb_input_xi_select_events_request_t);
10380     xcb_tmp += xcb_block_len;
10381     xcb_buffer_len += xcb_block_len;
10382     xcb_block_len = 0;
10383     /* masks */
10384     for(i=0; i<_aux->num_mask; i++) {
10385         xcb_tmp_len = xcb_input_event_mask_sizeof(xcb_tmp);
10386         xcb_block_len += xcb_tmp_len;
10387         xcb_tmp += xcb_tmp_len;
10388     }
10389     xcb_align_to = ALIGNOF(xcb_input_event_mask_t);
10390     /* insert padding */
10391     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10392     xcb_buffer_len += xcb_block_len + xcb_pad;
10393     if (0 != xcb_pad) {
10394         xcb_tmp += xcb_pad;
10395         xcb_pad = 0;
10396     }
10397     xcb_block_len = 0;
10398 
10399     return xcb_buffer_len;
10400 }
10401 
10402 
10403 /*****************************************************************************
10404  **
10405  ** xcb_void_cookie_t xcb_input_xi_select_events_checked
10406  **
10407  ** @param xcb_connection_t             *c
10408  ** @param xcb_window_t                  window
10409  ** @param uint16_t                      num_mask
10410  ** @param const xcb_input_event_mask_t *masks
10411  ** @returns xcb_void_cookie_t
10412  **
10413  *****************************************************************************/
10414 
10415 xcb_void_cookie_t
10416 xcb_input_xi_select_events_checked (xcb_connection_t             *c  /**< */,
10417                                     xcb_window_t                  window  /**< */,
10418                                     uint16_t                      num_mask  /**< */,
10419                                     const xcb_input_event_mask_t *masks  /**< */)
10420 {
10421     static const xcb_protocol_request_t xcb_req = {
10422         /* count */ 4,
10423         /* ext */ &xcb_input_id,
10424         /* opcode */ XCB_INPUT_XI_SELECT_EVENTS,
10425         /* isvoid */ 1
10426     };
10427 
10428     struct iovec xcb_parts[6];
10429     xcb_void_cookie_t xcb_ret;
10430     xcb_input_xi_select_events_request_t xcb_out;
10431     unsigned int i;
10432     unsigned int xcb_tmp_len;
10433     char *xcb_tmp;
10434 
10435     xcb_out.window = window;
10436     xcb_out.num_mask = num_mask;
10437     memset(xcb_out.pad0, 0, 2);
10438 
10439     xcb_parts[2].iov_base = (char *) &xcb_out;
10440     xcb_parts[2].iov_len = sizeof(xcb_out);
10441     xcb_parts[3].iov_base = 0;
10442     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10443     /* xcb_input_event_mask_t masks */
10444     xcb_parts[4].iov_base = (char *) masks;
10445     xcb_parts[4].iov_len = 0;
10446     xcb_tmp = (char *)masks;
10447     for(i=0; i<num_mask; i++) {
10448         xcb_tmp_len = xcb_input_event_mask_sizeof(xcb_tmp);
10449         xcb_parts[4].iov_len += xcb_tmp_len;
10450         xcb_tmp += xcb_tmp_len;
10451     }
10452     xcb_parts[5].iov_base = 0;
10453     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
10454 
10455     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10456     return xcb_ret;
10457 }
10458 
10459 
10460 /*****************************************************************************
10461  **
10462  ** xcb_void_cookie_t xcb_input_xi_select_events
10463  **
10464  ** @param xcb_connection_t             *c
10465  ** @param xcb_window_t                  window
10466  ** @param uint16_t                      num_mask
10467  ** @param const xcb_input_event_mask_t *masks
10468  ** @returns xcb_void_cookie_t
10469  **
10470  *****************************************************************************/
10471 
10472 xcb_void_cookie_t
10473 xcb_input_xi_select_events (xcb_connection_t             *c  /**< */,
10474                             xcb_window_t                  window  /**< */,
10475                             uint16_t                      num_mask  /**< */,
10476                             const xcb_input_event_mask_t *masks  /**< */)
10477 {
10478     static const xcb_protocol_request_t xcb_req = {
10479         /* count */ 4,
10480         /* ext */ &xcb_input_id,
10481         /* opcode */ XCB_INPUT_XI_SELECT_EVENTS,
10482         /* isvoid */ 1
10483     };
10484 
10485     struct iovec xcb_parts[6];
10486     xcb_void_cookie_t xcb_ret;
10487     xcb_input_xi_select_events_request_t xcb_out;
10488     unsigned int i;
10489     unsigned int xcb_tmp_len;
10490     char *xcb_tmp;
10491 
10492     xcb_out.window = window;
10493     xcb_out.num_mask = num_mask;
10494     memset(xcb_out.pad0, 0, 2);
10495 
10496     xcb_parts[2].iov_base = (char *) &xcb_out;
10497     xcb_parts[2].iov_len = sizeof(xcb_out);
10498     xcb_parts[3].iov_base = 0;
10499     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10500     /* xcb_input_event_mask_t masks */
10501     xcb_parts[4].iov_base = (char *) masks;
10502     xcb_parts[4].iov_len = 0;
10503     xcb_tmp = (char *)masks;
10504     for(i=0; i<num_mask; i++) {
10505         xcb_tmp_len = xcb_input_event_mask_sizeof(xcb_tmp);
10506         xcb_parts[4].iov_len += xcb_tmp_len;
10507         xcb_tmp += xcb_tmp_len;
10508     }
10509     xcb_parts[5].iov_base = 0;
10510     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
10511 
10512     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10513     return xcb_ret;
10514 }
10515 
10516 
10517 /*****************************************************************************
10518  **
10519  ** xcb_input_xi_query_version_cookie_t xcb_input_xi_query_version
10520  **
10521  ** @param xcb_connection_t *c
10522  ** @param uint16_t          major_version
10523  ** @param uint16_t          minor_version
10524  ** @returns xcb_input_xi_query_version_cookie_t
10525  **
10526  *****************************************************************************/
10527 
10528 xcb_input_xi_query_version_cookie_t
10529 xcb_input_xi_query_version (xcb_connection_t *c  /**< */,
10530                             uint16_t          major_version  /**< */,
10531                             uint16_t          minor_version  /**< */)
10532 {
10533     static const xcb_protocol_request_t xcb_req = {
10534         /* count */ 2,
10535         /* ext */ &xcb_input_id,
10536         /* opcode */ XCB_INPUT_XI_QUERY_VERSION,
10537         /* isvoid */ 0
10538     };
10539 
10540     struct iovec xcb_parts[4];
10541     xcb_input_xi_query_version_cookie_t xcb_ret;
10542     xcb_input_xi_query_version_request_t xcb_out;
10543 
10544     xcb_out.major_version = major_version;
10545     xcb_out.minor_version = minor_version;
10546 
10547     xcb_parts[2].iov_base = (char *) &xcb_out;
10548     xcb_parts[2].iov_len = sizeof(xcb_out);
10549     xcb_parts[3].iov_base = 0;
10550     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10551 
10552     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10553     return xcb_ret;
10554 }
10555 
10556 
10557 /*****************************************************************************
10558  **
10559  ** xcb_input_xi_query_version_cookie_t xcb_input_xi_query_version_unchecked
10560  **
10561  ** @param xcb_connection_t *c
10562  ** @param uint16_t          major_version
10563  ** @param uint16_t          minor_version
10564  ** @returns xcb_input_xi_query_version_cookie_t
10565  **
10566  *****************************************************************************/
10567 
10568 xcb_input_xi_query_version_cookie_t
10569 xcb_input_xi_query_version_unchecked (xcb_connection_t *c  /**< */,
10570                                       uint16_t          major_version  /**< */,
10571                                       uint16_t          minor_version  /**< */)
10572 {
10573     static const xcb_protocol_request_t xcb_req = {
10574         /* count */ 2,
10575         /* ext */ &xcb_input_id,
10576         /* opcode */ XCB_INPUT_XI_QUERY_VERSION,
10577         /* isvoid */ 0
10578     };
10579 
10580     struct iovec xcb_parts[4];
10581     xcb_input_xi_query_version_cookie_t xcb_ret;
10582     xcb_input_xi_query_version_request_t xcb_out;
10583 
10584     xcb_out.major_version = major_version;
10585     xcb_out.minor_version = minor_version;
10586 
10587     xcb_parts[2].iov_base = (char *) &xcb_out;
10588     xcb_parts[2].iov_len = sizeof(xcb_out);
10589     xcb_parts[3].iov_base = 0;
10590     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10591 
10592     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10593     return xcb_ret;
10594 }
10595 
10596 
10597 /*****************************************************************************
10598  **
10599  ** xcb_input_xi_query_version_reply_t * xcb_input_xi_query_version_reply
10600  **
10601  ** @param xcb_connection_t                     *c
10602  ** @param xcb_input_xi_query_version_cookie_t   cookie
10603  ** @param xcb_generic_error_t                 **e
10604  ** @returns xcb_input_xi_query_version_reply_t *
10605  **
10606  *****************************************************************************/
10607 
10608 xcb_input_xi_query_version_reply_t *
10609 xcb_input_xi_query_version_reply (xcb_connection_t                     *c  /**< */,
10610                                   xcb_input_xi_query_version_cookie_t   cookie  /**< */,
10611                                   xcb_generic_error_t                 **e  /**< */)
10612 {
10613     return (xcb_input_xi_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
10614 }
10615 
10616 int
10617 xcb_input_button_class_sizeof (const void  *_buffer  /**< */)
10618 {
10619     char *xcb_tmp = (char *)_buffer;
10620     const xcb_input_button_class_t *_aux = (xcb_input_button_class_t *)_buffer;
10621     unsigned int xcb_buffer_len = 0;
10622     unsigned int xcb_block_len = 0;
10623     unsigned int xcb_pad = 0;
10624     unsigned int xcb_align_to = 0;
10625 
10626 
10627     xcb_block_len += sizeof(xcb_input_button_class_t);
10628     xcb_tmp += xcb_block_len;
10629     xcb_buffer_len += xcb_block_len;
10630     xcb_block_len = 0;
10631     /* state */
10632     xcb_block_len += ((_aux->num_buttons + 31) / 32) * sizeof(xcb_atom_t);
10633     xcb_tmp += xcb_block_len;
10634     xcb_align_to = ALIGNOF(uint32_t);
10635     /* insert padding */
10636     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10637     xcb_buffer_len += xcb_block_len + xcb_pad;
10638     if (0 != xcb_pad) {
10639         xcb_tmp += xcb_pad;
10640         xcb_pad = 0;
10641     }
10642     xcb_block_len = 0;
10643     /* labels */
10644     xcb_block_len += _aux->num_buttons * sizeof(xcb_atom_t);
10645     xcb_tmp += xcb_block_len;
10646     xcb_align_to = ALIGNOF(xcb_atom_t);
10647     /* insert padding */
10648     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10649     xcb_buffer_len += xcb_block_len + xcb_pad;
10650     if (0 != xcb_pad) {
10651         xcb_tmp += xcb_pad;
10652         xcb_pad = 0;
10653     }
10654     xcb_block_len = 0;
10655 
10656     return xcb_buffer_len;
10657 }
10658 
10659 
10660 /*****************************************************************************
10661  **
10662  ** uint32_t * xcb_input_button_class_state
10663  **
10664  ** @param const xcb_input_button_class_t *R
10665  ** @returns uint32_t *
10666  **
10667  *****************************************************************************/
10668 
10669 uint32_t *
10670 xcb_input_button_class_state (const xcb_input_button_class_t *R  /**< */)
10671 {
10672     return (uint32_t *) (R + 1);
10673 }
10674 
10675 
10676 /*****************************************************************************
10677  **
10678  ** int xcb_input_button_class_state_length
10679  **
10680  ** @param const xcb_input_button_class_t *R
10681  ** @returns int
10682  **
10683  *****************************************************************************/
10684 
10685 int
10686 xcb_input_button_class_state_length (const xcb_input_button_class_t *R  /**< */)
10687 {
10688     return ((R->num_buttons + 31) / 32);
10689 }
10690 
10691 
10692 /*****************************************************************************
10693  **
10694  ** xcb_generic_iterator_t xcb_input_button_class_state_end
10695  **
10696  ** @param const xcb_input_button_class_t *R
10697  ** @returns xcb_generic_iterator_t
10698  **
10699  *****************************************************************************/
10700 
10701 xcb_generic_iterator_t
10702 xcb_input_button_class_state_end (const xcb_input_button_class_t *R  /**< */)
10703 {
10704     xcb_generic_iterator_t i;
10705     i.data = ((uint32_t *) (R + 1)) + (((R->num_buttons + 31) / 32));
10706     i.rem = 0;
10707     i.index = (char *) i.data - (char *) R;
10708     return i;
10709 }
10710 
10711 
10712 /*****************************************************************************
10713  **
10714  ** xcb_atom_t * xcb_input_button_class_labels
10715  **
10716  ** @param const xcb_input_button_class_t *R
10717  ** @returns xcb_atom_t *
10718  **
10719  *****************************************************************************/
10720 
10721 xcb_atom_t *
10722 xcb_input_button_class_labels (const xcb_input_button_class_t *R  /**< */)
10723 {
10724     xcb_generic_iterator_t prev = xcb_input_button_class_state_end(R);
10725     return (xcb_atom_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_atom_t, prev.index) + 0);
10726 }
10727 
10728 
10729 /*****************************************************************************
10730  **
10731  ** int xcb_input_button_class_labels_length
10732  **
10733  ** @param const xcb_input_button_class_t *R
10734  ** @returns int
10735  **
10736  *****************************************************************************/
10737 
10738 int
10739 xcb_input_button_class_labels_length (const xcb_input_button_class_t *R  /**< */)
10740 {
10741     return R->num_buttons;
10742 }
10743 
10744 
10745 /*****************************************************************************
10746  **
10747  ** xcb_generic_iterator_t xcb_input_button_class_labels_end
10748  **
10749  ** @param const xcb_input_button_class_t *R
10750  ** @returns xcb_generic_iterator_t
10751  **
10752  *****************************************************************************/
10753 
10754 xcb_generic_iterator_t
10755 xcb_input_button_class_labels_end (const xcb_input_button_class_t *R  /**< */)
10756 {
10757     xcb_generic_iterator_t i;
10758     xcb_generic_iterator_t child = xcb_input_button_class_state_end(R);
10759     i.data = ((xcb_atom_t *) child.data) + (R->num_buttons);
10760     i.rem = 0;
10761     i.index = (char *) i.data - (char *) R;
10762     return i;
10763 }
10764 
10765 
10766 /*****************************************************************************
10767  **
10768  ** void xcb_input_button_class_next
10769  **
10770  ** @param xcb_input_button_class_iterator_t *i
10771  ** @returns void
10772  **
10773  *****************************************************************************/
10774 
10775 void
10776 xcb_input_button_class_next (xcb_input_button_class_iterator_t *i  /**< */)
10777 {
10778     xcb_input_button_class_t *R = i->data;
10779     xcb_generic_iterator_t child;
10780     child.data = (xcb_input_button_class_t *)(((char *)R) + xcb_input_button_class_sizeof(R));
10781     i->index = (char *) child.data - (char *) i->data;
10782     --i->rem;
10783     i->data = (xcb_input_button_class_t *) child.data;
10784 }
10785 
10786 
10787 /*****************************************************************************
10788  **
10789  ** xcb_generic_iterator_t xcb_input_button_class_end
10790  **
10791  ** @param xcb_input_button_class_iterator_t i
10792  ** @returns xcb_generic_iterator_t
10793  **
10794  *****************************************************************************/
10795 
10796 xcb_generic_iterator_t
10797 xcb_input_button_class_end (xcb_input_button_class_iterator_t i  /**< */)
10798 {
10799     xcb_generic_iterator_t ret;
10800     while(i.rem > 0)
10801         xcb_input_button_class_next(&i);
10802     ret.data = i.data;
10803     ret.rem = i.rem;
10804     ret.index = i.index;
10805     return ret;
10806 }
10807 
10808 int
10809 xcb_input_key_class_sizeof (const void  *_buffer  /**< */)
10810 {
10811     char *xcb_tmp = (char *)_buffer;
10812     const xcb_input_key_class_t *_aux = (xcb_input_key_class_t *)_buffer;
10813     unsigned int xcb_buffer_len = 0;
10814     unsigned int xcb_block_len = 0;
10815     unsigned int xcb_pad = 0;
10816     unsigned int xcb_align_to = 0;
10817 
10818 
10819     xcb_block_len += sizeof(xcb_input_key_class_t);
10820     xcb_tmp += xcb_block_len;
10821     xcb_buffer_len += xcb_block_len;
10822     xcb_block_len = 0;
10823     /* keys */
10824     xcb_block_len += _aux->num_keys * sizeof(uint32_t);
10825     xcb_tmp += xcb_block_len;
10826     xcb_align_to = ALIGNOF(uint32_t);
10827     /* insert padding */
10828     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10829     xcb_buffer_len += xcb_block_len + xcb_pad;
10830     if (0 != xcb_pad) {
10831         xcb_tmp += xcb_pad;
10832         xcb_pad = 0;
10833     }
10834     xcb_block_len = 0;
10835 
10836     return xcb_buffer_len;
10837 }
10838 
10839 
10840 /*****************************************************************************
10841  **
10842  ** uint32_t * xcb_input_key_class_keys
10843  **
10844  ** @param const xcb_input_key_class_t *R
10845  ** @returns uint32_t *
10846  **
10847  *****************************************************************************/
10848 
10849 uint32_t *
10850 xcb_input_key_class_keys (const xcb_input_key_class_t *R  /**< */)
10851 {
10852     return (uint32_t *) (R + 1);
10853 }
10854 
10855 
10856 /*****************************************************************************
10857  **
10858  ** int xcb_input_key_class_keys_length
10859  **
10860  ** @param const xcb_input_key_class_t *R
10861  ** @returns int
10862  **
10863  *****************************************************************************/
10864 
10865 int
10866 xcb_input_key_class_keys_length (const xcb_input_key_class_t *R  /**< */)
10867 {
10868     return R->num_keys;
10869 }
10870 
10871 
10872 /*****************************************************************************
10873  **
10874  ** xcb_generic_iterator_t xcb_input_key_class_keys_end
10875  **
10876  ** @param const xcb_input_key_class_t *R
10877  ** @returns xcb_generic_iterator_t
10878  **
10879  *****************************************************************************/
10880 
10881 xcb_generic_iterator_t
10882 xcb_input_key_class_keys_end (const xcb_input_key_class_t *R  /**< */)
10883 {
10884     xcb_generic_iterator_t i;
10885     i.data = ((uint32_t *) (R + 1)) + (R->num_keys);
10886     i.rem = 0;
10887     i.index = (char *) i.data - (char *) R;
10888     return i;
10889 }
10890 
10891 
10892 /*****************************************************************************
10893  **
10894  ** void xcb_input_key_class_next
10895  **
10896  ** @param xcb_input_key_class_iterator_t *i
10897  ** @returns void
10898  **
10899  *****************************************************************************/
10900 
10901 void
10902 xcb_input_key_class_next (xcb_input_key_class_iterator_t *i  /**< */)
10903 {
10904     xcb_input_key_class_t *R = i->data;
10905     xcb_generic_iterator_t child;
10906     child.data = (xcb_input_key_class_t *)(((char *)R) + xcb_input_key_class_sizeof(R));
10907     i->index = (char *) child.data - (char *) i->data;
10908     --i->rem;
10909     i->data = (xcb_input_key_class_t *) child.data;
10910 }
10911 
10912 
10913 /*****************************************************************************
10914  **
10915  ** xcb_generic_iterator_t xcb_input_key_class_end
10916  **
10917  ** @param xcb_input_key_class_iterator_t i
10918  ** @returns xcb_generic_iterator_t
10919  **
10920  *****************************************************************************/
10921 
10922 xcb_generic_iterator_t
10923 xcb_input_key_class_end (xcb_input_key_class_iterator_t i  /**< */)
10924 {
10925     xcb_generic_iterator_t ret;
10926     while(i.rem > 0)
10927         xcb_input_key_class_next(&i);
10928     ret.data = i.data;
10929     ret.rem = i.rem;
10930     ret.index = i.index;
10931     return ret;
10932 }
10933 
10934 
10935 /*****************************************************************************
10936  **
10937  ** void xcb_input_scroll_class_next
10938  **
10939  ** @param xcb_input_scroll_class_iterator_t *i
10940  ** @returns void
10941  **
10942  *****************************************************************************/
10943 
10944 void
10945 xcb_input_scroll_class_next (xcb_input_scroll_class_iterator_t *i  /**< */)
10946 {
10947     --i->rem;
10948     ++i->data;
10949     i->index += sizeof(xcb_input_scroll_class_t);
10950 }
10951 
10952 
10953 /*****************************************************************************
10954  **
10955  ** xcb_generic_iterator_t xcb_input_scroll_class_end
10956  **
10957  ** @param xcb_input_scroll_class_iterator_t i
10958  ** @returns xcb_generic_iterator_t
10959  **
10960  *****************************************************************************/
10961 
10962 xcb_generic_iterator_t
10963 xcb_input_scroll_class_end (xcb_input_scroll_class_iterator_t i  /**< */)
10964 {
10965     xcb_generic_iterator_t ret;
10966     ret.data = i.data + i.rem;
10967     ret.index = i.index + ((char *) ret.data - (char *) i.data);
10968     ret.rem = 0;
10969     return ret;
10970 }
10971 
10972 
10973 /*****************************************************************************
10974  **
10975  ** void xcb_input_touch_class_next
10976  **
10977  ** @param xcb_input_touch_class_iterator_t *i
10978  ** @returns void
10979  **
10980  *****************************************************************************/
10981 
10982 void
10983 xcb_input_touch_class_next (xcb_input_touch_class_iterator_t *i  /**< */)
10984 {
10985     --i->rem;
10986     ++i->data;
10987     i->index += sizeof(xcb_input_touch_class_t);
10988 }
10989 
10990 
10991 /*****************************************************************************
10992  **
10993  ** xcb_generic_iterator_t xcb_input_touch_class_end
10994  **
10995  ** @param xcb_input_touch_class_iterator_t i
10996  ** @returns xcb_generic_iterator_t
10997  **
10998  *****************************************************************************/
10999 
11000 xcb_generic_iterator_t
11001 xcb_input_touch_class_end (xcb_input_touch_class_iterator_t i  /**< */)
11002 {
11003     xcb_generic_iterator_t ret;
11004     ret.data = i.data + i.rem;
11005     ret.index = i.index + ((char *) ret.data - (char *) i.data);
11006     ret.rem = 0;
11007     return ret;
11008 }
11009 
11010 
11011 /*****************************************************************************
11012  **
11013  ** void xcb_input_valuator_class_next
11014  **
11015  ** @param xcb_input_valuator_class_iterator_t *i
11016  ** @returns void
11017  **
11018  *****************************************************************************/
11019 
11020 void
11021 xcb_input_valuator_class_next (xcb_input_valuator_class_iterator_t *i  /**< */)
11022 {
11023     --i->rem;
11024     ++i->data;
11025     i->index += sizeof(xcb_input_valuator_class_t);
11026 }
11027 
11028 
11029 /*****************************************************************************
11030  **
11031  ** xcb_generic_iterator_t xcb_input_valuator_class_end
11032  **
11033  ** @param xcb_input_valuator_class_iterator_t i
11034  ** @returns xcb_generic_iterator_t
11035  **
11036  *****************************************************************************/
11037 
11038 xcb_generic_iterator_t
11039 xcb_input_valuator_class_end (xcb_input_valuator_class_iterator_t i  /**< */)
11040 {
11041     xcb_generic_iterator_t ret;
11042     ret.data = i.data + i.rem;
11043     ret.index = i.index + ((char *) ret.data - (char *) i.data);
11044     ret.rem = 0;
11045     return ret;
11046 }
11047 
11048 int
11049 xcb_input_device_class_sizeof (const void  *_buffer  /**< */)
11050 {
11051     char *xcb_tmp = (char *)_buffer;
11052     const xcb_input_device_class_t *_aux = (xcb_input_device_class_t *)_buffer;
11053     unsigned int xcb_buffer_len = 0;
11054     unsigned int xcb_block_len = 0;
11055     unsigned int xcb_pad = 0;
11056     unsigned int xcb_align_to = 0;
11057 
11058 
11059     xcb_block_len += sizeof(xcb_input_device_class_t);
11060     xcb_tmp += xcb_block_len;
11061     xcb_buffer_len += xcb_block_len;
11062     xcb_block_len = 0;
11063     /* uninterpreted_data */
11064     xcb_block_len += ((_aux->len * 4) - 8) * sizeof(uint8_t);
11065     xcb_tmp += xcb_block_len;
11066     xcb_align_to = ALIGNOF(uint8_t);
11067     /* insert padding */
11068     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11069     xcb_buffer_len += xcb_block_len + xcb_pad;
11070     if (0 != xcb_pad) {
11071         xcb_tmp += xcb_pad;
11072         xcb_pad = 0;
11073     }
11074     xcb_block_len = 0;
11075 
11076     return xcb_buffer_len;
11077 }
11078 
11079 
11080 /*****************************************************************************
11081  **
11082  ** uint8_t * xcb_input_device_class_uninterpreted_data
11083  **
11084  ** @param const xcb_input_device_class_t *R
11085  ** @returns uint8_t *
11086  **
11087  *****************************************************************************/
11088 
11089 uint8_t *
11090 xcb_input_device_class_uninterpreted_data (const xcb_input_device_class_t *R  /**< */)
11091 {
11092     return (uint8_t *) (R + 1);
11093 }
11094 
11095 
11096 /*****************************************************************************
11097  **
11098  ** int xcb_input_device_class_uninterpreted_data_length
11099  **
11100  ** @param const xcb_input_device_class_t *R
11101  ** @returns int
11102  **
11103  *****************************************************************************/
11104 
11105 int
11106 xcb_input_device_class_uninterpreted_data_length (const xcb_input_device_class_t *R  /**< */)
11107 {
11108     return ((R->len * 4) - 8);
11109 }
11110 
11111 
11112 /*****************************************************************************
11113  **
11114  ** xcb_generic_iterator_t xcb_input_device_class_uninterpreted_data_end
11115  **
11116  ** @param const xcb_input_device_class_t *R
11117  ** @returns xcb_generic_iterator_t
11118  **
11119  *****************************************************************************/
11120 
11121 xcb_generic_iterator_t
11122 xcb_input_device_class_uninterpreted_data_end (const xcb_input_device_class_t *R  /**< */)
11123 {
11124     xcb_generic_iterator_t i;
11125     i.data = ((uint8_t *) (R + 1)) + (((R->len * 4) - 8));
11126     i.rem = 0;
11127     i.index = (char *) i.data - (char *) R;
11128     return i;
11129 }
11130 
11131 
11132 /*****************************************************************************
11133  **
11134  ** void xcb_input_device_class_next
11135  **
11136  ** @param xcb_input_device_class_iterator_t *i
11137  ** @returns void
11138  **
11139  *****************************************************************************/
11140 
11141 void
11142 xcb_input_device_class_next (xcb_input_device_class_iterator_t *i  /**< */)
11143 {
11144     xcb_input_device_class_t *R = i->data;
11145     xcb_generic_iterator_t child;
11146     child.data = (xcb_input_device_class_t *)(((char *)R) + xcb_input_device_class_sizeof(R));
11147     i->index = (char *) child.data - (char *) i->data;
11148     --i->rem;
11149     i->data = (xcb_input_device_class_t *) child.data;
11150 }
11151 
11152 
11153 /*****************************************************************************
11154  **
11155  ** xcb_generic_iterator_t xcb_input_device_class_end
11156  **
11157  ** @param xcb_input_device_class_iterator_t i
11158  ** @returns xcb_generic_iterator_t
11159  **
11160  *****************************************************************************/
11161 
11162 xcb_generic_iterator_t
11163 xcb_input_device_class_end (xcb_input_device_class_iterator_t i  /**< */)
11164 {
11165     xcb_generic_iterator_t ret;
11166     while(i.rem > 0)
11167         xcb_input_device_class_next(&i);
11168     ret.data = i.data;
11169     ret.rem = i.rem;
11170     ret.index = i.index;
11171     return ret;
11172 }
11173 
11174 int
11175 xcb_input_xi_device_info_sizeof (const void  *_buffer  /**< */)
11176 {
11177     char *xcb_tmp = (char *)_buffer;
11178     const xcb_input_xi_device_info_t *_aux = (xcb_input_xi_device_info_t *)_buffer;
11179     unsigned int xcb_buffer_len = 0;
11180     unsigned int xcb_block_len = 0;
11181     unsigned int xcb_pad = 0;
11182     unsigned int xcb_align_to = 0;
11183 
11184     unsigned int i;
11185     unsigned int xcb_tmp_len;
11186 
11187     xcb_block_len += sizeof(xcb_input_xi_device_info_t);
11188     xcb_tmp += xcb_block_len;
11189     xcb_buffer_len += xcb_block_len;
11190     xcb_block_len = 0;
11191     /* name */
11192     xcb_block_len += (((_aux->name_len + 3) / 4) * 4) * sizeof(char);
11193     xcb_tmp += xcb_block_len;
11194     xcb_align_to = ALIGNOF(char);
11195     /* insert padding */
11196     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11197     xcb_buffer_len += xcb_block_len + xcb_pad;
11198     if (0 != xcb_pad) {
11199         xcb_tmp += xcb_pad;
11200         xcb_pad = 0;
11201     }
11202     xcb_block_len = 0;
11203     /* classes */
11204     for(i=0; i<_aux->num_classes; i++) {
11205         xcb_tmp_len = xcb_input_device_class_sizeof(xcb_tmp);
11206         xcb_block_len += xcb_tmp_len;
11207         xcb_tmp += xcb_tmp_len;
11208     }
11209     xcb_align_to = ALIGNOF(xcb_input_device_class_t);
11210     /* insert padding */
11211     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11212     xcb_buffer_len += xcb_block_len + xcb_pad;
11213     if (0 != xcb_pad) {
11214         xcb_tmp += xcb_pad;
11215         xcb_pad = 0;
11216     }
11217     xcb_block_len = 0;
11218 
11219     return xcb_buffer_len;
11220 }
11221 
11222 
11223 /*****************************************************************************
11224  **
11225  ** char * xcb_input_xi_device_info_name
11226  **
11227  ** @param const xcb_input_xi_device_info_t *R
11228  ** @returns char *
11229  **
11230  *****************************************************************************/
11231 
11232 char *
11233 xcb_input_xi_device_info_name (const xcb_input_xi_device_info_t *R  /**< */)
11234 {
11235     return (char *) (R + 1);
11236 }
11237 
11238 
11239 /*****************************************************************************
11240  **
11241  ** int xcb_input_xi_device_info_name_length
11242  **
11243  ** @param const xcb_input_xi_device_info_t *R
11244  ** @returns int
11245  **
11246  *****************************************************************************/
11247 
11248 int
11249 xcb_input_xi_device_info_name_length (const xcb_input_xi_device_info_t *R  /**< */)
11250 {
11251     return (((R->name_len + 3) / 4) * 4);
11252 }
11253 
11254 
11255 /*****************************************************************************
11256  **
11257  ** xcb_generic_iterator_t xcb_input_xi_device_info_name_end
11258  **
11259  ** @param const xcb_input_xi_device_info_t *R
11260  ** @returns xcb_generic_iterator_t
11261  **
11262  *****************************************************************************/
11263 
11264 xcb_generic_iterator_t
11265 xcb_input_xi_device_info_name_end (const xcb_input_xi_device_info_t *R  /**< */)
11266 {
11267     xcb_generic_iterator_t i;
11268     i.data = ((char *) (R + 1)) + ((((R->name_len + 3) / 4) * 4));
11269     i.rem = 0;
11270     i.index = (char *) i.data - (char *) R;
11271     return i;
11272 }
11273 
11274 
11275 /*****************************************************************************
11276  **
11277  ** int xcb_input_xi_device_info_classes_length
11278  **
11279  ** @param const xcb_input_xi_device_info_t *R
11280  ** @returns int
11281  **
11282  *****************************************************************************/
11283 
11284 int
11285 xcb_input_xi_device_info_classes_length (const xcb_input_xi_device_info_t *R  /**< */)
11286 {
11287     return R->num_classes;
11288 }
11289 
11290 
11291 /*****************************************************************************
11292  **
11293  ** xcb_input_device_class_iterator_t xcb_input_xi_device_info_classes_iterator
11294  **
11295  ** @param const xcb_input_xi_device_info_t *R
11296  ** @returns xcb_input_device_class_iterator_t
11297  **
11298  *****************************************************************************/
11299 
11300 xcb_input_device_class_iterator_t
11301 xcb_input_xi_device_info_classes_iterator (const xcb_input_xi_device_info_t *R  /**< */)
11302 {
11303     xcb_input_device_class_iterator_t i;
11304     xcb_generic_iterator_t prev = xcb_input_xi_device_info_name_end(R);
11305     i.data = (xcb_input_device_class_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_input_device_class_t, prev.index));
11306     i.rem = R->num_classes;
11307     i.index = (char *) i.data - (char *) R;
11308     return i;
11309 }
11310 
11311 
11312 /*****************************************************************************
11313  **
11314  ** void xcb_input_xi_device_info_next
11315  **
11316  ** @param xcb_input_xi_device_info_iterator_t *i
11317  ** @returns void
11318  **
11319  *****************************************************************************/
11320 
11321 void
11322 xcb_input_xi_device_info_next (xcb_input_xi_device_info_iterator_t *i  /**< */)
11323 {
11324     xcb_input_xi_device_info_t *R = i->data;
11325     xcb_generic_iterator_t child;
11326     child.data = (xcb_input_xi_device_info_t *)(((char *)R) + xcb_input_xi_device_info_sizeof(R));
11327     i->index = (char *) child.data - (char *) i->data;
11328     --i->rem;
11329     i->data = (xcb_input_xi_device_info_t *) child.data;
11330 }
11331 
11332 
11333 /*****************************************************************************
11334  **
11335  ** xcb_generic_iterator_t xcb_input_xi_device_info_end
11336  **
11337  ** @param xcb_input_xi_device_info_iterator_t i
11338  ** @returns xcb_generic_iterator_t
11339  **
11340  *****************************************************************************/
11341 
11342 xcb_generic_iterator_t
11343 xcb_input_xi_device_info_end (xcb_input_xi_device_info_iterator_t i  /**< */)
11344 {
11345     xcb_generic_iterator_t ret;
11346     while(i.rem > 0)
11347         xcb_input_xi_device_info_next(&i);
11348     ret.data = i.data;
11349     ret.rem = i.rem;
11350     ret.index = i.index;
11351     return ret;
11352 }
11353 
11354 int
11355 xcb_input_xi_query_device_sizeof (const void  *_buffer  /**< */)
11356 {
11357     char *xcb_tmp = (char *)_buffer;
11358     const xcb_input_xi_query_device_reply_t *_aux = (xcb_input_xi_query_device_reply_t *)_buffer;
11359     unsigned int xcb_buffer_len = 0;
11360     unsigned int xcb_block_len = 0;
11361     unsigned int xcb_pad = 0;
11362     unsigned int xcb_align_to = 0;
11363 
11364     unsigned int i;
11365     unsigned int xcb_tmp_len;
11366 
11367     xcb_block_len += sizeof(xcb_input_xi_query_device_reply_t);
11368     xcb_tmp += xcb_block_len;
11369     xcb_buffer_len += xcb_block_len;
11370     xcb_block_len = 0;
11371     /* infos */
11372     for(i=0; i<_aux->num_infos; i++) {
11373         xcb_tmp_len = xcb_input_xi_device_info_sizeof(xcb_tmp);
11374         xcb_block_len += xcb_tmp_len;
11375         xcb_tmp += xcb_tmp_len;
11376     }
11377     xcb_align_to = ALIGNOF(xcb_input_xi_device_info_t);
11378     /* insert padding */
11379     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11380     xcb_buffer_len += xcb_block_len + xcb_pad;
11381     if (0 != xcb_pad) {
11382         xcb_tmp += xcb_pad;
11383         xcb_pad = 0;
11384     }
11385     xcb_block_len = 0;
11386 
11387     return xcb_buffer_len;
11388 }
11389 
11390 
11391 /*****************************************************************************
11392  **
11393  ** xcb_input_xi_query_device_cookie_t xcb_input_xi_query_device
11394  **
11395  ** @param xcb_connection_t      *c
11396  ** @param xcb_input_device_id_t  deviceid
11397  ** @returns xcb_input_xi_query_device_cookie_t
11398  **
11399  *****************************************************************************/
11400 
11401 xcb_input_xi_query_device_cookie_t
11402 xcb_input_xi_query_device (xcb_connection_t      *c  /**< */,
11403                            xcb_input_device_id_t  deviceid  /**< */)
11404 {
11405     static const xcb_protocol_request_t xcb_req = {
11406         /* count */ 2,
11407         /* ext */ &xcb_input_id,
11408         /* opcode */ XCB_INPUT_XI_QUERY_DEVICE,
11409         /* isvoid */ 0
11410     };
11411 
11412     struct iovec xcb_parts[4];
11413     xcb_input_xi_query_device_cookie_t xcb_ret;
11414     xcb_input_xi_query_device_request_t xcb_out;
11415 
11416     xcb_out.deviceid = deviceid;
11417     memset(xcb_out.pad0, 0, 2);
11418 
11419     xcb_parts[2].iov_base = (char *) &xcb_out;
11420     xcb_parts[2].iov_len = sizeof(xcb_out);
11421     xcb_parts[3].iov_base = 0;
11422     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11423 
11424     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11425     return xcb_ret;
11426 }
11427 
11428 
11429 /*****************************************************************************
11430  **
11431  ** xcb_input_xi_query_device_cookie_t xcb_input_xi_query_device_unchecked
11432  **
11433  ** @param xcb_connection_t      *c
11434  ** @param xcb_input_device_id_t  deviceid
11435  ** @returns xcb_input_xi_query_device_cookie_t
11436  **
11437  *****************************************************************************/
11438 
11439 xcb_input_xi_query_device_cookie_t
11440 xcb_input_xi_query_device_unchecked (xcb_connection_t      *c  /**< */,
11441                                      xcb_input_device_id_t  deviceid  /**< */)
11442 {
11443     static const xcb_protocol_request_t xcb_req = {
11444         /* count */ 2,
11445         /* ext */ &xcb_input_id,
11446         /* opcode */ XCB_INPUT_XI_QUERY_DEVICE,
11447         /* isvoid */ 0
11448     };
11449 
11450     struct iovec xcb_parts[4];
11451     xcb_input_xi_query_device_cookie_t xcb_ret;
11452     xcb_input_xi_query_device_request_t xcb_out;
11453 
11454     xcb_out.deviceid = deviceid;
11455     memset(xcb_out.pad0, 0, 2);
11456 
11457     xcb_parts[2].iov_base = (char *) &xcb_out;
11458     xcb_parts[2].iov_len = sizeof(xcb_out);
11459     xcb_parts[3].iov_base = 0;
11460     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11461 
11462     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11463     return xcb_ret;
11464 }
11465 
11466 
11467 /*****************************************************************************
11468  **
11469  ** int xcb_input_xi_query_device_infos_length
11470  **
11471  ** @param const xcb_input_xi_query_device_reply_t *R
11472  ** @returns int
11473  **
11474  *****************************************************************************/
11475 
11476 int
11477 xcb_input_xi_query_device_infos_length (const xcb_input_xi_query_device_reply_t *R  /**< */)
11478 {
11479     return R->num_infos;
11480 }
11481 
11482 
11483 /*****************************************************************************
11484  **
11485  ** xcb_input_xi_device_info_iterator_t xcb_input_xi_query_device_infos_iterator
11486  **
11487  ** @param const xcb_input_xi_query_device_reply_t *R
11488  ** @returns xcb_input_xi_device_info_iterator_t
11489  **
11490  *****************************************************************************/
11491 
11492 xcb_input_xi_device_info_iterator_t
11493 xcb_input_xi_query_device_infos_iterator (const xcb_input_xi_query_device_reply_t *R  /**< */)
11494 {
11495     xcb_input_xi_device_info_iterator_t i;
11496     i.data = (xcb_input_xi_device_info_t *) (R + 1);
11497     i.rem = R->num_infos;
11498     i.index = (char *) i.data - (char *) R;
11499     return i;
11500 }
11501 
11502 
11503 /*****************************************************************************
11504  **
11505  ** xcb_input_xi_query_device_reply_t * xcb_input_xi_query_device_reply
11506  **
11507  ** @param xcb_connection_t                    *c
11508  ** @param xcb_input_xi_query_device_cookie_t   cookie
11509  ** @param xcb_generic_error_t                **e
11510  ** @returns xcb_input_xi_query_device_reply_t *
11511  **
11512  *****************************************************************************/
11513 
11514 xcb_input_xi_query_device_reply_t *
11515 xcb_input_xi_query_device_reply (xcb_connection_t                    *c  /**< */,
11516                                  xcb_input_xi_query_device_cookie_t   cookie  /**< */,
11517                                  xcb_generic_error_t                **e  /**< */)
11518 {
11519     return (xcb_input_xi_query_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
11520 }
11521 
11522 
11523 /*****************************************************************************
11524  **
11525  ** xcb_void_cookie_t xcb_input_xi_set_focus_checked
11526  **
11527  ** @param xcb_connection_t      *c
11528  ** @param xcb_window_t           window
11529  ** @param xcb_timestamp_t        time
11530  ** @param xcb_input_device_id_t  deviceid
11531  ** @returns xcb_void_cookie_t
11532  **
11533  *****************************************************************************/
11534 
11535 xcb_void_cookie_t
11536 xcb_input_xi_set_focus_checked (xcb_connection_t      *c  /**< */,
11537                                 xcb_window_t           window  /**< */,
11538                                 xcb_timestamp_t        time  /**< */,
11539                                 xcb_input_device_id_t  deviceid  /**< */)
11540 {
11541     static const xcb_protocol_request_t xcb_req = {
11542         /* count */ 2,
11543         /* ext */ &xcb_input_id,
11544         /* opcode */ XCB_INPUT_XI_SET_FOCUS,
11545         /* isvoid */ 1
11546     };
11547 
11548     struct iovec xcb_parts[4];
11549     xcb_void_cookie_t xcb_ret;
11550     xcb_input_xi_set_focus_request_t xcb_out;
11551 
11552     xcb_out.window = window;
11553     xcb_out.time = time;
11554     xcb_out.deviceid = deviceid;
11555     memset(xcb_out.pad0, 0, 2);
11556 
11557     xcb_parts[2].iov_base = (char *) &xcb_out;
11558     xcb_parts[2].iov_len = sizeof(xcb_out);
11559     xcb_parts[3].iov_base = 0;
11560     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11561 
11562     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11563     return xcb_ret;
11564 }
11565 
11566 
11567 /*****************************************************************************
11568  **
11569  ** xcb_void_cookie_t xcb_input_xi_set_focus
11570  **
11571  ** @param xcb_connection_t      *c
11572  ** @param xcb_window_t           window
11573  ** @param xcb_timestamp_t        time
11574  ** @param xcb_input_device_id_t  deviceid
11575  ** @returns xcb_void_cookie_t
11576  **
11577  *****************************************************************************/
11578 
11579 xcb_void_cookie_t
11580 xcb_input_xi_set_focus (xcb_connection_t      *c  /**< */,
11581                         xcb_window_t           window  /**< */,
11582                         xcb_timestamp_t        time  /**< */,
11583                         xcb_input_device_id_t  deviceid  /**< */)
11584 {
11585     static const xcb_protocol_request_t xcb_req = {
11586         /* count */ 2,
11587         /* ext */ &xcb_input_id,
11588         /* opcode */ XCB_INPUT_XI_SET_FOCUS,
11589         /* isvoid */ 1
11590     };
11591 
11592     struct iovec xcb_parts[4];
11593     xcb_void_cookie_t xcb_ret;
11594     xcb_input_xi_set_focus_request_t xcb_out;
11595 
11596     xcb_out.window = window;
11597     xcb_out.time = time;
11598     xcb_out.deviceid = deviceid;
11599     memset(xcb_out.pad0, 0, 2);
11600 
11601     xcb_parts[2].iov_base = (char *) &xcb_out;
11602     xcb_parts[2].iov_len = sizeof(xcb_out);
11603     xcb_parts[3].iov_base = 0;
11604     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11605 
11606     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11607     return xcb_ret;
11608 }
11609 
11610 
11611 /*****************************************************************************
11612  **
11613  ** xcb_input_xi_get_focus_cookie_t xcb_input_xi_get_focus
11614  **
11615  ** @param xcb_connection_t      *c
11616  ** @param xcb_input_device_id_t  deviceid
11617  ** @returns xcb_input_xi_get_focus_cookie_t
11618  **
11619  *****************************************************************************/
11620 
11621 xcb_input_xi_get_focus_cookie_t
11622 xcb_input_xi_get_focus (xcb_connection_t      *c  /**< */,
11623                         xcb_input_device_id_t  deviceid  /**< */)
11624 {
11625     static const xcb_protocol_request_t xcb_req = {
11626         /* count */ 2,
11627         /* ext */ &xcb_input_id,
11628         /* opcode */ XCB_INPUT_XI_GET_FOCUS,
11629         /* isvoid */ 0
11630     };
11631 
11632     struct iovec xcb_parts[4];
11633     xcb_input_xi_get_focus_cookie_t xcb_ret;
11634     xcb_input_xi_get_focus_request_t xcb_out;
11635 
11636     xcb_out.deviceid = deviceid;
11637     memset(xcb_out.pad0, 0, 2);
11638 
11639     xcb_parts[2].iov_base = (char *) &xcb_out;
11640     xcb_parts[2].iov_len = sizeof(xcb_out);
11641     xcb_parts[3].iov_base = 0;
11642     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11643 
11644     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11645     return xcb_ret;
11646 }
11647 
11648 
11649 /*****************************************************************************
11650  **
11651  ** xcb_input_xi_get_focus_cookie_t xcb_input_xi_get_focus_unchecked
11652  **
11653  ** @param xcb_connection_t      *c
11654  ** @param xcb_input_device_id_t  deviceid
11655  ** @returns xcb_input_xi_get_focus_cookie_t
11656  **
11657  *****************************************************************************/
11658 
11659 xcb_input_xi_get_focus_cookie_t
11660 xcb_input_xi_get_focus_unchecked (xcb_connection_t      *c  /**< */,
11661                                   xcb_input_device_id_t  deviceid  /**< */)
11662 {
11663     static const xcb_protocol_request_t xcb_req = {
11664         /* count */ 2,
11665         /* ext */ &xcb_input_id,
11666         /* opcode */ XCB_INPUT_XI_GET_FOCUS,
11667         /* isvoid */ 0
11668     };
11669 
11670     struct iovec xcb_parts[4];
11671     xcb_input_xi_get_focus_cookie_t xcb_ret;
11672     xcb_input_xi_get_focus_request_t xcb_out;
11673 
11674     xcb_out.deviceid = deviceid;
11675     memset(xcb_out.pad0, 0, 2);
11676 
11677     xcb_parts[2].iov_base = (char *) &xcb_out;
11678     xcb_parts[2].iov_len = sizeof(xcb_out);
11679     xcb_parts[3].iov_base = 0;
11680     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11681 
11682     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11683     return xcb_ret;
11684 }
11685 
11686 
11687 /*****************************************************************************
11688  **
11689  ** xcb_input_xi_get_focus_reply_t * xcb_input_xi_get_focus_reply
11690  **
11691  ** @param xcb_connection_t                 *c
11692  ** @param xcb_input_xi_get_focus_cookie_t   cookie
11693  ** @param xcb_generic_error_t             **e
11694  ** @returns xcb_input_xi_get_focus_reply_t *
11695  **
11696  *****************************************************************************/
11697 
11698 xcb_input_xi_get_focus_reply_t *
11699 xcb_input_xi_get_focus_reply (xcb_connection_t                 *c  /**< */,
11700                               xcb_input_xi_get_focus_cookie_t   cookie  /**< */,
11701                               xcb_generic_error_t             **e  /**< */)
11702 {
11703     return (xcb_input_xi_get_focus_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
11704 }
11705 
11706 int
11707 xcb_input_xi_grab_device_sizeof (const void  *_buffer  /**< */)
11708 {
11709     char *xcb_tmp = (char *)_buffer;
11710     const xcb_input_xi_grab_device_request_t *_aux = (xcb_input_xi_grab_device_request_t *)_buffer;
11711     unsigned int xcb_buffer_len = 0;
11712     unsigned int xcb_block_len = 0;
11713     unsigned int xcb_pad = 0;
11714     unsigned int xcb_align_to = 0;
11715 
11716 
11717     xcb_block_len += sizeof(xcb_input_xi_grab_device_request_t);
11718     xcb_tmp += xcb_block_len;
11719     xcb_buffer_len += xcb_block_len;
11720     xcb_block_len = 0;
11721     /* mask */
11722     xcb_block_len += _aux->mask_len * sizeof(uint32_t);
11723     xcb_tmp += xcb_block_len;
11724     xcb_align_to = ALIGNOF(uint32_t);
11725     /* insert padding */
11726     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11727     xcb_buffer_len += xcb_block_len + xcb_pad;
11728     if (0 != xcb_pad) {
11729         xcb_tmp += xcb_pad;
11730         xcb_pad = 0;
11731     }
11732     xcb_block_len = 0;
11733 
11734     return xcb_buffer_len;
11735 }
11736 
11737 
11738 /*****************************************************************************
11739  **
11740  ** xcb_input_xi_grab_device_cookie_t xcb_input_xi_grab_device
11741  **
11742  ** @param xcb_connection_t      *c
11743  ** @param xcb_window_t           window
11744  ** @param xcb_timestamp_t        time
11745  ** @param xcb_cursor_t           cursor
11746  ** @param xcb_input_device_id_t  deviceid
11747  ** @param uint8_t                mode
11748  ** @param uint8_t                paired_device_mode
11749  ** @param uint8_t                owner_events
11750  ** @param uint16_t               mask_len
11751  ** @param const uint32_t        *mask
11752  ** @returns xcb_input_xi_grab_device_cookie_t
11753  **
11754  *****************************************************************************/
11755 
11756 xcb_input_xi_grab_device_cookie_t
11757 xcb_input_xi_grab_device (xcb_connection_t      *c  /**< */,
11758                           xcb_window_t           window  /**< */,
11759                           xcb_timestamp_t        time  /**< */,
11760                           xcb_cursor_t           cursor  /**< */,
11761                           xcb_input_device_id_t  deviceid  /**< */,
11762                           uint8_t                mode  /**< */,
11763                           uint8_t                paired_device_mode  /**< */,
11764                           uint8_t                owner_events  /**< */,
11765                           uint16_t               mask_len  /**< */,
11766                           const uint32_t        *mask  /**< */)
11767 {
11768     static const xcb_protocol_request_t xcb_req = {
11769         /* count */ 4,
11770         /* ext */ &xcb_input_id,
11771         /* opcode */ XCB_INPUT_XI_GRAB_DEVICE,
11772         /* isvoid */ 0
11773     };
11774 
11775     struct iovec xcb_parts[6];
11776     xcb_input_xi_grab_device_cookie_t xcb_ret;
11777     xcb_input_xi_grab_device_request_t xcb_out;
11778 
11779     xcb_out.window = window;
11780     xcb_out.time = time;
11781     xcb_out.cursor = cursor;
11782     xcb_out.deviceid = deviceid;
11783     xcb_out.mode = mode;
11784     xcb_out.paired_device_mode = paired_device_mode;
11785     xcb_out.owner_events = owner_events;
11786     xcb_out.pad0 = 0;
11787     xcb_out.mask_len = mask_len;
11788 
11789     xcb_parts[2].iov_base = (char *) &xcb_out;
11790     xcb_parts[2].iov_len = sizeof(xcb_out);
11791     xcb_parts[3].iov_base = 0;
11792     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11793     /* uint32_t mask */
11794     xcb_parts[4].iov_base = (char *) mask;
11795     xcb_parts[4].iov_len = mask_len * sizeof(uint32_t);
11796     xcb_parts[5].iov_base = 0;
11797     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
11798 
11799     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11800     return xcb_ret;
11801 }
11802 
11803 
11804 /*****************************************************************************
11805  **
11806  ** xcb_input_xi_grab_device_cookie_t xcb_input_xi_grab_device_unchecked
11807  **
11808  ** @param xcb_connection_t      *c
11809  ** @param xcb_window_t           window
11810  ** @param xcb_timestamp_t        time
11811  ** @param xcb_cursor_t           cursor
11812  ** @param xcb_input_device_id_t  deviceid
11813  ** @param uint8_t                mode
11814  ** @param uint8_t                paired_device_mode
11815  ** @param uint8_t                owner_events
11816  ** @param uint16_t               mask_len
11817  ** @param const uint32_t        *mask
11818  ** @returns xcb_input_xi_grab_device_cookie_t
11819  **
11820  *****************************************************************************/
11821 
11822 xcb_input_xi_grab_device_cookie_t
11823 xcb_input_xi_grab_device_unchecked (xcb_connection_t      *c  /**< */,
11824                                     xcb_window_t           window  /**< */,
11825                                     xcb_timestamp_t        time  /**< */,
11826                                     xcb_cursor_t           cursor  /**< */,
11827                                     xcb_input_device_id_t  deviceid  /**< */,
11828                                     uint8_t                mode  /**< */,
11829                                     uint8_t                paired_device_mode  /**< */,
11830                                     uint8_t                owner_events  /**< */,
11831                                     uint16_t               mask_len  /**< */,
11832                                     const uint32_t        *mask  /**< */)
11833 {
11834     static const xcb_protocol_request_t xcb_req = {
11835         /* count */ 4,
11836         /* ext */ &xcb_input_id,
11837         /* opcode */ XCB_INPUT_XI_GRAB_DEVICE,
11838         /* isvoid */ 0
11839     };
11840 
11841     struct iovec xcb_parts[6];
11842     xcb_input_xi_grab_device_cookie_t xcb_ret;
11843     xcb_input_xi_grab_device_request_t xcb_out;
11844 
11845     xcb_out.window = window;
11846     xcb_out.time = time;
11847     xcb_out.cursor = cursor;
11848     xcb_out.deviceid = deviceid;
11849     xcb_out.mode = mode;
11850     xcb_out.paired_device_mode = paired_device_mode;
11851     xcb_out.owner_events = owner_events;
11852     xcb_out.pad0 = 0;
11853     xcb_out.mask_len = mask_len;
11854 
11855     xcb_parts[2].iov_base = (char *) &xcb_out;
11856     xcb_parts[2].iov_len = sizeof(xcb_out);
11857     xcb_parts[3].iov_base = 0;
11858     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11859     /* uint32_t mask */
11860     xcb_parts[4].iov_base = (char *) mask;
11861     xcb_parts[4].iov_len = mask_len * sizeof(uint32_t);
11862     xcb_parts[5].iov_base = 0;
11863     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
11864 
11865     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11866     return xcb_ret;
11867 }
11868 
11869 
11870 /*****************************************************************************
11871  **
11872  ** xcb_input_xi_grab_device_reply_t * xcb_input_xi_grab_device_reply
11873  **
11874  ** @param xcb_connection_t                   *c
11875  ** @param xcb_input_xi_grab_device_cookie_t   cookie
11876  ** @param xcb_generic_error_t               **e
11877  ** @returns xcb_input_xi_grab_device_reply_t *
11878  **
11879  *****************************************************************************/
11880 
11881 xcb_input_xi_grab_device_reply_t *
11882 xcb_input_xi_grab_device_reply (xcb_connection_t                   *c  /**< */,
11883                                 xcb_input_xi_grab_device_cookie_t   cookie  /**< */,
11884                                 xcb_generic_error_t               **e  /**< */)
11885 {
11886     return (xcb_input_xi_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
11887 }
11888 
11889 
11890 /*****************************************************************************
11891  **
11892  ** xcb_void_cookie_t xcb_input_xi_ungrab_device_checked
11893  **
11894  ** @param xcb_connection_t      *c
11895  ** @param xcb_timestamp_t        time
11896  ** @param xcb_input_device_id_t  deviceid
11897  ** @returns xcb_void_cookie_t
11898  **
11899  *****************************************************************************/
11900 
11901 xcb_void_cookie_t
11902 xcb_input_xi_ungrab_device_checked (xcb_connection_t      *c  /**< */,
11903                                     xcb_timestamp_t        time  /**< */,
11904                                     xcb_input_device_id_t  deviceid  /**< */)
11905 {
11906     static const xcb_protocol_request_t xcb_req = {
11907         /* count */ 2,
11908         /* ext */ &xcb_input_id,
11909         /* opcode */ XCB_INPUT_XI_UNGRAB_DEVICE,
11910         /* isvoid */ 1
11911     };
11912 
11913     struct iovec xcb_parts[4];
11914     xcb_void_cookie_t xcb_ret;
11915     xcb_input_xi_ungrab_device_request_t xcb_out;
11916 
11917     xcb_out.time = time;
11918     xcb_out.deviceid = deviceid;
11919     memset(xcb_out.pad0, 0, 2);
11920 
11921     xcb_parts[2].iov_base = (char *) &xcb_out;
11922     xcb_parts[2].iov_len = sizeof(xcb_out);
11923     xcb_parts[3].iov_base = 0;
11924     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11925 
11926     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11927     return xcb_ret;
11928 }
11929 
11930 
11931 /*****************************************************************************
11932  **
11933  ** xcb_void_cookie_t xcb_input_xi_ungrab_device
11934  **
11935  ** @param xcb_connection_t      *c
11936  ** @param xcb_timestamp_t        time
11937  ** @param xcb_input_device_id_t  deviceid
11938  ** @returns xcb_void_cookie_t
11939  **
11940  *****************************************************************************/
11941 
11942 xcb_void_cookie_t
11943 xcb_input_xi_ungrab_device (xcb_connection_t      *c  /**< */,
11944                             xcb_timestamp_t        time  /**< */,
11945                             xcb_input_device_id_t  deviceid  /**< */)
11946 {
11947     static const xcb_protocol_request_t xcb_req = {
11948         /* count */ 2,
11949         /* ext */ &xcb_input_id,
11950         /* opcode */ XCB_INPUT_XI_UNGRAB_DEVICE,
11951         /* isvoid */ 1
11952     };
11953 
11954     struct iovec xcb_parts[4];
11955     xcb_void_cookie_t xcb_ret;
11956     xcb_input_xi_ungrab_device_request_t xcb_out;
11957 
11958     xcb_out.time = time;
11959     xcb_out.deviceid = deviceid;
11960     memset(xcb_out.pad0, 0, 2);
11961 
11962     xcb_parts[2].iov_base = (char *) &xcb_out;
11963     xcb_parts[2].iov_len = sizeof(xcb_out);
11964     xcb_parts[3].iov_base = 0;
11965     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11966 
11967     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11968     return xcb_ret;
11969 }
11970 
11971 
11972 /*****************************************************************************
11973  **
11974  ** xcb_void_cookie_t xcb_input_xi_allow_events_checked
11975  **
11976  ** @param xcb_connection_t      *c
11977  ** @param xcb_timestamp_t        time
11978  ** @param xcb_input_device_id_t  deviceid
11979  ** @param uint8_t                event_mode
11980  ** @param uint32_t               touchid
11981  ** @param xcb_window_t           grab_window
11982  ** @returns xcb_void_cookie_t
11983  **
11984  *****************************************************************************/
11985 
11986 xcb_void_cookie_t
11987 xcb_input_xi_allow_events_checked (xcb_connection_t      *c  /**< */,
11988                                    xcb_timestamp_t        time  /**< */,
11989                                    xcb_input_device_id_t  deviceid  /**< */,
11990                                    uint8_t                event_mode  /**< */,
11991                                    uint32_t               touchid  /**< */,
11992                                    xcb_window_t           grab_window  /**< */)
11993 {
11994     static const xcb_protocol_request_t xcb_req = {
11995         /* count */ 2,
11996         /* ext */ &xcb_input_id,
11997         /* opcode */ XCB_INPUT_XI_ALLOW_EVENTS,
11998         /* isvoid */ 1
11999     };
12000 
12001     struct iovec xcb_parts[4];
12002     xcb_void_cookie_t xcb_ret;
12003     xcb_input_xi_allow_events_request_t xcb_out;
12004 
12005     xcb_out.time = time;
12006     xcb_out.deviceid = deviceid;
12007     xcb_out.event_mode = event_mode;
12008     xcb_out.pad0 = 0;
12009     xcb_out.touchid = touchid;
12010     xcb_out.grab_window = grab_window;
12011 
12012     xcb_parts[2].iov_base = (char *) &xcb_out;
12013     xcb_parts[2].iov_len = sizeof(xcb_out);
12014     xcb_parts[3].iov_base = 0;
12015     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12016 
12017     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
12018     return xcb_ret;
12019 }
12020 
12021 
12022 /*****************************************************************************
12023  **
12024  ** xcb_void_cookie_t xcb_input_xi_allow_events
12025  **
12026  ** @param xcb_connection_t      *c
12027  ** @param xcb_timestamp_t        time
12028  ** @param xcb_input_device_id_t  deviceid
12029  ** @param uint8_t                event_mode
12030  ** @param uint32_t               touchid
12031  ** @param xcb_window_t           grab_window
12032  ** @returns xcb_void_cookie_t
12033  **
12034  *****************************************************************************/
12035 
12036 xcb_void_cookie_t
12037 xcb_input_xi_allow_events (xcb_connection_t      *c  /**< */,
12038                            xcb_timestamp_t        time  /**< */,
12039                            xcb_input_device_id_t  deviceid  /**< */,
12040                            uint8_t                event_mode  /**< */,
12041                            uint32_t               touchid  /**< */,
12042                            xcb_window_t           grab_window  /**< */)
12043 {
12044     static const xcb_protocol_request_t xcb_req = {
12045         /* count */ 2,
12046         /* ext */ &xcb_input_id,
12047         /* opcode */ XCB_INPUT_XI_ALLOW_EVENTS,
12048         /* isvoid */ 1
12049     };
12050 
12051     struct iovec xcb_parts[4];
12052     xcb_void_cookie_t xcb_ret;
12053     xcb_input_xi_allow_events_request_t xcb_out;
12054 
12055     xcb_out.time = time;
12056     xcb_out.deviceid = deviceid;
12057     xcb_out.event_mode = event_mode;
12058     xcb_out.pad0 = 0;
12059     xcb_out.touchid = touchid;
12060     xcb_out.grab_window = grab_window;
12061 
12062     xcb_parts[2].iov_base = (char *) &xcb_out;
12063     xcb_parts[2].iov_len = sizeof(xcb_out);
12064     xcb_parts[3].iov_base = 0;
12065     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12066 
12067     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12068     return xcb_ret;
12069 }
12070 
12071 
12072 /*****************************************************************************
12073  **
12074  ** void xcb_input_grab_modifier_info_next
12075  **
12076  ** @param xcb_input_grab_modifier_info_iterator_t *i
12077  ** @returns void
12078  **
12079  *****************************************************************************/
12080 
12081 void
12082 xcb_input_grab_modifier_info_next (xcb_input_grab_modifier_info_iterator_t *i  /**< */)
12083 {
12084     --i->rem;
12085     ++i->data;
12086     i->index += sizeof(xcb_input_grab_modifier_info_t);
12087 }
12088 
12089 
12090 /*****************************************************************************
12091  **
12092  ** xcb_generic_iterator_t xcb_input_grab_modifier_info_end
12093  **
12094  ** @param xcb_input_grab_modifier_info_iterator_t i
12095  ** @returns xcb_generic_iterator_t
12096  **
12097  *****************************************************************************/
12098 
12099 xcb_generic_iterator_t
12100 xcb_input_grab_modifier_info_end (xcb_input_grab_modifier_info_iterator_t i  /**< */)
12101 {
12102     xcb_generic_iterator_t ret;
12103     ret.data = i.data + i.rem;
12104     ret.index = i.index + ((char *) ret.data - (char *) i.data);
12105     ret.rem = 0;
12106     return ret;
12107 }
12108 
12109 int
12110 xcb_input_xi_passive_grab_device_sizeof (const void  *_buffer  /**< */)
12111 {
12112     char *xcb_tmp = (char *)_buffer;
12113     const xcb_input_xi_passive_grab_device_request_t *_aux = (xcb_input_xi_passive_grab_device_request_t *)_buffer;
12114     unsigned int xcb_buffer_len = 0;
12115     unsigned int xcb_block_len = 0;
12116     unsigned int xcb_pad = 0;
12117     unsigned int xcb_align_to = 0;
12118 
12119 
12120     xcb_block_len += sizeof(xcb_input_xi_passive_grab_device_request_t);
12121     xcb_tmp += xcb_block_len;
12122     xcb_buffer_len += xcb_block_len;
12123     xcb_block_len = 0;
12124     /* mask */
12125     xcb_block_len += _aux->mask_len * sizeof(uint32_t);
12126     xcb_tmp += xcb_block_len;
12127     xcb_align_to = ALIGNOF(uint32_t);
12128     /* insert padding */
12129     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12130     xcb_buffer_len += xcb_block_len + xcb_pad;
12131     if (0 != xcb_pad) {
12132         xcb_tmp += xcb_pad;
12133         xcb_pad = 0;
12134     }
12135     xcb_block_len = 0;
12136     /* modifiers */
12137     xcb_block_len += _aux->num_modifiers * sizeof(uint32_t);
12138     xcb_tmp += xcb_block_len;
12139     xcb_align_to = ALIGNOF(uint32_t);
12140     /* insert padding */
12141     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12142     xcb_buffer_len += xcb_block_len + xcb_pad;
12143     if (0 != xcb_pad) {
12144         xcb_tmp += xcb_pad;
12145         xcb_pad = 0;
12146     }
12147     xcb_block_len = 0;
12148 
12149     return xcb_buffer_len;
12150 }
12151 
12152 
12153 /*****************************************************************************
12154  **
12155  ** xcb_input_xi_passive_grab_device_cookie_t xcb_input_xi_passive_grab_device
12156  **
12157  ** @param xcb_connection_t      *c
12158  ** @param xcb_timestamp_t        time
12159  ** @param xcb_window_t           grab_window
12160  ** @param xcb_cursor_t           cursor
12161  ** @param uint32_t               detail
12162  ** @param xcb_input_device_id_t  deviceid
12163  ** @param uint16_t               num_modifiers
12164  ** @param uint16_t               mask_len
12165  ** @param uint8_t                grab_type
12166  ** @param uint8_t                grab_mode
12167  ** @param uint8_t                paired_device_mode
12168  ** @param uint8_t                owner_events
12169  ** @param const uint32_t        *mask
12170  ** @param const uint32_t        *modifiers
12171  ** @returns xcb_input_xi_passive_grab_device_cookie_t
12172  **
12173  *****************************************************************************/
12174 
12175 xcb_input_xi_passive_grab_device_cookie_t
12176 xcb_input_xi_passive_grab_device (xcb_connection_t      *c  /**< */,
12177                                   xcb_timestamp_t        time  /**< */,
12178                                   xcb_window_t           grab_window  /**< */,
12179                                   xcb_cursor_t           cursor  /**< */,
12180                                   uint32_t               detail  /**< */,
12181                                   xcb_input_device_id_t  deviceid  /**< */,
12182                                   uint16_t               num_modifiers  /**< */,
12183                                   uint16_t               mask_len  /**< */,
12184                                   uint8_t                grab_type  /**< */,
12185                                   uint8_t                grab_mode  /**< */,
12186                                   uint8_t                paired_device_mode  /**< */,
12187                                   uint8_t                owner_events  /**< */,
12188                                   const uint32_t        *mask  /**< */,
12189                                   const uint32_t        *modifiers  /**< */)
12190 {
12191     static const xcb_protocol_request_t xcb_req = {
12192         /* count */ 6,
12193         /* ext */ &xcb_input_id,
12194         /* opcode */ XCB_INPUT_XI_PASSIVE_GRAB_DEVICE,
12195         /* isvoid */ 0
12196     };
12197 
12198     struct iovec xcb_parts[8];
12199     xcb_input_xi_passive_grab_device_cookie_t xcb_ret;
12200     xcb_input_xi_passive_grab_device_request_t xcb_out;
12201 
12202     xcb_out.time = time;
12203     xcb_out.grab_window = grab_window;
12204     xcb_out.cursor = cursor;
12205     xcb_out.detail = detail;
12206     xcb_out.deviceid = deviceid;
12207     xcb_out.num_modifiers = num_modifiers;
12208     xcb_out.mask_len = mask_len;
12209     xcb_out.grab_type = grab_type;
12210     xcb_out.grab_mode = grab_mode;
12211     xcb_out.paired_device_mode = paired_device_mode;
12212     xcb_out.owner_events = owner_events;
12213     memset(xcb_out.pad0, 0, 2);
12214 
12215     xcb_parts[2].iov_base = (char *) &xcb_out;
12216     xcb_parts[2].iov_len = sizeof(xcb_out);
12217     xcb_parts[3].iov_base = 0;
12218     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12219     /* uint32_t mask */
12220     xcb_parts[4].iov_base = (char *) mask;
12221     xcb_parts[4].iov_len = mask_len * sizeof(uint32_t);
12222     xcb_parts[5].iov_base = 0;
12223     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
12224     /* uint32_t modifiers */
12225     xcb_parts[6].iov_base = (char *) modifiers;
12226     xcb_parts[6].iov_len = num_modifiers * sizeof(uint32_t);
12227     xcb_parts[7].iov_base = 0;
12228     xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
12229 
12230     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
12231     return xcb_ret;
12232 }
12233 
12234 
12235 /*****************************************************************************
12236  **
12237  ** xcb_input_xi_passive_grab_device_cookie_t xcb_input_xi_passive_grab_device_unchecked
12238  **
12239  ** @param xcb_connection_t      *c
12240  ** @param xcb_timestamp_t        time
12241  ** @param xcb_window_t           grab_window
12242  ** @param xcb_cursor_t           cursor
12243  ** @param uint32_t               detail
12244  ** @param xcb_input_device_id_t  deviceid
12245  ** @param uint16_t               num_modifiers
12246  ** @param uint16_t               mask_len
12247  ** @param uint8_t                grab_type
12248  ** @param uint8_t                grab_mode
12249  ** @param uint8_t                paired_device_mode
12250  ** @param uint8_t                owner_events
12251  ** @param const uint32_t        *mask
12252  ** @param const uint32_t        *modifiers
12253  ** @returns xcb_input_xi_passive_grab_device_cookie_t
12254  **
12255  *****************************************************************************/
12256 
12257 xcb_input_xi_passive_grab_device_cookie_t
12258 xcb_input_xi_passive_grab_device_unchecked (xcb_connection_t      *c  /**< */,
12259                                             xcb_timestamp_t        time  /**< */,
12260                                             xcb_window_t           grab_window  /**< */,
12261                                             xcb_cursor_t           cursor  /**< */,
12262                                             uint32_t               detail  /**< */,
12263                                             xcb_input_device_id_t  deviceid  /**< */,
12264                                             uint16_t               num_modifiers  /**< */,
12265                                             uint16_t               mask_len  /**< */,
12266                                             uint8_t                grab_type  /**< */,
12267                                             uint8_t                grab_mode  /**< */,
12268                                             uint8_t                paired_device_mode  /**< */,
12269                                             uint8_t                owner_events  /**< */,
12270                                             const uint32_t        *mask  /**< */,
12271                                             const uint32_t        *modifiers  /**< */)
12272 {
12273     static const xcb_protocol_request_t xcb_req = {
12274         /* count */ 6,
12275         /* ext */ &xcb_input_id,
12276         /* opcode */ XCB_INPUT_XI_PASSIVE_GRAB_DEVICE,
12277         /* isvoid */ 0
12278     };
12279 
12280     struct iovec xcb_parts[8];
12281     xcb_input_xi_passive_grab_device_cookie_t xcb_ret;
12282     xcb_input_xi_passive_grab_device_request_t xcb_out;
12283 
12284     xcb_out.time = time;
12285     xcb_out.grab_window = grab_window;
12286     xcb_out.cursor = cursor;
12287     xcb_out.detail = detail;
12288     xcb_out.deviceid = deviceid;
12289     xcb_out.num_modifiers = num_modifiers;
12290     xcb_out.mask_len = mask_len;
12291     xcb_out.grab_type = grab_type;
12292     xcb_out.grab_mode = grab_mode;
12293     xcb_out.paired_device_mode = paired_device_mode;
12294     xcb_out.owner_events = owner_events;
12295     memset(xcb_out.pad0, 0, 2);
12296 
12297     xcb_parts[2].iov_base = (char *) &xcb_out;
12298     xcb_parts[2].iov_len = sizeof(xcb_out);
12299     xcb_parts[3].iov_base = 0;
12300     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12301     /* uint32_t mask */
12302     xcb_parts[4].iov_base = (char *) mask;
12303     xcb_parts[4].iov_len = mask_len * sizeof(uint32_t);
12304     xcb_parts[5].iov_base = 0;
12305     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
12306     /* uint32_t modifiers */
12307     xcb_parts[6].iov_base = (char *) modifiers;
12308     xcb_parts[6].iov_len = num_modifiers * sizeof(uint32_t);
12309     xcb_parts[7].iov_base = 0;
12310     xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
12311 
12312     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12313     return xcb_ret;
12314 }
12315 
12316 
12317 /*****************************************************************************
12318  **
12319  ** xcb_input_grab_modifier_info_t * xcb_input_xi_passive_grab_device_modifiers
12320  **
12321  ** @param const xcb_input_xi_passive_grab_device_reply_t *R
12322  ** @returns xcb_input_grab_modifier_info_t *
12323  **
12324  *****************************************************************************/
12325 
12326 xcb_input_grab_modifier_info_t *
12327 xcb_input_xi_passive_grab_device_modifiers (const xcb_input_xi_passive_grab_device_reply_t *R  /**< */)
12328 {
12329     return (xcb_input_grab_modifier_info_t *) (R + 1);
12330 }
12331 
12332 
12333 /*****************************************************************************
12334  **
12335  ** int xcb_input_xi_passive_grab_device_modifiers_length
12336  **
12337  ** @param const xcb_input_xi_passive_grab_device_reply_t *R
12338  ** @returns int
12339  **
12340  *****************************************************************************/
12341 
12342 int
12343 xcb_input_xi_passive_grab_device_modifiers_length (const xcb_input_xi_passive_grab_device_reply_t *R  /**< */)
12344 {
12345     return R->num_modifiers;
12346 }
12347 
12348 
12349 /*****************************************************************************
12350  **
12351  ** xcb_input_grab_modifier_info_iterator_t xcb_input_xi_passive_grab_device_modifiers_iterator
12352  **
12353  ** @param const xcb_input_xi_passive_grab_device_reply_t *R
12354  ** @returns xcb_input_grab_modifier_info_iterator_t
12355  **
12356  *****************************************************************************/
12357 
12358 xcb_input_grab_modifier_info_iterator_t
12359 xcb_input_xi_passive_grab_device_modifiers_iterator (const xcb_input_xi_passive_grab_device_reply_t *R  /**< */)
12360 {
12361     xcb_input_grab_modifier_info_iterator_t i;
12362     i.data = (xcb_input_grab_modifier_info_t *) (R + 1);
12363     i.rem = R->num_modifiers;
12364     i.index = (char *) i.data - (char *) R;
12365     return i;
12366 }
12367 
12368 
12369 /*****************************************************************************
12370  **
12371  ** xcb_input_xi_passive_grab_device_reply_t * xcb_input_xi_passive_grab_device_reply
12372  **
12373  ** @param xcb_connection_t                           *c
12374  ** @param xcb_input_xi_passive_grab_device_cookie_t   cookie
12375  ** @param xcb_generic_error_t                       **e
12376  ** @returns xcb_input_xi_passive_grab_device_reply_t *
12377  **
12378  *****************************************************************************/
12379 
12380 xcb_input_xi_passive_grab_device_reply_t *
12381 xcb_input_xi_passive_grab_device_reply (xcb_connection_t                           *c  /**< */,
12382                                         xcb_input_xi_passive_grab_device_cookie_t   cookie  /**< */,
12383                                         xcb_generic_error_t                       **e  /**< */)
12384 {
12385     return (xcb_input_xi_passive_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
12386 }
12387 
12388 int
12389 xcb_input_xi_passive_ungrab_device_sizeof (const void  *_buffer  /**< */)
12390 {
12391     char *xcb_tmp = (char *)_buffer;
12392     const xcb_input_xi_passive_ungrab_device_request_t *_aux = (xcb_input_xi_passive_ungrab_device_request_t *)_buffer;
12393     unsigned int xcb_buffer_len = 0;
12394     unsigned int xcb_block_len = 0;
12395     unsigned int xcb_pad = 0;
12396     unsigned int xcb_align_to = 0;
12397 
12398 
12399     xcb_block_len += sizeof(xcb_input_xi_passive_ungrab_device_request_t);
12400     xcb_tmp += xcb_block_len;
12401     xcb_buffer_len += xcb_block_len;
12402     xcb_block_len = 0;
12403     /* modifiers */
12404     xcb_block_len += _aux->num_modifiers * sizeof(uint32_t);
12405     xcb_tmp += xcb_block_len;
12406     xcb_align_to = ALIGNOF(uint32_t);
12407     /* insert padding */
12408     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12409     xcb_buffer_len += xcb_block_len + xcb_pad;
12410     if (0 != xcb_pad) {
12411         xcb_tmp += xcb_pad;
12412         xcb_pad = 0;
12413     }
12414     xcb_block_len = 0;
12415 
12416     return xcb_buffer_len;
12417 }
12418 
12419 
12420 /*****************************************************************************
12421  **
12422  ** xcb_void_cookie_t xcb_input_xi_passive_ungrab_device_checked
12423  **
12424  ** @param xcb_connection_t      *c
12425  ** @param xcb_window_t           grab_window
12426  ** @param uint32_t               detail
12427  ** @param xcb_input_device_id_t  deviceid
12428  ** @param uint16_t               num_modifiers
12429  ** @param uint8_t                grab_type
12430  ** @param const uint32_t        *modifiers
12431  ** @returns xcb_void_cookie_t
12432  **
12433  *****************************************************************************/
12434 
12435 xcb_void_cookie_t
12436 xcb_input_xi_passive_ungrab_device_checked (xcb_connection_t      *c  /**< */,
12437                                             xcb_window_t           grab_window  /**< */,
12438                                             uint32_t               detail  /**< */,
12439                                             xcb_input_device_id_t  deviceid  /**< */,
12440                                             uint16_t               num_modifiers  /**< */,
12441                                             uint8_t                grab_type  /**< */,
12442                                             const uint32_t        *modifiers  /**< */)
12443 {
12444     static const xcb_protocol_request_t xcb_req = {
12445         /* count */ 4,
12446         /* ext */ &xcb_input_id,
12447         /* opcode */ XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE,
12448         /* isvoid */ 1
12449     };
12450 
12451     struct iovec xcb_parts[6];
12452     xcb_void_cookie_t xcb_ret;
12453     xcb_input_xi_passive_ungrab_device_request_t xcb_out;
12454 
12455     xcb_out.grab_window = grab_window;
12456     xcb_out.detail = detail;
12457     xcb_out.deviceid = deviceid;
12458     xcb_out.num_modifiers = num_modifiers;
12459     xcb_out.grab_type = grab_type;
12460     memset(xcb_out.pad0, 0, 3);
12461 
12462     xcb_parts[2].iov_base = (char *) &xcb_out;
12463     xcb_parts[2].iov_len = sizeof(xcb_out);
12464     xcb_parts[3].iov_base = 0;
12465     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12466     /* uint32_t modifiers */
12467     xcb_parts[4].iov_base = (char *) modifiers;
12468     xcb_parts[4].iov_len = num_modifiers * sizeof(uint32_t);
12469     xcb_parts[5].iov_base = 0;
12470     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
12471 
12472     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
12473     return xcb_ret;
12474 }
12475 
12476 
12477 /*****************************************************************************
12478  **
12479  ** xcb_void_cookie_t xcb_input_xi_passive_ungrab_device
12480  **
12481  ** @param xcb_connection_t      *c
12482  ** @param xcb_window_t           grab_window
12483  ** @param uint32_t               detail
12484  ** @param xcb_input_device_id_t  deviceid
12485  ** @param uint16_t               num_modifiers
12486  ** @param uint8_t                grab_type
12487  ** @param const uint32_t        *modifiers
12488  ** @returns xcb_void_cookie_t
12489  **
12490  *****************************************************************************/
12491 
12492 xcb_void_cookie_t
12493 xcb_input_xi_passive_ungrab_device (xcb_connection_t      *c  /**< */,
12494                                     xcb_window_t           grab_window  /**< */,
12495                                     uint32_t               detail  /**< */,
12496                                     xcb_input_device_id_t  deviceid  /**< */,
12497                                     uint16_t               num_modifiers  /**< */,
12498                                     uint8_t                grab_type  /**< */,
12499                                     const uint32_t        *modifiers  /**< */)
12500 {
12501     static const xcb_protocol_request_t xcb_req = {
12502         /* count */ 4,
12503         /* ext */ &xcb_input_id,
12504         /* opcode */ XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE,
12505         /* isvoid */ 1
12506     };
12507 
12508     struct iovec xcb_parts[6];
12509     xcb_void_cookie_t xcb_ret;
12510     xcb_input_xi_passive_ungrab_device_request_t xcb_out;
12511 
12512     xcb_out.grab_window = grab_window;
12513     xcb_out.detail = detail;
12514     xcb_out.deviceid = deviceid;
12515     xcb_out.num_modifiers = num_modifiers;
12516     xcb_out.grab_type = grab_type;
12517     memset(xcb_out.pad0, 0, 3);
12518 
12519     xcb_parts[2].iov_base = (char *) &xcb_out;
12520     xcb_parts[2].iov_len = sizeof(xcb_out);
12521     xcb_parts[3].iov_base = 0;
12522     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12523     /* uint32_t modifiers */
12524     xcb_parts[4].iov_base = (char *) modifiers;
12525     xcb_parts[4].iov_len = num_modifiers * sizeof(uint32_t);
12526     xcb_parts[5].iov_base = 0;
12527     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
12528 
12529     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12530     return xcb_ret;
12531 }
12532 
12533 int
12534 xcb_input_xi_list_properties_sizeof (const void  *_buffer  /**< */)
12535 {
12536     char *xcb_tmp = (char *)_buffer;
12537     const xcb_input_xi_list_properties_reply_t *_aux = (xcb_input_xi_list_properties_reply_t *)_buffer;
12538     unsigned int xcb_buffer_len = 0;
12539     unsigned int xcb_block_len = 0;
12540     unsigned int xcb_pad = 0;
12541     unsigned int xcb_align_to = 0;
12542 
12543 
12544     xcb_block_len += sizeof(xcb_input_xi_list_properties_reply_t);
12545     xcb_tmp += xcb_block_len;
12546     xcb_buffer_len += xcb_block_len;
12547     xcb_block_len = 0;
12548     /* properties */
12549     xcb_block_len += _aux->num_properties * sizeof(xcb_atom_t);
12550     xcb_tmp += xcb_block_len;
12551     xcb_align_to = ALIGNOF(xcb_atom_t);
12552     /* insert padding */
12553     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12554     xcb_buffer_len += xcb_block_len + xcb_pad;
12555     if (0 != xcb_pad) {
12556         xcb_tmp += xcb_pad;
12557         xcb_pad = 0;
12558     }
12559     xcb_block_len = 0;
12560 
12561     return xcb_buffer_len;
12562 }
12563 
12564 
12565 /*****************************************************************************
12566  **
12567  ** xcb_input_xi_list_properties_cookie_t xcb_input_xi_list_properties
12568  **
12569  ** @param xcb_connection_t      *c
12570  ** @param xcb_input_device_id_t  deviceid
12571  ** @returns xcb_input_xi_list_properties_cookie_t
12572  **
12573  *****************************************************************************/
12574 
12575 xcb_input_xi_list_properties_cookie_t
12576 xcb_input_xi_list_properties (xcb_connection_t      *c  /**< */,
12577                               xcb_input_device_id_t  deviceid  /**< */)
12578 {
12579     static const xcb_protocol_request_t xcb_req = {
12580         /* count */ 2,
12581         /* ext */ &xcb_input_id,
12582         /* opcode */ XCB_INPUT_XI_LIST_PROPERTIES,
12583         /* isvoid */ 0
12584     };
12585 
12586     struct iovec xcb_parts[4];
12587     xcb_input_xi_list_properties_cookie_t xcb_ret;
12588     xcb_input_xi_list_properties_request_t xcb_out;
12589 
12590     xcb_out.deviceid = deviceid;
12591     memset(xcb_out.pad0, 0, 2);
12592 
12593     xcb_parts[2].iov_base = (char *) &xcb_out;
12594     xcb_parts[2].iov_len = sizeof(xcb_out);
12595     xcb_parts[3].iov_base = 0;
12596     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12597 
12598     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
12599     return xcb_ret;
12600 }
12601 
12602 
12603 /*****************************************************************************
12604  **
12605  ** xcb_input_xi_list_properties_cookie_t xcb_input_xi_list_properties_unchecked
12606  **
12607  ** @param xcb_connection_t      *c
12608  ** @param xcb_input_device_id_t  deviceid
12609  ** @returns xcb_input_xi_list_properties_cookie_t
12610  **
12611  *****************************************************************************/
12612 
12613 xcb_input_xi_list_properties_cookie_t
12614 xcb_input_xi_list_properties_unchecked (xcb_connection_t      *c  /**< */,
12615                                         xcb_input_device_id_t  deviceid  /**< */)
12616 {
12617     static const xcb_protocol_request_t xcb_req = {
12618         /* count */ 2,
12619         /* ext */ &xcb_input_id,
12620         /* opcode */ XCB_INPUT_XI_LIST_PROPERTIES,
12621         /* isvoid */ 0
12622     };
12623 
12624     struct iovec xcb_parts[4];
12625     xcb_input_xi_list_properties_cookie_t xcb_ret;
12626     xcb_input_xi_list_properties_request_t xcb_out;
12627 
12628     xcb_out.deviceid = deviceid;
12629     memset(xcb_out.pad0, 0, 2);
12630 
12631     xcb_parts[2].iov_base = (char *) &xcb_out;
12632     xcb_parts[2].iov_len = sizeof(xcb_out);
12633     xcb_parts[3].iov_base = 0;
12634     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12635 
12636     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12637     return xcb_ret;
12638 }
12639 
12640 
12641 /*****************************************************************************
12642  **
12643  ** xcb_atom_t * xcb_input_xi_list_properties_properties
12644  **
12645  ** @param const xcb_input_xi_list_properties_reply_t *R
12646  ** @returns xcb_atom_t *
12647  **
12648  *****************************************************************************/
12649 
12650 xcb_atom_t *
12651 xcb_input_xi_list_properties_properties (const xcb_input_xi_list_properties_reply_t *R  /**< */)
12652 {
12653     return (xcb_atom_t *) (R + 1);
12654 }
12655 
12656 
12657 /*****************************************************************************
12658  **
12659  ** int xcb_input_xi_list_properties_properties_length
12660  **
12661  ** @param const xcb_input_xi_list_properties_reply_t *R
12662  ** @returns int
12663  **
12664  *****************************************************************************/
12665 
12666 int
12667 xcb_input_xi_list_properties_properties_length (const xcb_input_xi_list_properties_reply_t *R  /**< */)
12668 {
12669     return R->num_properties;
12670 }
12671 
12672 
12673 /*****************************************************************************
12674  **
12675  ** xcb_generic_iterator_t xcb_input_xi_list_properties_properties_end
12676  **
12677  ** @param const xcb_input_xi_list_properties_reply_t *R
12678  ** @returns xcb_generic_iterator_t
12679  **
12680  *****************************************************************************/
12681 
12682 xcb_generic_iterator_t
12683 xcb_input_xi_list_properties_properties_end (const xcb_input_xi_list_properties_reply_t *R  /**< */)
12684 {
12685     xcb_generic_iterator_t i;
12686     i.data = ((xcb_atom_t *) (R + 1)) + (R->num_properties);
12687     i.rem = 0;
12688     i.index = (char *) i.data - (char *) R;
12689     return i;
12690 }
12691 
12692 
12693 /*****************************************************************************
12694  **
12695  ** xcb_input_xi_list_properties_reply_t * xcb_input_xi_list_properties_reply
12696  **
12697  ** @param xcb_connection_t                       *c
12698  ** @param xcb_input_xi_list_properties_cookie_t   cookie
12699  ** @param xcb_generic_error_t                   **e
12700  ** @returns xcb_input_xi_list_properties_reply_t *
12701  **
12702  *****************************************************************************/
12703 
12704 xcb_input_xi_list_properties_reply_t *
12705 xcb_input_xi_list_properties_reply (xcb_connection_t                       *c  /**< */,
12706                                     xcb_input_xi_list_properties_cookie_t   cookie  /**< */,
12707                                     xcb_generic_error_t                   **e  /**< */)
12708 {
12709     return (xcb_input_xi_list_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
12710 }
12711 
12712 
12713 /*****************************************************************************
12714  **
12715  ** uint8_t * xcb_input_xi_change_property_items_data_8
12716  **
12717  ** @param const xcb_input_xi_change_property_items_t *S
12718  ** @returns uint8_t *
12719  **
12720  *****************************************************************************/
12721 
12722 uint8_t *
12723 xcb_input_xi_change_property_items_data_8 (const xcb_input_xi_change_property_items_t *S  /**< */)
12724 {
12725     return /* items */ S->data8;
12726 }
12727 
12728 
12729 /*****************************************************************************
12730  **
12731  ** int xcb_input_xi_change_property_items_data_8_length
12732  **
12733  ** @param const xcb_input_xi_change_property_items_t *R
12734  ** @returns int
12735  **
12736  *****************************************************************************/
12737 
12738 int
12739 xcb_input_xi_change_property_items_data_8_length (const xcb_input_xi_change_property_request_t *R  /**< */,
12740                                                   const xcb_input_xi_change_property_items_t *S  /**< */)
12741 {
12742     return R->num_items;
12743 }
12744 
12745 
12746 /*****************************************************************************
12747  **
12748  ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_8_end
12749  **
12750  ** @param const xcb_input_xi_change_property_items_t *R
12751  ** @returns xcb_generic_iterator_t
12752  **
12753  *****************************************************************************/
12754 
12755 xcb_generic_iterator_t
12756 xcb_input_xi_change_property_items_data_8_end (const xcb_input_xi_change_property_request_t *R  /**< */,
12757                                                const xcb_input_xi_change_property_items_t *S  /**< */)
12758 {
12759     xcb_generic_iterator_t i;
12760     i.data = /* items */ S->data8 + R->num_items;
12761     i.rem = 0;
12762     i.index = (char *) i.data - (char *) S;
12763     return i;
12764 }
12765 
12766 
12767 /*****************************************************************************
12768  **
12769  ** uint16_t * xcb_input_xi_change_property_items_data_16
12770  **
12771  ** @param const xcb_input_xi_change_property_items_t *S
12772  ** @returns uint16_t *
12773  **
12774  *****************************************************************************/
12775 
12776 uint16_t *
12777 xcb_input_xi_change_property_items_data_16 (const xcb_input_xi_change_property_items_t *S  /**< */)
12778 {
12779     return /* items */ S->data16;
12780 }
12781 
12782 
12783 /*****************************************************************************
12784  **
12785  ** int xcb_input_xi_change_property_items_data_16_length
12786  **
12787  ** @param const xcb_input_xi_change_property_items_t *R
12788  ** @returns int
12789  **
12790  *****************************************************************************/
12791 
12792 int
12793 xcb_input_xi_change_property_items_data_16_length (const xcb_input_xi_change_property_request_t *R  /**< */,
12794                                                    const xcb_input_xi_change_property_items_t *S  /**< */)
12795 {
12796     return R->num_items;
12797 }
12798 
12799 
12800 /*****************************************************************************
12801  **
12802  ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_16_end
12803  **
12804  ** @param const xcb_input_xi_change_property_items_t *R
12805  ** @returns xcb_generic_iterator_t
12806  **
12807  *****************************************************************************/
12808 
12809 xcb_generic_iterator_t
12810 xcb_input_xi_change_property_items_data_16_end (const xcb_input_xi_change_property_request_t *R  /**< */,
12811                                                 const xcb_input_xi_change_property_items_t *S  /**< */)
12812 {
12813     xcb_generic_iterator_t i;
12814     i.data = /* items */ S->data16 + R->num_items;
12815     i.rem = 0;
12816     i.index = (char *) i.data - (char *) S;
12817     return i;
12818 }
12819 
12820 
12821 /*****************************************************************************
12822  **
12823  ** uint32_t * xcb_input_xi_change_property_items_data_32
12824  **
12825  ** @param const xcb_input_xi_change_property_items_t *S
12826  ** @returns uint32_t *
12827  **
12828  *****************************************************************************/
12829 
12830 uint32_t *
12831 xcb_input_xi_change_property_items_data_32 (const xcb_input_xi_change_property_items_t *S  /**< */)
12832 {
12833     return /* items */ S->data32;
12834 }
12835 
12836 
12837 /*****************************************************************************
12838  **
12839  ** int xcb_input_xi_change_property_items_data_32_length
12840  **
12841  ** @param const xcb_input_xi_change_property_items_t *R
12842  ** @returns int
12843  **
12844  *****************************************************************************/
12845 
12846 int
12847 xcb_input_xi_change_property_items_data_32_length (const xcb_input_xi_change_property_request_t *R  /**< */,
12848                                                    const xcb_input_xi_change_property_items_t *S  /**< */)
12849 {
12850     return R->num_items;
12851 }
12852 
12853 
12854 /*****************************************************************************
12855  **
12856  ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_32_end
12857  **
12858  ** @param const xcb_input_xi_change_property_items_t *R
12859  ** @returns xcb_generic_iterator_t
12860  **
12861  *****************************************************************************/
12862 
12863 xcb_generic_iterator_t
12864 xcb_input_xi_change_property_items_data_32_end (const xcb_input_xi_change_property_request_t *R  /**< */,
12865                                                 const xcb_input_xi_change_property_items_t *S  /**< */)
12866 {
12867     xcb_generic_iterator_t i;
12868     i.data = /* items */ S->data32 + R->num_items;
12869     i.rem = 0;
12870     i.index = (char *) i.data - (char *) S;
12871     return i;
12872 }
12873 
12874 int
12875 xcb_input_xi_change_property_items_serialize (void                                       **_buffer  /**< */,
12876                                               uint32_t                                     num_items  /**< */,
12877                                               uint8_t                                      format  /**< */,
12878                                               const xcb_input_xi_change_property_items_t  *_aux  /**< */)
12879 {
12880     char *xcb_out = *_buffer;
12881     unsigned int xcb_buffer_len = 0;
12882     unsigned int xcb_align_to = 0;
12883 
12884     unsigned int xcb_pad = 0;
12885     char xcb_pad0[3] = {0, 0, 0};
12886     struct iovec xcb_parts[7];
12887     unsigned int xcb_parts_idx = 0;
12888     unsigned int xcb_block_len = 0;
12889     unsigned int i;
12890     char *xcb_tmp;
12891 
12892     if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
12893         /* insert padding */
12894         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12895         xcb_buffer_len += xcb_block_len + xcb_pad;
12896         if (0 != xcb_pad) {
12897             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
12898             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
12899             xcb_parts_idx++;
12900             xcb_pad = 0;
12901         }
12902         xcb_block_len = 0;
12903         /* data8 */
12904         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data8;
12905         xcb_block_len += num_items * sizeof(uint8_t);
12906         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint8_t);
12907         xcb_parts_idx++;
12908         xcb_align_to = ALIGNOF(uint8_t);
12909     }
12910     if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
12911         /* insert padding */
12912         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12913         xcb_buffer_len += xcb_block_len + xcb_pad;
12914         if (0 != xcb_pad) {
12915             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
12916             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
12917             xcb_parts_idx++;
12918             xcb_pad = 0;
12919         }
12920         xcb_block_len = 0;
12921         /* data16 */
12922         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data16;
12923         xcb_block_len += num_items * sizeof(uint16_t);
12924         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint16_t);
12925         xcb_parts_idx++;
12926         xcb_align_to = ALIGNOF(uint16_t);
12927     }
12928     if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
12929         /* insert padding */
12930         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12931         xcb_buffer_len += xcb_block_len + xcb_pad;
12932         if (0 != xcb_pad) {
12933             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
12934             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
12935             xcb_parts_idx++;
12936             xcb_pad = 0;
12937         }
12938         xcb_block_len = 0;
12939         /* data32 */
12940         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data32;
12941         xcb_block_len += num_items * sizeof(uint32_t);
12942         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint32_t);
12943         xcb_parts_idx++;
12944         xcb_align_to = ALIGNOF(uint32_t);
12945     }
12946     /* insert padding */
12947     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12948     xcb_buffer_len += xcb_block_len + xcb_pad;
12949     if (0 != xcb_pad) {
12950         xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
12951         xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
12952         xcb_parts_idx++;
12953         xcb_pad = 0;
12954     }
12955     xcb_block_len = 0;
12956 
12957     if (NULL == xcb_out) {
12958         /* allocate memory */
12959         xcb_out = malloc(xcb_buffer_len);
12960         *_buffer = xcb_out;
12961     }
12962 
12963     xcb_tmp = xcb_out;
12964     for(i=0; i<xcb_parts_idx; i++) {
12965         if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
12966             memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
12967         if (0 != xcb_parts[i].iov_len)
12968             xcb_tmp += xcb_parts[i].iov_len;
12969     }
12970 
12971     return xcb_buffer_len;
12972 }
12973 
12974 int
12975 xcb_input_xi_change_property_items_unpack (const void                            *_buffer  /**< */,
12976                                            uint32_t                               num_items  /**< */,
12977                                            uint8_t                                format  /**< */,
12978                                            xcb_input_xi_change_property_items_t  *_aux  /**< */)
12979 {
12980     char *xcb_tmp = (char *)_buffer;
12981     unsigned int xcb_buffer_len = 0;
12982     unsigned int xcb_block_len = 0;
12983     unsigned int xcb_pad = 0;
12984     unsigned int xcb_align_to = 0;
12985 
12986 
12987     if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
12988         /* insert padding */
12989         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12990         xcb_buffer_len += xcb_block_len + xcb_pad;
12991         if (0 != xcb_pad) {
12992             xcb_tmp += xcb_pad;
12993             xcb_pad = 0;
12994         }
12995         xcb_block_len = 0;
12996         /* data8 */
12997         _aux->data8 = (uint8_t *)xcb_tmp;
12998         xcb_block_len += num_items * sizeof(uint8_t);
12999         xcb_tmp += xcb_block_len;
13000         xcb_align_to = ALIGNOF(uint8_t);
13001     }
13002     if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
13003         /* insert padding */
13004         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13005         xcb_buffer_len += xcb_block_len + xcb_pad;
13006         if (0 != xcb_pad) {
13007             xcb_tmp += xcb_pad;
13008             xcb_pad = 0;
13009         }
13010         xcb_block_len = 0;
13011         /* data16 */
13012         _aux->data16 = (uint16_t *)xcb_tmp;
13013         xcb_block_len += num_items * sizeof(uint16_t);
13014         xcb_tmp += xcb_block_len;
13015         xcb_align_to = ALIGNOF(uint16_t);
13016     }
13017     if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
13018         /* insert padding */
13019         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13020         xcb_buffer_len += xcb_block_len + xcb_pad;
13021         if (0 != xcb_pad) {
13022             xcb_tmp += xcb_pad;
13023             xcb_pad = 0;
13024         }
13025         xcb_block_len = 0;
13026         /* data32 */
13027         _aux->data32 = (uint32_t *)xcb_tmp;
13028         xcb_block_len += num_items * sizeof(uint32_t);
13029         xcb_tmp += xcb_block_len;
13030         xcb_align_to = ALIGNOF(uint32_t);
13031     }
13032     /* insert padding */
13033     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13034     xcb_buffer_len += xcb_block_len + xcb_pad;
13035     if (0 != xcb_pad) {
13036         xcb_tmp += xcb_pad;
13037         xcb_pad = 0;
13038     }
13039     xcb_block_len = 0;
13040 
13041     return xcb_buffer_len;
13042 }
13043 
13044 int
13045 xcb_input_xi_change_property_items_sizeof (const void  *_buffer  /**< */,
13046                                            uint32_t     num_items  /**< */,
13047                                            uint8_t      format  /**< */)
13048 {
13049     xcb_input_xi_change_property_items_t _aux;
13050     return xcb_input_xi_change_property_items_unpack(_buffer, num_items, format, &_aux);
13051 }
13052 
13053 
13054 /*****************************************************************************
13055  **
13056  ** xcb_void_cookie_t xcb_input_xi_change_property_checked
13057  **
13058  ** @param xcb_connection_t      *c
13059  ** @param xcb_input_device_id_t  deviceid
13060  ** @param uint8_t                mode
13061  ** @param uint8_t                format
13062  ** @param xcb_atom_t             property
13063  ** @param xcb_atom_t             type
13064  ** @param uint32_t               num_items
13065  ** @param const void            *items
13066  ** @returns xcb_void_cookie_t
13067  **
13068  *****************************************************************************/
13069 
13070 xcb_void_cookie_t
13071 xcb_input_xi_change_property_checked (xcb_connection_t      *c  /**< */,
13072                                       xcb_input_device_id_t  deviceid  /**< */,
13073                                       uint8_t                mode  /**< */,
13074                                       uint8_t                format  /**< */,
13075                                       xcb_atom_t             property  /**< */,
13076                                       xcb_atom_t             type  /**< */,
13077                                       uint32_t               num_items  /**< */,
13078                                       const void            *items  /**< */)
13079 {
13080     static const xcb_protocol_request_t xcb_req = {
13081         /* count */ 3,
13082         /* ext */ &xcb_input_id,
13083         /* opcode */ XCB_INPUT_XI_CHANGE_PROPERTY,
13084         /* isvoid */ 1
13085     };
13086 
13087     struct iovec xcb_parts[5];
13088     xcb_void_cookie_t xcb_ret;
13089     xcb_input_xi_change_property_request_t xcb_out;
13090 
13091     xcb_out.deviceid = deviceid;
13092     xcb_out.mode = mode;
13093     xcb_out.format = format;
13094     xcb_out.property = property;
13095     xcb_out.type = type;
13096     xcb_out.num_items = num_items;
13097 
13098     xcb_parts[2].iov_base = (char *) &xcb_out;
13099     xcb_parts[2].iov_len = sizeof(xcb_out);
13100     xcb_parts[3].iov_base = 0;
13101     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13102     /* xcb_input_xi_change_property_items_t items */
13103     xcb_parts[4].iov_base = (char *) items;
13104     xcb_parts[4].iov_len =
13105       xcb_input_xi_change_property_items_sizeof (items, num_items, format);
13106 
13107     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13108     return xcb_ret;
13109 }
13110 
13111 
13112 /*****************************************************************************
13113  **
13114  ** xcb_void_cookie_t xcb_input_xi_change_property
13115  **
13116  ** @param xcb_connection_t      *c
13117  ** @param xcb_input_device_id_t  deviceid
13118  ** @param uint8_t                mode
13119  ** @param uint8_t                format
13120  ** @param xcb_atom_t             property
13121  ** @param xcb_atom_t             type
13122  ** @param uint32_t               num_items
13123  ** @param const void            *items
13124  ** @returns xcb_void_cookie_t
13125  **
13126  *****************************************************************************/
13127 
13128 xcb_void_cookie_t
13129 xcb_input_xi_change_property (xcb_connection_t      *c  /**< */,
13130                               xcb_input_device_id_t  deviceid  /**< */,
13131                               uint8_t                mode  /**< */,
13132                               uint8_t                format  /**< */,
13133                               xcb_atom_t             property  /**< */,
13134                               xcb_atom_t             type  /**< */,
13135                               uint32_t               num_items  /**< */,
13136                               const void            *items  /**< */)
13137 {
13138     static const xcb_protocol_request_t xcb_req = {
13139         /* count */ 3,
13140         /* ext */ &xcb_input_id,
13141         /* opcode */ XCB_INPUT_XI_CHANGE_PROPERTY,
13142         /* isvoid */ 1
13143     };
13144 
13145     struct iovec xcb_parts[5];
13146     xcb_void_cookie_t xcb_ret;
13147     xcb_input_xi_change_property_request_t xcb_out;
13148 
13149     xcb_out.deviceid = deviceid;
13150     xcb_out.mode = mode;
13151     xcb_out.format = format;
13152     xcb_out.property = property;
13153     xcb_out.type = type;
13154     xcb_out.num_items = num_items;
13155 
13156     xcb_parts[2].iov_base = (char *) &xcb_out;
13157     xcb_parts[2].iov_len = sizeof(xcb_out);
13158     xcb_parts[3].iov_base = 0;
13159     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13160     /* xcb_input_xi_change_property_items_t items */
13161     xcb_parts[4].iov_base = (char *) items;
13162     xcb_parts[4].iov_len =
13163       xcb_input_xi_change_property_items_sizeof (items, num_items, format);
13164 
13165     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13166     return xcb_ret;
13167 }
13168 
13169 
13170 /*****************************************************************************
13171  **
13172  ** xcb_void_cookie_t xcb_input_xi_change_property_aux_checked
13173  **
13174  ** @param xcb_connection_t                           *c
13175  ** @param xcb_input_device_id_t                       deviceid
13176  ** @param uint8_t                                     mode
13177  ** @param uint8_t                                     format
13178  ** @param xcb_atom_t                                  property
13179  ** @param xcb_atom_t                                  type
13180  ** @param uint32_t                                    num_items
13181  ** @param const xcb_input_xi_change_property_items_t *items
13182  ** @returns xcb_void_cookie_t
13183  **
13184  *****************************************************************************/
13185 
13186 xcb_void_cookie_t
13187 xcb_input_xi_change_property_aux_checked (xcb_connection_t                           *c  /**< */,
13188                                           xcb_input_device_id_t                       deviceid  /**< */,
13189                                           uint8_t                                     mode  /**< */,
13190                                           uint8_t                                     format  /**< */,
13191                                           xcb_atom_t                                  property  /**< */,
13192                                           xcb_atom_t                                  type  /**< */,
13193                                           uint32_t                                    num_items  /**< */,
13194                                           const xcb_input_xi_change_property_items_t *items  /**< */)
13195 {
13196     static const xcb_protocol_request_t xcb_req = {
13197         /* count */ 3,
13198         /* ext */ &xcb_input_id,
13199         /* opcode */ XCB_INPUT_XI_CHANGE_PROPERTY,
13200         /* isvoid */ 1
13201     };
13202 
13203     struct iovec xcb_parts[5];
13204     xcb_void_cookie_t xcb_ret;
13205     xcb_input_xi_change_property_request_t xcb_out;
13206     void *xcb_aux0 = 0;
13207 
13208     xcb_out.deviceid = deviceid;
13209     xcb_out.mode = mode;
13210     xcb_out.format = format;
13211     xcb_out.property = property;
13212     xcb_out.type = type;
13213     xcb_out.num_items = num_items;
13214 
13215     xcb_parts[2].iov_base = (char *) &xcb_out;
13216     xcb_parts[2].iov_len = sizeof(xcb_out);
13217     xcb_parts[3].iov_base = 0;
13218     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13219     /* xcb_input_xi_change_property_items_t items */
13220     xcb_parts[4].iov_len =
13221       xcb_input_xi_change_property_items_serialize (&xcb_aux0, num_items, format, items);
13222     xcb_parts[4].iov_base = xcb_aux0;
13223 
13224     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13225     free(xcb_aux0);
13226     return xcb_ret;
13227 }
13228 
13229 
13230 /*****************************************************************************
13231  **
13232  ** xcb_void_cookie_t xcb_input_xi_change_property_aux
13233  **
13234  ** @param xcb_connection_t                           *c
13235  ** @param xcb_input_device_id_t                       deviceid
13236  ** @param uint8_t                                     mode
13237  ** @param uint8_t                                     format
13238  ** @param xcb_atom_t                                  property
13239  ** @param xcb_atom_t                                  type
13240  ** @param uint32_t                                    num_items
13241  ** @param const xcb_input_xi_change_property_items_t *items
13242  ** @returns xcb_void_cookie_t
13243  **
13244  *****************************************************************************/
13245 
13246 xcb_void_cookie_t
13247 xcb_input_xi_change_property_aux (xcb_connection_t                           *c  /**< */,
13248                                   xcb_input_device_id_t                       deviceid  /**< */,
13249                                   uint8_t                                     mode  /**< */,
13250                                   uint8_t                                     format  /**< */,
13251                                   xcb_atom_t                                  property  /**< */,
13252                                   xcb_atom_t                                  type  /**< */,
13253                                   uint32_t                                    num_items  /**< */,
13254                                   const xcb_input_xi_change_property_items_t *items  /**< */)
13255 {
13256     static const xcb_protocol_request_t xcb_req = {
13257         /* count */ 3,
13258         /* ext */ &xcb_input_id,
13259         /* opcode */ XCB_INPUT_XI_CHANGE_PROPERTY,
13260         /* isvoid */ 1
13261     };
13262 
13263     struct iovec xcb_parts[5];
13264     xcb_void_cookie_t xcb_ret;
13265     xcb_input_xi_change_property_request_t xcb_out;
13266     void *xcb_aux0 = 0;
13267 
13268     xcb_out.deviceid = deviceid;
13269     xcb_out.mode = mode;
13270     xcb_out.format = format;
13271     xcb_out.property = property;
13272     xcb_out.type = type;
13273     xcb_out.num_items = num_items;
13274 
13275     xcb_parts[2].iov_base = (char *) &xcb_out;
13276     xcb_parts[2].iov_len = sizeof(xcb_out);
13277     xcb_parts[3].iov_base = 0;
13278     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13279     /* xcb_input_xi_change_property_items_t items */
13280     xcb_parts[4].iov_len =
13281       xcb_input_xi_change_property_items_serialize (&xcb_aux0, num_items, format, items);
13282     xcb_parts[4].iov_base = xcb_aux0;
13283 
13284     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13285     free(xcb_aux0);
13286     return xcb_ret;
13287 }
13288 
13289 
13290 /*****************************************************************************
13291  **
13292  ** xcb_void_cookie_t xcb_input_xi_delete_property_checked
13293  **
13294  ** @param xcb_connection_t      *c
13295  ** @param xcb_input_device_id_t  deviceid
13296  ** @param xcb_atom_t             property
13297  ** @returns xcb_void_cookie_t
13298  **
13299  *****************************************************************************/
13300 
13301 xcb_void_cookie_t
13302 xcb_input_xi_delete_property_checked (xcb_connection_t      *c  /**< */,
13303                                       xcb_input_device_id_t  deviceid  /**< */,
13304                                       xcb_atom_t             property  /**< */)
13305 {
13306     static const xcb_protocol_request_t xcb_req = {
13307         /* count */ 2,
13308         /* ext */ &xcb_input_id,
13309         /* opcode */ XCB_INPUT_XI_DELETE_PROPERTY,
13310         /* isvoid */ 1
13311     };
13312 
13313     struct iovec xcb_parts[4];
13314     xcb_void_cookie_t xcb_ret;
13315     xcb_input_xi_delete_property_request_t xcb_out;
13316 
13317     xcb_out.deviceid = deviceid;
13318     memset(xcb_out.pad0, 0, 2);
13319     xcb_out.property = property;
13320 
13321     xcb_parts[2].iov_base = (char *) &xcb_out;
13322     xcb_parts[2].iov_len = sizeof(xcb_out);
13323     xcb_parts[3].iov_base = 0;
13324     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13325 
13326     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13327     return xcb_ret;
13328 }
13329 
13330 
13331 /*****************************************************************************
13332  **
13333  ** xcb_void_cookie_t xcb_input_xi_delete_property
13334  **
13335  ** @param xcb_connection_t      *c
13336  ** @param xcb_input_device_id_t  deviceid
13337  ** @param xcb_atom_t             property
13338  ** @returns xcb_void_cookie_t
13339  **
13340  *****************************************************************************/
13341 
13342 xcb_void_cookie_t
13343 xcb_input_xi_delete_property (xcb_connection_t      *c  /**< */,
13344                               xcb_input_device_id_t  deviceid  /**< */,
13345                               xcb_atom_t             property  /**< */)
13346 {
13347     static const xcb_protocol_request_t xcb_req = {
13348         /* count */ 2,
13349         /* ext */ &xcb_input_id,
13350         /* opcode */ XCB_INPUT_XI_DELETE_PROPERTY,
13351         /* isvoid */ 1
13352     };
13353 
13354     struct iovec xcb_parts[4];
13355     xcb_void_cookie_t xcb_ret;
13356     xcb_input_xi_delete_property_request_t xcb_out;
13357 
13358     xcb_out.deviceid = deviceid;
13359     memset(xcb_out.pad0, 0, 2);
13360     xcb_out.property = property;
13361 
13362     xcb_parts[2].iov_base = (char *) &xcb_out;
13363     xcb_parts[2].iov_len = sizeof(xcb_out);
13364     xcb_parts[3].iov_base = 0;
13365     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13366 
13367     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13368     return xcb_ret;
13369 }
13370 
13371 
13372 /*****************************************************************************
13373  **
13374  ** uint8_t * xcb_input_xi_get_property_items_data_8
13375  **
13376  ** @param const xcb_input_xi_get_property_items_t *S
13377  ** @returns uint8_t *
13378  **
13379  *****************************************************************************/
13380 
13381 uint8_t *
13382 xcb_input_xi_get_property_items_data_8 (const xcb_input_xi_get_property_items_t *S  /**< */)
13383 {
13384     return /* items */ S->data8;
13385 }
13386 
13387 
13388 /*****************************************************************************
13389  **
13390  ** int xcb_input_xi_get_property_items_data_8_length
13391  **
13392  ** @param const xcb_input_xi_get_property_items_t *R
13393  ** @returns int
13394  **
13395  *****************************************************************************/
13396 
13397 int
13398 xcb_input_xi_get_property_items_data_8_length (const xcb_input_xi_get_property_reply_t *R  /**< */,
13399                                                const xcb_input_xi_get_property_items_t *S  /**< */)
13400 {
13401     return R->num_items;
13402 }
13403 
13404 
13405 /*****************************************************************************
13406  **
13407  ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_8_end
13408  **
13409  ** @param const xcb_input_xi_get_property_items_t *R
13410  ** @returns xcb_generic_iterator_t
13411  **
13412  *****************************************************************************/
13413 
13414 xcb_generic_iterator_t
13415 xcb_input_xi_get_property_items_data_8_end (const xcb_input_xi_get_property_reply_t *R  /**< */,
13416                                             const xcb_input_xi_get_property_items_t *S  /**< */)
13417 {
13418     xcb_generic_iterator_t i;
13419     i.data = /* items */ S->data8 + R->num_items;
13420     i.rem = 0;
13421     i.index = (char *) i.data - (char *) S;
13422     return i;
13423 }
13424 
13425 
13426 /*****************************************************************************
13427  **
13428  ** uint16_t * xcb_input_xi_get_property_items_data_16
13429  **
13430  ** @param const xcb_input_xi_get_property_items_t *S
13431  ** @returns uint16_t *
13432  **
13433  *****************************************************************************/
13434 
13435 uint16_t *
13436 xcb_input_xi_get_property_items_data_16 (const xcb_input_xi_get_property_items_t *S  /**< */)
13437 {
13438     return /* items */ S->data16;
13439 }
13440 
13441 
13442 /*****************************************************************************
13443  **
13444  ** int xcb_input_xi_get_property_items_data_16_length
13445  **
13446  ** @param const xcb_input_xi_get_property_items_t *R
13447  ** @returns int
13448  **
13449  *****************************************************************************/
13450 
13451 int
13452 xcb_input_xi_get_property_items_data_16_length (const xcb_input_xi_get_property_reply_t *R  /**< */,
13453                                                 const xcb_input_xi_get_property_items_t *S  /**< */)
13454 {
13455     return R->num_items;
13456 }
13457 
13458 
13459 /*****************************************************************************
13460  **
13461  ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_16_end
13462  **
13463  ** @param const xcb_input_xi_get_property_items_t *R
13464  ** @returns xcb_generic_iterator_t
13465  **
13466  *****************************************************************************/
13467 
13468 xcb_generic_iterator_t
13469 xcb_input_xi_get_property_items_data_16_end (const xcb_input_xi_get_property_reply_t *R  /**< */,
13470                                              const xcb_input_xi_get_property_items_t *S  /**< */)
13471 {
13472     xcb_generic_iterator_t i;
13473     i.data = /* items */ S->data16 + R->num_items;
13474     i.rem = 0;
13475     i.index = (char *) i.data - (char *) S;
13476     return i;
13477 }
13478 
13479 
13480 /*****************************************************************************
13481  **
13482  ** uint32_t * xcb_input_xi_get_property_items_data_32
13483  **
13484  ** @param const xcb_input_xi_get_property_items_t *S
13485  ** @returns uint32_t *
13486  **
13487  *****************************************************************************/
13488 
13489 uint32_t *
13490 xcb_input_xi_get_property_items_data_32 (const xcb_input_xi_get_property_items_t *S  /**< */)
13491 {
13492     return /* items */ S->data32;
13493 }
13494 
13495 
13496 /*****************************************************************************
13497  **
13498  ** int xcb_input_xi_get_property_items_data_32_length
13499  **
13500  ** @param const xcb_input_xi_get_property_items_t *R
13501  ** @returns int
13502  **
13503  *****************************************************************************/
13504 
13505 int
13506 xcb_input_xi_get_property_items_data_32_length (const xcb_input_xi_get_property_reply_t *R  /**< */,
13507                                                 const xcb_input_xi_get_property_items_t *S  /**< */)
13508 {
13509     return R->num_items;
13510 }
13511 
13512 
13513 /*****************************************************************************
13514  **
13515  ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_32_end
13516  **
13517  ** @param const xcb_input_xi_get_property_items_t *R
13518  ** @returns xcb_generic_iterator_t
13519  **
13520  *****************************************************************************/
13521 
13522 xcb_generic_iterator_t
13523 xcb_input_xi_get_property_items_data_32_end (const xcb_input_xi_get_property_reply_t *R  /**< */,
13524                                              const xcb_input_xi_get_property_items_t *S  /**< */)
13525 {
13526     xcb_generic_iterator_t i;
13527     i.data = /* items */ S->data32 + R->num_items;
13528     i.rem = 0;
13529     i.index = (char *) i.data - (char *) S;
13530     return i;
13531 }
13532 
13533 int
13534 xcb_input_xi_get_property_items_serialize (void                                    **_buffer  /**< */,
13535                                            uint32_t                                  num_items  /**< */,
13536                                            uint8_t                                   format  /**< */,
13537                                            const xcb_input_xi_get_property_items_t  *_aux  /**< */)
13538 {
13539     char *xcb_out = *_buffer;
13540     unsigned int xcb_buffer_len = 0;
13541     unsigned int xcb_align_to = 0;
13542 
13543     unsigned int xcb_pad = 0;
13544     char xcb_pad0[3] = {0, 0, 0};
13545     struct iovec xcb_parts[7];
13546     unsigned int xcb_parts_idx = 0;
13547     unsigned int xcb_block_len = 0;
13548     unsigned int i;
13549     char *xcb_tmp;
13550 
13551     if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
13552         /* insert padding */
13553         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13554         xcb_buffer_len += xcb_block_len + xcb_pad;
13555         if (0 != xcb_pad) {
13556             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
13557             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
13558             xcb_parts_idx++;
13559             xcb_pad = 0;
13560         }
13561         xcb_block_len = 0;
13562         /* data8 */
13563         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data8;
13564         xcb_block_len += num_items * sizeof(uint8_t);
13565         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint8_t);
13566         xcb_parts_idx++;
13567         xcb_align_to = ALIGNOF(uint8_t);
13568     }
13569     if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
13570         /* insert padding */
13571         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13572         xcb_buffer_len += xcb_block_len + xcb_pad;
13573         if (0 != xcb_pad) {
13574             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
13575             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
13576             xcb_parts_idx++;
13577             xcb_pad = 0;
13578         }
13579         xcb_block_len = 0;
13580         /* data16 */
13581         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data16;
13582         xcb_block_len += num_items * sizeof(uint16_t);
13583         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint16_t);
13584         xcb_parts_idx++;
13585         xcb_align_to = ALIGNOF(uint16_t);
13586     }
13587     if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
13588         /* insert padding */
13589         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13590         xcb_buffer_len += xcb_block_len + xcb_pad;
13591         if (0 != xcb_pad) {
13592             xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
13593             xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
13594             xcb_parts_idx++;
13595             xcb_pad = 0;
13596         }
13597         xcb_block_len = 0;
13598         /* data32 */
13599         xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data32;
13600         xcb_block_len += num_items * sizeof(uint32_t);
13601         xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint32_t);
13602         xcb_parts_idx++;
13603         xcb_align_to = ALIGNOF(uint32_t);
13604     }
13605     /* insert padding */
13606     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13607     xcb_buffer_len += xcb_block_len + xcb_pad;
13608     if (0 != xcb_pad) {
13609         xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
13610         xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
13611         xcb_parts_idx++;
13612         xcb_pad = 0;
13613     }
13614     xcb_block_len = 0;
13615 
13616     if (NULL == xcb_out) {
13617         /* allocate memory */
13618         xcb_out = malloc(xcb_buffer_len);
13619         *_buffer = xcb_out;
13620     }
13621 
13622     xcb_tmp = xcb_out;
13623     for(i=0; i<xcb_parts_idx; i++) {
13624         if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
13625             memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
13626         if (0 != xcb_parts[i].iov_len)
13627             xcb_tmp += xcb_parts[i].iov_len;
13628     }
13629 
13630     return xcb_buffer_len;
13631 }
13632 
13633 int
13634 xcb_input_xi_get_property_items_unpack (const void                         *_buffer  /**< */,
13635                                         uint32_t                            num_items  /**< */,
13636                                         uint8_t                             format  /**< */,
13637                                         xcb_input_xi_get_property_items_t  *_aux  /**< */)
13638 {
13639     char *xcb_tmp = (char *)_buffer;
13640     unsigned int xcb_buffer_len = 0;
13641     unsigned int xcb_block_len = 0;
13642     unsigned int xcb_pad = 0;
13643     unsigned int xcb_align_to = 0;
13644 
13645 
13646     if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
13647         /* insert padding */
13648         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13649         xcb_buffer_len += xcb_block_len + xcb_pad;
13650         if (0 != xcb_pad) {
13651             xcb_tmp += xcb_pad;
13652             xcb_pad = 0;
13653         }
13654         xcb_block_len = 0;
13655         /* data8 */
13656         _aux->data8 = (uint8_t *)xcb_tmp;
13657         xcb_block_len += num_items * sizeof(uint8_t);
13658         xcb_tmp += xcb_block_len;
13659         xcb_align_to = ALIGNOF(uint8_t);
13660     }
13661     if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
13662         /* insert padding */
13663         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13664         xcb_buffer_len += xcb_block_len + xcb_pad;
13665         if (0 != xcb_pad) {
13666             xcb_tmp += xcb_pad;
13667             xcb_pad = 0;
13668         }
13669         xcb_block_len = 0;
13670         /* data16 */
13671         _aux->data16 = (uint16_t *)xcb_tmp;
13672         xcb_block_len += num_items * sizeof(uint16_t);
13673         xcb_tmp += xcb_block_len;
13674         xcb_align_to = ALIGNOF(uint16_t);
13675     }
13676     if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
13677         /* insert padding */
13678         xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13679         xcb_buffer_len += xcb_block_len + xcb_pad;
13680         if (0 != xcb_pad) {
13681             xcb_tmp += xcb_pad;
13682             xcb_pad = 0;
13683         }
13684         xcb_block_len = 0;
13685         /* data32 */
13686         _aux->data32 = (uint32_t *)xcb_tmp;
13687         xcb_block_len += num_items * sizeof(uint32_t);
13688         xcb_tmp += xcb_block_len;
13689         xcb_align_to = ALIGNOF(uint32_t);
13690     }
13691     /* insert padding */
13692     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13693     xcb_buffer_len += xcb_block_len + xcb_pad;
13694     if (0 != xcb_pad) {
13695         xcb_tmp += xcb_pad;
13696         xcb_pad = 0;
13697     }
13698     xcb_block_len = 0;
13699 
13700     return xcb_buffer_len;
13701 }
13702 
13703 int
13704 xcb_input_xi_get_property_items_sizeof (const void  *_buffer  /**< */,
13705                                         uint32_t     num_items  /**< */,
13706                                         uint8_t      format  /**< */)
13707 {
13708     xcb_input_xi_get_property_items_t _aux;
13709     return xcb_input_xi_get_property_items_unpack(_buffer, num_items, format, &_aux);
13710 }
13711 
13712 
13713 /*****************************************************************************
13714  **
13715  ** xcb_input_xi_get_property_cookie_t xcb_input_xi_get_property
13716  **
13717  ** @param xcb_connection_t      *c
13718  ** @param xcb_input_device_id_t  deviceid
13719  ** @param uint8_t                _delete
13720  ** @param xcb_atom_t             property
13721  ** @param xcb_atom_t             type
13722  ** @param uint32_t               offset
13723  ** @param uint32_t               len
13724  ** @returns xcb_input_xi_get_property_cookie_t
13725  **
13726  *****************************************************************************/
13727 
13728 xcb_input_xi_get_property_cookie_t
13729 xcb_input_xi_get_property (xcb_connection_t      *c  /**< */,
13730                            xcb_input_device_id_t  deviceid  /**< */,
13731                            uint8_t                _delete  /**< */,
13732                            xcb_atom_t             property  /**< */,
13733                            xcb_atom_t             type  /**< */,
13734                            uint32_t               offset  /**< */,
13735                            uint32_t               len  /**< */)
13736 {
13737     static const xcb_protocol_request_t xcb_req = {
13738         /* count */ 2,
13739         /* ext */ &xcb_input_id,
13740         /* opcode */ XCB_INPUT_XI_GET_PROPERTY,
13741         /* isvoid */ 0
13742     };
13743 
13744     struct iovec xcb_parts[4];
13745     xcb_input_xi_get_property_cookie_t xcb_ret;
13746     xcb_input_xi_get_property_request_t xcb_out;
13747 
13748     xcb_out.deviceid = deviceid;
13749     xcb_out._delete = _delete;
13750     xcb_out.pad0 = 0;
13751     xcb_out.property = property;
13752     xcb_out.type = type;
13753     xcb_out.offset = offset;
13754     xcb_out.len = len;
13755 
13756     xcb_parts[2].iov_base = (char *) &xcb_out;
13757     xcb_parts[2].iov_len = sizeof(xcb_out);
13758     xcb_parts[3].iov_base = 0;
13759     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13760 
13761     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13762     return xcb_ret;
13763 }
13764 
13765 
13766 /*****************************************************************************
13767  **
13768  ** xcb_input_xi_get_property_cookie_t xcb_input_xi_get_property_unchecked
13769  **
13770  ** @param xcb_connection_t      *c
13771  ** @param xcb_input_device_id_t  deviceid
13772  ** @param uint8_t                _delete
13773  ** @param xcb_atom_t             property
13774  ** @param xcb_atom_t             type
13775  ** @param uint32_t               offset
13776  ** @param uint32_t               len
13777  ** @returns xcb_input_xi_get_property_cookie_t
13778  **
13779  *****************************************************************************/
13780 
13781 xcb_input_xi_get_property_cookie_t
13782 xcb_input_xi_get_property_unchecked (xcb_connection_t      *c  /**< */,
13783                                      xcb_input_device_id_t  deviceid  /**< */,
13784                                      uint8_t                _delete  /**< */,
13785                                      xcb_atom_t             property  /**< */,
13786                                      xcb_atom_t             type  /**< */,
13787                                      uint32_t               offset  /**< */,
13788                                      uint32_t               len  /**< */)
13789 {
13790     static const xcb_protocol_request_t xcb_req = {
13791         /* count */ 2,
13792         /* ext */ &xcb_input_id,
13793         /* opcode */ XCB_INPUT_XI_GET_PROPERTY,
13794         /* isvoid */ 0
13795     };
13796 
13797     struct iovec xcb_parts[4];
13798     xcb_input_xi_get_property_cookie_t xcb_ret;
13799     xcb_input_xi_get_property_request_t xcb_out;
13800 
13801     xcb_out.deviceid = deviceid;
13802     xcb_out._delete = _delete;
13803     xcb_out.pad0 = 0;
13804     xcb_out.property = property;
13805     xcb_out.type = type;
13806     xcb_out.offset = offset;
13807     xcb_out.len = len;
13808 
13809     xcb_parts[2].iov_base = (char *) &xcb_out;
13810     xcb_parts[2].iov_len = sizeof(xcb_out);
13811     xcb_parts[3].iov_base = 0;
13812     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13813 
13814     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13815     return xcb_ret;
13816 }
13817 
13818 
13819 /*****************************************************************************
13820  **
13821  ** xcb_input_xi_get_property_items_t * xcb_input_xi_get_property_items
13822  **
13823  ** @param const xcb_input_xi_get_property_reply_t *R
13824  ** @returns xcb_input_xi_get_property_items_t *
13825  **
13826  *****************************************************************************/
13827 
13828 void *
13829 xcb_input_xi_get_property_items (const xcb_input_xi_get_property_reply_t *R  /**< */)
13830 {
13831     return (void *) (R + 1);
13832 }
13833 
13834 
13835 /*****************************************************************************
13836  **
13837  ** xcb_input_xi_get_property_reply_t * xcb_input_xi_get_property_reply
13838  **
13839  ** @param xcb_connection_t                    *c
13840  ** @param xcb_input_xi_get_property_cookie_t   cookie
13841  ** @param xcb_generic_error_t                **e
13842  ** @returns xcb_input_xi_get_property_reply_t *
13843  **
13844  *****************************************************************************/
13845 
13846 xcb_input_xi_get_property_reply_t *
13847 xcb_input_xi_get_property_reply (xcb_connection_t                    *c  /**< */,
13848                                  xcb_input_xi_get_property_cookie_t   cookie  /**< */,
13849                                  xcb_generic_error_t                **e  /**< */)
13850 {
13851     return (xcb_input_xi_get_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
13852 }
13853 
13854 int
13855 xcb_input_xi_get_selected_events_sizeof (const void  *_buffer  /**< */)
13856 {
13857     char *xcb_tmp = (char *)_buffer;
13858     const xcb_input_xi_get_selected_events_reply_t *_aux = (xcb_input_xi_get_selected_events_reply_t *)_buffer;
13859     unsigned int xcb_buffer_len = 0;
13860     unsigned int xcb_block_len = 0;
13861     unsigned int xcb_pad = 0;
13862     unsigned int xcb_align_to = 0;
13863 
13864     unsigned int i;
13865     unsigned int xcb_tmp_len;
13866 
13867     xcb_block_len += sizeof(xcb_input_xi_get_selected_events_reply_t);
13868     xcb_tmp += xcb_block_len;
13869     xcb_buffer_len += xcb_block_len;
13870     xcb_block_len = 0;
13871     /* masks */
13872     for(i=0; i<_aux->num_masks; i++) {
13873         xcb_tmp_len = xcb_input_event_mask_sizeof(xcb_tmp);
13874         xcb_block_len += xcb_tmp_len;
13875         xcb_tmp += xcb_tmp_len;
13876     }
13877     xcb_align_to = ALIGNOF(xcb_input_event_mask_t);
13878     /* insert padding */
13879     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13880     xcb_buffer_len += xcb_block_len + xcb_pad;
13881     if (0 != xcb_pad) {
13882         xcb_tmp += xcb_pad;
13883         xcb_pad = 0;
13884     }
13885     xcb_block_len = 0;
13886 
13887     return xcb_buffer_len;
13888 }
13889 
13890 
13891 /*****************************************************************************
13892  **
13893  ** xcb_input_xi_get_selected_events_cookie_t xcb_input_xi_get_selected_events
13894  **
13895  ** @param xcb_connection_t *c
13896  ** @param xcb_window_t      window
13897  ** @returns xcb_input_xi_get_selected_events_cookie_t
13898  **
13899  *****************************************************************************/
13900 
13901 xcb_input_xi_get_selected_events_cookie_t
13902 xcb_input_xi_get_selected_events (xcb_connection_t *c  /**< */,
13903                                   xcb_window_t      window  /**< */)
13904 {
13905     static const xcb_protocol_request_t xcb_req = {
13906         /* count */ 2,
13907         /* ext */ &xcb_input_id,
13908         /* opcode */ XCB_INPUT_XI_GET_SELECTED_EVENTS,
13909         /* isvoid */ 0
13910     };
13911 
13912     struct iovec xcb_parts[4];
13913     xcb_input_xi_get_selected_events_cookie_t xcb_ret;
13914     xcb_input_xi_get_selected_events_request_t xcb_out;
13915 
13916     xcb_out.window = window;
13917 
13918     xcb_parts[2].iov_base = (char *) &xcb_out;
13919     xcb_parts[2].iov_len = sizeof(xcb_out);
13920     xcb_parts[3].iov_base = 0;
13921     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13922 
13923     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13924     return xcb_ret;
13925 }
13926 
13927 
13928 /*****************************************************************************
13929  **
13930  ** xcb_input_xi_get_selected_events_cookie_t xcb_input_xi_get_selected_events_unchecked
13931  **
13932  ** @param xcb_connection_t *c
13933  ** @param xcb_window_t      window
13934  ** @returns xcb_input_xi_get_selected_events_cookie_t
13935  **
13936  *****************************************************************************/
13937 
13938 xcb_input_xi_get_selected_events_cookie_t
13939 xcb_input_xi_get_selected_events_unchecked (xcb_connection_t *c  /**< */,
13940                                             xcb_window_t      window  /**< */)
13941 {
13942     static const xcb_protocol_request_t xcb_req = {
13943         /* count */ 2,
13944         /* ext */ &xcb_input_id,
13945         /* opcode */ XCB_INPUT_XI_GET_SELECTED_EVENTS,
13946         /* isvoid */ 0
13947     };
13948 
13949     struct iovec xcb_parts[4];
13950     xcb_input_xi_get_selected_events_cookie_t xcb_ret;
13951     xcb_input_xi_get_selected_events_request_t xcb_out;
13952 
13953     xcb_out.window = window;
13954 
13955     xcb_parts[2].iov_base = (char *) &xcb_out;
13956     xcb_parts[2].iov_len = sizeof(xcb_out);
13957     xcb_parts[3].iov_base = 0;
13958     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13959 
13960     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13961     return xcb_ret;
13962 }
13963 
13964 
13965 /*****************************************************************************
13966  **
13967  ** int xcb_input_xi_get_selected_events_masks_length
13968  **
13969  ** @param const xcb_input_xi_get_selected_events_reply_t *R
13970  ** @returns int
13971  **
13972  *****************************************************************************/
13973 
13974 int
13975 xcb_input_xi_get_selected_events_masks_length (const xcb_input_xi_get_selected_events_reply_t *R  /**< */)
13976 {
13977     return R->num_masks;
13978 }
13979 
13980 
13981 /*****************************************************************************
13982  **
13983  ** xcb_input_event_mask_iterator_t xcb_input_xi_get_selected_events_masks_iterator
13984  **
13985  ** @param const xcb_input_xi_get_selected_events_reply_t *R
13986  ** @returns xcb_input_event_mask_iterator_t
13987  **
13988  *****************************************************************************/
13989 
13990 xcb_input_event_mask_iterator_t
13991 xcb_input_xi_get_selected_events_masks_iterator (const xcb_input_xi_get_selected_events_reply_t *R  /**< */)
13992 {
13993     xcb_input_event_mask_iterator_t i;
13994     i.data = (xcb_input_event_mask_t *) (R + 1);
13995     i.rem = R->num_masks;
13996     i.index = (char *) i.data - (char *) R;
13997     return i;
13998 }
13999 
14000 
14001 /*****************************************************************************
14002  **
14003  ** xcb_input_xi_get_selected_events_reply_t * xcb_input_xi_get_selected_events_reply
14004  **
14005  ** @param xcb_connection_t                           *c
14006  ** @param xcb_input_xi_get_selected_events_cookie_t   cookie
14007  ** @param xcb_generic_error_t                       **e
14008  ** @returns xcb_input_xi_get_selected_events_reply_t *
14009  **
14010  *****************************************************************************/
14011 
14012 xcb_input_xi_get_selected_events_reply_t *
14013 xcb_input_xi_get_selected_events_reply (xcb_connection_t                           *c  /**< */,
14014                                         xcb_input_xi_get_selected_events_cookie_t   cookie  /**< */,
14015                                         xcb_generic_error_t                       **e  /**< */)
14016 {
14017     return (xcb_input_xi_get_selected_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
14018 }
14019 
14020 
14021 /*****************************************************************************
14022  **
14023  ** void xcb_input_barrier_release_pointer_info_next
14024  **
14025  ** @param xcb_input_barrier_release_pointer_info_iterator_t *i
14026  ** @returns void
14027  **
14028  *****************************************************************************/
14029 
14030 void
14031 xcb_input_barrier_release_pointer_info_next (xcb_input_barrier_release_pointer_info_iterator_t *i  /**< */)
14032 {
14033     --i->rem;
14034     ++i->data;
14035     i->index += sizeof(xcb_input_barrier_release_pointer_info_t);
14036 }
14037 
14038 
14039 /*****************************************************************************
14040  **
14041  ** xcb_generic_iterator_t xcb_input_barrier_release_pointer_info_end
14042  **
14043  ** @param xcb_input_barrier_release_pointer_info_iterator_t i
14044  ** @returns xcb_generic_iterator_t
14045  **
14046  *****************************************************************************/
14047 
14048 xcb_generic_iterator_t
14049 xcb_input_barrier_release_pointer_info_end (xcb_input_barrier_release_pointer_info_iterator_t i  /**< */)
14050 {
14051     xcb_generic_iterator_t ret;
14052     ret.data = i.data + i.rem;
14053     ret.index = i.index + ((char *) ret.data - (char *) i.data);
14054     ret.rem = 0;
14055     return ret;
14056 }
14057 
14058 int
14059 xcb_input_xi_barrier_release_pointer_sizeof (const void  *_buffer  /**< */)
14060 {
14061     char *xcb_tmp = (char *)_buffer;
14062     const xcb_input_xi_barrier_release_pointer_request_t *_aux = (xcb_input_xi_barrier_release_pointer_request_t *)_buffer;
14063     unsigned int xcb_buffer_len = 0;
14064     unsigned int xcb_block_len = 0;
14065     unsigned int xcb_pad = 0;
14066     unsigned int xcb_align_to = 0;
14067 
14068 
14069     xcb_block_len += sizeof(xcb_input_xi_barrier_release_pointer_request_t);
14070     xcb_tmp += xcb_block_len;
14071     xcb_buffer_len += xcb_block_len;
14072     xcb_block_len = 0;
14073     /* barriers */
14074     xcb_block_len += _aux->num_barriers * sizeof(xcb_input_barrier_release_pointer_info_t);
14075     xcb_tmp += xcb_block_len;
14076     xcb_align_to = ALIGNOF(xcb_input_barrier_release_pointer_info_t);
14077     /* insert padding */
14078     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14079     xcb_buffer_len += xcb_block_len + xcb_pad;
14080     if (0 != xcb_pad) {
14081         xcb_tmp += xcb_pad;
14082         xcb_pad = 0;
14083     }
14084     xcb_block_len = 0;
14085 
14086     return xcb_buffer_len;
14087 }
14088 
14089 
14090 /*****************************************************************************
14091  **
14092  ** xcb_void_cookie_t xcb_input_xi_barrier_release_pointer_checked
14093  **
14094  ** @param xcb_connection_t                               *c
14095  ** @param uint32_t                                        num_barriers
14096  ** @param const xcb_input_barrier_release_pointer_info_t *barriers
14097  ** @returns xcb_void_cookie_t
14098  **
14099  *****************************************************************************/
14100 
14101 xcb_void_cookie_t
14102 xcb_input_xi_barrier_release_pointer_checked (xcb_connection_t                               *c  /**< */,
14103                                               uint32_t                                        num_barriers  /**< */,
14104                                               const xcb_input_barrier_release_pointer_info_t *barriers  /**< */)
14105 {
14106     static const xcb_protocol_request_t xcb_req = {
14107         /* count */ 4,
14108         /* ext */ &xcb_input_id,
14109         /* opcode */ XCB_INPUT_XI_BARRIER_RELEASE_POINTER,
14110         /* isvoid */ 1
14111     };
14112 
14113     struct iovec xcb_parts[6];
14114     xcb_void_cookie_t xcb_ret;
14115     xcb_input_xi_barrier_release_pointer_request_t xcb_out;
14116 
14117     xcb_out.num_barriers = num_barriers;
14118 
14119     xcb_parts[2].iov_base = (char *) &xcb_out;
14120     xcb_parts[2].iov_len = sizeof(xcb_out);
14121     xcb_parts[3].iov_base = 0;
14122     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
14123     /* xcb_input_barrier_release_pointer_info_t barriers */
14124     xcb_parts[4].iov_base = (char *) barriers;
14125     xcb_parts[4].iov_len = num_barriers * sizeof(xcb_input_barrier_release_pointer_info_t);
14126     xcb_parts[5].iov_base = 0;
14127     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
14128 
14129     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
14130     return xcb_ret;
14131 }
14132 
14133 
14134 /*****************************************************************************
14135  **
14136  ** xcb_void_cookie_t xcb_input_xi_barrier_release_pointer
14137  **
14138  ** @param xcb_connection_t                               *c
14139  ** @param uint32_t                                        num_barriers
14140  ** @param const xcb_input_barrier_release_pointer_info_t *barriers
14141  ** @returns xcb_void_cookie_t
14142  **
14143  *****************************************************************************/
14144 
14145 xcb_void_cookie_t
14146 xcb_input_xi_barrier_release_pointer (xcb_connection_t                               *c  /**< */,
14147                                       uint32_t                                        num_barriers  /**< */,
14148                                       const xcb_input_barrier_release_pointer_info_t *barriers  /**< */)
14149 {
14150     static const xcb_protocol_request_t xcb_req = {
14151         /* count */ 4,
14152         /* ext */ &xcb_input_id,
14153         /* opcode */ XCB_INPUT_XI_BARRIER_RELEASE_POINTER,
14154         /* isvoid */ 1
14155     };
14156 
14157     struct iovec xcb_parts[6];
14158     xcb_void_cookie_t xcb_ret;
14159     xcb_input_xi_barrier_release_pointer_request_t xcb_out;
14160 
14161     xcb_out.num_barriers = num_barriers;
14162 
14163     xcb_parts[2].iov_base = (char *) &xcb_out;
14164     xcb_parts[2].iov_len = sizeof(xcb_out);
14165     xcb_parts[3].iov_base = 0;
14166     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
14167     /* xcb_input_barrier_release_pointer_info_t barriers */
14168     xcb_parts[4].iov_base = (char *) barriers;
14169     xcb_parts[4].iov_len = num_barriers * sizeof(xcb_input_barrier_release_pointer_info_t);
14170     xcb_parts[5].iov_base = 0;
14171     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
14172 
14173     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
14174     return xcb_ret;
14175 }
14176 
14177 int
14178 xcb_input_device_changed_sizeof (const void  *_buffer  /**< */)
14179 {
14180     char *xcb_tmp = (char *)_buffer;
14181     const xcb_input_device_changed_event_t *_aux = (xcb_input_device_changed_event_t *)_buffer;
14182     unsigned int xcb_buffer_len = 0;
14183     unsigned int xcb_block_len = 0;
14184     unsigned int xcb_pad = 0;
14185     unsigned int xcb_align_to = 0;
14186 
14187     unsigned int i;
14188     unsigned int xcb_tmp_len;
14189 
14190     xcb_block_len += sizeof(xcb_input_device_changed_event_t);
14191     xcb_tmp += xcb_block_len;
14192     xcb_buffer_len += xcb_block_len;
14193     xcb_block_len = 0;
14194     /* classes */
14195     for(i=0; i<_aux->num_classes; i++) {
14196         xcb_tmp_len = xcb_input_device_class_sizeof(xcb_tmp);
14197         xcb_block_len += xcb_tmp_len;
14198         xcb_tmp += xcb_tmp_len;
14199     }
14200     xcb_align_to = ALIGNOF(xcb_input_device_class_t);
14201     /* insert padding */
14202     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14203     xcb_buffer_len += xcb_block_len + xcb_pad;
14204     if (0 != xcb_pad) {
14205         xcb_tmp += xcb_pad;
14206         xcb_pad = 0;
14207     }
14208     xcb_block_len = 0;
14209 
14210     return xcb_buffer_len;
14211 }
14212 
14213 int
14214 xcb_input_key_press_sizeof (const void  *_buffer  /**< */)
14215 {
14216     char *xcb_tmp = (char *)_buffer;
14217     const xcb_input_key_press_event_t *_aux = (xcb_input_key_press_event_t *)_buffer;
14218     unsigned int xcb_buffer_len = 0;
14219     unsigned int xcb_block_len = 0;
14220     unsigned int xcb_pad = 0;
14221     unsigned int xcb_align_to = 0;
14222 
14223 
14224     xcb_block_len += sizeof(xcb_input_key_press_event_t);
14225     xcb_tmp += xcb_block_len;
14226     xcb_buffer_len += xcb_block_len;
14227     xcb_block_len = 0;
14228     /* button_mask */
14229     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14230     xcb_tmp += xcb_block_len;
14231     xcb_align_to = ALIGNOF(uint32_t);
14232     /* insert padding */
14233     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14234     xcb_buffer_len += xcb_block_len + xcb_pad;
14235     if (0 != xcb_pad) {
14236         xcb_tmp += xcb_pad;
14237         xcb_pad = 0;
14238     }
14239     xcb_block_len = 0;
14240     /* valuator_mask */
14241     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14242     xcb_tmp += xcb_block_len;
14243     xcb_align_to = ALIGNOF(uint32_t);
14244     /* insert padding */
14245     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14246     xcb_buffer_len += xcb_block_len + xcb_pad;
14247     if (0 != xcb_pad) {
14248         xcb_tmp += xcb_pad;
14249         xcb_pad = 0;
14250     }
14251     xcb_block_len = 0;
14252 
14253     return xcb_buffer_len;
14254 }
14255 
14256 int
14257 xcb_input_key_release_sizeof (const void  *_buffer  /**< */)
14258 {
14259     char *xcb_tmp = (char *)_buffer;
14260     const xcb_input_key_release_event_t *_aux = (xcb_input_key_release_event_t *)_buffer;
14261     unsigned int xcb_buffer_len = 0;
14262     unsigned int xcb_block_len = 0;
14263     unsigned int xcb_pad = 0;
14264     unsigned int xcb_align_to = 0;
14265 
14266 
14267     xcb_block_len += sizeof(xcb_input_key_release_event_t);
14268     xcb_tmp += xcb_block_len;
14269     xcb_buffer_len += xcb_block_len;
14270     xcb_block_len = 0;
14271     /* button_mask */
14272     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14273     xcb_tmp += xcb_block_len;
14274     xcb_align_to = ALIGNOF(uint32_t);
14275     /* insert padding */
14276     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14277     xcb_buffer_len += xcb_block_len + xcb_pad;
14278     if (0 != xcb_pad) {
14279         xcb_tmp += xcb_pad;
14280         xcb_pad = 0;
14281     }
14282     xcb_block_len = 0;
14283     /* valuator_mask */
14284     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14285     xcb_tmp += xcb_block_len;
14286     xcb_align_to = ALIGNOF(uint32_t);
14287     /* insert padding */
14288     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14289     xcb_buffer_len += xcb_block_len + xcb_pad;
14290     if (0 != xcb_pad) {
14291         xcb_tmp += xcb_pad;
14292         xcb_pad = 0;
14293     }
14294     xcb_block_len = 0;
14295 
14296     return xcb_buffer_len;
14297 }
14298 
14299 int
14300 xcb_input_button_press_sizeof (const void  *_buffer  /**< */)
14301 {
14302     char *xcb_tmp = (char *)_buffer;
14303     const xcb_input_button_press_event_t *_aux = (xcb_input_button_press_event_t *)_buffer;
14304     unsigned int xcb_buffer_len = 0;
14305     unsigned int xcb_block_len = 0;
14306     unsigned int xcb_pad = 0;
14307     unsigned int xcb_align_to = 0;
14308 
14309 
14310     xcb_block_len += sizeof(xcb_input_button_press_event_t);
14311     xcb_tmp += xcb_block_len;
14312     xcb_buffer_len += xcb_block_len;
14313     xcb_block_len = 0;
14314     /* button_mask */
14315     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14316     xcb_tmp += xcb_block_len;
14317     xcb_align_to = ALIGNOF(uint32_t);
14318     /* insert padding */
14319     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14320     xcb_buffer_len += xcb_block_len + xcb_pad;
14321     if (0 != xcb_pad) {
14322         xcb_tmp += xcb_pad;
14323         xcb_pad = 0;
14324     }
14325     xcb_block_len = 0;
14326     /* valuator_mask */
14327     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14328     xcb_tmp += xcb_block_len;
14329     xcb_align_to = ALIGNOF(uint32_t);
14330     /* insert padding */
14331     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14332     xcb_buffer_len += xcb_block_len + xcb_pad;
14333     if (0 != xcb_pad) {
14334         xcb_tmp += xcb_pad;
14335         xcb_pad = 0;
14336     }
14337     xcb_block_len = 0;
14338 
14339     return xcb_buffer_len;
14340 }
14341 
14342 int
14343 xcb_input_button_release_sizeof (const void  *_buffer  /**< */)
14344 {
14345     char *xcb_tmp = (char *)_buffer;
14346     const xcb_input_button_release_event_t *_aux = (xcb_input_button_release_event_t *)_buffer;
14347     unsigned int xcb_buffer_len = 0;
14348     unsigned int xcb_block_len = 0;
14349     unsigned int xcb_pad = 0;
14350     unsigned int xcb_align_to = 0;
14351 
14352 
14353     xcb_block_len += sizeof(xcb_input_button_release_event_t);
14354     xcb_tmp += xcb_block_len;
14355     xcb_buffer_len += xcb_block_len;
14356     xcb_block_len = 0;
14357     /* button_mask */
14358     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14359     xcb_tmp += xcb_block_len;
14360     xcb_align_to = ALIGNOF(uint32_t);
14361     /* insert padding */
14362     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14363     xcb_buffer_len += xcb_block_len + xcb_pad;
14364     if (0 != xcb_pad) {
14365         xcb_tmp += xcb_pad;
14366         xcb_pad = 0;
14367     }
14368     xcb_block_len = 0;
14369     /* valuator_mask */
14370     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14371     xcb_tmp += xcb_block_len;
14372     xcb_align_to = ALIGNOF(uint32_t);
14373     /* insert padding */
14374     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14375     xcb_buffer_len += xcb_block_len + xcb_pad;
14376     if (0 != xcb_pad) {
14377         xcb_tmp += xcb_pad;
14378         xcb_pad = 0;
14379     }
14380     xcb_block_len = 0;
14381 
14382     return xcb_buffer_len;
14383 }
14384 
14385 int
14386 xcb_input_motion_sizeof (const void  *_buffer  /**< */)
14387 {
14388     char *xcb_tmp = (char *)_buffer;
14389     const xcb_input_motion_event_t *_aux = (xcb_input_motion_event_t *)_buffer;
14390     unsigned int xcb_buffer_len = 0;
14391     unsigned int xcb_block_len = 0;
14392     unsigned int xcb_pad = 0;
14393     unsigned int xcb_align_to = 0;
14394 
14395 
14396     xcb_block_len += sizeof(xcb_input_motion_event_t);
14397     xcb_tmp += xcb_block_len;
14398     xcb_buffer_len += xcb_block_len;
14399     xcb_block_len = 0;
14400     /* button_mask */
14401     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14402     xcb_tmp += xcb_block_len;
14403     xcb_align_to = ALIGNOF(uint32_t);
14404     /* insert padding */
14405     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14406     xcb_buffer_len += xcb_block_len + xcb_pad;
14407     if (0 != xcb_pad) {
14408         xcb_tmp += xcb_pad;
14409         xcb_pad = 0;
14410     }
14411     xcb_block_len = 0;
14412     /* valuator_mask */
14413     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14414     xcb_tmp += xcb_block_len;
14415     xcb_align_to = ALIGNOF(uint32_t);
14416     /* insert padding */
14417     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14418     xcb_buffer_len += xcb_block_len + xcb_pad;
14419     if (0 != xcb_pad) {
14420         xcb_tmp += xcb_pad;
14421         xcb_pad = 0;
14422     }
14423     xcb_block_len = 0;
14424 
14425     return xcb_buffer_len;
14426 }
14427 
14428 int
14429 xcb_input_enter_sizeof (const void  *_buffer  /**< */)
14430 {
14431     char *xcb_tmp = (char *)_buffer;
14432     const xcb_input_enter_event_t *_aux = (xcb_input_enter_event_t *)_buffer;
14433     unsigned int xcb_buffer_len = 0;
14434     unsigned int xcb_block_len = 0;
14435     unsigned int xcb_pad = 0;
14436     unsigned int xcb_align_to = 0;
14437 
14438 
14439     xcb_block_len += sizeof(xcb_input_enter_event_t);
14440     xcb_tmp += xcb_block_len;
14441     xcb_buffer_len += xcb_block_len;
14442     xcb_block_len = 0;
14443     /* buttons */
14444     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14445     xcb_tmp += xcb_block_len;
14446     xcb_align_to = ALIGNOF(uint32_t);
14447     /* insert padding */
14448     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14449     xcb_buffer_len += xcb_block_len + xcb_pad;
14450     if (0 != xcb_pad) {
14451         xcb_tmp += xcb_pad;
14452         xcb_pad = 0;
14453     }
14454     xcb_block_len = 0;
14455 
14456     return xcb_buffer_len;
14457 }
14458 
14459 int
14460 xcb_input_leave_sizeof (const void  *_buffer  /**< */)
14461 {
14462     char *xcb_tmp = (char *)_buffer;
14463     const xcb_input_leave_event_t *_aux = (xcb_input_leave_event_t *)_buffer;
14464     unsigned int xcb_buffer_len = 0;
14465     unsigned int xcb_block_len = 0;
14466     unsigned int xcb_pad = 0;
14467     unsigned int xcb_align_to = 0;
14468 
14469 
14470     xcb_block_len += sizeof(xcb_input_leave_event_t);
14471     xcb_tmp += xcb_block_len;
14472     xcb_buffer_len += xcb_block_len;
14473     xcb_block_len = 0;
14474     /* buttons */
14475     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14476     xcb_tmp += xcb_block_len;
14477     xcb_align_to = ALIGNOF(uint32_t);
14478     /* insert padding */
14479     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14480     xcb_buffer_len += xcb_block_len + xcb_pad;
14481     if (0 != xcb_pad) {
14482         xcb_tmp += xcb_pad;
14483         xcb_pad = 0;
14484     }
14485     xcb_block_len = 0;
14486 
14487     return xcb_buffer_len;
14488 }
14489 
14490 int
14491 xcb_input_focus_in_sizeof (const void  *_buffer  /**< */)
14492 {
14493     char *xcb_tmp = (char *)_buffer;
14494     const xcb_input_focus_in_event_t *_aux = (xcb_input_focus_in_event_t *)_buffer;
14495     unsigned int xcb_buffer_len = 0;
14496     unsigned int xcb_block_len = 0;
14497     unsigned int xcb_pad = 0;
14498     unsigned int xcb_align_to = 0;
14499 
14500 
14501     xcb_block_len += sizeof(xcb_input_focus_in_event_t);
14502     xcb_tmp += xcb_block_len;
14503     xcb_buffer_len += xcb_block_len;
14504     xcb_block_len = 0;
14505     /* buttons */
14506     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14507     xcb_tmp += xcb_block_len;
14508     xcb_align_to = ALIGNOF(uint32_t);
14509     /* insert padding */
14510     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14511     xcb_buffer_len += xcb_block_len + xcb_pad;
14512     if (0 != xcb_pad) {
14513         xcb_tmp += xcb_pad;
14514         xcb_pad = 0;
14515     }
14516     xcb_block_len = 0;
14517 
14518     return xcb_buffer_len;
14519 }
14520 
14521 int
14522 xcb_input_focus_out_sizeof (const void  *_buffer  /**< */)
14523 {
14524     char *xcb_tmp = (char *)_buffer;
14525     const xcb_input_focus_out_event_t *_aux = (xcb_input_focus_out_event_t *)_buffer;
14526     unsigned int xcb_buffer_len = 0;
14527     unsigned int xcb_block_len = 0;
14528     unsigned int xcb_pad = 0;
14529     unsigned int xcb_align_to = 0;
14530 
14531 
14532     xcb_block_len += sizeof(xcb_input_focus_out_event_t);
14533     xcb_tmp += xcb_block_len;
14534     xcb_buffer_len += xcb_block_len;
14535     xcb_block_len = 0;
14536     /* buttons */
14537     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14538     xcb_tmp += xcb_block_len;
14539     xcb_align_to = ALIGNOF(uint32_t);
14540     /* insert padding */
14541     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14542     xcb_buffer_len += xcb_block_len + xcb_pad;
14543     if (0 != xcb_pad) {
14544         xcb_tmp += xcb_pad;
14545         xcb_pad = 0;
14546     }
14547     xcb_block_len = 0;
14548 
14549     return xcb_buffer_len;
14550 }
14551 
14552 
14553 /*****************************************************************************
14554  **
14555  ** void xcb_input_hierarchy_info_next
14556  **
14557  ** @param xcb_input_hierarchy_info_iterator_t *i
14558  ** @returns void
14559  **
14560  *****************************************************************************/
14561 
14562 void
14563 xcb_input_hierarchy_info_next (xcb_input_hierarchy_info_iterator_t *i  /**< */)
14564 {
14565     --i->rem;
14566     ++i->data;
14567     i->index += sizeof(xcb_input_hierarchy_info_t);
14568 }
14569 
14570 
14571 /*****************************************************************************
14572  **
14573  ** xcb_generic_iterator_t xcb_input_hierarchy_info_end
14574  **
14575  ** @param xcb_input_hierarchy_info_iterator_t i
14576  ** @returns xcb_generic_iterator_t
14577  **
14578  *****************************************************************************/
14579 
14580 xcb_generic_iterator_t
14581 xcb_input_hierarchy_info_end (xcb_input_hierarchy_info_iterator_t i  /**< */)
14582 {
14583     xcb_generic_iterator_t ret;
14584     ret.data = i.data + i.rem;
14585     ret.index = i.index + ((char *) ret.data - (char *) i.data);
14586     ret.rem = 0;
14587     return ret;
14588 }
14589 
14590 int
14591 xcb_input_hierarchy_sizeof (const void  *_buffer  /**< */)
14592 {
14593     char *xcb_tmp = (char *)_buffer;
14594     const xcb_input_hierarchy_event_t *_aux = (xcb_input_hierarchy_event_t *)_buffer;
14595     unsigned int xcb_buffer_len = 0;
14596     unsigned int xcb_block_len = 0;
14597     unsigned int xcb_pad = 0;
14598     unsigned int xcb_align_to = 0;
14599 
14600 
14601     xcb_block_len += sizeof(xcb_input_hierarchy_event_t);
14602     xcb_tmp += xcb_block_len;
14603     xcb_buffer_len += xcb_block_len;
14604     xcb_block_len = 0;
14605     /* infos */
14606     xcb_block_len += _aux->num_infos * sizeof(xcb_input_hierarchy_info_t);
14607     xcb_tmp += xcb_block_len;
14608     xcb_align_to = ALIGNOF(xcb_input_hierarchy_info_t);
14609     /* insert padding */
14610     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14611     xcb_buffer_len += xcb_block_len + xcb_pad;
14612     if (0 != xcb_pad) {
14613         xcb_tmp += xcb_pad;
14614         xcb_pad = 0;
14615     }
14616     xcb_block_len = 0;
14617 
14618     return xcb_buffer_len;
14619 }
14620 
14621 int
14622 xcb_input_raw_key_press_sizeof (const void  *_buffer  /**< */)
14623 {
14624     char *xcb_tmp = (char *)_buffer;
14625     const xcb_input_raw_key_press_event_t *_aux = (xcb_input_raw_key_press_event_t *)_buffer;
14626     unsigned int xcb_buffer_len = 0;
14627     unsigned int xcb_block_len = 0;
14628     unsigned int xcb_pad = 0;
14629     unsigned int xcb_align_to = 0;
14630 
14631 
14632     xcb_block_len += sizeof(xcb_input_raw_key_press_event_t);
14633     xcb_tmp += xcb_block_len;
14634     xcb_buffer_len += xcb_block_len;
14635     xcb_block_len = 0;
14636     /* valuator_mask */
14637     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14638     xcb_tmp += xcb_block_len;
14639     xcb_align_to = ALIGNOF(uint32_t);
14640     /* insert padding */
14641     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14642     xcb_buffer_len += xcb_block_len + xcb_pad;
14643     if (0 != xcb_pad) {
14644         xcb_tmp += xcb_pad;
14645         xcb_pad = 0;
14646     }
14647     xcb_block_len = 0;
14648 
14649     return xcb_buffer_len;
14650 }
14651 
14652 int
14653 xcb_input_raw_key_release_sizeof (const void  *_buffer  /**< */)
14654 {
14655     char *xcb_tmp = (char *)_buffer;
14656     const xcb_input_raw_key_release_event_t *_aux = (xcb_input_raw_key_release_event_t *)_buffer;
14657     unsigned int xcb_buffer_len = 0;
14658     unsigned int xcb_block_len = 0;
14659     unsigned int xcb_pad = 0;
14660     unsigned int xcb_align_to = 0;
14661 
14662 
14663     xcb_block_len += sizeof(xcb_input_raw_key_release_event_t);
14664     xcb_tmp += xcb_block_len;
14665     xcb_buffer_len += xcb_block_len;
14666     xcb_block_len = 0;
14667     /* valuator_mask */
14668     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14669     xcb_tmp += xcb_block_len;
14670     xcb_align_to = ALIGNOF(uint32_t);
14671     /* insert padding */
14672     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14673     xcb_buffer_len += xcb_block_len + xcb_pad;
14674     if (0 != xcb_pad) {
14675         xcb_tmp += xcb_pad;
14676         xcb_pad = 0;
14677     }
14678     xcb_block_len = 0;
14679 
14680     return xcb_buffer_len;
14681 }
14682 
14683 int
14684 xcb_input_raw_button_press_sizeof (const void  *_buffer  /**< */)
14685 {
14686     char *xcb_tmp = (char *)_buffer;
14687     const xcb_input_raw_button_press_event_t *_aux = (xcb_input_raw_button_press_event_t *)_buffer;
14688     unsigned int xcb_buffer_len = 0;
14689     unsigned int xcb_block_len = 0;
14690     unsigned int xcb_pad = 0;
14691     unsigned int xcb_align_to = 0;
14692 
14693 
14694     xcb_block_len += sizeof(xcb_input_raw_button_press_event_t);
14695     xcb_tmp += xcb_block_len;
14696     xcb_buffer_len += xcb_block_len;
14697     xcb_block_len = 0;
14698     /* valuator_mask */
14699     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14700     xcb_tmp += xcb_block_len;
14701     xcb_align_to = ALIGNOF(uint32_t);
14702     /* insert padding */
14703     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14704     xcb_buffer_len += xcb_block_len + xcb_pad;
14705     if (0 != xcb_pad) {
14706         xcb_tmp += xcb_pad;
14707         xcb_pad = 0;
14708     }
14709     xcb_block_len = 0;
14710 
14711     return xcb_buffer_len;
14712 }
14713 
14714 int
14715 xcb_input_raw_button_release_sizeof (const void  *_buffer  /**< */)
14716 {
14717     char *xcb_tmp = (char *)_buffer;
14718     const xcb_input_raw_button_release_event_t *_aux = (xcb_input_raw_button_release_event_t *)_buffer;
14719     unsigned int xcb_buffer_len = 0;
14720     unsigned int xcb_block_len = 0;
14721     unsigned int xcb_pad = 0;
14722     unsigned int xcb_align_to = 0;
14723 
14724 
14725     xcb_block_len += sizeof(xcb_input_raw_button_release_event_t);
14726     xcb_tmp += xcb_block_len;
14727     xcb_buffer_len += xcb_block_len;
14728     xcb_block_len = 0;
14729     /* valuator_mask */
14730     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14731     xcb_tmp += xcb_block_len;
14732     xcb_align_to = ALIGNOF(uint32_t);
14733     /* insert padding */
14734     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14735     xcb_buffer_len += xcb_block_len + xcb_pad;
14736     if (0 != xcb_pad) {
14737         xcb_tmp += xcb_pad;
14738         xcb_pad = 0;
14739     }
14740     xcb_block_len = 0;
14741 
14742     return xcb_buffer_len;
14743 }
14744 
14745 int
14746 xcb_input_raw_motion_sizeof (const void  *_buffer  /**< */)
14747 {
14748     char *xcb_tmp = (char *)_buffer;
14749     const xcb_input_raw_motion_event_t *_aux = (xcb_input_raw_motion_event_t *)_buffer;
14750     unsigned int xcb_buffer_len = 0;
14751     unsigned int xcb_block_len = 0;
14752     unsigned int xcb_pad = 0;
14753     unsigned int xcb_align_to = 0;
14754 
14755 
14756     xcb_block_len += sizeof(xcb_input_raw_motion_event_t);
14757     xcb_tmp += xcb_block_len;
14758     xcb_buffer_len += xcb_block_len;
14759     xcb_block_len = 0;
14760     /* valuator_mask */
14761     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14762     xcb_tmp += xcb_block_len;
14763     xcb_align_to = ALIGNOF(uint32_t);
14764     /* insert padding */
14765     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14766     xcb_buffer_len += xcb_block_len + xcb_pad;
14767     if (0 != xcb_pad) {
14768         xcb_tmp += xcb_pad;
14769         xcb_pad = 0;
14770     }
14771     xcb_block_len = 0;
14772 
14773     return xcb_buffer_len;
14774 }
14775 
14776 int
14777 xcb_input_touch_begin_sizeof (const void  *_buffer  /**< */)
14778 {
14779     char *xcb_tmp = (char *)_buffer;
14780     const xcb_input_touch_begin_event_t *_aux = (xcb_input_touch_begin_event_t *)_buffer;
14781     unsigned int xcb_buffer_len = 0;
14782     unsigned int xcb_block_len = 0;
14783     unsigned int xcb_pad = 0;
14784     unsigned int xcb_align_to = 0;
14785 
14786 
14787     xcb_block_len += sizeof(xcb_input_touch_begin_event_t);
14788     xcb_tmp += xcb_block_len;
14789     xcb_buffer_len += xcb_block_len;
14790     xcb_block_len = 0;
14791     /* button_mask */
14792     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14793     xcb_tmp += xcb_block_len;
14794     xcb_align_to = ALIGNOF(uint32_t);
14795     /* insert padding */
14796     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14797     xcb_buffer_len += xcb_block_len + xcb_pad;
14798     if (0 != xcb_pad) {
14799         xcb_tmp += xcb_pad;
14800         xcb_pad = 0;
14801     }
14802     xcb_block_len = 0;
14803     /* valuator_mask */
14804     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14805     xcb_tmp += xcb_block_len;
14806     xcb_align_to = ALIGNOF(uint32_t);
14807     /* insert padding */
14808     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14809     xcb_buffer_len += xcb_block_len + xcb_pad;
14810     if (0 != xcb_pad) {
14811         xcb_tmp += xcb_pad;
14812         xcb_pad = 0;
14813     }
14814     xcb_block_len = 0;
14815 
14816     return xcb_buffer_len;
14817 }
14818 
14819 int
14820 xcb_input_touch_update_sizeof (const void  *_buffer  /**< */)
14821 {
14822     char *xcb_tmp = (char *)_buffer;
14823     const xcb_input_touch_update_event_t *_aux = (xcb_input_touch_update_event_t *)_buffer;
14824     unsigned int xcb_buffer_len = 0;
14825     unsigned int xcb_block_len = 0;
14826     unsigned int xcb_pad = 0;
14827     unsigned int xcb_align_to = 0;
14828 
14829 
14830     xcb_block_len += sizeof(xcb_input_touch_update_event_t);
14831     xcb_tmp += xcb_block_len;
14832     xcb_buffer_len += xcb_block_len;
14833     xcb_block_len = 0;
14834     /* button_mask */
14835     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14836     xcb_tmp += xcb_block_len;
14837     xcb_align_to = ALIGNOF(uint32_t);
14838     /* insert padding */
14839     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14840     xcb_buffer_len += xcb_block_len + xcb_pad;
14841     if (0 != xcb_pad) {
14842         xcb_tmp += xcb_pad;
14843         xcb_pad = 0;
14844     }
14845     xcb_block_len = 0;
14846     /* valuator_mask */
14847     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14848     xcb_tmp += xcb_block_len;
14849     xcb_align_to = ALIGNOF(uint32_t);
14850     /* insert padding */
14851     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14852     xcb_buffer_len += xcb_block_len + xcb_pad;
14853     if (0 != xcb_pad) {
14854         xcb_tmp += xcb_pad;
14855         xcb_pad = 0;
14856     }
14857     xcb_block_len = 0;
14858 
14859     return xcb_buffer_len;
14860 }
14861 
14862 int
14863 xcb_input_touch_end_sizeof (const void  *_buffer  /**< */)
14864 {
14865     char *xcb_tmp = (char *)_buffer;
14866     const xcb_input_touch_end_event_t *_aux = (xcb_input_touch_end_event_t *)_buffer;
14867     unsigned int xcb_buffer_len = 0;
14868     unsigned int xcb_block_len = 0;
14869     unsigned int xcb_pad = 0;
14870     unsigned int xcb_align_to = 0;
14871 
14872 
14873     xcb_block_len += sizeof(xcb_input_touch_end_event_t);
14874     xcb_tmp += xcb_block_len;
14875     xcb_buffer_len += xcb_block_len;
14876     xcb_block_len = 0;
14877     /* button_mask */
14878     xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14879     xcb_tmp += xcb_block_len;
14880     xcb_align_to = ALIGNOF(uint32_t);
14881     /* insert padding */
14882     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14883     xcb_buffer_len += xcb_block_len + xcb_pad;
14884     if (0 != xcb_pad) {
14885         xcb_tmp += xcb_pad;
14886         xcb_pad = 0;
14887     }
14888     xcb_block_len = 0;
14889     /* valuator_mask */
14890     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14891     xcb_tmp += xcb_block_len;
14892     xcb_align_to = ALIGNOF(uint32_t);
14893     /* insert padding */
14894     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14895     xcb_buffer_len += xcb_block_len + xcb_pad;
14896     if (0 != xcb_pad) {
14897         xcb_tmp += xcb_pad;
14898         xcb_pad = 0;
14899     }
14900     xcb_block_len = 0;
14901 
14902     return xcb_buffer_len;
14903 }
14904 
14905 int
14906 xcb_input_raw_touch_begin_sizeof (const void  *_buffer  /**< */)
14907 {
14908     char *xcb_tmp = (char *)_buffer;
14909     const xcb_input_raw_touch_begin_event_t *_aux = (xcb_input_raw_touch_begin_event_t *)_buffer;
14910     unsigned int xcb_buffer_len = 0;
14911     unsigned int xcb_block_len = 0;
14912     unsigned int xcb_pad = 0;
14913     unsigned int xcb_align_to = 0;
14914 
14915 
14916     xcb_block_len += sizeof(xcb_input_raw_touch_begin_event_t);
14917     xcb_tmp += xcb_block_len;
14918     xcb_buffer_len += xcb_block_len;
14919     xcb_block_len = 0;
14920     /* valuator_mask */
14921     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14922     xcb_tmp += xcb_block_len;
14923     xcb_align_to = ALIGNOF(uint32_t);
14924     /* insert padding */
14925     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14926     xcb_buffer_len += xcb_block_len + xcb_pad;
14927     if (0 != xcb_pad) {
14928         xcb_tmp += xcb_pad;
14929         xcb_pad = 0;
14930     }
14931     xcb_block_len = 0;
14932 
14933     return xcb_buffer_len;
14934 }
14935 
14936 int
14937 xcb_input_raw_touch_update_sizeof (const void  *_buffer  /**< */)
14938 {
14939     char *xcb_tmp = (char *)_buffer;
14940     const xcb_input_raw_touch_update_event_t *_aux = (xcb_input_raw_touch_update_event_t *)_buffer;
14941     unsigned int xcb_buffer_len = 0;
14942     unsigned int xcb_block_len = 0;
14943     unsigned int xcb_pad = 0;
14944     unsigned int xcb_align_to = 0;
14945 
14946 
14947     xcb_block_len += sizeof(xcb_input_raw_touch_update_event_t);
14948     xcb_tmp += xcb_block_len;
14949     xcb_buffer_len += xcb_block_len;
14950     xcb_block_len = 0;
14951     /* valuator_mask */
14952     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14953     xcb_tmp += xcb_block_len;
14954     xcb_align_to = ALIGNOF(uint32_t);
14955     /* insert padding */
14956     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14957     xcb_buffer_len += xcb_block_len + xcb_pad;
14958     if (0 != xcb_pad) {
14959         xcb_tmp += xcb_pad;
14960         xcb_pad = 0;
14961     }
14962     xcb_block_len = 0;
14963 
14964     return xcb_buffer_len;
14965 }
14966 
14967 int
14968 xcb_input_raw_touch_end_sizeof (const void  *_buffer  /**< */)
14969 {
14970     char *xcb_tmp = (char *)_buffer;
14971     const xcb_input_raw_touch_end_event_t *_aux = (xcb_input_raw_touch_end_event_t *)_buffer;
14972     unsigned int xcb_buffer_len = 0;
14973     unsigned int xcb_block_len = 0;
14974     unsigned int xcb_pad = 0;
14975     unsigned int xcb_align_to = 0;
14976 
14977 
14978     xcb_block_len += sizeof(xcb_input_raw_touch_end_event_t);
14979     xcb_tmp += xcb_block_len;
14980     xcb_buffer_len += xcb_block_len;
14981     xcb_block_len = 0;
14982     /* valuator_mask */
14983     xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14984     xcb_tmp += xcb_block_len;
14985     xcb_align_to = ALIGNOF(uint32_t);
14986     /* insert padding */
14987     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14988     xcb_buffer_len += xcb_block_len + xcb_pad;
14989     if (0 != xcb_pad) {
14990         xcb_tmp += xcb_pad;
14991         xcb_pad = 0;
14992     }
14993     xcb_block_len = 0;
14994 
14995     return xcb_buffer_len;
14996 }
14997 
14998