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