xref: /netbsd-src/external/mit/xorg/lib/libxcb/files/xinerama.c (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
1 /*
2  * This file generated automatically from xinerama.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 "xinerama.h"
15 
16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
17 #include "xproto.h"
18 
19 xcb_extension_t xcb_xinerama_id = { "XINERAMA", 0 };
20 
21 
22 /*****************************************************************************
23  **
24  ** void xcb_xinerama_screen_info_next
25  **
26  ** @param xcb_xinerama_screen_info_iterator_t *i
27  ** @returns void
28  **
29  *****************************************************************************/
30 
31 void
32 xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i  /**< */)
33 {
34     --i->rem;
35     ++i->data;
36     i->index += sizeof(xcb_xinerama_screen_info_t);
37 }
38 
39 
40 /*****************************************************************************
41  **
42  ** xcb_generic_iterator_t xcb_xinerama_screen_info_end
43  **
44  ** @param xcb_xinerama_screen_info_iterator_t i
45  ** @returns xcb_generic_iterator_t
46  **
47  *****************************************************************************/
48 
49 xcb_generic_iterator_t
50 xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_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  ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version
63  **
64  ** @param xcb_connection_t *c
65  ** @param uint8_t           major
66  ** @param uint8_t           minor
67  ** @returns xcb_xinerama_query_version_cookie_t
68  **
69  *****************************************************************************/
70 
71 xcb_xinerama_query_version_cookie_t
72 xcb_xinerama_query_version (xcb_connection_t *c  /**< */,
73                             uint8_t           major  /**< */,
74                             uint8_t           minor  /**< */)
75 {
76     static const xcb_protocol_request_t xcb_req = {
77         /* count */ 2,
78         /* ext */ &xcb_xinerama_id,
79         /* opcode */ XCB_XINERAMA_QUERY_VERSION,
80         /* isvoid */ 0
81     };
82 
83     struct iovec xcb_parts[4];
84     xcb_xinerama_query_version_cookie_t xcb_ret;
85     xcb_xinerama_query_version_request_t xcb_out;
86 
87     xcb_out.major = major;
88     xcb_out.minor = minor;
89 
90     xcb_parts[2].iov_base = (char *) &xcb_out;
91     xcb_parts[2].iov_len = sizeof(xcb_out);
92     xcb_parts[3].iov_base = 0;
93     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
94 
95     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
96     return xcb_ret;
97 }
98 
99 
100 /*****************************************************************************
101  **
102  ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version_unchecked
103  **
104  ** @param xcb_connection_t *c
105  ** @param uint8_t           major
106  ** @param uint8_t           minor
107  ** @returns xcb_xinerama_query_version_cookie_t
108  **
109  *****************************************************************************/
110 
111 xcb_xinerama_query_version_cookie_t
112 xcb_xinerama_query_version_unchecked (xcb_connection_t *c  /**< */,
113                                       uint8_t           major  /**< */,
114                                       uint8_t           minor  /**< */)
115 {
116     static const xcb_protocol_request_t xcb_req = {
117         /* count */ 2,
118         /* ext */ &xcb_xinerama_id,
119         /* opcode */ XCB_XINERAMA_QUERY_VERSION,
120         /* isvoid */ 0
121     };
122 
123     struct iovec xcb_parts[4];
124     xcb_xinerama_query_version_cookie_t xcb_ret;
125     xcb_xinerama_query_version_request_t xcb_out;
126 
127     xcb_out.major = major;
128     xcb_out.minor = minor;
129 
130     xcb_parts[2].iov_base = (char *) &xcb_out;
131     xcb_parts[2].iov_len = sizeof(xcb_out);
132     xcb_parts[3].iov_base = 0;
133     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
134 
135     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
136     return xcb_ret;
137 }
138 
139 
140 /*****************************************************************************
141  **
142  ** xcb_xinerama_query_version_reply_t * xcb_xinerama_query_version_reply
143  **
144  ** @param xcb_connection_t                     *c
145  ** @param xcb_xinerama_query_version_cookie_t   cookie
146  ** @param xcb_generic_error_t                 **e
147  ** @returns xcb_xinerama_query_version_reply_t *
148  **
149  *****************************************************************************/
150 
151 xcb_xinerama_query_version_reply_t *
152 xcb_xinerama_query_version_reply (xcb_connection_t                     *c  /**< */,
153                                   xcb_xinerama_query_version_cookie_t   cookie  /**< */,
154                                   xcb_generic_error_t                 **e  /**< */)
155 {
156     return (xcb_xinerama_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
157 }
158 
159 
160 /*****************************************************************************
161  **
162  ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state
163  **
164  ** @param xcb_connection_t *c
165  ** @param xcb_window_t      window
166  ** @returns xcb_xinerama_get_state_cookie_t
167  **
168  *****************************************************************************/
169 
170 xcb_xinerama_get_state_cookie_t
171 xcb_xinerama_get_state (xcb_connection_t *c  /**< */,
172                         xcb_window_t      window  /**< */)
173 {
174     static const xcb_protocol_request_t xcb_req = {
175         /* count */ 2,
176         /* ext */ &xcb_xinerama_id,
177         /* opcode */ XCB_XINERAMA_GET_STATE,
178         /* isvoid */ 0
179     };
180 
181     struct iovec xcb_parts[4];
182     xcb_xinerama_get_state_cookie_t xcb_ret;
183     xcb_xinerama_get_state_request_t xcb_out;
184 
185     xcb_out.window = window;
186 
187     xcb_parts[2].iov_base = (char *) &xcb_out;
188     xcb_parts[2].iov_len = sizeof(xcb_out);
189     xcb_parts[3].iov_base = 0;
190     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
191 
192     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
193     return xcb_ret;
194 }
195 
196 
197 /*****************************************************************************
198  **
199  ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state_unchecked
200  **
201  ** @param xcb_connection_t *c
202  ** @param xcb_window_t      window
203  ** @returns xcb_xinerama_get_state_cookie_t
204  **
205  *****************************************************************************/
206 
207 xcb_xinerama_get_state_cookie_t
208 xcb_xinerama_get_state_unchecked (xcb_connection_t *c  /**< */,
209                                   xcb_window_t      window  /**< */)
210 {
211     static const xcb_protocol_request_t xcb_req = {
212         /* count */ 2,
213         /* ext */ &xcb_xinerama_id,
214         /* opcode */ XCB_XINERAMA_GET_STATE,
215         /* isvoid */ 0
216     };
217 
218     struct iovec xcb_parts[4];
219     xcb_xinerama_get_state_cookie_t xcb_ret;
220     xcb_xinerama_get_state_request_t xcb_out;
221 
222     xcb_out.window = window;
223 
224     xcb_parts[2].iov_base = (char *) &xcb_out;
225     xcb_parts[2].iov_len = sizeof(xcb_out);
226     xcb_parts[3].iov_base = 0;
227     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
228 
229     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
230     return xcb_ret;
231 }
232 
233 
234 /*****************************************************************************
235  **
236  ** xcb_xinerama_get_state_reply_t * xcb_xinerama_get_state_reply
237  **
238  ** @param xcb_connection_t                 *c
239  ** @param xcb_xinerama_get_state_cookie_t   cookie
240  ** @param xcb_generic_error_t             **e
241  ** @returns xcb_xinerama_get_state_reply_t *
242  **
243  *****************************************************************************/
244 
245 xcb_xinerama_get_state_reply_t *
246 xcb_xinerama_get_state_reply (xcb_connection_t                 *c  /**< */,
247                               xcb_xinerama_get_state_cookie_t   cookie  /**< */,
248                               xcb_generic_error_t             **e  /**< */)
249 {
250     return (xcb_xinerama_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
251 }
252 
253 
254 /*****************************************************************************
255  **
256  ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count
257  **
258  ** @param xcb_connection_t *c
259  ** @param xcb_window_t      window
260  ** @returns xcb_xinerama_get_screen_count_cookie_t
261  **
262  *****************************************************************************/
263 
264 xcb_xinerama_get_screen_count_cookie_t
265 xcb_xinerama_get_screen_count (xcb_connection_t *c  /**< */,
266                                xcb_window_t      window  /**< */)
267 {
268     static const xcb_protocol_request_t xcb_req = {
269         /* count */ 2,
270         /* ext */ &xcb_xinerama_id,
271         /* opcode */ XCB_XINERAMA_GET_SCREEN_COUNT,
272         /* isvoid */ 0
273     };
274 
275     struct iovec xcb_parts[4];
276     xcb_xinerama_get_screen_count_cookie_t xcb_ret;
277     xcb_xinerama_get_screen_count_request_t xcb_out;
278 
279     xcb_out.window = window;
280 
281     xcb_parts[2].iov_base = (char *) &xcb_out;
282     xcb_parts[2].iov_len = sizeof(xcb_out);
283     xcb_parts[3].iov_base = 0;
284     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
285 
286     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
287     return xcb_ret;
288 }
289 
290 
291 /*****************************************************************************
292  **
293  ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count_unchecked
294  **
295  ** @param xcb_connection_t *c
296  ** @param xcb_window_t      window
297  ** @returns xcb_xinerama_get_screen_count_cookie_t
298  **
299  *****************************************************************************/
300 
301 xcb_xinerama_get_screen_count_cookie_t
302 xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c  /**< */,
303                                          xcb_window_t      window  /**< */)
304 {
305     static const xcb_protocol_request_t xcb_req = {
306         /* count */ 2,
307         /* ext */ &xcb_xinerama_id,
308         /* opcode */ XCB_XINERAMA_GET_SCREEN_COUNT,
309         /* isvoid */ 0
310     };
311 
312     struct iovec xcb_parts[4];
313     xcb_xinerama_get_screen_count_cookie_t xcb_ret;
314     xcb_xinerama_get_screen_count_request_t xcb_out;
315 
316     xcb_out.window = window;
317 
318     xcb_parts[2].iov_base = (char *) &xcb_out;
319     xcb_parts[2].iov_len = sizeof(xcb_out);
320     xcb_parts[3].iov_base = 0;
321     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
322 
323     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
324     return xcb_ret;
325 }
326 
327 
328 /*****************************************************************************
329  **
330  ** xcb_xinerama_get_screen_count_reply_t * xcb_xinerama_get_screen_count_reply
331  **
332  ** @param xcb_connection_t                        *c
333  ** @param xcb_xinerama_get_screen_count_cookie_t   cookie
334  ** @param xcb_generic_error_t                    **e
335  ** @returns xcb_xinerama_get_screen_count_reply_t *
336  **
337  *****************************************************************************/
338 
339 xcb_xinerama_get_screen_count_reply_t *
340 xcb_xinerama_get_screen_count_reply (xcb_connection_t                        *c  /**< */,
341                                      xcb_xinerama_get_screen_count_cookie_t   cookie  /**< */,
342                                      xcb_generic_error_t                    **e  /**< */)
343 {
344     return (xcb_xinerama_get_screen_count_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
345 }
346 
347 
348 /*****************************************************************************
349  **
350  ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size
351  **
352  ** @param xcb_connection_t *c
353  ** @param xcb_window_t      window
354  ** @param uint32_t          screen
355  ** @returns xcb_xinerama_get_screen_size_cookie_t
356  **
357  *****************************************************************************/
358 
359 xcb_xinerama_get_screen_size_cookie_t
360 xcb_xinerama_get_screen_size (xcb_connection_t *c  /**< */,
361                               xcb_window_t      window  /**< */,
362                               uint32_t          screen  /**< */)
363 {
364     static const xcb_protocol_request_t xcb_req = {
365         /* count */ 2,
366         /* ext */ &xcb_xinerama_id,
367         /* opcode */ XCB_XINERAMA_GET_SCREEN_SIZE,
368         /* isvoid */ 0
369     };
370 
371     struct iovec xcb_parts[4];
372     xcb_xinerama_get_screen_size_cookie_t xcb_ret;
373     xcb_xinerama_get_screen_size_request_t xcb_out;
374 
375     xcb_out.window = window;
376     xcb_out.screen = screen;
377 
378     xcb_parts[2].iov_base = (char *) &xcb_out;
379     xcb_parts[2].iov_len = sizeof(xcb_out);
380     xcb_parts[3].iov_base = 0;
381     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
382 
383     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
384     return xcb_ret;
385 }
386 
387 
388 /*****************************************************************************
389  **
390  ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size_unchecked
391  **
392  ** @param xcb_connection_t *c
393  ** @param xcb_window_t      window
394  ** @param uint32_t          screen
395  ** @returns xcb_xinerama_get_screen_size_cookie_t
396  **
397  *****************************************************************************/
398 
399 xcb_xinerama_get_screen_size_cookie_t
400 xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c  /**< */,
401                                         xcb_window_t      window  /**< */,
402                                         uint32_t          screen  /**< */)
403 {
404     static const xcb_protocol_request_t xcb_req = {
405         /* count */ 2,
406         /* ext */ &xcb_xinerama_id,
407         /* opcode */ XCB_XINERAMA_GET_SCREEN_SIZE,
408         /* isvoid */ 0
409     };
410 
411     struct iovec xcb_parts[4];
412     xcb_xinerama_get_screen_size_cookie_t xcb_ret;
413     xcb_xinerama_get_screen_size_request_t xcb_out;
414 
415     xcb_out.window = window;
416     xcb_out.screen = screen;
417 
418     xcb_parts[2].iov_base = (char *) &xcb_out;
419     xcb_parts[2].iov_len = sizeof(xcb_out);
420     xcb_parts[3].iov_base = 0;
421     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
422 
423     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
424     return xcb_ret;
425 }
426 
427 
428 /*****************************************************************************
429  **
430  ** xcb_xinerama_get_screen_size_reply_t * xcb_xinerama_get_screen_size_reply
431  **
432  ** @param xcb_connection_t                       *c
433  ** @param xcb_xinerama_get_screen_size_cookie_t   cookie
434  ** @param xcb_generic_error_t                   **e
435  ** @returns xcb_xinerama_get_screen_size_reply_t *
436  **
437  *****************************************************************************/
438 
439 xcb_xinerama_get_screen_size_reply_t *
440 xcb_xinerama_get_screen_size_reply (xcb_connection_t                       *c  /**< */,
441                                     xcb_xinerama_get_screen_size_cookie_t   cookie  /**< */,
442                                     xcb_generic_error_t                   **e  /**< */)
443 {
444     return (xcb_xinerama_get_screen_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
445 }
446 
447 
448 /*****************************************************************************
449  **
450  ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active
451  **
452  ** @param xcb_connection_t *c
453  ** @returns xcb_xinerama_is_active_cookie_t
454  **
455  *****************************************************************************/
456 
457 xcb_xinerama_is_active_cookie_t
458 xcb_xinerama_is_active (xcb_connection_t *c  /**< */)
459 {
460     static const xcb_protocol_request_t xcb_req = {
461         /* count */ 2,
462         /* ext */ &xcb_xinerama_id,
463         /* opcode */ XCB_XINERAMA_IS_ACTIVE,
464         /* isvoid */ 0
465     };
466 
467     struct iovec xcb_parts[4];
468     xcb_xinerama_is_active_cookie_t xcb_ret;
469     xcb_xinerama_is_active_request_t xcb_out;
470 
471 
472     xcb_parts[2].iov_base = (char *) &xcb_out;
473     xcb_parts[2].iov_len = sizeof(xcb_out);
474     xcb_parts[3].iov_base = 0;
475     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
476 
477     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
478     return xcb_ret;
479 }
480 
481 
482 /*****************************************************************************
483  **
484  ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active_unchecked
485  **
486  ** @param xcb_connection_t *c
487  ** @returns xcb_xinerama_is_active_cookie_t
488  **
489  *****************************************************************************/
490 
491 xcb_xinerama_is_active_cookie_t
492 xcb_xinerama_is_active_unchecked (xcb_connection_t *c  /**< */)
493 {
494     static const xcb_protocol_request_t xcb_req = {
495         /* count */ 2,
496         /* ext */ &xcb_xinerama_id,
497         /* opcode */ XCB_XINERAMA_IS_ACTIVE,
498         /* isvoid */ 0
499     };
500 
501     struct iovec xcb_parts[4];
502     xcb_xinerama_is_active_cookie_t xcb_ret;
503     xcb_xinerama_is_active_request_t xcb_out;
504 
505 
506     xcb_parts[2].iov_base = (char *) &xcb_out;
507     xcb_parts[2].iov_len = sizeof(xcb_out);
508     xcb_parts[3].iov_base = 0;
509     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
510 
511     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
512     return xcb_ret;
513 }
514 
515 
516 /*****************************************************************************
517  **
518  ** xcb_xinerama_is_active_reply_t * xcb_xinerama_is_active_reply
519  **
520  ** @param xcb_connection_t                 *c
521  ** @param xcb_xinerama_is_active_cookie_t   cookie
522  ** @param xcb_generic_error_t             **e
523  ** @returns xcb_xinerama_is_active_reply_t *
524  **
525  *****************************************************************************/
526 
527 xcb_xinerama_is_active_reply_t *
528 xcb_xinerama_is_active_reply (xcb_connection_t                 *c  /**< */,
529                               xcb_xinerama_is_active_cookie_t   cookie  /**< */,
530                               xcb_generic_error_t             **e  /**< */)
531 {
532     return (xcb_xinerama_is_active_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
533 }
534 
535 int
536 xcb_xinerama_query_screens_sizeof (const void  *_buffer  /**< */)
537 {
538     char *xcb_tmp = (char *)_buffer;
539     const xcb_xinerama_query_screens_reply_t *_aux = (xcb_xinerama_query_screens_reply_t *)_buffer;
540     unsigned int xcb_buffer_len = 0;
541     unsigned int xcb_block_len = 0;
542     unsigned int xcb_pad = 0;
543     unsigned int xcb_align_to = 0;
544 
545 
546     xcb_block_len += sizeof(xcb_xinerama_query_screens_reply_t);
547     xcb_tmp += xcb_block_len;
548     xcb_buffer_len += xcb_block_len;
549     xcb_block_len = 0;
550     /* screen_info */
551     xcb_block_len += _aux->number * sizeof(xcb_xinerama_screen_info_t);
552     xcb_tmp += xcb_block_len;
553     xcb_align_to = ALIGNOF(xcb_xinerama_screen_info_t);
554     /* insert padding */
555     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
556     xcb_buffer_len += xcb_block_len + xcb_pad;
557     if (0 != xcb_pad) {
558         xcb_tmp += xcb_pad;
559         xcb_pad = 0;
560     }
561     xcb_block_len = 0;
562 
563     return xcb_buffer_len;
564 }
565 
566 
567 /*****************************************************************************
568  **
569  ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens
570  **
571  ** @param xcb_connection_t *c
572  ** @returns xcb_xinerama_query_screens_cookie_t
573  **
574  *****************************************************************************/
575 
576 xcb_xinerama_query_screens_cookie_t
577 xcb_xinerama_query_screens (xcb_connection_t *c  /**< */)
578 {
579     static const xcb_protocol_request_t xcb_req = {
580         /* count */ 2,
581         /* ext */ &xcb_xinerama_id,
582         /* opcode */ XCB_XINERAMA_QUERY_SCREENS,
583         /* isvoid */ 0
584     };
585 
586     struct iovec xcb_parts[4];
587     xcb_xinerama_query_screens_cookie_t xcb_ret;
588     xcb_xinerama_query_screens_request_t xcb_out;
589 
590 
591     xcb_parts[2].iov_base = (char *) &xcb_out;
592     xcb_parts[2].iov_len = sizeof(xcb_out);
593     xcb_parts[3].iov_base = 0;
594     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
595 
596     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
597     return xcb_ret;
598 }
599 
600 
601 /*****************************************************************************
602  **
603  ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens_unchecked
604  **
605  ** @param xcb_connection_t *c
606  ** @returns xcb_xinerama_query_screens_cookie_t
607  **
608  *****************************************************************************/
609 
610 xcb_xinerama_query_screens_cookie_t
611 xcb_xinerama_query_screens_unchecked (xcb_connection_t *c  /**< */)
612 {
613     static const xcb_protocol_request_t xcb_req = {
614         /* count */ 2,
615         /* ext */ &xcb_xinerama_id,
616         /* opcode */ XCB_XINERAMA_QUERY_SCREENS,
617         /* isvoid */ 0
618     };
619 
620     struct iovec xcb_parts[4];
621     xcb_xinerama_query_screens_cookie_t xcb_ret;
622     xcb_xinerama_query_screens_request_t xcb_out;
623 
624 
625     xcb_parts[2].iov_base = (char *) &xcb_out;
626     xcb_parts[2].iov_len = sizeof(xcb_out);
627     xcb_parts[3].iov_base = 0;
628     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
629 
630     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
631     return xcb_ret;
632 }
633 
634 
635 /*****************************************************************************
636  **
637  ** xcb_xinerama_screen_info_t * xcb_xinerama_query_screens_screen_info
638  **
639  ** @param const xcb_xinerama_query_screens_reply_t *R
640  ** @returns xcb_xinerama_screen_info_t *
641  **
642  *****************************************************************************/
643 
644 xcb_xinerama_screen_info_t *
645 xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R  /**< */)
646 {
647     return (xcb_xinerama_screen_info_t *) (R + 1);
648 }
649 
650 
651 /*****************************************************************************
652  **
653  ** int xcb_xinerama_query_screens_screen_info_length
654  **
655  ** @param const xcb_xinerama_query_screens_reply_t *R
656  ** @returns int
657  **
658  *****************************************************************************/
659 
660 int
661 xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R  /**< */)
662 {
663     return R->number;
664 }
665 
666 
667 /*****************************************************************************
668  **
669  ** xcb_xinerama_screen_info_iterator_t xcb_xinerama_query_screens_screen_info_iterator
670  **
671  ** @param const xcb_xinerama_query_screens_reply_t *R
672  ** @returns xcb_xinerama_screen_info_iterator_t
673  **
674  *****************************************************************************/
675 
676 xcb_xinerama_screen_info_iterator_t
677 xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R  /**< */)
678 {
679     xcb_xinerama_screen_info_iterator_t i;
680     i.data = (xcb_xinerama_screen_info_t *) (R + 1);
681     i.rem = R->number;
682     i.index = (char *) i.data - (char *) R;
683     return i;
684 }
685 
686 
687 /*****************************************************************************
688  **
689  ** xcb_xinerama_query_screens_reply_t * xcb_xinerama_query_screens_reply
690  **
691  ** @param xcb_connection_t                     *c
692  ** @param xcb_xinerama_query_screens_cookie_t   cookie
693  ** @param xcb_generic_error_t                 **e
694  ** @returns xcb_xinerama_query_screens_reply_t *
695  **
696  *****************************************************************************/
697 
698 xcb_xinerama_query_screens_reply_t *
699 xcb_xinerama_query_screens_reply (xcb_connection_t                     *c  /**< */,
700                                   xcb_xinerama_query_screens_cookie_t   cookie  /**< */,
701                                   xcb_generic_error_t                 **e  /**< */)
702 {
703     return (xcb_xinerama_query_screens_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
704 }
705 
706