Home | History | Annotate | Line # | Download | only in files
xinput.c revision 1.1
      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