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