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