xref: /minix/external/mit/xorg/lib/libxcb/files/xinput.c (revision 9f988b79)
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 
19 xcb_extension_t xcb_input_id = { "XInputExtension", 0 };
20 
21 
22 /*****************************************************************************
23  **
24  ** void xcb_input_key_code_next
25  **
26  ** @param xcb_input_key_code_iterator_t *i
27  ** @returns void
28  **
29  *****************************************************************************/
30 
31 void
32 xcb_input_key_code_next (xcb_input_key_code_iterator_t *i  /**< */)
33 {
34     --i->rem;
35     ++i->data;
36     i->index += sizeof(xcb_input_key_code_t);
37 }
38 
39 
40 /*****************************************************************************
41  **
42  ** xcb_generic_iterator_t xcb_input_key_code_end
43  **
44  ** @param xcb_input_key_code_iterator_t i
45  ** @returns xcb_generic_iterator_t
46  **
47  *****************************************************************************/
48 
49 xcb_generic_iterator_t
50 xcb_input_key_code_end (xcb_input_key_code_iterator_t i  /**< */)
51 {
52     xcb_generic_iterator_t ret;
53     ret.data = i.data + i.rem;
54     ret.index = i.index + ((char *) ret.data - (char *) i.data);
55     ret.rem = 0;
56     return ret;
57 }
58 
59 
60 /*****************************************************************************
61  **
62  ** void xcb_input_event_class_next
63  **
64  ** @param xcb_input_event_class_iterator_t *i
65  ** @returns void
66  **
67  *****************************************************************************/
68 
69 void
70 xcb_input_event_class_next (xcb_input_event_class_iterator_t *i  /**< */)
71 {
72     --i->rem;
73     ++i->data;
74     i->index += sizeof(xcb_input_event_class_t);
75 }
76 
77 
78 /*****************************************************************************
79  **
80  ** xcb_generic_iterator_t xcb_input_event_class_end
81  **
82  ** @param xcb_input_event_class_iterator_t i
83  ** @returns xcb_generic_iterator_t
84  **
85  *****************************************************************************/
86 
87 xcb_generic_iterator_t
88 xcb_input_event_class_end (xcb_input_event_class_iterator_t i  /**< */)
89 {
90     xcb_generic_iterator_t ret;
91     ret.data = i.data + i.rem;
92     ret.index = i.index + ((char *) ret.data - (char *) i.data);
93     ret.rem = 0;
94     return ret;
95 }
96 
97 int
98 xcb_input_get_extension_version_sizeof (const void  *_buffer  /**< */)
99 {
100     char *xcb_tmp = (char *)_buffer;
101     const xcb_input_get_extension_version_request_t *_aux = (xcb_input_get_extension_version_request_t *)_buffer;
102     unsigned int xcb_buffer_len = 0;
103     unsigned int xcb_block_len = 0;
104     unsigned int xcb_pad = 0;
105     unsigned int xcb_align_to;
106 
107 
108     xcb_block_len += sizeof(xcb_input_get_extension_version_request_t);
109     xcb_tmp += xcb_block_len;
110     /* name */
111     xcb_block_len += _aux->name_len * sizeof(char);
112     xcb_tmp += xcb_block_len;
113     xcb_align_to = ALIGNOF(char);
114     /* insert padding */
115     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
116     xcb_buffer_len += xcb_block_len + xcb_pad;
117     if (0 != xcb_pad) {
118         xcb_tmp += xcb_pad;
119         xcb_pad = 0;
120     }
121     xcb_block_len = 0;
122 
123     return xcb_buffer_len;
124 }
125 
126 
127 /*****************************************************************************
128  **
129  ** xcb_input_get_extension_version_cookie_t xcb_input_get_extension_version
130  **
131  ** @param xcb_connection_t *c
132  ** @param uint16_t          name_len
133  ** @param const char       *name
134  ** @returns xcb_input_get_extension_version_cookie_t
135  **
136  *****************************************************************************/
137 
138 xcb_input_get_extension_version_cookie_t
139 xcb_input_get_extension_version (xcb_connection_t *c  /**< */,
140                                  uint16_t          name_len  /**< */,
141                                  const char       *name  /**< */)
142 {
143     static const xcb_protocol_request_t xcb_req = {
144         /* count */ 4,
145         /* ext */ &xcb_input_id,
146         /* opcode */ XCB_INPUT_GET_EXTENSION_VERSION,
147         /* isvoid */ 0
148     };
149 
150     struct iovec xcb_parts[6];
151     xcb_input_get_extension_version_cookie_t xcb_ret;
152     xcb_input_get_extension_version_request_t xcb_out;
153 
154     xcb_out.name_len = name_len;
155     memset(xcb_out.pad0, 0, 2);
156 
157     xcb_parts[2].iov_base = (char *) &xcb_out;
158     xcb_parts[2].iov_len = sizeof(xcb_out);
159     xcb_parts[3].iov_base = 0;
160     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
161     /* char name */
162     xcb_parts[4].iov_base = (char *) name;
163     xcb_parts[4].iov_len = name_len * sizeof(char);
164     xcb_parts[5].iov_base = 0;
165     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
166 
167     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
168     return xcb_ret;
169 }
170 
171 
172 /*****************************************************************************
173  **
174  ** xcb_input_get_extension_version_cookie_t xcb_input_get_extension_version_unchecked
175  **
176  ** @param xcb_connection_t *c
177  ** @param uint16_t          name_len
178  ** @param const char       *name
179  ** @returns xcb_input_get_extension_version_cookie_t
180  **
181  *****************************************************************************/
182 
183 xcb_input_get_extension_version_cookie_t
184 xcb_input_get_extension_version_unchecked (xcb_connection_t *c  /**< */,
185                                            uint16_t          name_len  /**< */,
186                                            const char       *name  /**< */)
187 {
188     static const xcb_protocol_request_t xcb_req = {
189         /* count */ 4,
190         /* ext */ &xcb_input_id,
191         /* opcode */ XCB_INPUT_GET_EXTENSION_VERSION,
192         /* isvoid */ 0
193     };
194 
195     struct iovec xcb_parts[6];
196     xcb_input_get_extension_version_cookie_t xcb_ret;
197     xcb_input_get_extension_version_request_t xcb_out;
198 
199     xcb_out.name_len = name_len;
200     memset(xcb_out.pad0, 0, 2);
201 
202     xcb_parts[2].iov_base = (char *) &xcb_out;
203     xcb_parts[2].iov_len = sizeof(xcb_out);
204     xcb_parts[3].iov_base = 0;
205     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
206     /* char name */
207     xcb_parts[4].iov_base = (char *) name;
208     xcb_parts[4].iov_len = name_len * sizeof(char);
209     xcb_parts[5].iov_base = 0;
210     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
211 
212     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
213     return xcb_ret;
214 }
215 
216 
217 /*****************************************************************************
218  **
219  ** xcb_input_get_extension_version_reply_t * xcb_input_get_extension_version_reply
220  **
221  ** @param xcb_connection_t                          *c
222  ** @param xcb_input_get_extension_version_cookie_t   cookie
223  ** @param xcb_generic_error_t                      **e
224  ** @returns xcb_input_get_extension_version_reply_t *
225  **
226  *****************************************************************************/
227 
228 xcb_input_get_extension_version_reply_t *
229 xcb_input_get_extension_version_reply (xcb_connection_t                          *c  /**< */,
230                                        xcb_input_get_extension_version_cookie_t   cookie  /**< */,
231                                        xcb_generic_error_t                      **e  /**< */)
232 {
233     return (xcb_input_get_extension_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
234 }
235 
236 
237 /*****************************************************************************
238  **
239  ** void xcb_input_device_info_next
240  **
241  ** @param xcb_input_device_info_iterator_t *i
242  ** @returns void
243  **
244  *****************************************************************************/
245 
246 void
247 xcb_input_device_info_next (xcb_input_device_info_iterator_t *i  /**< */)
248 {
249     --i->rem;
250     ++i->data;
251     i->index += sizeof(xcb_input_device_info_t);
252 }
253 
254 
255 /*****************************************************************************
256  **
257  ** xcb_generic_iterator_t xcb_input_device_info_end
258  **
259  ** @param xcb_input_device_info_iterator_t i
260  ** @returns xcb_generic_iterator_t
261  **
262  *****************************************************************************/
263 
264 xcb_generic_iterator_t
265 xcb_input_device_info_end (xcb_input_device_info_iterator_t i  /**< */)
266 {
267     xcb_generic_iterator_t ret;
268     ret.data = i.data + i.rem;
269     ret.index = i.index + ((char *) ret.data - (char *) i.data);
270     ret.rem = 0;
271     return ret;
272 }
273 
274 int
275 xcb_input_list_input_devices_sizeof (const void  *_buffer  /**< */)
276 {
277     char *xcb_tmp = (char *)_buffer;
278     const xcb_input_list_input_devices_reply_t *_aux = (xcb_input_list_input_devices_reply_t *)_buffer;
279     unsigned int xcb_buffer_len = 0;
280     unsigned int xcb_block_len = 0;
281     unsigned int xcb_pad = 0;
282     unsigned int xcb_align_to;
283 
284 
285     xcb_block_len += sizeof(xcb_input_list_input_devices_reply_t);
286     xcb_tmp += xcb_block_len;
287     /* devices */
288     xcb_block_len += _aux->devices_len * sizeof(xcb_input_device_info_t);
289     xcb_tmp += xcb_block_len;
290     xcb_align_to = ALIGNOF(xcb_input_device_info_t);
291     /* insert padding */
292     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
293     xcb_buffer_len += xcb_block_len + xcb_pad;
294     if (0 != xcb_pad) {
295         xcb_tmp += xcb_pad;
296         xcb_pad = 0;
297     }
298     xcb_block_len = 0;
299 
300     return xcb_buffer_len;
301 }
302 
303 
304 /*****************************************************************************
305  **
306  ** xcb_input_list_input_devices_cookie_t xcb_input_list_input_devices
307  **
308  ** @param xcb_connection_t *c
309  ** @returns xcb_input_list_input_devices_cookie_t
310  **
311  *****************************************************************************/
312 
313 xcb_input_list_input_devices_cookie_t
314 xcb_input_list_input_devices (xcb_connection_t *c  /**< */)
315 {
316     static const xcb_protocol_request_t xcb_req = {
317         /* count */ 2,
318         /* ext */ &xcb_input_id,
319         /* opcode */ XCB_INPUT_LIST_INPUT_DEVICES,
320         /* isvoid */ 0
321     };
322 
323     struct iovec xcb_parts[4];
324     xcb_input_list_input_devices_cookie_t xcb_ret;
325     xcb_input_list_input_devices_request_t xcb_out;
326 
327 
328     xcb_parts[2].iov_base = (char *) &xcb_out;
329     xcb_parts[2].iov_len = sizeof(xcb_out);
330     xcb_parts[3].iov_base = 0;
331     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
332 
333     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
334     return xcb_ret;
335 }
336 
337 
338 /*****************************************************************************
339  **
340  ** xcb_input_list_input_devices_cookie_t xcb_input_list_input_devices_unchecked
341  **
342  ** @param xcb_connection_t *c
343  ** @returns xcb_input_list_input_devices_cookie_t
344  **
345  *****************************************************************************/
346 
347 xcb_input_list_input_devices_cookie_t
348 xcb_input_list_input_devices_unchecked (xcb_connection_t *c  /**< */)
349 {
350     static const xcb_protocol_request_t xcb_req = {
351         /* count */ 2,
352         /* ext */ &xcb_input_id,
353         /* opcode */ XCB_INPUT_LIST_INPUT_DEVICES,
354         /* isvoid */ 0
355     };
356 
357     struct iovec xcb_parts[4];
358     xcb_input_list_input_devices_cookie_t xcb_ret;
359     xcb_input_list_input_devices_request_t xcb_out;
360 
361 
362     xcb_parts[2].iov_base = (char *) &xcb_out;
363     xcb_parts[2].iov_len = sizeof(xcb_out);
364     xcb_parts[3].iov_base = 0;
365     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
366 
367     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
368     return xcb_ret;
369 }
370 
371 
372 /*****************************************************************************
373  **
374  ** xcb_input_device_info_t * xcb_input_list_input_devices_devices
375  **
376  ** @param const xcb_input_list_input_devices_reply_t *R
377  ** @returns xcb_input_device_info_t *
378  **
379  *****************************************************************************/
380 
381 xcb_input_device_info_t *
382 xcb_input_list_input_devices_devices (const xcb_input_list_input_devices_reply_t *R  /**< */)
383 {
384     return (xcb_input_device_info_t *) (R + 1);
385 }
386 
387 
388 /*****************************************************************************
389  **
390  ** int xcb_input_list_input_devices_devices_length
391  **
392  ** @param const xcb_input_list_input_devices_reply_t *R
393  ** @returns int
394  **
395  *****************************************************************************/
396 
397 int
398 xcb_input_list_input_devices_devices_length (const xcb_input_list_input_devices_reply_t *R  /**< */)
399 {
400     return R->devices_len;
401 }
402 
403 
404 /*****************************************************************************
405  **
406  ** xcb_input_device_info_iterator_t xcb_input_list_input_devices_devices_iterator
407  **
408  ** @param const xcb_input_list_input_devices_reply_t *R
409  ** @returns xcb_input_device_info_iterator_t
410  **
411  *****************************************************************************/
412 
413 xcb_input_device_info_iterator_t
414 xcb_input_list_input_devices_devices_iterator (const xcb_input_list_input_devices_reply_t *R  /**< */)
415 {
416     xcb_input_device_info_iterator_t i;
417     i.data = (xcb_input_device_info_t *) (R + 1);
418     i.rem = R->devices_len;
419     i.index = (char *) i.data - (char *) R;
420     return i;
421 }
422 
423 
424 /*****************************************************************************
425  **
426  ** xcb_input_list_input_devices_reply_t * xcb_input_list_input_devices_reply
427  **
428  ** @param xcb_connection_t                       *c
429  ** @param xcb_input_list_input_devices_cookie_t   cookie
430  ** @param xcb_generic_error_t                   **e
431  ** @returns xcb_input_list_input_devices_reply_t *
432  **
433  *****************************************************************************/
434 
435 xcb_input_list_input_devices_reply_t *
436 xcb_input_list_input_devices_reply (xcb_connection_t                       *c  /**< */,
437                                     xcb_input_list_input_devices_cookie_t   cookie  /**< */,
438                                     xcb_generic_error_t                   **e  /**< */)
439 {
440     return (xcb_input_list_input_devices_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
441 }
442 
443 
444 /*****************************************************************************
445  **
446  ** void xcb_input_input_info_next
447  **
448  ** @param xcb_input_input_info_iterator_t *i
449  ** @returns void
450  **
451  *****************************************************************************/
452 
453 void
454 xcb_input_input_info_next (xcb_input_input_info_iterator_t *i  /**< */)
455 {
456     --i->rem;
457     ++i->data;
458     i->index += sizeof(xcb_input_input_info_t);
459 }
460 
461 
462 /*****************************************************************************
463  **
464  ** xcb_generic_iterator_t xcb_input_input_info_end
465  **
466  ** @param xcb_input_input_info_iterator_t i
467  ** @returns xcb_generic_iterator_t
468  **
469  *****************************************************************************/
470 
471 xcb_generic_iterator_t
472 xcb_input_input_info_end (xcb_input_input_info_iterator_t i  /**< */)
473 {
474     xcb_generic_iterator_t ret;
475     ret.data = i.data + i.rem;
476     ret.index = i.index + ((char *) ret.data - (char *) i.data);
477     ret.rem = 0;
478     return ret;
479 }
480 
481 
482 /*****************************************************************************
483  **
484  ** void xcb_input_key_info_next
485  **
486  ** @param xcb_input_key_info_iterator_t *i
487  ** @returns void
488  **
489  *****************************************************************************/
490 
491 void
492 xcb_input_key_info_next (xcb_input_key_info_iterator_t *i  /**< */)
493 {
494     --i->rem;
495     ++i->data;
496     i->index += sizeof(xcb_input_key_info_t);
497 }
498 
499 
500 /*****************************************************************************
501  **
502  ** xcb_generic_iterator_t xcb_input_key_info_end
503  **
504  ** @param xcb_input_key_info_iterator_t i
505  ** @returns xcb_generic_iterator_t
506  **
507  *****************************************************************************/
508 
509 xcb_generic_iterator_t
510 xcb_input_key_info_end (xcb_input_key_info_iterator_t i  /**< */)
511 {
512     xcb_generic_iterator_t ret;
513     ret.data = i.data + i.rem;
514     ret.index = i.index + ((char *) ret.data - (char *) i.data);
515     ret.rem = 0;
516     return ret;
517 }
518 
519 
520 /*****************************************************************************
521  **
522  ** void xcb_input_button_info_next
523  **
524  ** @param xcb_input_button_info_iterator_t *i
525  ** @returns void
526  **
527  *****************************************************************************/
528 
529 void
530 xcb_input_button_info_next (xcb_input_button_info_iterator_t *i  /**< */)
531 {
532     --i->rem;
533     ++i->data;
534     i->index += sizeof(xcb_input_button_info_t);
535 }
536 
537 
538 /*****************************************************************************
539  **
540  ** xcb_generic_iterator_t xcb_input_button_info_end
541  **
542  ** @param xcb_input_button_info_iterator_t i
543  ** @returns xcb_generic_iterator_t
544  **
545  *****************************************************************************/
546 
547 xcb_generic_iterator_t
548 xcb_input_button_info_end (xcb_input_button_info_iterator_t i  /**< */)
549 {
550     xcb_generic_iterator_t ret;
551     ret.data = i.data + i.rem;
552     ret.index = i.index + ((char *) ret.data - (char *) i.data);
553     ret.rem = 0;
554     return ret;
555 }
556 
557 
558 /*****************************************************************************
559  **
560  ** void xcb_input_axis_info_next
561  **
562  ** @param xcb_input_axis_info_iterator_t *i
563  ** @returns void
564  **
565  *****************************************************************************/
566 
567 void
568 xcb_input_axis_info_next (xcb_input_axis_info_iterator_t *i  /**< */)
569 {
570     --i->rem;
571     ++i->data;
572     i->index += sizeof(xcb_input_axis_info_t);
573 }
574 
575 
576 /*****************************************************************************
577  **
578  ** xcb_generic_iterator_t xcb_input_axis_info_end
579  **
580  ** @param xcb_input_axis_info_iterator_t i
581  ** @returns xcb_generic_iterator_t
582  **
583  *****************************************************************************/
584 
585 xcb_generic_iterator_t
586 xcb_input_axis_info_end (xcb_input_axis_info_iterator_t i  /**< */)
587 {
588     xcb_generic_iterator_t ret;
589     ret.data = i.data + i.rem;
590     ret.index = i.index + ((char *) ret.data - (char *) i.data);
591     ret.rem = 0;
592     return ret;
593 }
594 
595 int
596 xcb_input_valuator_info_sizeof (const void  *_buffer  /**< */)
597 {
598     char *xcb_tmp = (char *)_buffer;
599     const xcb_input_valuator_info_t *_aux = (xcb_input_valuator_info_t *)_buffer;
600     unsigned int xcb_buffer_len = 0;
601     unsigned int xcb_block_len = 0;
602     unsigned int xcb_pad = 0;
603     unsigned int xcb_align_to;
604 
605 
606     xcb_block_len += sizeof(xcb_input_valuator_info_t);
607     xcb_tmp += xcb_block_len;
608     /* axes */
609     xcb_block_len += _aux->axes_len * sizeof(xcb_input_axis_info_t);
610     xcb_tmp += xcb_block_len;
611     xcb_align_to = ALIGNOF(xcb_input_axis_info_t);
612     /* insert padding */
613     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
614     xcb_buffer_len += xcb_block_len + xcb_pad;
615     if (0 != xcb_pad) {
616         xcb_tmp += xcb_pad;
617         xcb_pad = 0;
618     }
619     xcb_block_len = 0;
620 
621     return xcb_buffer_len;
622 }
623 
624 
625 /*****************************************************************************
626  **
627  ** xcb_input_axis_info_t * xcb_input_valuator_info_axes
628  **
629  ** @param const xcb_input_valuator_info_t *R
630  ** @returns xcb_input_axis_info_t *
631  **
632  *****************************************************************************/
633 
634 xcb_input_axis_info_t *
635 xcb_input_valuator_info_axes (const xcb_input_valuator_info_t *R  /**< */)
636 {
637     return (xcb_input_axis_info_t *) (R + 1);
638 }
639 
640 
641 /*****************************************************************************
642  **
643  ** int xcb_input_valuator_info_axes_length
644  **
645  ** @param const xcb_input_valuator_info_t *R
646  ** @returns int
647  **
648  *****************************************************************************/
649 
650 int
651 xcb_input_valuator_info_axes_length (const xcb_input_valuator_info_t *R  /**< */)
652 {
653     return R->axes_len;
654 }
655 
656 
657 /*****************************************************************************
658  **
659  ** xcb_input_axis_info_iterator_t xcb_input_valuator_info_axes_iterator
660  **
661  ** @param const xcb_input_valuator_info_t *R
662  ** @returns xcb_input_axis_info_iterator_t
663  **
664  *****************************************************************************/
665 
666 xcb_input_axis_info_iterator_t
667 xcb_input_valuator_info_axes_iterator (const xcb_input_valuator_info_t *R  /**< */)
668 {
669     xcb_input_axis_info_iterator_t i;
670     i.data = (xcb_input_axis_info_t *) (R + 1);
671     i.rem = R->axes_len;
672     i.index = (char *) i.data - (char *) R;
673     return i;
674 }
675 
676 
677 /*****************************************************************************
678  **
679  ** void xcb_input_valuator_info_next
680  **
681  ** @param xcb_input_valuator_info_iterator_t *i
682  ** @returns void
683  **
684  *****************************************************************************/
685 
686 void
687 xcb_input_valuator_info_next (xcb_input_valuator_info_iterator_t *i  /**< */)
688 {
689     xcb_input_valuator_info_t *R = i->data;
690     xcb_generic_iterator_t child;
691     child.data = (xcb_input_valuator_info_t *)(((char *)R) + xcb_input_valuator_info_sizeof(R));
692     i->index = (char *) child.data - (char *) i->data;
693     --i->rem;
694     i->data = (xcb_input_valuator_info_t *) child.data;
695 }
696 
697 
698 /*****************************************************************************
699  **
700  ** xcb_generic_iterator_t xcb_input_valuator_info_end
701  **
702  ** @param xcb_input_valuator_info_iterator_t i
703  ** @returns xcb_generic_iterator_t
704  **
705  *****************************************************************************/
706 
707 xcb_generic_iterator_t
708 xcb_input_valuator_info_end (xcb_input_valuator_info_iterator_t i  /**< */)
709 {
710     xcb_generic_iterator_t ret;
711     while(i.rem > 0)
712         xcb_input_valuator_info_next(&i);
713     ret.data = i.data;
714     ret.rem = i.rem;
715     ret.index = i.index;
716     return ret;
717 }
718 
719 
720 /*****************************************************************************
721  **
722  ** void xcb_input_input_class_info_next
723  **
724  ** @param xcb_input_input_class_info_iterator_t *i
725  ** @returns void
726  **
727  *****************************************************************************/
728 
729 void
730 xcb_input_input_class_info_next (xcb_input_input_class_info_iterator_t *i  /**< */)
731 {
732     --i->rem;
733     ++i->data;
734     i->index += sizeof(xcb_input_input_class_info_t);
735 }
736 
737 
738 /*****************************************************************************
739  **
740  ** xcb_generic_iterator_t xcb_input_input_class_info_end
741  **
742  ** @param xcb_input_input_class_info_iterator_t i
743  ** @returns xcb_generic_iterator_t
744  **
745  *****************************************************************************/
746 
747 xcb_generic_iterator_t
748 xcb_input_input_class_info_end (xcb_input_input_class_info_iterator_t i  /**< */)
749 {
750     xcb_generic_iterator_t ret;
751     ret.data = i.data + i.rem;
752     ret.index = i.index + ((char *) ret.data - (char *) i.data);
753     ret.rem = 0;
754     return ret;
755 }
756 
757 int
758 xcb_input_open_device_sizeof (const void  *_buffer  /**< */)
759 {
760     char *xcb_tmp = (char *)_buffer;
761     const xcb_input_open_device_reply_t *_aux = (xcb_input_open_device_reply_t *)_buffer;
762     unsigned int xcb_buffer_len = 0;
763     unsigned int xcb_block_len = 0;
764     unsigned int xcb_pad = 0;
765     unsigned int xcb_align_to;
766 
767 
768     xcb_block_len += sizeof(xcb_input_open_device_reply_t);
769     xcb_tmp += xcb_block_len;
770     /* class_info */
771     xcb_block_len += _aux->num_classes * sizeof(xcb_input_input_class_info_t);
772     xcb_tmp += xcb_block_len;
773     xcb_align_to = ALIGNOF(xcb_input_input_class_info_t);
774     /* insert padding */
775     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
776     xcb_buffer_len += xcb_block_len + xcb_pad;
777     if (0 != xcb_pad) {
778         xcb_tmp += xcb_pad;
779         xcb_pad = 0;
780     }
781     xcb_block_len = 0;
782 
783     return xcb_buffer_len;
784 }
785 
786 
787 /*****************************************************************************
788  **
789  ** xcb_input_open_device_cookie_t xcb_input_open_device
790  **
791  ** @param xcb_connection_t *c
792  ** @param uint8_t           device_id
793  ** @returns xcb_input_open_device_cookie_t
794  **
795  *****************************************************************************/
796 
797 xcb_input_open_device_cookie_t
798 xcb_input_open_device (xcb_connection_t *c  /**< */,
799                        uint8_t           device_id  /**< */)
800 {
801     static const xcb_protocol_request_t xcb_req = {
802         /* count */ 2,
803         /* ext */ &xcb_input_id,
804         /* opcode */ XCB_INPUT_OPEN_DEVICE,
805         /* isvoid */ 0
806     };
807 
808     struct iovec xcb_parts[4];
809     xcb_input_open_device_cookie_t xcb_ret;
810     xcb_input_open_device_request_t xcb_out;
811 
812     xcb_out.device_id = device_id;
813     memset(xcb_out.pad0, 0, 3);
814 
815     xcb_parts[2].iov_base = (char *) &xcb_out;
816     xcb_parts[2].iov_len = sizeof(xcb_out);
817     xcb_parts[3].iov_base = 0;
818     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
819 
820     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
821     return xcb_ret;
822 }
823 
824 
825 /*****************************************************************************
826  **
827  ** xcb_input_open_device_cookie_t xcb_input_open_device_unchecked
828  **
829  ** @param xcb_connection_t *c
830  ** @param uint8_t           device_id
831  ** @returns xcb_input_open_device_cookie_t
832  **
833  *****************************************************************************/
834 
835 xcb_input_open_device_cookie_t
836 xcb_input_open_device_unchecked (xcb_connection_t *c  /**< */,
837                                  uint8_t           device_id  /**< */)
838 {
839     static const xcb_protocol_request_t xcb_req = {
840         /* count */ 2,
841         /* ext */ &xcb_input_id,
842         /* opcode */ XCB_INPUT_OPEN_DEVICE,
843         /* isvoid */ 0
844     };
845 
846     struct iovec xcb_parts[4];
847     xcb_input_open_device_cookie_t xcb_ret;
848     xcb_input_open_device_request_t xcb_out;
849 
850     xcb_out.device_id = device_id;
851     memset(xcb_out.pad0, 0, 3);
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, 0, xcb_parts + 2, &xcb_req);
859     return xcb_ret;
860 }
861 
862 
863 /*****************************************************************************
864  **
865  ** xcb_input_input_class_info_t * xcb_input_open_device_class_info
866  **
867  ** @param const xcb_input_open_device_reply_t *R
868  ** @returns xcb_input_input_class_info_t *
869  **
870  *****************************************************************************/
871 
872 xcb_input_input_class_info_t *
873 xcb_input_open_device_class_info (const xcb_input_open_device_reply_t *R  /**< */)
874 {
875     return (xcb_input_input_class_info_t *) (R + 1);
876 }
877 
878 
879 /*****************************************************************************
880  **
881  ** int xcb_input_open_device_class_info_length
882  **
883  ** @param const xcb_input_open_device_reply_t *R
884  ** @returns int
885  **
886  *****************************************************************************/
887 
888 int
889 xcb_input_open_device_class_info_length (const xcb_input_open_device_reply_t *R  /**< */)
890 {
891     return R->num_classes;
892 }
893 
894 
895 /*****************************************************************************
896  **
897  ** xcb_input_input_class_info_iterator_t xcb_input_open_device_class_info_iterator
898  **
899  ** @param const xcb_input_open_device_reply_t *R
900  ** @returns xcb_input_input_class_info_iterator_t
901  **
902  *****************************************************************************/
903 
904 xcb_input_input_class_info_iterator_t
905 xcb_input_open_device_class_info_iterator (const xcb_input_open_device_reply_t *R  /**< */)
906 {
907     xcb_input_input_class_info_iterator_t i;
908     i.data = (xcb_input_input_class_info_t *) (R + 1);
909     i.rem = R->num_classes;
910     i.index = (char *) i.data - (char *) R;
911     return i;
912 }
913 
914 
915 /*****************************************************************************
916  **
917  ** xcb_input_open_device_reply_t * xcb_input_open_device_reply
918  **
919  ** @param xcb_connection_t                *c
920  ** @param xcb_input_open_device_cookie_t   cookie
921  ** @param xcb_generic_error_t            **e
922  ** @returns xcb_input_open_device_reply_t *
923  **
924  *****************************************************************************/
925 
926 xcb_input_open_device_reply_t *
927 xcb_input_open_device_reply (xcb_connection_t                *c  /**< */,
928                              xcb_input_open_device_cookie_t   cookie  /**< */,
929                              xcb_generic_error_t            **e  /**< */)
930 {
931     return (xcb_input_open_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
932 }
933 
934 
935 /*****************************************************************************
936  **
937  ** xcb_void_cookie_t xcb_input_close_device_checked
938  **
939  ** @param xcb_connection_t *c
940  ** @param uint8_t           device_id
941  ** @returns xcb_void_cookie_t
942  **
943  *****************************************************************************/
944 
945 xcb_void_cookie_t
946 xcb_input_close_device_checked (xcb_connection_t *c  /**< */,
947                                 uint8_t           device_id  /**< */)
948 {
949     static const xcb_protocol_request_t xcb_req = {
950         /* count */ 2,
951         /* ext */ &xcb_input_id,
952         /* opcode */ XCB_INPUT_CLOSE_DEVICE,
953         /* isvoid */ 1
954     };
955 
956     struct iovec xcb_parts[4];
957     xcb_void_cookie_t xcb_ret;
958     xcb_input_close_device_request_t xcb_out;
959 
960     xcb_out.device_id = device_id;
961     memset(xcb_out.pad0, 0, 3);
962 
963     xcb_parts[2].iov_base = (char *) &xcb_out;
964     xcb_parts[2].iov_len = sizeof(xcb_out);
965     xcb_parts[3].iov_base = 0;
966     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
967 
968     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
969     return xcb_ret;
970 }
971 
972 
973 /*****************************************************************************
974  **
975  ** xcb_void_cookie_t xcb_input_close_device
976  **
977  ** @param xcb_connection_t *c
978  ** @param uint8_t           device_id
979  ** @returns xcb_void_cookie_t
980  **
981  *****************************************************************************/
982 
983 xcb_void_cookie_t
984 xcb_input_close_device (xcb_connection_t *c  /**< */,
985                         uint8_t           device_id  /**< */)
986 {
987     static const xcb_protocol_request_t xcb_req = {
988         /* count */ 2,
989         /* ext */ &xcb_input_id,
990         /* opcode */ XCB_INPUT_CLOSE_DEVICE,
991         /* isvoid */ 1
992     };
993 
994     struct iovec xcb_parts[4];
995     xcb_void_cookie_t xcb_ret;
996     xcb_input_close_device_request_t xcb_out;
997 
998     xcb_out.device_id = device_id;
999     memset(xcb_out.pad0, 0, 3);
1000 
1001     xcb_parts[2].iov_base = (char *) &xcb_out;
1002     xcb_parts[2].iov_len = sizeof(xcb_out);
1003     xcb_parts[3].iov_base = 0;
1004     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1005 
1006     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1007     return xcb_ret;
1008 }
1009 
1010 
1011 /*****************************************************************************
1012  **
1013  ** xcb_input_set_device_mode_cookie_t xcb_input_set_device_mode
1014  **
1015  ** @param xcb_connection_t *c
1016  ** @param uint8_t           device_id
1017  ** @param uint8_t           mode
1018  ** @returns xcb_input_set_device_mode_cookie_t
1019  **
1020  *****************************************************************************/
1021 
1022 xcb_input_set_device_mode_cookie_t
1023 xcb_input_set_device_mode (xcb_connection_t *c  /**< */,
1024                            uint8_t           device_id  /**< */,
1025                            uint8_t           mode  /**< */)
1026 {
1027     static const xcb_protocol_request_t xcb_req = {
1028         /* count */ 2,
1029         /* ext */ &xcb_input_id,
1030         /* opcode */ XCB_INPUT_SET_DEVICE_MODE,
1031         /* isvoid */ 0
1032     };
1033 
1034     struct iovec xcb_parts[4];
1035     xcb_input_set_device_mode_cookie_t xcb_ret;
1036     xcb_input_set_device_mode_request_t xcb_out;
1037 
1038     xcb_out.device_id = device_id;
1039     xcb_out.mode = mode;
1040     memset(xcb_out.pad0, 0, 2);
1041 
1042     xcb_parts[2].iov_base = (char *) &xcb_out;
1043     xcb_parts[2].iov_len = sizeof(xcb_out);
1044     xcb_parts[3].iov_base = 0;
1045     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1046 
1047     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1048     return xcb_ret;
1049 }
1050 
1051 
1052 /*****************************************************************************
1053  **
1054  ** xcb_input_set_device_mode_cookie_t xcb_input_set_device_mode_unchecked
1055  **
1056  ** @param xcb_connection_t *c
1057  ** @param uint8_t           device_id
1058  ** @param uint8_t           mode
1059  ** @returns xcb_input_set_device_mode_cookie_t
1060  **
1061  *****************************************************************************/
1062 
1063 xcb_input_set_device_mode_cookie_t
1064 xcb_input_set_device_mode_unchecked (xcb_connection_t *c  /**< */,
1065                                      uint8_t           device_id  /**< */,
1066                                      uint8_t           mode  /**< */)
1067 {
1068     static const xcb_protocol_request_t xcb_req = {
1069         /* count */ 2,
1070         /* ext */ &xcb_input_id,
1071         /* opcode */ XCB_INPUT_SET_DEVICE_MODE,
1072         /* isvoid */ 0
1073     };
1074 
1075     struct iovec xcb_parts[4];
1076     xcb_input_set_device_mode_cookie_t xcb_ret;
1077     xcb_input_set_device_mode_request_t xcb_out;
1078 
1079     xcb_out.device_id = device_id;
1080     xcb_out.mode = mode;
1081     memset(xcb_out.pad0, 0, 2);
1082 
1083     xcb_parts[2].iov_base = (char *) &xcb_out;
1084     xcb_parts[2].iov_len = sizeof(xcb_out);
1085     xcb_parts[3].iov_base = 0;
1086     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1087 
1088     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1089     return xcb_ret;
1090 }
1091 
1092 
1093 /*****************************************************************************
1094  **
1095  ** xcb_input_set_device_mode_reply_t * xcb_input_set_device_mode_reply
1096  **
1097  ** @param xcb_connection_t                    *c
1098  ** @param xcb_input_set_device_mode_cookie_t   cookie
1099  ** @param xcb_generic_error_t                **e
1100  ** @returns xcb_input_set_device_mode_reply_t *
1101  **
1102  *****************************************************************************/
1103 
1104 xcb_input_set_device_mode_reply_t *
1105 xcb_input_set_device_mode_reply (xcb_connection_t                    *c  /**< */,
1106                                  xcb_input_set_device_mode_cookie_t   cookie  /**< */,
1107                                  xcb_generic_error_t                **e  /**< */)
1108 {
1109     return (xcb_input_set_device_mode_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1110 }
1111 
1112 int
1113 xcb_input_select_extension_event_sizeof (const void  *_buffer  /**< */)
1114 {
1115     char *xcb_tmp = (char *)_buffer;
1116     const xcb_input_select_extension_event_request_t *_aux = (xcb_input_select_extension_event_request_t *)_buffer;
1117     unsigned int xcb_buffer_len = 0;
1118     unsigned int xcb_block_len = 0;
1119     unsigned int xcb_pad = 0;
1120     unsigned int xcb_align_to;
1121 
1122 
1123     xcb_block_len += sizeof(xcb_input_select_extension_event_request_t);
1124     xcb_tmp += xcb_block_len;
1125     /* classes */
1126     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1127     xcb_tmp += xcb_block_len;
1128     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1129     /* insert padding */
1130     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1131     xcb_buffer_len += xcb_block_len + xcb_pad;
1132     if (0 != xcb_pad) {
1133         xcb_tmp += xcb_pad;
1134         xcb_pad = 0;
1135     }
1136     xcb_block_len = 0;
1137 
1138     return xcb_buffer_len;
1139 }
1140 
1141 
1142 /*****************************************************************************
1143  **
1144  ** xcb_void_cookie_t xcb_input_select_extension_event_checked
1145  **
1146  ** @param xcb_connection_t              *c
1147  ** @param xcb_window_t                   window
1148  ** @param uint16_t                       num_classes
1149  ** @param const xcb_input_event_class_t *classes
1150  ** @returns xcb_void_cookie_t
1151  **
1152  *****************************************************************************/
1153 
1154 xcb_void_cookie_t
1155 xcb_input_select_extension_event_checked (xcb_connection_t              *c  /**< */,
1156                                           xcb_window_t                   window  /**< */,
1157                                           uint16_t                       num_classes  /**< */,
1158                                           const xcb_input_event_class_t *classes  /**< */)
1159 {
1160     static const xcb_protocol_request_t xcb_req = {
1161         /* count */ 4,
1162         /* ext */ &xcb_input_id,
1163         /* opcode */ XCB_INPUT_SELECT_EXTENSION_EVENT,
1164         /* isvoid */ 1
1165     };
1166 
1167     struct iovec xcb_parts[6];
1168     xcb_void_cookie_t xcb_ret;
1169     xcb_input_select_extension_event_request_t xcb_out;
1170 
1171     xcb_out.window = window;
1172     xcb_out.num_classes = num_classes;
1173     memset(xcb_out.pad0, 0, 2);
1174 
1175     xcb_parts[2].iov_base = (char *) &xcb_out;
1176     xcb_parts[2].iov_len = sizeof(xcb_out);
1177     xcb_parts[3].iov_base = 0;
1178     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1179     /* xcb_input_event_class_t classes */
1180     xcb_parts[4].iov_base = (char *) classes;
1181     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1182     xcb_parts[5].iov_base = 0;
1183     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1184 
1185     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1186     return xcb_ret;
1187 }
1188 
1189 
1190 /*****************************************************************************
1191  **
1192  ** xcb_void_cookie_t xcb_input_select_extension_event
1193  **
1194  ** @param xcb_connection_t              *c
1195  ** @param xcb_window_t                   window
1196  ** @param uint16_t                       num_classes
1197  ** @param const xcb_input_event_class_t *classes
1198  ** @returns xcb_void_cookie_t
1199  **
1200  *****************************************************************************/
1201 
1202 xcb_void_cookie_t
1203 xcb_input_select_extension_event (xcb_connection_t              *c  /**< */,
1204                                   xcb_window_t                   window  /**< */,
1205                                   uint16_t                       num_classes  /**< */,
1206                                   const xcb_input_event_class_t *classes  /**< */)
1207 {
1208     static const xcb_protocol_request_t xcb_req = {
1209         /* count */ 4,
1210         /* ext */ &xcb_input_id,
1211         /* opcode */ XCB_INPUT_SELECT_EXTENSION_EVENT,
1212         /* isvoid */ 1
1213     };
1214 
1215     struct iovec xcb_parts[6];
1216     xcb_void_cookie_t xcb_ret;
1217     xcb_input_select_extension_event_request_t xcb_out;
1218 
1219     xcb_out.window = window;
1220     xcb_out.num_classes = num_classes;
1221     memset(xcb_out.pad0, 0, 2);
1222 
1223     xcb_parts[2].iov_base = (char *) &xcb_out;
1224     xcb_parts[2].iov_len = sizeof(xcb_out);
1225     xcb_parts[3].iov_base = 0;
1226     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1227     /* xcb_input_event_class_t classes */
1228     xcb_parts[4].iov_base = (char *) classes;
1229     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1230     xcb_parts[5].iov_base = 0;
1231     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1232 
1233     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1234     return xcb_ret;
1235 }
1236 
1237 int
1238 xcb_input_get_selected_extension_events_sizeof (const void  *_buffer  /**< */)
1239 {
1240     char *xcb_tmp = (char *)_buffer;
1241     const xcb_input_get_selected_extension_events_reply_t *_aux = (xcb_input_get_selected_extension_events_reply_t *)_buffer;
1242     unsigned int xcb_buffer_len = 0;
1243     unsigned int xcb_block_len = 0;
1244     unsigned int xcb_pad = 0;
1245     unsigned int xcb_align_to;
1246 
1247 
1248     xcb_block_len += sizeof(xcb_input_get_selected_extension_events_reply_t);
1249     xcb_tmp += xcb_block_len;
1250     /* this_classes */
1251     xcb_block_len += _aux->num_this_classes * sizeof(xcb_input_event_class_t);
1252     xcb_tmp += xcb_block_len;
1253     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1254     /* insert padding */
1255     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1256     xcb_buffer_len += xcb_block_len + xcb_pad;
1257     if (0 != xcb_pad) {
1258         xcb_tmp += xcb_pad;
1259         xcb_pad = 0;
1260     }
1261     xcb_block_len = 0;
1262     /* all_classes */
1263     xcb_block_len += _aux->num_all_classes * sizeof(xcb_input_event_class_t);
1264     xcb_tmp += xcb_block_len;
1265     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1266     /* insert padding */
1267     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1268     xcb_buffer_len += xcb_block_len + xcb_pad;
1269     if (0 != xcb_pad) {
1270         xcb_tmp += xcb_pad;
1271         xcb_pad = 0;
1272     }
1273     xcb_block_len = 0;
1274 
1275     return xcb_buffer_len;
1276 }
1277 
1278 
1279 /*****************************************************************************
1280  **
1281  ** xcb_input_get_selected_extension_events_cookie_t xcb_input_get_selected_extension_events
1282  **
1283  ** @param xcb_connection_t *c
1284  ** @param xcb_window_t      window
1285  ** @returns xcb_input_get_selected_extension_events_cookie_t
1286  **
1287  *****************************************************************************/
1288 
1289 xcb_input_get_selected_extension_events_cookie_t
1290 xcb_input_get_selected_extension_events (xcb_connection_t *c  /**< */,
1291                                          xcb_window_t      window  /**< */)
1292 {
1293     static const xcb_protocol_request_t xcb_req = {
1294         /* count */ 2,
1295         /* ext */ &xcb_input_id,
1296         /* opcode */ XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS,
1297         /* isvoid */ 0
1298     };
1299 
1300     struct iovec xcb_parts[4];
1301     xcb_input_get_selected_extension_events_cookie_t xcb_ret;
1302     xcb_input_get_selected_extension_events_request_t xcb_out;
1303 
1304     xcb_out.window = window;
1305 
1306     xcb_parts[2].iov_base = (char *) &xcb_out;
1307     xcb_parts[2].iov_len = sizeof(xcb_out);
1308     xcb_parts[3].iov_base = 0;
1309     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1310 
1311     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1312     return xcb_ret;
1313 }
1314 
1315 
1316 /*****************************************************************************
1317  **
1318  ** xcb_input_get_selected_extension_events_cookie_t xcb_input_get_selected_extension_events_unchecked
1319  **
1320  ** @param xcb_connection_t *c
1321  ** @param xcb_window_t      window
1322  ** @returns xcb_input_get_selected_extension_events_cookie_t
1323  **
1324  *****************************************************************************/
1325 
1326 xcb_input_get_selected_extension_events_cookie_t
1327 xcb_input_get_selected_extension_events_unchecked (xcb_connection_t *c  /**< */,
1328                                                    xcb_window_t      window  /**< */)
1329 {
1330     static const xcb_protocol_request_t xcb_req = {
1331         /* count */ 2,
1332         /* ext */ &xcb_input_id,
1333         /* opcode */ XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS,
1334         /* isvoid */ 0
1335     };
1336 
1337     struct iovec xcb_parts[4];
1338     xcb_input_get_selected_extension_events_cookie_t xcb_ret;
1339     xcb_input_get_selected_extension_events_request_t xcb_out;
1340 
1341     xcb_out.window = window;
1342 
1343     xcb_parts[2].iov_base = (char *) &xcb_out;
1344     xcb_parts[2].iov_len = sizeof(xcb_out);
1345     xcb_parts[3].iov_base = 0;
1346     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1347 
1348     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1349     return xcb_ret;
1350 }
1351 
1352 
1353 /*****************************************************************************
1354  **
1355  ** xcb_input_event_class_t * xcb_input_get_selected_extension_events_this_classes
1356  **
1357  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1358  ** @returns xcb_input_event_class_t *
1359  **
1360  *****************************************************************************/
1361 
1362 xcb_input_event_class_t *
1363 xcb_input_get_selected_extension_events_this_classes (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1364 {
1365     return (xcb_input_event_class_t *) (R + 1);
1366 }
1367 
1368 
1369 /*****************************************************************************
1370  **
1371  ** int xcb_input_get_selected_extension_events_this_classes_length
1372  **
1373  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1374  ** @returns int
1375  **
1376  *****************************************************************************/
1377 
1378 int
1379 xcb_input_get_selected_extension_events_this_classes_length (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1380 {
1381     return R->num_this_classes;
1382 }
1383 
1384 
1385 /*****************************************************************************
1386  **
1387  ** xcb_generic_iterator_t xcb_input_get_selected_extension_events_this_classes_end
1388  **
1389  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1390  ** @returns xcb_generic_iterator_t
1391  **
1392  *****************************************************************************/
1393 
1394 xcb_generic_iterator_t
1395 xcb_input_get_selected_extension_events_this_classes_end (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1396 {
1397     xcb_generic_iterator_t i;
1398     i.data = ((xcb_input_event_class_t *) (R + 1)) + (R->num_this_classes);
1399     i.rem = 0;
1400     i.index = (char *) i.data - (char *) R;
1401     return i;
1402 }
1403 
1404 
1405 /*****************************************************************************
1406  **
1407  ** xcb_input_event_class_t * xcb_input_get_selected_extension_events_all_classes
1408  **
1409  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1410  ** @returns xcb_input_event_class_t *
1411  **
1412  *****************************************************************************/
1413 
1414 xcb_input_event_class_t *
1415 xcb_input_get_selected_extension_events_all_classes (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1416 {
1417     xcb_generic_iterator_t prev = xcb_input_get_selected_extension_events_this_classes_end(R);
1418     return (xcb_input_event_class_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_input_event_class_t, prev.index) + 0);
1419 }
1420 
1421 
1422 /*****************************************************************************
1423  **
1424  ** int xcb_input_get_selected_extension_events_all_classes_length
1425  **
1426  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1427  ** @returns int
1428  **
1429  *****************************************************************************/
1430 
1431 int
1432 xcb_input_get_selected_extension_events_all_classes_length (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1433 {
1434     return R->num_all_classes;
1435 }
1436 
1437 
1438 /*****************************************************************************
1439  **
1440  ** xcb_generic_iterator_t xcb_input_get_selected_extension_events_all_classes_end
1441  **
1442  ** @param const xcb_input_get_selected_extension_events_reply_t *R
1443  ** @returns xcb_generic_iterator_t
1444  **
1445  *****************************************************************************/
1446 
1447 xcb_generic_iterator_t
1448 xcb_input_get_selected_extension_events_all_classes_end (const xcb_input_get_selected_extension_events_reply_t *R  /**< */)
1449 {
1450     xcb_generic_iterator_t i;
1451     xcb_generic_iterator_t child = xcb_input_get_selected_extension_events_this_classes_end(R);
1452     i.data = ((xcb_input_event_class_t *) child.data) + (R->num_all_classes);
1453     i.rem = 0;
1454     i.index = (char *) i.data - (char *) R;
1455     return i;
1456 }
1457 
1458 
1459 /*****************************************************************************
1460  **
1461  ** xcb_input_get_selected_extension_events_reply_t * xcb_input_get_selected_extension_events_reply
1462  **
1463  ** @param xcb_connection_t                                  *c
1464  ** @param xcb_input_get_selected_extension_events_cookie_t   cookie
1465  ** @param xcb_generic_error_t                              **e
1466  ** @returns xcb_input_get_selected_extension_events_reply_t *
1467  **
1468  *****************************************************************************/
1469 
1470 xcb_input_get_selected_extension_events_reply_t *
1471 xcb_input_get_selected_extension_events_reply (xcb_connection_t                                  *c  /**< */,
1472                                                xcb_input_get_selected_extension_events_cookie_t   cookie  /**< */,
1473                                                xcb_generic_error_t                              **e  /**< */)
1474 {
1475     return (xcb_input_get_selected_extension_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1476 }
1477 
1478 int
1479 xcb_input_change_device_dont_propagate_list_sizeof (const void  *_buffer  /**< */)
1480 {
1481     char *xcb_tmp = (char *)_buffer;
1482     const xcb_input_change_device_dont_propagate_list_request_t *_aux = (xcb_input_change_device_dont_propagate_list_request_t *)_buffer;
1483     unsigned int xcb_buffer_len = 0;
1484     unsigned int xcb_block_len = 0;
1485     unsigned int xcb_pad = 0;
1486     unsigned int xcb_align_to;
1487 
1488 
1489     xcb_block_len += sizeof(xcb_input_change_device_dont_propagate_list_request_t);
1490     xcb_tmp += xcb_block_len;
1491     /* classes */
1492     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1493     xcb_tmp += xcb_block_len;
1494     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1495     /* insert padding */
1496     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1497     xcb_buffer_len += xcb_block_len + xcb_pad;
1498     if (0 != xcb_pad) {
1499         xcb_tmp += xcb_pad;
1500         xcb_pad = 0;
1501     }
1502     xcb_block_len = 0;
1503 
1504     return xcb_buffer_len;
1505 }
1506 
1507 
1508 /*****************************************************************************
1509  **
1510  ** xcb_void_cookie_t xcb_input_change_device_dont_propagate_list_checked
1511  **
1512  ** @param xcb_connection_t              *c
1513  ** @param xcb_window_t                   window
1514  ** @param uint16_t                       num_classes
1515  ** @param uint8_t                        mode
1516  ** @param const xcb_input_event_class_t *classes
1517  ** @returns xcb_void_cookie_t
1518  **
1519  *****************************************************************************/
1520 
1521 xcb_void_cookie_t
1522 xcb_input_change_device_dont_propagate_list_checked (xcb_connection_t              *c  /**< */,
1523                                                      xcb_window_t                   window  /**< */,
1524                                                      uint16_t                       num_classes  /**< */,
1525                                                      uint8_t                        mode  /**< */,
1526                                                      const xcb_input_event_class_t *classes  /**< */)
1527 {
1528     static const xcb_protocol_request_t xcb_req = {
1529         /* count */ 4,
1530         /* ext */ &xcb_input_id,
1531         /* opcode */ XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST,
1532         /* isvoid */ 1
1533     };
1534 
1535     struct iovec xcb_parts[6];
1536     xcb_void_cookie_t xcb_ret;
1537     xcb_input_change_device_dont_propagate_list_request_t xcb_out;
1538 
1539     xcb_out.window = window;
1540     xcb_out.num_classes = num_classes;
1541     xcb_out.mode = mode;
1542     xcb_out.pad0 = 0;
1543 
1544     xcb_parts[2].iov_base = (char *) &xcb_out;
1545     xcb_parts[2].iov_len = sizeof(xcb_out);
1546     xcb_parts[3].iov_base = 0;
1547     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1548     /* xcb_input_event_class_t classes */
1549     xcb_parts[4].iov_base = (char *) classes;
1550     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1551     xcb_parts[5].iov_base = 0;
1552     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1553 
1554     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1555     return xcb_ret;
1556 }
1557 
1558 
1559 /*****************************************************************************
1560  **
1561  ** xcb_void_cookie_t xcb_input_change_device_dont_propagate_list
1562  **
1563  ** @param xcb_connection_t              *c
1564  ** @param xcb_window_t                   window
1565  ** @param uint16_t                       num_classes
1566  ** @param uint8_t                        mode
1567  ** @param const xcb_input_event_class_t *classes
1568  ** @returns xcb_void_cookie_t
1569  **
1570  *****************************************************************************/
1571 
1572 xcb_void_cookie_t
1573 xcb_input_change_device_dont_propagate_list (xcb_connection_t              *c  /**< */,
1574                                              xcb_window_t                   window  /**< */,
1575                                              uint16_t                       num_classes  /**< */,
1576                                              uint8_t                        mode  /**< */,
1577                                              const xcb_input_event_class_t *classes  /**< */)
1578 {
1579     static const xcb_protocol_request_t xcb_req = {
1580         /* count */ 4,
1581         /* ext */ &xcb_input_id,
1582         /* opcode */ XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST,
1583         /* isvoid */ 1
1584     };
1585 
1586     struct iovec xcb_parts[6];
1587     xcb_void_cookie_t xcb_ret;
1588     xcb_input_change_device_dont_propagate_list_request_t xcb_out;
1589 
1590     xcb_out.window = window;
1591     xcb_out.num_classes = num_classes;
1592     xcb_out.mode = mode;
1593     xcb_out.pad0 = 0;
1594 
1595     xcb_parts[2].iov_base = (char *) &xcb_out;
1596     xcb_parts[2].iov_len = sizeof(xcb_out);
1597     xcb_parts[3].iov_base = 0;
1598     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1599     /* xcb_input_event_class_t classes */
1600     xcb_parts[4].iov_base = (char *) classes;
1601     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1602     xcb_parts[5].iov_base = 0;
1603     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1604 
1605     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1606     return xcb_ret;
1607 }
1608 
1609 int
1610 xcb_input_get_device_dont_propagate_list_sizeof (const void  *_buffer  /**< */)
1611 {
1612     char *xcb_tmp = (char *)_buffer;
1613     const xcb_input_get_device_dont_propagate_list_reply_t *_aux = (xcb_input_get_device_dont_propagate_list_reply_t *)_buffer;
1614     unsigned int xcb_buffer_len = 0;
1615     unsigned int xcb_block_len = 0;
1616     unsigned int xcb_pad = 0;
1617     unsigned int xcb_align_to;
1618 
1619 
1620     xcb_block_len += sizeof(xcb_input_get_device_dont_propagate_list_reply_t);
1621     xcb_tmp += xcb_block_len;
1622     /* classes */
1623     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1624     xcb_tmp += xcb_block_len;
1625     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1626     /* insert padding */
1627     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1628     xcb_buffer_len += xcb_block_len + xcb_pad;
1629     if (0 != xcb_pad) {
1630         xcb_tmp += xcb_pad;
1631         xcb_pad = 0;
1632     }
1633     xcb_block_len = 0;
1634 
1635     return xcb_buffer_len;
1636 }
1637 
1638 
1639 /*****************************************************************************
1640  **
1641  ** xcb_input_get_device_dont_propagate_list_cookie_t xcb_input_get_device_dont_propagate_list
1642  **
1643  ** @param xcb_connection_t *c
1644  ** @param xcb_window_t      window
1645  ** @returns xcb_input_get_device_dont_propagate_list_cookie_t
1646  **
1647  *****************************************************************************/
1648 
1649 xcb_input_get_device_dont_propagate_list_cookie_t
1650 xcb_input_get_device_dont_propagate_list (xcb_connection_t *c  /**< */,
1651                                           xcb_window_t      window  /**< */)
1652 {
1653     static const xcb_protocol_request_t xcb_req = {
1654         /* count */ 2,
1655         /* ext */ &xcb_input_id,
1656         /* opcode */ XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST,
1657         /* isvoid */ 0
1658     };
1659 
1660     struct iovec xcb_parts[4];
1661     xcb_input_get_device_dont_propagate_list_cookie_t xcb_ret;
1662     xcb_input_get_device_dont_propagate_list_request_t xcb_out;
1663 
1664     xcb_out.window = window;
1665 
1666     xcb_parts[2].iov_base = (char *) &xcb_out;
1667     xcb_parts[2].iov_len = sizeof(xcb_out);
1668     xcb_parts[3].iov_base = 0;
1669     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1670 
1671     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1672     return xcb_ret;
1673 }
1674 
1675 
1676 /*****************************************************************************
1677  **
1678  ** xcb_input_get_device_dont_propagate_list_cookie_t xcb_input_get_device_dont_propagate_list_unchecked
1679  **
1680  ** @param xcb_connection_t *c
1681  ** @param xcb_window_t      window
1682  ** @returns xcb_input_get_device_dont_propagate_list_cookie_t
1683  **
1684  *****************************************************************************/
1685 
1686 xcb_input_get_device_dont_propagate_list_cookie_t
1687 xcb_input_get_device_dont_propagate_list_unchecked (xcb_connection_t *c  /**< */,
1688                                                     xcb_window_t      window  /**< */)
1689 {
1690     static const xcb_protocol_request_t xcb_req = {
1691         /* count */ 2,
1692         /* ext */ &xcb_input_id,
1693         /* opcode */ XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST,
1694         /* isvoid */ 0
1695     };
1696 
1697     struct iovec xcb_parts[4];
1698     xcb_input_get_device_dont_propagate_list_cookie_t xcb_ret;
1699     xcb_input_get_device_dont_propagate_list_request_t xcb_out;
1700 
1701     xcb_out.window = window;
1702 
1703     xcb_parts[2].iov_base = (char *) &xcb_out;
1704     xcb_parts[2].iov_len = sizeof(xcb_out);
1705     xcb_parts[3].iov_base = 0;
1706     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1707 
1708     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1709     return xcb_ret;
1710 }
1711 
1712 
1713 /*****************************************************************************
1714  **
1715  ** xcb_input_event_class_t * xcb_input_get_device_dont_propagate_list_classes
1716  **
1717  ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
1718  ** @returns xcb_input_event_class_t *
1719  **
1720  *****************************************************************************/
1721 
1722 xcb_input_event_class_t *
1723 xcb_input_get_device_dont_propagate_list_classes (const xcb_input_get_device_dont_propagate_list_reply_t *R  /**< */)
1724 {
1725     return (xcb_input_event_class_t *) (R + 1);
1726 }
1727 
1728 
1729 /*****************************************************************************
1730  **
1731  ** int xcb_input_get_device_dont_propagate_list_classes_length
1732  **
1733  ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
1734  ** @returns int
1735  **
1736  *****************************************************************************/
1737 
1738 int
1739 xcb_input_get_device_dont_propagate_list_classes_length (const xcb_input_get_device_dont_propagate_list_reply_t *R  /**< */)
1740 {
1741     return R->num_classes;
1742 }
1743 
1744 
1745 /*****************************************************************************
1746  **
1747  ** xcb_generic_iterator_t xcb_input_get_device_dont_propagate_list_classes_end
1748  **
1749  ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
1750  ** @returns xcb_generic_iterator_t
1751  **
1752  *****************************************************************************/
1753 
1754 xcb_generic_iterator_t
1755 xcb_input_get_device_dont_propagate_list_classes_end (const xcb_input_get_device_dont_propagate_list_reply_t *R  /**< */)
1756 {
1757     xcb_generic_iterator_t i;
1758     i.data = ((xcb_input_event_class_t *) (R + 1)) + (R->num_classes);
1759     i.rem = 0;
1760     i.index = (char *) i.data - (char *) R;
1761     return i;
1762 }
1763 
1764 
1765 /*****************************************************************************
1766  **
1767  ** xcb_input_get_device_dont_propagate_list_reply_t * xcb_input_get_device_dont_propagate_list_reply
1768  **
1769  ** @param xcb_connection_t                                   *c
1770  ** @param xcb_input_get_device_dont_propagate_list_cookie_t   cookie
1771  ** @param xcb_generic_error_t                               **e
1772  ** @returns xcb_input_get_device_dont_propagate_list_reply_t *
1773  **
1774  *****************************************************************************/
1775 
1776 xcb_input_get_device_dont_propagate_list_reply_t *
1777 xcb_input_get_device_dont_propagate_list_reply (xcb_connection_t                                   *c  /**< */,
1778                                                 xcb_input_get_device_dont_propagate_list_cookie_t   cookie  /**< */,
1779                                                 xcb_generic_error_t                               **e  /**< */)
1780 {
1781     return (xcb_input_get_device_dont_propagate_list_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1782 }
1783 
1784 
1785 /*****************************************************************************
1786  **
1787  ** xcb_input_get_device_motion_events_cookie_t xcb_input_get_device_motion_events
1788  **
1789  ** @param xcb_connection_t *c
1790  ** @param xcb_timestamp_t   start
1791  ** @param xcb_timestamp_t   stop
1792  ** @param uint8_t           device_id
1793  ** @returns xcb_input_get_device_motion_events_cookie_t
1794  **
1795  *****************************************************************************/
1796 
1797 xcb_input_get_device_motion_events_cookie_t
1798 xcb_input_get_device_motion_events (xcb_connection_t *c  /**< */,
1799                                     xcb_timestamp_t   start  /**< */,
1800                                     xcb_timestamp_t   stop  /**< */,
1801                                     uint8_t           device_id  /**< */)
1802 {
1803     static const xcb_protocol_request_t xcb_req = {
1804         /* count */ 2,
1805         /* ext */ &xcb_input_id,
1806         /* opcode */ XCB_INPUT_GET_DEVICE_MOTION_EVENTS,
1807         /* isvoid */ 0
1808     };
1809 
1810     struct iovec xcb_parts[4];
1811     xcb_input_get_device_motion_events_cookie_t xcb_ret;
1812     xcb_input_get_device_motion_events_request_t xcb_out;
1813 
1814     xcb_out.start = start;
1815     xcb_out.stop = stop;
1816     xcb_out.device_id = device_id;
1817 
1818     xcb_parts[2].iov_base = (char *) &xcb_out;
1819     xcb_parts[2].iov_len = sizeof(xcb_out);
1820     xcb_parts[3].iov_base = 0;
1821     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1822 
1823     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1824     return xcb_ret;
1825 }
1826 
1827 
1828 /*****************************************************************************
1829  **
1830  ** xcb_input_get_device_motion_events_cookie_t xcb_input_get_device_motion_events_unchecked
1831  **
1832  ** @param xcb_connection_t *c
1833  ** @param xcb_timestamp_t   start
1834  ** @param xcb_timestamp_t   stop
1835  ** @param uint8_t           device_id
1836  ** @returns xcb_input_get_device_motion_events_cookie_t
1837  **
1838  *****************************************************************************/
1839 
1840 xcb_input_get_device_motion_events_cookie_t
1841 xcb_input_get_device_motion_events_unchecked (xcb_connection_t *c  /**< */,
1842                                               xcb_timestamp_t   start  /**< */,
1843                                               xcb_timestamp_t   stop  /**< */,
1844                                               uint8_t           device_id  /**< */)
1845 {
1846     static const xcb_protocol_request_t xcb_req = {
1847         /* count */ 2,
1848         /* ext */ &xcb_input_id,
1849         /* opcode */ XCB_INPUT_GET_DEVICE_MOTION_EVENTS,
1850         /* isvoid */ 0
1851     };
1852 
1853     struct iovec xcb_parts[4];
1854     xcb_input_get_device_motion_events_cookie_t xcb_ret;
1855     xcb_input_get_device_motion_events_request_t xcb_out;
1856 
1857     xcb_out.start = start;
1858     xcb_out.stop = stop;
1859     xcb_out.device_id = device_id;
1860 
1861     xcb_parts[2].iov_base = (char *) &xcb_out;
1862     xcb_parts[2].iov_len = sizeof(xcb_out);
1863     xcb_parts[3].iov_base = 0;
1864     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1865 
1866     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1867     return xcb_ret;
1868 }
1869 
1870 
1871 /*****************************************************************************
1872  **
1873  ** xcb_input_get_device_motion_events_reply_t * xcb_input_get_device_motion_events_reply
1874  **
1875  ** @param xcb_connection_t                             *c
1876  ** @param xcb_input_get_device_motion_events_cookie_t   cookie
1877  ** @param xcb_generic_error_t                         **e
1878  ** @returns xcb_input_get_device_motion_events_reply_t *
1879  **
1880  *****************************************************************************/
1881 
1882 xcb_input_get_device_motion_events_reply_t *
1883 xcb_input_get_device_motion_events_reply (xcb_connection_t                             *c  /**< */,
1884                                           xcb_input_get_device_motion_events_cookie_t   cookie  /**< */,
1885                                           xcb_generic_error_t                         **e  /**< */)
1886 {
1887     return (xcb_input_get_device_motion_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1888 }
1889 
1890 
1891 /*****************************************************************************
1892  **
1893  ** void xcb_input_device_time_coord_next
1894  **
1895  ** @param xcb_input_device_time_coord_iterator_t *i
1896  ** @returns void
1897  **
1898  *****************************************************************************/
1899 
1900 void
1901 xcb_input_device_time_coord_next (xcb_input_device_time_coord_iterator_t *i  /**< */)
1902 {
1903     --i->rem;
1904     ++i->data;
1905     i->index += sizeof(xcb_input_device_time_coord_t);
1906 }
1907 
1908 
1909 /*****************************************************************************
1910  **
1911  ** xcb_generic_iterator_t xcb_input_device_time_coord_end
1912  **
1913  ** @param xcb_input_device_time_coord_iterator_t i
1914  ** @returns xcb_generic_iterator_t
1915  **
1916  *****************************************************************************/
1917 
1918 xcb_generic_iterator_t
1919 xcb_input_device_time_coord_end (xcb_input_device_time_coord_iterator_t i  /**< */)
1920 {
1921     xcb_generic_iterator_t ret;
1922     ret.data = i.data + i.rem;
1923     ret.index = i.index + ((char *) ret.data - (char *) i.data);
1924     ret.rem = 0;
1925     return ret;
1926 }
1927 
1928 
1929 /*****************************************************************************
1930  **
1931  ** xcb_input_change_keyboard_device_cookie_t xcb_input_change_keyboard_device
1932  **
1933  ** @param xcb_connection_t *c
1934  ** @param uint8_t           device_id
1935  ** @returns xcb_input_change_keyboard_device_cookie_t
1936  **
1937  *****************************************************************************/
1938 
1939 xcb_input_change_keyboard_device_cookie_t
1940 xcb_input_change_keyboard_device (xcb_connection_t *c  /**< */,
1941                                   uint8_t           device_id  /**< */)
1942 {
1943     static const xcb_protocol_request_t xcb_req = {
1944         /* count */ 2,
1945         /* ext */ &xcb_input_id,
1946         /* opcode */ XCB_INPUT_CHANGE_KEYBOARD_DEVICE,
1947         /* isvoid */ 0
1948     };
1949 
1950     struct iovec xcb_parts[4];
1951     xcb_input_change_keyboard_device_cookie_t xcb_ret;
1952     xcb_input_change_keyboard_device_request_t xcb_out;
1953 
1954     xcb_out.device_id = device_id;
1955     memset(xcb_out.pad0, 0, 3);
1956 
1957     xcb_parts[2].iov_base = (char *) &xcb_out;
1958     xcb_parts[2].iov_len = sizeof(xcb_out);
1959     xcb_parts[3].iov_base = 0;
1960     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1961 
1962     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1963     return xcb_ret;
1964 }
1965 
1966 
1967 /*****************************************************************************
1968  **
1969  ** xcb_input_change_keyboard_device_cookie_t xcb_input_change_keyboard_device_unchecked
1970  **
1971  ** @param xcb_connection_t *c
1972  ** @param uint8_t           device_id
1973  ** @returns xcb_input_change_keyboard_device_cookie_t
1974  **
1975  *****************************************************************************/
1976 
1977 xcb_input_change_keyboard_device_cookie_t
1978 xcb_input_change_keyboard_device_unchecked (xcb_connection_t *c  /**< */,
1979                                             uint8_t           device_id  /**< */)
1980 {
1981     static const xcb_protocol_request_t xcb_req = {
1982         /* count */ 2,
1983         /* ext */ &xcb_input_id,
1984         /* opcode */ XCB_INPUT_CHANGE_KEYBOARD_DEVICE,
1985         /* isvoid */ 0
1986     };
1987 
1988     struct iovec xcb_parts[4];
1989     xcb_input_change_keyboard_device_cookie_t xcb_ret;
1990     xcb_input_change_keyboard_device_request_t xcb_out;
1991 
1992     xcb_out.device_id = device_id;
1993     memset(xcb_out.pad0, 0, 3);
1994 
1995     xcb_parts[2].iov_base = (char *) &xcb_out;
1996     xcb_parts[2].iov_len = sizeof(xcb_out);
1997     xcb_parts[3].iov_base = 0;
1998     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1999 
2000     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2001     return xcb_ret;
2002 }
2003 
2004 
2005 /*****************************************************************************
2006  **
2007  ** xcb_input_change_keyboard_device_reply_t * xcb_input_change_keyboard_device_reply
2008  **
2009  ** @param xcb_connection_t                           *c
2010  ** @param xcb_input_change_keyboard_device_cookie_t   cookie
2011  ** @param xcb_generic_error_t                       **e
2012  ** @returns xcb_input_change_keyboard_device_reply_t *
2013  **
2014  *****************************************************************************/
2015 
2016 xcb_input_change_keyboard_device_reply_t *
2017 xcb_input_change_keyboard_device_reply (xcb_connection_t                           *c  /**< */,
2018                                         xcb_input_change_keyboard_device_cookie_t   cookie  /**< */,
2019                                         xcb_generic_error_t                       **e  /**< */)
2020 {
2021     return (xcb_input_change_keyboard_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2022 }
2023 
2024 
2025 /*****************************************************************************
2026  **
2027  ** xcb_input_change_pointer_device_cookie_t xcb_input_change_pointer_device
2028  **
2029  ** @param xcb_connection_t *c
2030  ** @param uint8_t           x_axis
2031  ** @param uint8_t           y_axis
2032  ** @param uint8_t           device_id
2033  ** @returns xcb_input_change_pointer_device_cookie_t
2034  **
2035  *****************************************************************************/
2036 
2037 xcb_input_change_pointer_device_cookie_t
2038 xcb_input_change_pointer_device (xcb_connection_t *c  /**< */,
2039                                  uint8_t           x_axis  /**< */,
2040                                  uint8_t           y_axis  /**< */,
2041                                  uint8_t           device_id  /**< */)
2042 {
2043     static const xcb_protocol_request_t xcb_req = {
2044         /* count */ 2,
2045         /* ext */ &xcb_input_id,
2046         /* opcode */ XCB_INPUT_CHANGE_POINTER_DEVICE,
2047         /* isvoid */ 0
2048     };
2049 
2050     struct iovec xcb_parts[4];
2051     xcb_input_change_pointer_device_cookie_t xcb_ret;
2052     xcb_input_change_pointer_device_request_t xcb_out;
2053 
2054     xcb_out.x_axis = x_axis;
2055     xcb_out.y_axis = y_axis;
2056     xcb_out.device_id = device_id;
2057     xcb_out.pad0 = 0;
2058 
2059     xcb_parts[2].iov_base = (char *) &xcb_out;
2060     xcb_parts[2].iov_len = sizeof(xcb_out);
2061     xcb_parts[3].iov_base = 0;
2062     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2063 
2064     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2065     return xcb_ret;
2066 }
2067 
2068 
2069 /*****************************************************************************
2070  **
2071  ** xcb_input_change_pointer_device_cookie_t xcb_input_change_pointer_device_unchecked
2072  **
2073  ** @param xcb_connection_t *c
2074  ** @param uint8_t           x_axis
2075  ** @param uint8_t           y_axis
2076  ** @param uint8_t           device_id
2077  ** @returns xcb_input_change_pointer_device_cookie_t
2078  **
2079  *****************************************************************************/
2080 
2081 xcb_input_change_pointer_device_cookie_t
2082 xcb_input_change_pointer_device_unchecked (xcb_connection_t *c  /**< */,
2083                                            uint8_t           x_axis  /**< */,
2084                                            uint8_t           y_axis  /**< */,
2085                                            uint8_t           device_id  /**< */)
2086 {
2087     static const xcb_protocol_request_t xcb_req = {
2088         /* count */ 2,
2089         /* ext */ &xcb_input_id,
2090         /* opcode */ XCB_INPUT_CHANGE_POINTER_DEVICE,
2091         /* isvoid */ 0
2092     };
2093 
2094     struct iovec xcb_parts[4];
2095     xcb_input_change_pointer_device_cookie_t xcb_ret;
2096     xcb_input_change_pointer_device_request_t xcb_out;
2097 
2098     xcb_out.x_axis = x_axis;
2099     xcb_out.y_axis = y_axis;
2100     xcb_out.device_id = device_id;
2101     xcb_out.pad0 = 0;
2102 
2103     xcb_parts[2].iov_base = (char *) &xcb_out;
2104     xcb_parts[2].iov_len = sizeof(xcb_out);
2105     xcb_parts[3].iov_base = 0;
2106     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2107 
2108     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2109     return xcb_ret;
2110 }
2111 
2112 
2113 /*****************************************************************************
2114  **
2115  ** xcb_input_change_pointer_device_reply_t * xcb_input_change_pointer_device_reply
2116  **
2117  ** @param xcb_connection_t                          *c
2118  ** @param xcb_input_change_pointer_device_cookie_t   cookie
2119  ** @param xcb_generic_error_t                      **e
2120  ** @returns xcb_input_change_pointer_device_reply_t *
2121  **
2122  *****************************************************************************/
2123 
2124 xcb_input_change_pointer_device_reply_t *
2125 xcb_input_change_pointer_device_reply (xcb_connection_t                          *c  /**< */,
2126                                        xcb_input_change_pointer_device_cookie_t   cookie  /**< */,
2127                                        xcb_generic_error_t                      **e  /**< */)
2128 {
2129     return (xcb_input_change_pointer_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2130 }
2131 
2132 int
2133 xcb_input_grab_device_sizeof (const void  *_buffer  /**< */)
2134 {
2135     char *xcb_tmp = (char *)_buffer;
2136     const xcb_input_grab_device_request_t *_aux = (xcb_input_grab_device_request_t *)_buffer;
2137     unsigned int xcb_buffer_len = 0;
2138     unsigned int xcb_block_len = 0;
2139     unsigned int xcb_pad = 0;
2140     unsigned int xcb_align_to;
2141 
2142 
2143     xcb_block_len += sizeof(xcb_input_grab_device_request_t);
2144     xcb_tmp += xcb_block_len;
2145     /* classes */
2146     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2147     xcb_tmp += xcb_block_len;
2148     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2149     /* insert padding */
2150     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2151     xcb_buffer_len += xcb_block_len + xcb_pad;
2152     if (0 != xcb_pad) {
2153         xcb_tmp += xcb_pad;
2154         xcb_pad = 0;
2155     }
2156     xcb_block_len = 0;
2157 
2158     return xcb_buffer_len;
2159 }
2160 
2161 
2162 /*****************************************************************************
2163  **
2164  ** xcb_input_grab_device_cookie_t xcb_input_grab_device
2165  **
2166  ** @param xcb_connection_t              *c
2167  ** @param xcb_window_t                   grab_window
2168  ** @param xcb_timestamp_t                time
2169  ** @param uint16_t                       num_classes
2170  ** @param uint8_t                        this_device_mode
2171  ** @param uint8_t                        other_device_mode
2172  ** @param uint8_t                        owner_events
2173  ** @param uint8_t                        device_id
2174  ** @param const xcb_input_event_class_t *classes
2175  ** @returns xcb_input_grab_device_cookie_t
2176  **
2177  *****************************************************************************/
2178 
2179 xcb_input_grab_device_cookie_t
2180 xcb_input_grab_device (xcb_connection_t              *c  /**< */,
2181                        xcb_window_t                   grab_window  /**< */,
2182                        xcb_timestamp_t                time  /**< */,
2183                        uint16_t                       num_classes  /**< */,
2184                        uint8_t                        this_device_mode  /**< */,
2185                        uint8_t                        other_device_mode  /**< */,
2186                        uint8_t                        owner_events  /**< */,
2187                        uint8_t                        device_id  /**< */,
2188                        const xcb_input_event_class_t *classes  /**< */)
2189 {
2190     static const xcb_protocol_request_t xcb_req = {
2191         /* count */ 4,
2192         /* ext */ &xcb_input_id,
2193         /* opcode */ XCB_INPUT_GRAB_DEVICE,
2194         /* isvoid */ 0
2195     };
2196 
2197     struct iovec xcb_parts[6];
2198     xcb_input_grab_device_cookie_t xcb_ret;
2199     xcb_input_grab_device_request_t xcb_out;
2200 
2201     xcb_out.grab_window = grab_window;
2202     xcb_out.time = time;
2203     xcb_out.num_classes = num_classes;
2204     xcb_out.this_device_mode = this_device_mode;
2205     xcb_out.other_device_mode = other_device_mode;
2206     xcb_out.owner_events = owner_events;
2207     xcb_out.device_id = device_id;
2208     memset(xcb_out.pad0, 0, 2);
2209 
2210     xcb_parts[2].iov_base = (char *) &xcb_out;
2211     xcb_parts[2].iov_len = sizeof(xcb_out);
2212     xcb_parts[3].iov_base = 0;
2213     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2214     /* xcb_input_event_class_t classes */
2215     xcb_parts[4].iov_base = (char *) classes;
2216     xcb_parts[4].iov_len = num_classes * sizeof(uint32_t);
2217     xcb_parts[5].iov_base = 0;
2218     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2219 
2220     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2221     return xcb_ret;
2222 }
2223 
2224 
2225 /*****************************************************************************
2226  **
2227  ** xcb_input_grab_device_cookie_t xcb_input_grab_device_unchecked
2228  **
2229  ** @param xcb_connection_t              *c
2230  ** @param xcb_window_t                   grab_window
2231  ** @param xcb_timestamp_t                time
2232  ** @param uint16_t                       num_classes
2233  ** @param uint8_t                        this_device_mode
2234  ** @param uint8_t                        other_device_mode
2235  ** @param uint8_t                        owner_events
2236  ** @param uint8_t                        device_id
2237  ** @param const xcb_input_event_class_t *classes
2238  ** @returns xcb_input_grab_device_cookie_t
2239  **
2240  *****************************************************************************/
2241 
2242 xcb_input_grab_device_cookie_t
2243 xcb_input_grab_device_unchecked (xcb_connection_t              *c  /**< */,
2244                                  xcb_window_t                   grab_window  /**< */,
2245                                  xcb_timestamp_t                time  /**< */,
2246                                  uint16_t                       num_classes  /**< */,
2247                                  uint8_t                        this_device_mode  /**< */,
2248                                  uint8_t                        other_device_mode  /**< */,
2249                                  uint8_t                        owner_events  /**< */,
2250                                  uint8_t                        device_id  /**< */,
2251                                  const xcb_input_event_class_t *classes  /**< */)
2252 {
2253     static const xcb_protocol_request_t xcb_req = {
2254         /* count */ 4,
2255         /* ext */ &xcb_input_id,
2256         /* opcode */ XCB_INPUT_GRAB_DEVICE,
2257         /* isvoid */ 0
2258     };
2259 
2260     struct iovec xcb_parts[6];
2261     xcb_input_grab_device_cookie_t xcb_ret;
2262     xcb_input_grab_device_request_t xcb_out;
2263 
2264     xcb_out.grab_window = grab_window;
2265     xcb_out.time = time;
2266     xcb_out.num_classes = num_classes;
2267     xcb_out.this_device_mode = this_device_mode;
2268     xcb_out.other_device_mode = other_device_mode;
2269     xcb_out.owner_events = owner_events;
2270     xcb_out.device_id = device_id;
2271     memset(xcb_out.pad0, 0, 2);
2272 
2273     xcb_parts[2].iov_base = (char *) &xcb_out;
2274     xcb_parts[2].iov_len = sizeof(xcb_out);
2275     xcb_parts[3].iov_base = 0;
2276     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2277     /* xcb_input_event_class_t classes */
2278     xcb_parts[4].iov_base = (char *) classes;
2279     xcb_parts[4].iov_len = num_classes * sizeof(uint32_t);
2280     xcb_parts[5].iov_base = 0;
2281     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2282 
2283     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2284     return xcb_ret;
2285 }
2286 
2287 
2288 /*****************************************************************************
2289  **
2290  ** xcb_input_grab_device_reply_t * xcb_input_grab_device_reply
2291  **
2292  ** @param xcb_connection_t                *c
2293  ** @param xcb_input_grab_device_cookie_t   cookie
2294  ** @param xcb_generic_error_t            **e
2295  ** @returns xcb_input_grab_device_reply_t *
2296  **
2297  *****************************************************************************/
2298 
2299 xcb_input_grab_device_reply_t *
2300 xcb_input_grab_device_reply (xcb_connection_t                *c  /**< */,
2301                              xcb_input_grab_device_cookie_t   cookie  /**< */,
2302                              xcb_generic_error_t            **e  /**< */)
2303 {
2304     return (xcb_input_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2305 }
2306 
2307 
2308 /*****************************************************************************
2309  **
2310  ** xcb_void_cookie_t xcb_input_ungrab_device_checked
2311  **
2312  ** @param xcb_connection_t *c
2313  ** @param xcb_timestamp_t   time
2314  ** @param uint8_t           device_id
2315  ** @returns xcb_void_cookie_t
2316  **
2317  *****************************************************************************/
2318 
2319 xcb_void_cookie_t
2320 xcb_input_ungrab_device_checked (xcb_connection_t *c  /**< */,
2321                                  xcb_timestamp_t   time  /**< */,
2322                                  uint8_t           device_id  /**< */)
2323 {
2324     static const xcb_protocol_request_t xcb_req = {
2325         /* count */ 2,
2326         /* ext */ &xcb_input_id,
2327         /* opcode */ XCB_INPUT_UNGRAB_DEVICE,
2328         /* isvoid */ 1
2329     };
2330 
2331     struct iovec xcb_parts[4];
2332     xcb_void_cookie_t xcb_ret;
2333     xcb_input_ungrab_device_request_t xcb_out;
2334 
2335     xcb_out.time = time;
2336     xcb_out.device_id = device_id;
2337 
2338     xcb_parts[2].iov_base = (char *) &xcb_out;
2339     xcb_parts[2].iov_len = sizeof(xcb_out);
2340     xcb_parts[3].iov_base = 0;
2341     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2342 
2343     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2344     return xcb_ret;
2345 }
2346 
2347 
2348 /*****************************************************************************
2349  **
2350  ** xcb_void_cookie_t xcb_input_ungrab_device
2351  **
2352  ** @param xcb_connection_t *c
2353  ** @param xcb_timestamp_t   time
2354  ** @param uint8_t           device_id
2355  ** @returns xcb_void_cookie_t
2356  **
2357  *****************************************************************************/
2358 
2359 xcb_void_cookie_t
2360 xcb_input_ungrab_device (xcb_connection_t *c  /**< */,
2361                          xcb_timestamp_t   time  /**< */,
2362                          uint8_t           device_id  /**< */)
2363 {
2364     static const xcb_protocol_request_t xcb_req = {
2365         /* count */ 2,
2366         /* ext */ &xcb_input_id,
2367         /* opcode */ XCB_INPUT_UNGRAB_DEVICE,
2368         /* isvoid */ 1
2369     };
2370 
2371     struct iovec xcb_parts[4];
2372     xcb_void_cookie_t xcb_ret;
2373     xcb_input_ungrab_device_request_t xcb_out;
2374 
2375     xcb_out.time = time;
2376     xcb_out.device_id = device_id;
2377 
2378     xcb_parts[2].iov_base = (char *) &xcb_out;
2379     xcb_parts[2].iov_len = sizeof(xcb_out);
2380     xcb_parts[3].iov_base = 0;
2381     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2382 
2383     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2384     return xcb_ret;
2385 }
2386 
2387 int
2388 xcb_input_grab_device_key_sizeof (const void  *_buffer  /**< */)
2389 {
2390     char *xcb_tmp = (char *)_buffer;
2391     const xcb_input_grab_device_key_request_t *_aux = (xcb_input_grab_device_key_request_t *)_buffer;
2392     unsigned int xcb_buffer_len = 0;
2393     unsigned int xcb_block_len = 0;
2394     unsigned int xcb_pad = 0;
2395     unsigned int xcb_align_to;
2396 
2397 
2398     xcb_block_len += sizeof(xcb_input_grab_device_key_request_t);
2399     xcb_tmp += xcb_block_len;
2400     /* classes */
2401     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2402     xcb_tmp += xcb_block_len;
2403     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2404     /* insert padding */
2405     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2406     xcb_buffer_len += xcb_block_len + xcb_pad;
2407     if (0 != xcb_pad) {
2408         xcb_tmp += xcb_pad;
2409         xcb_pad = 0;
2410     }
2411     xcb_block_len = 0;
2412 
2413     return xcb_buffer_len;
2414 }
2415 
2416 
2417 /*****************************************************************************
2418  **
2419  ** xcb_void_cookie_t xcb_input_grab_device_key_checked
2420  **
2421  ** @param xcb_connection_t              *c
2422  ** @param xcb_window_t                   grab_window
2423  ** @param uint16_t                       num_classes
2424  ** @param uint16_t                       modifiers
2425  ** @param uint8_t                        modifier_device
2426  ** @param uint8_t                        grabbed_device
2427  ** @param uint8_t                        key
2428  ** @param uint8_t                        this_device_mode
2429  ** @param uint8_t                        other_device_mode
2430  ** @param uint8_t                        owner_events
2431  ** @param const xcb_input_event_class_t *classes
2432  ** @returns xcb_void_cookie_t
2433  **
2434  *****************************************************************************/
2435 
2436 xcb_void_cookie_t
2437 xcb_input_grab_device_key_checked (xcb_connection_t              *c  /**< */,
2438                                    xcb_window_t                   grab_window  /**< */,
2439                                    uint16_t                       num_classes  /**< */,
2440                                    uint16_t                       modifiers  /**< */,
2441                                    uint8_t                        modifier_device  /**< */,
2442                                    uint8_t                        grabbed_device  /**< */,
2443                                    uint8_t                        key  /**< */,
2444                                    uint8_t                        this_device_mode  /**< */,
2445                                    uint8_t                        other_device_mode  /**< */,
2446                                    uint8_t                        owner_events  /**< */,
2447                                    const xcb_input_event_class_t *classes  /**< */)
2448 {
2449     static const xcb_protocol_request_t xcb_req = {
2450         /* count */ 4,
2451         /* ext */ &xcb_input_id,
2452         /* opcode */ XCB_INPUT_GRAB_DEVICE_KEY,
2453         /* isvoid */ 1
2454     };
2455 
2456     struct iovec xcb_parts[6];
2457     xcb_void_cookie_t xcb_ret;
2458     xcb_input_grab_device_key_request_t xcb_out;
2459 
2460     xcb_out.grab_window = grab_window;
2461     xcb_out.num_classes = num_classes;
2462     xcb_out.modifiers = modifiers;
2463     xcb_out.modifier_device = modifier_device;
2464     xcb_out.grabbed_device = grabbed_device;
2465     xcb_out.key = key;
2466     xcb_out.this_device_mode = this_device_mode;
2467     xcb_out.other_device_mode = other_device_mode;
2468     xcb_out.owner_events = owner_events;
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(xcb_input_event_class_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_void_cookie_t xcb_input_grab_device_key
2489  **
2490  ** @param xcb_connection_t              *c
2491  ** @param xcb_window_t                   grab_window
2492  ** @param uint16_t                       num_classes
2493  ** @param uint16_t                       modifiers
2494  ** @param uint8_t                        modifier_device
2495  ** @param uint8_t                        grabbed_device
2496  ** @param uint8_t                        key
2497  ** @param uint8_t                        this_device_mode
2498  ** @param uint8_t                        other_device_mode
2499  ** @param uint8_t                        owner_events
2500  ** @param const xcb_input_event_class_t *classes
2501  ** @returns xcb_void_cookie_t
2502  **
2503  *****************************************************************************/
2504 
2505 xcb_void_cookie_t
2506 xcb_input_grab_device_key (xcb_connection_t              *c  /**< */,
2507                            xcb_window_t                   grab_window  /**< */,
2508                            uint16_t                       num_classes  /**< */,
2509                            uint16_t                       modifiers  /**< */,
2510                            uint8_t                        modifier_device  /**< */,
2511                            uint8_t                        grabbed_device  /**< */,
2512                            uint8_t                        key  /**< */,
2513                            uint8_t                        this_device_mode  /**< */,
2514                            uint8_t                        other_device_mode  /**< */,
2515                            uint8_t                        owner_events  /**< */,
2516                            const xcb_input_event_class_t *classes  /**< */)
2517 {
2518     static const xcb_protocol_request_t xcb_req = {
2519         /* count */ 4,
2520         /* ext */ &xcb_input_id,
2521         /* opcode */ XCB_INPUT_GRAB_DEVICE_KEY,
2522         /* isvoid */ 1
2523     };
2524 
2525     struct iovec xcb_parts[6];
2526     xcb_void_cookie_t xcb_ret;
2527     xcb_input_grab_device_key_request_t xcb_out;
2528 
2529     xcb_out.grab_window = grab_window;
2530     xcb_out.num_classes = num_classes;
2531     xcb_out.modifiers = modifiers;
2532     xcb_out.modifier_device = modifier_device;
2533     xcb_out.grabbed_device = grabbed_device;
2534     xcb_out.key = key;
2535     xcb_out.this_device_mode = this_device_mode;
2536     xcb_out.other_device_mode = other_device_mode;
2537     xcb_out.owner_events = owner_events;
2538     memset(xcb_out.pad0, 0, 2);
2539 
2540     xcb_parts[2].iov_base = (char *) &xcb_out;
2541     xcb_parts[2].iov_len = sizeof(xcb_out);
2542     xcb_parts[3].iov_base = 0;
2543     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2544     /* xcb_input_event_class_t classes */
2545     xcb_parts[4].iov_base = (char *) classes;
2546     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
2547     xcb_parts[5].iov_base = 0;
2548     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2549 
2550     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2551     return xcb_ret;
2552 }
2553 
2554 
2555 /*****************************************************************************
2556  **
2557  ** xcb_void_cookie_t xcb_input_ungrab_device_key_checked
2558  **
2559  ** @param xcb_connection_t *c
2560  ** @param xcb_window_t      grabWindow
2561  ** @param uint16_t          modifiers
2562  ** @param uint8_t           modifier_device
2563  ** @param uint8_t           key
2564  ** @param uint8_t           grabbed_device
2565  ** @returns xcb_void_cookie_t
2566  **
2567  *****************************************************************************/
2568 
2569 xcb_void_cookie_t
2570 xcb_input_ungrab_device_key_checked (xcb_connection_t *c  /**< */,
2571                                      xcb_window_t      grabWindow  /**< */,
2572                                      uint16_t          modifiers  /**< */,
2573                                      uint8_t           modifier_device  /**< */,
2574                                      uint8_t           key  /**< */,
2575                                      uint8_t           grabbed_device  /**< */)
2576 {
2577     static const xcb_protocol_request_t xcb_req = {
2578         /* count */ 2,
2579         /* ext */ &xcb_input_id,
2580         /* opcode */ XCB_INPUT_UNGRAB_DEVICE_KEY,
2581         /* isvoid */ 1
2582     };
2583 
2584     struct iovec xcb_parts[4];
2585     xcb_void_cookie_t xcb_ret;
2586     xcb_input_ungrab_device_key_request_t xcb_out;
2587 
2588     xcb_out.grabWindow = grabWindow;
2589     xcb_out.modifiers = modifiers;
2590     xcb_out.modifier_device = modifier_device;
2591     xcb_out.key = key;
2592     xcb_out.grabbed_device = grabbed_device;
2593 
2594     xcb_parts[2].iov_base = (char *) &xcb_out;
2595     xcb_parts[2].iov_len = sizeof(xcb_out);
2596     xcb_parts[3].iov_base = 0;
2597     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2598 
2599     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2600     return xcb_ret;
2601 }
2602 
2603 
2604 /*****************************************************************************
2605  **
2606  ** xcb_void_cookie_t xcb_input_ungrab_device_key
2607  **
2608  ** @param xcb_connection_t *c
2609  ** @param xcb_window_t      grabWindow
2610  ** @param uint16_t          modifiers
2611  ** @param uint8_t           modifier_device
2612  ** @param uint8_t           key
2613  ** @param uint8_t           grabbed_device
2614  ** @returns xcb_void_cookie_t
2615  **
2616  *****************************************************************************/
2617 
2618 xcb_void_cookie_t
2619 xcb_input_ungrab_device_key (xcb_connection_t *c  /**< */,
2620                              xcb_window_t      grabWindow  /**< */,
2621                              uint16_t          modifiers  /**< */,
2622                              uint8_t           modifier_device  /**< */,
2623                              uint8_t           key  /**< */,
2624                              uint8_t           grabbed_device  /**< */)
2625 {
2626     static const xcb_protocol_request_t xcb_req = {
2627         /* count */ 2,
2628         /* ext */ &xcb_input_id,
2629         /* opcode */ XCB_INPUT_UNGRAB_DEVICE_KEY,
2630         /* isvoid */ 1
2631     };
2632 
2633     struct iovec xcb_parts[4];
2634     xcb_void_cookie_t xcb_ret;
2635     xcb_input_ungrab_device_key_request_t xcb_out;
2636 
2637     xcb_out.grabWindow = grabWindow;
2638     xcb_out.modifiers = modifiers;
2639     xcb_out.modifier_device = modifier_device;
2640     xcb_out.key = key;
2641     xcb_out.grabbed_device = grabbed_device;
2642 
2643     xcb_parts[2].iov_base = (char *) &xcb_out;
2644     xcb_parts[2].iov_len = sizeof(xcb_out);
2645     xcb_parts[3].iov_base = 0;
2646     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2647 
2648     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2649     return xcb_ret;
2650 }
2651 
2652 int
2653 xcb_input_grab_device_button_sizeof (const void  *_buffer  /**< */)
2654 {
2655     char *xcb_tmp = (char *)_buffer;
2656     const xcb_input_grab_device_button_request_t *_aux = (xcb_input_grab_device_button_request_t *)_buffer;
2657     unsigned int xcb_buffer_len = 0;
2658     unsigned int xcb_block_len = 0;
2659     unsigned int xcb_pad = 0;
2660     unsigned int xcb_align_to;
2661 
2662 
2663     xcb_block_len += sizeof(xcb_input_grab_device_button_request_t);
2664     xcb_tmp += xcb_block_len;
2665     /* classes */
2666     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2667     xcb_tmp += xcb_block_len;
2668     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2669     /* insert padding */
2670     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2671     xcb_buffer_len += xcb_block_len + xcb_pad;
2672     if (0 != xcb_pad) {
2673         xcb_tmp += xcb_pad;
2674         xcb_pad = 0;
2675     }
2676     xcb_block_len = 0;
2677 
2678     return xcb_buffer_len;
2679 }
2680 
2681 
2682 /*****************************************************************************
2683  **
2684  ** xcb_void_cookie_t xcb_input_grab_device_button_checked
2685  **
2686  ** @param xcb_connection_t              *c
2687  ** @param xcb_window_t                   grab_window
2688  ** @param uint8_t                        grabbed_device
2689  ** @param uint8_t                        modifier_device
2690  ** @param uint16_t                       num_classes
2691  ** @param uint16_t                       modifiers
2692  ** @param uint8_t                        this_device_mode
2693  ** @param uint8_t                        other_device_mode
2694  ** @param uint8_t                        button
2695  ** @param uint8_t                        owner_events
2696  ** @param const xcb_input_event_class_t *classes
2697  ** @returns xcb_void_cookie_t
2698  **
2699  *****************************************************************************/
2700 
2701 xcb_void_cookie_t
2702 xcb_input_grab_device_button_checked (xcb_connection_t              *c  /**< */,
2703                                       xcb_window_t                   grab_window  /**< */,
2704                                       uint8_t                        grabbed_device  /**< */,
2705                                       uint8_t                        modifier_device  /**< */,
2706                                       uint16_t                       num_classes  /**< */,
2707                                       uint16_t                       modifiers  /**< */,
2708                                       uint8_t                        this_device_mode  /**< */,
2709                                       uint8_t                        other_device_mode  /**< */,
2710                                       uint8_t                        button  /**< */,
2711                                       uint8_t                        owner_events  /**< */,
2712                                       const xcb_input_event_class_t *classes  /**< */)
2713 {
2714     static const xcb_protocol_request_t xcb_req = {
2715         /* count */ 4,
2716         /* ext */ &xcb_input_id,
2717         /* opcode */ XCB_INPUT_GRAB_DEVICE_BUTTON,
2718         /* isvoid */ 1
2719     };
2720 
2721     struct iovec xcb_parts[6];
2722     xcb_void_cookie_t xcb_ret;
2723     xcb_input_grab_device_button_request_t xcb_out;
2724 
2725     xcb_out.grab_window = grab_window;
2726     xcb_out.grabbed_device = grabbed_device;
2727     xcb_out.modifier_device = modifier_device;
2728     xcb_out.num_classes = num_classes;
2729     xcb_out.modifiers = modifiers;
2730     xcb_out.this_device_mode = this_device_mode;
2731     xcb_out.other_device_mode = other_device_mode;
2732     xcb_out.button = button;
2733     xcb_out.owner_events = owner_events;
2734     memset(xcb_out.pad0, 0, 2);
2735 
2736     xcb_parts[2].iov_base = (char *) &xcb_out;
2737     xcb_parts[2].iov_len = sizeof(xcb_out);
2738     xcb_parts[3].iov_base = 0;
2739     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2740     /* xcb_input_event_class_t classes */
2741     xcb_parts[4].iov_base = (char *) classes;
2742     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
2743     xcb_parts[5].iov_base = 0;
2744     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2745 
2746     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2747     return xcb_ret;
2748 }
2749 
2750 
2751 /*****************************************************************************
2752  **
2753  ** xcb_void_cookie_t xcb_input_grab_device_button
2754  **
2755  ** @param xcb_connection_t              *c
2756  ** @param xcb_window_t                   grab_window
2757  ** @param uint8_t                        grabbed_device
2758  ** @param uint8_t                        modifier_device
2759  ** @param uint16_t                       num_classes
2760  ** @param uint16_t                       modifiers
2761  ** @param uint8_t                        this_device_mode
2762  ** @param uint8_t                        other_device_mode
2763  ** @param uint8_t                        button
2764  ** @param uint8_t                        owner_events
2765  ** @param const xcb_input_event_class_t *classes
2766  ** @returns xcb_void_cookie_t
2767  **
2768  *****************************************************************************/
2769 
2770 xcb_void_cookie_t
2771 xcb_input_grab_device_button (xcb_connection_t              *c  /**< */,
2772                               xcb_window_t                   grab_window  /**< */,
2773                               uint8_t                        grabbed_device  /**< */,
2774                               uint8_t                        modifier_device  /**< */,
2775                               uint16_t                       num_classes  /**< */,
2776                               uint16_t                       modifiers  /**< */,
2777                               uint8_t                        this_device_mode  /**< */,
2778                               uint8_t                        other_device_mode  /**< */,
2779                               uint8_t                        button  /**< */,
2780                               uint8_t                        owner_events  /**< */,
2781                               const xcb_input_event_class_t *classes  /**< */)
2782 {
2783     static const xcb_protocol_request_t xcb_req = {
2784         /* count */ 4,
2785         /* ext */ &xcb_input_id,
2786         /* opcode */ XCB_INPUT_GRAB_DEVICE_BUTTON,
2787         /* isvoid */ 1
2788     };
2789 
2790     struct iovec xcb_parts[6];
2791     xcb_void_cookie_t xcb_ret;
2792     xcb_input_grab_device_button_request_t xcb_out;
2793 
2794     xcb_out.grab_window = grab_window;
2795     xcb_out.grabbed_device = grabbed_device;
2796     xcb_out.modifier_device = modifier_device;
2797     xcb_out.num_classes = num_classes;
2798     xcb_out.modifiers = modifiers;
2799     xcb_out.this_device_mode = this_device_mode;
2800     xcb_out.other_device_mode = other_device_mode;
2801     xcb_out.button = button;
2802     xcb_out.owner_events = owner_events;
2803     memset(xcb_out.pad0, 0, 2);
2804 
2805     xcb_parts[2].iov_base = (char *) &xcb_out;
2806     xcb_parts[2].iov_len = sizeof(xcb_out);
2807     xcb_parts[3].iov_base = 0;
2808     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2809     /* xcb_input_event_class_t classes */
2810     xcb_parts[4].iov_base = (char *) classes;
2811     xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
2812     xcb_parts[5].iov_base = 0;
2813     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2814 
2815     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2816     return xcb_ret;
2817 }
2818 
2819 
2820 /*****************************************************************************
2821  **
2822  ** xcb_void_cookie_t xcb_input_ungrab_device_button_checked
2823  **
2824  ** @param xcb_connection_t *c
2825  ** @param xcb_window_t      grab_window
2826  ** @param uint16_t          modifiers
2827  ** @param uint8_t           modifier_device
2828  ** @param uint8_t           button
2829  ** @param uint8_t           grabbed_device
2830  ** @returns xcb_void_cookie_t
2831  **
2832  *****************************************************************************/
2833 
2834 xcb_void_cookie_t
2835 xcb_input_ungrab_device_button_checked (xcb_connection_t *c  /**< */,
2836                                         xcb_window_t      grab_window  /**< */,
2837                                         uint16_t          modifiers  /**< */,
2838                                         uint8_t           modifier_device  /**< */,
2839                                         uint8_t           button  /**< */,
2840                                         uint8_t           grabbed_device  /**< */)
2841 {
2842     static const xcb_protocol_request_t xcb_req = {
2843         /* count */ 2,
2844         /* ext */ &xcb_input_id,
2845         /* opcode */ XCB_INPUT_UNGRAB_DEVICE_BUTTON,
2846         /* isvoid */ 1
2847     };
2848 
2849     struct iovec xcb_parts[4];
2850     xcb_void_cookie_t xcb_ret;
2851     xcb_input_ungrab_device_button_request_t xcb_out;
2852 
2853     xcb_out.grab_window = grab_window;
2854     xcb_out.modifiers = modifiers;
2855     xcb_out.modifier_device = modifier_device;
2856     xcb_out.button = button;
2857     xcb_out.grabbed_device = grabbed_device;
2858 
2859     xcb_parts[2].iov_base = (char *) &xcb_out;
2860     xcb_parts[2].iov_len = sizeof(xcb_out);
2861     xcb_parts[3].iov_base = 0;
2862     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2863 
2864     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2865     return xcb_ret;
2866 }
2867 
2868 
2869 /*****************************************************************************
2870  **
2871  ** xcb_void_cookie_t xcb_input_ungrab_device_button
2872  **
2873  ** @param xcb_connection_t *c
2874  ** @param xcb_window_t      grab_window
2875  ** @param uint16_t          modifiers
2876  ** @param uint8_t           modifier_device
2877  ** @param uint8_t           button
2878  ** @param uint8_t           grabbed_device
2879  ** @returns xcb_void_cookie_t
2880  **
2881  *****************************************************************************/
2882 
2883 xcb_void_cookie_t
2884 xcb_input_ungrab_device_button (xcb_connection_t *c  /**< */,
2885                                 xcb_window_t      grab_window  /**< */,
2886                                 uint16_t          modifiers  /**< */,
2887                                 uint8_t           modifier_device  /**< */,
2888                                 uint8_t           button  /**< */,
2889                                 uint8_t           grabbed_device  /**< */)
2890 {
2891     static const xcb_protocol_request_t xcb_req = {
2892         /* count */ 2,
2893         /* ext */ &xcb_input_id,
2894         /* opcode */ XCB_INPUT_UNGRAB_DEVICE_BUTTON,
2895         /* isvoid */ 1
2896     };
2897 
2898     struct iovec xcb_parts[4];
2899     xcb_void_cookie_t xcb_ret;
2900     xcb_input_ungrab_device_button_request_t xcb_out;
2901 
2902     xcb_out.grab_window = grab_window;
2903     xcb_out.modifiers = modifiers;
2904     xcb_out.modifier_device = modifier_device;
2905     xcb_out.button = button;
2906     xcb_out.grabbed_device = grabbed_device;
2907 
2908     xcb_parts[2].iov_base = (char *) &xcb_out;
2909     xcb_parts[2].iov_len = sizeof(xcb_out);
2910     xcb_parts[3].iov_base = 0;
2911     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2912 
2913     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2914     return xcb_ret;
2915 }
2916 
2917 
2918 /*****************************************************************************
2919  **
2920  ** xcb_void_cookie_t xcb_input_allow_device_events_checked
2921  **
2922  ** @param xcb_connection_t *c
2923  ** @param xcb_timestamp_t   time
2924  ** @param uint8_t           mode
2925  ** @param uint8_t           device_id
2926  ** @returns xcb_void_cookie_t
2927  **
2928  *****************************************************************************/
2929 
2930 xcb_void_cookie_t
2931 xcb_input_allow_device_events_checked (xcb_connection_t *c  /**< */,
2932                                        xcb_timestamp_t   time  /**< */,
2933                                        uint8_t           mode  /**< */,
2934                                        uint8_t           device_id  /**< */)
2935 {
2936     static const xcb_protocol_request_t xcb_req = {
2937         /* count */ 2,
2938         /* ext */ &xcb_input_id,
2939         /* opcode */ XCB_INPUT_ALLOW_DEVICE_EVENTS,
2940         /* isvoid */ 1
2941     };
2942 
2943     struct iovec xcb_parts[4];
2944     xcb_void_cookie_t xcb_ret;
2945     xcb_input_allow_device_events_request_t xcb_out;
2946 
2947     xcb_out.time = time;
2948     xcb_out.mode = mode;
2949     xcb_out.device_id = device_id;
2950 
2951     xcb_parts[2].iov_base = (char *) &xcb_out;
2952     xcb_parts[2].iov_len = sizeof(xcb_out);
2953     xcb_parts[3].iov_base = 0;
2954     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2955 
2956     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2957     return xcb_ret;
2958 }
2959 
2960 
2961 /*****************************************************************************
2962  **
2963  ** xcb_void_cookie_t xcb_input_allow_device_events
2964  **
2965  ** @param xcb_connection_t *c
2966  ** @param xcb_timestamp_t   time
2967  ** @param uint8_t           mode
2968  ** @param uint8_t           device_id
2969  ** @returns xcb_void_cookie_t
2970  **
2971  *****************************************************************************/
2972 
2973 xcb_void_cookie_t
2974 xcb_input_allow_device_events (xcb_connection_t *c  /**< */,
2975                                xcb_timestamp_t   time  /**< */,
2976                                uint8_t           mode  /**< */,
2977                                uint8_t           device_id  /**< */)
2978 {
2979     static const xcb_protocol_request_t xcb_req = {
2980         /* count */ 2,
2981         /* ext */ &xcb_input_id,
2982         /* opcode */ XCB_INPUT_ALLOW_DEVICE_EVENTS,
2983         /* isvoid */ 1
2984     };
2985 
2986     struct iovec xcb_parts[4];
2987     xcb_void_cookie_t xcb_ret;
2988     xcb_input_allow_device_events_request_t xcb_out;
2989 
2990     xcb_out.time = time;
2991     xcb_out.mode = mode;
2992     xcb_out.device_id = device_id;
2993 
2994     xcb_parts[2].iov_base = (char *) &xcb_out;
2995     xcb_parts[2].iov_len = sizeof(xcb_out);
2996     xcb_parts[3].iov_base = 0;
2997     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2998 
2999     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3000     return xcb_ret;
3001 }
3002 
3003 
3004 /*****************************************************************************
3005  **
3006  ** xcb_input_get_device_focus_cookie_t xcb_input_get_device_focus
3007  **
3008  ** @param xcb_connection_t *c
3009  ** @param uint8_t           device_id
3010  ** @returns xcb_input_get_device_focus_cookie_t
3011  **
3012  *****************************************************************************/
3013 
3014 xcb_input_get_device_focus_cookie_t
3015 xcb_input_get_device_focus (xcb_connection_t *c  /**< */,
3016                             uint8_t           device_id  /**< */)
3017 {
3018     static const xcb_protocol_request_t xcb_req = {
3019         /* count */ 2,
3020         /* ext */ &xcb_input_id,
3021         /* opcode */ XCB_INPUT_GET_DEVICE_FOCUS,
3022         /* isvoid */ 0
3023     };
3024 
3025     struct iovec xcb_parts[4];
3026     xcb_input_get_device_focus_cookie_t xcb_ret;
3027     xcb_input_get_device_focus_request_t xcb_out;
3028 
3029     xcb_out.device_id = device_id;
3030     memset(xcb_out.pad0, 0, 3);
3031 
3032     xcb_parts[2].iov_base = (char *) &xcb_out;
3033     xcb_parts[2].iov_len = sizeof(xcb_out);
3034     xcb_parts[3].iov_base = 0;
3035     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3036 
3037     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3038     return xcb_ret;
3039 }
3040 
3041 
3042 /*****************************************************************************
3043  **
3044  ** xcb_input_get_device_focus_cookie_t xcb_input_get_device_focus_unchecked
3045  **
3046  ** @param xcb_connection_t *c
3047  ** @param uint8_t           device_id
3048  ** @returns xcb_input_get_device_focus_cookie_t
3049  **
3050  *****************************************************************************/
3051 
3052 xcb_input_get_device_focus_cookie_t
3053 xcb_input_get_device_focus_unchecked (xcb_connection_t *c  /**< */,
3054                                       uint8_t           device_id  /**< */)
3055 {
3056     static const xcb_protocol_request_t xcb_req = {
3057         /* count */ 2,
3058         /* ext */ &xcb_input_id,
3059         /* opcode */ XCB_INPUT_GET_DEVICE_FOCUS,
3060         /* isvoid */ 0
3061     };
3062 
3063     struct iovec xcb_parts[4];
3064     xcb_input_get_device_focus_cookie_t xcb_ret;
3065     xcb_input_get_device_focus_request_t xcb_out;
3066 
3067     xcb_out.device_id = device_id;
3068     memset(xcb_out.pad0, 0, 3);
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 
3075     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3076     return xcb_ret;
3077 }
3078 
3079 
3080 /*****************************************************************************
3081  **
3082  ** xcb_input_get_device_focus_reply_t * xcb_input_get_device_focus_reply
3083  **
3084  ** @param xcb_connection_t                     *c
3085  ** @param xcb_input_get_device_focus_cookie_t   cookie
3086  ** @param xcb_generic_error_t                 **e
3087  ** @returns xcb_input_get_device_focus_reply_t *
3088  **
3089  *****************************************************************************/
3090 
3091 xcb_input_get_device_focus_reply_t *
3092 xcb_input_get_device_focus_reply (xcb_connection_t                     *c  /**< */,
3093                                   xcb_input_get_device_focus_cookie_t   cookie  /**< */,
3094                                   xcb_generic_error_t                 **e  /**< */)
3095 {
3096     return (xcb_input_get_device_focus_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
3097 }
3098 
3099 
3100 /*****************************************************************************
3101  **
3102  ** xcb_void_cookie_t xcb_input_set_device_focus_checked
3103  **
3104  ** @param xcb_connection_t *c
3105  ** @param xcb_window_t      focus
3106  ** @param xcb_timestamp_t   time
3107  ** @param uint8_t           revert_to
3108  ** @param uint8_t           device_id
3109  ** @returns xcb_void_cookie_t
3110  **
3111  *****************************************************************************/
3112 
3113 xcb_void_cookie_t
3114 xcb_input_set_device_focus_checked (xcb_connection_t *c  /**< */,
3115                                     xcb_window_t      focus  /**< */,
3116                                     xcb_timestamp_t   time  /**< */,
3117                                     uint8_t           revert_to  /**< */,
3118                                     uint8_t           device_id  /**< */)
3119 {
3120     static const xcb_protocol_request_t xcb_req = {
3121         /* count */ 2,
3122         /* ext */ &xcb_input_id,
3123         /* opcode */ XCB_INPUT_SET_DEVICE_FOCUS,
3124         /* isvoid */ 1
3125     };
3126 
3127     struct iovec xcb_parts[4];
3128     xcb_void_cookie_t xcb_ret;
3129     xcb_input_set_device_focus_request_t xcb_out;
3130 
3131     xcb_out.focus = focus;
3132     xcb_out.time = time;
3133     xcb_out.revert_to = revert_to;
3134     xcb_out.device_id = device_id;
3135 
3136     xcb_parts[2].iov_base = (char *) &xcb_out;
3137     xcb_parts[2].iov_len = sizeof(xcb_out);
3138     xcb_parts[3].iov_base = 0;
3139     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3140 
3141     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3142     return xcb_ret;
3143 }
3144 
3145 
3146 /*****************************************************************************
3147  **
3148  ** xcb_void_cookie_t xcb_input_set_device_focus
3149  **
3150  ** @param xcb_connection_t *c
3151  ** @param xcb_window_t      focus
3152  ** @param xcb_timestamp_t   time
3153  ** @param uint8_t           revert_to
3154  ** @param uint8_t           device_id
3155  ** @returns xcb_void_cookie_t
3156  **
3157  *****************************************************************************/
3158 
3159 xcb_void_cookie_t
3160 xcb_input_set_device_focus (xcb_connection_t *c  /**< */,
3161                             xcb_window_t      focus  /**< */,
3162                             xcb_timestamp_t   time  /**< */,
3163                             uint8_t           revert_to  /**< */,
3164                             uint8_t           device_id  /**< */)
3165 {
3166     static const xcb_protocol_request_t xcb_req = {
3167         /* count */ 2,
3168         /* ext */ &xcb_input_id,
3169         /* opcode */ XCB_INPUT_SET_DEVICE_FOCUS,
3170         /* isvoid */ 1
3171     };
3172 
3173     struct iovec xcb_parts[4];
3174     xcb_void_cookie_t xcb_ret;
3175     xcb_input_set_device_focus_request_t xcb_out;
3176 
3177     xcb_out.focus = focus;
3178     xcb_out.time = time;
3179     xcb_out.revert_to = revert_to;
3180     xcb_out.device_id = device_id;
3181 
3182     xcb_parts[2].iov_base = (char *) &xcb_out;
3183     xcb_parts[2].iov_len = sizeof(xcb_out);
3184     xcb_parts[3].iov_base = 0;
3185     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3186 
3187     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3188     return xcb_ret;
3189 }
3190 
3191 
3192 /*****************************************************************************
3193  **
3194  ** xcb_input_get_feedback_control_cookie_t xcb_input_get_feedback_control
3195  **
3196  ** @param xcb_connection_t *c
3197  ** @param uint8_t           device_id
3198  ** @returns xcb_input_get_feedback_control_cookie_t
3199  **
3200  *****************************************************************************/
3201 
3202 xcb_input_get_feedback_control_cookie_t
3203 xcb_input_get_feedback_control (xcb_connection_t *c  /**< */,
3204                                 uint8_t           device_id  /**< */)
3205 {
3206     static const xcb_protocol_request_t xcb_req = {
3207         /* count */ 2,
3208         /* ext */ &xcb_input_id,
3209         /* opcode */ XCB_INPUT_GET_FEEDBACK_CONTROL,
3210         /* isvoid */ 0
3211     };
3212 
3213     struct iovec xcb_parts[4];
3214     xcb_input_get_feedback_control_cookie_t xcb_ret;
3215     xcb_input_get_feedback_control_request_t xcb_out;
3216 
3217     xcb_out.device_id = device_id;
3218     memset(xcb_out.pad0, 0, 3);
3219 
3220     xcb_parts[2].iov_base = (char *) &xcb_out;
3221     xcb_parts[2].iov_len = sizeof(xcb_out);
3222     xcb_parts[3].iov_base = 0;
3223     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3224 
3225     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3226     return xcb_ret;
3227 }
3228 
3229 
3230 /*****************************************************************************
3231  **
3232  ** xcb_input_get_feedback_control_cookie_t xcb_input_get_feedback_control_unchecked
3233  **
3234  ** @param xcb_connection_t *c
3235  ** @param uint8_t           device_id
3236  ** @returns xcb_input_get_feedback_control_cookie_t
3237  **
3238  *****************************************************************************/
3239 
3240 xcb_input_get_feedback_control_cookie_t
3241 xcb_input_get_feedback_control_unchecked (xcb_connection_t *c  /**< */,
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_GET_FEEDBACK_CONTROL,
3248         /* isvoid */ 0
3249     };
3250 
3251     struct iovec xcb_parts[4];
3252     xcb_input_get_feedback_control_cookie_t xcb_ret;
3253     xcb_input_get_feedback_control_request_t xcb_out;
3254 
3255     xcb_out.device_id = device_id;
3256     memset(xcb_out.pad0, 0, 3);
3257 
3258     xcb_parts[2].iov_base = (char *) &xcb_out;
3259     xcb_parts[2].iov_len = sizeof(xcb_out);
3260     xcb_parts[3].iov_base = 0;
3261     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3262 
3263     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3264     return xcb_ret;
3265 }
3266 
3267 
3268 /*****************************************************************************
3269  **
3270  ** xcb_input_get_feedback_control_reply_t * xcb_input_get_feedback_control_reply
3271  **
3272  ** @param xcb_connection_t                         *c
3273  ** @param xcb_input_get_feedback_control_cookie_t   cookie
3274  ** @param xcb_generic_error_t                     **e
3275  ** @returns xcb_input_get_feedback_control_reply_t *
3276  **
3277  *****************************************************************************/
3278 
3279 xcb_input_get_feedback_control_reply_t *
3280 xcb_input_get_feedback_control_reply (xcb_connection_t                         *c  /**< */,
3281                                       xcb_input_get_feedback_control_cookie_t   cookie  /**< */,
3282                                       xcb_generic_error_t                     **e  /**< */)
3283 {
3284     return (xcb_input_get_feedback_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
3285 }
3286 
3287 
3288 /*****************************************************************************
3289  **
3290  ** void xcb_input_feedback_state_next
3291  **
3292  ** @param xcb_input_feedback_state_iterator_t *i
3293  ** @returns void
3294  **
3295  *****************************************************************************/
3296 
3297 void
3298 xcb_input_feedback_state_next (xcb_input_feedback_state_iterator_t *i  /**< */)
3299 {
3300     --i->rem;
3301     ++i->data;
3302     i->index += sizeof(xcb_input_feedback_state_t);
3303 }
3304 
3305 
3306 /*****************************************************************************
3307  **
3308  ** xcb_generic_iterator_t xcb_input_feedback_state_end
3309  **
3310  ** @param xcb_input_feedback_state_iterator_t i
3311  ** @returns xcb_generic_iterator_t
3312  **
3313  *****************************************************************************/
3314 
3315 xcb_generic_iterator_t
3316 xcb_input_feedback_state_end (xcb_input_feedback_state_iterator_t i  /**< */)
3317 {
3318     xcb_generic_iterator_t ret;
3319     ret.data = i.data + i.rem;
3320     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3321     ret.rem = 0;
3322     return ret;
3323 }
3324 
3325 
3326 /*****************************************************************************
3327  **
3328  ** void xcb_input_kbd_feedback_state_next
3329  **
3330  ** @param xcb_input_kbd_feedback_state_iterator_t *i
3331  ** @returns void
3332  **
3333  *****************************************************************************/
3334 
3335 void
3336 xcb_input_kbd_feedback_state_next (xcb_input_kbd_feedback_state_iterator_t *i  /**< */)
3337 {
3338     --i->rem;
3339     ++i->data;
3340     i->index += sizeof(xcb_input_kbd_feedback_state_t);
3341 }
3342 
3343 
3344 /*****************************************************************************
3345  **
3346  ** xcb_generic_iterator_t xcb_input_kbd_feedback_state_end
3347  **
3348  ** @param xcb_input_kbd_feedback_state_iterator_t i
3349  ** @returns xcb_generic_iterator_t
3350  **
3351  *****************************************************************************/
3352 
3353 xcb_generic_iterator_t
3354 xcb_input_kbd_feedback_state_end (xcb_input_kbd_feedback_state_iterator_t i  /**< */)
3355 {
3356     xcb_generic_iterator_t ret;
3357     ret.data = i.data + i.rem;
3358     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3359     ret.rem = 0;
3360     return ret;
3361 }
3362 
3363 
3364 /*****************************************************************************
3365  **
3366  ** void xcb_input_ptr_feedback_state_next
3367  **
3368  ** @param xcb_input_ptr_feedback_state_iterator_t *i
3369  ** @returns void
3370  **
3371  *****************************************************************************/
3372 
3373 void
3374 xcb_input_ptr_feedback_state_next (xcb_input_ptr_feedback_state_iterator_t *i  /**< */)
3375 {
3376     --i->rem;
3377     ++i->data;
3378     i->index += sizeof(xcb_input_ptr_feedback_state_t);
3379 }
3380 
3381 
3382 /*****************************************************************************
3383  **
3384  ** xcb_generic_iterator_t xcb_input_ptr_feedback_state_end
3385  **
3386  ** @param xcb_input_ptr_feedback_state_iterator_t i
3387  ** @returns xcb_generic_iterator_t
3388  **
3389  *****************************************************************************/
3390 
3391 xcb_generic_iterator_t
3392 xcb_input_ptr_feedback_state_end (xcb_input_ptr_feedback_state_iterator_t i  /**< */)
3393 {
3394     xcb_generic_iterator_t ret;
3395     ret.data = i.data + i.rem;
3396     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3397     ret.rem = 0;
3398     return ret;
3399 }
3400 
3401 
3402 /*****************************************************************************
3403  **
3404  ** void xcb_input_integer_feedback_state_next
3405  **
3406  ** @param xcb_input_integer_feedback_state_iterator_t *i
3407  ** @returns void
3408  **
3409  *****************************************************************************/
3410 
3411 void
3412 xcb_input_integer_feedback_state_next (xcb_input_integer_feedback_state_iterator_t *i  /**< */)
3413 {
3414     --i->rem;
3415     ++i->data;
3416     i->index += sizeof(xcb_input_integer_feedback_state_t);
3417 }
3418 
3419 
3420 /*****************************************************************************
3421  **
3422  ** xcb_generic_iterator_t xcb_input_integer_feedback_state_end
3423  **
3424  ** @param xcb_input_integer_feedback_state_iterator_t i
3425  ** @returns xcb_generic_iterator_t
3426  **
3427  *****************************************************************************/
3428 
3429 xcb_generic_iterator_t
3430 xcb_input_integer_feedback_state_end (xcb_input_integer_feedback_state_iterator_t i  /**< */)
3431 {
3432     xcb_generic_iterator_t ret;
3433     ret.data = i.data + i.rem;
3434     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3435     ret.rem = 0;
3436     return ret;
3437 }
3438 
3439 int
3440 xcb_input_string_feedback_state_sizeof (const void  *_buffer  /**< */)
3441 {
3442     char *xcb_tmp = (char *)_buffer;
3443     const xcb_input_string_feedback_state_t *_aux = (xcb_input_string_feedback_state_t *)_buffer;
3444     unsigned int xcb_buffer_len = 0;
3445     unsigned int xcb_block_len = 0;
3446     unsigned int xcb_pad = 0;
3447     unsigned int xcb_align_to;
3448 
3449 
3450     xcb_block_len += sizeof(xcb_input_string_feedback_state_t);
3451     xcb_tmp += xcb_block_len;
3452     /* keysyms */
3453     xcb_block_len += _aux->num_keysyms * sizeof(xcb_keysym_t);
3454     xcb_tmp += xcb_block_len;
3455     xcb_align_to = ALIGNOF(xcb_keysym_t);
3456     /* insert padding */
3457     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
3458     xcb_buffer_len += xcb_block_len + xcb_pad;
3459     if (0 != xcb_pad) {
3460         xcb_tmp += xcb_pad;
3461         xcb_pad = 0;
3462     }
3463     xcb_block_len = 0;
3464 
3465     return xcb_buffer_len;
3466 }
3467 
3468 
3469 /*****************************************************************************
3470  **
3471  ** xcb_keysym_t * xcb_input_string_feedback_state_keysyms
3472  **
3473  ** @param const xcb_input_string_feedback_state_t *R
3474  ** @returns xcb_keysym_t *
3475  **
3476  *****************************************************************************/
3477 
3478 xcb_keysym_t *
3479 xcb_input_string_feedback_state_keysyms (const xcb_input_string_feedback_state_t *R  /**< */)
3480 {
3481     return (xcb_keysym_t *) (R + 1);
3482 }
3483 
3484 
3485 /*****************************************************************************
3486  **
3487  ** int xcb_input_string_feedback_state_keysyms_length
3488  **
3489  ** @param const xcb_input_string_feedback_state_t *R
3490  ** @returns int
3491  **
3492  *****************************************************************************/
3493 
3494 int
3495 xcb_input_string_feedback_state_keysyms_length (const xcb_input_string_feedback_state_t *R  /**< */)
3496 {
3497     return R->num_keysyms;
3498 }
3499 
3500 
3501 /*****************************************************************************
3502  **
3503  ** xcb_generic_iterator_t xcb_input_string_feedback_state_keysyms_end
3504  **
3505  ** @param const xcb_input_string_feedback_state_t *R
3506  ** @returns xcb_generic_iterator_t
3507  **
3508  *****************************************************************************/
3509 
3510 xcb_generic_iterator_t
3511 xcb_input_string_feedback_state_keysyms_end (const xcb_input_string_feedback_state_t *R  /**< */)
3512 {
3513     xcb_generic_iterator_t i;
3514     i.data = ((xcb_keysym_t *) (R + 1)) + (R->num_keysyms);
3515     i.rem = 0;
3516     i.index = (char *) i.data - (char *) R;
3517     return i;
3518 }
3519 
3520 
3521 /*****************************************************************************
3522  **
3523  ** void xcb_input_string_feedback_state_next
3524  **
3525  ** @param xcb_input_string_feedback_state_iterator_t *i
3526  ** @returns void
3527  **
3528  *****************************************************************************/
3529 
3530 void
3531 xcb_input_string_feedback_state_next (xcb_input_string_feedback_state_iterator_t *i  /**< */)
3532 {
3533     xcb_input_string_feedback_state_t *R = i->data;
3534     xcb_generic_iterator_t child;
3535     child.data = (xcb_input_string_feedback_state_t *)(((char *)R) + xcb_input_string_feedback_state_sizeof(R));
3536     i->index = (char *) child.data - (char *) i->data;
3537     --i->rem;
3538     i->data = (xcb_input_string_feedback_state_t *) child.data;
3539 }
3540 
3541 
3542 /*****************************************************************************
3543  **
3544  ** xcb_generic_iterator_t xcb_input_string_feedback_state_end
3545  **
3546  ** @param xcb_input_string_feedback_state_iterator_t i
3547  ** @returns xcb_generic_iterator_t
3548  **
3549  *****************************************************************************/
3550 
3551 xcb_generic_iterator_t
3552 xcb_input_string_feedback_state_end (xcb_input_string_feedback_state_iterator_t i  /**< */)
3553 {
3554     xcb_generic_iterator_t ret;
3555     while(i.rem > 0)
3556         xcb_input_string_feedback_state_next(&i);
3557     ret.data = i.data;
3558     ret.rem = i.rem;
3559     ret.index = i.index;
3560     return ret;
3561 }
3562 
3563 
3564 /*****************************************************************************
3565  **
3566  ** void xcb_input_bell_feedback_state_next
3567  **
3568  ** @param xcb_input_bell_feedback_state_iterator_t *i
3569  ** @returns void
3570  **
3571  *****************************************************************************/
3572 
3573 void
3574 xcb_input_bell_feedback_state_next (xcb_input_bell_feedback_state_iterator_t *i  /**< */)
3575 {
3576     --i->rem;
3577     ++i->data;
3578     i->index += sizeof(xcb_input_bell_feedback_state_t);
3579 }
3580 
3581 
3582 /*****************************************************************************
3583  **
3584  ** xcb_generic_iterator_t xcb_input_bell_feedback_state_end
3585  **
3586  ** @param xcb_input_bell_feedback_state_iterator_t i
3587  ** @returns xcb_generic_iterator_t
3588  **
3589  *****************************************************************************/
3590 
3591 xcb_generic_iterator_t
3592 xcb_input_bell_feedback_state_end (xcb_input_bell_feedback_state_iterator_t i  /**< */)
3593 {
3594     xcb_generic_iterator_t ret;
3595     ret.data = i.data + i.rem;
3596     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3597     ret.rem = 0;
3598     return ret;
3599 }
3600 
3601 
3602 /*****************************************************************************
3603  **
3604  ** void xcb_input_led_feedback_state_next
3605  **
3606  ** @param xcb_input_led_feedback_state_iterator_t *i
3607  ** @returns void
3608  **
3609  *****************************************************************************/
3610 
3611 void
3612 xcb_input_led_feedback_state_next (xcb_input_led_feedback_state_iterator_t *i  /**< */)
3613 {
3614     --i->rem;
3615     ++i->data;
3616     i->index += sizeof(xcb_input_led_feedback_state_t);
3617 }
3618 
3619 
3620 /*****************************************************************************
3621  **
3622  ** xcb_generic_iterator_t xcb_input_led_feedback_state_end
3623  **
3624  ** @param xcb_input_led_feedback_state_iterator_t i
3625  ** @returns xcb_generic_iterator_t
3626  **
3627  *****************************************************************************/
3628 
3629 xcb_generic_iterator_t
3630 xcb_input_led_feedback_state_end (xcb_input_led_feedback_state_iterator_t i  /**< */)
3631 {
3632     xcb_generic_iterator_t ret;
3633     ret.data = i.data + i.rem;
3634     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3635     ret.rem = 0;
3636     return ret;
3637 }
3638 
3639 
3640 /*****************************************************************************
3641  **
3642  ** void xcb_input_feedback_ctl_next
3643  **
3644  ** @param xcb_input_feedback_ctl_iterator_t *i
3645  ** @returns void
3646  **
3647  *****************************************************************************/
3648 
3649 void
3650 xcb_input_feedback_ctl_next (xcb_input_feedback_ctl_iterator_t *i  /**< */)
3651 {
3652     --i->rem;
3653     ++i->data;
3654     i->index += sizeof(xcb_input_feedback_ctl_t);
3655 }
3656 
3657 
3658 /*****************************************************************************
3659  **
3660  ** xcb_generic_iterator_t xcb_input_feedback_ctl_end
3661  **
3662  ** @param xcb_input_feedback_ctl_iterator_t i
3663  ** @returns xcb_generic_iterator_t
3664  **
3665  *****************************************************************************/
3666 
3667 xcb_generic_iterator_t
3668 xcb_input_feedback_ctl_end (xcb_input_feedback_ctl_iterator_t i  /**< */)
3669 {
3670     xcb_generic_iterator_t ret;
3671     ret.data = i.data + i.rem;
3672     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3673     ret.rem = 0;
3674     return ret;
3675 }
3676 
3677 
3678 /*****************************************************************************
3679  **
3680  ** void xcb_input_kbd_feedback_ctl_next
3681  **
3682  ** @param xcb_input_kbd_feedback_ctl_iterator_t *i
3683  ** @returns void
3684  **
3685  *****************************************************************************/
3686 
3687 void
3688 xcb_input_kbd_feedback_ctl_next (xcb_input_kbd_feedback_ctl_iterator_t *i  /**< */)
3689 {
3690     --i->rem;
3691     ++i->data;
3692     i->index += sizeof(xcb_input_kbd_feedback_ctl_t);
3693 }
3694 
3695 
3696 /*****************************************************************************
3697  **
3698  ** xcb_generic_iterator_t xcb_input_kbd_feedback_ctl_end
3699  **
3700  ** @param xcb_input_kbd_feedback_ctl_iterator_t i
3701  ** @returns xcb_generic_iterator_t
3702  **
3703  *****************************************************************************/
3704 
3705 xcb_generic_iterator_t
3706 xcb_input_kbd_feedback_ctl_end (xcb_input_kbd_feedback_ctl_iterator_t i  /**< */)
3707 {
3708     xcb_generic_iterator_t ret;
3709     ret.data = i.data + i.rem;
3710     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3711     ret.rem = 0;
3712     return ret;
3713 }
3714 
3715 
3716 /*****************************************************************************
3717  **
3718  ** void xcb_input_ptr_feedback_ctl_next
3719  **
3720  ** @param xcb_input_ptr_feedback_ctl_iterator_t *i
3721  ** @returns void
3722  **
3723  *****************************************************************************/
3724 
3725 void
3726 xcb_input_ptr_feedback_ctl_next (xcb_input_ptr_feedback_ctl_iterator_t *i  /**< */)
3727 {
3728     --i->rem;
3729     ++i->data;
3730     i->index += sizeof(xcb_input_ptr_feedback_ctl_t);
3731 }
3732 
3733 
3734 /*****************************************************************************
3735  **
3736  ** xcb_generic_iterator_t xcb_input_ptr_feedback_ctl_end
3737  **
3738  ** @param xcb_input_ptr_feedback_ctl_iterator_t i
3739  ** @returns xcb_generic_iterator_t
3740  **
3741  *****************************************************************************/
3742 
3743 xcb_generic_iterator_t
3744 xcb_input_ptr_feedback_ctl_end (xcb_input_ptr_feedback_ctl_iterator_t i  /**< */)
3745 {
3746     xcb_generic_iterator_t ret;
3747     ret.data = i.data + i.rem;
3748     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3749     ret.rem = 0;
3750     return ret;
3751 }
3752 
3753 
3754 /*****************************************************************************
3755  **
3756  ** void xcb_input_integer_feedback_ctl_next
3757  **
3758  ** @param xcb_input_integer_feedback_ctl_iterator_t *i
3759  ** @returns void
3760  **
3761  *****************************************************************************/
3762 
3763 void
3764 xcb_input_integer_feedback_ctl_next (xcb_input_integer_feedback_ctl_iterator_t *i  /**< */)
3765 {
3766     --i->rem;
3767     ++i->data;
3768     i->index += sizeof(xcb_input_integer_feedback_ctl_t);
3769 }
3770 
3771 
3772 /*****************************************************************************
3773  **
3774  ** xcb_generic_iterator_t xcb_input_integer_feedback_ctl_end
3775  **
3776  ** @param xcb_input_integer_feedback_ctl_iterator_t i
3777  ** @returns xcb_generic_iterator_t
3778  **
3779  *****************************************************************************/
3780 
3781 xcb_generic_iterator_t
3782 xcb_input_integer_feedback_ctl_end (xcb_input_integer_feedback_ctl_iterator_t i  /**< */)
3783 {
3784     xcb_generic_iterator_t ret;
3785     ret.data = i.data + i.rem;
3786     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3787     ret.rem = 0;
3788     return ret;
3789 }
3790 
3791 int
3792 xcb_input_string_feedback_ctl_sizeof (const void  *_buffer  /**< */)
3793 {
3794     char *xcb_tmp = (char *)_buffer;
3795     const xcb_input_string_feedback_ctl_t *_aux = (xcb_input_string_feedback_ctl_t *)_buffer;
3796     unsigned int xcb_buffer_len = 0;
3797     unsigned int xcb_block_len = 0;
3798     unsigned int xcb_pad = 0;
3799     unsigned int xcb_align_to;
3800 
3801 
3802     xcb_block_len += sizeof(xcb_input_string_feedback_ctl_t);
3803     xcb_tmp += xcb_block_len;
3804     /* keysyms */
3805     xcb_block_len += _aux->num_keysyms * sizeof(xcb_keysym_t);
3806     xcb_tmp += xcb_block_len;
3807     xcb_align_to = ALIGNOF(xcb_keysym_t);
3808     /* insert padding */
3809     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
3810     xcb_buffer_len += xcb_block_len + xcb_pad;
3811     if (0 != xcb_pad) {
3812         xcb_tmp += xcb_pad;
3813         xcb_pad = 0;
3814     }
3815     xcb_block_len = 0;
3816 
3817     return xcb_buffer_len;
3818 }
3819 
3820 
3821 /*****************************************************************************
3822  **
3823  ** xcb_keysym_t * xcb_input_string_feedback_ctl_keysyms
3824  **
3825  ** @param const xcb_input_string_feedback_ctl_t *R
3826  ** @returns xcb_keysym_t *
3827  **
3828  *****************************************************************************/
3829 
3830 xcb_keysym_t *
3831 xcb_input_string_feedback_ctl_keysyms (const xcb_input_string_feedback_ctl_t *R  /**< */)
3832 {
3833     return (xcb_keysym_t *) (R + 1);
3834 }
3835 
3836 
3837 /*****************************************************************************
3838  **
3839  ** int xcb_input_string_feedback_ctl_keysyms_length
3840  **
3841  ** @param const xcb_input_string_feedback_ctl_t *R
3842  ** @returns int
3843  **
3844  *****************************************************************************/
3845 
3846 int
3847 xcb_input_string_feedback_ctl_keysyms_length (const xcb_input_string_feedback_ctl_t *R  /**< */)
3848 {
3849     return R->num_keysyms;
3850 }
3851 
3852 
3853 /*****************************************************************************
3854  **
3855  ** xcb_generic_iterator_t xcb_input_string_feedback_ctl_keysyms_end
3856  **
3857  ** @param const xcb_input_string_feedback_ctl_t *R
3858  ** @returns xcb_generic_iterator_t
3859  **
3860  *****************************************************************************/
3861 
3862 xcb_generic_iterator_t
3863 xcb_input_string_feedback_ctl_keysyms_end (const xcb_input_string_feedback_ctl_t *R  /**< */)
3864 {
3865     xcb_generic_iterator_t i;
3866     i.data = ((xcb_keysym_t *) (R + 1)) + (R->num_keysyms);
3867     i.rem = 0;
3868     i.index = (char *) i.data - (char *) R;
3869     return i;
3870 }
3871 
3872 
3873 /*****************************************************************************
3874  **
3875  ** void xcb_input_string_feedback_ctl_next
3876  **
3877  ** @param xcb_input_string_feedback_ctl_iterator_t *i
3878  ** @returns void
3879  **
3880  *****************************************************************************/
3881 
3882 void
3883 xcb_input_string_feedback_ctl_next (xcb_input_string_feedback_ctl_iterator_t *i  /**< */)
3884 {
3885     xcb_input_string_feedback_ctl_t *R = i->data;
3886     xcb_generic_iterator_t child;
3887     child.data = (xcb_input_string_feedback_ctl_t *)(((char *)R) + xcb_input_string_feedback_ctl_sizeof(R));
3888     i->index = (char *) child.data - (char *) i->data;
3889     --i->rem;
3890     i->data = (xcb_input_string_feedback_ctl_t *) child.data;
3891 }
3892 
3893 
3894 /*****************************************************************************
3895  **
3896  ** xcb_generic_iterator_t xcb_input_string_feedback_ctl_end
3897  **
3898  ** @param xcb_input_string_feedback_ctl_iterator_t i
3899  ** @returns xcb_generic_iterator_t
3900  **
3901  *****************************************************************************/
3902 
3903 xcb_generic_iterator_t
3904 xcb_input_string_feedback_ctl_end (xcb_input_string_feedback_ctl_iterator_t i  /**< */)
3905 {
3906     xcb_generic_iterator_t ret;
3907     while(i.rem > 0)
3908         xcb_input_string_feedback_ctl_next(&i);
3909     ret.data = i.data;
3910     ret.rem = i.rem;
3911     ret.index = i.index;
3912     return ret;
3913 }
3914 
3915 
3916 /*****************************************************************************
3917  **
3918  ** void xcb_input_bell_feedback_ctl_next
3919  **
3920  ** @param xcb_input_bell_feedback_ctl_iterator_t *i
3921  ** @returns void
3922  **
3923  *****************************************************************************/
3924 
3925 void
3926 xcb_input_bell_feedback_ctl_next (xcb_input_bell_feedback_ctl_iterator_t *i  /**< */)
3927 {
3928     --i->rem;
3929     ++i->data;
3930     i->index += sizeof(xcb_input_bell_feedback_ctl_t);
3931 }
3932 
3933 
3934 /*****************************************************************************
3935  **
3936  ** xcb_generic_iterator_t xcb_input_bell_feedback_ctl_end
3937  **
3938  ** @param xcb_input_bell_feedback_ctl_iterator_t i
3939  ** @returns xcb_generic_iterator_t
3940  **
3941  *****************************************************************************/
3942 
3943 xcb_generic_iterator_t
3944 xcb_input_bell_feedback_ctl_end (xcb_input_bell_feedback_ctl_iterator_t i  /**< */)
3945 {
3946     xcb_generic_iterator_t ret;
3947     ret.data = i.data + i.rem;
3948     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3949     ret.rem = 0;
3950     return ret;
3951 }
3952 
3953 
3954 /*****************************************************************************
3955  **
3956  ** void xcb_input_led_feedback_ctl_next
3957  **
3958  ** @param xcb_input_led_feedback_ctl_iterator_t *i
3959  ** @returns void
3960  **
3961  *****************************************************************************/
3962 
3963 void
3964 xcb_input_led_feedback_ctl_next (xcb_input_led_feedback_ctl_iterator_t *i  /**< */)
3965 {
3966     --i->rem;
3967     ++i->data;
3968     i->index += sizeof(xcb_input_led_feedback_ctl_t);
3969 }
3970 
3971 
3972 /*****************************************************************************
3973  **
3974  ** xcb_generic_iterator_t xcb_input_led_feedback_ctl_end
3975  **
3976  ** @param xcb_input_led_feedback_ctl_iterator_t i
3977  ** @returns xcb_generic_iterator_t
3978  **
3979  *****************************************************************************/
3980 
3981 xcb_generic_iterator_t
3982 xcb_input_led_feedback_ctl_end (xcb_input_led_feedback_ctl_iterator_t i  /**< */)
3983 {
3984     xcb_generic_iterator_t ret;
3985     ret.data = i.data + i.rem;
3986     ret.index = i.index + ((char *) ret.data - (char *) i.data);
3987     ret.rem = 0;
3988     return ret;
3989 }
3990 
3991 int
3992 xcb_input_get_device_key_mapping_sizeof (const void  *_buffer  /**< */)
3993 {
3994     char *xcb_tmp = (char *)_buffer;
3995     const xcb_input_get_device_key_mapping_reply_t *_aux = (xcb_input_get_device_key_mapping_reply_t *)_buffer;
3996     unsigned int xcb_buffer_len = 0;
3997     unsigned int xcb_block_len = 0;
3998     unsigned int xcb_pad = 0;
3999     unsigned int xcb_align_to;
4000 
4001 
4002     xcb_block_len += sizeof(xcb_input_get_device_key_mapping_reply_t);
4003     xcb_tmp += xcb_block_len;
4004     /* keysyms */
4005     xcb_block_len += _aux->length * sizeof(xcb_keysym_t);
4006     xcb_tmp += xcb_block_len;
4007     xcb_align_to = ALIGNOF(xcb_keysym_t);
4008     /* insert padding */
4009     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4010     xcb_buffer_len += xcb_block_len + xcb_pad;
4011     if (0 != xcb_pad) {
4012         xcb_tmp += xcb_pad;
4013         xcb_pad = 0;
4014     }
4015     xcb_block_len = 0;
4016 
4017     return xcb_buffer_len;
4018 }
4019 
4020 
4021 /*****************************************************************************
4022  **
4023  ** xcb_input_get_device_key_mapping_cookie_t xcb_input_get_device_key_mapping
4024  **
4025  ** @param xcb_connection_t     *c
4026  ** @param uint8_t               device_id
4027  ** @param xcb_input_key_code_t  first_keycode
4028  ** @param uint8_t               count
4029  ** @returns xcb_input_get_device_key_mapping_cookie_t
4030  **
4031  *****************************************************************************/
4032 
4033 xcb_input_get_device_key_mapping_cookie_t
4034 xcb_input_get_device_key_mapping (xcb_connection_t     *c  /**< */,
4035                                   uint8_t               device_id  /**< */,
4036                                   xcb_input_key_code_t  first_keycode  /**< */,
4037                                   uint8_t               count  /**< */)
4038 {
4039     static const xcb_protocol_request_t xcb_req = {
4040         /* count */ 2,
4041         /* ext */ &xcb_input_id,
4042         /* opcode */ XCB_INPUT_GET_DEVICE_KEY_MAPPING,
4043         /* isvoid */ 0
4044     };
4045 
4046     struct iovec xcb_parts[4];
4047     xcb_input_get_device_key_mapping_cookie_t xcb_ret;
4048     xcb_input_get_device_key_mapping_request_t xcb_out;
4049 
4050     xcb_out.device_id = device_id;
4051     xcb_out.first_keycode = first_keycode;
4052     xcb_out.count = count;
4053 
4054     xcb_parts[2].iov_base = (char *) &xcb_out;
4055     xcb_parts[2].iov_len = sizeof(xcb_out);
4056     xcb_parts[3].iov_base = 0;
4057     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4058 
4059     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4060     return xcb_ret;
4061 }
4062 
4063 
4064 /*****************************************************************************
4065  **
4066  ** xcb_input_get_device_key_mapping_cookie_t xcb_input_get_device_key_mapping_unchecked
4067  **
4068  ** @param xcb_connection_t     *c
4069  ** @param uint8_t               device_id
4070  ** @param xcb_input_key_code_t  first_keycode
4071  ** @param uint8_t               count
4072  ** @returns xcb_input_get_device_key_mapping_cookie_t
4073  **
4074  *****************************************************************************/
4075 
4076 xcb_input_get_device_key_mapping_cookie_t
4077 xcb_input_get_device_key_mapping_unchecked (xcb_connection_t     *c  /**< */,
4078                                             uint8_t               device_id  /**< */,
4079                                             xcb_input_key_code_t  first_keycode  /**< */,
4080                                             uint8_t               count  /**< */)
4081 {
4082     static const xcb_protocol_request_t xcb_req = {
4083         /* count */ 2,
4084         /* ext */ &xcb_input_id,
4085         /* opcode */ XCB_INPUT_GET_DEVICE_KEY_MAPPING,
4086         /* isvoid */ 0
4087     };
4088 
4089     struct iovec xcb_parts[4];
4090     xcb_input_get_device_key_mapping_cookie_t xcb_ret;
4091     xcb_input_get_device_key_mapping_request_t xcb_out;
4092 
4093     xcb_out.device_id = device_id;
4094     xcb_out.first_keycode = first_keycode;
4095     xcb_out.count = count;
4096 
4097     xcb_parts[2].iov_base = (char *) &xcb_out;
4098     xcb_parts[2].iov_len = sizeof(xcb_out);
4099     xcb_parts[3].iov_base = 0;
4100     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4101 
4102     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4103     return xcb_ret;
4104 }
4105 
4106 
4107 /*****************************************************************************
4108  **
4109  ** xcb_keysym_t * xcb_input_get_device_key_mapping_keysyms
4110  **
4111  ** @param const xcb_input_get_device_key_mapping_reply_t *R
4112  ** @returns xcb_keysym_t *
4113  **
4114  *****************************************************************************/
4115 
4116 xcb_keysym_t *
4117 xcb_input_get_device_key_mapping_keysyms (const xcb_input_get_device_key_mapping_reply_t *R  /**< */)
4118 {
4119     return (xcb_keysym_t *) (R + 1);
4120 }
4121 
4122 
4123 /*****************************************************************************
4124  **
4125  ** int xcb_input_get_device_key_mapping_keysyms_length
4126  **
4127  ** @param const xcb_input_get_device_key_mapping_reply_t *R
4128  ** @returns int
4129  **
4130  *****************************************************************************/
4131 
4132 int
4133 xcb_input_get_device_key_mapping_keysyms_length (const xcb_input_get_device_key_mapping_reply_t *R  /**< */)
4134 {
4135     return R->length;
4136 }
4137 
4138 
4139 /*****************************************************************************
4140  **
4141  ** xcb_generic_iterator_t xcb_input_get_device_key_mapping_keysyms_end
4142  **
4143  ** @param const xcb_input_get_device_key_mapping_reply_t *R
4144  ** @returns xcb_generic_iterator_t
4145  **
4146  *****************************************************************************/
4147 
4148 xcb_generic_iterator_t
4149 xcb_input_get_device_key_mapping_keysyms_end (const xcb_input_get_device_key_mapping_reply_t *R  /**< */)
4150 {
4151     xcb_generic_iterator_t i;
4152     i.data = ((xcb_keysym_t *) (R + 1)) + (R->length);
4153     i.rem = 0;
4154     i.index = (char *) i.data - (char *) R;
4155     return i;
4156 }
4157 
4158 
4159 /*****************************************************************************
4160  **
4161  ** xcb_input_get_device_key_mapping_reply_t * xcb_input_get_device_key_mapping_reply
4162  **
4163  ** @param xcb_connection_t                           *c
4164  ** @param xcb_input_get_device_key_mapping_cookie_t   cookie
4165  ** @param xcb_generic_error_t                       **e
4166  ** @returns xcb_input_get_device_key_mapping_reply_t *
4167  **
4168  *****************************************************************************/
4169 
4170 xcb_input_get_device_key_mapping_reply_t *
4171 xcb_input_get_device_key_mapping_reply (xcb_connection_t                           *c  /**< */,
4172                                         xcb_input_get_device_key_mapping_cookie_t   cookie  /**< */,
4173                                         xcb_generic_error_t                       **e  /**< */)
4174 {
4175     return (xcb_input_get_device_key_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4176 }
4177 
4178 int
4179 xcb_input_change_device_key_mapping_sizeof (const void  *_buffer  /**< */)
4180 {
4181     char *xcb_tmp = (char *)_buffer;
4182     const xcb_input_change_device_key_mapping_request_t *_aux = (xcb_input_change_device_key_mapping_request_t *)_buffer;
4183     unsigned int xcb_buffer_len = 0;
4184     unsigned int xcb_block_len = 0;
4185     unsigned int xcb_pad = 0;
4186     unsigned int xcb_align_to;
4187 
4188 
4189     xcb_block_len += sizeof(xcb_input_change_device_key_mapping_request_t);
4190     xcb_tmp += xcb_block_len;
4191     /* keysyms */
4192     xcb_block_len += (_aux->keycode_count * _aux->keysyms_per_keycode) * sizeof(xcb_keysym_t);
4193     xcb_tmp += xcb_block_len;
4194     xcb_align_to = ALIGNOF(xcb_keysym_t);
4195     /* insert padding */
4196     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4197     xcb_buffer_len += xcb_block_len + xcb_pad;
4198     if (0 != xcb_pad) {
4199         xcb_tmp += xcb_pad;
4200         xcb_pad = 0;
4201     }
4202     xcb_block_len = 0;
4203 
4204     return xcb_buffer_len;
4205 }
4206 
4207 
4208 /*****************************************************************************
4209  **
4210  ** xcb_void_cookie_t xcb_input_change_device_key_mapping_checked
4211  **
4212  ** @param xcb_connection_t     *c
4213  ** @param uint8_t               device_id
4214  ** @param xcb_input_key_code_t  first_keycode
4215  ** @param uint8_t               keysyms_per_keycode
4216  ** @param uint8_t               keycode_count
4217  ** @param const xcb_keysym_t   *keysyms
4218  ** @returns xcb_void_cookie_t
4219  **
4220  *****************************************************************************/
4221 
4222 xcb_void_cookie_t
4223 xcb_input_change_device_key_mapping_checked (xcb_connection_t     *c  /**< */,
4224                                              uint8_t               device_id  /**< */,
4225                                              xcb_input_key_code_t  first_keycode  /**< */,
4226                                              uint8_t               keysyms_per_keycode  /**< */,
4227                                              uint8_t               keycode_count  /**< */,
4228                                              const xcb_keysym_t   *keysyms  /**< */)
4229 {
4230     static const xcb_protocol_request_t xcb_req = {
4231         /* count */ 4,
4232         /* ext */ &xcb_input_id,
4233         /* opcode */ XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING,
4234         /* isvoid */ 1
4235     };
4236 
4237     struct iovec xcb_parts[6];
4238     xcb_void_cookie_t xcb_ret;
4239     xcb_input_change_device_key_mapping_request_t xcb_out;
4240 
4241     xcb_out.device_id = device_id;
4242     xcb_out.first_keycode = first_keycode;
4243     xcb_out.keysyms_per_keycode = keysyms_per_keycode;
4244     xcb_out.keycode_count = keycode_count;
4245 
4246     xcb_parts[2].iov_base = (char *) &xcb_out;
4247     xcb_parts[2].iov_len = sizeof(xcb_out);
4248     xcb_parts[3].iov_base = 0;
4249     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4250     /* xcb_keysym_t keysyms */
4251     xcb_parts[4].iov_base = (char *) keysyms;
4252     xcb_parts[4].iov_len = (keycode_count * keysyms_per_keycode) * sizeof(xcb_keysym_t);
4253     xcb_parts[5].iov_base = 0;
4254     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4255 
4256     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4257     return xcb_ret;
4258 }
4259 
4260 
4261 /*****************************************************************************
4262  **
4263  ** xcb_void_cookie_t xcb_input_change_device_key_mapping
4264  **
4265  ** @param xcb_connection_t     *c
4266  ** @param uint8_t               device_id
4267  ** @param xcb_input_key_code_t  first_keycode
4268  ** @param uint8_t               keysyms_per_keycode
4269  ** @param uint8_t               keycode_count
4270  ** @param const xcb_keysym_t   *keysyms
4271  ** @returns xcb_void_cookie_t
4272  **
4273  *****************************************************************************/
4274 
4275 xcb_void_cookie_t
4276 xcb_input_change_device_key_mapping (xcb_connection_t     *c  /**< */,
4277                                      uint8_t               device_id  /**< */,
4278                                      xcb_input_key_code_t  first_keycode  /**< */,
4279                                      uint8_t               keysyms_per_keycode  /**< */,
4280                                      uint8_t               keycode_count  /**< */,
4281                                      const xcb_keysym_t   *keysyms  /**< */)
4282 {
4283     static const xcb_protocol_request_t xcb_req = {
4284         /* count */ 4,
4285         /* ext */ &xcb_input_id,
4286         /* opcode */ XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING,
4287         /* isvoid */ 1
4288     };
4289 
4290     struct iovec xcb_parts[6];
4291     xcb_void_cookie_t xcb_ret;
4292     xcb_input_change_device_key_mapping_request_t xcb_out;
4293 
4294     xcb_out.device_id = device_id;
4295     xcb_out.first_keycode = first_keycode;
4296     xcb_out.keysyms_per_keycode = keysyms_per_keycode;
4297     xcb_out.keycode_count = keycode_count;
4298 
4299     xcb_parts[2].iov_base = (char *) &xcb_out;
4300     xcb_parts[2].iov_len = sizeof(xcb_out);
4301     xcb_parts[3].iov_base = 0;
4302     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4303     /* xcb_keysym_t keysyms */
4304     xcb_parts[4].iov_base = (char *) keysyms;
4305     xcb_parts[4].iov_len = (keycode_count * keysyms_per_keycode) * sizeof(xcb_keysym_t);
4306     xcb_parts[5].iov_base = 0;
4307     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4308 
4309     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4310     return xcb_ret;
4311 }
4312 
4313 int
4314 xcb_input_get_device_modifier_mapping_sizeof (const void  *_buffer  /**< */)
4315 {
4316     char *xcb_tmp = (char *)_buffer;
4317     const xcb_input_get_device_modifier_mapping_reply_t *_aux = (xcb_input_get_device_modifier_mapping_reply_t *)_buffer;
4318     unsigned int xcb_buffer_len = 0;
4319     unsigned int xcb_block_len = 0;
4320     unsigned int xcb_pad = 0;
4321     unsigned int xcb_align_to;
4322 
4323 
4324     xcb_block_len += sizeof(xcb_input_get_device_modifier_mapping_reply_t);
4325     xcb_tmp += xcb_block_len;
4326     /* keymaps */
4327     xcb_block_len += (_aux->keycodes_per_modifier * 8) * sizeof(uint8_t);
4328     xcb_tmp += xcb_block_len;
4329     xcb_align_to = ALIGNOF(uint8_t);
4330     /* insert padding */
4331     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4332     xcb_buffer_len += xcb_block_len + xcb_pad;
4333     if (0 != xcb_pad) {
4334         xcb_tmp += xcb_pad;
4335         xcb_pad = 0;
4336     }
4337     xcb_block_len = 0;
4338 
4339     return xcb_buffer_len;
4340 }
4341 
4342 
4343 /*****************************************************************************
4344  **
4345  ** xcb_input_get_device_modifier_mapping_cookie_t xcb_input_get_device_modifier_mapping
4346  **
4347  ** @param xcb_connection_t *c
4348  ** @param uint8_t           device_id
4349  ** @returns xcb_input_get_device_modifier_mapping_cookie_t
4350  **
4351  *****************************************************************************/
4352 
4353 xcb_input_get_device_modifier_mapping_cookie_t
4354 xcb_input_get_device_modifier_mapping (xcb_connection_t *c  /**< */,
4355                                        uint8_t           device_id  /**< */)
4356 {
4357     static const xcb_protocol_request_t xcb_req = {
4358         /* count */ 2,
4359         /* ext */ &xcb_input_id,
4360         /* opcode */ XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING,
4361         /* isvoid */ 0
4362     };
4363 
4364     struct iovec xcb_parts[4];
4365     xcb_input_get_device_modifier_mapping_cookie_t xcb_ret;
4366     xcb_input_get_device_modifier_mapping_request_t xcb_out;
4367 
4368     xcb_out.device_id = device_id;
4369     memset(xcb_out.pad0, 0, 3);
4370 
4371     xcb_parts[2].iov_base = (char *) &xcb_out;
4372     xcb_parts[2].iov_len = sizeof(xcb_out);
4373     xcb_parts[3].iov_base = 0;
4374     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4375 
4376     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4377     return xcb_ret;
4378 }
4379 
4380 
4381 /*****************************************************************************
4382  **
4383  ** xcb_input_get_device_modifier_mapping_cookie_t xcb_input_get_device_modifier_mapping_unchecked
4384  **
4385  ** @param xcb_connection_t *c
4386  ** @param uint8_t           device_id
4387  ** @returns xcb_input_get_device_modifier_mapping_cookie_t
4388  **
4389  *****************************************************************************/
4390 
4391 xcb_input_get_device_modifier_mapping_cookie_t
4392 xcb_input_get_device_modifier_mapping_unchecked (xcb_connection_t *c  /**< */,
4393                                                  uint8_t           device_id  /**< */)
4394 {
4395     static const xcb_protocol_request_t xcb_req = {
4396         /* count */ 2,
4397         /* ext */ &xcb_input_id,
4398         /* opcode */ XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING,
4399         /* isvoid */ 0
4400     };
4401 
4402     struct iovec xcb_parts[4];
4403     xcb_input_get_device_modifier_mapping_cookie_t xcb_ret;
4404     xcb_input_get_device_modifier_mapping_request_t xcb_out;
4405 
4406     xcb_out.device_id = device_id;
4407     memset(xcb_out.pad0, 0, 3);
4408 
4409     xcb_parts[2].iov_base = (char *) &xcb_out;
4410     xcb_parts[2].iov_len = sizeof(xcb_out);
4411     xcb_parts[3].iov_base = 0;
4412     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4413 
4414     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4415     return xcb_ret;
4416 }
4417 
4418 
4419 /*****************************************************************************
4420  **
4421  ** uint8_t * xcb_input_get_device_modifier_mapping_keymaps
4422  **
4423  ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
4424  ** @returns uint8_t *
4425  **
4426  *****************************************************************************/
4427 
4428 uint8_t *
4429 xcb_input_get_device_modifier_mapping_keymaps (const xcb_input_get_device_modifier_mapping_reply_t *R  /**< */)
4430 {
4431     return (uint8_t *) (R + 1);
4432 }
4433 
4434 
4435 /*****************************************************************************
4436  **
4437  ** int xcb_input_get_device_modifier_mapping_keymaps_length
4438  **
4439  ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
4440  ** @returns int
4441  **
4442  *****************************************************************************/
4443 
4444 int
4445 xcb_input_get_device_modifier_mapping_keymaps_length (const xcb_input_get_device_modifier_mapping_reply_t *R  /**< */)
4446 {
4447     return (R->keycodes_per_modifier * 8);
4448 }
4449 
4450 
4451 /*****************************************************************************
4452  **
4453  ** xcb_generic_iterator_t xcb_input_get_device_modifier_mapping_keymaps_end
4454  **
4455  ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
4456  ** @returns xcb_generic_iterator_t
4457  **
4458  *****************************************************************************/
4459 
4460 xcb_generic_iterator_t
4461 xcb_input_get_device_modifier_mapping_keymaps_end (const xcb_input_get_device_modifier_mapping_reply_t *R  /**< */)
4462 {
4463     xcb_generic_iterator_t i;
4464     i.data = ((uint8_t *) (R + 1)) + ((R->keycodes_per_modifier * 8));
4465     i.rem = 0;
4466     i.index = (char *) i.data - (char *) R;
4467     return i;
4468 }
4469 
4470 
4471 /*****************************************************************************
4472  **
4473  ** xcb_input_get_device_modifier_mapping_reply_t * xcb_input_get_device_modifier_mapping_reply
4474  **
4475  ** @param xcb_connection_t                                *c
4476  ** @param xcb_input_get_device_modifier_mapping_cookie_t   cookie
4477  ** @param xcb_generic_error_t                            **e
4478  ** @returns xcb_input_get_device_modifier_mapping_reply_t *
4479  **
4480  *****************************************************************************/
4481 
4482 xcb_input_get_device_modifier_mapping_reply_t *
4483 xcb_input_get_device_modifier_mapping_reply (xcb_connection_t                                *c  /**< */,
4484                                              xcb_input_get_device_modifier_mapping_cookie_t   cookie  /**< */,
4485                                              xcb_generic_error_t                            **e  /**< */)
4486 {
4487     return (xcb_input_get_device_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4488 }
4489 
4490 int
4491 xcb_input_set_device_modifier_mapping_sizeof (const void  *_buffer  /**< */)
4492 {
4493     char *xcb_tmp = (char *)_buffer;
4494     const xcb_input_set_device_modifier_mapping_request_t *_aux = (xcb_input_set_device_modifier_mapping_request_t *)_buffer;
4495     unsigned int xcb_buffer_len = 0;
4496     unsigned int xcb_block_len = 0;
4497     unsigned int xcb_pad = 0;
4498     unsigned int xcb_align_to;
4499 
4500 
4501     xcb_block_len += sizeof(xcb_input_set_device_modifier_mapping_request_t);
4502     xcb_tmp += xcb_block_len;
4503     /* keymaps */
4504     xcb_block_len += (_aux->keycodes_per_modifier * 8) * sizeof(uint8_t);
4505     xcb_tmp += xcb_block_len;
4506     xcb_align_to = ALIGNOF(uint8_t);
4507     /* insert padding */
4508     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4509     xcb_buffer_len += xcb_block_len + xcb_pad;
4510     if (0 != xcb_pad) {
4511         xcb_tmp += xcb_pad;
4512         xcb_pad = 0;
4513     }
4514     xcb_block_len = 0;
4515 
4516     return xcb_buffer_len;
4517 }
4518 
4519 
4520 /*****************************************************************************
4521  **
4522  ** xcb_input_set_device_modifier_mapping_cookie_t xcb_input_set_device_modifier_mapping
4523  **
4524  ** @param xcb_connection_t *c
4525  ** @param uint8_t           device_id
4526  ** @param uint8_t           keycodes_per_modifier
4527  ** @param const uint8_t    *keymaps
4528  ** @returns xcb_input_set_device_modifier_mapping_cookie_t
4529  **
4530  *****************************************************************************/
4531 
4532 xcb_input_set_device_modifier_mapping_cookie_t
4533 xcb_input_set_device_modifier_mapping (xcb_connection_t *c  /**< */,
4534                                        uint8_t           device_id  /**< */,
4535                                        uint8_t           keycodes_per_modifier  /**< */,
4536                                        const uint8_t    *keymaps  /**< */)
4537 {
4538     static const xcb_protocol_request_t xcb_req = {
4539         /* count */ 4,
4540         /* ext */ &xcb_input_id,
4541         /* opcode */ XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING,
4542         /* isvoid */ 0
4543     };
4544 
4545     struct iovec xcb_parts[6];
4546     xcb_input_set_device_modifier_mapping_cookie_t xcb_ret;
4547     xcb_input_set_device_modifier_mapping_request_t xcb_out;
4548 
4549     xcb_out.device_id = device_id;
4550     xcb_out.keycodes_per_modifier = keycodes_per_modifier;
4551     xcb_out.pad0 = 0;
4552 
4553     xcb_parts[2].iov_base = (char *) &xcb_out;
4554     xcb_parts[2].iov_len = sizeof(xcb_out);
4555     xcb_parts[3].iov_base = 0;
4556     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4557     /* uint8_t keymaps */
4558     xcb_parts[4].iov_base = (char *) keymaps;
4559     xcb_parts[4].iov_len = (keycodes_per_modifier * 8) * sizeof(uint8_t);
4560     xcb_parts[5].iov_base = 0;
4561     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4562 
4563     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4564     return xcb_ret;
4565 }
4566 
4567 
4568 /*****************************************************************************
4569  **
4570  ** xcb_input_set_device_modifier_mapping_cookie_t xcb_input_set_device_modifier_mapping_unchecked
4571  **
4572  ** @param xcb_connection_t *c
4573  ** @param uint8_t           device_id
4574  ** @param uint8_t           keycodes_per_modifier
4575  ** @param const uint8_t    *keymaps
4576  ** @returns xcb_input_set_device_modifier_mapping_cookie_t
4577  **
4578  *****************************************************************************/
4579 
4580 xcb_input_set_device_modifier_mapping_cookie_t
4581 xcb_input_set_device_modifier_mapping_unchecked (xcb_connection_t *c  /**< */,
4582                                                  uint8_t           device_id  /**< */,
4583                                                  uint8_t           keycodes_per_modifier  /**< */,
4584                                                  const uint8_t    *keymaps  /**< */)
4585 {
4586     static const xcb_protocol_request_t xcb_req = {
4587         /* count */ 4,
4588         /* ext */ &xcb_input_id,
4589         /* opcode */ XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING,
4590         /* isvoid */ 0
4591     };
4592 
4593     struct iovec xcb_parts[6];
4594     xcb_input_set_device_modifier_mapping_cookie_t xcb_ret;
4595     xcb_input_set_device_modifier_mapping_request_t xcb_out;
4596 
4597     xcb_out.device_id = device_id;
4598     xcb_out.keycodes_per_modifier = keycodes_per_modifier;
4599     xcb_out.pad0 = 0;
4600 
4601     xcb_parts[2].iov_base = (char *) &xcb_out;
4602     xcb_parts[2].iov_len = sizeof(xcb_out);
4603     xcb_parts[3].iov_base = 0;
4604     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4605     /* uint8_t keymaps */
4606     xcb_parts[4].iov_base = (char *) keymaps;
4607     xcb_parts[4].iov_len = (keycodes_per_modifier * 8) * sizeof(uint8_t);
4608     xcb_parts[5].iov_base = 0;
4609     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4610 
4611     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4612     return xcb_ret;
4613 }
4614 
4615 
4616 /*****************************************************************************
4617  **
4618  ** xcb_input_set_device_modifier_mapping_reply_t * xcb_input_set_device_modifier_mapping_reply
4619  **
4620  ** @param xcb_connection_t                                *c
4621  ** @param xcb_input_set_device_modifier_mapping_cookie_t   cookie
4622  ** @param xcb_generic_error_t                            **e
4623  ** @returns xcb_input_set_device_modifier_mapping_reply_t *
4624  **
4625  *****************************************************************************/
4626 
4627 xcb_input_set_device_modifier_mapping_reply_t *
4628 xcb_input_set_device_modifier_mapping_reply (xcb_connection_t                                *c  /**< */,
4629                                              xcb_input_set_device_modifier_mapping_cookie_t   cookie  /**< */,
4630                                              xcb_generic_error_t                            **e  /**< */)
4631 {
4632     return (xcb_input_set_device_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4633 }
4634 
4635 int
4636 xcb_input_get_device_button_mapping_sizeof (const void  *_buffer  /**< */)
4637 {
4638     char *xcb_tmp = (char *)_buffer;
4639     const xcb_input_get_device_button_mapping_reply_t *_aux = (xcb_input_get_device_button_mapping_reply_t *)_buffer;
4640     unsigned int xcb_buffer_len = 0;
4641     unsigned int xcb_block_len = 0;
4642     unsigned int xcb_pad = 0;
4643     unsigned int xcb_align_to;
4644 
4645 
4646     xcb_block_len += sizeof(xcb_input_get_device_button_mapping_reply_t);
4647     xcb_tmp += xcb_block_len;
4648     /* map */
4649     xcb_block_len += _aux->map_size * sizeof(uint8_t);
4650     xcb_tmp += xcb_block_len;
4651     xcb_align_to = ALIGNOF(uint8_t);
4652     /* insert padding */
4653     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4654     xcb_buffer_len += xcb_block_len + xcb_pad;
4655     if (0 != xcb_pad) {
4656         xcb_tmp += xcb_pad;
4657         xcb_pad = 0;
4658     }
4659     xcb_block_len = 0;
4660 
4661     return xcb_buffer_len;
4662 }
4663 
4664 
4665 /*****************************************************************************
4666  **
4667  ** xcb_input_get_device_button_mapping_cookie_t xcb_input_get_device_button_mapping
4668  **
4669  ** @param xcb_connection_t *c
4670  ** @param uint8_t           device_id
4671  ** @returns xcb_input_get_device_button_mapping_cookie_t
4672  **
4673  *****************************************************************************/
4674 
4675 xcb_input_get_device_button_mapping_cookie_t
4676 xcb_input_get_device_button_mapping (xcb_connection_t *c  /**< */,
4677                                      uint8_t           device_id  /**< */)
4678 {
4679     static const xcb_protocol_request_t xcb_req = {
4680         /* count */ 2,
4681         /* ext */ &xcb_input_id,
4682         /* opcode */ XCB_INPUT_GET_DEVICE_BUTTON_MAPPING,
4683         /* isvoid */ 0
4684     };
4685 
4686     struct iovec xcb_parts[4];
4687     xcb_input_get_device_button_mapping_cookie_t xcb_ret;
4688     xcb_input_get_device_button_mapping_request_t xcb_out;
4689 
4690     xcb_out.device_id = device_id;
4691     memset(xcb_out.pad0, 0, 3);
4692 
4693     xcb_parts[2].iov_base = (char *) &xcb_out;
4694     xcb_parts[2].iov_len = sizeof(xcb_out);
4695     xcb_parts[3].iov_base = 0;
4696     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4697 
4698     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4699     return xcb_ret;
4700 }
4701 
4702 
4703 /*****************************************************************************
4704  **
4705  ** xcb_input_get_device_button_mapping_cookie_t xcb_input_get_device_button_mapping_unchecked
4706  **
4707  ** @param xcb_connection_t *c
4708  ** @param uint8_t           device_id
4709  ** @returns xcb_input_get_device_button_mapping_cookie_t
4710  **
4711  *****************************************************************************/
4712 
4713 xcb_input_get_device_button_mapping_cookie_t
4714 xcb_input_get_device_button_mapping_unchecked (xcb_connection_t *c  /**< */,
4715                                                uint8_t           device_id  /**< */)
4716 {
4717     static const xcb_protocol_request_t xcb_req = {
4718         /* count */ 2,
4719         /* ext */ &xcb_input_id,
4720         /* opcode */ XCB_INPUT_GET_DEVICE_BUTTON_MAPPING,
4721         /* isvoid */ 0
4722     };
4723 
4724     struct iovec xcb_parts[4];
4725     xcb_input_get_device_button_mapping_cookie_t xcb_ret;
4726     xcb_input_get_device_button_mapping_request_t xcb_out;
4727 
4728     xcb_out.device_id = device_id;
4729     memset(xcb_out.pad0, 0, 3);
4730 
4731     xcb_parts[2].iov_base = (char *) &xcb_out;
4732     xcb_parts[2].iov_len = sizeof(xcb_out);
4733     xcb_parts[3].iov_base = 0;
4734     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4735 
4736     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4737     return xcb_ret;
4738 }
4739 
4740 
4741 /*****************************************************************************
4742  **
4743  ** uint8_t * xcb_input_get_device_button_mapping_map
4744  **
4745  ** @param const xcb_input_get_device_button_mapping_reply_t *R
4746  ** @returns uint8_t *
4747  **
4748  *****************************************************************************/
4749 
4750 uint8_t *
4751 xcb_input_get_device_button_mapping_map (const xcb_input_get_device_button_mapping_reply_t *R  /**< */)
4752 {
4753     return (uint8_t *) (R + 1);
4754 }
4755 
4756 
4757 /*****************************************************************************
4758  **
4759  ** int xcb_input_get_device_button_mapping_map_length
4760  **
4761  ** @param const xcb_input_get_device_button_mapping_reply_t *R
4762  ** @returns int
4763  **
4764  *****************************************************************************/
4765 
4766 int
4767 xcb_input_get_device_button_mapping_map_length (const xcb_input_get_device_button_mapping_reply_t *R  /**< */)
4768 {
4769     return R->map_size;
4770 }
4771 
4772 
4773 /*****************************************************************************
4774  **
4775  ** xcb_generic_iterator_t xcb_input_get_device_button_mapping_map_end
4776  **
4777  ** @param const xcb_input_get_device_button_mapping_reply_t *R
4778  ** @returns xcb_generic_iterator_t
4779  **
4780  *****************************************************************************/
4781 
4782 xcb_generic_iterator_t
4783 xcb_input_get_device_button_mapping_map_end (const xcb_input_get_device_button_mapping_reply_t *R  /**< */)
4784 {
4785     xcb_generic_iterator_t i;
4786     i.data = ((uint8_t *) (R + 1)) + (R->map_size);
4787     i.rem = 0;
4788     i.index = (char *) i.data - (char *) R;
4789     return i;
4790 }
4791 
4792 
4793 /*****************************************************************************
4794  **
4795  ** xcb_input_get_device_button_mapping_reply_t * xcb_input_get_device_button_mapping_reply
4796  **
4797  ** @param xcb_connection_t                              *c
4798  ** @param xcb_input_get_device_button_mapping_cookie_t   cookie
4799  ** @param xcb_generic_error_t                          **e
4800  ** @returns xcb_input_get_device_button_mapping_reply_t *
4801  **
4802  *****************************************************************************/
4803 
4804 xcb_input_get_device_button_mapping_reply_t *
4805 xcb_input_get_device_button_mapping_reply (xcb_connection_t                              *c  /**< */,
4806                                            xcb_input_get_device_button_mapping_cookie_t   cookie  /**< */,
4807                                            xcb_generic_error_t                          **e  /**< */)
4808 {
4809     return (xcb_input_get_device_button_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4810 }
4811 
4812 int
4813 xcb_input_set_device_button_mapping_sizeof (const void  *_buffer  /**< */)
4814 {
4815     char *xcb_tmp = (char *)_buffer;
4816     const xcb_input_set_device_button_mapping_request_t *_aux = (xcb_input_set_device_button_mapping_request_t *)_buffer;
4817     unsigned int xcb_buffer_len = 0;
4818     unsigned int xcb_block_len = 0;
4819     unsigned int xcb_pad = 0;
4820     unsigned int xcb_align_to;
4821 
4822 
4823     xcb_block_len += sizeof(xcb_input_set_device_button_mapping_request_t);
4824     xcb_tmp += xcb_block_len;
4825     /* map */
4826     xcb_block_len += _aux->map_size * sizeof(uint8_t);
4827     xcb_tmp += xcb_block_len;
4828     xcb_align_to = ALIGNOF(uint8_t);
4829     /* insert padding */
4830     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4831     xcb_buffer_len += xcb_block_len + xcb_pad;
4832     if (0 != xcb_pad) {
4833         xcb_tmp += xcb_pad;
4834         xcb_pad = 0;
4835     }
4836     xcb_block_len = 0;
4837 
4838     return xcb_buffer_len;
4839 }
4840 
4841 
4842 /*****************************************************************************
4843  **
4844  ** xcb_input_set_device_button_mapping_cookie_t xcb_input_set_device_button_mapping
4845  **
4846  ** @param xcb_connection_t *c
4847  ** @param uint8_t           device_id
4848  ** @param uint8_t           map_size
4849  ** @param const uint8_t    *map
4850  ** @returns xcb_input_set_device_button_mapping_cookie_t
4851  **
4852  *****************************************************************************/
4853 
4854 xcb_input_set_device_button_mapping_cookie_t
4855 xcb_input_set_device_button_mapping (xcb_connection_t *c  /**< */,
4856                                      uint8_t           device_id  /**< */,
4857                                      uint8_t           map_size  /**< */,
4858                                      const uint8_t    *map  /**< */)
4859 {
4860     static const xcb_protocol_request_t xcb_req = {
4861         /* count */ 4,
4862         /* ext */ &xcb_input_id,
4863         /* opcode */ XCB_INPUT_SET_DEVICE_BUTTON_MAPPING,
4864         /* isvoid */ 0
4865     };
4866 
4867     struct iovec xcb_parts[6];
4868     xcb_input_set_device_button_mapping_cookie_t xcb_ret;
4869     xcb_input_set_device_button_mapping_request_t xcb_out;
4870 
4871     xcb_out.device_id = device_id;
4872     xcb_out.map_size = map_size;
4873     memset(xcb_out.pad0, 0, 2);
4874 
4875     xcb_parts[2].iov_base = (char *) &xcb_out;
4876     xcb_parts[2].iov_len = sizeof(xcb_out);
4877     xcb_parts[3].iov_base = 0;
4878     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4879     /* uint8_t map */
4880     xcb_parts[4].iov_base = (char *) map;
4881     xcb_parts[4].iov_len = map_size * sizeof(uint8_t);
4882     xcb_parts[5].iov_base = 0;
4883     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4884 
4885     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4886     return xcb_ret;
4887 }
4888 
4889 
4890 /*****************************************************************************
4891  **
4892  ** xcb_input_set_device_button_mapping_cookie_t xcb_input_set_device_button_mapping_unchecked
4893  **
4894  ** @param xcb_connection_t *c
4895  ** @param uint8_t           device_id
4896  ** @param uint8_t           map_size
4897  ** @param const uint8_t    *map
4898  ** @returns xcb_input_set_device_button_mapping_cookie_t
4899  **
4900  *****************************************************************************/
4901 
4902 xcb_input_set_device_button_mapping_cookie_t
4903 xcb_input_set_device_button_mapping_unchecked (xcb_connection_t *c  /**< */,
4904                                                uint8_t           device_id  /**< */,
4905                                                uint8_t           map_size  /**< */,
4906                                                const uint8_t    *map  /**< */)
4907 {
4908     static const xcb_protocol_request_t xcb_req = {
4909         /* count */ 4,
4910         /* ext */ &xcb_input_id,
4911         /* opcode */ XCB_INPUT_SET_DEVICE_BUTTON_MAPPING,
4912         /* isvoid */ 0
4913     };
4914 
4915     struct iovec xcb_parts[6];
4916     xcb_input_set_device_button_mapping_cookie_t xcb_ret;
4917     xcb_input_set_device_button_mapping_request_t xcb_out;
4918 
4919     xcb_out.device_id = device_id;
4920     xcb_out.map_size = map_size;
4921     memset(xcb_out.pad0, 0, 2);
4922 
4923     xcb_parts[2].iov_base = (char *) &xcb_out;
4924     xcb_parts[2].iov_len = sizeof(xcb_out);
4925     xcb_parts[3].iov_base = 0;
4926     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4927     /* uint8_t map */
4928     xcb_parts[4].iov_base = (char *) map;
4929     xcb_parts[4].iov_len = map_size * sizeof(uint8_t);
4930     xcb_parts[5].iov_base = 0;
4931     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4932 
4933     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4934     return xcb_ret;
4935 }
4936 
4937 
4938 /*****************************************************************************
4939  **
4940  ** xcb_input_set_device_button_mapping_reply_t * xcb_input_set_device_button_mapping_reply
4941  **
4942  ** @param xcb_connection_t                              *c
4943  ** @param xcb_input_set_device_button_mapping_cookie_t   cookie
4944  ** @param xcb_generic_error_t                          **e
4945  ** @returns xcb_input_set_device_button_mapping_reply_t *
4946  **
4947  *****************************************************************************/
4948 
4949 xcb_input_set_device_button_mapping_reply_t *
4950 xcb_input_set_device_button_mapping_reply (xcb_connection_t                              *c  /**< */,
4951                                            xcb_input_set_device_button_mapping_cookie_t   cookie  /**< */,
4952                                            xcb_generic_error_t                          **e  /**< */)
4953 {
4954     return (xcb_input_set_device_button_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4955 }
4956 
4957 
4958 /*****************************************************************************
4959  **
4960  ** xcb_input_query_device_state_cookie_t xcb_input_query_device_state
4961  **
4962  ** @param xcb_connection_t *c
4963  ** @param uint8_t           device_id
4964  ** @returns xcb_input_query_device_state_cookie_t
4965  **
4966  *****************************************************************************/
4967 
4968 xcb_input_query_device_state_cookie_t
4969 xcb_input_query_device_state (xcb_connection_t *c  /**< */,
4970                               uint8_t           device_id  /**< */)
4971 {
4972     static const xcb_protocol_request_t xcb_req = {
4973         /* count */ 2,
4974         /* ext */ &xcb_input_id,
4975         /* opcode */ XCB_INPUT_QUERY_DEVICE_STATE,
4976         /* isvoid */ 0
4977     };
4978 
4979     struct iovec xcb_parts[4];
4980     xcb_input_query_device_state_cookie_t xcb_ret;
4981     xcb_input_query_device_state_request_t xcb_out;
4982 
4983     xcb_out.device_id = device_id;
4984     memset(xcb_out.pad0, 0, 3);
4985 
4986     xcb_parts[2].iov_base = (char *) &xcb_out;
4987     xcb_parts[2].iov_len = sizeof(xcb_out);
4988     xcb_parts[3].iov_base = 0;
4989     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4990 
4991     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4992     return xcb_ret;
4993 }
4994 
4995 
4996 /*****************************************************************************
4997  **
4998  ** xcb_input_query_device_state_cookie_t xcb_input_query_device_state_unchecked
4999  **
5000  ** @param xcb_connection_t *c
5001  ** @param uint8_t           device_id
5002  ** @returns xcb_input_query_device_state_cookie_t
5003  **
5004  *****************************************************************************/
5005 
5006 xcb_input_query_device_state_cookie_t
5007 xcb_input_query_device_state_unchecked (xcb_connection_t *c  /**< */,
5008                                         uint8_t           device_id  /**< */)
5009 {
5010     static const xcb_protocol_request_t xcb_req = {
5011         /* count */ 2,
5012         /* ext */ &xcb_input_id,
5013         /* opcode */ XCB_INPUT_QUERY_DEVICE_STATE,
5014         /* isvoid */ 0
5015     };
5016 
5017     struct iovec xcb_parts[4];
5018     xcb_input_query_device_state_cookie_t xcb_ret;
5019     xcb_input_query_device_state_request_t xcb_out;
5020 
5021     xcb_out.device_id = device_id;
5022     memset(xcb_out.pad0, 0, 3);
5023 
5024     xcb_parts[2].iov_base = (char *) &xcb_out;
5025     xcb_parts[2].iov_len = sizeof(xcb_out);
5026     xcb_parts[3].iov_base = 0;
5027     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5028 
5029     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5030     return xcb_ret;
5031 }
5032 
5033 
5034 /*****************************************************************************
5035  **
5036  ** xcb_input_query_device_state_reply_t * xcb_input_query_device_state_reply
5037  **
5038  ** @param xcb_connection_t                       *c
5039  ** @param xcb_input_query_device_state_cookie_t   cookie
5040  ** @param xcb_generic_error_t                   **e
5041  ** @returns xcb_input_query_device_state_reply_t *
5042  **
5043  *****************************************************************************/
5044 
5045 xcb_input_query_device_state_reply_t *
5046 xcb_input_query_device_state_reply (xcb_connection_t                       *c  /**< */,
5047                                     xcb_input_query_device_state_cookie_t   cookie  /**< */,
5048                                     xcb_generic_error_t                   **e  /**< */)
5049 {
5050     return (xcb_input_query_device_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5051 }
5052 
5053 
5054 /*****************************************************************************
5055  **
5056  ** void xcb_input_input_state_next
5057  **
5058  ** @param xcb_input_input_state_iterator_t *i
5059  ** @returns void
5060  **
5061  *****************************************************************************/
5062 
5063 void
5064 xcb_input_input_state_next (xcb_input_input_state_iterator_t *i  /**< */)
5065 {
5066     --i->rem;
5067     ++i->data;
5068     i->index += sizeof(xcb_input_input_state_t);
5069 }
5070 
5071 
5072 /*****************************************************************************
5073  **
5074  ** xcb_generic_iterator_t xcb_input_input_state_end
5075  **
5076  ** @param xcb_input_input_state_iterator_t i
5077  ** @returns xcb_generic_iterator_t
5078  **
5079  *****************************************************************************/
5080 
5081 xcb_generic_iterator_t
5082 xcb_input_input_state_end (xcb_input_input_state_iterator_t i  /**< */)
5083 {
5084     xcb_generic_iterator_t ret;
5085     ret.data = i.data + i.rem;
5086     ret.index = i.index + ((char *) ret.data - (char *) i.data);
5087     ret.rem = 0;
5088     return ret;
5089 }
5090 
5091 
5092 /*****************************************************************************
5093  **
5094  ** void xcb_input_key_state_next
5095  **
5096  ** @param xcb_input_key_state_iterator_t *i
5097  ** @returns void
5098  **
5099  *****************************************************************************/
5100 
5101 void
5102 xcb_input_key_state_next (xcb_input_key_state_iterator_t *i  /**< */)
5103 {
5104     --i->rem;
5105     ++i->data;
5106     i->index += sizeof(xcb_input_key_state_t);
5107 }
5108 
5109 
5110 /*****************************************************************************
5111  **
5112  ** xcb_generic_iterator_t xcb_input_key_state_end
5113  **
5114  ** @param xcb_input_key_state_iterator_t i
5115  ** @returns xcb_generic_iterator_t
5116  **
5117  *****************************************************************************/
5118 
5119 xcb_generic_iterator_t
5120 xcb_input_key_state_end (xcb_input_key_state_iterator_t i  /**< */)
5121 {
5122     xcb_generic_iterator_t ret;
5123     ret.data = i.data + i.rem;
5124     ret.index = i.index + ((char *) ret.data - (char *) i.data);
5125     ret.rem = 0;
5126     return ret;
5127 }
5128 
5129 
5130 /*****************************************************************************
5131  **
5132  ** void xcb_input_button_state_next
5133  **
5134  ** @param xcb_input_button_state_iterator_t *i
5135  ** @returns void
5136  **
5137  *****************************************************************************/
5138 
5139 void
5140 xcb_input_button_state_next (xcb_input_button_state_iterator_t *i  /**< */)
5141 {
5142     --i->rem;
5143     ++i->data;
5144     i->index += sizeof(xcb_input_button_state_t);
5145 }
5146 
5147 
5148 /*****************************************************************************
5149  **
5150  ** xcb_generic_iterator_t xcb_input_button_state_end
5151  **
5152  ** @param xcb_input_button_state_iterator_t i
5153  ** @returns xcb_generic_iterator_t
5154  **
5155  *****************************************************************************/
5156 
5157 xcb_generic_iterator_t
5158 xcb_input_button_state_end (xcb_input_button_state_iterator_t i  /**< */)
5159 {
5160     xcb_generic_iterator_t ret;
5161     ret.data = i.data + i.rem;
5162     ret.index = i.index + ((char *) ret.data - (char *) i.data);
5163     ret.rem = 0;
5164     return ret;
5165 }
5166 
5167 int
5168 xcb_input_valuator_state_sizeof (const void  *_buffer  /**< */)
5169 {
5170     char *xcb_tmp = (char *)_buffer;
5171     const xcb_input_valuator_state_t *_aux = (xcb_input_valuator_state_t *)_buffer;
5172     unsigned int xcb_buffer_len = 0;
5173     unsigned int xcb_block_len = 0;
5174     unsigned int xcb_pad = 0;
5175     unsigned int xcb_align_to;
5176 
5177 
5178     xcb_block_len += sizeof(xcb_input_valuator_state_t);
5179     xcb_tmp += xcb_block_len;
5180     /* valuators */
5181     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
5182     xcb_tmp += xcb_block_len;
5183     xcb_align_to = ALIGNOF(uint32_t);
5184     /* insert padding */
5185     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5186     xcb_buffer_len += xcb_block_len + xcb_pad;
5187     if (0 != xcb_pad) {
5188         xcb_tmp += xcb_pad;
5189         xcb_pad = 0;
5190     }
5191     xcb_block_len = 0;
5192 
5193     return xcb_buffer_len;
5194 }
5195 
5196 
5197 /*****************************************************************************
5198  **
5199  ** uint32_t * xcb_input_valuator_state_valuators
5200  **
5201  ** @param const xcb_input_valuator_state_t *R
5202  ** @returns uint32_t *
5203  **
5204  *****************************************************************************/
5205 
5206 uint32_t *
5207 xcb_input_valuator_state_valuators (const xcb_input_valuator_state_t *R  /**< */)
5208 {
5209     return (uint32_t *) (R + 1);
5210 }
5211 
5212 
5213 /*****************************************************************************
5214  **
5215  ** int xcb_input_valuator_state_valuators_length
5216  **
5217  ** @param const xcb_input_valuator_state_t *R
5218  ** @returns int
5219  **
5220  *****************************************************************************/
5221 
5222 int
5223 xcb_input_valuator_state_valuators_length (const xcb_input_valuator_state_t *R  /**< */)
5224 {
5225     return R->num_valuators;
5226 }
5227 
5228 
5229 /*****************************************************************************
5230  **
5231  ** xcb_generic_iterator_t xcb_input_valuator_state_valuators_end
5232  **
5233  ** @param const xcb_input_valuator_state_t *R
5234  ** @returns xcb_generic_iterator_t
5235  **
5236  *****************************************************************************/
5237 
5238 xcb_generic_iterator_t
5239 xcb_input_valuator_state_valuators_end (const xcb_input_valuator_state_t *R  /**< */)
5240 {
5241     xcb_generic_iterator_t i;
5242     i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
5243     i.rem = 0;
5244     i.index = (char *) i.data - (char *) R;
5245     return i;
5246 }
5247 
5248 
5249 /*****************************************************************************
5250  **
5251  ** void xcb_input_valuator_state_next
5252  **
5253  ** @param xcb_input_valuator_state_iterator_t *i
5254  ** @returns void
5255  **
5256  *****************************************************************************/
5257 
5258 void
5259 xcb_input_valuator_state_next (xcb_input_valuator_state_iterator_t *i  /**< */)
5260 {
5261     xcb_input_valuator_state_t *R = i->data;
5262     xcb_generic_iterator_t child;
5263     child.data = (xcb_input_valuator_state_t *)(((char *)R) + xcb_input_valuator_state_sizeof(R));
5264     i->index = (char *) child.data - (char *) i->data;
5265     --i->rem;
5266     i->data = (xcb_input_valuator_state_t *) child.data;
5267 }
5268 
5269 
5270 /*****************************************************************************
5271  **
5272  ** xcb_generic_iterator_t xcb_input_valuator_state_end
5273  **
5274  ** @param xcb_input_valuator_state_iterator_t i
5275  ** @returns xcb_generic_iterator_t
5276  **
5277  *****************************************************************************/
5278 
5279 xcb_generic_iterator_t
5280 xcb_input_valuator_state_end (xcb_input_valuator_state_iterator_t i  /**< */)
5281 {
5282     xcb_generic_iterator_t ret;
5283     while(i.rem > 0)
5284         xcb_input_valuator_state_next(&i);
5285     ret.data = i.data;
5286     ret.rem = i.rem;
5287     ret.index = i.index;
5288     return ret;
5289 }
5290 
5291 int
5292 xcb_input_send_extension_event_sizeof (const void  *_buffer  /**< */)
5293 {
5294     char *xcb_tmp = (char *)_buffer;
5295     const xcb_input_send_extension_event_request_t *_aux = (xcb_input_send_extension_event_request_t *)_buffer;
5296     unsigned int xcb_buffer_len = 0;
5297     unsigned int xcb_block_len = 0;
5298     unsigned int xcb_pad = 0;
5299     unsigned int xcb_align_to;
5300 
5301 
5302     xcb_block_len += sizeof(xcb_input_send_extension_event_request_t);
5303     xcb_tmp += xcb_block_len;
5304     /* events */
5305     xcb_block_len += (_aux->num_events * 32) * sizeof(char);
5306     xcb_tmp += xcb_block_len;
5307     xcb_align_to = ALIGNOF(char);
5308     /* insert padding */
5309     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5310     xcb_buffer_len += xcb_block_len + xcb_pad;
5311     if (0 != xcb_pad) {
5312         xcb_tmp += xcb_pad;
5313         xcb_pad = 0;
5314     }
5315     xcb_block_len = 0;
5316     /* classes */
5317     xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
5318     xcb_tmp += xcb_block_len;
5319     xcb_align_to = ALIGNOF(xcb_input_event_class_t);
5320     /* insert padding */
5321     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5322     xcb_buffer_len += xcb_block_len + xcb_pad;
5323     if (0 != xcb_pad) {
5324         xcb_tmp += xcb_pad;
5325         xcb_pad = 0;
5326     }
5327     xcb_block_len = 0;
5328 
5329     return xcb_buffer_len;
5330 }
5331 
5332 
5333 /*****************************************************************************
5334  **
5335  ** xcb_void_cookie_t xcb_input_send_extension_event_checked
5336  **
5337  ** @param xcb_connection_t              *c
5338  ** @param xcb_window_t                   destination
5339  ** @param uint8_t                        device_id
5340  ** @param uint8_t                        propagate
5341  ** @param uint16_t                       num_classes
5342  ** @param uint8_t                        num_events
5343  ** @param const char                    *events
5344  ** @param const xcb_input_event_class_t *classes
5345  ** @returns xcb_void_cookie_t
5346  **
5347  *****************************************************************************/
5348 
5349 xcb_void_cookie_t
5350 xcb_input_send_extension_event_checked (xcb_connection_t              *c  /**< */,
5351                                         xcb_window_t                   destination  /**< */,
5352                                         uint8_t                        device_id  /**< */,
5353                                         uint8_t                        propagate  /**< */,
5354                                         uint16_t                       num_classes  /**< */,
5355                                         uint8_t                        num_events  /**< */,
5356                                         const char                    *events  /**< */,
5357                                         const xcb_input_event_class_t *classes  /**< */)
5358 {
5359     static const xcb_protocol_request_t xcb_req = {
5360         /* count */ 6,
5361         /* ext */ &xcb_input_id,
5362         /* opcode */ XCB_INPUT_SEND_EXTENSION_EVENT,
5363         /* isvoid */ 1
5364     };
5365 
5366     struct iovec xcb_parts[8];
5367     xcb_void_cookie_t xcb_ret;
5368     xcb_input_send_extension_event_request_t xcb_out;
5369 
5370     xcb_out.destination = destination;
5371     xcb_out.device_id = device_id;
5372     xcb_out.propagate = propagate;
5373     xcb_out.num_classes = num_classes;
5374     xcb_out.num_events = num_events;
5375     memset(xcb_out.pad0, 0, 3);
5376 
5377     xcb_parts[2].iov_base = (char *) &xcb_out;
5378     xcb_parts[2].iov_len = sizeof(xcb_out);
5379     xcb_parts[3].iov_base = 0;
5380     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5381     /* char events */
5382     xcb_parts[4].iov_base = (char *) events;
5383     xcb_parts[4].iov_len = (num_events * 32) * sizeof(char);
5384     xcb_parts[5].iov_base = 0;
5385     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5386     /* xcb_input_event_class_t classes */
5387     xcb_parts[6].iov_base = (char *) classes;
5388     xcb_parts[6].iov_len = num_classes * sizeof(xcb_input_event_class_t);
5389     xcb_parts[7].iov_base = 0;
5390     xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
5391 
5392     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5393     return xcb_ret;
5394 }
5395 
5396 
5397 /*****************************************************************************
5398  **
5399  ** xcb_void_cookie_t xcb_input_send_extension_event
5400  **
5401  ** @param xcb_connection_t              *c
5402  ** @param xcb_window_t                   destination
5403  ** @param uint8_t                        device_id
5404  ** @param uint8_t                        propagate
5405  ** @param uint16_t                       num_classes
5406  ** @param uint8_t                        num_events
5407  ** @param const char                    *events
5408  ** @param const xcb_input_event_class_t *classes
5409  ** @returns xcb_void_cookie_t
5410  **
5411  *****************************************************************************/
5412 
5413 xcb_void_cookie_t
5414 xcb_input_send_extension_event (xcb_connection_t              *c  /**< */,
5415                                 xcb_window_t                   destination  /**< */,
5416                                 uint8_t                        device_id  /**< */,
5417                                 uint8_t                        propagate  /**< */,
5418                                 uint16_t                       num_classes  /**< */,
5419                                 uint8_t                        num_events  /**< */,
5420                                 const char                    *events  /**< */,
5421                                 const xcb_input_event_class_t *classes  /**< */)
5422 {
5423     static const xcb_protocol_request_t xcb_req = {
5424         /* count */ 6,
5425         /* ext */ &xcb_input_id,
5426         /* opcode */ XCB_INPUT_SEND_EXTENSION_EVENT,
5427         /* isvoid */ 1
5428     };
5429 
5430     struct iovec xcb_parts[8];
5431     xcb_void_cookie_t xcb_ret;
5432     xcb_input_send_extension_event_request_t xcb_out;
5433 
5434     xcb_out.destination = destination;
5435     xcb_out.device_id = device_id;
5436     xcb_out.propagate = propagate;
5437     xcb_out.num_classes = num_classes;
5438     xcb_out.num_events = num_events;
5439     memset(xcb_out.pad0, 0, 3);
5440 
5441     xcb_parts[2].iov_base = (char *) &xcb_out;
5442     xcb_parts[2].iov_len = sizeof(xcb_out);
5443     xcb_parts[3].iov_base = 0;
5444     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5445     /* char events */
5446     xcb_parts[4].iov_base = (char *) events;
5447     xcb_parts[4].iov_len = (num_events * 32) * sizeof(char);
5448     xcb_parts[5].iov_base = 0;
5449     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5450     /* xcb_input_event_class_t classes */
5451     xcb_parts[6].iov_base = (char *) classes;
5452     xcb_parts[6].iov_len = num_classes * sizeof(xcb_input_event_class_t);
5453     xcb_parts[7].iov_base = 0;
5454     xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
5455 
5456     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5457     return xcb_ret;
5458 }
5459 
5460 
5461 /*****************************************************************************
5462  **
5463  ** xcb_void_cookie_t xcb_input_device_bell_checked
5464  **
5465  ** @param xcb_connection_t *c
5466  ** @param uint8_t           device_id
5467  ** @param uint8_t           feedback_id
5468  ** @param uint8_t           feedback_class
5469  ** @param int8_t            percent
5470  ** @returns xcb_void_cookie_t
5471  **
5472  *****************************************************************************/
5473 
5474 xcb_void_cookie_t
5475 xcb_input_device_bell_checked (xcb_connection_t *c  /**< */,
5476                                uint8_t           device_id  /**< */,
5477                                uint8_t           feedback_id  /**< */,
5478                                uint8_t           feedback_class  /**< */,
5479                                int8_t            percent  /**< */)
5480 {
5481     static const xcb_protocol_request_t xcb_req = {
5482         /* count */ 2,
5483         /* ext */ &xcb_input_id,
5484         /* opcode */ XCB_INPUT_DEVICE_BELL,
5485         /* isvoid */ 1
5486     };
5487 
5488     struct iovec xcb_parts[4];
5489     xcb_void_cookie_t xcb_ret;
5490     xcb_input_device_bell_request_t xcb_out;
5491 
5492     xcb_out.device_id = device_id;
5493     xcb_out.feedback_id = feedback_id;
5494     xcb_out.feedback_class = feedback_class;
5495     xcb_out.percent = percent;
5496 
5497     xcb_parts[2].iov_base = (char *) &xcb_out;
5498     xcb_parts[2].iov_len = sizeof(xcb_out);
5499     xcb_parts[3].iov_base = 0;
5500     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5501 
5502     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5503     return xcb_ret;
5504 }
5505 
5506 
5507 /*****************************************************************************
5508  **
5509  ** xcb_void_cookie_t xcb_input_device_bell
5510  **
5511  ** @param xcb_connection_t *c
5512  ** @param uint8_t           device_id
5513  ** @param uint8_t           feedback_id
5514  ** @param uint8_t           feedback_class
5515  ** @param int8_t            percent
5516  ** @returns xcb_void_cookie_t
5517  **
5518  *****************************************************************************/
5519 
5520 xcb_void_cookie_t
5521 xcb_input_device_bell (xcb_connection_t *c  /**< */,
5522                        uint8_t           device_id  /**< */,
5523                        uint8_t           feedback_id  /**< */,
5524                        uint8_t           feedback_class  /**< */,
5525                        int8_t            percent  /**< */)
5526 {
5527     static const xcb_protocol_request_t xcb_req = {
5528         /* count */ 2,
5529         /* ext */ &xcb_input_id,
5530         /* opcode */ XCB_INPUT_DEVICE_BELL,
5531         /* isvoid */ 1
5532     };
5533 
5534     struct iovec xcb_parts[4];
5535     xcb_void_cookie_t xcb_ret;
5536     xcb_input_device_bell_request_t xcb_out;
5537 
5538     xcb_out.device_id = device_id;
5539     xcb_out.feedback_id = feedback_id;
5540     xcb_out.feedback_class = feedback_class;
5541     xcb_out.percent = percent;
5542 
5543     xcb_parts[2].iov_base = (char *) &xcb_out;
5544     xcb_parts[2].iov_len = sizeof(xcb_out);
5545     xcb_parts[3].iov_base = 0;
5546     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5547 
5548     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5549     return xcb_ret;
5550 }
5551 
5552 int
5553 xcb_input_set_device_valuators_sizeof (const void  *_buffer  /**< */)
5554 {
5555     char *xcb_tmp = (char *)_buffer;
5556     const xcb_input_set_device_valuators_request_t *_aux = (xcb_input_set_device_valuators_request_t *)_buffer;
5557     unsigned int xcb_buffer_len = 0;
5558     unsigned int xcb_block_len = 0;
5559     unsigned int xcb_pad = 0;
5560     unsigned int xcb_align_to;
5561 
5562 
5563     xcb_block_len += sizeof(xcb_input_set_device_valuators_request_t);
5564     xcb_tmp += xcb_block_len;
5565     /* valuators */
5566     xcb_block_len += _aux->num_valuators * sizeof(int32_t);
5567     xcb_tmp += xcb_block_len;
5568     xcb_align_to = ALIGNOF(int32_t);
5569     /* insert padding */
5570     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5571     xcb_buffer_len += xcb_block_len + xcb_pad;
5572     if (0 != xcb_pad) {
5573         xcb_tmp += xcb_pad;
5574         xcb_pad = 0;
5575     }
5576     xcb_block_len = 0;
5577 
5578     return xcb_buffer_len;
5579 }
5580 
5581 
5582 /*****************************************************************************
5583  **
5584  ** xcb_input_set_device_valuators_cookie_t xcb_input_set_device_valuators
5585  **
5586  ** @param xcb_connection_t *c
5587  ** @param uint8_t           device_id
5588  ** @param uint8_t           first_valuator
5589  ** @param uint8_t           num_valuators
5590  ** @param const int32_t    *valuators
5591  ** @returns xcb_input_set_device_valuators_cookie_t
5592  **
5593  *****************************************************************************/
5594 
5595 xcb_input_set_device_valuators_cookie_t
5596 xcb_input_set_device_valuators (xcb_connection_t *c  /**< */,
5597                                 uint8_t           device_id  /**< */,
5598                                 uint8_t           first_valuator  /**< */,
5599                                 uint8_t           num_valuators  /**< */,
5600                                 const int32_t    *valuators  /**< */)
5601 {
5602     static const xcb_protocol_request_t xcb_req = {
5603         /* count */ 4,
5604         /* ext */ &xcb_input_id,
5605         /* opcode */ XCB_INPUT_SET_DEVICE_VALUATORS,
5606         /* isvoid */ 0
5607     };
5608 
5609     struct iovec xcb_parts[6];
5610     xcb_input_set_device_valuators_cookie_t xcb_ret;
5611     xcb_input_set_device_valuators_request_t xcb_out;
5612 
5613     xcb_out.device_id = device_id;
5614     xcb_out.first_valuator = first_valuator;
5615     xcb_out.num_valuators = num_valuators;
5616     xcb_out.pad0 = 0;
5617 
5618     xcb_parts[2].iov_base = (char *) &xcb_out;
5619     xcb_parts[2].iov_len = sizeof(xcb_out);
5620     xcb_parts[3].iov_base = 0;
5621     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5622     /* int32_t valuators */
5623     xcb_parts[4].iov_base = (char *) valuators;
5624     xcb_parts[4].iov_len = num_valuators * sizeof(int32_t);
5625     xcb_parts[5].iov_base = 0;
5626     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5627 
5628     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5629     return xcb_ret;
5630 }
5631 
5632 
5633 /*****************************************************************************
5634  **
5635  ** xcb_input_set_device_valuators_cookie_t xcb_input_set_device_valuators_unchecked
5636  **
5637  ** @param xcb_connection_t *c
5638  ** @param uint8_t           device_id
5639  ** @param uint8_t           first_valuator
5640  ** @param uint8_t           num_valuators
5641  ** @param const int32_t    *valuators
5642  ** @returns xcb_input_set_device_valuators_cookie_t
5643  **
5644  *****************************************************************************/
5645 
5646 xcb_input_set_device_valuators_cookie_t
5647 xcb_input_set_device_valuators_unchecked (xcb_connection_t *c  /**< */,
5648                                           uint8_t           device_id  /**< */,
5649                                           uint8_t           first_valuator  /**< */,
5650                                           uint8_t           num_valuators  /**< */,
5651                                           const int32_t    *valuators  /**< */)
5652 {
5653     static const xcb_protocol_request_t xcb_req = {
5654         /* count */ 4,
5655         /* ext */ &xcb_input_id,
5656         /* opcode */ XCB_INPUT_SET_DEVICE_VALUATORS,
5657         /* isvoid */ 0
5658     };
5659 
5660     struct iovec xcb_parts[6];
5661     xcb_input_set_device_valuators_cookie_t xcb_ret;
5662     xcb_input_set_device_valuators_request_t xcb_out;
5663 
5664     xcb_out.device_id = device_id;
5665     xcb_out.first_valuator = first_valuator;
5666     xcb_out.num_valuators = num_valuators;
5667     xcb_out.pad0 = 0;
5668 
5669     xcb_parts[2].iov_base = (char *) &xcb_out;
5670     xcb_parts[2].iov_len = sizeof(xcb_out);
5671     xcb_parts[3].iov_base = 0;
5672     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5673     /* int32_t valuators */
5674     xcb_parts[4].iov_base = (char *) valuators;
5675     xcb_parts[4].iov_len = num_valuators * sizeof(int32_t);
5676     xcb_parts[5].iov_base = 0;
5677     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5678 
5679     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5680     return xcb_ret;
5681 }
5682 
5683 
5684 /*****************************************************************************
5685  **
5686  ** xcb_input_set_device_valuators_reply_t * xcb_input_set_device_valuators_reply
5687  **
5688  ** @param xcb_connection_t                         *c
5689  ** @param xcb_input_set_device_valuators_cookie_t   cookie
5690  ** @param xcb_generic_error_t                     **e
5691  ** @returns xcb_input_set_device_valuators_reply_t *
5692  **
5693  *****************************************************************************/
5694 
5695 xcb_input_set_device_valuators_reply_t *
5696 xcb_input_set_device_valuators_reply (xcb_connection_t                         *c  /**< */,
5697                                       xcb_input_set_device_valuators_cookie_t   cookie  /**< */,
5698                                       xcb_generic_error_t                     **e  /**< */)
5699 {
5700     return (xcb_input_set_device_valuators_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5701 }
5702 
5703 
5704 /*****************************************************************************
5705  **
5706  ** xcb_input_get_device_control_cookie_t xcb_input_get_device_control
5707  **
5708  ** @param xcb_connection_t *c
5709  ** @param uint16_t          control_id
5710  ** @param uint8_t           device_id
5711  ** @returns xcb_input_get_device_control_cookie_t
5712  **
5713  *****************************************************************************/
5714 
5715 xcb_input_get_device_control_cookie_t
5716 xcb_input_get_device_control (xcb_connection_t *c  /**< */,
5717                               uint16_t          control_id  /**< */,
5718                               uint8_t           device_id  /**< */)
5719 {
5720     static const xcb_protocol_request_t xcb_req = {
5721         /* count */ 2,
5722         /* ext */ &xcb_input_id,
5723         /* opcode */ XCB_INPUT_GET_DEVICE_CONTROL,
5724         /* isvoid */ 0
5725     };
5726 
5727     struct iovec xcb_parts[4];
5728     xcb_input_get_device_control_cookie_t xcb_ret;
5729     xcb_input_get_device_control_request_t xcb_out;
5730 
5731     xcb_out.control_id = control_id;
5732     xcb_out.device_id = device_id;
5733     xcb_out.pad0 = 0;
5734 
5735     xcb_parts[2].iov_base = (char *) &xcb_out;
5736     xcb_parts[2].iov_len = sizeof(xcb_out);
5737     xcb_parts[3].iov_base = 0;
5738     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5739 
5740     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5741     return xcb_ret;
5742 }
5743 
5744 
5745 /*****************************************************************************
5746  **
5747  ** xcb_input_get_device_control_cookie_t xcb_input_get_device_control_unchecked
5748  **
5749  ** @param xcb_connection_t *c
5750  ** @param uint16_t          control_id
5751  ** @param uint8_t           device_id
5752  ** @returns xcb_input_get_device_control_cookie_t
5753  **
5754  *****************************************************************************/
5755 
5756 xcb_input_get_device_control_cookie_t
5757 xcb_input_get_device_control_unchecked (xcb_connection_t *c  /**< */,
5758                                         uint16_t          control_id  /**< */,
5759                                         uint8_t           device_id  /**< */)
5760 {
5761     static const xcb_protocol_request_t xcb_req = {
5762         /* count */ 2,
5763         /* ext */ &xcb_input_id,
5764         /* opcode */ XCB_INPUT_GET_DEVICE_CONTROL,
5765         /* isvoid */ 0
5766     };
5767 
5768     struct iovec xcb_parts[4];
5769     xcb_input_get_device_control_cookie_t xcb_ret;
5770     xcb_input_get_device_control_request_t xcb_out;
5771 
5772     xcb_out.control_id = control_id;
5773     xcb_out.device_id = device_id;
5774     xcb_out.pad0 = 0;
5775 
5776     xcb_parts[2].iov_base = (char *) &xcb_out;
5777     xcb_parts[2].iov_len = sizeof(xcb_out);
5778     xcb_parts[3].iov_base = 0;
5779     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5780 
5781     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5782     return xcb_ret;
5783 }
5784 
5785 
5786 /*****************************************************************************
5787  **
5788  ** xcb_input_get_device_control_reply_t * xcb_input_get_device_control_reply
5789  **
5790  ** @param xcb_connection_t                       *c
5791  ** @param xcb_input_get_device_control_cookie_t   cookie
5792  ** @param xcb_generic_error_t                   **e
5793  ** @returns xcb_input_get_device_control_reply_t *
5794  **
5795  *****************************************************************************/
5796 
5797 xcb_input_get_device_control_reply_t *
5798 xcb_input_get_device_control_reply (xcb_connection_t                       *c  /**< */,
5799                                     xcb_input_get_device_control_cookie_t   cookie  /**< */,
5800                                     xcb_generic_error_t                   **e  /**< */)
5801 {
5802     return (xcb_input_get_device_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5803 }
5804 
5805 
5806 /*****************************************************************************
5807  **
5808  ** void xcb_input_device_state_next
5809  **
5810  ** @param xcb_input_device_state_iterator_t *i
5811  ** @returns void
5812  **
5813  *****************************************************************************/
5814 
5815 void
5816 xcb_input_device_state_next (xcb_input_device_state_iterator_t *i  /**< */)
5817 {
5818     --i->rem;
5819     ++i->data;
5820     i->index += sizeof(xcb_input_device_state_t);
5821 }
5822 
5823 
5824 /*****************************************************************************
5825  **
5826  ** xcb_generic_iterator_t xcb_input_device_state_end
5827  **
5828  ** @param xcb_input_device_state_iterator_t i
5829  ** @returns xcb_generic_iterator_t
5830  **
5831  *****************************************************************************/
5832 
5833 xcb_generic_iterator_t
5834 xcb_input_device_state_end (xcb_input_device_state_iterator_t i  /**< */)
5835 {
5836     xcb_generic_iterator_t ret;
5837     ret.data = i.data + i.rem;
5838     ret.index = i.index + ((char *) ret.data - (char *) i.data);
5839     ret.rem = 0;
5840     return ret;
5841 }
5842 
5843 int
5844 xcb_input_device_resolution_state_sizeof (const void  *_buffer  /**< */)
5845 {
5846     char *xcb_tmp = (char *)_buffer;
5847     const xcb_input_device_resolution_state_t *_aux = (xcb_input_device_resolution_state_t *)_buffer;
5848     unsigned int xcb_buffer_len = 0;
5849     unsigned int xcb_block_len = 0;
5850     unsigned int xcb_pad = 0;
5851     unsigned int xcb_align_to;
5852 
5853 
5854     xcb_block_len += sizeof(xcb_input_device_resolution_state_t);
5855     xcb_tmp += xcb_block_len;
5856     /* resolution_values */
5857     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
5858     xcb_tmp += xcb_block_len;
5859     xcb_align_to = ALIGNOF(uint32_t);
5860     /* insert padding */
5861     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5862     xcb_buffer_len += xcb_block_len + xcb_pad;
5863     if (0 != xcb_pad) {
5864         xcb_tmp += xcb_pad;
5865         xcb_pad = 0;
5866     }
5867     xcb_block_len = 0;
5868     /* resolution_min */
5869     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
5870     xcb_tmp += xcb_block_len;
5871     xcb_align_to = ALIGNOF(uint32_t);
5872     /* insert padding */
5873     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5874     xcb_buffer_len += xcb_block_len + xcb_pad;
5875     if (0 != xcb_pad) {
5876         xcb_tmp += xcb_pad;
5877         xcb_pad = 0;
5878     }
5879     xcb_block_len = 0;
5880     /* resolution_max */
5881     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
5882     xcb_tmp += xcb_block_len;
5883     xcb_align_to = ALIGNOF(uint32_t);
5884     /* insert padding */
5885     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5886     xcb_buffer_len += xcb_block_len + xcb_pad;
5887     if (0 != xcb_pad) {
5888         xcb_tmp += xcb_pad;
5889         xcb_pad = 0;
5890     }
5891     xcb_block_len = 0;
5892 
5893     return xcb_buffer_len;
5894 }
5895 
5896 
5897 /*****************************************************************************
5898  **
5899  ** uint32_t * xcb_input_device_resolution_state_resolution_values
5900  **
5901  ** @param const xcb_input_device_resolution_state_t *R
5902  ** @returns uint32_t *
5903  **
5904  *****************************************************************************/
5905 
5906 uint32_t *
5907 xcb_input_device_resolution_state_resolution_values (const xcb_input_device_resolution_state_t *R  /**< */)
5908 {
5909     return (uint32_t *) (R + 1);
5910 }
5911 
5912 
5913 /*****************************************************************************
5914  **
5915  ** int xcb_input_device_resolution_state_resolution_values_length
5916  **
5917  ** @param const xcb_input_device_resolution_state_t *R
5918  ** @returns int
5919  **
5920  *****************************************************************************/
5921 
5922 int
5923 xcb_input_device_resolution_state_resolution_values_length (const xcb_input_device_resolution_state_t *R  /**< */)
5924 {
5925     return R->num_valuators;
5926 }
5927 
5928 
5929 /*****************************************************************************
5930  **
5931  ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_values_end
5932  **
5933  ** @param const xcb_input_device_resolution_state_t *R
5934  ** @returns xcb_generic_iterator_t
5935  **
5936  *****************************************************************************/
5937 
5938 xcb_generic_iterator_t
5939 xcb_input_device_resolution_state_resolution_values_end (const xcb_input_device_resolution_state_t *R  /**< */)
5940 {
5941     xcb_generic_iterator_t i;
5942     i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
5943     i.rem = 0;
5944     i.index = (char *) i.data - (char *) R;
5945     return i;
5946 }
5947 
5948 
5949 /*****************************************************************************
5950  **
5951  ** uint32_t * xcb_input_device_resolution_state_resolution_min
5952  **
5953  ** @param const xcb_input_device_resolution_state_t *R
5954  ** @returns uint32_t *
5955  **
5956  *****************************************************************************/
5957 
5958 uint32_t *
5959 xcb_input_device_resolution_state_resolution_min (const xcb_input_device_resolution_state_t *R  /**< */)
5960 {
5961     xcb_generic_iterator_t prev = xcb_input_device_resolution_state_resolution_values_end(R);
5962     return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
5963 }
5964 
5965 
5966 /*****************************************************************************
5967  **
5968  ** int xcb_input_device_resolution_state_resolution_min_length
5969  **
5970  ** @param const xcb_input_device_resolution_state_t *R
5971  ** @returns int
5972  **
5973  *****************************************************************************/
5974 
5975 int
5976 xcb_input_device_resolution_state_resolution_min_length (const xcb_input_device_resolution_state_t *R  /**< */)
5977 {
5978     return R->num_valuators;
5979 }
5980 
5981 
5982 /*****************************************************************************
5983  **
5984  ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_min_end
5985  **
5986  ** @param const xcb_input_device_resolution_state_t *R
5987  ** @returns xcb_generic_iterator_t
5988  **
5989  *****************************************************************************/
5990 
5991 xcb_generic_iterator_t
5992 xcb_input_device_resolution_state_resolution_min_end (const xcb_input_device_resolution_state_t *R  /**< */)
5993 {
5994     xcb_generic_iterator_t i;
5995     xcb_generic_iterator_t child = xcb_input_device_resolution_state_resolution_values_end(R);
5996     i.data = ((uint32_t *) child.data) + (R->num_valuators);
5997     i.rem = 0;
5998     i.index = (char *) i.data - (char *) R;
5999     return i;
6000 }
6001 
6002 
6003 /*****************************************************************************
6004  **
6005  ** uint32_t * xcb_input_device_resolution_state_resolution_max
6006  **
6007  ** @param const xcb_input_device_resolution_state_t *R
6008  ** @returns uint32_t *
6009  **
6010  *****************************************************************************/
6011 
6012 uint32_t *
6013 xcb_input_device_resolution_state_resolution_max (const xcb_input_device_resolution_state_t *R  /**< */)
6014 {
6015     xcb_generic_iterator_t prev = xcb_input_device_resolution_state_resolution_min_end(R);
6016     return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
6017 }
6018 
6019 
6020 /*****************************************************************************
6021  **
6022  ** int xcb_input_device_resolution_state_resolution_max_length
6023  **
6024  ** @param const xcb_input_device_resolution_state_t *R
6025  ** @returns int
6026  **
6027  *****************************************************************************/
6028 
6029 int
6030 xcb_input_device_resolution_state_resolution_max_length (const xcb_input_device_resolution_state_t *R  /**< */)
6031 {
6032     return R->num_valuators;
6033 }
6034 
6035 
6036 /*****************************************************************************
6037  **
6038  ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_max_end
6039  **
6040  ** @param const xcb_input_device_resolution_state_t *R
6041  ** @returns xcb_generic_iterator_t
6042  **
6043  *****************************************************************************/
6044 
6045 xcb_generic_iterator_t
6046 xcb_input_device_resolution_state_resolution_max_end (const xcb_input_device_resolution_state_t *R  /**< */)
6047 {
6048     xcb_generic_iterator_t i;
6049     xcb_generic_iterator_t child = xcb_input_device_resolution_state_resolution_min_end(R);
6050     i.data = ((uint32_t *) child.data) + (R->num_valuators);
6051     i.rem = 0;
6052     i.index = (char *) i.data - (char *) R;
6053     return i;
6054 }
6055 
6056 
6057 /*****************************************************************************
6058  **
6059  ** void xcb_input_device_resolution_state_next
6060  **
6061  ** @param xcb_input_device_resolution_state_iterator_t *i
6062  ** @returns void
6063  **
6064  *****************************************************************************/
6065 
6066 void
6067 xcb_input_device_resolution_state_next (xcb_input_device_resolution_state_iterator_t *i  /**< */)
6068 {
6069     xcb_input_device_resolution_state_t *R = i->data;
6070     xcb_generic_iterator_t child;
6071     child.data = (xcb_input_device_resolution_state_t *)(((char *)R) + xcb_input_device_resolution_state_sizeof(R));
6072     i->index = (char *) child.data - (char *) i->data;
6073     --i->rem;
6074     i->data = (xcb_input_device_resolution_state_t *) child.data;
6075 }
6076 
6077 
6078 /*****************************************************************************
6079  **
6080  ** xcb_generic_iterator_t xcb_input_device_resolution_state_end
6081  **
6082  ** @param xcb_input_device_resolution_state_iterator_t i
6083  ** @returns xcb_generic_iterator_t
6084  **
6085  *****************************************************************************/
6086 
6087 xcb_generic_iterator_t
6088 xcb_input_device_resolution_state_end (xcb_input_device_resolution_state_iterator_t i  /**< */)
6089 {
6090     xcb_generic_iterator_t ret;
6091     while(i.rem > 0)
6092         xcb_input_device_resolution_state_next(&i);
6093     ret.data = i.data;
6094     ret.rem = i.rem;
6095     ret.index = i.index;
6096     return ret;
6097 }
6098 
6099 
6100 /*****************************************************************************
6101  **
6102  ** void xcb_input_device_abs_calib_state_next
6103  **
6104  ** @param xcb_input_device_abs_calib_state_iterator_t *i
6105  ** @returns void
6106  **
6107  *****************************************************************************/
6108 
6109 void
6110 xcb_input_device_abs_calib_state_next (xcb_input_device_abs_calib_state_iterator_t *i  /**< */)
6111 {
6112     --i->rem;
6113     ++i->data;
6114     i->index += sizeof(xcb_input_device_abs_calib_state_t);
6115 }
6116 
6117 
6118 /*****************************************************************************
6119  **
6120  ** xcb_generic_iterator_t xcb_input_device_abs_calib_state_end
6121  **
6122  ** @param xcb_input_device_abs_calib_state_iterator_t i
6123  ** @returns xcb_generic_iterator_t
6124  **
6125  *****************************************************************************/
6126 
6127 xcb_generic_iterator_t
6128 xcb_input_device_abs_calib_state_end (xcb_input_device_abs_calib_state_iterator_t i  /**< */)
6129 {
6130     xcb_generic_iterator_t ret;
6131     ret.data = i.data + i.rem;
6132     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6133     ret.rem = 0;
6134     return ret;
6135 }
6136 
6137 
6138 /*****************************************************************************
6139  **
6140  ** void xcb_input_device_abs_area_state_next
6141  **
6142  ** @param xcb_input_device_abs_area_state_iterator_t *i
6143  ** @returns void
6144  **
6145  *****************************************************************************/
6146 
6147 void
6148 xcb_input_device_abs_area_state_next (xcb_input_device_abs_area_state_iterator_t *i  /**< */)
6149 {
6150     --i->rem;
6151     ++i->data;
6152     i->index += sizeof(xcb_input_device_abs_area_state_t);
6153 }
6154 
6155 
6156 /*****************************************************************************
6157  **
6158  ** xcb_generic_iterator_t xcb_input_device_abs_area_state_end
6159  **
6160  ** @param xcb_input_device_abs_area_state_iterator_t i
6161  ** @returns xcb_generic_iterator_t
6162  **
6163  *****************************************************************************/
6164 
6165 xcb_generic_iterator_t
6166 xcb_input_device_abs_area_state_end (xcb_input_device_abs_area_state_iterator_t i  /**< */)
6167 {
6168     xcb_generic_iterator_t ret;
6169     ret.data = i.data + i.rem;
6170     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6171     ret.rem = 0;
6172     return ret;
6173 }
6174 
6175 
6176 /*****************************************************************************
6177  **
6178  ** void xcb_input_device_core_state_next
6179  **
6180  ** @param xcb_input_device_core_state_iterator_t *i
6181  ** @returns void
6182  **
6183  *****************************************************************************/
6184 
6185 void
6186 xcb_input_device_core_state_next (xcb_input_device_core_state_iterator_t *i  /**< */)
6187 {
6188     --i->rem;
6189     ++i->data;
6190     i->index += sizeof(xcb_input_device_core_state_t);
6191 }
6192 
6193 
6194 /*****************************************************************************
6195  **
6196  ** xcb_generic_iterator_t xcb_input_device_core_state_end
6197  **
6198  ** @param xcb_input_device_core_state_iterator_t i
6199  ** @returns xcb_generic_iterator_t
6200  **
6201  *****************************************************************************/
6202 
6203 xcb_generic_iterator_t
6204 xcb_input_device_core_state_end (xcb_input_device_core_state_iterator_t i  /**< */)
6205 {
6206     xcb_generic_iterator_t ret;
6207     ret.data = i.data + i.rem;
6208     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6209     ret.rem = 0;
6210     return ret;
6211 }
6212 
6213 
6214 /*****************************************************************************
6215  **
6216  ** void xcb_input_device_enable_state_next
6217  **
6218  ** @param xcb_input_device_enable_state_iterator_t *i
6219  ** @returns void
6220  **
6221  *****************************************************************************/
6222 
6223 void
6224 xcb_input_device_enable_state_next (xcb_input_device_enable_state_iterator_t *i  /**< */)
6225 {
6226     --i->rem;
6227     ++i->data;
6228     i->index += sizeof(xcb_input_device_enable_state_t);
6229 }
6230 
6231 
6232 /*****************************************************************************
6233  **
6234  ** xcb_generic_iterator_t xcb_input_device_enable_state_end
6235  **
6236  ** @param xcb_input_device_enable_state_iterator_t i
6237  ** @returns xcb_generic_iterator_t
6238  **
6239  *****************************************************************************/
6240 
6241 xcb_generic_iterator_t
6242 xcb_input_device_enable_state_end (xcb_input_device_enable_state_iterator_t i  /**< */)
6243 {
6244     xcb_generic_iterator_t ret;
6245     ret.data = i.data + i.rem;
6246     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6247     ret.rem = 0;
6248     return ret;
6249 }
6250 
6251 
6252 /*****************************************************************************
6253  **
6254  ** void xcb_input_device_ctl_next
6255  **
6256  ** @param xcb_input_device_ctl_iterator_t *i
6257  ** @returns void
6258  **
6259  *****************************************************************************/
6260 
6261 void
6262 xcb_input_device_ctl_next (xcb_input_device_ctl_iterator_t *i  /**< */)
6263 {
6264     --i->rem;
6265     ++i->data;
6266     i->index += sizeof(xcb_input_device_ctl_t);
6267 }
6268 
6269 
6270 /*****************************************************************************
6271  **
6272  ** xcb_generic_iterator_t xcb_input_device_ctl_end
6273  **
6274  ** @param xcb_input_device_ctl_iterator_t i
6275  ** @returns xcb_generic_iterator_t
6276  **
6277  *****************************************************************************/
6278 
6279 xcb_generic_iterator_t
6280 xcb_input_device_ctl_end (xcb_input_device_ctl_iterator_t i  /**< */)
6281 {
6282     xcb_generic_iterator_t ret;
6283     ret.data = i.data + i.rem;
6284     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6285     ret.rem = 0;
6286     return ret;
6287 }
6288 
6289 int
6290 xcb_input_device_resolution_ctl_sizeof (const void  *_buffer  /**< */)
6291 {
6292     char *xcb_tmp = (char *)_buffer;
6293     const xcb_input_device_resolution_ctl_t *_aux = (xcb_input_device_resolution_ctl_t *)_buffer;
6294     unsigned int xcb_buffer_len = 0;
6295     unsigned int xcb_block_len = 0;
6296     unsigned int xcb_pad = 0;
6297     unsigned int xcb_align_to;
6298 
6299 
6300     xcb_block_len += sizeof(xcb_input_device_resolution_ctl_t);
6301     xcb_tmp += xcb_block_len;
6302     /* resolution_values */
6303     xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
6304     xcb_tmp += xcb_block_len;
6305     xcb_align_to = ALIGNOF(uint32_t);
6306     /* insert padding */
6307     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6308     xcb_buffer_len += xcb_block_len + xcb_pad;
6309     if (0 != xcb_pad) {
6310         xcb_tmp += xcb_pad;
6311         xcb_pad = 0;
6312     }
6313     xcb_block_len = 0;
6314 
6315     return xcb_buffer_len;
6316 }
6317 
6318 
6319 /*****************************************************************************
6320  **
6321  ** uint32_t * xcb_input_device_resolution_ctl_resolution_values
6322  **
6323  ** @param const xcb_input_device_resolution_ctl_t *R
6324  ** @returns uint32_t *
6325  **
6326  *****************************************************************************/
6327 
6328 uint32_t *
6329 xcb_input_device_resolution_ctl_resolution_values (const xcb_input_device_resolution_ctl_t *R  /**< */)
6330 {
6331     return (uint32_t *) (R + 1);
6332 }
6333 
6334 
6335 /*****************************************************************************
6336  **
6337  ** int xcb_input_device_resolution_ctl_resolution_values_length
6338  **
6339  ** @param const xcb_input_device_resolution_ctl_t *R
6340  ** @returns int
6341  **
6342  *****************************************************************************/
6343 
6344 int
6345 xcb_input_device_resolution_ctl_resolution_values_length (const xcb_input_device_resolution_ctl_t *R  /**< */)
6346 {
6347     return R->num_valuators;
6348 }
6349 
6350 
6351 /*****************************************************************************
6352  **
6353  ** xcb_generic_iterator_t xcb_input_device_resolution_ctl_resolution_values_end
6354  **
6355  ** @param const xcb_input_device_resolution_ctl_t *R
6356  ** @returns xcb_generic_iterator_t
6357  **
6358  *****************************************************************************/
6359 
6360 xcb_generic_iterator_t
6361 xcb_input_device_resolution_ctl_resolution_values_end (const xcb_input_device_resolution_ctl_t *R  /**< */)
6362 {
6363     xcb_generic_iterator_t i;
6364     i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
6365     i.rem = 0;
6366     i.index = (char *) i.data - (char *) R;
6367     return i;
6368 }
6369 
6370 
6371 /*****************************************************************************
6372  **
6373  ** void xcb_input_device_resolution_ctl_next
6374  **
6375  ** @param xcb_input_device_resolution_ctl_iterator_t *i
6376  ** @returns void
6377  **
6378  *****************************************************************************/
6379 
6380 void
6381 xcb_input_device_resolution_ctl_next (xcb_input_device_resolution_ctl_iterator_t *i  /**< */)
6382 {
6383     xcb_input_device_resolution_ctl_t *R = i->data;
6384     xcb_generic_iterator_t child;
6385     child.data = (xcb_input_device_resolution_ctl_t *)(((char *)R) + xcb_input_device_resolution_ctl_sizeof(R));
6386     i->index = (char *) child.data - (char *) i->data;
6387     --i->rem;
6388     i->data = (xcb_input_device_resolution_ctl_t *) child.data;
6389 }
6390 
6391 
6392 /*****************************************************************************
6393  **
6394  ** xcb_generic_iterator_t xcb_input_device_resolution_ctl_end
6395  **
6396  ** @param xcb_input_device_resolution_ctl_iterator_t i
6397  ** @returns xcb_generic_iterator_t
6398  **
6399  *****************************************************************************/
6400 
6401 xcb_generic_iterator_t
6402 xcb_input_device_resolution_ctl_end (xcb_input_device_resolution_ctl_iterator_t i  /**< */)
6403 {
6404     xcb_generic_iterator_t ret;
6405     while(i.rem > 0)
6406         xcb_input_device_resolution_ctl_next(&i);
6407     ret.data = i.data;
6408     ret.rem = i.rem;
6409     ret.index = i.index;
6410     return ret;
6411 }
6412 
6413 
6414 /*****************************************************************************
6415  **
6416  ** void xcb_input_device_abs_calib_ctl_next
6417  **
6418  ** @param xcb_input_device_abs_calib_ctl_iterator_t *i
6419  ** @returns void
6420  **
6421  *****************************************************************************/
6422 
6423 void
6424 xcb_input_device_abs_calib_ctl_next (xcb_input_device_abs_calib_ctl_iterator_t *i  /**< */)
6425 {
6426     --i->rem;
6427     ++i->data;
6428     i->index += sizeof(xcb_input_device_abs_calib_ctl_t);
6429 }
6430 
6431 
6432 /*****************************************************************************
6433  **
6434  ** xcb_generic_iterator_t xcb_input_device_abs_calib_ctl_end
6435  **
6436  ** @param xcb_input_device_abs_calib_ctl_iterator_t i
6437  ** @returns xcb_generic_iterator_t
6438  **
6439  *****************************************************************************/
6440 
6441 xcb_generic_iterator_t
6442 xcb_input_device_abs_calib_ctl_end (xcb_input_device_abs_calib_ctl_iterator_t i  /**< */)
6443 {
6444     xcb_generic_iterator_t ret;
6445     ret.data = i.data + i.rem;
6446     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6447     ret.rem = 0;
6448     return ret;
6449 }
6450 
6451 
6452 /*****************************************************************************
6453  **
6454  ** void xcb_input_device_abs_area_ctrl_next
6455  **
6456  ** @param xcb_input_device_abs_area_ctrl_iterator_t *i
6457  ** @returns void
6458  **
6459  *****************************************************************************/
6460 
6461 void
6462 xcb_input_device_abs_area_ctrl_next (xcb_input_device_abs_area_ctrl_iterator_t *i  /**< */)
6463 {
6464     --i->rem;
6465     ++i->data;
6466     i->index += sizeof(xcb_input_device_abs_area_ctrl_t);
6467 }
6468 
6469 
6470 /*****************************************************************************
6471  **
6472  ** xcb_generic_iterator_t xcb_input_device_abs_area_ctrl_end
6473  **
6474  ** @param xcb_input_device_abs_area_ctrl_iterator_t i
6475  ** @returns xcb_generic_iterator_t
6476  **
6477  *****************************************************************************/
6478 
6479 xcb_generic_iterator_t
6480 xcb_input_device_abs_area_ctrl_end (xcb_input_device_abs_area_ctrl_iterator_t i  /**< */)
6481 {
6482     xcb_generic_iterator_t ret;
6483     ret.data = i.data + i.rem;
6484     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6485     ret.rem = 0;
6486     return ret;
6487 }
6488 
6489 
6490 /*****************************************************************************
6491  **
6492  ** void xcb_input_device_core_ctrl_next
6493  **
6494  ** @param xcb_input_device_core_ctrl_iterator_t *i
6495  ** @returns void
6496  **
6497  *****************************************************************************/
6498 
6499 void
6500 xcb_input_device_core_ctrl_next (xcb_input_device_core_ctrl_iterator_t *i  /**< */)
6501 {
6502     --i->rem;
6503     ++i->data;
6504     i->index += sizeof(xcb_input_device_core_ctrl_t);
6505 }
6506 
6507 
6508 /*****************************************************************************
6509  **
6510  ** xcb_generic_iterator_t xcb_input_device_core_ctrl_end
6511  **
6512  ** @param xcb_input_device_core_ctrl_iterator_t i
6513  ** @returns xcb_generic_iterator_t
6514  **
6515  *****************************************************************************/
6516 
6517 xcb_generic_iterator_t
6518 xcb_input_device_core_ctrl_end (xcb_input_device_core_ctrl_iterator_t i  /**< */)
6519 {
6520     xcb_generic_iterator_t ret;
6521     ret.data = i.data + i.rem;
6522     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6523     ret.rem = 0;
6524     return ret;
6525 }
6526 
6527 
6528 /*****************************************************************************
6529  **
6530  ** void xcb_input_device_enable_ctrl_next
6531  **
6532  ** @param xcb_input_device_enable_ctrl_iterator_t *i
6533  ** @returns void
6534  **
6535  *****************************************************************************/
6536 
6537 void
6538 xcb_input_device_enable_ctrl_next (xcb_input_device_enable_ctrl_iterator_t *i  /**< */)
6539 {
6540     --i->rem;
6541     ++i->data;
6542     i->index += sizeof(xcb_input_device_enable_ctrl_t);
6543 }
6544 
6545 
6546 /*****************************************************************************
6547  **
6548  ** xcb_generic_iterator_t xcb_input_device_enable_ctrl_end
6549  **
6550  ** @param xcb_input_device_enable_ctrl_iterator_t i
6551  ** @returns xcb_generic_iterator_t
6552  **
6553  *****************************************************************************/
6554 
6555 xcb_generic_iterator_t
6556 xcb_input_device_enable_ctrl_end (xcb_input_device_enable_ctrl_iterator_t i  /**< */)
6557 {
6558     xcb_generic_iterator_t ret;
6559     ret.data = i.data + i.rem;
6560     ret.index = i.index + ((char *) ret.data - (char *) i.data);
6561     ret.rem = 0;
6562     return ret;
6563 }
6564 
6565