Home | History | Annotate | Line # | Download | only in files
sync.c revision 1.3
      1 /*
      2  * This file generated automatically from sync.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 "sync.h"
     15 
     16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
     17 #include "xproto.h"
     18 
     19 xcb_extension_t xcb_sync_id = { "SYNC", 0 };
     20 
     21 
     22 /*****************************************************************************
     23  **
     24  ** void xcb_sync_alarm_next
     25  **
     26  ** @param xcb_sync_alarm_iterator_t *i
     27  ** @returns void
     28  **
     29  *****************************************************************************/
     30 
     31 void
     32 xcb_sync_alarm_next (xcb_sync_alarm_iterator_t *i  /**< */)
     33 {
     34     --i->rem;
     35     ++i->data;
     36     i->index += sizeof(xcb_sync_alarm_t);
     37 }
     38 
     39 
     40 /*****************************************************************************
     41  **
     42  ** xcb_generic_iterator_t xcb_sync_alarm_end
     43  **
     44  ** @param xcb_sync_alarm_iterator_t i
     45  ** @returns xcb_generic_iterator_t
     46  **
     47  *****************************************************************************/
     48 
     49 xcb_generic_iterator_t
     50 xcb_sync_alarm_end (xcb_sync_alarm_iterator_t i  /**< */)
     51 {
     52     xcb_generic_iterator_t ret;
     53     ret.data = i.data + i.rem;
     54     ret.index = i.index + ((char *) ret.data - (char *) i.data);
     55     ret.rem = 0;
     56     return ret;
     57 }
     58 
     59 
     60 /*****************************************************************************
     61  **
     62  ** void xcb_sync_counter_next
     63  **
     64  ** @param xcb_sync_counter_iterator_t *i
     65  ** @returns void
     66  **
     67  *****************************************************************************/
     68 
     69 void
     70 xcb_sync_counter_next (xcb_sync_counter_iterator_t *i  /**< */)
     71 {
     72     --i->rem;
     73     ++i->data;
     74     i->index += sizeof(xcb_sync_counter_t);
     75 }
     76 
     77 
     78 /*****************************************************************************
     79  **
     80  ** xcb_generic_iterator_t xcb_sync_counter_end
     81  **
     82  ** @param xcb_sync_counter_iterator_t i
     83  ** @returns xcb_generic_iterator_t
     84  **
     85  *****************************************************************************/
     86 
     87 xcb_generic_iterator_t
     88 xcb_sync_counter_end (xcb_sync_counter_iterator_t i  /**< */)
     89 {
     90     xcb_generic_iterator_t ret;
     91     ret.data = i.data + i.rem;
     92     ret.index = i.index + ((char *) ret.data - (char *) i.data);
     93     ret.rem = 0;
     94     return ret;
     95 }
     96 
     97 
     98 /*****************************************************************************
     99  **
    100  ** void xcb_sync_fence_next
    101  **
    102  ** @param xcb_sync_fence_iterator_t *i
    103  ** @returns void
    104  **
    105  *****************************************************************************/
    106 
    107 void
    108 xcb_sync_fence_next (xcb_sync_fence_iterator_t *i  /**< */)
    109 {
    110     --i->rem;
    111     ++i->data;
    112     i->index += sizeof(xcb_sync_fence_t);
    113 }
    114 
    115 
    116 /*****************************************************************************
    117  **
    118  ** xcb_generic_iterator_t xcb_sync_fence_end
    119  **
    120  ** @param xcb_sync_fence_iterator_t i
    121  ** @returns xcb_generic_iterator_t
    122  **
    123  *****************************************************************************/
    124 
    125 xcb_generic_iterator_t
    126 xcb_sync_fence_end (xcb_sync_fence_iterator_t i  /**< */)
    127 {
    128     xcb_generic_iterator_t ret;
    129     ret.data = i.data + i.rem;
    130     ret.index = i.index + ((char *) ret.data - (char *) i.data);
    131     ret.rem = 0;
    132     return ret;
    133 }
    134 
    135 
    136 /*****************************************************************************
    137  **
    138  ** void xcb_sync_int64_next
    139  **
    140  ** @param xcb_sync_int64_iterator_t *i
    141  ** @returns void
    142  **
    143  *****************************************************************************/
    144 
    145 void
    146 xcb_sync_int64_next (xcb_sync_int64_iterator_t *i  /**< */)
    147 {
    148     --i->rem;
    149     ++i->data;
    150     i->index += sizeof(xcb_sync_int64_t);
    151 }
    152 
    153 
    154 /*****************************************************************************
    155  **
    156  ** xcb_generic_iterator_t xcb_sync_int64_end
    157  **
    158  ** @param xcb_sync_int64_iterator_t i
    159  ** @returns xcb_generic_iterator_t
    160  **
    161  *****************************************************************************/
    162 
    163 xcb_generic_iterator_t
    164 xcb_sync_int64_end (xcb_sync_int64_iterator_t i  /**< */)
    165 {
    166     xcb_generic_iterator_t ret;
    167     ret.data = i.data + i.rem;
    168     ret.index = i.index + ((char *) ret.data - (char *) i.data);
    169     ret.rem = 0;
    170     return ret;
    171 }
    172 
    173 int
    174 xcb_sync_systemcounter_sizeof (const void  *_buffer  /**< */)
    175 {
    176     char *xcb_tmp = (char *)_buffer;
    177     const xcb_sync_systemcounter_t *_aux = (xcb_sync_systemcounter_t *)_buffer;
    178     unsigned int xcb_buffer_len = 0;
    179     unsigned int xcb_block_len = 0;
    180     unsigned int xcb_pad = 0;
    181     unsigned int xcb_align_to = 0;
    182 
    183 
    184     xcb_block_len += sizeof(xcb_sync_systemcounter_t);
    185     xcb_tmp += xcb_block_len;
    186     xcb_buffer_len += xcb_block_len;
    187     xcb_block_len = 0;
    188     /* name */
    189     xcb_block_len += _aux->name_len * sizeof(char);
    190     xcb_tmp += xcb_block_len;
    191     xcb_align_to = ALIGNOF(char);
    192     /* insert padding */
    193     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
    194     xcb_buffer_len += xcb_block_len + xcb_pad;
    195     if (0 != xcb_pad) {
    196         xcb_tmp += xcb_pad;
    197         xcb_pad = 0;
    198     }
    199     xcb_block_len = 0;
    200 
    201     return xcb_buffer_len;
    202 }
    203 
    204 
    205 /*****************************************************************************
    206  **
    207  ** char * xcb_sync_systemcounter_name
    208  **
    209  ** @param const xcb_sync_systemcounter_t *R
    210  ** @returns char *
    211  **
    212  *****************************************************************************/
    213 
    214 char *
    215 xcb_sync_systemcounter_name (const xcb_sync_systemcounter_t *R  /**< */)
    216 {
    217     return (char *) (R + 1);
    218 }
    219 
    220 
    221 /*****************************************************************************
    222  **
    223  ** int xcb_sync_systemcounter_name_length
    224  **
    225  ** @param const xcb_sync_systemcounter_t *R
    226  ** @returns int
    227  **
    228  *****************************************************************************/
    229 
    230 int
    231 xcb_sync_systemcounter_name_length (const xcb_sync_systemcounter_t *R  /**< */)
    232 {
    233     return R->name_len;
    234 }
    235 
    236 
    237 /*****************************************************************************
    238  **
    239  ** xcb_generic_iterator_t xcb_sync_systemcounter_name_end
    240  **
    241  ** @param const xcb_sync_systemcounter_t *R
    242  ** @returns xcb_generic_iterator_t
    243  **
    244  *****************************************************************************/
    245 
    246 xcb_generic_iterator_t
    247 xcb_sync_systemcounter_name_end (const xcb_sync_systemcounter_t *R  /**< */)
    248 {
    249     xcb_generic_iterator_t i;
    250     i.data = ((char *) (R + 1)) + (R->name_len);
    251     i.rem = 0;
    252     i.index = (char *) i.data - (char *) R;
    253     return i;
    254 }
    255 
    256 
    257 /*****************************************************************************
    258  **
    259  ** void xcb_sync_systemcounter_next
    260  **
    261  ** @param xcb_sync_systemcounter_iterator_t *i
    262  ** @returns void
    263  **
    264  *****************************************************************************/
    265 
    266 void
    267 xcb_sync_systemcounter_next (xcb_sync_systemcounter_iterator_t *i  /**< */)
    268 {
    269     xcb_sync_systemcounter_t *R = i->data;
    270     xcb_generic_iterator_t child;
    271     child.data = (xcb_sync_systemcounter_t *)(((char *)R) + xcb_sync_systemcounter_sizeof(R));
    272     i->index = (char *) child.data - (char *) i->data;
    273     --i->rem;
    274     i->data = (xcb_sync_systemcounter_t *) child.data;
    275 }
    276 
    277 
    278 /*****************************************************************************
    279  **
    280  ** xcb_generic_iterator_t xcb_sync_systemcounter_end
    281  **
    282  ** @param xcb_sync_systemcounter_iterator_t i
    283  ** @returns xcb_generic_iterator_t
    284  **
    285  *****************************************************************************/
    286 
    287 xcb_generic_iterator_t
    288 xcb_sync_systemcounter_end (xcb_sync_systemcounter_iterator_t i  /**< */)
    289 {
    290     xcb_generic_iterator_t ret;
    291     while(i.rem > 0)
    292         xcb_sync_systemcounter_next(&i);
    293     ret.data = i.data;
    294     ret.rem = i.rem;
    295     ret.index = i.index;
    296     return ret;
    297 }
    298 
    299 
    300 /*****************************************************************************
    301  **
    302  ** void xcb_sync_trigger_next
    303  **
    304  ** @param xcb_sync_trigger_iterator_t *i
    305  ** @returns void
    306  **
    307  *****************************************************************************/
    308 
    309 void
    310 xcb_sync_trigger_next (xcb_sync_trigger_iterator_t *i  /**< */)
    311 {
    312     --i->rem;
    313     ++i->data;
    314     i->index += sizeof(xcb_sync_trigger_t);
    315 }
    316 
    317 
    318 /*****************************************************************************
    319  **
    320  ** xcb_generic_iterator_t xcb_sync_trigger_end
    321  **
    322  ** @param xcb_sync_trigger_iterator_t i
    323  ** @returns xcb_generic_iterator_t
    324  **
    325  *****************************************************************************/
    326 
    327 xcb_generic_iterator_t
    328 xcb_sync_trigger_end (xcb_sync_trigger_iterator_t i  /**< */)
    329 {
    330     xcb_generic_iterator_t ret;
    331     ret.data = i.data + i.rem;
    332     ret.index = i.index + ((char *) ret.data - (char *) i.data);
    333     ret.rem = 0;
    334     return ret;
    335 }
    336 
    337 
    338 /*****************************************************************************
    339  **
    340  ** void xcb_sync_waitcondition_next
    341  **
    342  ** @param xcb_sync_waitcondition_iterator_t *i
    343  ** @returns void
    344  **
    345  *****************************************************************************/
    346 
    347 void
    348 xcb_sync_waitcondition_next (xcb_sync_waitcondition_iterator_t *i  /**< */)
    349 {
    350     --i->rem;
    351     ++i->data;
    352     i->index += sizeof(xcb_sync_waitcondition_t);
    353 }
    354 
    355 
    356 /*****************************************************************************
    357  **
    358  ** xcb_generic_iterator_t xcb_sync_waitcondition_end
    359  **
    360  ** @param xcb_sync_waitcondition_iterator_t i
    361  ** @returns xcb_generic_iterator_t
    362  **
    363  *****************************************************************************/
    364 
    365 xcb_generic_iterator_t
    366 xcb_sync_waitcondition_end (xcb_sync_waitcondition_iterator_t i  /**< */)
    367 {
    368     xcb_generic_iterator_t ret;
    369     ret.data = i.data + i.rem;
    370     ret.index = i.index + ((char *) ret.data - (char *) i.data);
    371     ret.rem = 0;
    372     return ret;
    373 }
    374 
    375 
    376 /*****************************************************************************
    377  **
    378  ** xcb_sync_initialize_cookie_t xcb_sync_initialize
    379  **
    380  ** @param xcb_connection_t *c
    381  ** @param uint8_t           desired_major_version
    382  ** @param uint8_t           desired_minor_version
    383  ** @returns xcb_sync_initialize_cookie_t
    384  **
    385  *****************************************************************************/
    386 
    387 xcb_sync_initialize_cookie_t
    388 xcb_sync_initialize (xcb_connection_t *c  /**< */,
    389                      uint8_t           desired_major_version  /**< */,
    390                      uint8_t           desired_minor_version  /**< */)
    391 {
    392     static const xcb_protocol_request_t xcb_req = {
    393         /* count */ 2,
    394         /* ext */ &xcb_sync_id,
    395         /* opcode */ XCB_SYNC_INITIALIZE,
    396         /* isvoid */ 0
    397     };
    398 
    399     struct iovec xcb_parts[4];
    400     xcb_sync_initialize_cookie_t xcb_ret;
    401     xcb_sync_initialize_request_t xcb_out;
    402 
    403     xcb_out.desired_major_version = desired_major_version;
    404     xcb_out.desired_minor_version = desired_minor_version;
    405 
    406     xcb_parts[2].iov_base = (char *) &xcb_out;
    407     xcb_parts[2].iov_len = sizeof(xcb_out);
    408     xcb_parts[3].iov_base = 0;
    409     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    410 
    411     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    412     return xcb_ret;
    413 }
    414 
    415 
    416 /*****************************************************************************
    417  **
    418  ** xcb_sync_initialize_cookie_t xcb_sync_initialize_unchecked
    419  **
    420  ** @param xcb_connection_t *c
    421  ** @param uint8_t           desired_major_version
    422  ** @param uint8_t           desired_minor_version
    423  ** @returns xcb_sync_initialize_cookie_t
    424  **
    425  *****************************************************************************/
    426 
    427 xcb_sync_initialize_cookie_t
    428 xcb_sync_initialize_unchecked (xcb_connection_t *c  /**< */,
    429                                uint8_t           desired_major_version  /**< */,
    430                                uint8_t           desired_minor_version  /**< */)
    431 {
    432     static const xcb_protocol_request_t xcb_req = {
    433         /* count */ 2,
    434         /* ext */ &xcb_sync_id,
    435         /* opcode */ XCB_SYNC_INITIALIZE,
    436         /* isvoid */ 0
    437     };
    438 
    439     struct iovec xcb_parts[4];
    440     xcb_sync_initialize_cookie_t xcb_ret;
    441     xcb_sync_initialize_request_t xcb_out;
    442 
    443     xcb_out.desired_major_version = desired_major_version;
    444     xcb_out.desired_minor_version = desired_minor_version;
    445 
    446     xcb_parts[2].iov_base = (char *) &xcb_out;
    447     xcb_parts[2].iov_len = sizeof(xcb_out);
    448     xcb_parts[3].iov_base = 0;
    449     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    450 
    451     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    452     return xcb_ret;
    453 }
    454 
    455 
    456 /*****************************************************************************
    457  **
    458  ** xcb_sync_initialize_reply_t * xcb_sync_initialize_reply
    459  **
    460  ** @param xcb_connection_t              *c
    461  ** @param xcb_sync_initialize_cookie_t   cookie
    462  ** @param xcb_generic_error_t          **e
    463  ** @returns xcb_sync_initialize_reply_t *
    464  **
    465  *****************************************************************************/
    466 
    467 xcb_sync_initialize_reply_t *
    468 xcb_sync_initialize_reply (xcb_connection_t              *c  /**< */,
    469                            xcb_sync_initialize_cookie_t   cookie  /**< */,
    470                            xcb_generic_error_t          **e  /**< */)
    471 {
    472     return (xcb_sync_initialize_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    473 }
    474 
    475 int
    476 xcb_sync_list_system_counters_sizeof (const void  *_buffer  /**< */)
    477 {
    478     char *xcb_tmp = (char *)_buffer;
    479     const xcb_sync_list_system_counters_reply_t *_aux = (xcb_sync_list_system_counters_reply_t *)_buffer;
    480     unsigned int xcb_buffer_len = 0;
    481     unsigned int xcb_block_len = 0;
    482     unsigned int xcb_pad = 0;
    483     unsigned int xcb_align_to = 0;
    484 
    485     unsigned int i;
    486     unsigned int xcb_tmp_len;
    487 
    488     xcb_block_len += sizeof(xcb_sync_list_system_counters_reply_t);
    489     xcb_tmp += xcb_block_len;
    490     xcb_buffer_len += xcb_block_len;
    491     xcb_block_len = 0;
    492     /* counters */
    493     for(i=0; i<_aux->counters_len; i++) {
    494         xcb_tmp_len = xcb_sync_systemcounter_sizeof(xcb_tmp);
    495         xcb_block_len += xcb_tmp_len;
    496         xcb_tmp += xcb_tmp_len;
    497     }
    498     xcb_align_to = ALIGNOF(xcb_sync_systemcounter_t);
    499     /* insert padding */
    500     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
    501     xcb_buffer_len += xcb_block_len + xcb_pad;
    502     if (0 != xcb_pad) {
    503         xcb_tmp += xcb_pad;
    504         xcb_pad = 0;
    505     }
    506     xcb_block_len = 0;
    507 
    508     return xcb_buffer_len;
    509 }
    510 
    511 
    512 /*****************************************************************************
    513  **
    514  ** xcb_sync_list_system_counters_cookie_t xcb_sync_list_system_counters
    515  **
    516  ** @param xcb_connection_t *c
    517  ** @returns xcb_sync_list_system_counters_cookie_t
    518  **
    519  *****************************************************************************/
    520 
    521 xcb_sync_list_system_counters_cookie_t
    522 xcb_sync_list_system_counters (xcb_connection_t *c  /**< */)
    523 {
    524     static const xcb_protocol_request_t xcb_req = {
    525         /* count */ 2,
    526         /* ext */ &xcb_sync_id,
    527         /* opcode */ XCB_SYNC_LIST_SYSTEM_COUNTERS,
    528         /* isvoid */ 0
    529     };
    530 
    531     struct iovec xcb_parts[4];
    532     xcb_sync_list_system_counters_cookie_t xcb_ret;
    533     xcb_sync_list_system_counters_request_t xcb_out;
    534 
    535 
    536     xcb_parts[2].iov_base = (char *) &xcb_out;
    537     xcb_parts[2].iov_len = sizeof(xcb_out);
    538     xcb_parts[3].iov_base = 0;
    539     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    540 
    541     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    542     return xcb_ret;
    543 }
    544 
    545 
    546 /*****************************************************************************
    547  **
    548  ** xcb_sync_list_system_counters_cookie_t xcb_sync_list_system_counters_unchecked
    549  **
    550  ** @param xcb_connection_t *c
    551  ** @returns xcb_sync_list_system_counters_cookie_t
    552  **
    553  *****************************************************************************/
    554 
    555 xcb_sync_list_system_counters_cookie_t
    556 xcb_sync_list_system_counters_unchecked (xcb_connection_t *c  /**< */)
    557 {
    558     static const xcb_protocol_request_t xcb_req = {
    559         /* count */ 2,
    560         /* ext */ &xcb_sync_id,
    561         /* opcode */ XCB_SYNC_LIST_SYSTEM_COUNTERS,
    562         /* isvoid */ 0
    563     };
    564 
    565     struct iovec xcb_parts[4];
    566     xcb_sync_list_system_counters_cookie_t xcb_ret;
    567     xcb_sync_list_system_counters_request_t xcb_out;
    568 
    569 
    570     xcb_parts[2].iov_base = (char *) &xcb_out;
    571     xcb_parts[2].iov_len = sizeof(xcb_out);
    572     xcb_parts[3].iov_base = 0;
    573     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    574 
    575     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    576     return xcb_ret;
    577 }
    578 
    579 
    580 /*****************************************************************************
    581  **
    582  ** int xcb_sync_list_system_counters_counters_length
    583  **
    584  ** @param const xcb_sync_list_system_counters_reply_t *R
    585  ** @returns int
    586  **
    587  *****************************************************************************/
    588 
    589 int
    590 xcb_sync_list_system_counters_counters_length (const xcb_sync_list_system_counters_reply_t *R  /**< */)
    591 {
    592     return R->counters_len;
    593 }
    594 
    595 
    596 /*****************************************************************************
    597  **
    598  ** xcb_sync_systemcounter_iterator_t xcb_sync_list_system_counters_counters_iterator
    599  **
    600  ** @param const xcb_sync_list_system_counters_reply_t *R
    601  ** @returns xcb_sync_systemcounter_iterator_t
    602  **
    603  *****************************************************************************/
    604 
    605 xcb_sync_systemcounter_iterator_t
    606 xcb_sync_list_system_counters_counters_iterator (const xcb_sync_list_system_counters_reply_t *R  /**< */)
    607 {
    608     xcb_sync_systemcounter_iterator_t i;
    609     i.data = (xcb_sync_systemcounter_t *) (R + 1);
    610     i.rem = R->counters_len;
    611     i.index = (char *) i.data - (char *) R;
    612     return i;
    613 }
    614 
    615 
    616 /*****************************************************************************
    617  **
    618  ** xcb_sync_list_system_counters_reply_t * xcb_sync_list_system_counters_reply
    619  **
    620  ** @param xcb_connection_t                        *c
    621  ** @param xcb_sync_list_system_counters_cookie_t   cookie
    622  ** @param xcb_generic_error_t                    **e
    623  ** @returns xcb_sync_list_system_counters_reply_t *
    624  **
    625  *****************************************************************************/
    626 
    627 xcb_sync_list_system_counters_reply_t *
    628 xcb_sync_list_system_counters_reply (xcb_connection_t                        *c  /**< */,
    629                                      xcb_sync_list_system_counters_cookie_t   cookie  /**< */,
    630                                      xcb_generic_error_t                    **e  /**< */)
    631 {
    632     return (xcb_sync_list_system_counters_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    633 }
    634 
    635 
    636 /*****************************************************************************
    637  **
    638  ** xcb_void_cookie_t xcb_sync_create_counter_checked
    639  **
    640  ** @param xcb_connection_t   *c
    641  ** @param xcb_sync_counter_t  id
    642  ** @param xcb_sync_int64_t    initial_value
    643  ** @returns xcb_void_cookie_t
    644  **
    645  *****************************************************************************/
    646 
    647 xcb_void_cookie_t
    648 xcb_sync_create_counter_checked (xcb_connection_t   *c  /**< */,
    649                                  xcb_sync_counter_t  id  /**< */,
    650                                  xcb_sync_int64_t    initial_value  /**< */)
    651 {
    652     static const xcb_protocol_request_t xcb_req = {
    653         /* count */ 2,
    654         /* ext */ &xcb_sync_id,
    655         /* opcode */ XCB_SYNC_CREATE_COUNTER,
    656         /* isvoid */ 1
    657     };
    658 
    659     struct iovec xcb_parts[4];
    660     xcb_void_cookie_t xcb_ret;
    661     xcb_sync_create_counter_request_t xcb_out;
    662 
    663     xcb_out.id = id;
    664     xcb_out.initial_value = initial_value;
    665 
    666     xcb_parts[2].iov_base = (char *) &xcb_out;
    667     xcb_parts[2].iov_len = sizeof(xcb_out);
    668     xcb_parts[3].iov_base = 0;
    669     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    670 
    671     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    672     return xcb_ret;
    673 }
    674 
    675 
    676 /*****************************************************************************
    677  **
    678  ** xcb_void_cookie_t xcb_sync_create_counter
    679  **
    680  ** @param xcb_connection_t   *c
    681  ** @param xcb_sync_counter_t  id
    682  ** @param xcb_sync_int64_t    initial_value
    683  ** @returns xcb_void_cookie_t
    684  **
    685  *****************************************************************************/
    686 
    687 xcb_void_cookie_t
    688 xcb_sync_create_counter (xcb_connection_t   *c  /**< */,
    689                          xcb_sync_counter_t  id  /**< */,
    690                          xcb_sync_int64_t    initial_value  /**< */)
    691 {
    692     static const xcb_protocol_request_t xcb_req = {
    693         /* count */ 2,
    694         /* ext */ &xcb_sync_id,
    695         /* opcode */ XCB_SYNC_CREATE_COUNTER,
    696         /* isvoid */ 1
    697     };
    698 
    699     struct iovec xcb_parts[4];
    700     xcb_void_cookie_t xcb_ret;
    701     xcb_sync_create_counter_request_t xcb_out;
    702 
    703     xcb_out.id = id;
    704     xcb_out.initial_value = initial_value;
    705 
    706     xcb_parts[2].iov_base = (char *) &xcb_out;
    707     xcb_parts[2].iov_len = sizeof(xcb_out);
    708     xcb_parts[3].iov_base = 0;
    709     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    710 
    711     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    712     return xcb_ret;
    713 }
    714 
    715 
    716 /*****************************************************************************
    717  **
    718  ** xcb_void_cookie_t xcb_sync_destroy_counter_checked
    719  **
    720  ** @param xcb_connection_t   *c
    721  ** @param xcb_sync_counter_t  counter
    722  ** @returns xcb_void_cookie_t
    723  **
    724  *****************************************************************************/
    725 
    726 xcb_void_cookie_t
    727 xcb_sync_destroy_counter_checked (xcb_connection_t   *c  /**< */,
    728                                   xcb_sync_counter_t  counter  /**< */)
    729 {
    730     static const xcb_protocol_request_t xcb_req = {
    731         /* count */ 2,
    732         /* ext */ &xcb_sync_id,
    733         /* opcode */ XCB_SYNC_DESTROY_COUNTER,
    734         /* isvoid */ 1
    735     };
    736 
    737     struct iovec xcb_parts[4];
    738     xcb_void_cookie_t xcb_ret;
    739     xcb_sync_destroy_counter_request_t xcb_out;
    740 
    741     xcb_out.counter = counter;
    742 
    743     xcb_parts[2].iov_base = (char *) &xcb_out;
    744     xcb_parts[2].iov_len = sizeof(xcb_out);
    745     xcb_parts[3].iov_base = 0;
    746     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    747 
    748     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    749     return xcb_ret;
    750 }
    751 
    752 
    753 /*****************************************************************************
    754  **
    755  ** xcb_void_cookie_t xcb_sync_destroy_counter
    756  **
    757  ** @param xcb_connection_t   *c
    758  ** @param xcb_sync_counter_t  counter
    759  ** @returns xcb_void_cookie_t
    760  **
    761  *****************************************************************************/
    762 
    763 xcb_void_cookie_t
    764 xcb_sync_destroy_counter (xcb_connection_t   *c  /**< */,
    765                           xcb_sync_counter_t  counter  /**< */)
    766 {
    767     static const xcb_protocol_request_t xcb_req = {
    768         /* count */ 2,
    769         /* ext */ &xcb_sync_id,
    770         /* opcode */ XCB_SYNC_DESTROY_COUNTER,
    771         /* isvoid */ 1
    772     };
    773 
    774     struct iovec xcb_parts[4];
    775     xcb_void_cookie_t xcb_ret;
    776     xcb_sync_destroy_counter_request_t xcb_out;
    777 
    778     xcb_out.counter = counter;
    779 
    780     xcb_parts[2].iov_base = (char *) &xcb_out;
    781     xcb_parts[2].iov_len = sizeof(xcb_out);
    782     xcb_parts[3].iov_base = 0;
    783     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    784 
    785     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    786     return xcb_ret;
    787 }
    788 
    789 
    790 /*****************************************************************************
    791  **
    792  ** xcb_sync_query_counter_cookie_t xcb_sync_query_counter
    793  **
    794  ** @param xcb_connection_t   *c
    795  ** @param xcb_sync_counter_t  counter
    796  ** @returns xcb_sync_query_counter_cookie_t
    797  **
    798  *****************************************************************************/
    799 
    800 xcb_sync_query_counter_cookie_t
    801 xcb_sync_query_counter (xcb_connection_t   *c  /**< */,
    802                         xcb_sync_counter_t  counter  /**< */)
    803 {
    804     static const xcb_protocol_request_t xcb_req = {
    805         /* count */ 2,
    806         /* ext */ &xcb_sync_id,
    807         /* opcode */ XCB_SYNC_QUERY_COUNTER,
    808         /* isvoid */ 0
    809     };
    810 
    811     struct iovec xcb_parts[4];
    812     xcb_sync_query_counter_cookie_t xcb_ret;
    813     xcb_sync_query_counter_request_t xcb_out;
    814 
    815     xcb_out.counter = counter;
    816 
    817     xcb_parts[2].iov_base = (char *) &xcb_out;
    818     xcb_parts[2].iov_len = sizeof(xcb_out);
    819     xcb_parts[3].iov_base = 0;
    820     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    821 
    822     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    823     return xcb_ret;
    824 }
    825 
    826 
    827 /*****************************************************************************
    828  **
    829  ** xcb_sync_query_counter_cookie_t xcb_sync_query_counter_unchecked
    830  **
    831  ** @param xcb_connection_t   *c
    832  ** @param xcb_sync_counter_t  counter
    833  ** @returns xcb_sync_query_counter_cookie_t
    834  **
    835  *****************************************************************************/
    836 
    837 xcb_sync_query_counter_cookie_t
    838 xcb_sync_query_counter_unchecked (xcb_connection_t   *c  /**< */,
    839                                   xcb_sync_counter_t  counter  /**< */)
    840 {
    841     static const xcb_protocol_request_t xcb_req = {
    842         /* count */ 2,
    843         /* ext */ &xcb_sync_id,
    844         /* opcode */ XCB_SYNC_QUERY_COUNTER,
    845         /* isvoid */ 0
    846     };
    847 
    848     struct iovec xcb_parts[4];
    849     xcb_sync_query_counter_cookie_t xcb_ret;
    850     xcb_sync_query_counter_request_t xcb_out;
    851 
    852     xcb_out.counter = counter;
    853 
    854     xcb_parts[2].iov_base = (char *) &xcb_out;
    855     xcb_parts[2].iov_len = sizeof(xcb_out);
    856     xcb_parts[3].iov_base = 0;
    857     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    858 
    859     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    860     return xcb_ret;
    861 }
    862 
    863 
    864 /*****************************************************************************
    865  **
    866  ** xcb_sync_query_counter_reply_t * xcb_sync_query_counter_reply
    867  **
    868  ** @param xcb_connection_t                 *c
    869  ** @param xcb_sync_query_counter_cookie_t   cookie
    870  ** @param xcb_generic_error_t             **e
    871  ** @returns xcb_sync_query_counter_reply_t *
    872  **
    873  *****************************************************************************/
    874 
    875 xcb_sync_query_counter_reply_t *
    876 xcb_sync_query_counter_reply (xcb_connection_t                 *c  /**< */,
    877                               xcb_sync_query_counter_cookie_t   cookie  /**< */,
    878                               xcb_generic_error_t             **e  /**< */)
    879 {
    880     return (xcb_sync_query_counter_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    881 }
    882 
    883 int
    884 xcb_sync_await_sizeof (const void  *_buffer  /**< */,
    885                        uint32_t     wait_list_len  /**< */)
    886 {
    887     char *xcb_tmp = (char *)_buffer;
    888     unsigned int xcb_buffer_len = 0;
    889     unsigned int xcb_block_len = 0;
    890     unsigned int xcb_pad = 0;
    891     unsigned int xcb_align_to = 0;
    892 
    893 
    894     xcb_block_len += sizeof(xcb_sync_await_request_t);
    895     xcb_tmp += xcb_block_len;
    896     xcb_buffer_len += xcb_block_len;
    897     xcb_block_len = 0;
    898     /* wait_list */
    899     xcb_block_len += wait_list_len * sizeof(xcb_sync_waitcondition_t);
    900     xcb_tmp += xcb_block_len;
    901     xcb_align_to = ALIGNOF(xcb_sync_waitcondition_t);
    902     /* insert padding */
    903     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
    904     xcb_buffer_len += xcb_block_len + xcb_pad;
    905     if (0 != xcb_pad) {
    906         xcb_tmp += xcb_pad;
    907         xcb_pad = 0;
    908     }
    909     xcb_block_len = 0;
    910 
    911     return xcb_buffer_len;
    912 }
    913 
    914 
    915 /*****************************************************************************
    916  **
    917  ** xcb_void_cookie_t xcb_sync_await_checked
    918  **
    919  ** @param xcb_connection_t               *c
    920  ** @param uint32_t                        wait_list_len
    921  ** @param const xcb_sync_waitcondition_t *wait_list
    922  ** @returns xcb_void_cookie_t
    923  **
    924  *****************************************************************************/
    925 
    926 xcb_void_cookie_t
    927 xcb_sync_await_checked (xcb_connection_t               *c  /**< */,
    928                         uint32_t                        wait_list_len  /**< */,
    929                         const xcb_sync_waitcondition_t *wait_list  /**< */)
    930 {
    931     static const xcb_protocol_request_t xcb_req = {
    932         /* count */ 4,
    933         /* ext */ &xcb_sync_id,
    934         /* opcode */ XCB_SYNC_AWAIT,
    935         /* isvoid */ 1
    936     };
    937 
    938     struct iovec xcb_parts[6];
    939     xcb_void_cookie_t xcb_ret;
    940     xcb_sync_await_request_t xcb_out;
    941 
    942 
    943     xcb_parts[2].iov_base = (char *) &xcb_out;
    944     xcb_parts[2].iov_len = sizeof(xcb_out);
    945     xcb_parts[3].iov_base = 0;
    946     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    947     /* xcb_sync_waitcondition_t wait_list */
    948     xcb_parts[4].iov_base = (char *) wait_list;
    949     xcb_parts[4].iov_len = wait_list_len * sizeof(xcb_sync_waitcondition_t);
    950     xcb_parts[5].iov_base = 0;
    951     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
    952 
    953     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    954     return xcb_ret;
    955 }
    956 
    957 
    958 /*****************************************************************************
    959  **
    960  ** xcb_void_cookie_t xcb_sync_await
    961  **
    962  ** @param xcb_connection_t               *c
    963  ** @param uint32_t                        wait_list_len
    964  ** @param const xcb_sync_waitcondition_t *wait_list
    965  ** @returns xcb_void_cookie_t
    966  **
    967  *****************************************************************************/
    968 
    969 xcb_void_cookie_t
    970 xcb_sync_await (xcb_connection_t               *c  /**< */,
    971                 uint32_t                        wait_list_len  /**< */,
    972                 const xcb_sync_waitcondition_t *wait_list  /**< */)
    973 {
    974     static const xcb_protocol_request_t xcb_req = {
    975         /* count */ 4,
    976         /* ext */ &xcb_sync_id,
    977         /* opcode */ XCB_SYNC_AWAIT,
    978         /* isvoid */ 1
    979     };
    980 
    981     struct iovec xcb_parts[6];
    982     xcb_void_cookie_t xcb_ret;
    983     xcb_sync_await_request_t xcb_out;
    984 
    985 
    986     xcb_parts[2].iov_base = (char *) &xcb_out;
    987     xcb_parts[2].iov_len = sizeof(xcb_out);
    988     xcb_parts[3].iov_base = 0;
    989     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    990     /* xcb_sync_waitcondition_t wait_list */
    991     xcb_parts[4].iov_base = (char *) wait_list;
    992     xcb_parts[4].iov_len = wait_list_len * sizeof(xcb_sync_waitcondition_t);
    993     xcb_parts[5].iov_base = 0;
    994     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
    995 
    996     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    997     return xcb_ret;
    998 }
    999 
   1000 
   1001 /*****************************************************************************
   1002  **
   1003  ** xcb_void_cookie_t xcb_sync_change_counter_checked
   1004  **
   1005  ** @param xcb_connection_t   *c
   1006  ** @param xcb_sync_counter_t  counter
   1007  ** @param xcb_sync_int64_t    amount
   1008  ** @returns xcb_void_cookie_t
   1009  **
   1010  *****************************************************************************/
   1011 
   1012 xcb_void_cookie_t
   1013 xcb_sync_change_counter_checked (xcb_connection_t   *c  /**< */,
   1014                                  xcb_sync_counter_t  counter  /**< */,
   1015                                  xcb_sync_int64_t    amount  /**< */)
   1016 {
   1017     static const xcb_protocol_request_t xcb_req = {
   1018         /* count */ 2,
   1019         /* ext */ &xcb_sync_id,
   1020         /* opcode */ XCB_SYNC_CHANGE_COUNTER,
   1021         /* isvoid */ 1
   1022     };
   1023 
   1024     struct iovec xcb_parts[4];
   1025     xcb_void_cookie_t xcb_ret;
   1026     xcb_sync_change_counter_request_t xcb_out;
   1027 
   1028     xcb_out.counter = counter;
   1029     xcb_out.amount = amount;
   1030 
   1031     xcb_parts[2].iov_base = (char *) &xcb_out;
   1032     xcb_parts[2].iov_len = sizeof(xcb_out);
   1033     xcb_parts[3].iov_base = 0;
   1034     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1035 
   1036     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1037     return xcb_ret;
   1038 }
   1039 
   1040 
   1041 /*****************************************************************************
   1042  **
   1043  ** xcb_void_cookie_t xcb_sync_change_counter
   1044  **
   1045  ** @param xcb_connection_t   *c
   1046  ** @param xcb_sync_counter_t  counter
   1047  ** @param xcb_sync_int64_t    amount
   1048  ** @returns xcb_void_cookie_t
   1049  **
   1050  *****************************************************************************/
   1051 
   1052 xcb_void_cookie_t
   1053 xcb_sync_change_counter (xcb_connection_t   *c  /**< */,
   1054                          xcb_sync_counter_t  counter  /**< */,
   1055                          xcb_sync_int64_t    amount  /**< */)
   1056 {
   1057     static const xcb_protocol_request_t xcb_req = {
   1058         /* count */ 2,
   1059         /* ext */ &xcb_sync_id,
   1060         /* opcode */ XCB_SYNC_CHANGE_COUNTER,
   1061         /* isvoid */ 1
   1062     };
   1063 
   1064     struct iovec xcb_parts[4];
   1065     xcb_void_cookie_t xcb_ret;
   1066     xcb_sync_change_counter_request_t xcb_out;
   1067 
   1068     xcb_out.counter = counter;
   1069     xcb_out.amount = amount;
   1070 
   1071     xcb_parts[2].iov_base = (char *) &xcb_out;
   1072     xcb_parts[2].iov_len = sizeof(xcb_out);
   1073     xcb_parts[3].iov_base = 0;
   1074     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1075 
   1076     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1077     return xcb_ret;
   1078 }
   1079 
   1080 
   1081 /*****************************************************************************
   1082  **
   1083  ** xcb_void_cookie_t xcb_sync_set_counter_checked
   1084  **
   1085  ** @param xcb_connection_t   *c
   1086  ** @param xcb_sync_counter_t  counter
   1087  ** @param xcb_sync_int64_t    value
   1088  ** @returns xcb_void_cookie_t
   1089  **
   1090  *****************************************************************************/
   1091 
   1092 xcb_void_cookie_t
   1093 xcb_sync_set_counter_checked (xcb_connection_t   *c  /**< */,
   1094                               xcb_sync_counter_t  counter  /**< */,
   1095                               xcb_sync_int64_t    value  /**< */)
   1096 {
   1097     static const xcb_protocol_request_t xcb_req = {
   1098         /* count */ 2,
   1099         /* ext */ &xcb_sync_id,
   1100         /* opcode */ XCB_SYNC_SET_COUNTER,
   1101         /* isvoid */ 1
   1102     };
   1103 
   1104     struct iovec xcb_parts[4];
   1105     xcb_void_cookie_t xcb_ret;
   1106     xcb_sync_set_counter_request_t xcb_out;
   1107 
   1108     xcb_out.counter = counter;
   1109     xcb_out.value = value;
   1110 
   1111     xcb_parts[2].iov_base = (char *) &xcb_out;
   1112     xcb_parts[2].iov_len = sizeof(xcb_out);
   1113     xcb_parts[3].iov_base = 0;
   1114     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1115 
   1116     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1117     return xcb_ret;
   1118 }
   1119 
   1120 
   1121 /*****************************************************************************
   1122  **
   1123  ** xcb_void_cookie_t xcb_sync_set_counter
   1124  **
   1125  ** @param xcb_connection_t   *c
   1126  ** @param xcb_sync_counter_t  counter
   1127  ** @param xcb_sync_int64_t    value
   1128  ** @returns xcb_void_cookie_t
   1129  **
   1130  *****************************************************************************/
   1131 
   1132 xcb_void_cookie_t
   1133 xcb_sync_set_counter (xcb_connection_t   *c  /**< */,
   1134                       xcb_sync_counter_t  counter  /**< */,
   1135                       xcb_sync_int64_t    value  /**< */)
   1136 {
   1137     static const xcb_protocol_request_t xcb_req = {
   1138         /* count */ 2,
   1139         /* ext */ &xcb_sync_id,
   1140         /* opcode */ XCB_SYNC_SET_COUNTER,
   1141         /* isvoid */ 1
   1142     };
   1143 
   1144     struct iovec xcb_parts[4];
   1145     xcb_void_cookie_t xcb_ret;
   1146     xcb_sync_set_counter_request_t xcb_out;
   1147 
   1148     xcb_out.counter = counter;
   1149     xcb_out.value = value;
   1150 
   1151     xcb_parts[2].iov_base = (char *) &xcb_out;
   1152     xcb_parts[2].iov_len = sizeof(xcb_out);
   1153     xcb_parts[3].iov_base = 0;
   1154     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1155 
   1156     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1157     return xcb_ret;
   1158 }
   1159 
   1160 int
   1161 xcb_sync_create_alarm_value_list_serialize (void                                     **_buffer  /**< */,
   1162                                             uint32_t                                   value_mask  /**< */,
   1163                                             const xcb_sync_create_alarm_value_list_t  *_aux  /**< */)
   1164 {
   1165     char *xcb_out = *_buffer;
   1166     unsigned int xcb_buffer_len = 0;
   1167     unsigned int xcb_align_to = 0;
   1168 
   1169     unsigned int xcb_pad = 0;
   1170     char xcb_pad0[3] = {0, 0, 0};
   1171     struct iovec xcb_parts[7];
   1172     unsigned int xcb_parts_idx = 0;
   1173     unsigned int xcb_block_len = 0;
   1174     unsigned int i;
   1175     char *xcb_tmp;
   1176 
   1177     if(value_mask & XCB_SYNC_CA_COUNTER) {
   1178         /* xcb_sync_create_alarm_value_list_t.counter */
   1179         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->counter;
   1180         xcb_block_len += sizeof(xcb_sync_counter_t);
   1181         xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_counter_t);
   1182         xcb_parts_idx++;
   1183         xcb_align_to = ALIGNOF(xcb_sync_counter_t);
   1184     }
   1185     if(value_mask & XCB_SYNC_CA_VALUE_TYPE) {
   1186         /* xcb_sync_create_alarm_value_list_t.valueType */
   1187         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->valueType;
   1188         xcb_block_len += sizeof(uint32_t);
   1189         xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
   1190         xcb_parts_idx++;
   1191         xcb_align_to = ALIGNOF(uint32_t);
   1192     }
   1193     if(value_mask & XCB_SYNC_CA_VALUE) {
   1194         /* xcb_sync_create_alarm_value_list_t.value */
   1195         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->value;
   1196         xcb_block_len += sizeof(xcb_sync_int64_t);
   1197         xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_int64_t);
   1198         xcb_parts_idx++;
   1199         xcb_align_to = ALIGNOF(xcb_sync_int64_t);
   1200     }
   1201     if(value_mask & XCB_SYNC_CA_TEST_TYPE) {
   1202         /* xcb_sync_create_alarm_value_list_t.testType */
   1203         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->testType;
   1204         xcb_block_len += sizeof(uint32_t);
   1205         xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
   1206         xcb_parts_idx++;
   1207         xcb_align_to = ALIGNOF(uint32_t);
   1208     }
   1209     if(value_mask & XCB_SYNC_CA_DELTA) {
   1210         /* xcb_sync_create_alarm_value_list_t.delta */
   1211         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->delta;
   1212         xcb_block_len += sizeof(xcb_sync_int64_t);
   1213         xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_int64_t);
   1214         xcb_parts_idx++;
   1215         xcb_align_to = ALIGNOF(xcb_sync_int64_t);
   1216     }
   1217     if(value_mask & XCB_SYNC_CA_EVENTS) {
   1218         /* xcb_sync_create_alarm_value_list_t.events */
   1219         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->events;
   1220         xcb_block_len += sizeof(uint32_t);
   1221         xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
   1222         xcb_parts_idx++;
   1223         xcb_align_to = ALIGNOF(uint32_t);
   1224     }
   1225     /* insert padding */
   1226     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
   1227     xcb_buffer_len += xcb_block_len + xcb_pad;
   1228     if (0 != xcb_pad) {
   1229         xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
   1230         xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
   1231         xcb_parts_idx++;
   1232         xcb_pad = 0;
   1233     }
   1234     xcb_block_len = 0;
   1235 
   1236     if (NULL == xcb_out) {
   1237         /* allocate memory */
   1238         xcb_out = malloc(xcb_buffer_len);
   1239         *_buffer = xcb_out;
   1240     }
   1241 
   1242     xcb_tmp = xcb_out;
   1243     for(i=0; i<xcb_parts_idx; i++) {
   1244         if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
   1245             memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
   1246         if (0 != xcb_parts[i].iov_len)
   1247             xcb_tmp += xcb_parts[i].iov_len;
   1248     }
   1249 
   1250     return xcb_buffer_len;
   1251 }
   1252 
   1253 int
   1254 xcb_sync_create_alarm_value_list_unpack (const void                          *_buffer  /**< */,
   1255                                          uint32_t                             value_mask  /**< */,
   1256                                          xcb_sync_create_alarm_value_list_t  *_aux  /**< */)
   1257 {
   1258     char *xcb_tmp = (char *)_buffer;
   1259     unsigned int xcb_buffer_len = 0;
   1260     unsigned int xcb_block_len = 0;
   1261     unsigned int xcb_pad = 0;
   1262     unsigned int xcb_align_to = 0;
   1263 
   1264 
   1265     if(value_mask & XCB_SYNC_CA_COUNTER) {
   1266         /* xcb_sync_create_alarm_value_list_t.counter */
   1267         _aux->counter = *(xcb_sync_counter_t *)xcb_tmp;
   1268         xcb_block_len += sizeof(xcb_sync_counter_t);
   1269         xcb_tmp += sizeof(xcb_sync_counter_t);
   1270         xcb_align_to = ALIGNOF(xcb_sync_counter_t);
   1271     }
   1272     if(value_mask & XCB_SYNC_CA_VALUE_TYPE) {
   1273         /* xcb_sync_create_alarm_value_list_t.valueType */
   1274         _aux->valueType = *(uint32_t *)xcb_tmp;
   1275         xcb_block_len += sizeof(uint32_t);
   1276         xcb_tmp += sizeof(uint32_t);
   1277         xcb_align_to = ALIGNOF(uint32_t);
   1278     }
   1279     if(value_mask & XCB_SYNC_CA_VALUE) {
   1280         /* xcb_sync_create_alarm_value_list_t.value */
   1281         _aux->value = *(xcb_sync_int64_t *)xcb_tmp;
   1282         xcb_block_len += sizeof(xcb_sync_int64_t);
   1283         xcb_tmp += sizeof(xcb_sync_int64_t);
   1284         xcb_align_to = ALIGNOF(xcb_sync_int64_t);
   1285     }
   1286     if(value_mask & XCB_SYNC_CA_TEST_TYPE) {
   1287         /* xcb_sync_create_alarm_value_list_t.testType */
   1288         _aux->testType = *(uint32_t *)xcb_tmp;
   1289         xcb_block_len += sizeof(uint32_t);
   1290         xcb_tmp += sizeof(uint32_t);
   1291         xcb_align_to = ALIGNOF(uint32_t);
   1292     }
   1293     if(value_mask & XCB_SYNC_CA_DELTA) {
   1294         /* xcb_sync_create_alarm_value_list_t.delta */
   1295         _aux->delta = *(xcb_sync_int64_t *)xcb_tmp;
   1296         xcb_block_len += sizeof(xcb_sync_int64_t);
   1297         xcb_tmp += sizeof(xcb_sync_int64_t);
   1298         xcb_align_to = ALIGNOF(xcb_sync_int64_t);
   1299     }
   1300     if(value_mask & XCB_SYNC_CA_EVENTS) {
   1301         /* xcb_sync_create_alarm_value_list_t.events */
   1302         _aux->events = *(uint32_t *)xcb_tmp;
   1303         xcb_block_len += sizeof(uint32_t);
   1304         xcb_tmp += sizeof(uint32_t);
   1305         xcb_align_to = ALIGNOF(uint32_t);
   1306     }
   1307     /* insert padding */
   1308     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
   1309     xcb_buffer_len += xcb_block_len + xcb_pad;
   1310     if (0 != xcb_pad) {
   1311         xcb_tmp += xcb_pad;
   1312         xcb_pad = 0;
   1313     }
   1314     xcb_block_len = 0;
   1315 
   1316     return xcb_buffer_len;
   1317 }
   1318 
   1319 int
   1320 xcb_sync_create_alarm_value_list_sizeof (const void  *_buffer  /**< */,
   1321                                          uint32_t     value_mask  /**< */)
   1322 {
   1323     xcb_sync_create_alarm_value_list_t _aux;
   1324     return xcb_sync_create_alarm_value_list_unpack(_buffer, value_mask, &_aux);
   1325 }
   1326 
   1327 
   1328 /*****************************************************************************
   1329  **
   1330  ** xcb_void_cookie_t xcb_sync_create_alarm_checked
   1331  **
   1332  ** @param xcb_connection_t *c
   1333  ** @param xcb_sync_alarm_t  id
   1334  ** @param uint32_t          value_mask
   1335  ** @param const void       *value_list
   1336  ** @returns xcb_void_cookie_t
   1337  **
   1338  *****************************************************************************/
   1339 
   1340 xcb_void_cookie_t
   1341 xcb_sync_create_alarm_checked (xcb_connection_t *c  /**< */,
   1342                                xcb_sync_alarm_t  id  /**< */,
   1343                                uint32_t          value_mask  /**< */,
   1344                                const void       *value_list  /**< */)
   1345 {
   1346     static const xcb_protocol_request_t xcb_req = {
   1347         /* count */ 3,
   1348         /* ext */ &xcb_sync_id,
   1349         /* opcode */ XCB_SYNC_CREATE_ALARM,
   1350         /* isvoid */ 1
   1351     };
   1352 
   1353     struct iovec xcb_parts[5];
   1354     xcb_void_cookie_t xcb_ret;
   1355     xcb_sync_create_alarm_request_t xcb_out;
   1356 
   1357     xcb_out.id = id;
   1358     xcb_out.value_mask = value_mask;
   1359 
   1360     xcb_parts[2].iov_base = (char *) &xcb_out;
   1361     xcb_parts[2].iov_len = sizeof(xcb_out);
   1362     xcb_parts[3].iov_base = 0;
   1363     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1364     /* xcb_sync_create_alarm_value_list_t value_list */
   1365     xcb_parts[4].iov_base = (char *) value_list;
   1366     xcb_parts[4].iov_len =
   1367       xcb_sync_create_alarm_value_list_sizeof (value_list, value_mask);
   1368 
   1369     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1370     return xcb_ret;
   1371 }
   1372 
   1373 
   1374 /*****************************************************************************
   1375  **
   1376  ** xcb_void_cookie_t xcb_sync_create_alarm
   1377  **
   1378  ** @param xcb_connection_t *c
   1379  ** @param xcb_sync_alarm_t  id
   1380  ** @param uint32_t          value_mask
   1381  ** @param const void       *value_list
   1382  ** @returns xcb_void_cookie_t
   1383  **
   1384  *****************************************************************************/
   1385 
   1386 xcb_void_cookie_t
   1387 xcb_sync_create_alarm (xcb_connection_t *c  /**< */,
   1388                        xcb_sync_alarm_t  id  /**< */,
   1389                        uint32_t          value_mask  /**< */,
   1390                        const void       *value_list  /**< */)
   1391 {
   1392     static const xcb_protocol_request_t xcb_req = {
   1393         /* count */ 3,
   1394         /* ext */ &xcb_sync_id,
   1395         /* opcode */ XCB_SYNC_CREATE_ALARM,
   1396         /* isvoid */ 1
   1397     };
   1398 
   1399     struct iovec xcb_parts[5];
   1400     xcb_void_cookie_t xcb_ret;
   1401     xcb_sync_create_alarm_request_t xcb_out;
   1402 
   1403     xcb_out.id = id;
   1404     xcb_out.value_mask = value_mask;
   1405 
   1406     xcb_parts[2].iov_base = (char *) &xcb_out;
   1407     xcb_parts[2].iov_len = sizeof(xcb_out);
   1408     xcb_parts[3].iov_base = 0;
   1409     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1410     /* xcb_sync_create_alarm_value_list_t value_list */
   1411     xcb_parts[4].iov_base = (char *) value_list;
   1412     xcb_parts[4].iov_len =
   1413       xcb_sync_create_alarm_value_list_sizeof (value_list, value_mask);
   1414 
   1415     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1416     return xcb_ret;
   1417 }
   1418 
   1419 
   1420 /*****************************************************************************
   1421  **
   1422  ** xcb_void_cookie_t xcb_sync_create_alarm_aux_checked
   1423  **
   1424  ** @param xcb_connection_t                         *c
   1425  ** @param xcb_sync_alarm_t                          id
   1426  ** @param uint32_t                                  value_mask
   1427  ** @param const xcb_sync_create_alarm_value_list_t *value_list
   1428  ** @returns xcb_void_cookie_t
   1429  **
   1430  *****************************************************************************/
   1431 
   1432 xcb_void_cookie_t
   1433 xcb_sync_create_alarm_aux_checked (xcb_connection_t                         *c  /**< */,
   1434                                    xcb_sync_alarm_t                          id  /**< */,
   1435                                    uint32_t                                  value_mask  /**< */,
   1436                                    const xcb_sync_create_alarm_value_list_t *value_list  /**< */)
   1437 {
   1438     static const xcb_protocol_request_t xcb_req = {
   1439         /* count */ 3,
   1440         /* ext */ &xcb_sync_id,
   1441         /* opcode */ XCB_SYNC_CREATE_ALARM,
   1442         /* isvoid */ 1
   1443     };
   1444 
   1445     struct iovec xcb_parts[5];
   1446     xcb_void_cookie_t xcb_ret;
   1447     xcb_sync_create_alarm_request_t xcb_out;
   1448     void *xcb_aux0 = 0;
   1449 
   1450     xcb_out.id = id;
   1451     xcb_out.value_mask = value_mask;
   1452 
   1453     xcb_parts[2].iov_base = (char *) &xcb_out;
   1454     xcb_parts[2].iov_len = sizeof(xcb_out);
   1455     xcb_parts[3].iov_base = 0;
   1456     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1457     /* xcb_sync_create_alarm_value_list_t value_list */
   1458     xcb_parts[4].iov_len =
   1459       xcb_sync_create_alarm_value_list_serialize (&xcb_aux0, value_mask, value_list);
   1460     xcb_parts[4].iov_base = xcb_aux0;
   1461 
   1462     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1463     free(xcb_aux0);
   1464     return xcb_ret;
   1465 }
   1466 
   1467 
   1468 /*****************************************************************************
   1469  **
   1470  ** xcb_void_cookie_t xcb_sync_create_alarm_aux
   1471  **
   1472  ** @param xcb_connection_t                         *c
   1473  ** @param xcb_sync_alarm_t                          id
   1474  ** @param uint32_t                                  value_mask
   1475  ** @param const xcb_sync_create_alarm_value_list_t *value_list
   1476  ** @returns xcb_void_cookie_t
   1477  **
   1478  *****************************************************************************/
   1479 
   1480 xcb_void_cookie_t
   1481 xcb_sync_create_alarm_aux (xcb_connection_t                         *c  /**< */,
   1482                            xcb_sync_alarm_t                          id  /**< */,
   1483                            uint32_t                                  value_mask  /**< */,
   1484                            const xcb_sync_create_alarm_value_list_t *value_list  /**< */)
   1485 {
   1486     static const xcb_protocol_request_t xcb_req = {
   1487         /* count */ 3,
   1488         /* ext */ &xcb_sync_id,
   1489         /* opcode */ XCB_SYNC_CREATE_ALARM,
   1490         /* isvoid */ 1
   1491     };
   1492 
   1493     struct iovec xcb_parts[5];
   1494     xcb_void_cookie_t xcb_ret;
   1495     xcb_sync_create_alarm_request_t xcb_out;
   1496     void *xcb_aux0 = 0;
   1497 
   1498     xcb_out.id = id;
   1499     xcb_out.value_mask = value_mask;
   1500 
   1501     xcb_parts[2].iov_base = (char *) &xcb_out;
   1502     xcb_parts[2].iov_len = sizeof(xcb_out);
   1503     xcb_parts[3].iov_base = 0;
   1504     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1505     /* xcb_sync_create_alarm_value_list_t value_list */
   1506     xcb_parts[4].iov_len =
   1507       xcb_sync_create_alarm_value_list_serialize (&xcb_aux0, value_mask, value_list);
   1508     xcb_parts[4].iov_base = xcb_aux0;
   1509 
   1510     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1511     free(xcb_aux0);
   1512     return xcb_ret;
   1513 }
   1514 
   1515 int
   1516 xcb_sync_change_alarm_value_list_serialize (void                                     **_buffer  /**< */,
   1517                                             uint32_t                                   value_mask  /**< */,
   1518                                             const xcb_sync_change_alarm_value_list_t  *_aux  /**< */)
   1519 {
   1520     char *xcb_out = *_buffer;
   1521     unsigned int xcb_buffer_len = 0;
   1522     unsigned int xcb_align_to = 0;
   1523 
   1524     unsigned int xcb_pad = 0;
   1525     char xcb_pad0[3] = {0, 0, 0};
   1526     struct iovec xcb_parts[7];
   1527     unsigned int xcb_parts_idx = 0;
   1528     unsigned int xcb_block_len = 0;
   1529     unsigned int i;
   1530     char *xcb_tmp;
   1531 
   1532     if(value_mask & XCB_SYNC_CA_COUNTER) {
   1533         /* xcb_sync_change_alarm_value_list_t.counter */
   1534         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->counter;
   1535         xcb_block_len += sizeof(xcb_sync_counter_t);
   1536         xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_counter_t);
   1537         xcb_parts_idx++;
   1538         xcb_align_to = ALIGNOF(xcb_sync_counter_t);
   1539     }
   1540     if(value_mask & XCB_SYNC_CA_VALUE_TYPE) {
   1541         /* xcb_sync_change_alarm_value_list_t.valueType */
   1542         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->valueType;
   1543         xcb_block_len += sizeof(uint32_t);
   1544         xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
   1545         xcb_parts_idx++;
   1546         xcb_align_to = ALIGNOF(uint32_t);
   1547     }
   1548     if(value_mask & XCB_SYNC_CA_VALUE) {
   1549         /* xcb_sync_change_alarm_value_list_t.value */
   1550         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->value;
   1551         xcb_block_len += sizeof(xcb_sync_int64_t);
   1552         xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_int64_t);
   1553         xcb_parts_idx++;
   1554         xcb_align_to = ALIGNOF(xcb_sync_int64_t);
   1555     }
   1556     if(value_mask & XCB_SYNC_CA_TEST_TYPE) {
   1557         /* xcb_sync_change_alarm_value_list_t.testType */
   1558         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->testType;
   1559         xcb_block_len += sizeof(uint32_t);
   1560         xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
   1561         xcb_parts_idx++;
   1562         xcb_align_to = ALIGNOF(uint32_t);
   1563     }
   1564     if(value_mask & XCB_SYNC_CA_DELTA) {
   1565         /* xcb_sync_change_alarm_value_list_t.delta */
   1566         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->delta;
   1567         xcb_block_len += sizeof(xcb_sync_int64_t);
   1568         xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_sync_int64_t);
   1569         xcb_parts_idx++;
   1570         xcb_align_to = ALIGNOF(xcb_sync_int64_t);
   1571     }
   1572     if(value_mask & XCB_SYNC_CA_EVENTS) {
   1573         /* xcb_sync_change_alarm_value_list_t.events */
   1574         xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->events;
   1575         xcb_block_len += sizeof(uint32_t);
   1576         xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t);
   1577         xcb_parts_idx++;
   1578         xcb_align_to = ALIGNOF(uint32_t);
   1579     }
   1580     /* insert padding */
   1581     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
   1582     xcb_buffer_len += xcb_block_len + xcb_pad;
   1583     if (0 != xcb_pad) {
   1584         xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
   1585         xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
   1586         xcb_parts_idx++;
   1587         xcb_pad = 0;
   1588     }
   1589     xcb_block_len = 0;
   1590 
   1591     if (NULL == xcb_out) {
   1592         /* allocate memory */
   1593         xcb_out = malloc(xcb_buffer_len);
   1594         *_buffer = xcb_out;
   1595     }
   1596 
   1597     xcb_tmp = xcb_out;
   1598     for(i=0; i<xcb_parts_idx; i++) {
   1599         if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
   1600             memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
   1601         if (0 != xcb_parts[i].iov_len)
   1602             xcb_tmp += xcb_parts[i].iov_len;
   1603     }
   1604 
   1605     return xcb_buffer_len;
   1606 }
   1607 
   1608 int
   1609 xcb_sync_change_alarm_value_list_unpack (const void                          *_buffer  /**< */,
   1610                                          uint32_t                             value_mask  /**< */,
   1611                                          xcb_sync_change_alarm_value_list_t  *_aux  /**< */)
   1612 {
   1613     char *xcb_tmp = (char *)_buffer;
   1614     unsigned int xcb_buffer_len = 0;
   1615     unsigned int xcb_block_len = 0;
   1616     unsigned int xcb_pad = 0;
   1617     unsigned int xcb_align_to = 0;
   1618 
   1619 
   1620     if(value_mask & XCB_SYNC_CA_COUNTER) {
   1621         /* xcb_sync_change_alarm_value_list_t.counter */
   1622         _aux->counter = *(xcb_sync_counter_t *)xcb_tmp;
   1623         xcb_block_len += sizeof(xcb_sync_counter_t);
   1624         xcb_tmp += sizeof(xcb_sync_counter_t);
   1625         xcb_align_to = ALIGNOF(xcb_sync_counter_t);
   1626     }
   1627     if(value_mask & XCB_SYNC_CA_VALUE_TYPE) {
   1628         /* xcb_sync_change_alarm_value_list_t.valueType */
   1629         _aux->valueType = *(uint32_t *)xcb_tmp;
   1630         xcb_block_len += sizeof(uint32_t);
   1631         xcb_tmp += sizeof(uint32_t);
   1632         xcb_align_to = ALIGNOF(uint32_t);
   1633     }
   1634     if(value_mask & XCB_SYNC_CA_VALUE) {
   1635         /* xcb_sync_change_alarm_value_list_t.value */
   1636         _aux->value = *(xcb_sync_int64_t *)xcb_tmp;
   1637         xcb_block_len += sizeof(xcb_sync_int64_t);
   1638         xcb_tmp += sizeof(xcb_sync_int64_t);
   1639         xcb_align_to = ALIGNOF(xcb_sync_int64_t);
   1640     }
   1641     if(value_mask & XCB_SYNC_CA_TEST_TYPE) {
   1642         /* xcb_sync_change_alarm_value_list_t.testType */
   1643         _aux->testType = *(uint32_t *)xcb_tmp;
   1644         xcb_block_len += sizeof(uint32_t);
   1645         xcb_tmp += sizeof(uint32_t);
   1646         xcb_align_to = ALIGNOF(uint32_t);
   1647     }
   1648     if(value_mask & XCB_SYNC_CA_DELTA) {
   1649         /* xcb_sync_change_alarm_value_list_t.delta */
   1650         _aux->delta = *(xcb_sync_int64_t *)xcb_tmp;
   1651         xcb_block_len += sizeof(xcb_sync_int64_t);
   1652         xcb_tmp += sizeof(xcb_sync_int64_t);
   1653         xcb_align_to = ALIGNOF(xcb_sync_int64_t);
   1654     }
   1655     if(value_mask & XCB_SYNC_CA_EVENTS) {
   1656         /* xcb_sync_change_alarm_value_list_t.events */
   1657         _aux->events = *(uint32_t *)xcb_tmp;
   1658         xcb_block_len += sizeof(uint32_t);
   1659         xcb_tmp += sizeof(uint32_t);
   1660         xcb_align_to = ALIGNOF(uint32_t);
   1661     }
   1662     /* insert padding */
   1663     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
   1664     xcb_buffer_len += xcb_block_len + xcb_pad;
   1665     if (0 != xcb_pad) {
   1666         xcb_tmp += xcb_pad;
   1667         xcb_pad = 0;
   1668     }
   1669     xcb_block_len = 0;
   1670 
   1671     return xcb_buffer_len;
   1672 }
   1673 
   1674 int
   1675 xcb_sync_change_alarm_value_list_sizeof (const void  *_buffer  /**< */,
   1676                                          uint32_t     value_mask  /**< */)
   1677 {
   1678     xcb_sync_change_alarm_value_list_t _aux;
   1679     return xcb_sync_change_alarm_value_list_unpack(_buffer, value_mask, &_aux);
   1680 }
   1681 
   1682 
   1683 /*****************************************************************************
   1684  **
   1685  ** xcb_void_cookie_t xcb_sync_change_alarm_checked
   1686  **
   1687  ** @param xcb_connection_t *c
   1688  ** @param xcb_sync_alarm_t  id
   1689  ** @param uint32_t          value_mask
   1690  ** @param const void       *value_list
   1691  ** @returns xcb_void_cookie_t
   1692  **
   1693  *****************************************************************************/
   1694 
   1695 xcb_void_cookie_t
   1696 xcb_sync_change_alarm_checked (xcb_connection_t *c  /**< */,
   1697                                xcb_sync_alarm_t  id  /**< */,
   1698                                uint32_t          value_mask  /**< */,
   1699                                const void       *value_list  /**< */)
   1700 {
   1701     static const xcb_protocol_request_t xcb_req = {
   1702         /* count */ 3,
   1703         /* ext */ &xcb_sync_id,
   1704         /* opcode */ XCB_SYNC_CHANGE_ALARM,
   1705         /* isvoid */ 1
   1706     };
   1707 
   1708     struct iovec xcb_parts[5];
   1709     xcb_void_cookie_t xcb_ret;
   1710     xcb_sync_change_alarm_request_t xcb_out;
   1711 
   1712     xcb_out.id = id;
   1713     xcb_out.value_mask = value_mask;
   1714 
   1715     xcb_parts[2].iov_base = (char *) &xcb_out;
   1716     xcb_parts[2].iov_len = sizeof(xcb_out);
   1717     xcb_parts[3].iov_base = 0;
   1718     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1719     /* xcb_sync_change_alarm_value_list_t value_list */
   1720     xcb_parts[4].iov_base = (char *) value_list;
   1721     xcb_parts[4].iov_len =
   1722       xcb_sync_change_alarm_value_list_sizeof (value_list, value_mask);
   1723 
   1724     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1725     return xcb_ret;
   1726 }
   1727 
   1728 
   1729 /*****************************************************************************
   1730  **
   1731  ** xcb_void_cookie_t xcb_sync_change_alarm
   1732  **
   1733  ** @param xcb_connection_t *c
   1734  ** @param xcb_sync_alarm_t  id
   1735  ** @param uint32_t          value_mask
   1736  ** @param const void       *value_list
   1737  ** @returns xcb_void_cookie_t
   1738  **
   1739  *****************************************************************************/
   1740 
   1741 xcb_void_cookie_t
   1742 xcb_sync_change_alarm (xcb_connection_t *c  /**< */,
   1743                        xcb_sync_alarm_t  id  /**< */,
   1744                        uint32_t          value_mask  /**< */,
   1745                        const void       *value_list  /**< */)
   1746 {
   1747     static const xcb_protocol_request_t xcb_req = {
   1748         /* count */ 3,
   1749         /* ext */ &xcb_sync_id,
   1750         /* opcode */ XCB_SYNC_CHANGE_ALARM,
   1751         /* isvoid */ 1
   1752     };
   1753 
   1754     struct iovec xcb_parts[5];
   1755     xcb_void_cookie_t xcb_ret;
   1756     xcb_sync_change_alarm_request_t xcb_out;
   1757 
   1758     xcb_out.id = id;
   1759     xcb_out.value_mask = value_mask;
   1760 
   1761     xcb_parts[2].iov_base = (char *) &xcb_out;
   1762     xcb_parts[2].iov_len = sizeof(xcb_out);
   1763     xcb_parts[3].iov_base = 0;
   1764     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1765     /* xcb_sync_change_alarm_value_list_t value_list */
   1766     xcb_parts[4].iov_base = (char *) value_list;
   1767     xcb_parts[4].iov_len =
   1768       xcb_sync_change_alarm_value_list_sizeof (value_list, value_mask);
   1769 
   1770     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1771     return xcb_ret;
   1772 }
   1773 
   1774 
   1775 /*****************************************************************************
   1776  **
   1777  ** xcb_void_cookie_t xcb_sync_change_alarm_aux_checked
   1778  **
   1779  ** @param xcb_connection_t                         *c
   1780  ** @param xcb_sync_alarm_t                          id
   1781  ** @param uint32_t                                  value_mask
   1782  ** @param const xcb_sync_change_alarm_value_list_t *value_list
   1783  ** @returns xcb_void_cookie_t
   1784  **
   1785  *****************************************************************************/
   1786 
   1787 xcb_void_cookie_t
   1788 xcb_sync_change_alarm_aux_checked (xcb_connection_t                         *c  /**< */,
   1789                                    xcb_sync_alarm_t                          id  /**< */,
   1790                                    uint32_t                                  value_mask  /**< */,
   1791                                    const xcb_sync_change_alarm_value_list_t *value_list  /**< */)
   1792 {
   1793     static const xcb_protocol_request_t xcb_req = {
   1794         /* count */ 3,
   1795         /* ext */ &xcb_sync_id,
   1796         /* opcode */ XCB_SYNC_CHANGE_ALARM,
   1797         /* isvoid */ 1
   1798     };
   1799 
   1800     struct iovec xcb_parts[5];
   1801     xcb_void_cookie_t xcb_ret;
   1802     xcb_sync_change_alarm_request_t xcb_out;
   1803     void *xcb_aux0 = 0;
   1804 
   1805     xcb_out.id = id;
   1806     xcb_out.value_mask = value_mask;
   1807 
   1808     xcb_parts[2].iov_base = (char *) &xcb_out;
   1809     xcb_parts[2].iov_len = sizeof(xcb_out);
   1810     xcb_parts[3].iov_base = 0;
   1811     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1812     /* xcb_sync_change_alarm_value_list_t value_list */
   1813     xcb_parts[4].iov_len =
   1814       xcb_sync_change_alarm_value_list_serialize (&xcb_aux0, value_mask, value_list);
   1815     xcb_parts[4].iov_base = xcb_aux0;
   1816 
   1817     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1818     free(xcb_aux0);
   1819     return xcb_ret;
   1820 }
   1821 
   1822 
   1823 /*****************************************************************************
   1824  **
   1825  ** xcb_void_cookie_t xcb_sync_change_alarm_aux
   1826  **
   1827  ** @param xcb_connection_t                         *c
   1828  ** @param xcb_sync_alarm_t                          id
   1829  ** @param uint32_t                                  value_mask
   1830  ** @param const xcb_sync_change_alarm_value_list_t *value_list
   1831  ** @returns xcb_void_cookie_t
   1832  **
   1833  *****************************************************************************/
   1834 
   1835 xcb_void_cookie_t
   1836 xcb_sync_change_alarm_aux (xcb_connection_t                         *c  /**< */,
   1837                            xcb_sync_alarm_t                          id  /**< */,
   1838                            uint32_t                                  value_mask  /**< */,
   1839                            const xcb_sync_change_alarm_value_list_t *value_list  /**< */)
   1840 {
   1841     static const xcb_protocol_request_t xcb_req = {
   1842         /* count */ 3,
   1843         /* ext */ &xcb_sync_id,
   1844         /* opcode */ XCB_SYNC_CHANGE_ALARM,
   1845         /* isvoid */ 1
   1846     };
   1847 
   1848     struct iovec xcb_parts[5];
   1849     xcb_void_cookie_t xcb_ret;
   1850     xcb_sync_change_alarm_request_t xcb_out;
   1851     void *xcb_aux0 = 0;
   1852 
   1853     xcb_out.id = id;
   1854     xcb_out.value_mask = value_mask;
   1855 
   1856     xcb_parts[2].iov_base = (char *) &xcb_out;
   1857     xcb_parts[2].iov_len = sizeof(xcb_out);
   1858     xcb_parts[3].iov_base = 0;
   1859     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1860     /* xcb_sync_change_alarm_value_list_t value_list */
   1861     xcb_parts[4].iov_len =
   1862       xcb_sync_change_alarm_value_list_serialize (&xcb_aux0, value_mask, value_list);
   1863     xcb_parts[4].iov_base = xcb_aux0;
   1864 
   1865     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1866     free(xcb_aux0);
   1867     return xcb_ret;
   1868 }
   1869 
   1870 
   1871 /*****************************************************************************
   1872  **
   1873  ** xcb_void_cookie_t xcb_sync_destroy_alarm_checked
   1874  **
   1875  ** @param xcb_connection_t *c
   1876  ** @param xcb_sync_alarm_t  alarm
   1877  ** @returns xcb_void_cookie_t
   1878  **
   1879  *****************************************************************************/
   1880 
   1881 xcb_void_cookie_t
   1882 xcb_sync_destroy_alarm_checked (xcb_connection_t *c  /**< */,
   1883                                 xcb_sync_alarm_t  alarm  /**< */)
   1884 {
   1885     static const xcb_protocol_request_t xcb_req = {
   1886         /* count */ 2,
   1887         /* ext */ &xcb_sync_id,
   1888         /* opcode */ XCB_SYNC_DESTROY_ALARM,
   1889         /* isvoid */ 1
   1890     };
   1891 
   1892     struct iovec xcb_parts[4];
   1893     xcb_void_cookie_t xcb_ret;
   1894     xcb_sync_destroy_alarm_request_t xcb_out;
   1895 
   1896     xcb_out.alarm = alarm;
   1897 
   1898     xcb_parts[2].iov_base = (char *) &xcb_out;
   1899     xcb_parts[2].iov_len = sizeof(xcb_out);
   1900     xcb_parts[3].iov_base = 0;
   1901     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1902 
   1903     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1904     return xcb_ret;
   1905 }
   1906 
   1907 
   1908 /*****************************************************************************
   1909  **
   1910  ** xcb_void_cookie_t xcb_sync_destroy_alarm
   1911  **
   1912  ** @param xcb_connection_t *c
   1913  ** @param xcb_sync_alarm_t  alarm
   1914  ** @returns xcb_void_cookie_t
   1915  **
   1916  *****************************************************************************/
   1917 
   1918 xcb_void_cookie_t
   1919 xcb_sync_destroy_alarm (xcb_connection_t *c  /**< */,
   1920                         xcb_sync_alarm_t  alarm  /**< */)
   1921 {
   1922     static const xcb_protocol_request_t xcb_req = {
   1923         /* count */ 2,
   1924         /* ext */ &xcb_sync_id,
   1925         /* opcode */ XCB_SYNC_DESTROY_ALARM,
   1926         /* isvoid */ 1
   1927     };
   1928 
   1929     struct iovec xcb_parts[4];
   1930     xcb_void_cookie_t xcb_ret;
   1931     xcb_sync_destroy_alarm_request_t xcb_out;
   1932 
   1933     xcb_out.alarm = alarm;
   1934 
   1935     xcb_parts[2].iov_base = (char *) &xcb_out;
   1936     xcb_parts[2].iov_len = sizeof(xcb_out);
   1937     xcb_parts[3].iov_base = 0;
   1938     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1939 
   1940     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   1941     return xcb_ret;
   1942 }
   1943 
   1944 
   1945 /*****************************************************************************
   1946  **
   1947  ** xcb_sync_query_alarm_cookie_t xcb_sync_query_alarm
   1948  **
   1949  ** @param xcb_connection_t *c
   1950  ** @param xcb_sync_alarm_t  alarm
   1951  ** @returns xcb_sync_query_alarm_cookie_t
   1952  **
   1953  *****************************************************************************/
   1954 
   1955 xcb_sync_query_alarm_cookie_t
   1956 xcb_sync_query_alarm (xcb_connection_t *c  /**< */,
   1957                       xcb_sync_alarm_t  alarm  /**< */)
   1958 {
   1959     static const xcb_protocol_request_t xcb_req = {
   1960         /* count */ 2,
   1961         /* ext */ &xcb_sync_id,
   1962         /* opcode */ XCB_SYNC_QUERY_ALARM,
   1963         /* isvoid */ 0
   1964     };
   1965 
   1966     struct iovec xcb_parts[4];
   1967     xcb_sync_query_alarm_cookie_t xcb_ret;
   1968     xcb_sync_query_alarm_request_t xcb_out;
   1969 
   1970     xcb_out.alarm = alarm;
   1971 
   1972     xcb_parts[2].iov_base = (char *) &xcb_out;
   1973     xcb_parts[2].iov_len = sizeof(xcb_out);
   1974     xcb_parts[3].iov_base = 0;
   1975     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   1976 
   1977     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   1978     return xcb_ret;
   1979 }
   1980 
   1981 
   1982 /*****************************************************************************
   1983  **
   1984  ** xcb_sync_query_alarm_cookie_t xcb_sync_query_alarm_unchecked
   1985  **
   1986  ** @param xcb_connection_t *c
   1987  ** @param xcb_sync_alarm_t  alarm
   1988  ** @returns xcb_sync_query_alarm_cookie_t
   1989  **
   1990  *****************************************************************************/
   1991 
   1992 xcb_sync_query_alarm_cookie_t
   1993 xcb_sync_query_alarm_unchecked (xcb_connection_t *c  /**< */,
   1994                                 xcb_sync_alarm_t  alarm  /**< */)
   1995 {
   1996     static const xcb_protocol_request_t xcb_req = {
   1997         /* count */ 2,
   1998         /* ext */ &xcb_sync_id,
   1999         /* opcode */ XCB_SYNC_QUERY_ALARM,
   2000         /* isvoid */ 0
   2001     };
   2002 
   2003     struct iovec xcb_parts[4];
   2004     xcb_sync_query_alarm_cookie_t xcb_ret;
   2005     xcb_sync_query_alarm_request_t xcb_out;
   2006 
   2007     xcb_out.alarm = alarm;
   2008 
   2009     xcb_parts[2].iov_base = (char *) &xcb_out;
   2010     xcb_parts[2].iov_len = sizeof(xcb_out);
   2011     xcb_parts[3].iov_base = 0;
   2012     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2013 
   2014     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2015     return xcb_ret;
   2016 }
   2017 
   2018 
   2019 /*****************************************************************************
   2020  **
   2021  ** xcb_sync_query_alarm_reply_t * xcb_sync_query_alarm_reply
   2022  **
   2023  ** @param xcb_connection_t               *c
   2024  ** @param xcb_sync_query_alarm_cookie_t   cookie
   2025  ** @param xcb_generic_error_t           **e
   2026  ** @returns xcb_sync_query_alarm_reply_t *
   2027  **
   2028  *****************************************************************************/
   2029 
   2030 xcb_sync_query_alarm_reply_t *
   2031 xcb_sync_query_alarm_reply (xcb_connection_t               *c  /**< */,
   2032                             xcb_sync_query_alarm_cookie_t   cookie  /**< */,
   2033                             xcb_generic_error_t           **e  /**< */)
   2034 {
   2035     return (xcb_sync_query_alarm_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
   2036 }
   2037 
   2038 
   2039 /*****************************************************************************
   2040  **
   2041  ** xcb_void_cookie_t xcb_sync_set_priority_checked
   2042  **
   2043  ** @param xcb_connection_t *c
   2044  ** @param uint32_t          id
   2045  ** @param int32_t           priority
   2046  ** @returns xcb_void_cookie_t
   2047  **
   2048  *****************************************************************************/
   2049 
   2050 xcb_void_cookie_t
   2051 xcb_sync_set_priority_checked (xcb_connection_t *c  /**< */,
   2052                                uint32_t          id  /**< */,
   2053                                int32_t           priority  /**< */)
   2054 {
   2055     static const xcb_protocol_request_t xcb_req = {
   2056         /* count */ 2,
   2057         /* ext */ &xcb_sync_id,
   2058         /* opcode */ XCB_SYNC_SET_PRIORITY,
   2059         /* isvoid */ 1
   2060     };
   2061 
   2062     struct iovec xcb_parts[4];
   2063     xcb_void_cookie_t xcb_ret;
   2064     xcb_sync_set_priority_request_t xcb_out;
   2065 
   2066     xcb_out.id = id;
   2067     xcb_out.priority = priority;
   2068 
   2069     xcb_parts[2].iov_base = (char *) &xcb_out;
   2070     xcb_parts[2].iov_len = sizeof(xcb_out);
   2071     xcb_parts[3].iov_base = 0;
   2072     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2073 
   2074     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   2075     return xcb_ret;
   2076 }
   2077 
   2078 
   2079 /*****************************************************************************
   2080  **
   2081  ** xcb_void_cookie_t xcb_sync_set_priority
   2082  **
   2083  ** @param xcb_connection_t *c
   2084  ** @param uint32_t          id
   2085  ** @param int32_t           priority
   2086  ** @returns xcb_void_cookie_t
   2087  **
   2088  *****************************************************************************/
   2089 
   2090 xcb_void_cookie_t
   2091 xcb_sync_set_priority (xcb_connection_t *c  /**< */,
   2092                        uint32_t          id  /**< */,
   2093                        int32_t           priority  /**< */)
   2094 {
   2095     static const xcb_protocol_request_t xcb_req = {
   2096         /* count */ 2,
   2097         /* ext */ &xcb_sync_id,
   2098         /* opcode */ XCB_SYNC_SET_PRIORITY,
   2099         /* isvoid */ 1
   2100     };
   2101 
   2102     struct iovec xcb_parts[4];
   2103     xcb_void_cookie_t xcb_ret;
   2104     xcb_sync_set_priority_request_t xcb_out;
   2105 
   2106     xcb_out.id = id;
   2107     xcb_out.priority = priority;
   2108 
   2109     xcb_parts[2].iov_base = (char *) &xcb_out;
   2110     xcb_parts[2].iov_len = sizeof(xcb_out);
   2111     xcb_parts[3].iov_base = 0;
   2112     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2113 
   2114     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2115     return xcb_ret;
   2116 }
   2117 
   2118 
   2119 /*****************************************************************************
   2120  **
   2121  ** xcb_sync_get_priority_cookie_t xcb_sync_get_priority
   2122  **
   2123  ** @param xcb_connection_t *c
   2124  ** @param uint32_t          id
   2125  ** @returns xcb_sync_get_priority_cookie_t
   2126  **
   2127  *****************************************************************************/
   2128 
   2129 xcb_sync_get_priority_cookie_t
   2130 xcb_sync_get_priority (xcb_connection_t *c  /**< */,
   2131                        uint32_t          id  /**< */)
   2132 {
   2133     static const xcb_protocol_request_t xcb_req = {
   2134         /* count */ 2,
   2135         /* ext */ &xcb_sync_id,
   2136         /* opcode */ XCB_SYNC_GET_PRIORITY,
   2137         /* isvoid */ 0
   2138     };
   2139 
   2140     struct iovec xcb_parts[4];
   2141     xcb_sync_get_priority_cookie_t xcb_ret;
   2142     xcb_sync_get_priority_request_t xcb_out;
   2143 
   2144     xcb_out.id = id;
   2145 
   2146     xcb_parts[2].iov_base = (char *) &xcb_out;
   2147     xcb_parts[2].iov_len = sizeof(xcb_out);
   2148     xcb_parts[3].iov_base = 0;
   2149     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2150 
   2151     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   2152     return xcb_ret;
   2153 }
   2154 
   2155 
   2156 /*****************************************************************************
   2157  **
   2158  ** xcb_sync_get_priority_cookie_t xcb_sync_get_priority_unchecked
   2159  **
   2160  ** @param xcb_connection_t *c
   2161  ** @param uint32_t          id
   2162  ** @returns xcb_sync_get_priority_cookie_t
   2163  **
   2164  *****************************************************************************/
   2165 
   2166 xcb_sync_get_priority_cookie_t
   2167 xcb_sync_get_priority_unchecked (xcb_connection_t *c  /**< */,
   2168                                  uint32_t          id  /**< */)
   2169 {
   2170     static const xcb_protocol_request_t xcb_req = {
   2171         /* count */ 2,
   2172         /* ext */ &xcb_sync_id,
   2173         /* opcode */ XCB_SYNC_GET_PRIORITY,
   2174         /* isvoid */ 0
   2175     };
   2176 
   2177     struct iovec xcb_parts[4];
   2178     xcb_sync_get_priority_cookie_t xcb_ret;
   2179     xcb_sync_get_priority_request_t xcb_out;
   2180 
   2181     xcb_out.id = id;
   2182 
   2183     xcb_parts[2].iov_base = (char *) &xcb_out;
   2184     xcb_parts[2].iov_len = sizeof(xcb_out);
   2185     xcb_parts[3].iov_base = 0;
   2186     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2187 
   2188     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2189     return xcb_ret;
   2190 }
   2191 
   2192 
   2193 /*****************************************************************************
   2194  **
   2195  ** xcb_sync_get_priority_reply_t * xcb_sync_get_priority_reply
   2196  **
   2197  ** @param xcb_connection_t                *c
   2198  ** @param xcb_sync_get_priority_cookie_t   cookie
   2199  ** @param xcb_generic_error_t            **e
   2200  ** @returns xcb_sync_get_priority_reply_t *
   2201  **
   2202  *****************************************************************************/
   2203 
   2204 xcb_sync_get_priority_reply_t *
   2205 xcb_sync_get_priority_reply (xcb_connection_t                *c  /**< */,
   2206                              xcb_sync_get_priority_cookie_t   cookie  /**< */,
   2207                              xcb_generic_error_t            **e  /**< */)
   2208 {
   2209     return (xcb_sync_get_priority_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
   2210 }
   2211 
   2212 
   2213 /*****************************************************************************
   2214  **
   2215  ** xcb_void_cookie_t xcb_sync_create_fence_checked
   2216  **
   2217  ** @param xcb_connection_t *c
   2218  ** @param xcb_drawable_t    drawable
   2219  ** @param xcb_sync_fence_t  fence
   2220  ** @param uint8_t           initially_triggered
   2221  ** @returns xcb_void_cookie_t
   2222  **
   2223  *****************************************************************************/
   2224 
   2225 xcb_void_cookie_t
   2226 xcb_sync_create_fence_checked (xcb_connection_t *c  /**< */,
   2227                                xcb_drawable_t    drawable  /**< */,
   2228                                xcb_sync_fence_t  fence  /**< */,
   2229                                uint8_t           initially_triggered  /**< */)
   2230 {
   2231     static const xcb_protocol_request_t xcb_req = {
   2232         /* count */ 2,
   2233         /* ext */ &xcb_sync_id,
   2234         /* opcode */ XCB_SYNC_CREATE_FENCE,
   2235         /* isvoid */ 1
   2236     };
   2237 
   2238     struct iovec xcb_parts[4];
   2239     xcb_void_cookie_t xcb_ret;
   2240     xcb_sync_create_fence_request_t xcb_out;
   2241 
   2242     xcb_out.drawable = drawable;
   2243     xcb_out.fence = fence;
   2244     xcb_out.initially_triggered = initially_triggered;
   2245 
   2246     xcb_parts[2].iov_base = (char *) &xcb_out;
   2247     xcb_parts[2].iov_len = sizeof(xcb_out);
   2248     xcb_parts[3].iov_base = 0;
   2249     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2250 
   2251     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   2252     return xcb_ret;
   2253 }
   2254 
   2255 
   2256 /*****************************************************************************
   2257  **
   2258  ** xcb_void_cookie_t xcb_sync_create_fence
   2259  **
   2260  ** @param xcb_connection_t *c
   2261  ** @param xcb_drawable_t    drawable
   2262  ** @param xcb_sync_fence_t  fence
   2263  ** @param uint8_t           initially_triggered
   2264  ** @returns xcb_void_cookie_t
   2265  **
   2266  *****************************************************************************/
   2267 
   2268 xcb_void_cookie_t
   2269 xcb_sync_create_fence (xcb_connection_t *c  /**< */,
   2270                        xcb_drawable_t    drawable  /**< */,
   2271                        xcb_sync_fence_t  fence  /**< */,
   2272                        uint8_t           initially_triggered  /**< */)
   2273 {
   2274     static const xcb_protocol_request_t xcb_req = {
   2275         /* count */ 2,
   2276         /* ext */ &xcb_sync_id,
   2277         /* opcode */ XCB_SYNC_CREATE_FENCE,
   2278         /* isvoid */ 1
   2279     };
   2280 
   2281     struct iovec xcb_parts[4];
   2282     xcb_void_cookie_t xcb_ret;
   2283     xcb_sync_create_fence_request_t xcb_out;
   2284 
   2285     xcb_out.drawable = drawable;
   2286     xcb_out.fence = fence;
   2287     xcb_out.initially_triggered = initially_triggered;
   2288 
   2289     xcb_parts[2].iov_base = (char *) &xcb_out;
   2290     xcb_parts[2].iov_len = sizeof(xcb_out);
   2291     xcb_parts[3].iov_base = 0;
   2292     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2293 
   2294     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2295     return xcb_ret;
   2296 }
   2297 
   2298 
   2299 /*****************************************************************************
   2300  **
   2301  ** xcb_void_cookie_t xcb_sync_trigger_fence_checked
   2302  **
   2303  ** @param xcb_connection_t *c
   2304  ** @param xcb_sync_fence_t  fence
   2305  ** @returns xcb_void_cookie_t
   2306  **
   2307  *****************************************************************************/
   2308 
   2309 xcb_void_cookie_t
   2310 xcb_sync_trigger_fence_checked (xcb_connection_t *c  /**< */,
   2311                                 xcb_sync_fence_t  fence  /**< */)
   2312 {
   2313     static const xcb_protocol_request_t xcb_req = {
   2314         /* count */ 2,
   2315         /* ext */ &xcb_sync_id,
   2316         /* opcode */ XCB_SYNC_TRIGGER_FENCE,
   2317         /* isvoid */ 1
   2318     };
   2319 
   2320     struct iovec xcb_parts[4];
   2321     xcb_void_cookie_t xcb_ret;
   2322     xcb_sync_trigger_fence_request_t xcb_out;
   2323 
   2324     xcb_out.fence = fence;
   2325 
   2326     xcb_parts[2].iov_base = (char *) &xcb_out;
   2327     xcb_parts[2].iov_len = sizeof(xcb_out);
   2328     xcb_parts[3].iov_base = 0;
   2329     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2330 
   2331     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   2332     return xcb_ret;
   2333 }
   2334 
   2335 
   2336 /*****************************************************************************
   2337  **
   2338  ** xcb_void_cookie_t xcb_sync_trigger_fence
   2339  **
   2340  ** @param xcb_connection_t *c
   2341  ** @param xcb_sync_fence_t  fence
   2342  ** @returns xcb_void_cookie_t
   2343  **
   2344  *****************************************************************************/
   2345 
   2346 xcb_void_cookie_t
   2347 xcb_sync_trigger_fence (xcb_connection_t *c  /**< */,
   2348                         xcb_sync_fence_t  fence  /**< */)
   2349 {
   2350     static const xcb_protocol_request_t xcb_req = {
   2351         /* count */ 2,
   2352         /* ext */ &xcb_sync_id,
   2353         /* opcode */ XCB_SYNC_TRIGGER_FENCE,
   2354         /* isvoid */ 1
   2355     };
   2356 
   2357     struct iovec xcb_parts[4];
   2358     xcb_void_cookie_t xcb_ret;
   2359     xcb_sync_trigger_fence_request_t xcb_out;
   2360 
   2361     xcb_out.fence = fence;
   2362 
   2363     xcb_parts[2].iov_base = (char *) &xcb_out;
   2364     xcb_parts[2].iov_len = sizeof(xcb_out);
   2365     xcb_parts[3].iov_base = 0;
   2366     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2367 
   2368     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2369     return xcb_ret;
   2370 }
   2371 
   2372 
   2373 /*****************************************************************************
   2374  **
   2375  ** xcb_void_cookie_t xcb_sync_reset_fence_checked
   2376  **
   2377  ** @param xcb_connection_t *c
   2378  ** @param xcb_sync_fence_t  fence
   2379  ** @returns xcb_void_cookie_t
   2380  **
   2381  *****************************************************************************/
   2382 
   2383 xcb_void_cookie_t
   2384 xcb_sync_reset_fence_checked (xcb_connection_t *c  /**< */,
   2385                               xcb_sync_fence_t  fence  /**< */)
   2386 {
   2387     static const xcb_protocol_request_t xcb_req = {
   2388         /* count */ 2,
   2389         /* ext */ &xcb_sync_id,
   2390         /* opcode */ XCB_SYNC_RESET_FENCE,
   2391         /* isvoid */ 1
   2392     };
   2393 
   2394     struct iovec xcb_parts[4];
   2395     xcb_void_cookie_t xcb_ret;
   2396     xcb_sync_reset_fence_request_t xcb_out;
   2397 
   2398     xcb_out.fence = fence;
   2399 
   2400     xcb_parts[2].iov_base = (char *) &xcb_out;
   2401     xcb_parts[2].iov_len = sizeof(xcb_out);
   2402     xcb_parts[3].iov_base = 0;
   2403     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2404 
   2405     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   2406     return xcb_ret;
   2407 }
   2408 
   2409 
   2410 /*****************************************************************************
   2411  **
   2412  ** xcb_void_cookie_t xcb_sync_reset_fence
   2413  **
   2414  ** @param xcb_connection_t *c
   2415  ** @param xcb_sync_fence_t  fence
   2416  ** @returns xcb_void_cookie_t
   2417  **
   2418  *****************************************************************************/
   2419 
   2420 xcb_void_cookie_t
   2421 xcb_sync_reset_fence (xcb_connection_t *c  /**< */,
   2422                       xcb_sync_fence_t  fence  /**< */)
   2423 {
   2424     static const xcb_protocol_request_t xcb_req = {
   2425         /* count */ 2,
   2426         /* ext */ &xcb_sync_id,
   2427         /* opcode */ XCB_SYNC_RESET_FENCE,
   2428         /* isvoid */ 1
   2429     };
   2430 
   2431     struct iovec xcb_parts[4];
   2432     xcb_void_cookie_t xcb_ret;
   2433     xcb_sync_reset_fence_request_t xcb_out;
   2434 
   2435     xcb_out.fence = fence;
   2436 
   2437     xcb_parts[2].iov_base = (char *) &xcb_out;
   2438     xcb_parts[2].iov_len = sizeof(xcb_out);
   2439     xcb_parts[3].iov_base = 0;
   2440     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2441 
   2442     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2443     return xcb_ret;
   2444 }
   2445 
   2446 
   2447 /*****************************************************************************
   2448  **
   2449  ** xcb_void_cookie_t xcb_sync_destroy_fence_checked
   2450  **
   2451  ** @param xcb_connection_t *c
   2452  ** @param xcb_sync_fence_t  fence
   2453  ** @returns xcb_void_cookie_t
   2454  **
   2455  *****************************************************************************/
   2456 
   2457 xcb_void_cookie_t
   2458 xcb_sync_destroy_fence_checked (xcb_connection_t *c  /**< */,
   2459                                 xcb_sync_fence_t  fence  /**< */)
   2460 {
   2461     static const xcb_protocol_request_t xcb_req = {
   2462         /* count */ 2,
   2463         /* ext */ &xcb_sync_id,
   2464         /* opcode */ XCB_SYNC_DESTROY_FENCE,
   2465         /* isvoid */ 1
   2466     };
   2467 
   2468     struct iovec xcb_parts[4];
   2469     xcb_void_cookie_t xcb_ret;
   2470     xcb_sync_destroy_fence_request_t xcb_out;
   2471 
   2472     xcb_out.fence = fence;
   2473 
   2474     xcb_parts[2].iov_base = (char *) &xcb_out;
   2475     xcb_parts[2].iov_len = sizeof(xcb_out);
   2476     xcb_parts[3].iov_base = 0;
   2477     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2478 
   2479     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   2480     return xcb_ret;
   2481 }
   2482 
   2483 
   2484 /*****************************************************************************
   2485  **
   2486  ** xcb_void_cookie_t xcb_sync_destroy_fence
   2487  **
   2488  ** @param xcb_connection_t *c
   2489  ** @param xcb_sync_fence_t  fence
   2490  ** @returns xcb_void_cookie_t
   2491  **
   2492  *****************************************************************************/
   2493 
   2494 xcb_void_cookie_t
   2495 xcb_sync_destroy_fence (xcb_connection_t *c  /**< */,
   2496                         xcb_sync_fence_t  fence  /**< */)
   2497 {
   2498     static const xcb_protocol_request_t xcb_req = {
   2499         /* count */ 2,
   2500         /* ext */ &xcb_sync_id,
   2501         /* opcode */ XCB_SYNC_DESTROY_FENCE,
   2502         /* isvoid */ 1
   2503     };
   2504 
   2505     struct iovec xcb_parts[4];
   2506     xcb_void_cookie_t xcb_ret;
   2507     xcb_sync_destroy_fence_request_t xcb_out;
   2508 
   2509     xcb_out.fence = fence;
   2510 
   2511     xcb_parts[2].iov_base = (char *) &xcb_out;
   2512     xcb_parts[2].iov_len = sizeof(xcb_out);
   2513     xcb_parts[3].iov_base = 0;
   2514     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2515 
   2516     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2517     return xcb_ret;
   2518 }
   2519 
   2520 
   2521 /*****************************************************************************
   2522  **
   2523  ** xcb_sync_query_fence_cookie_t xcb_sync_query_fence
   2524  **
   2525  ** @param xcb_connection_t *c
   2526  ** @param xcb_sync_fence_t  fence
   2527  ** @returns xcb_sync_query_fence_cookie_t
   2528  **
   2529  *****************************************************************************/
   2530 
   2531 xcb_sync_query_fence_cookie_t
   2532 xcb_sync_query_fence (xcb_connection_t *c  /**< */,
   2533                       xcb_sync_fence_t  fence  /**< */)
   2534 {
   2535     static const xcb_protocol_request_t xcb_req = {
   2536         /* count */ 2,
   2537         /* ext */ &xcb_sync_id,
   2538         /* opcode */ XCB_SYNC_QUERY_FENCE,
   2539         /* isvoid */ 0
   2540     };
   2541 
   2542     struct iovec xcb_parts[4];
   2543     xcb_sync_query_fence_cookie_t xcb_ret;
   2544     xcb_sync_query_fence_request_t xcb_out;
   2545 
   2546     xcb_out.fence = fence;
   2547 
   2548     xcb_parts[2].iov_base = (char *) &xcb_out;
   2549     xcb_parts[2].iov_len = sizeof(xcb_out);
   2550     xcb_parts[3].iov_base = 0;
   2551     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2552 
   2553     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   2554     return xcb_ret;
   2555 }
   2556 
   2557 
   2558 /*****************************************************************************
   2559  **
   2560  ** xcb_sync_query_fence_cookie_t xcb_sync_query_fence_unchecked
   2561  **
   2562  ** @param xcb_connection_t *c
   2563  ** @param xcb_sync_fence_t  fence
   2564  ** @returns xcb_sync_query_fence_cookie_t
   2565  **
   2566  *****************************************************************************/
   2567 
   2568 xcb_sync_query_fence_cookie_t
   2569 xcb_sync_query_fence_unchecked (xcb_connection_t *c  /**< */,
   2570                                 xcb_sync_fence_t  fence  /**< */)
   2571 {
   2572     static const xcb_protocol_request_t xcb_req = {
   2573         /* count */ 2,
   2574         /* ext */ &xcb_sync_id,
   2575         /* opcode */ XCB_SYNC_QUERY_FENCE,
   2576         /* isvoid */ 0
   2577     };
   2578 
   2579     struct iovec xcb_parts[4];
   2580     xcb_sync_query_fence_cookie_t xcb_ret;
   2581     xcb_sync_query_fence_request_t xcb_out;
   2582 
   2583     xcb_out.fence = fence;
   2584 
   2585     xcb_parts[2].iov_base = (char *) &xcb_out;
   2586     xcb_parts[2].iov_len = sizeof(xcb_out);
   2587     xcb_parts[3].iov_base = 0;
   2588     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2589 
   2590     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2591     return xcb_ret;
   2592 }
   2593 
   2594 
   2595 /*****************************************************************************
   2596  **
   2597  ** xcb_sync_query_fence_reply_t * xcb_sync_query_fence_reply
   2598  **
   2599  ** @param xcb_connection_t               *c
   2600  ** @param xcb_sync_query_fence_cookie_t   cookie
   2601  ** @param xcb_generic_error_t           **e
   2602  ** @returns xcb_sync_query_fence_reply_t *
   2603  **
   2604  *****************************************************************************/
   2605 
   2606 xcb_sync_query_fence_reply_t *
   2607 xcb_sync_query_fence_reply (xcb_connection_t               *c  /**< */,
   2608                             xcb_sync_query_fence_cookie_t   cookie  /**< */,
   2609                             xcb_generic_error_t           **e  /**< */)
   2610 {
   2611     return (xcb_sync_query_fence_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
   2612 }
   2613 
   2614 int
   2615 xcb_sync_await_fence_sizeof (const void  *_buffer  /**< */,
   2616                              uint32_t     fence_list_len  /**< */)
   2617 {
   2618     char *xcb_tmp = (char *)_buffer;
   2619     unsigned int xcb_buffer_len = 0;
   2620     unsigned int xcb_block_len = 0;
   2621     unsigned int xcb_pad = 0;
   2622     unsigned int xcb_align_to = 0;
   2623 
   2624 
   2625     xcb_block_len += sizeof(xcb_sync_await_fence_request_t);
   2626     xcb_tmp += xcb_block_len;
   2627     xcb_buffer_len += xcb_block_len;
   2628     xcb_block_len = 0;
   2629     /* fence_list */
   2630     xcb_block_len += fence_list_len * sizeof(xcb_sync_fence_t);
   2631     xcb_tmp += xcb_block_len;
   2632     xcb_align_to = ALIGNOF(xcb_sync_fence_t);
   2633     /* insert padding */
   2634     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
   2635     xcb_buffer_len += xcb_block_len + xcb_pad;
   2636     if (0 != xcb_pad) {
   2637         xcb_tmp += xcb_pad;
   2638         xcb_pad = 0;
   2639     }
   2640     xcb_block_len = 0;
   2641 
   2642     return xcb_buffer_len;
   2643 }
   2644 
   2645 
   2646 /*****************************************************************************
   2647  **
   2648  ** xcb_void_cookie_t xcb_sync_await_fence_checked
   2649  **
   2650  ** @param xcb_connection_t       *c
   2651  ** @param uint32_t                fence_list_len
   2652  ** @param const xcb_sync_fence_t *fence_list
   2653  ** @returns xcb_void_cookie_t
   2654  **
   2655  *****************************************************************************/
   2656 
   2657 xcb_void_cookie_t
   2658 xcb_sync_await_fence_checked (xcb_connection_t       *c  /**< */,
   2659                               uint32_t                fence_list_len  /**< */,
   2660                               const xcb_sync_fence_t *fence_list  /**< */)
   2661 {
   2662     static const xcb_protocol_request_t xcb_req = {
   2663         /* count */ 4,
   2664         /* ext */ &xcb_sync_id,
   2665         /* opcode */ XCB_SYNC_AWAIT_FENCE,
   2666         /* isvoid */ 1
   2667     };
   2668 
   2669     struct iovec xcb_parts[6];
   2670     xcb_void_cookie_t xcb_ret;
   2671     xcb_sync_await_fence_request_t xcb_out;
   2672 
   2673 
   2674     xcb_parts[2].iov_base = (char *) &xcb_out;
   2675     xcb_parts[2].iov_len = sizeof(xcb_out);
   2676     xcb_parts[3].iov_base = 0;
   2677     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2678     /* xcb_sync_fence_t fence_list */
   2679     xcb_parts[4].iov_base = (char *) fence_list;
   2680     xcb_parts[4].iov_len = fence_list_len * sizeof(xcb_sync_fence_t);
   2681     xcb_parts[5].iov_base = 0;
   2682     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
   2683 
   2684     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
   2685     return xcb_ret;
   2686 }
   2687 
   2688 
   2689 /*****************************************************************************
   2690  **
   2691  ** xcb_void_cookie_t xcb_sync_await_fence
   2692  **
   2693  ** @param xcb_connection_t       *c
   2694  ** @param uint32_t                fence_list_len
   2695  ** @param const xcb_sync_fence_t *fence_list
   2696  ** @returns xcb_void_cookie_t
   2697  **
   2698  *****************************************************************************/
   2699 
   2700 xcb_void_cookie_t
   2701 xcb_sync_await_fence (xcb_connection_t       *c  /**< */,
   2702                       uint32_t                fence_list_len  /**< */,
   2703                       const xcb_sync_fence_t *fence_list  /**< */)
   2704 {
   2705     static const xcb_protocol_request_t xcb_req = {
   2706         /* count */ 4,
   2707         /* ext */ &xcb_sync_id,
   2708         /* opcode */ XCB_SYNC_AWAIT_FENCE,
   2709         /* isvoid */ 1
   2710     };
   2711 
   2712     struct iovec xcb_parts[6];
   2713     xcb_void_cookie_t xcb_ret;
   2714     xcb_sync_await_fence_request_t xcb_out;
   2715 
   2716 
   2717     xcb_parts[2].iov_base = (char *) &xcb_out;
   2718     xcb_parts[2].iov_len = sizeof(xcb_out);
   2719     xcb_parts[3].iov_base = 0;
   2720     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
   2721     /* xcb_sync_fence_t fence_list */
   2722     xcb_parts[4].iov_base = (char *) fence_list;
   2723     xcb_parts[4].iov_len = fence_list_len * sizeof(xcb_sync_fence_t);
   2724     xcb_parts[5].iov_base = 0;
   2725     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
   2726 
   2727     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
   2728     return xcb_ret;
   2729 }
   2730 
   2731