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