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