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