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