Home | History | Annotate | Line # | Download | only in files
xf86dri.h revision 1.3.2.1
      1 /*
      2  * This file generated automatically from xf86dri.xml by c_client.py.
      3  * Edit at your peril.
      4  */
      5 
      6 /**
      7  * @defgroup XCB_XF86Dri_API XCB XF86Dri API
      8  * @brief XF86Dri XCB Protocol Implementation.
      9  * @{
     10  **/
     11 
     12 #ifndef __XF86DRI_H
     13 #define __XF86DRI_H
     14 
     15 #include "xcb.h"
     16 
     17 #ifdef __cplusplus
     18 extern "C" {
     19 #endif
     20 
     21 #define XCB_XF86DRI_MAJOR_VERSION 4
     22 #define XCB_XF86DRI_MINOR_VERSION 1
     23 
     24 extern xcb_extension_t xcb_xf86dri_id;
     25 
     26 /**
     27  * @brief xcb_xf86dri_drm_clip_rect_t
     28  **/
     29 typedef struct xcb_xf86dri_drm_clip_rect_t {
     30     int16_t x1;
     31     int16_t y1;
     32     int16_t x2;
     33     int16_t x3;
     34 } xcb_xf86dri_drm_clip_rect_t;
     35 
     36 /**
     37  * @brief xcb_xf86dri_drm_clip_rect_iterator_t
     38  **/
     39 typedef struct xcb_xf86dri_drm_clip_rect_iterator_t {
     40     xcb_xf86dri_drm_clip_rect_t *data;
     41     int                          rem;
     42     int                          index;
     43 } xcb_xf86dri_drm_clip_rect_iterator_t;
     44 
     45 /**
     46  * @brief xcb_xf86dri_query_version_cookie_t
     47  **/
     48 typedef struct xcb_xf86dri_query_version_cookie_t {
     49     unsigned int sequence;
     50 } xcb_xf86dri_query_version_cookie_t;
     51 
     52 /** Opcode for xcb_xf86dri_query_version. */
     53 #define XCB_XF86DRI_QUERY_VERSION 0
     54 
     55 /**
     56  * @brief xcb_xf86dri_query_version_request_t
     57  **/
     58 typedef struct xcb_xf86dri_query_version_request_t {
     59     uint8_t  major_opcode;
     60     uint8_t  minor_opcode;
     61     uint16_t length;
     62 } xcb_xf86dri_query_version_request_t;
     63 
     64 /**
     65  * @brief xcb_xf86dri_query_version_reply_t
     66  **/
     67 typedef struct xcb_xf86dri_query_version_reply_t {
     68     uint8_t  response_type;
     69     uint8_t  pad0;
     70     uint16_t sequence;
     71     uint32_t length;
     72     uint16_t dri_major_version;
     73     uint16_t dri_minor_version;
     74     uint32_t dri_minor_patch;
     75 } xcb_xf86dri_query_version_reply_t;
     76 
     77 /**
     78  * @brief xcb_xf86dri_query_direct_rendering_capable_cookie_t
     79  **/
     80 typedef struct xcb_xf86dri_query_direct_rendering_capable_cookie_t {
     81     unsigned int sequence;
     82 } xcb_xf86dri_query_direct_rendering_capable_cookie_t;
     83 
     84 /** Opcode for xcb_xf86dri_query_direct_rendering_capable. */
     85 #define XCB_XF86DRI_QUERY_DIRECT_RENDERING_CAPABLE 1
     86 
     87 /**
     88  * @brief xcb_xf86dri_query_direct_rendering_capable_request_t
     89  **/
     90 typedef struct xcb_xf86dri_query_direct_rendering_capable_request_t {
     91     uint8_t  major_opcode;
     92     uint8_t  minor_opcode;
     93     uint16_t length;
     94     uint32_t screen;
     95 } xcb_xf86dri_query_direct_rendering_capable_request_t;
     96 
     97 /**
     98  * @brief xcb_xf86dri_query_direct_rendering_capable_reply_t
     99  **/
    100 typedef struct xcb_xf86dri_query_direct_rendering_capable_reply_t {
    101     uint8_t  response_type;
    102     uint8_t  pad0;
    103     uint16_t sequence;
    104     uint32_t length;
    105     uint8_t  is_capable;
    106 } xcb_xf86dri_query_direct_rendering_capable_reply_t;
    107 
    108 /**
    109  * @brief xcb_xf86dri_open_connection_cookie_t
    110  **/
    111 typedef struct xcb_xf86dri_open_connection_cookie_t {
    112     unsigned int sequence;
    113 } xcb_xf86dri_open_connection_cookie_t;
    114 
    115 /** Opcode for xcb_xf86dri_open_connection. */
    116 #define XCB_XF86DRI_OPEN_CONNECTION 2
    117 
    118 /**
    119  * @brief xcb_xf86dri_open_connection_request_t
    120  **/
    121 typedef struct xcb_xf86dri_open_connection_request_t {
    122     uint8_t  major_opcode;
    123     uint8_t  minor_opcode;
    124     uint16_t length;
    125     uint32_t screen;
    126 } xcb_xf86dri_open_connection_request_t;
    127 
    128 /**
    129  * @brief xcb_xf86dri_open_connection_reply_t
    130  **/
    131 typedef struct xcb_xf86dri_open_connection_reply_t {
    132     uint8_t  response_type;
    133     uint8_t  pad0;
    134     uint16_t sequence;
    135     uint32_t length;
    136     uint32_t sarea_handle_low;
    137     uint32_t sarea_handle_high;
    138     uint32_t bus_id_len;
    139     uint8_t  pad1[12];
    140 } xcb_xf86dri_open_connection_reply_t;
    141 
    142 /** Opcode for xcb_xf86dri_close_connection. */
    143 #define XCB_XF86DRI_CLOSE_CONNECTION 3
    144 
    145 /**
    146  * @brief xcb_xf86dri_close_connection_request_t
    147  **/
    148 typedef struct xcb_xf86dri_close_connection_request_t {
    149     uint8_t  major_opcode;
    150     uint8_t  minor_opcode;
    151     uint16_t length;
    152     uint32_t screen;
    153 } xcb_xf86dri_close_connection_request_t;
    154 
    155 /**
    156  * @brief xcb_xf86dri_get_client_driver_name_cookie_t
    157  **/
    158 typedef struct xcb_xf86dri_get_client_driver_name_cookie_t {
    159     unsigned int sequence;
    160 } xcb_xf86dri_get_client_driver_name_cookie_t;
    161 
    162 /** Opcode for xcb_xf86dri_get_client_driver_name. */
    163 #define XCB_XF86DRI_GET_CLIENT_DRIVER_NAME 4
    164 
    165 /**
    166  * @brief xcb_xf86dri_get_client_driver_name_request_t
    167  **/
    168 typedef struct xcb_xf86dri_get_client_driver_name_request_t {
    169     uint8_t  major_opcode;
    170     uint8_t  minor_opcode;
    171     uint16_t length;
    172     uint32_t screen;
    173 } xcb_xf86dri_get_client_driver_name_request_t;
    174 
    175 /**
    176  * @brief xcb_xf86dri_get_client_driver_name_reply_t
    177  **/
    178 typedef struct xcb_xf86dri_get_client_driver_name_reply_t {
    179     uint8_t  response_type;
    180     uint8_t  pad0;
    181     uint16_t sequence;
    182     uint32_t length;
    183     uint32_t client_driver_major_version;
    184     uint32_t client_driver_minor_version;
    185     uint32_t client_driver_patch_version;
    186     uint32_t client_driver_name_len;
    187     uint8_t  pad1[8];
    188 } xcb_xf86dri_get_client_driver_name_reply_t;
    189 
    190 /**
    191  * @brief xcb_xf86dri_create_context_cookie_t
    192  **/
    193 typedef struct xcb_xf86dri_create_context_cookie_t {
    194     unsigned int sequence;
    195 } xcb_xf86dri_create_context_cookie_t;
    196 
    197 /** Opcode for xcb_xf86dri_create_context. */
    198 #define XCB_XF86DRI_CREATE_CONTEXT 5
    199 
    200 /**
    201  * @brief xcb_xf86dri_create_context_request_t
    202  **/
    203 typedef struct xcb_xf86dri_create_context_request_t {
    204     uint8_t  major_opcode;
    205     uint8_t  minor_opcode;
    206     uint16_t length;
    207     uint32_t screen;
    208     uint32_t visual;
    209     uint32_t context;
    210 } xcb_xf86dri_create_context_request_t;
    211 
    212 /**
    213  * @brief xcb_xf86dri_create_context_reply_t
    214  **/
    215 typedef struct xcb_xf86dri_create_context_reply_t {
    216     uint8_t  response_type;
    217     uint8_t  pad0;
    218     uint16_t sequence;
    219     uint32_t length;
    220     uint32_t hw_context;
    221 } xcb_xf86dri_create_context_reply_t;
    222 
    223 /** Opcode for xcb_xf86dri_destroy_context. */
    224 #define XCB_XF86DRI_DESTROY_CONTEXT 6
    225 
    226 /**
    227  * @brief xcb_xf86dri_destroy_context_request_t
    228  **/
    229 typedef struct xcb_xf86dri_destroy_context_request_t {
    230     uint8_t  major_opcode;
    231     uint8_t  minor_opcode;
    232     uint16_t length;
    233     uint32_t screen;
    234     uint32_t context;
    235 } xcb_xf86dri_destroy_context_request_t;
    236 
    237 /**
    238  * @brief xcb_xf86dri_create_drawable_cookie_t
    239  **/
    240 typedef struct xcb_xf86dri_create_drawable_cookie_t {
    241     unsigned int sequence;
    242 } xcb_xf86dri_create_drawable_cookie_t;
    243 
    244 /** Opcode for xcb_xf86dri_create_drawable. */
    245 #define XCB_XF86DRI_CREATE_DRAWABLE 7
    246 
    247 /**
    248  * @brief xcb_xf86dri_create_drawable_request_t
    249  **/
    250 typedef struct xcb_xf86dri_create_drawable_request_t {
    251     uint8_t  major_opcode;
    252     uint8_t  minor_opcode;
    253     uint16_t length;
    254     uint32_t screen;
    255     uint32_t drawable;
    256 } xcb_xf86dri_create_drawable_request_t;
    257 
    258 /**
    259  * @brief xcb_xf86dri_create_drawable_reply_t
    260  **/
    261 typedef struct xcb_xf86dri_create_drawable_reply_t {
    262     uint8_t  response_type;
    263     uint8_t  pad0;
    264     uint16_t sequence;
    265     uint32_t length;
    266     uint32_t hw_drawable_handle;
    267 } xcb_xf86dri_create_drawable_reply_t;
    268 
    269 /** Opcode for xcb_xf86dri_destroy_drawable. */
    270 #define XCB_XF86DRI_DESTROY_DRAWABLE 8
    271 
    272 /**
    273  * @brief xcb_xf86dri_destroy_drawable_request_t
    274  **/
    275 typedef struct xcb_xf86dri_destroy_drawable_request_t {
    276     uint8_t  major_opcode;
    277     uint8_t  minor_opcode;
    278     uint16_t length;
    279     uint32_t screen;
    280     uint32_t drawable;
    281 } xcb_xf86dri_destroy_drawable_request_t;
    282 
    283 /**
    284  * @brief xcb_xf86dri_get_drawable_info_cookie_t
    285  **/
    286 typedef struct xcb_xf86dri_get_drawable_info_cookie_t {
    287     unsigned int sequence;
    288 } xcb_xf86dri_get_drawable_info_cookie_t;
    289 
    290 /** Opcode for xcb_xf86dri_get_drawable_info. */
    291 #define XCB_XF86DRI_GET_DRAWABLE_INFO 9
    292 
    293 /**
    294  * @brief xcb_xf86dri_get_drawable_info_request_t
    295  **/
    296 typedef struct xcb_xf86dri_get_drawable_info_request_t {
    297     uint8_t  major_opcode;
    298     uint8_t  minor_opcode;
    299     uint16_t length;
    300     uint32_t screen;
    301     uint32_t drawable;
    302 } xcb_xf86dri_get_drawable_info_request_t;
    303 
    304 /**
    305  * @brief xcb_xf86dri_get_drawable_info_reply_t
    306  **/
    307 typedef struct xcb_xf86dri_get_drawable_info_reply_t {
    308     uint8_t  response_type;
    309     uint8_t  pad0;
    310     uint16_t sequence;
    311     uint32_t length;
    312     uint32_t drawable_table_index;
    313     uint32_t drawable_table_stamp;
    314     int16_t  drawable_origin_X;
    315     int16_t  drawable_origin_Y;
    316     int16_t  drawable_size_W;
    317     int16_t  drawable_size_H;
    318     uint32_t num_clip_rects;
    319     int16_t  back_x;
    320     int16_t  back_y;
    321     uint32_t num_back_clip_rects;
    322 } xcb_xf86dri_get_drawable_info_reply_t;
    323 
    324 /**
    325  * @brief xcb_xf86dri_get_device_info_cookie_t
    326  **/
    327 typedef struct xcb_xf86dri_get_device_info_cookie_t {
    328     unsigned int sequence;
    329 } xcb_xf86dri_get_device_info_cookie_t;
    330 
    331 /** Opcode for xcb_xf86dri_get_device_info. */
    332 #define XCB_XF86DRI_GET_DEVICE_INFO 10
    333 
    334 /**
    335  * @brief xcb_xf86dri_get_device_info_request_t
    336  **/
    337 typedef struct xcb_xf86dri_get_device_info_request_t {
    338     uint8_t  major_opcode;
    339     uint8_t  minor_opcode;
    340     uint16_t length;
    341     uint32_t screen;
    342 } xcb_xf86dri_get_device_info_request_t;
    343 
    344 /**
    345  * @brief xcb_xf86dri_get_device_info_reply_t
    346  **/
    347 typedef struct xcb_xf86dri_get_device_info_reply_t {
    348     uint8_t  response_type;
    349     uint8_t  pad0;
    350     uint16_t sequence;
    351     uint32_t length;
    352     uint32_t framebuffer_handle_low;
    353     uint32_t framebuffer_handle_high;
    354     uint32_t framebuffer_origin_offset;
    355     uint32_t framebuffer_size;
    356     uint32_t framebuffer_stride;
    357     uint32_t device_private_size;
    358 } xcb_xf86dri_get_device_info_reply_t;
    359 
    360 /**
    361  * @brief xcb_xf86dri_auth_connection_cookie_t
    362  **/
    363 typedef struct xcb_xf86dri_auth_connection_cookie_t {
    364     unsigned int sequence;
    365 } xcb_xf86dri_auth_connection_cookie_t;
    366 
    367 /** Opcode for xcb_xf86dri_auth_connection. */
    368 #define XCB_XF86DRI_AUTH_CONNECTION 11
    369 
    370 /**
    371  * @brief xcb_xf86dri_auth_connection_request_t
    372  **/
    373 typedef struct xcb_xf86dri_auth_connection_request_t {
    374     uint8_t  major_opcode;
    375     uint8_t  minor_opcode;
    376     uint16_t length;
    377     uint32_t screen;
    378     uint32_t magic;
    379 } xcb_xf86dri_auth_connection_request_t;
    380 
    381 /**
    382  * @brief xcb_xf86dri_auth_connection_reply_t
    383  **/
    384 typedef struct xcb_xf86dri_auth_connection_reply_t {
    385     uint8_t  response_type;
    386     uint8_t  pad0;
    387     uint16_t sequence;
    388     uint32_t length;
    389     uint32_t authenticated;
    390 } xcb_xf86dri_auth_connection_reply_t;
    391 
    392 /**
    393  * Get the next element of the iterator
    394  * @param i Pointer to a xcb_xf86dri_drm_clip_rect_iterator_t
    395  *
    396  * Get the next element in the iterator. The member rem is
    397  * decreased by one. The member data points to the next
    398  * element. The member index is increased by sizeof(xcb_xf86dri_drm_clip_rect_t)
    399  */
    400 void
    401 xcb_xf86dri_drm_clip_rect_next (xcb_xf86dri_drm_clip_rect_iterator_t *i);
    402 
    403 /**
    404  * Return the iterator pointing to the last element
    405  * @param i An xcb_xf86dri_drm_clip_rect_iterator_t
    406  * @return  The iterator pointing to the last element
    407  *
    408  * Set the current element in the iterator to the last element.
    409  * The member rem is set to 0. The member data points to the
    410  * last element.
    411  */
    412 xcb_generic_iterator_t
    413 xcb_xf86dri_drm_clip_rect_end (xcb_xf86dri_drm_clip_rect_iterator_t i);
    414 
    415 /**
    416  *
    417  * @param c The connection
    418  * @return A cookie
    419  *
    420  * Delivers a request to the X server.
    421  *
    422  */
    423 xcb_xf86dri_query_version_cookie_t
    424 xcb_xf86dri_query_version (xcb_connection_t *c);
    425 
    426 /**
    427  *
    428  * @param c The connection
    429  * @return A cookie
    430  *
    431  * Delivers a request to the X server.
    432  *
    433  * This form can be used only if the request will cause
    434  * a reply to be generated. Any returned error will be
    435  * placed in the event queue.
    436  */
    437 xcb_xf86dri_query_version_cookie_t
    438 xcb_xf86dri_query_version_unchecked (xcb_connection_t *c);
    439 
    440 /**
    441  * Return the reply
    442  * @param c      The connection
    443  * @param cookie The cookie
    444  * @param e      The xcb_generic_error_t supplied
    445  *
    446  * Returns the reply of the request asked by
    447  *
    448  * The parameter @p e supplied to this function must be NULL if
    449  * xcb_xf86dri_query_version_unchecked(). is used.
    450  * Otherwise, it stores the error if any.
    451  *
    452  * The returned value must be freed by the caller using free().
    453  */
    454 xcb_xf86dri_query_version_reply_t *
    455 xcb_xf86dri_query_version_reply (xcb_connection_t                    *c,
    456                                  xcb_xf86dri_query_version_cookie_t   cookie  /**< */,
    457                                  xcb_generic_error_t                **e);
    458 
    459 /**
    460  *
    461  * @param c The connection
    462  * @return A cookie
    463  *
    464  * Delivers a request to the X server.
    465  *
    466  */
    467 xcb_xf86dri_query_direct_rendering_capable_cookie_t
    468 xcb_xf86dri_query_direct_rendering_capable (xcb_connection_t *c,
    469                                             uint32_t          screen);
    470 
    471 /**
    472  *
    473  * @param c The connection
    474  * @return A cookie
    475  *
    476  * Delivers a request to the X server.
    477  *
    478  * This form can be used only if the request will cause
    479  * a reply to be generated. Any returned error will be
    480  * placed in the event queue.
    481  */
    482 xcb_xf86dri_query_direct_rendering_capable_cookie_t
    483 xcb_xf86dri_query_direct_rendering_capable_unchecked (xcb_connection_t *c,
    484                                                       uint32_t          screen);
    485 
    486 /**
    487  * Return the reply
    488  * @param c      The connection
    489  * @param cookie The cookie
    490  * @param e      The xcb_generic_error_t supplied
    491  *
    492  * Returns the reply of the request asked by
    493  *
    494  * The parameter @p e supplied to this function must be NULL if
    495  * xcb_xf86dri_query_direct_rendering_capable_unchecked(). is used.
    496  * Otherwise, it stores the error if any.
    497  *
    498  * The returned value must be freed by the caller using free().
    499  */
    500 xcb_xf86dri_query_direct_rendering_capable_reply_t *
    501 xcb_xf86dri_query_direct_rendering_capable_reply (xcb_connection_t                                     *c,
    502                                                   xcb_xf86dri_query_direct_rendering_capable_cookie_t   cookie  /**< */,
    503                                                   xcb_generic_error_t                                 **e);
    504 
    505 int
    506 xcb_xf86dri_open_connection_sizeof (const void  *_buffer);
    507 
    508 /**
    509  *
    510  * @param c The connection
    511  * @return A cookie
    512  *
    513  * Delivers a request to the X server.
    514  *
    515  */
    516 xcb_xf86dri_open_connection_cookie_t
    517 xcb_xf86dri_open_connection (xcb_connection_t *c,
    518                              uint32_t          screen);
    519 
    520 /**
    521  *
    522  * @param c The connection
    523  * @return A cookie
    524  *
    525  * Delivers a request to the X server.
    526  *
    527  * This form can be used only if the request will cause
    528  * a reply to be generated. Any returned error will be
    529  * placed in the event queue.
    530  */
    531 xcb_xf86dri_open_connection_cookie_t
    532 xcb_xf86dri_open_connection_unchecked (xcb_connection_t *c,
    533                                        uint32_t          screen);
    534 
    535 char *
    536 xcb_xf86dri_open_connection_bus_id (const xcb_xf86dri_open_connection_reply_t *R);
    537 
    538 int
    539 xcb_xf86dri_open_connection_bus_id_length (const xcb_xf86dri_open_connection_reply_t *R);
    540 
    541 xcb_generic_iterator_t
    542 xcb_xf86dri_open_connection_bus_id_end (const xcb_xf86dri_open_connection_reply_t *R);
    543 
    544 /**
    545  * Return the reply
    546  * @param c      The connection
    547  * @param cookie The cookie
    548  * @param e      The xcb_generic_error_t supplied
    549  *
    550  * Returns the reply of the request asked by
    551  *
    552  * The parameter @p e supplied to this function must be NULL if
    553  * xcb_xf86dri_open_connection_unchecked(). is used.
    554  * Otherwise, it stores the error if any.
    555  *
    556  * The returned value must be freed by the caller using free().
    557  */
    558 xcb_xf86dri_open_connection_reply_t *
    559 xcb_xf86dri_open_connection_reply (xcb_connection_t                      *c,
    560                                    xcb_xf86dri_open_connection_cookie_t   cookie  /**< */,
    561                                    xcb_generic_error_t                  **e);
    562 
    563 /**
    564  *
    565  * @param c The connection
    566  * @return A cookie
    567  *
    568  * Delivers a request to the X server.
    569  *
    570  * This form can be used only if the request will not cause
    571  * a reply to be generated. Any returned error will be
    572  * saved for handling by xcb_request_check().
    573  */
    574 xcb_void_cookie_t
    575 xcb_xf86dri_close_connection_checked (xcb_connection_t *c,
    576                                       uint32_t          screen);
    577 
    578 /**
    579  *
    580  * @param c The connection
    581  * @return A cookie
    582  *
    583  * Delivers a request to the X server.
    584  *
    585  */
    586 xcb_void_cookie_t
    587 xcb_xf86dri_close_connection (xcb_connection_t *c,
    588                               uint32_t          screen);
    589 
    590 int
    591 xcb_xf86dri_get_client_driver_name_sizeof (const void  *_buffer);
    592 
    593 /**
    594  *
    595  * @param c The connection
    596  * @return A cookie
    597  *
    598  * Delivers a request to the X server.
    599  *
    600  */
    601 xcb_xf86dri_get_client_driver_name_cookie_t
    602 xcb_xf86dri_get_client_driver_name (xcb_connection_t *c,
    603                                     uint32_t          screen);
    604 
    605 /**
    606  *
    607  * @param c The connection
    608  * @return A cookie
    609  *
    610  * Delivers a request to the X server.
    611  *
    612  * This form can be used only if the request will cause
    613  * a reply to be generated. Any returned error will be
    614  * placed in the event queue.
    615  */
    616 xcb_xf86dri_get_client_driver_name_cookie_t
    617 xcb_xf86dri_get_client_driver_name_unchecked (xcb_connection_t *c,
    618                                               uint32_t          screen);
    619 
    620 char *
    621 xcb_xf86dri_get_client_driver_name_client_driver_name (const xcb_xf86dri_get_client_driver_name_reply_t *R);
    622 
    623 int
    624 xcb_xf86dri_get_client_driver_name_client_driver_name_length (const xcb_xf86dri_get_client_driver_name_reply_t *R);
    625 
    626 xcb_generic_iterator_t
    627 xcb_xf86dri_get_client_driver_name_client_driver_name_end (const xcb_xf86dri_get_client_driver_name_reply_t *R);
    628 
    629 /**
    630  * Return the reply
    631  * @param c      The connection
    632  * @param cookie The cookie
    633  * @param e      The xcb_generic_error_t supplied
    634  *
    635  * Returns the reply of the request asked by
    636  *
    637  * The parameter @p e supplied to this function must be NULL if
    638  * xcb_xf86dri_get_client_driver_name_unchecked(). is used.
    639  * Otherwise, it stores the error if any.
    640  *
    641  * The returned value must be freed by the caller using free().
    642  */
    643 xcb_xf86dri_get_client_driver_name_reply_t *
    644 xcb_xf86dri_get_client_driver_name_reply (xcb_connection_t                             *c,
    645                                           xcb_xf86dri_get_client_driver_name_cookie_t   cookie  /**< */,
    646                                           xcb_generic_error_t                         **e);
    647 
    648 /**
    649  *
    650  * @param c The connection
    651  * @return A cookie
    652  *
    653  * Delivers a request to the X server.
    654  *
    655  */
    656 xcb_xf86dri_create_context_cookie_t
    657 xcb_xf86dri_create_context (xcb_connection_t *c,
    658                             uint32_t          screen,
    659                             uint32_t          visual,
    660                             uint32_t          context);
    661 
    662 /**
    663  *
    664  * @param c The connection
    665  * @return A cookie
    666  *
    667  * Delivers a request to the X server.
    668  *
    669  * This form can be used only if the request will cause
    670  * a reply to be generated. Any returned error will be
    671  * placed in the event queue.
    672  */
    673 xcb_xf86dri_create_context_cookie_t
    674 xcb_xf86dri_create_context_unchecked (xcb_connection_t *c,
    675                                       uint32_t          screen,
    676                                       uint32_t          visual,
    677                                       uint32_t          context);
    678 
    679 /**
    680  * Return the reply
    681  * @param c      The connection
    682  * @param cookie The cookie
    683  * @param e      The xcb_generic_error_t supplied
    684  *
    685  * Returns the reply of the request asked by
    686  *
    687  * The parameter @p e supplied to this function must be NULL if
    688  * xcb_xf86dri_create_context_unchecked(). is used.
    689  * Otherwise, it stores the error if any.
    690  *
    691  * The returned value must be freed by the caller using free().
    692  */
    693 xcb_xf86dri_create_context_reply_t *
    694 xcb_xf86dri_create_context_reply (xcb_connection_t                     *c,
    695                                   xcb_xf86dri_create_context_cookie_t   cookie  /**< */,
    696                                   xcb_generic_error_t                 **e);
    697 
    698 /**
    699  *
    700  * @param c The connection
    701  * @return A cookie
    702  *
    703  * Delivers a request to the X server.
    704  *
    705  * This form can be used only if the request will not cause
    706  * a reply to be generated. Any returned error will be
    707  * saved for handling by xcb_request_check().
    708  */
    709 xcb_void_cookie_t
    710 xcb_xf86dri_destroy_context_checked (xcb_connection_t *c,
    711                                      uint32_t          screen,
    712                                      uint32_t          context);
    713 
    714 /**
    715  *
    716  * @param c The connection
    717  * @return A cookie
    718  *
    719  * Delivers a request to the X server.
    720  *
    721  */
    722 xcb_void_cookie_t
    723 xcb_xf86dri_destroy_context (xcb_connection_t *c,
    724                              uint32_t          screen,
    725                              uint32_t          context);
    726 
    727 /**
    728  *
    729  * @param c The connection
    730  * @return A cookie
    731  *
    732  * Delivers a request to the X server.
    733  *
    734  */
    735 xcb_xf86dri_create_drawable_cookie_t
    736 xcb_xf86dri_create_drawable (xcb_connection_t *c,
    737                              uint32_t          screen,
    738                              uint32_t          drawable);
    739 
    740 /**
    741  *
    742  * @param c The connection
    743  * @return A cookie
    744  *
    745  * Delivers a request to the X server.
    746  *
    747  * This form can be used only if the request will cause
    748  * a reply to be generated. Any returned error will be
    749  * placed in the event queue.
    750  */
    751 xcb_xf86dri_create_drawable_cookie_t
    752 xcb_xf86dri_create_drawable_unchecked (xcb_connection_t *c,
    753                                        uint32_t          screen,
    754                                        uint32_t          drawable);
    755 
    756 /**
    757  * Return the reply
    758  * @param c      The connection
    759  * @param cookie The cookie
    760  * @param e      The xcb_generic_error_t supplied
    761  *
    762  * Returns the reply of the request asked by
    763  *
    764  * The parameter @p e supplied to this function must be NULL if
    765  * xcb_xf86dri_create_drawable_unchecked(). is used.
    766  * Otherwise, it stores the error if any.
    767  *
    768  * The returned value must be freed by the caller using free().
    769  */
    770 xcb_xf86dri_create_drawable_reply_t *
    771 xcb_xf86dri_create_drawable_reply (xcb_connection_t                      *c,
    772                                    xcb_xf86dri_create_drawable_cookie_t   cookie  /**< */,
    773                                    xcb_generic_error_t                  **e);
    774 
    775 /**
    776  *
    777  * @param c The connection
    778  * @return A cookie
    779  *
    780  * Delivers a request to the X server.
    781  *
    782  * This form can be used only if the request will not cause
    783  * a reply to be generated. Any returned error will be
    784  * saved for handling by xcb_request_check().
    785  */
    786 xcb_void_cookie_t
    787 xcb_xf86dri_destroy_drawable_checked (xcb_connection_t *c,
    788                                       uint32_t          screen,
    789                                       uint32_t          drawable);
    790 
    791 /**
    792  *
    793  * @param c The connection
    794  * @return A cookie
    795  *
    796  * Delivers a request to the X server.
    797  *
    798  */
    799 xcb_void_cookie_t
    800 xcb_xf86dri_destroy_drawable (xcb_connection_t *c,
    801                               uint32_t          screen,
    802                               uint32_t          drawable);
    803 
    804 int
    805 xcb_xf86dri_get_drawable_info_sizeof (const void  *_buffer);
    806 
    807 /**
    808  *
    809  * @param c The connection
    810  * @return A cookie
    811  *
    812  * Delivers a request to the X server.
    813  *
    814  */
    815 xcb_xf86dri_get_drawable_info_cookie_t
    816 xcb_xf86dri_get_drawable_info (xcb_connection_t *c,
    817                                uint32_t          screen,
    818                                uint32_t          drawable);
    819 
    820 /**
    821  *
    822  * @param c The connection
    823  * @return A cookie
    824  *
    825  * Delivers a request to the X server.
    826  *
    827  * This form can be used only if the request will cause
    828  * a reply to be generated. Any returned error will be
    829  * placed in the event queue.
    830  */
    831 xcb_xf86dri_get_drawable_info_cookie_t
    832 xcb_xf86dri_get_drawable_info_unchecked (xcb_connection_t *c,
    833                                          uint32_t          screen,
    834                                          uint32_t          drawable);
    835 
    836 xcb_xf86dri_drm_clip_rect_t *
    837 xcb_xf86dri_get_drawable_info_clip_rects (const xcb_xf86dri_get_drawable_info_reply_t *R);
    838 
    839 int
    840 xcb_xf86dri_get_drawable_info_clip_rects_length (const xcb_xf86dri_get_drawable_info_reply_t *R);
    841 
    842 xcb_xf86dri_drm_clip_rect_iterator_t
    843 xcb_xf86dri_get_drawable_info_clip_rects_iterator (const xcb_xf86dri_get_drawable_info_reply_t *R);
    844 
    845 xcb_xf86dri_drm_clip_rect_t *
    846 xcb_xf86dri_get_drawable_info_back_clip_rects (const xcb_xf86dri_get_drawable_info_reply_t *R);
    847 
    848 int
    849 xcb_xf86dri_get_drawable_info_back_clip_rects_length (const xcb_xf86dri_get_drawable_info_reply_t *R);
    850 
    851 xcb_xf86dri_drm_clip_rect_iterator_t
    852 xcb_xf86dri_get_drawable_info_back_clip_rects_iterator (const xcb_xf86dri_get_drawable_info_reply_t *R);
    853 
    854 /**
    855  * Return the reply
    856  * @param c      The connection
    857  * @param cookie The cookie
    858  * @param e      The xcb_generic_error_t supplied
    859  *
    860  * Returns the reply of the request asked by
    861  *
    862  * The parameter @p e supplied to this function must be NULL if
    863  * xcb_xf86dri_get_drawable_info_unchecked(). is used.
    864  * Otherwise, it stores the error if any.
    865  *
    866  * The returned value must be freed by the caller using free().
    867  */
    868 xcb_xf86dri_get_drawable_info_reply_t *
    869 xcb_xf86dri_get_drawable_info_reply (xcb_connection_t                        *c,
    870                                      xcb_xf86dri_get_drawable_info_cookie_t   cookie  /**< */,
    871                                      xcb_generic_error_t                    **e);
    872 
    873 int
    874 xcb_xf86dri_get_device_info_sizeof (const void  *_buffer);
    875 
    876 /**
    877  *
    878  * @param c The connection
    879  * @return A cookie
    880  *
    881  * Delivers a request to the X server.
    882  *
    883  */
    884 xcb_xf86dri_get_device_info_cookie_t
    885 xcb_xf86dri_get_device_info (xcb_connection_t *c,
    886                              uint32_t          screen);
    887 
    888 /**
    889  *
    890  * @param c The connection
    891  * @return A cookie
    892  *
    893  * Delivers a request to the X server.
    894  *
    895  * This form can be used only if the request will cause
    896  * a reply to be generated. Any returned error will be
    897  * placed in the event queue.
    898  */
    899 xcb_xf86dri_get_device_info_cookie_t
    900 xcb_xf86dri_get_device_info_unchecked (xcb_connection_t *c,
    901                                        uint32_t          screen);
    902 
    903 uint32_t *
    904 xcb_xf86dri_get_device_info_device_private (const xcb_xf86dri_get_device_info_reply_t *R);
    905 
    906 int
    907 xcb_xf86dri_get_device_info_device_private_length (const xcb_xf86dri_get_device_info_reply_t *R);
    908 
    909 xcb_generic_iterator_t
    910 xcb_xf86dri_get_device_info_device_private_end (const xcb_xf86dri_get_device_info_reply_t *R);
    911 
    912 /**
    913  * Return the reply
    914  * @param c      The connection
    915  * @param cookie The cookie
    916  * @param e      The xcb_generic_error_t supplied
    917  *
    918  * Returns the reply of the request asked by
    919  *
    920  * The parameter @p e supplied to this function must be NULL if
    921  * xcb_xf86dri_get_device_info_unchecked(). is used.
    922  * Otherwise, it stores the error if any.
    923  *
    924  * The returned value must be freed by the caller using free().
    925  */
    926 xcb_xf86dri_get_device_info_reply_t *
    927 xcb_xf86dri_get_device_info_reply (xcb_connection_t                      *c,
    928                                    xcb_xf86dri_get_device_info_cookie_t   cookie  /**< */,
    929                                    xcb_generic_error_t                  **e);
    930 
    931 /**
    932  *
    933  * @param c The connection
    934  * @return A cookie
    935  *
    936  * Delivers a request to the X server.
    937  *
    938  */
    939 xcb_xf86dri_auth_connection_cookie_t
    940 xcb_xf86dri_auth_connection (xcb_connection_t *c,
    941                              uint32_t          screen,
    942                              uint32_t          magic);
    943 
    944 /**
    945  *
    946  * @param c The connection
    947  * @return A cookie
    948  *
    949  * Delivers a request to the X server.
    950  *
    951  * This form can be used only if the request will cause
    952  * a reply to be generated. Any returned error will be
    953  * placed in the event queue.
    954  */
    955 xcb_xf86dri_auth_connection_cookie_t
    956 xcb_xf86dri_auth_connection_unchecked (xcb_connection_t *c,
    957                                        uint32_t          screen,
    958                                        uint32_t          magic);
    959 
    960 /**
    961  * Return the reply
    962  * @param c      The connection
    963  * @param cookie The cookie
    964  * @param e      The xcb_generic_error_t supplied
    965  *
    966  * Returns the reply of the request asked by
    967  *
    968  * The parameter @p e supplied to this function must be NULL if
    969  * xcb_xf86dri_auth_connection_unchecked(). is used.
    970  * Otherwise, it stores the error if any.
    971  *
    972  * The returned value must be freed by the caller using free().
    973  */
    974 xcb_xf86dri_auth_connection_reply_t *
    975 xcb_xf86dri_auth_connection_reply (xcb_connection_t                      *c,
    976                                    xcb_xf86dri_auth_connection_cookie_t   cookie  /**< */,
    977                                    xcb_generic_error_t                  **e);
    978 
    979 
    980 #ifdef __cplusplus
    981 }
    982 #endif
    983 
    984 #endif
    985 
    986 /**
    987  * @}
    988  */
    989