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