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