Home | History | Annotate | Line # | Download | only in files
xinerama.c revision 1.4.2.1
      1      1.1       mrg /*
      2      1.1       mrg  * This file generated automatically from xinerama.xml by c_client.py.
      3      1.1       mrg  * Edit at your peril.
      4      1.1       mrg  */
      5      1.1       mrg 
      6      1.2       mrg #ifdef HAVE_CONFIG_H
      7      1.2       mrg #include "config.h"
      8      1.2       mrg #endif
      9      1.2       mrg #include <stdlib.h>
     10      1.1       mrg #include <string.h>
     11      1.1       mrg #include <assert.h>
     12      1.2       mrg #include <stddef.h>  /* for offsetof() */
     13      1.1       mrg #include "xcbext.h"
     14      1.1       mrg #include "xinerama.h"
     15      1.2       mrg 
     16      1.2       mrg #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
     17      1.1       mrg #include "xproto.h"
     18      1.1       mrg 
     19      1.1       mrg xcb_extension_t xcb_xinerama_id = { "XINERAMA", 0 };
     20      1.1       mrg 
     21      1.1       mrg void
     22  1.4.2.1  pgoyette xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i)
     23      1.1       mrg {
     24      1.1       mrg     --i->rem;
     25      1.1       mrg     ++i->data;
     26      1.1       mrg     i->index += sizeof(xcb_xinerama_screen_info_t);
     27      1.1       mrg }
     28      1.1       mrg 
     29      1.1       mrg xcb_generic_iterator_t
     30  1.4.2.1  pgoyette xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i)
     31      1.1       mrg {
     32      1.1       mrg     xcb_generic_iterator_t ret;
     33      1.1       mrg     ret.data = i.data + i.rem;
     34      1.1       mrg     ret.index = i.index + ((char *) ret.data - (char *) i.data);
     35      1.1       mrg     ret.rem = 0;
     36      1.1       mrg     return ret;
     37      1.1       mrg }
     38      1.1       mrg 
     39      1.1       mrg xcb_xinerama_query_version_cookie_t
     40  1.4.2.1  pgoyette xcb_xinerama_query_version (xcb_connection_t *c,
     41  1.4.2.1  pgoyette                             uint8_t           major,
     42  1.4.2.1  pgoyette                             uint8_t           minor)
     43      1.1       mrg {
     44      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
     45  1.4.2.1  pgoyette         .count = 2,
     46  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
     47  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_QUERY_VERSION,
     48  1.4.2.1  pgoyette         .isvoid = 0
     49      1.1       mrg     };
     50      1.4       mrg 
     51      1.1       mrg     struct iovec xcb_parts[4];
     52      1.1       mrg     xcb_xinerama_query_version_cookie_t xcb_ret;
     53      1.1       mrg     xcb_xinerama_query_version_request_t xcb_out;
     54      1.4       mrg 
     55      1.1       mrg     xcb_out.major = major;
     56      1.1       mrg     xcb_out.minor = minor;
     57      1.4       mrg 
     58      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
     59      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
     60      1.1       mrg     xcb_parts[3].iov_base = 0;
     61      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
     62      1.4       mrg 
     63      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
     64      1.1       mrg     return xcb_ret;
     65      1.1       mrg }
     66      1.1       mrg 
     67      1.1       mrg xcb_xinerama_query_version_cookie_t
     68  1.4.2.1  pgoyette xcb_xinerama_query_version_unchecked (xcb_connection_t *c,
     69  1.4.2.1  pgoyette                                       uint8_t           major,
     70  1.4.2.1  pgoyette                                       uint8_t           minor)
     71      1.1       mrg {
     72      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
     73  1.4.2.1  pgoyette         .count = 2,
     74  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
     75  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_QUERY_VERSION,
     76  1.4.2.1  pgoyette         .isvoid = 0
     77      1.1       mrg     };
     78      1.4       mrg 
     79      1.1       mrg     struct iovec xcb_parts[4];
     80      1.1       mrg     xcb_xinerama_query_version_cookie_t xcb_ret;
     81      1.1       mrg     xcb_xinerama_query_version_request_t xcb_out;
     82      1.4       mrg 
     83      1.1       mrg     xcb_out.major = major;
     84      1.1       mrg     xcb_out.minor = minor;
     85      1.4       mrg 
     86      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
     87      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
     88      1.1       mrg     xcb_parts[3].iov_base = 0;
     89      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
     90      1.4       mrg 
     91      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
     92      1.1       mrg     return xcb_ret;
     93      1.1       mrg }
     94      1.1       mrg 
     95      1.1       mrg xcb_xinerama_query_version_reply_t *
     96  1.4.2.1  pgoyette xcb_xinerama_query_version_reply (xcb_connection_t                     *c,
     97      1.1       mrg                                   xcb_xinerama_query_version_cookie_t   cookie  /**< */,
     98  1.4.2.1  pgoyette                                   xcb_generic_error_t                 **e)
     99      1.1       mrg {
    100      1.1       mrg     return (xcb_xinerama_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    101      1.1       mrg }
    102      1.1       mrg 
    103      1.1       mrg xcb_xinerama_get_state_cookie_t
    104  1.4.2.1  pgoyette xcb_xinerama_get_state (xcb_connection_t *c,
    105  1.4.2.1  pgoyette                         xcb_window_t      window)
    106      1.1       mrg {
    107      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    108  1.4.2.1  pgoyette         .count = 2,
    109  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    110  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_GET_STATE,
    111  1.4.2.1  pgoyette         .isvoid = 0
    112      1.1       mrg     };
    113      1.4       mrg 
    114      1.1       mrg     struct iovec xcb_parts[4];
    115      1.1       mrg     xcb_xinerama_get_state_cookie_t xcb_ret;
    116      1.1       mrg     xcb_xinerama_get_state_request_t xcb_out;
    117      1.4       mrg 
    118      1.1       mrg     xcb_out.window = window;
    119      1.4       mrg 
    120      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    121      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    122      1.1       mrg     xcb_parts[3].iov_base = 0;
    123      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    124      1.4       mrg 
    125      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    126      1.1       mrg     return xcb_ret;
    127      1.1       mrg }
    128      1.1       mrg 
    129      1.1       mrg xcb_xinerama_get_state_cookie_t
    130  1.4.2.1  pgoyette xcb_xinerama_get_state_unchecked (xcb_connection_t *c,
    131  1.4.2.1  pgoyette                                   xcb_window_t      window)
    132      1.1       mrg {
    133      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    134  1.4.2.1  pgoyette         .count = 2,
    135  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    136  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_GET_STATE,
    137  1.4.2.1  pgoyette         .isvoid = 0
    138      1.1       mrg     };
    139      1.4       mrg 
    140      1.1       mrg     struct iovec xcb_parts[4];
    141      1.1       mrg     xcb_xinerama_get_state_cookie_t xcb_ret;
    142      1.1       mrg     xcb_xinerama_get_state_request_t xcb_out;
    143      1.4       mrg 
    144      1.1       mrg     xcb_out.window = window;
    145      1.4       mrg 
    146      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    147      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    148      1.1       mrg     xcb_parts[3].iov_base = 0;
    149      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    150      1.4       mrg 
    151      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    152      1.1       mrg     return xcb_ret;
    153      1.1       mrg }
    154      1.1       mrg 
    155      1.1       mrg xcb_xinerama_get_state_reply_t *
    156  1.4.2.1  pgoyette xcb_xinerama_get_state_reply (xcb_connection_t                 *c,
    157      1.1       mrg                               xcb_xinerama_get_state_cookie_t   cookie  /**< */,
    158  1.4.2.1  pgoyette                               xcb_generic_error_t             **e)
    159      1.1       mrg {
    160      1.1       mrg     return (xcb_xinerama_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    161      1.1       mrg }
    162      1.1       mrg 
    163      1.1       mrg xcb_xinerama_get_screen_count_cookie_t
    164  1.4.2.1  pgoyette xcb_xinerama_get_screen_count (xcb_connection_t *c,
    165  1.4.2.1  pgoyette                                xcb_window_t      window)
    166      1.1       mrg {
    167      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    168  1.4.2.1  pgoyette         .count = 2,
    169  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    170  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_GET_SCREEN_COUNT,
    171  1.4.2.1  pgoyette         .isvoid = 0
    172      1.1       mrg     };
    173      1.4       mrg 
    174      1.1       mrg     struct iovec xcb_parts[4];
    175      1.1       mrg     xcb_xinerama_get_screen_count_cookie_t xcb_ret;
    176      1.1       mrg     xcb_xinerama_get_screen_count_request_t xcb_out;
    177      1.4       mrg 
    178      1.1       mrg     xcb_out.window = window;
    179      1.4       mrg 
    180      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    181      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    182      1.1       mrg     xcb_parts[3].iov_base = 0;
    183      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    184      1.4       mrg 
    185      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    186      1.1       mrg     return xcb_ret;
    187      1.1       mrg }
    188      1.1       mrg 
    189      1.1       mrg xcb_xinerama_get_screen_count_cookie_t
    190  1.4.2.1  pgoyette xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c,
    191  1.4.2.1  pgoyette                                          xcb_window_t      window)
    192      1.1       mrg {
    193      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    194  1.4.2.1  pgoyette         .count = 2,
    195  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    196  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_GET_SCREEN_COUNT,
    197  1.4.2.1  pgoyette         .isvoid = 0
    198      1.1       mrg     };
    199      1.4       mrg 
    200      1.1       mrg     struct iovec xcb_parts[4];
    201      1.1       mrg     xcb_xinerama_get_screen_count_cookie_t xcb_ret;
    202      1.1       mrg     xcb_xinerama_get_screen_count_request_t xcb_out;
    203      1.4       mrg 
    204      1.1       mrg     xcb_out.window = window;
    205      1.4       mrg 
    206      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    207      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    208      1.1       mrg     xcb_parts[3].iov_base = 0;
    209      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    210      1.4       mrg 
    211      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    212      1.1       mrg     return xcb_ret;
    213      1.1       mrg }
    214      1.1       mrg 
    215      1.1       mrg xcb_xinerama_get_screen_count_reply_t *
    216  1.4.2.1  pgoyette xcb_xinerama_get_screen_count_reply (xcb_connection_t                        *c,
    217      1.1       mrg                                      xcb_xinerama_get_screen_count_cookie_t   cookie  /**< */,
    218  1.4.2.1  pgoyette                                      xcb_generic_error_t                    **e)
    219      1.1       mrg {
    220      1.1       mrg     return (xcb_xinerama_get_screen_count_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    221      1.1       mrg }
    222      1.1       mrg 
    223      1.1       mrg xcb_xinerama_get_screen_size_cookie_t
    224  1.4.2.1  pgoyette xcb_xinerama_get_screen_size (xcb_connection_t *c,
    225  1.4.2.1  pgoyette                               xcb_window_t      window,
    226  1.4.2.1  pgoyette                               uint32_t          screen)
    227      1.1       mrg {
    228      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    229  1.4.2.1  pgoyette         .count = 2,
    230  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    231  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_GET_SCREEN_SIZE,
    232  1.4.2.1  pgoyette         .isvoid = 0
    233      1.1       mrg     };
    234      1.4       mrg 
    235      1.1       mrg     struct iovec xcb_parts[4];
    236      1.1       mrg     xcb_xinerama_get_screen_size_cookie_t xcb_ret;
    237      1.1       mrg     xcb_xinerama_get_screen_size_request_t xcb_out;
    238      1.4       mrg 
    239      1.1       mrg     xcb_out.window = window;
    240      1.1       mrg     xcb_out.screen = screen;
    241      1.4       mrg 
    242      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    243      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    244      1.1       mrg     xcb_parts[3].iov_base = 0;
    245      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    246      1.4       mrg 
    247      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    248      1.1       mrg     return xcb_ret;
    249      1.1       mrg }
    250      1.1       mrg 
    251      1.1       mrg xcb_xinerama_get_screen_size_cookie_t
    252  1.4.2.1  pgoyette xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c,
    253  1.4.2.1  pgoyette                                         xcb_window_t      window,
    254  1.4.2.1  pgoyette                                         uint32_t          screen)
    255      1.1       mrg {
    256      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    257  1.4.2.1  pgoyette         .count = 2,
    258  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    259  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_GET_SCREEN_SIZE,
    260  1.4.2.1  pgoyette         .isvoid = 0
    261      1.1       mrg     };
    262      1.4       mrg 
    263      1.1       mrg     struct iovec xcb_parts[4];
    264      1.1       mrg     xcb_xinerama_get_screen_size_cookie_t xcb_ret;
    265      1.1       mrg     xcb_xinerama_get_screen_size_request_t xcb_out;
    266      1.4       mrg 
    267      1.1       mrg     xcb_out.window = window;
    268      1.1       mrg     xcb_out.screen = screen;
    269      1.4       mrg 
    270      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    271      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    272      1.1       mrg     xcb_parts[3].iov_base = 0;
    273      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    274      1.4       mrg 
    275      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    276      1.1       mrg     return xcb_ret;
    277      1.1       mrg }
    278      1.1       mrg 
    279      1.1       mrg xcb_xinerama_get_screen_size_reply_t *
    280  1.4.2.1  pgoyette xcb_xinerama_get_screen_size_reply (xcb_connection_t                       *c,
    281      1.1       mrg                                     xcb_xinerama_get_screen_size_cookie_t   cookie  /**< */,
    282  1.4.2.1  pgoyette                                     xcb_generic_error_t                   **e)
    283      1.1       mrg {
    284      1.1       mrg     return (xcb_xinerama_get_screen_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    285      1.1       mrg }
    286      1.1       mrg 
    287      1.1       mrg xcb_xinerama_is_active_cookie_t
    288  1.4.2.1  pgoyette xcb_xinerama_is_active (xcb_connection_t *c)
    289      1.1       mrg {
    290      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    291  1.4.2.1  pgoyette         .count = 2,
    292  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    293  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_IS_ACTIVE,
    294  1.4.2.1  pgoyette         .isvoid = 0
    295      1.1       mrg     };
    296      1.4       mrg 
    297      1.1       mrg     struct iovec xcb_parts[4];
    298      1.1       mrg     xcb_xinerama_is_active_cookie_t xcb_ret;
    299      1.1       mrg     xcb_xinerama_is_active_request_t xcb_out;
    300      1.4       mrg 
    301      1.4       mrg 
    302      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    303      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    304      1.1       mrg     xcb_parts[3].iov_base = 0;
    305      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    306      1.4       mrg 
    307      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    308      1.1       mrg     return xcb_ret;
    309      1.1       mrg }
    310      1.1       mrg 
    311      1.1       mrg xcb_xinerama_is_active_cookie_t
    312  1.4.2.1  pgoyette xcb_xinerama_is_active_unchecked (xcb_connection_t *c)
    313      1.1       mrg {
    314      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    315  1.4.2.1  pgoyette         .count = 2,
    316  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    317  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_IS_ACTIVE,
    318  1.4.2.1  pgoyette         .isvoid = 0
    319      1.1       mrg     };
    320      1.4       mrg 
    321      1.1       mrg     struct iovec xcb_parts[4];
    322      1.1       mrg     xcb_xinerama_is_active_cookie_t xcb_ret;
    323      1.1       mrg     xcb_xinerama_is_active_request_t xcb_out;
    324      1.4       mrg 
    325      1.4       mrg 
    326      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    327      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    328      1.1       mrg     xcb_parts[3].iov_base = 0;
    329      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    330      1.4       mrg 
    331      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    332      1.1       mrg     return xcb_ret;
    333      1.1       mrg }
    334      1.1       mrg 
    335      1.1       mrg xcb_xinerama_is_active_reply_t *
    336  1.4.2.1  pgoyette xcb_xinerama_is_active_reply (xcb_connection_t                 *c,
    337      1.1       mrg                               xcb_xinerama_is_active_cookie_t   cookie  /**< */,
    338  1.4.2.1  pgoyette                               xcb_generic_error_t             **e)
    339      1.1       mrg {
    340      1.1       mrg     return (xcb_xinerama_is_active_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    341      1.1       mrg }
    342      1.1       mrg 
    343      1.2       mrg int
    344  1.4.2.1  pgoyette xcb_xinerama_query_screens_sizeof (const void  *_buffer)
    345      1.2       mrg {
    346      1.2       mrg     char *xcb_tmp = (char *)_buffer;
    347      1.2       mrg     const xcb_xinerama_query_screens_reply_t *_aux = (xcb_xinerama_query_screens_reply_t *)_buffer;
    348      1.2       mrg     unsigned int xcb_buffer_len = 0;
    349      1.2       mrg     unsigned int xcb_block_len = 0;
    350      1.2       mrg     unsigned int xcb_pad = 0;
    351      1.3       mrg     unsigned int xcb_align_to = 0;
    352      1.2       mrg 
    353      1.2       mrg 
    354      1.2       mrg     xcb_block_len += sizeof(xcb_xinerama_query_screens_reply_t);
    355      1.2       mrg     xcb_tmp += xcb_block_len;
    356      1.3       mrg     xcb_buffer_len += xcb_block_len;
    357      1.3       mrg     xcb_block_len = 0;
    358      1.2       mrg     /* screen_info */
    359      1.2       mrg     xcb_block_len += _aux->number * sizeof(xcb_xinerama_screen_info_t);
    360      1.2       mrg     xcb_tmp += xcb_block_len;
    361      1.2       mrg     xcb_align_to = ALIGNOF(xcb_xinerama_screen_info_t);
    362      1.2       mrg     /* insert padding */
    363      1.2       mrg     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
    364      1.2       mrg     xcb_buffer_len += xcb_block_len + xcb_pad;
    365      1.2       mrg     if (0 != xcb_pad) {
    366      1.2       mrg         xcb_tmp += xcb_pad;
    367      1.2       mrg         xcb_pad = 0;
    368      1.2       mrg     }
    369      1.2       mrg     xcb_block_len = 0;
    370      1.2       mrg 
    371      1.2       mrg     return xcb_buffer_len;
    372      1.2       mrg }
    373      1.2       mrg 
    374      1.1       mrg xcb_xinerama_query_screens_cookie_t
    375  1.4.2.1  pgoyette xcb_xinerama_query_screens (xcb_connection_t *c)
    376      1.1       mrg {
    377      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    378  1.4.2.1  pgoyette         .count = 2,
    379  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    380  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_QUERY_SCREENS,
    381  1.4.2.1  pgoyette         .isvoid = 0
    382      1.1       mrg     };
    383      1.4       mrg 
    384      1.1       mrg     struct iovec xcb_parts[4];
    385      1.1       mrg     xcb_xinerama_query_screens_cookie_t xcb_ret;
    386      1.1       mrg     xcb_xinerama_query_screens_request_t xcb_out;
    387      1.4       mrg 
    388      1.4       mrg 
    389      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    390      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    391      1.1       mrg     xcb_parts[3].iov_base = 0;
    392      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    393      1.4       mrg 
    394      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    395      1.1       mrg     return xcb_ret;
    396      1.1       mrg }
    397      1.1       mrg 
    398      1.1       mrg xcb_xinerama_query_screens_cookie_t
    399  1.4.2.1  pgoyette xcb_xinerama_query_screens_unchecked (xcb_connection_t *c)
    400      1.1       mrg {
    401      1.1       mrg     static const xcb_protocol_request_t xcb_req = {
    402  1.4.2.1  pgoyette         .count = 2,
    403  1.4.2.1  pgoyette         .ext = &xcb_xinerama_id,
    404  1.4.2.1  pgoyette         .opcode = XCB_XINERAMA_QUERY_SCREENS,
    405  1.4.2.1  pgoyette         .isvoid = 0
    406      1.1       mrg     };
    407      1.4       mrg 
    408      1.1       mrg     struct iovec xcb_parts[4];
    409      1.1       mrg     xcb_xinerama_query_screens_cookie_t xcb_ret;
    410      1.1       mrg     xcb_xinerama_query_screens_request_t xcb_out;
    411      1.4       mrg 
    412      1.4       mrg 
    413      1.1       mrg     xcb_parts[2].iov_base = (char *) &xcb_out;
    414      1.1       mrg     xcb_parts[2].iov_len = sizeof(xcb_out);
    415      1.1       mrg     xcb_parts[3].iov_base = 0;
    416      1.1       mrg     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    417      1.4       mrg 
    418      1.1       mrg     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    419      1.1       mrg     return xcb_ret;
    420      1.1       mrg }
    421      1.1       mrg 
    422      1.1       mrg xcb_xinerama_screen_info_t *
    423  1.4.2.1  pgoyette xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R)
    424      1.1       mrg {
    425      1.1       mrg     return (xcb_xinerama_screen_info_t *) (R + 1);
    426      1.1       mrg }
    427      1.1       mrg 
    428      1.1       mrg int
    429  1.4.2.1  pgoyette xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R)
    430      1.1       mrg {
    431      1.1       mrg     return R->number;
    432      1.1       mrg }
    433      1.1       mrg 
    434      1.1       mrg xcb_xinerama_screen_info_iterator_t
    435  1.4.2.1  pgoyette xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R)
    436      1.1       mrg {
    437      1.1       mrg     xcb_xinerama_screen_info_iterator_t i;
    438      1.1       mrg     i.data = (xcb_xinerama_screen_info_t *) (R + 1);
    439      1.1       mrg     i.rem = R->number;
    440      1.1       mrg     i.index = (char *) i.data - (char *) R;
    441      1.1       mrg     return i;
    442      1.1       mrg }
    443      1.1       mrg 
    444      1.1       mrg xcb_xinerama_query_screens_reply_t *
    445  1.4.2.1  pgoyette xcb_xinerama_query_screens_reply (xcb_connection_t                     *c,
    446      1.1       mrg                                   xcb_xinerama_query_screens_cookie_t   cookie  /**< */,
    447  1.4.2.1  pgoyette                                   xcb_generic_error_t                 **e)
    448      1.1       mrg {
    449      1.1       mrg     return (xcb_xinerama_query_screens_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    450      1.1       mrg }
    451      1.1       mrg 
    452