Home | History | Annotate | Line # | Download | only in files
xf86dri.c revision 1.2
      1 /*
      2  * This file generated automatically from xf86dri.xml by c_client.py.
      3  * Edit at your peril.
      4  */
      5 
      6 #ifdef HAVE_CONFIG_H
      7 #include "config.h"
      8 #endif
      9 #include <stdlib.h>
     10 #include <string.h>
     11 #include <assert.h>
     12 #include <stddef.h>  /* for offsetof() */
     13 #include "xcbext.h"
     14 #include "xf86dri.h"
     15 
     16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
     17 
     18 xcb_extension_t xcb_xf86dri_id = { "XFree86-DRI", 0 };
     19 
     20 
     21 /*****************************************************************************
     22  **
     23  ** void xcb_xf86dri_drm_clip_rect_next
     24  **
     25  ** @param xcb_xf86dri_drm_clip_rect_iterator_t *i
     26  ** @returns void
     27  **
     28  *****************************************************************************/
     29 
     30 void
     31 xcb_xf86dri_drm_clip_rect_next (xcb_xf86dri_drm_clip_rect_iterator_t *i  /**< */)
     32 {
     33     --i->rem;
     34     ++i->data;
     35     i->index += sizeof(xcb_xf86dri_drm_clip_rect_t);
     36 }
     37 
     38 
     39 /*****************************************************************************
     40  **
     41  ** xcb_generic_iterator_t xcb_xf86dri_drm_clip_rect_end
     42  **
     43  ** @param xcb_xf86dri_drm_clip_rect_iterator_t i
     44  ** @returns xcb_generic_iterator_t
     45  **
     46  *****************************************************************************/
     47 
     48 xcb_generic_iterator_t
     49 xcb_xf86dri_drm_clip_rect_end (xcb_xf86dri_drm_clip_rect_iterator_t i  /**< */)
     50 {
     51     xcb_generic_iterator_t ret;
     52     ret.data = i.data + i.rem;
     53     ret.index = i.index + ((char *) ret.data - (char *) i.data);
     54     ret.rem = 0;
     55     return ret;
     56 }
     57 
     58 
     59 /*****************************************************************************
     60  **
     61  ** xcb_xf86dri_query_version_cookie_t xcb_xf86dri_query_version
     62  **
     63  ** @param xcb_connection_t *c
     64  ** @returns xcb_xf86dri_query_version_cookie_t
     65  **
     66  *****************************************************************************/
     67 
     68 xcb_xf86dri_query_version_cookie_t
     69 xcb_xf86dri_query_version (xcb_connection_t *c  /**< */)
     70 {
     71     static const xcb_protocol_request_t xcb_req = {
     72         /* count */ 2,
     73         /* ext */ &xcb_xf86dri_id,
     74         /* opcode */ XCB_XF86DRI_QUERY_VERSION,
     75         /* isvoid */ 0
     76     };
     77 
     78     struct iovec xcb_parts[4];
     79     xcb_xf86dri_query_version_cookie_t xcb_ret;
     80     xcb_xf86dri_query_version_request_t xcb_out;
     81 
     82 
     83     xcb_parts[2].iov_base = (char *) &xcb_out;
     84     xcb_parts[2].iov_len = sizeof(xcb_out);
     85     xcb_parts[3].iov_base = 0;
     86     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
     87 
     88     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
     89     return xcb_ret;
     90 }
     91 
     92 
     93 /*****************************************************************************
     94  **
     95  ** xcb_xf86dri_query_version_cookie_t xcb_xf86dri_query_version_unchecked
     96  **
     97  ** @param xcb_connection_t *c
     98  ** @returns xcb_xf86dri_query_version_cookie_t
     99  **
    100  *****************************************************************************/
    101 
    102 xcb_xf86dri_query_version_cookie_t
    103 xcb_xf86dri_query_version_unchecked (xcb_connection_t *c  /**< */)
    104 {
    105     static const xcb_protocol_request_t xcb_req = {
    106         /* count */ 2,
    107         /* ext */ &xcb_xf86dri_id,
    108         /* opcode */ XCB_XF86DRI_QUERY_VERSION,
    109         /* isvoid */ 0
    110     };
    111 
    112     struct iovec xcb_parts[4];
    113     xcb_xf86dri_query_version_cookie_t xcb_ret;
    114     xcb_xf86dri_query_version_request_t xcb_out;
    115 
    116 
    117     xcb_parts[2].iov_base = (char *) &xcb_out;
    118     xcb_parts[2].iov_len = sizeof(xcb_out);
    119     xcb_parts[3].iov_base = 0;
    120     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    121 
    122     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    123     return xcb_ret;
    124 }
    125 
    126 
    127 /*****************************************************************************
    128  **
    129  ** xcb_xf86dri_query_version_reply_t * xcb_xf86dri_query_version_reply
    130  **
    131  ** @param xcb_connection_t                    *c
    132  ** @param xcb_xf86dri_query_version_cookie_t   cookie
    133  ** @param xcb_generic_error_t                **e
    134  ** @returns xcb_xf86dri_query_version_reply_t *
    135  **
    136  *****************************************************************************/
    137 
    138 xcb_xf86dri_query_version_reply_t *
    139 xcb_xf86dri_query_version_reply (xcb_connection_t                    *c  /**< */,
    140                                  xcb_xf86dri_query_version_cookie_t   cookie  /**< */,
    141                                  xcb_generic_error_t                **e  /**< */)
    142 {
    143     return (xcb_xf86dri_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    144 }
    145 
    146 
    147 /*****************************************************************************
    148  **
    149  ** xcb_xf86dri_query_direct_rendering_capable_cookie_t xcb_xf86dri_query_direct_rendering_capable
    150  **
    151  ** @param xcb_connection_t *c
    152  ** @param uint32_t          screen
    153  ** @returns xcb_xf86dri_query_direct_rendering_capable_cookie_t
    154  **
    155  *****************************************************************************/
    156 
    157 xcb_xf86dri_query_direct_rendering_capable_cookie_t
    158 xcb_xf86dri_query_direct_rendering_capable (xcb_connection_t *c  /**< */,
    159                                             uint32_t          screen  /**< */)
    160 {
    161     static const xcb_protocol_request_t xcb_req = {
    162         /* count */ 2,
    163         /* ext */ &xcb_xf86dri_id,
    164         /* opcode */ XCB_XF86DRI_QUERY_DIRECT_RENDERING_CAPABLE,
    165         /* isvoid */ 0
    166     };
    167 
    168     struct iovec xcb_parts[4];
    169     xcb_xf86dri_query_direct_rendering_capable_cookie_t xcb_ret;
    170     xcb_xf86dri_query_direct_rendering_capable_request_t xcb_out;
    171 
    172     xcb_out.screen = screen;
    173 
    174     xcb_parts[2].iov_base = (char *) &xcb_out;
    175     xcb_parts[2].iov_len = sizeof(xcb_out);
    176     xcb_parts[3].iov_base = 0;
    177     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    178 
    179     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    180     return xcb_ret;
    181 }
    182 
    183 
    184 /*****************************************************************************
    185  **
    186  ** xcb_xf86dri_query_direct_rendering_capable_cookie_t xcb_xf86dri_query_direct_rendering_capable_unchecked
    187  **
    188  ** @param xcb_connection_t *c
    189  ** @param uint32_t          screen
    190  ** @returns xcb_xf86dri_query_direct_rendering_capable_cookie_t
    191  **
    192  *****************************************************************************/
    193 
    194 xcb_xf86dri_query_direct_rendering_capable_cookie_t
    195 xcb_xf86dri_query_direct_rendering_capable_unchecked (xcb_connection_t *c  /**< */,
    196                                                       uint32_t          screen  /**< */)
    197 {
    198     static const xcb_protocol_request_t xcb_req = {
    199         /* count */ 2,
    200         /* ext */ &xcb_xf86dri_id,
    201         /* opcode */ XCB_XF86DRI_QUERY_DIRECT_RENDERING_CAPABLE,
    202         /* isvoid */ 0
    203     };
    204 
    205     struct iovec xcb_parts[4];
    206     xcb_xf86dri_query_direct_rendering_capable_cookie_t xcb_ret;
    207     xcb_xf86dri_query_direct_rendering_capable_request_t xcb_out;
    208 
    209     xcb_out.screen = screen;
    210 
    211     xcb_parts[2].iov_base = (char *) &xcb_out;
    212     xcb_parts[2].iov_len = sizeof(xcb_out);
    213     xcb_parts[3].iov_base = 0;
    214     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    215 
    216     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    217     return xcb_ret;
    218 }
    219 
    220 
    221 /*****************************************************************************
    222  **
    223  ** xcb_xf86dri_query_direct_rendering_capable_reply_t * xcb_xf86dri_query_direct_rendering_capable_reply
    224  **
    225  ** @param xcb_connection_t                                     *c
    226  ** @param xcb_xf86dri_query_direct_rendering_capable_cookie_t   cookie
    227  ** @param xcb_generic_error_t                                 **e
    228  ** @returns xcb_xf86dri_query_direct_rendering_capable_reply_t *
    229  **
    230  *****************************************************************************/
    231 
    232 xcb_xf86dri_query_direct_rendering_capable_reply_t *
    233 xcb_xf86dri_query_direct_rendering_capable_reply (xcb_connection_t                                     *c  /**< */,
    234                                                   xcb_xf86dri_query_direct_rendering_capable_cookie_t   cookie  /**< */,
    235                                                   xcb_generic_error_t                                 **e  /**< */)
    236 {
    237     return (xcb_xf86dri_query_direct_rendering_capable_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    238 }
    239 
    240 int
    241 xcb_xf86dri_open_connection_sizeof (const void  *_buffer  /**< */)
    242 {
    243     char *xcb_tmp = (char *)_buffer;
    244     const xcb_xf86dri_open_connection_reply_t *_aux = (xcb_xf86dri_open_connection_reply_t *)_buffer;
    245     unsigned int xcb_buffer_len = 0;
    246     unsigned int xcb_block_len = 0;
    247     unsigned int xcb_pad = 0;
    248     unsigned int xcb_align_to;
    249 
    250 
    251     xcb_block_len += sizeof(xcb_xf86dri_open_connection_reply_t);
    252     xcb_tmp += xcb_block_len;
    253     /* bus_id */
    254     xcb_block_len += _aux->bus_id_len * sizeof(char);
    255     xcb_tmp += xcb_block_len;
    256     xcb_align_to = ALIGNOF(char);
    257     /* insert padding */
    258     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
    259     xcb_buffer_len += xcb_block_len + xcb_pad;
    260     if (0 != xcb_pad) {
    261         xcb_tmp += xcb_pad;
    262         xcb_pad = 0;
    263     }
    264     xcb_block_len = 0;
    265 
    266     return xcb_buffer_len;
    267 }
    268 
    269 
    270 /*****************************************************************************
    271  **
    272  ** xcb_xf86dri_open_connection_cookie_t xcb_xf86dri_open_connection
    273  **
    274  ** @param xcb_connection_t *c
    275  ** @param uint32_t          screen
    276  ** @returns xcb_xf86dri_open_connection_cookie_t
    277  **
    278  *****************************************************************************/
    279 
    280 xcb_xf86dri_open_connection_cookie_t
    281 xcb_xf86dri_open_connection (xcb_connection_t *c  /**< */,
    282                              uint32_t          screen  /**< */)
    283 {
    284     static const xcb_protocol_request_t xcb_req = {
    285         /* count */ 2,
    286         /* ext */ &xcb_xf86dri_id,
    287         /* opcode */ XCB_XF86DRI_OPEN_CONNECTION,
    288         /* isvoid */ 0
    289     };
    290 
    291     struct iovec xcb_parts[4];
    292     xcb_xf86dri_open_connection_cookie_t xcb_ret;
    293     xcb_xf86dri_open_connection_request_t xcb_out;
    294 
    295     xcb_out.screen = screen;
    296 
    297     xcb_parts[2].iov_base = (char *) &xcb_out;
    298     xcb_parts[2].iov_len = sizeof(xcb_out);
    299     xcb_parts[3].iov_base = 0;
    300     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    301 
    302     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    303     return xcb_ret;
    304 }
    305 
    306 
    307 /*****************************************************************************
    308  **
    309  ** xcb_xf86dri_open_connection_cookie_t xcb_xf86dri_open_connection_unchecked
    310  **
    311  ** @param xcb_connection_t *c
    312  ** @param uint32_t          screen
    313  ** @returns xcb_xf86dri_open_connection_cookie_t
    314  **
    315  *****************************************************************************/
    316 
    317 xcb_xf86dri_open_connection_cookie_t
    318 xcb_xf86dri_open_connection_unchecked (xcb_connection_t *c  /**< */,
    319                                        uint32_t          screen  /**< */)
    320 {
    321     static const xcb_protocol_request_t xcb_req = {
    322         /* count */ 2,
    323         /* ext */ &xcb_xf86dri_id,
    324         /* opcode */ XCB_XF86DRI_OPEN_CONNECTION,
    325         /* isvoid */ 0
    326     };
    327 
    328     struct iovec xcb_parts[4];
    329     xcb_xf86dri_open_connection_cookie_t xcb_ret;
    330     xcb_xf86dri_open_connection_request_t xcb_out;
    331 
    332     xcb_out.screen = screen;
    333 
    334     xcb_parts[2].iov_base = (char *) &xcb_out;
    335     xcb_parts[2].iov_len = sizeof(xcb_out);
    336     xcb_parts[3].iov_base = 0;
    337     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    338 
    339     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    340     return xcb_ret;
    341 }
    342 
    343 
    344 /*****************************************************************************
    345  **
    346  ** char * xcb_xf86dri_open_connection_bus_id
    347  **
    348  ** @param const xcb_xf86dri_open_connection_reply_t *R
    349  ** @returns char *
    350  **
    351  *****************************************************************************/
    352 
    353 char *
    354 xcb_xf86dri_open_connection_bus_id (const xcb_xf86dri_open_connection_reply_t *R  /**< */)
    355 {
    356     return (char *) (R + 1);
    357 }
    358 
    359 
    360 /*****************************************************************************
    361  **
    362  ** int xcb_xf86dri_open_connection_bus_id_length
    363  **
    364  ** @param const xcb_xf86dri_open_connection_reply_t *R
    365  ** @returns int
    366  **
    367  *****************************************************************************/
    368 
    369 int
    370 xcb_xf86dri_open_connection_bus_id_length (const xcb_xf86dri_open_connection_reply_t *R  /**< */)
    371 {
    372     return R->bus_id_len;
    373 }
    374 
    375 
    376 /*****************************************************************************
    377  **
    378  ** xcb_generic_iterator_t xcb_xf86dri_open_connection_bus_id_end
    379  **
    380  ** @param const xcb_xf86dri_open_connection_reply_t *R
    381  ** @returns xcb_generic_iterator_t
    382  **
    383  *****************************************************************************/
    384 
    385 xcb_generic_iterator_t
    386 xcb_xf86dri_open_connection_bus_id_end (const xcb_xf86dri_open_connection_reply_t *R  /**< */)
    387 {
    388     xcb_generic_iterator_t i;
    389     i.data = ((char *) (R + 1)) + (R->bus_id_len);
    390     i.rem = 0;
    391     i.index = (char *) i.data - (char *) R;
    392     return i;
    393 }
    394 
    395 
    396 /*****************************************************************************
    397  **
    398  ** xcb_xf86dri_open_connection_reply_t * xcb_xf86dri_open_connection_reply
    399  **
    400  ** @param xcb_connection_t                      *c
    401  ** @param xcb_xf86dri_open_connection_cookie_t   cookie
    402  ** @param xcb_generic_error_t                  **e
    403  ** @returns xcb_xf86dri_open_connection_reply_t *
    404  **
    405  *****************************************************************************/
    406 
    407 xcb_xf86dri_open_connection_reply_t *
    408 xcb_xf86dri_open_connection_reply (xcb_connection_t                      *c  /**< */,
    409                                    xcb_xf86dri_open_connection_cookie_t   cookie  /**< */,
    410                                    xcb_generic_error_t                  **e  /**< */)
    411 {
    412     return (xcb_xf86dri_open_connection_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    413 }
    414 
    415 
    416 /*****************************************************************************
    417  **
    418  ** xcb_void_cookie_t xcb_xf86dri_close_connection_checked
    419  **
    420  ** @param xcb_connection_t *c
    421  ** @param uint32_t          screen
    422  ** @returns xcb_void_cookie_t
    423  **
    424  *****************************************************************************/
    425 
    426 xcb_void_cookie_t
    427 xcb_xf86dri_close_connection_checked (xcb_connection_t *c  /**< */,
    428                                       uint32_t          screen  /**< */)
    429 {
    430     static const xcb_protocol_request_t xcb_req = {
    431         /* count */ 2,
    432         /* ext */ &xcb_xf86dri_id,
    433         /* opcode */ XCB_XF86DRI_CLOSE_CONNECTION,
    434         /* isvoid */ 1
    435     };
    436 
    437     struct iovec xcb_parts[4];
    438     xcb_void_cookie_t xcb_ret;
    439     xcb_xf86dri_close_connection_request_t xcb_out;
    440 
    441     xcb_out.screen = screen;
    442 
    443     xcb_parts[2].iov_base = (char *) &xcb_out;
    444     xcb_parts[2].iov_len = sizeof(xcb_out);
    445     xcb_parts[3].iov_base = 0;
    446     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    447 
    448     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    449     return xcb_ret;
    450 }
    451 
    452 
    453 /*****************************************************************************
    454  **
    455  ** xcb_void_cookie_t xcb_xf86dri_close_connection
    456  **
    457  ** @param xcb_connection_t *c
    458  ** @param uint32_t          screen
    459  ** @returns xcb_void_cookie_t
    460  **
    461  *****************************************************************************/
    462 
    463 xcb_void_cookie_t
    464 xcb_xf86dri_close_connection (xcb_connection_t *c  /**< */,
    465                               uint32_t          screen  /**< */)
    466 {
    467     static const xcb_protocol_request_t xcb_req = {
    468         /* count */ 2,
    469         /* ext */ &xcb_xf86dri_id,
    470         /* opcode */ XCB_XF86DRI_CLOSE_CONNECTION,
    471         /* isvoid */ 1
    472     };
    473 
    474     struct iovec xcb_parts[4];
    475     xcb_void_cookie_t xcb_ret;
    476     xcb_xf86dri_close_connection_request_t xcb_out;
    477 
    478     xcb_out.screen = screen;
    479 
    480     xcb_parts[2].iov_base = (char *) &xcb_out;
    481     xcb_parts[2].iov_len = sizeof(xcb_out);
    482     xcb_parts[3].iov_base = 0;
    483     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    484 
    485     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    486     return xcb_ret;
    487 }
    488 
    489 int
    490 xcb_xf86dri_get_client_driver_name_sizeof (const void  *_buffer  /**< */)
    491 {
    492     char *xcb_tmp = (char *)_buffer;
    493     const xcb_xf86dri_get_client_driver_name_reply_t *_aux = (xcb_xf86dri_get_client_driver_name_reply_t *)_buffer;
    494     unsigned int xcb_buffer_len = 0;
    495     unsigned int xcb_block_len = 0;
    496     unsigned int xcb_pad = 0;
    497     unsigned int xcb_align_to;
    498 
    499 
    500     xcb_block_len += sizeof(xcb_xf86dri_get_client_driver_name_reply_t);
    501     xcb_tmp += xcb_block_len;
    502     /* client_driver_name */
    503     xcb_block_len += _aux->client_driver_name_len * sizeof(char);
    504     xcb_tmp += xcb_block_len;
    505     xcb_align_to = ALIGNOF(char);
    506     /* insert padding */
    507     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
    508     xcb_buffer_len += xcb_block_len + xcb_pad;
    509     if (0 != xcb_pad) {
    510         xcb_tmp += xcb_pad;
    511         xcb_pad = 0;
    512     }
    513     xcb_block_len = 0;
    514 
    515     return xcb_buffer_len;
    516 }
    517 
    518 
    519 /*****************************************************************************
    520  **
    521  ** xcb_xf86dri_get_client_driver_name_cookie_t xcb_xf86dri_get_client_driver_name
    522  **
    523  ** @param xcb_connection_t *c
    524  ** @param uint32_t          screen
    525  ** @returns xcb_xf86dri_get_client_driver_name_cookie_t
    526  **
    527  *****************************************************************************/
    528 
    529 xcb_xf86dri_get_client_driver_name_cookie_t
    530 xcb_xf86dri_get_client_driver_name (xcb_connection_t *c  /**< */,
    531                                     uint32_t          screen  /**< */)
    532 {
    533     static const xcb_protocol_request_t xcb_req = {
    534         /* count */ 2,
    535         /* ext */ &xcb_xf86dri_id,
    536         /* opcode */ XCB_XF86DRI_GET_CLIENT_DRIVER_NAME,
    537         /* isvoid */ 0
    538     };
    539 
    540     struct iovec xcb_parts[4];
    541     xcb_xf86dri_get_client_driver_name_cookie_t xcb_ret;
    542     xcb_xf86dri_get_client_driver_name_request_t xcb_out;
    543 
    544     xcb_out.screen = screen;
    545 
    546     xcb_parts[2].iov_base = (char *) &xcb_out;
    547     xcb_parts[2].iov_len = sizeof(xcb_out);
    548     xcb_parts[3].iov_base = 0;
    549     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    550 
    551     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    552     return xcb_ret;
    553 }
    554 
    555 
    556 /*****************************************************************************
    557  **
    558  ** xcb_xf86dri_get_client_driver_name_cookie_t xcb_xf86dri_get_client_driver_name_unchecked
    559  **
    560  ** @param xcb_connection_t *c
    561  ** @param uint32_t          screen
    562  ** @returns xcb_xf86dri_get_client_driver_name_cookie_t
    563  **
    564  *****************************************************************************/
    565 
    566 xcb_xf86dri_get_client_driver_name_cookie_t
    567 xcb_xf86dri_get_client_driver_name_unchecked (xcb_connection_t *c  /**< */,
    568                                               uint32_t          screen  /**< */)
    569 {
    570     static const xcb_protocol_request_t xcb_req = {
    571         /* count */ 2,
    572         /* ext */ &xcb_xf86dri_id,
    573         /* opcode */ XCB_XF86DRI_GET_CLIENT_DRIVER_NAME,
    574         /* isvoid */ 0
    575     };
    576 
    577     struct iovec xcb_parts[4];
    578     xcb_xf86dri_get_client_driver_name_cookie_t xcb_ret;
    579     xcb_xf86dri_get_client_driver_name_request_t xcb_out;
    580 
    581     xcb_out.screen = screen;
    582 
    583     xcb_parts[2].iov_base = (char *) &xcb_out;
    584     xcb_parts[2].iov_len = sizeof(xcb_out);
    585     xcb_parts[3].iov_base = 0;
    586     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    587 
    588     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    589     return xcb_ret;
    590 }
    591 
    592 
    593 /*****************************************************************************
    594  **
    595  ** char * xcb_xf86dri_get_client_driver_name_client_driver_name
    596  **
    597  ** @param const xcb_xf86dri_get_client_driver_name_reply_t *R
    598  ** @returns char *
    599  **
    600  *****************************************************************************/
    601 
    602 char *
    603 xcb_xf86dri_get_client_driver_name_client_driver_name (const xcb_xf86dri_get_client_driver_name_reply_t *R  /**< */)
    604 {
    605     return (char *) (R + 1);
    606 }
    607 
    608 
    609 /*****************************************************************************
    610  **
    611  ** int xcb_xf86dri_get_client_driver_name_client_driver_name_length
    612  **
    613  ** @param const xcb_xf86dri_get_client_driver_name_reply_t *R
    614  ** @returns int
    615  **
    616  *****************************************************************************/
    617 
    618 int
    619 xcb_xf86dri_get_client_driver_name_client_driver_name_length (const xcb_xf86dri_get_client_driver_name_reply_t *R  /**< */)
    620 {
    621     return R->client_driver_name_len;
    622 }
    623 
    624 
    625 /*****************************************************************************
    626  **
    627  ** xcb_generic_iterator_t xcb_xf86dri_get_client_driver_name_client_driver_name_end
    628  **
    629  ** @param const xcb_xf86dri_get_client_driver_name_reply_t *R
    630  ** @returns xcb_generic_iterator_t
    631  **
    632  *****************************************************************************/
    633 
    634 xcb_generic_iterator_t
    635 xcb_xf86dri_get_client_driver_name_client_driver_name_end (const xcb_xf86dri_get_client_driver_name_reply_t *R  /**< */)
    636 {
    637     xcb_generic_iterator_t i;
    638     i.data = ((char *) (R + 1)) + (R->client_driver_name_len);
    639     i.rem = 0;
    640     i.index = (char *) i.data - (char *) R;
    641     return i;
    642 }
    643 
    644 
    645 /*****************************************************************************
    646  **
    647  ** xcb_xf86dri_get_client_driver_name_reply_t * xcb_xf86dri_get_client_driver_name_reply
    648  **
    649  ** @param xcb_connection_t                             *c
    650  ** @param xcb_xf86dri_get_client_driver_name_cookie_t   cookie
    651  ** @param xcb_generic_error_t                         **e
    652  ** @returns xcb_xf86dri_get_client_driver_name_reply_t *
    653  **
    654  *****************************************************************************/
    655 
    656 xcb_xf86dri_get_client_driver_name_reply_t *
    657 xcb_xf86dri_get_client_driver_name_reply (xcb_connection_t                             *c  /**< */,
    658                                           xcb_xf86dri_get_client_driver_name_cookie_t   cookie  /**< */,
    659                                           xcb_generic_error_t                         **e  /**< */)
    660 {
    661     return (xcb_xf86dri_get_client_driver_name_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    662 }
    663 
    664 
    665 /*****************************************************************************
    666  **
    667  ** xcb_xf86dri_create_context_cookie_t xcb_xf86dri_create_context
    668  **
    669  ** @param xcb_connection_t *c
    670  ** @param uint32_t          screen
    671  ** @param uint32_t          visual
    672  ** @param uint32_t          context
    673  ** @returns xcb_xf86dri_create_context_cookie_t
    674  **
    675  *****************************************************************************/
    676 
    677 xcb_xf86dri_create_context_cookie_t
    678 xcb_xf86dri_create_context (xcb_connection_t *c  /**< */,
    679                             uint32_t          screen  /**< */,
    680                             uint32_t          visual  /**< */,
    681                             uint32_t          context  /**< */)
    682 {
    683     static const xcb_protocol_request_t xcb_req = {
    684         /* count */ 2,
    685         /* ext */ &xcb_xf86dri_id,
    686         /* opcode */ XCB_XF86DRI_CREATE_CONTEXT,
    687         /* isvoid */ 0
    688     };
    689 
    690     struct iovec xcb_parts[4];
    691     xcb_xf86dri_create_context_cookie_t xcb_ret;
    692     xcb_xf86dri_create_context_request_t xcb_out;
    693 
    694     xcb_out.screen = screen;
    695     xcb_out.visual = visual;
    696     xcb_out.context = context;
    697 
    698     xcb_parts[2].iov_base = (char *) &xcb_out;
    699     xcb_parts[2].iov_len = sizeof(xcb_out);
    700     xcb_parts[3].iov_base = 0;
    701     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    702 
    703     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    704     return xcb_ret;
    705 }
    706 
    707 
    708 /*****************************************************************************
    709  **
    710  ** xcb_xf86dri_create_context_cookie_t xcb_xf86dri_create_context_unchecked
    711  **
    712  ** @param xcb_connection_t *c
    713  ** @param uint32_t          screen
    714  ** @param uint32_t          visual
    715  ** @param uint32_t          context
    716  ** @returns xcb_xf86dri_create_context_cookie_t
    717  **
    718  *****************************************************************************/
    719 
    720 xcb_xf86dri_create_context_cookie_t
    721 xcb_xf86dri_create_context_unchecked (xcb_connection_t *c  /**< */,
    722                                       uint32_t          screen  /**< */,
    723                                       uint32_t          visual  /**< */,
    724                                       uint32_t          context  /**< */)
    725 {
    726     static const xcb_protocol_request_t xcb_req = {
    727         /* count */ 2,
    728         /* ext */ &xcb_xf86dri_id,
    729         /* opcode */ XCB_XF86DRI_CREATE_CONTEXT,
    730         /* isvoid */ 0
    731     };
    732 
    733     struct iovec xcb_parts[4];
    734     xcb_xf86dri_create_context_cookie_t xcb_ret;
    735     xcb_xf86dri_create_context_request_t xcb_out;
    736 
    737     xcb_out.screen = screen;
    738     xcb_out.visual = visual;
    739     xcb_out.context = context;
    740 
    741     xcb_parts[2].iov_base = (char *) &xcb_out;
    742     xcb_parts[2].iov_len = sizeof(xcb_out);
    743     xcb_parts[3].iov_base = 0;
    744     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    745 
    746     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    747     return xcb_ret;
    748 }
    749 
    750 
    751 /*****************************************************************************
    752  **
    753  ** xcb_xf86dri_create_context_reply_t * xcb_xf86dri_create_context_reply
    754  **
    755  ** @param xcb_connection_t                     *c
    756  ** @param xcb_xf86dri_create_context_cookie_t   cookie
    757  ** @param xcb_generic_error_t                 **e
    758  ** @returns xcb_xf86dri_create_context_reply_t *
    759  **
    760  *****************************************************************************/
    761 
    762 xcb_xf86dri_create_context_reply_t *
    763 xcb_xf86dri_create_context_reply (xcb_connection_t                     *c  /**< */,
    764                                   xcb_xf86dri_create_context_cookie_t   cookie  /**< */,
    765                                   xcb_generic_error_t                 **e  /**< */)
    766 {
    767     return (xcb_xf86dri_create_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    768 }
    769 
    770 
    771 /*****************************************************************************
    772  **
    773  ** xcb_void_cookie_t xcb_xf86dri_destroy_context_checked
    774  **
    775  ** @param xcb_connection_t *c
    776  ** @param uint32_t          screen
    777  ** @param uint32_t          context
    778  ** @returns xcb_void_cookie_t
    779  **
    780  *****************************************************************************/
    781 
    782 xcb_void_cookie_t
    783 xcb_xf86dri_destroy_context_checked (xcb_connection_t *c  /**< */,
    784                                      uint32_t          screen  /**< */,
    785                                      uint32_t          context  /**< */)
    786 {
    787     static const xcb_protocol_request_t xcb_req = {
    788         /* count */ 2,
    789         /* ext */ &xcb_xf86dri_id,
    790         /* opcode */ XCB_XF86DRI_DESTROY_CONTEXT,
    791         /* isvoid */ 1
    792     };
    793 
    794     struct iovec xcb_parts[4];
    795     xcb_void_cookie_t xcb_ret;
    796     xcb_xf86dri_destroy_context_request_t xcb_out;
    797 
    798     xcb_out.screen = screen;
    799     xcb_out.context = context;
    800 
    801     xcb_parts[2].iov_base = (char *) &xcb_out;
    802     xcb_parts[2].iov_len = sizeof(xcb_out);
    803     xcb_parts[3].iov_base = 0;
    804     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    805 
    806     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    807     return xcb_ret;
    808 }
    809 
    810 
    811 /*****************************************************************************
    812  **
    813  ** xcb_void_cookie_t xcb_xf86dri_destroy_context
    814  **
    815  ** @param xcb_connection_t *c
    816  ** @param uint32_t          screen
    817  ** @param uint32_t          context
    818  ** @returns xcb_void_cookie_t
    819  **
    820  *****************************************************************************/
    821 
    822 xcb_void_cookie_t
    823 xcb_xf86dri_destroy_context (xcb_connection_t *c  /**< */,
    824                              uint32_t          screen  /**< */,
    825                              uint32_t          context  /**< */)
    826 {
    827     static const xcb_protocol_request_t xcb_req = {
    828         /* count */ 2,
    829         /* ext */ &xcb_xf86dri_id,
    830         /* opcode */ XCB_XF86DRI_DESTROY_CONTEXT,
    831         /* isvoid */ 1
    832     };
    833 
    834     struct iovec xcb_parts[4];
    835     xcb_void_cookie_t xcb_ret;
    836     xcb_xf86dri_destroy_context_request_t xcb_out;
    837 
    838     xcb_out.screen = screen;
    839     xcb_out.context = context;
    840 
    841     xcb_parts[2].iov_base = (char *) &xcb_out;
    842     xcb_parts[2].iov_len = sizeof(xcb_out);
    843     xcb_parts[3].iov_base = 0;
    844     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    845 
    846     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    847     return xcb_ret;
    848 }
    849 
    850 
    851 /*****************************************************************************
    852  **
    853  ** xcb_xf86dri_create_drawable_cookie_t xcb_xf86dri_create_drawable
    854  **
    855  ** @param xcb_connection_t *c
    856  ** @param uint32_t          screen
    857  ** @param uint32_t          drawable
    858  ** @returns xcb_xf86dri_create_drawable_cookie_t
    859  **
    860  *****************************************************************************/
    861 
    862 xcb_xf86dri_create_drawable_cookie_t
    863 xcb_xf86dri_create_drawable (xcb_connection_t *c  /**< */,
    864                              uint32_t          screen  /**< */,
    865                              uint32_t          drawable  /**< */)
    866 {
    867     static const xcb_protocol_request_t xcb_req = {
    868         /* count */ 2,
    869         /* ext */ &xcb_xf86dri_id,
    870         /* opcode */ XCB_XF86DRI_CREATE_DRAWABLE,
    871         /* isvoid */ 0
    872     };
    873 
    874     struct iovec xcb_parts[4];
    875     xcb_xf86dri_create_drawable_cookie_t xcb_ret;
    876     xcb_xf86dri_create_drawable_request_t xcb_out;
    877 
    878     xcb_out.screen = screen;
    879     xcb_out.drawable = drawable;
    880 
    881     xcb_parts[2].iov_base = (char *) &xcb_out;
    882     xcb_parts[2].iov_len = sizeof(xcb_out);
    883     xcb_parts[3].iov_base = 0;
    884     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    885 
    886     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    887     return xcb_ret;
    888 }
    889 
    890 
    891 /*****************************************************************************
    892  **
    893  ** xcb_xf86dri_create_drawable_cookie_t xcb_xf86dri_create_drawable_unchecked
    894  **
    895  ** @param xcb_connection_t *c
    896  ** @param uint32_t          screen
    897  ** @param uint32_t          drawable
    898  ** @returns xcb_xf86dri_create_drawable_cookie_t
    899  **
    900  *****************************************************************************/
    901 
    902 xcb_xf86dri_create_drawable_cookie_t
    903 xcb_xf86dri_create_drawable_unchecked (xcb_connection_t *c  /**< */,
    904                                        uint32_t          screen  /**< */,
    905                                        uint32_t          drawable  /**< */)
    906 {
    907     static const xcb_protocol_request_t xcb_req = {
    908         /* count */ 2,
    909         /* ext */ &xcb_xf86dri_id,
    910         /* opcode */ XCB_XF86DRI_CREATE_DRAWABLE,
    911         /* isvoid */ 0
    912     };
    913 
    914     struct iovec xcb_parts[4];
    915     xcb_xf86dri_create_drawable_cookie_t xcb_ret;
    916     xcb_xf86dri_create_drawable_request_t xcb_out;
    917 
    918     xcb_out.screen = screen;
    919     xcb_out.drawable = drawable;
    920 
    921     xcb_parts[2].iov_base = (char *) &xcb_out;
    922     xcb_parts[2].iov_len = sizeof(xcb_out);
    923     xcb_parts[3].iov_base = 0;
    924     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    925 
    926     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    927     return xcb_ret;
    928 }
    929 
    930 
    931 /*****************************************************************************
    932  **
    933  ** xcb_xf86dri_create_drawable_reply_t * xcb_xf86dri_create_drawable_reply
    934  **
    935  ** @param xcb_connection_t                      *c
    936  ** @param xcb_xf86dri_create_drawable_cookie_t   cookie
    937  ** @param xcb_generic_error_t                  **e
    938  ** @returns xcb_xf86dri_create_drawable_reply_t *
    939  **
    940  *****************************************************************************/
    941 
    942 xcb_xf86dri_create_drawable_reply_t *
    943 xcb_xf86dri_create_drawable_reply (xcb_connection_t                      *c  /**< */,
    944                                    xcb_xf86dri_create_drawable_cookie_t   cookie  /**< */,
    945                                    xcb_generic_error_t                  **e  /**< */)
    946 {
    947     return (xcb_xf86dri_create_drawable_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    948 }
    949 
    950 
    951 /*****************************************************************************
    952  **
    953  ** xcb_void_cookie_t xcb_xf86dri_destroy_drawable_checked
    954  **
    955  ** @param xcb_connection_t *c
    956  ** @param uint32_t          screen
    957  ** @param uint32_t          drawable
    958  ** @returns xcb_void_cookie_t
    959  **
    960  *****************************************************************************/
    961 
    962 xcb_void_cookie_t
    963 xcb_xf86dri_destroy_drawable_checked (xcb_connection_t *c  /**< */,
    964                                       uint32_t          screen  /**< */,
    965                                       uint32_t          drawable  /**< */)
    966 {
    967     static const xcb_protocol_request_t xcb_req = {
    968         /* count */ 2,
    969         /* ext */ &xcb_xf86dri_id,
    970         /* opcode */ XCB_XF86DRI_DESTROY_DRAWABLE,
    971         /* isvoid */ 1
    972     };
    973 
    974     struct iovec xcb_parts[4];
    975     xcb_void_cookie_t xcb_ret;
    976     xcb_xf86dri_destroy_drawable_request_t xcb_out;
    977 
    978     xcb_out.screen = screen;
    979     xcb_out.drawable = drawable;
    980 
    981     xcb_parts[2].iov_base = (char *) &xcb_out;
    982     xcb_parts[2].iov_len = sizeof(xcb_out);
    983     xcb_parts[3].iov_base = 0;
    984     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    985 
    986     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    987     return xcb_ret;
    988 }
    989 
    990 
    991 /*****************************************************************************
    992  **
    993  ** xcb_void_cookie_t xcb_xf86dri_destroy_drawable
    994  **
    995  ** @param xcb_connection_t *c
    996  ** @param uint32_t          screen
    997  ** @param uint32_t          drawable
    998  ** @returns xcb_void_cookie_t
    999  **
   1000  *****************************************************************************/
   1001 
   1002 xcb_void_cookie_t
   1003 xcb_xf86dri_destroy_drawable (xcb_connection_t *c  /**< */,
   1004                               uint32_t          screen  /**< */,
   1005                               uint32_t          drawable  /**< */)
   1006 {
   1007     static const xcb_protocol_request_t xcb_req = {
   1008         /* count */ 2,
   1009         /* ext */ &xcb_xf86dri_id,
   1010         /* opcode */ XCB_XF86DRI_DESTROY_DRAWABLE,
   1011         /* isvoid */ 1
   1012     };
   1013 
   1014     struct iovec xcb_parts[4];
   1015     xcb_void_cookie_t xcb_ret;
   1016     xcb_xf86dri_destroy_drawable_request_t xcb_out;
   1017 
   1018     xcb_out.screen = screen;
   1019     xcb_out.drawable = drawable;
   1020 
   1021     xcb_parts[2].iov_base = (char *) &xcb_out;
   1022     xcb_parts[2].iov_len = sizeof(xcb_out);
   1023     xcb_parts[3].iov_base = 0;
   1024     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1025 
   1026     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1027     return xcb_ret;
   1028 }
   1029 
   1030 int
   1031 xcb_xf86dri_get_drawable_info_sizeof (const void  *_buffer  /**< */)
   1032 {
   1033     char *xcb_tmp = (char *)_buffer;
   1034     const xcb_xf86dri_get_drawable_info_reply_t *_aux = (xcb_xf86dri_get_drawable_info_reply_t *)_buffer;
   1035     unsigned int xcb_buffer_len = 0;
   1036     unsigned int xcb_block_len = 0;
   1037     unsigned int xcb_pad = 0;
   1038     unsigned int xcb_align_to;
   1039 
   1040 
   1041     xcb_block_len += sizeof(xcb_xf86dri_get_drawable_info_reply_t);
   1042     xcb_tmp += xcb_block_len;
   1043     /* clip_rects */
   1044     xcb_block_len += _aux->num_clip_rects * sizeof(xcb_xf86dri_drm_clip_rect_t);
   1045     xcb_tmp += xcb_block_len;
   1046     xcb_align_to = ALIGNOF(xcb_xf86dri_drm_clip_rect_t);
   1047     /* insert padding */
   1048     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
   1049     xcb_buffer_len += xcb_block_len + xcb_pad;
   1050     if (0 != xcb_pad) {
   1051         xcb_tmp += xcb_pad;
   1052         xcb_pad = 0;
   1053     }
   1054     xcb_block_len = 0;
   1055     /* back_clip_rects */
   1056     xcb_block_len += _aux->num_back_clip_rects * sizeof(xcb_xf86dri_drm_clip_rect_t);
   1057     xcb_tmp += xcb_block_len;
   1058     xcb_align_to = ALIGNOF(xcb_xf86dri_drm_clip_rect_t);
   1059     /* insert padding */
   1060     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
   1061     xcb_buffer_len += xcb_block_len + xcb_pad;
   1062     if (0 != xcb_pad) {
   1063         xcb_tmp += xcb_pad;
   1064         xcb_pad = 0;
   1065     }
   1066     xcb_block_len = 0;
   1067 
   1068     return xcb_buffer_len;
   1069 }
   1070 
   1071 
   1072 /*****************************************************************************
   1073  **
   1074  ** xcb_xf86dri_get_drawable_info_cookie_t xcb_xf86dri_get_drawable_info
   1075  **
   1076  ** @param xcb_connection_t *c
   1077  ** @param uint32_t          screen
   1078  ** @param uint32_t          drawable
   1079  ** @returns xcb_xf86dri_get_drawable_info_cookie_t
   1080  **
   1081  *****************************************************************************/
   1082 
   1083 xcb_xf86dri_get_drawable_info_cookie_t
   1084 xcb_xf86dri_get_drawable_info (xcb_connection_t *c  /**< */,
   1085                                uint32_t          screen  /**< */,
   1086                                uint32_t          drawable  /**< */)
   1087 {
   1088     static const xcb_protocol_request_t xcb_req = {
   1089         /* count */ 2,
   1090         /* ext */ &xcb_xf86dri_id,
   1091         /* opcode */ XCB_XF86DRI_GET_DRAWABLE_INFO,
   1092         /* isvoid */ 0
   1093     };
   1094 
   1095     struct iovec xcb_parts[4];
   1096     xcb_xf86dri_get_drawable_info_cookie_t xcb_ret;
   1097     xcb_xf86dri_get_drawable_info_request_t xcb_out;
   1098 
   1099     xcb_out.screen = screen;
   1100     xcb_out.drawable = drawable;
   1101 
   1102     xcb_parts[2].iov_base = (char *) &xcb_out;
   1103     xcb_parts[2].iov_len = sizeof(xcb_out);
   1104     xcb_parts[3].iov_base = 0;
   1105     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1106 
   1107     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1108     return xcb_ret;
   1109 }
   1110 
   1111 
   1112 /*****************************************************************************
   1113  **
   1114  ** xcb_xf86dri_get_drawable_info_cookie_t xcb_xf86dri_get_drawable_info_unchecked
   1115  **
   1116  ** @param xcb_connection_t *c
   1117  ** @param uint32_t          screen
   1118  ** @param uint32_t          drawable
   1119  ** @returns xcb_xf86dri_get_drawable_info_cookie_t
   1120  **
   1121  *****************************************************************************/
   1122 
   1123 xcb_xf86dri_get_drawable_info_cookie_t
   1124 xcb_xf86dri_get_drawable_info_unchecked (xcb_connection_t *c  /**< */,
   1125                                          uint32_t          screen  /**< */,
   1126                                          uint32_t          drawable  /**< */)
   1127 {
   1128     static const xcb_protocol_request_t xcb_req = {
   1129         /* count */ 2,
   1130         /* ext */ &xcb_xf86dri_id,
   1131         /* opcode */ XCB_XF86DRI_GET_DRAWABLE_INFO,
   1132         /* isvoid */ 0
   1133     };
   1134 
   1135     struct iovec xcb_parts[4];
   1136     xcb_xf86dri_get_drawable_info_cookie_t xcb_ret;
   1137     xcb_xf86dri_get_drawable_info_request_t xcb_out;
   1138 
   1139     xcb_out.screen = screen;
   1140     xcb_out.drawable = drawable;
   1141 
   1142     xcb_parts[2].iov_base = (char *) &xcb_out;
   1143     xcb_parts[2].iov_len = sizeof(xcb_out);
   1144     xcb_parts[3].iov_base = 0;
   1145     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1146 
   1147     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1148     return xcb_ret;
   1149 }
   1150 
   1151 
   1152 /*****************************************************************************
   1153  **
   1154  ** xcb_xf86dri_drm_clip_rect_t * xcb_xf86dri_get_drawable_info_clip_rects
   1155  **
   1156  ** @param const xcb_xf86dri_get_drawable_info_reply_t *R
   1157  ** @returns xcb_xf86dri_drm_clip_rect_t *
   1158  **
   1159  *****************************************************************************/
   1160 
   1161 xcb_xf86dri_drm_clip_rect_t *
   1162 xcb_xf86dri_get_drawable_info_clip_rects (const xcb_xf86dri_get_drawable_info_reply_t *R  /**< */)
   1163 {
   1164     return (xcb_xf86dri_drm_clip_rect_t *) (R + 1);
   1165 }
   1166 
   1167 
   1168 /*****************************************************************************
   1169  **
   1170  ** int xcb_xf86dri_get_drawable_info_clip_rects_length
   1171  **
   1172  ** @param const xcb_xf86dri_get_drawable_info_reply_t *R
   1173  ** @returns int
   1174  **
   1175  *****************************************************************************/
   1176 
   1177 int
   1178 xcb_xf86dri_get_drawable_info_clip_rects_length (const xcb_xf86dri_get_drawable_info_reply_t *R  /**< */)
   1179 {
   1180     return R->num_clip_rects;
   1181 }
   1182 
   1183 
   1184 /*****************************************************************************
   1185  **
   1186  ** xcb_xf86dri_drm_clip_rect_iterator_t xcb_xf86dri_get_drawable_info_clip_rects_iterator
   1187  **
   1188  ** @param const xcb_xf86dri_get_drawable_info_reply_t *R
   1189  ** @returns xcb_xf86dri_drm_clip_rect_iterator_t
   1190  **
   1191  *****************************************************************************/
   1192 
   1193 xcb_xf86dri_drm_clip_rect_iterator_t
   1194 xcb_xf86dri_get_drawable_info_clip_rects_iterator (const xcb_xf86dri_get_drawable_info_reply_t *R  /**< */)
   1195 {
   1196     xcb_xf86dri_drm_clip_rect_iterator_t i;
   1197     i.data = (xcb_xf86dri_drm_clip_rect_t *) (R + 1);
   1198     i.rem = R->num_clip_rects;
   1199     i.index = (char *) i.data - (char *) R;
   1200     return i;
   1201 }
   1202 
   1203 
   1204 /*****************************************************************************
   1205  **
   1206  ** xcb_xf86dri_drm_clip_rect_t * xcb_xf86dri_get_drawable_info_back_clip_rects
   1207  **
   1208  ** @param const xcb_xf86dri_get_drawable_info_reply_t *R
   1209  ** @returns xcb_xf86dri_drm_clip_rect_t *
   1210  **
   1211  *****************************************************************************/
   1212 
   1213 xcb_xf86dri_drm_clip_rect_t *
   1214 xcb_xf86dri_get_drawable_info_back_clip_rects (const xcb_xf86dri_get_drawable_info_reply_t *R  /**< */)
   1215 {
   1216     xcb_generic_iterator_t prev = xcb_xf86dri_drm_clip_rect_end(xcb_xf86dri_get_drawable_info_clip_rects_iterator(R));
   1217     return (xcb_xf86dri_drm_clip_rect_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xf86dri_drm_clip_rect_t, prev.index) + 0);
   1218 }
   1219 
   1220 
   1221 /*****************************************************************************
   1222  **
   1223  ** int xcb_xf86dri_get_drawable_info_back_clip_rects_length
   1224  **
   1225  ** @param const xcb_xf86dri_get_drawable_info_reply_t *R
   1226  ** @returns int
   1227  **
   1228  *****************************************************************************/
   1229 
   1230 int
   1231 xcb_xf86dri_get_drawable_info_back_clip_rects_length (const xcb_xf86dri_get_drawable_info_reply_t *R  /**< */)
   1232 {
   1233     return R->num_back_clip_rects;
   1234 }
   1235 
   1236 
   1237 /*****************************************************************************
   1238  **
   1239  ** xcb_xf86dri_drm_clip_rect_iterator_t xcb_xf86dri_get_drawable_info_back_clip_rects_iterator
   1240  **
   1241  ** @param const xcb_xf86dri_get_drawable_info_reply_t *R
   1242  ** @returns xcb_xf86dri_drm_clip_rect_iterator_t
   1243  **
   1244  *****************************************************************************/
   1245 
   1246 xcb_xf86dri_drm_clip_rect_iterator_t
   1247 xcb_xf86dri_get_drawable_info_back_clip_rects_iterator (const xcb_xf86dri_get_drawable_info_reply_t *R  /**< */)
   1248 {
   1249     xcb_xf86dri_drm_clip_rect_iterator_t i;
   1250     xcb_generic_iterator_t prev = xcb_xf86dri_drm_clip_rect_end(xcb_xf86dri_get_drawable_info_clip_rects_iterator(R));
   1251     i.data = (xcb_xf86dri_drm_clip_rect_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xf86dri_drm_clip_rect_t, prev.index));
   1252     i.rem = R->num_back_clip_rects;
   1253     i.index = (char *) i.data - (char *) R;
   1254     return i;
   1255 }
   1256 
   1257 
   1258 /*****************************************************************************
   1259  **
   1260  ** xcb_xf86dri_get_drawable_info_reply_t * xcb_xf86dri_get_drawable_info_reply
   1261  **
   1262  ** @param xcb_connection_t                        *c
   1263  ** @param xcb_xf86dri_get_drawable_info_cookie_t   cookie
   1264  ** @param xcb_generic_error_t                    **e
   1265  ** @returns xcb_xf86dri_get_drawable_info_reply_t *
   1266  **
   1267  *****************************************************************************/
   1268 
   1269 xcb_xf86dri_get_drawable_info_reply_t *
   1270 xcb_xf86dri_get_drawable_info_reply (xcb_connection_t                        *c  /**< */,
   1271                                      xcb_xf86dri_get_drawable_info_cookie_t   cookie  /**< */,
   1272                                      xcb_generic_error_t                    **e  /**< */)
   1273 {
   1274     return (xcb_xf86dri_get_drawable_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
   1275 }
   1276 
   1277 int
   1278 xcb_xf86dri_get_device_info_sizeof (const void  *_buffer  /**< */)
   1279 {
   1280     char *xcb_tmp = (char *)_buffer;
   1281     const xcb_xf86dri_get_device_info_reply_t *_aux = (xcb_xf86dri_get_device_info_reply_t *)_buffer;
   1282     unsigned int xcb_buffer_len = 0;
   1283     unsigned int xcb_block_len = 0;
   1284     unsigned int xcb_pad = 0;
   1285     unsigned int xcb_align_to;
   1286 
   1287 
   1288     xcb_block_len += sizeof(xcb_xf86dri_get_device_info_reply_t);
   1289     xcb_tmp += xcb_block_len;
   1290     /* device_private */
   1291     xcb_block_len += _aux->device_private_size * sizeof(uint32_t);
   1292     xcb_tmp += xcb_block_len;
   1293     xcb_align_to = ALIGNOF(uint32_t);
   1294     /* insert padding */
   1295     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
   1296     xcb_buffer_len += xcb_block_len + xcb_pad;
   1297     if (0 != xcb_pad) {
   1298         xcb_tmp += xcb_pad;
   1299         xcb_pad = 0;
   1300     }
   1301     xcb_block_len = 0;
   1302 
   1303     return xcb_buffer_len;
   1304 }
   1305 
   1306 
   1307 /*****************************************************************************
   1308  **
   1309  ** xcb_xf86dri_get_device_info_cookie_t xcb_xf86dri_get_device_info
   1310  **
   1311  ** @param xcb_connection_t *c
   1312  ** @param uint32_t          screen
   1313  ** @returns xcb_xf86dri_get_device_info_cookie_t
   1314  **
   1315  *****************************************************************************/
   1316 
   1317 xcb_xf86dri_get_device_info_cookie_t
   1318 xcb_xf86dri_get_device_info (xcb_connection_t *c  /**< */,
   1319                              uint32_t          screen  /**< */)
   1320 {
   1321     static const xcb_protocol_request_t xcb_req = {
   1322         /* count */ 2,
   1323         /* ext */ &xcb_xf86dri_id,
   1324         /* opcode */ XCB_XF86DRI_GET_DEVICE_INFO,
   1325         /* isvoid */ 0
   1326     };
   1327 
   1328     struct iovec xcb_parts[4];
   1329     xcb_xf86dri_get_device_info_cookie_t xcb_ret;
   1330     xcb_xf86dri_get_device_info_request_t xcb_out;
   1331 
   1332     xcb_out.screen = screen;
   1333 
   1334     xcb_parts[2].iov_base = (char *) &xcb_out;
   1335     xcb_parts[2].iov_len = sizeof(xcb_out);
   1336     xcb_parts[3].iov_base = 0;
   1337     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1338 
   1339     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1340     return xcb_ret;
   1341 }
   1342 
   1343 
   1344 /*****************************************************************************
   1345  **
   1346  ** xcb_xf86dri_get_device_info_cookie_t xcb_xf86dri_get_device_info_unchecked
   1347  **
   1348  ** @param xcb_connection_t *c
   1349  ** @param uint32_t          screen
   1350  ** @returns xcb_xf86dri_get_device_info_cookie_t
   1351  **
   1352  *****************************************************************************/
   1353 
   1354 xcb_xf86dri_get_device_info_cookie_t
   1355 xcb_xf86dri_get_device_info_unchecked (xcb_connection_t *c  /**< */,
   1356                                        uint32_t          screen  /**< */)
   1357 {
   1358     static const xcb_protocol_request_t xcb_req = {
   1359         /* count */ 2,
   1360         /* ext */ &xcb_xf86dri_id,
   1361         /* opcode */ XCB_XF86DRI_GET_DEVICE_INFO,
   1362         /* isvoid */ 0
   1363     };
   1364 
   1365     struct iovec xcb_parts[4];
   1366     xcb_xf86dri_get_device_info_cookie_t xcb_ret;
   1367     xcb_xf86dri_get_device_info_request_t xcb_out;
   1368 
   1369     xcb_out.screen = screen;
   1370 
   1371     xcb_parts[2].iov_base = (char *) &xcb_out;
   1372     xcb_parts[2].iov_len = sizeof(xcb_out);
   1373     xcb_parts[3].iov_base = 0;
   1374     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1375 
   1376     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1377     return xcb_ret;
   1378 }
   1379 
   1380 
   1381 /*****************************************************************************
   1382  **
   1383  ** uint32_t * xcb_xf86dri_get_device_info_device_private
   1384  **
   1385  ** @param const xcb_xf86dri_get_device_info_reply_t *R
   1386  ** @returns uint32_t *
   1387  **
   1388  *****************************************************************************/
   1389 
   1390 uint32_t *
   1391 xcb_xf86dri_get_device_info_device_private (const xcb_xf86dri_get_device_info_reply_t *R  /**< */)
   1392 {
   1393     return (uint32_t *) (R + 1);
   1394 }
   1395 
   1396 
   1397 /*****************************************************************************
   1398  **
   1399  ** int xcb_xf86dri_get_device_info_device_private_length
   1400  **
   1401  ** @param const xcb_xf86dri_get_device_info_reply_t *R
   1402  ** @returns int
   1403  **
   1404  *****************************************************************************/
   1405 
   1406 int
   1407 xcb_xf86dri_get_device_info_device_private_length (const xcb_xf86dri_get_device_info_reply_t *R  /**< */)
   1408 {
   1409     return R->device_private_size;
   1410 }
   1411 
   1412 
   1413 /*****************************************************************************
   1414  **
   1415  ** xcb_generic_iterator_t xcb_xf86dri_get_device_info_device_private_end
   1416  **
   1417  ** @param const xcb_xf86dri_get_device_info_reply_t *R
   1418  ** @returns xcb_generic_iterator_t
   1419  **
   1420  *****************************************************************************/
   1421 
   1422 xcb_generic_iterator_t
   1423 xcb_xf86dri_get_device_info_device_private_end (const xcb_xf86dri_get_device_info_reply_t *R  /**< */)
   1424 {
   1425     xcb_generic_iterator_t i;
   1426     i.data = ((uint32_t *) (R + 1)) + (R->device_private_size);
   1427     i.rem = 0;
   1428     i.index = (char *) i.data - (char *) R;
   1429     return i;
   1430 }
   1431 
   1432 
   1433 /*****************************************************************************
   1434  **
   1435  ** xcb_xf86dri_get_device_info_reply_t * xcb_xf86dri_get_device_info_reply
   1436  **
   1437  ** @param xcb_connection_t                      *c
   1438  ** @param xcb_xf86dri_get_device_info_cookie_t   cookie
   1439  ** @param xcb_generic_error_t                  **e
   1440  ** @returns xcb_xf86dri_get_device_info_reply_t *
   1441  **
   1442  *****************************************************************************/
   1443 
   1444 xcb_xf86dri_get_device_info_reply_t *
   1445 xcb_xf86dri_get_device_info_reply (xcb_connection_t                      *c  /**< */,
   1446                                    xcb_xf86dri_get_device_info_cookie_t   cookie  /**< */,
   1447                                    xcb_generic_error_t                  **e  /**< */)
   1448 {
   1449     return (xcb_xf86dri_get_device_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
   1450 }
   1451 
   1452 
   1453 /*****************************************************************************
   1454  **
   1455  ** xcb_xf86dri_auth_connection_cookie_t xcb_xf86dri_auth_connection
   1456  **
   1457  ** @param xcb_connection_t *c
   1458  ** @param uint32_t          screen
   1459  ** @param uint32_t          magic
   1460  ** @returns xcb_xf86dri_auth_connection_cookie_t
   1461  **
   1462  *****************************************************************************/
   1463 
   1464 xcb_xf86dri_auth_connection_cookie_t
   1465 xcb_xf86dri_auth_connection (xcb_connection_t *c  /**< */,
   1466                              uint32_t          screen  /**< */,
   1467                              uint32_t          magic  /**< */)
   1468 {
   1469     static const xcb_protocol_request_t xcb_req = {
   1470         /* count */ 2,
   1471         /* ext */ &xcb_xf86dri_id,
   1472         /* opcode */ XCB_XF86DRI_AUTH_CONNECTION,
   1473         /* isvoid */ 0
   1474     };
   1475 
   1476     struct iovec xcb_parts[4];
   1477     xcb_xf86dri_auth_connection_cookie_t xcb_ret;
   1478     xcb_xf86dri_auth_connection_request_t xcb_out;
   1479 
   1480     xcb_out.screen = screen;
   1481     xcb_out.magic = magic;
   1482 
   1483     xcb_parts[2].iov_base = (char *) &xcb_out;
   1484     xcb_parts[2].iov_len = sizeof(xcb_out);
   1485     xcb_parts[3].iov_base = 0;
   1486     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1487 
   1488     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1489     return xcb_ret;
   1490 }
   1491 
   1492 
   1493 /*****************************************************************************
   1494  **
   1495  ** xcb_xf86dri_auth_connection_cookie_t xcb_xf86dri_auth_connection_unchecked
   1496  **
   1497  ** @param xcb_connection_t *c
   1498  ** @param uint32_t          screen
   1499  ** @param uint32_t          magic
   1500  ** @returns xcb_xf86dri_auth_connection_cookie_t
   1501  **
   1502  *****************************************************************************/
   1503 
   1504 xcb_xf86dri_auth_connection_cookie_t
   1505 xcb_xf86dri_auth_connection_unchecked (xcb_connection_t *c  /**< */,
   1506                                        uint32_t          screen  /**< */,
   1507                                        uint32_t          magic  /**< */)
   1508 {
   1509     static const xcb_protocol_request_t xcb_req = {
   1510         /* count */ 2,
   1511         /* ext */ &xcb_xf86dri_id,
   1512         /* opcode */ XCB_XF86DRI_AUTH_CONNECTION,
   1513         /* isvoid */ 0
   1514     };
   1515 
   1516     struct iovec xcb_parts[4];
   1517     xcb_xf86dri_auth_connection_cookie_t xcb_ret;
   1518     xcb_xf86dri_auth_connection_request_t xcb_out;
   1519 
   1520     xcb_out.screen = screen;
   1521     xcb_out.magic = magic;
   1522 
   1523     xcb_parts[2].iov_base = (char *) &xcb_out;
   1524     xcb_parts[2].iov_len = sizeof(xcb_out);
   1525     xcb_parts[3].iov_base = 0;
   1526     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1527 
   1528     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1529     return xcb_ret;
   1530 }
   1531 
   1532 
   1533 /*****************************************************************************
   1534  **
   1535  ** xcb_xf86dri_auth_connection_reply_t * xcb_xf86dri_auth_connection_reply
   1536  **
   1537  ** @param xcb_connection_t                      *c
   1538  ** @param xcb_xf86dri_auth_connection_cookie_t   cookie
   1539  ** @param xcb_generic_error_t                  **e
   1540  ** @returns xcb_xf86dri_auth_connection_reply_t *
   1541  **
   1542  *****************************************************************************/
   1543 
   1544 xcb_xf86dri_auth_connection_reply_t *
   1545 xcb_xf86dri_auth_connection_reply (xcb_connection_t                      *c  /**< */,
   1546                                    xcb_xf86dri_auth_connection_cookie_t   cookie  /**< */,
   1547                                    xcb_generic_error_t                  **e  /**< */)
   1548 {
   1549     return (xcb_xf86dri_auth_connection_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
   1550 }
   1551 
   1552