1 /* 2 * This file generated automatically from shm.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6 /** 7 * @defgroup XCB_Shm_API XCB Shm API 8 * @brief Shm XCB Protocol Implementation. 9 * @{ 10 **/ 11 12 #ifndef __SHM_H 13 #define __SHM_H 14 15 #include "xcb.h" 16 #include "xproto.h" 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 #define XCB_SHM_MAJOR_VERSION 1 23 #define XCB_SHM_MINOR_VERSION 1 24 25 extern xcb_extension_t xcb_shm_id; 26 27 typedef uint32_t xcb_shm_seg_t; 28 29 /** 30 * @brief xcb_shm_seg_iterator_t 31 **/ 32 typedef struct xcb_shm_seg_iterator_t { 33 xcb_shm_seg_t *data; /**< */ 34 int rem; /**< */ 35 int index; /**< */ 36 } xcb_shm_seg_iterator_t; 37 38 /** Opcode for xcb_shm_completion. */ 39 #define XCB_SHM_COMPLETION 0 40 41 /** 42 * @brief xcb_shm_completion_event_t 43 **/ 44 typedef struct xcb_shm_completion_event_t { 45 uint8_t response_type; /**< */ 46 uint8_t pad0; /**< */ 47 uint16_t sequence; /**< */ 48 xcb_drawable_t drawable; /**< */ 49 uint16_t minor_event; /**< */ 50 uint8_t major_event; /**< */ 51 uint8_t pad1; /**< */ 52 xcb_shm_seg_t shmseg; /**< */ 53 uint32_t offset; /**< */ 54 } xcb_shm_completion_event_t; 55 56 /** Opcode for xcb_shm_bad_seg. */ 57 #define XCB_SHM_BAD_SEG 0 58 59 typedef xcb_value_error_t xcb_shm_bad_seg_error_t; 60 61 /** 62 * @brief xcb_shm_query_version_cookie_t 63 **/ 64 typedef struct xcb_shm_query_version_cookie_t { 65 unsigned int sequence; /**< */ 66 } xcb_shm_query_version_cookie_t; 67 68 /** Opcode for xcb_shm_query_version. */ 69 #define XCB_SHM_QUERY_VERSION 0 70 71 /** 72 * @brief xcb_shm_query_version_request_t 73 **/ 74 typedef struct xcb_shm_query_version_request_t { 75 uint8_t major_opcode; /**< */ 76 uint8_t minor_opcode; /**< */ 77 uint16_t length; /**< */ 78 } xcb_shm_query_version_request_t; 79 80 /** 81 * @brief xcb_shm_query_version_reply_t 82 **/ 83 typedef struct xcb_shm_query_version_reply_t { 84 uint8_t response_type; /**< */ 85 uint8_t shared_pixmaps; /**< */ 86 uint16_t sequence; /**< */ 87 uint32_t length; /**< */ 88 uint16_t major_version; /**< */ 89 uint16_t minor_version; /**< */ 90 uint16_t uid; /**< */ 91 uint16_t gid; /**< */ 92 uint8_t pixmap_format; /**< */ 93 uint8_t pad0[15]; /**< */ 94 } xcb_shm_query_version_reply_t; 95 96 /** Opcode for xcb_shm_attach. */ 97 #define XCB_SHM_ATTACH 1 98 99 /** 100 * @brief xcb_shm_attach_request_t 101 **/ 102 typedef struct xcb_shm_attach_request_t { 103 uint8_t major_opcode; /**< */ 104 uint8_t minor_opcode; /**< */ 105 uint16_t length; /**< */ 106 xcb_shm_seg_t shmseg; /**< */ 107 uint32_t shmid; /**< */ 108 uint8_t read_only; /**< */ 109 uint8_t pad0[3]; /**< */ 110 } xcb_shm_attach_request_t; 111 112 /** Opcode for xcb_shm_detach. */ 113 #define XCB_SHM_DETACH 2 114 115 /** 116 * @brief xcb_shm_detach_request_t 117 **/ 118 typedef struct xcb_shm_detach_request_t { 119 uint8_t major_opcode; /**< */ 120 uint8_t minor_opcode; /**< */ 121 uint16_t length; /**< */ 122 xcb_shm_seg_t shmseg; /**< */ 123 } xcb_shm_detach_request_t; 124 125 /** Opcode for xcb_shm_put_image. */ 126 #define XCB_SHM_PUT_IMAGE 3 127 128 /** 129 * @brief xcb_shm_put_image_request_t 130 **/ 131 typedef struct xcb_shm_put_image_request_t { 132 uint8_t major_opcode; /**< */ 133 uint8_t minor_opcode; /**< */ 134 uint16_t length; /**< */ 135 xcb_drawable_t drawable; /**< */ 136 xcb_gcontext_t gc; /**< */ 137 uint16_t total_width; /**< */ 138 uint16_t total_height; /**< */ 139 uint16_t src_x; /**< */ 140 uint16_t src_y; /**< */ 141 uint16_t src_width; /**< */ 142 uint16_t src_height; /**< */ 143 int16_t dst_x; /**< */ 144 int16_t dst_y; /**< */ 145 uint8_t depth; /**< */ 146 uint8_t format; /**< */ 147 uint8_t send_event; /**< */ 148 uint8_t pad0; /**< */ 149 xcb_shm_seg_t shmseg; /**< */ 150 uint32_t offset; /**< */ 151 } xcb_shm_put_image_request_t; 152 153 /** 154 * @brief xcb_shm_get_image_cookie_t 155 **/ 156 typedef struct xcb_shm_get_image_cookie_t { 157 unsigned int sequence; /**< */ 158 } xcb_shm_get_image_cookie_t; 159 160 /** Opcode for xcb_shm_get_image. */ 161 #define XCB_SHM_GET_IMAGE 4 162 163 /** 164 * @brief xcb_shm_get_image_request_t 165 **/ 166 typedef struct xcb_shm_get_image_request_t { 167 uint8_t major_opcode; /**< */ 168 uint8_t minor_opcode; /**< */ 169 uint16_t length; /**< */ 170 xcb_drawable_t drawable; /**< */ 171 int16_t x; /**< */ 172 int16_t y; /**< */ 173 uint16_t width; /**< */ 174 uint16_t height; /**< */ 175 uint32_t plane_mask; /**< */ 176 uint8_t format; /**< */ 177 uint8_t pad0[3]; /**< */ 178 xcb_shm_seg_t shmseg; /**< */ 179 uint32_t offset; /**< */ 180 } xcb_shm_get_image_request_t; 181 182 /** 183 * @brief xcb_shm_get_image_reply_t 184 **/ 185 typedef struct xcb_shm_get_image_reply_t { 186 uint8_t response_type; /**< */ 187 uint8_t depth; /**< */ 188 uint16_t sequence; /**< */ 189 uint32_t length; /**< */ 190 xcb_visualid_t visual; /**< */ 191 uint32_t size; /**< */ 192 } xcb_shm_get_image_reply_t; 193 194 /** Opcode for xcb_shm_create_pixmap. */ 195 #define XCB_SHM_CREATE_PIXMAP 5 196 197 /** 198 * @brief xcb_shm_create_pixmap_request_t 199 **/ 200 typedef struct xcb_shm_create_pixmap_request_t { 201 uint8_t major_opcode; /**< */ 202 uint8_t minor_opcode; /**< */ 203 uint16_t length; /**< */ 204 xcb_pixmap_t pid; /**< */ 205 xcb_drawable_t drawable; /**< */ 206 uint16_t width; /**< */ 207 uint16_t height; /**< */ 208 uint8_t depth; /**< */ 209 uint8_t pad0[3]; /**< */ 210 xcb_shm_seg_t shmseg; /**< */ 211 uint32_t offset; /**< */ 212 } xcb_shm_create_pixmap_request_t; 213 214 /** 215 * Get the next element of the iterator 216 * @param i Pointer to a xcb_shm_seg_iterator_t 217 * 218 * Get the next element in the iterator. The member rem is 219 * decreased by one. The member data points to the next 220 * element. The member index is increased by sizeof(xcb_shm_seg_t) 221 */ 222 223 /***************************************************************************** 224 ** 225 ** void xcb_shm_seg_next 226 ** 227 ** @param xcb_shm_seg_iterator_t *i 228 ** @returns void 229 ** 230 *****************************************************************************/ 231 232 void 233 xcb_shm_seg_next (xcb_shm_seg_iterator_t *i /**< */); 234 235 /** 236 * Return the iterator pointing to the last element 237 * @param i An xcb_shm_seg_iterator_t 238 * @return The iterator pointing to the last element 239 * 240 * Set the current element in the iterator to the last element. 241 * The member rem is set to 0. The member data points to the 242 * last element. 243 */ 244 245 /***************************************************************************** 246 ** 247 ** xcb_generic_iterator_t xcb_shm_seg_end 248 ** 249 ** @param xcb_shm_seg_iterator_t i 250 ** @returns xcb_generic_iterator_t 251 ** 252 *****************************************************************************/ 253 254 xcb_generic_iterator_t 255 xcb_shm_seg_end (xcb_shm_seg_iterator_t i /**< */); 256 257 /** 258 * 259 * @param c The connection 260 * @return A cookie 261 * 262 * Delivers a request to the X server. 263 * 264 */ 265 266 /***************************************************************************** 267 ** 268 ** xcb_shm_query_version_cookie_t xcb_shm_query_version 269 ** 270 ** @param xcb_connection_t *c 271 ** @returns xcb_shm_query_version_cookie_t 272 ** 273 *****************************************************************************/ 274 275 xcb_shm_query_version_cookie_t 276 xcb_shm_query_version (xcb_connection_t *c /**< */); 277 278 /** 279 * 280 * @param c The connection 281 * @return A cookie 282 * 283 * Delivers a request to the X server. 284 * 285 * This form can be used only if the request will cause 286 * a reply to be generated. Any returned error will be 287 * placed in the event queue. 288 */ 289 290 /***************************************************************************** 291 ** 292 ** xcb_shm_query_version_cookie_t xcb_shm_query_version_unchecked 293 ** 294 ** @param xcb_connection_t *c 295 ** @returns xcb_shm_query_version_cookie_t 296 ** 297 *****************************************************************************/ 298 299 xcb_shm_query_version_cookie_t 300 xcb_shm_query_version_unchecked (xcb_connection_t *c /**< */); 301 302 /** 303 * Return the reply 304 * @param c The connection 305 * @param cookie The cookie 306 * @param e The xcb_generic_error_t supplied 307 * 308 * Returns the reply of the request asked by 309 * 310 * The parameter @p e supplied to this function must be NULL if 311 * xcb_shm_query_version_unchecked(). is used. 312 * Otherwise, it stores the error if any. 313 * 314 * The returned value must be freed by the caller using free(). 315 */ 316 317 /***************************************************************************** 318 ** 319 ** xcb_shm_query_version_reply_t * xcb_shm_query_version_reply 320 ** 321 ** @param xcb_connection_t *c 322 ** @param xcb_shm_query_version_cookie_t cookie 323 ** @param xcb_generic_error_t **e 324 ** @returns xcb_shm_query_version_reply_t * 325 ** 326 *****************************************************************************/ 327 328 xcb_shm_query_version_reply_t * 329 xcb_shm_query_version_reply (xcb_connection_t *c /**< */, 330 xcb_shm_query_version_cookie_t cookie /**< */, 331 xcb_generic_error_t **e /**< */); 332 333 /** 334 * 335 * @param c The connection 336 * @return A cookie 337 * 338 * Delivers a request to the X server. 339 * 340 * This form can be used only if the request will not cause 341 * a reply to be generated. Any returned error will be 342 * saved for handling by xcb_request_check(). 343 */ 344 345 /***************************************************************************** 346 ** 347 ** xcb_void_cookie_t xcb_shm_attach_checked 348 ** 349 ** @param xcb_connection_t *c 350 ** @param xcb_shm_seg_t shmseg 351 ** @param uint32_t shmid 352 ** @param uint8_t read_only 353 ** @returns xcb_void_cookie_t 354 ** 355 *****************************************************************************/ 356 357 xcb_void_cookie_t 358 xcb_shm_attach_checked (xcb_connection_t *c /**< */, 359 xcb_shm_seg_t shmseg /**< */, 360 uint32_t shmid /**< */, 361 uint8_t read_only /**< */); 362 363 /** 364 * 365 * @param c The connection 366 * @return A cookie 367 * 368 * Delivers a request to the X server. 369 * 370 */ 371 372 /***************************************************************************** 373 ** 374 ** xcb_void_cookie_t xcb_shm_attach 375 ** 376 ** @param xcb_connection_t *c 377 ** @param xcb_shm_seg_t shmseg 378 ** @param uint32_t shmid 379 ** @param uint8_t read_only 380 ** @returns xcb_void_cookie_t 381 ** 382 *****************************************************************************/ 383 384 xcb_void_cookie_t 385 xcb_shm_attach (xcb_connection_t *c /**< */, 386 xcb_shm_seg_t shmseg /**< */, 387 uint32_t shmid /**< */, 388 uint8_t read_only /**< */); 389 390 /** 391 * 392 * @param c The connection 393 * @return A cookie 394 * 395 * Delivers a request to the X server. 396 * 397 * This form can be used only if the request will not cause 398 * a reply to be generated. Any returned error will be 399 * saved for handling by xcb_request_check(). 400 */ 401 402 /***************************************************************************** 403 ** 404 ** xcb_void_cookie_t xcb_shm_detach_checked 405 ** 406 ** @param xcb_connection_t *c 407 ** @param xcb_shm_seg_t shmseg 408 ** @returns xcb_void_cookie_t 409 ** 410 *****************************************************************************/ 411 412 xcb_void_cookie_t 413 xcb_shm_detach_checked (xcb_connection_t *c /**< */, 414 xcb_shm_seg_t shmseg /**< */); 415 416 /** 417 * 418 * @param c The connection 419 * @return A cookie 420 * 421 * Delivers a request to the X server. 422 * 423 */ 424 425 /***************************************************************************** 426 ** 427 ** xcb_void_cookie_t xcb_shm_detach 428 ** 429 ** @param xcb_connection_t *c 430 ** @param xcb_shm_seg_t shmseg 431 ** @returns xcb_void_cookie_t 432 ** 433 *****************************************************************************/ 434 435 xcb_void_cookie_t 436 xcb_shm_detach (xcb_connection_t *c /**< */, 437 xcb_shm_seg_t shmseg /**< */); 438 439 /** 440 * 441 * @param c The connection 442 * @return A cookie 443 * 444 * Delivers a request to the X server. 445 * 446 * This form can be used only if the request will not cause 447 * a reply to be generated. Any returned error will be 448 * saved for handling by xcb_request_check(). 449 */ 450 451 /***************************************************************************** 452 ** 453 ** xcb_void_cookie_t xcb_shm_put_image_checked 454 ** 455 ** @param xcb_connection_t *c 456 ** @param xcb_drawable_t drawable 457 ** @param xcb_gcontext_t gc 458 ** @param uint16_t total_width 459 ** @param uint16_t total_height 460 ** @param uint16_t src_x 461 ** @param uint16_t src_y 462 ** @param uint16_t src_width 463 ** @param uint16_t src_height 464 ** @param int16_t dst_x 465 ** @param int16_t dst_y 466 ** @param uint8_t depth 467 ** @param uint8_t format 468 ** @param uint8_t send_event 469 ** @param xcb_shm_seg_t shmseg 470 ** @param uint32_t offset 471 ** @returns xcb_void_cookie_t 472 ** 473 *****************************************************************************/ 474 475 xcb_void_cookie_t 476 xcb_shm_put_image_checked (xcb_connection_t *c /**< */, 477 xcb_drawable_t drawable /**< */, 478 xcb_gcontext_t gc /**< */, 479 uint16_t total_width /**< */, 480 uint16_t total_height /**< */, 481 uint16_t src_x /**< */, 482 uint16_t src_y /**< */, 483 uint16_t src_width /**< */, 484 uint16_t src_height /**< */, 485 int16_t dst_x /**< */, 486 int16_t dst_y /**< */, 487 uint8_t depth /**< */, 488 uint8_t format /**< */, 489 uint8_t send_event /**< */, 490 xcb_shm_seg_t shmseg /**< */, 491 uint32_t offset /**< */); 492 493 /** 494 * 495 * @param c The connection 496 * @return A cookie 497 * 498 * Delivers a request to the X server. 499 * 500 */ 501 502 /***************************************************************************** 503 ** 504 ** xcb_void_cookie_t xcb_shm_put_image 505 ** 506 ** @param xcb_connection_t *c 507 ** @param xcb_drawable_t drawable 508 ** @param xcb_gcontext_t gc 509 ** @param uint16_t total_width 510 ** @param uint16_t total_height 511 ** @param uint16_t src_x 512 ** @param uint16_t src_y 513 ** @param uint16_t src_width 514 ** @param uint16_t src_height 515 ** @param int16_t dst_x 516 ** @param int16_t dst_y 517 ** @param uint8_t depth 518 ** @param uint8_t format 519 ** @param uint8_t send_event 520 ** @param xcb_shm_seg_t shmseg 521 ** @param uint32_t offset 522 ** @returns xcb_void_cookie_t 523 ** 524 *****************************************************************************/ 525 526 xcb_void_cookie_t 527 xcb_shm_put_image (xcb_connection_t *c /**< */, 528 xcb_drawable_t drawable /**< */, 529 xcb_gcontext_t gc /**< */, 530 uint16_t total_width /**< */, 531 uint16_t total_height /**< */, 532 uint16_t src_x /**< */, 533 uint16_t src_y /**< */, 534 uint16_t src_width /**< */, 535 uint16_t src_height /**< */, 536 int16_t dst_x /**< */, 537 int16_t dst_y /**< */, 538 uint8_t depth /**< */, 539 uint8_t format /**< */, 540 uint8_t send_event /**< */, 541 xcb_shm_seg_t shmseg /**< */, 542 uint32_t offset /**< */); 543 544 /** 545 * 546 * @param c The connection 547 * @return A cookie 548 * 549 * Delivers a request to the X server. 550 * 551 */ 552 553 /***************************************************************************** 554 ** 555 ** xcb_shm_get_image_cookie_t xcb_shm_get_image 556 ** 557 ** @param xcb_connection_t *c 558 ** @param xcb_drawable_t drawable 559 ** @param int16_t x 560 ** @param int16_t y 561 ** @param uint16_t width 562 ** @param uint16_t height 563 ** @param uint32_t plane_mask 564 ** @param uint8_t format 565 ** @param xcb_shm_seg_t shmseg 566 ** @param uint32_t offset 567 ** @returns xcb_shm_get_image_cookie_t 568 ** 569 *****************************************************************************/ 570 571 xcb_shm_get_image_cookie_t 572 xcb_shm_get_image (xcb_connection_t *c /**< */, 573 xcb_drawable_t drawable /**< */, 574 int16_t x /**< */, 575 int16_t y /**< */, 576 uint16_t width /**< */, 577 uint16_t height /**< */, 578 uint32_t plane_mask /**< */, 579 uint8_t format /**< */, 580 xcb_shm_seg_t shmseg /**< */, 581 uint32_t offset /**< */); 582 583 /** 584 * 585 * @param c The connection 586 * @return A cookie 587 * 588 * Delivers a request to the X server. 589 * 590 * This form can be used only if the request will cause 591 * a reply to be generated. Any returned error will be 592 * placed in the event queue. 593 */ 594 595 /***************************************************************************** 596 ** 597 ** xcb_shm_get_image_cookie_t xcb_shm_get_image_unchecked 598 ** 599 ** @param xcb_connection_t *c 600 ** @param xcb_drawable_t drawable 601 ** @param int16_t x 602 ** @param int16_t y 603 ** @param uint16_t width 604 ** @param uint16_t height 605 ** @param uint32_t plane_mask 606 ** @param uint8_t format 607 ** @param xcb_shm_seg_t shmseg 608 ** @param uint32_t offset 609 ** @returns xcb_shm_get_image_cookie_t 610 ** 611 *****************************************************************************/ 612 613 xcb_shm_get_image_cookie_t 614 xcb_shm_get_image_unchecked (xcb_connection_t *c /**< */, 615 xcb_drawable_t drawable /**< */, 616 int16_t x /**< */, 617 int16_t y /**< */, 618 uint16_t width /**< */, 619 uint16_t height /**< */, 620 uint32_t plane_mask /**< */, 621 uint8_t format /**< */, 622 xcb_shm_seg_t shmseg /**< */, 623 uint32_t offset /**< */); 624 625 /** 626 * Return the reply 627 * @param c The connection 628 * @param cookie The cookie 629 * @param e The xcb_generic_error_t supplied 630 * 631 * Returns the reply of the request asked by 632 * 633 * The parameter @p e supplied to this function must be NULL if 634 * xcb_shm_get_image_unchecked(). is used. 635 * Otherwise, it stores the error if any. 636 * 637 * The returned value must be freed by the caller using free(). 638 */ 639 640 /***************************************************************************** 641 ** 642 ** xcb_shm_get_image_reply_t * xcb_shm_get_image_reply 643 ** 644 ** @param xcb_connection_t *c 645 ** @param xcb_shm_get_image_cookie_t cookie 646 ** @param xcb_generic_error_t **e 647 ** @returns xcb_shm_get_image_reply_t * 648 ** 649 *****************************************************************************/ 650 651 xcb_shm_get_image_reply_t * 652 xcb_shm_get_image_reply (xcb_connection_t *c /**< */, 653 xcb_shm_get_image_cookie_t cookie /**< */, 654 xcb_generic_error_t **e /**< */); 655 656 /** 657 * 658 * @param c The connection 659 * @return A cookie 660 * 661 * Delivers a request to the X server. 662 * 663 * This form can be used only if the request will not cause 664 * a reply to be generated. Any returned error will be 665 * saved for handling by xcb_request_check(). 666 */ 667 668 /***************************************************************************** 669 ** 670 ** xcb_void_cookie_t xcb_shm_create_pixmap_checked 671 ** 672 ** @param xcb_connection_t *c 673 ** @param xcb_pixmap_t pid 674 ** @param xcb_drawable_t drawable 675 ** @param uint16_t width 676 ** @param uint16_t height 677 ** @param uint8_t depth 678 ** @param xcb_shm_seg_t shmseg 679 ** @param uint32_t offset 680 ** @returns xcb_void_cookie_t 681 ** 682 *****************************************************************************/ 683 684 xcb_void_cookie_t 685 xcb_shm_create_pixmap_checked (xcb_connection_t *c /**< */, 686 xcb_pixmap_t pid /**< */, 687 xcb_drawable_t drawable /**< */, 688 uint16_t width /**< */, 689 uint16_t height /**< */, 690 uint8_t depth /**< */, 691 xcb_shm_seg_t shmseg /**< */, 692 uint32_t offset /**< */); 693 694 /** 695 * 696 * @param c The connection 697 * @return A cookie 698 * 699 * Delivers a request to the X server. 700 * 701 */ 702 703 /***************************************************************************** 704 ** 705 ** xcb_void_cookie_t xcb_shm_create_pixmap 706 ** 707 ** @param xcb_connection_t *c 708 ** @param xcb_pixmap_t pid 709 ** @param xcb_drawable_t drawable 710 ** @param uint16_t width 711 ** @param uint16_t height 712 ** @param uint8_t depth 713 ** @param xcb_shm_seg_t shmseg 714 ** @param uint32_t offset 715 ** @returns xcb_void_cookie_t 716 ** 717 *****************************************************************************/ 718 719 xcb_void_cookie_t 720 xcb_shm_create_pixmap (xcb_connection_t *c /**< */, 721 xcb_pixmap_t pid /**< */, 722 xcb_drawable_t drawable /**< */, 723 uint16_t width /**< */, 724 uint16_t height /**< */, 725 uint8_t depth /**< */, 726 xcb_shm_seg_t shmseg /**< */, 727 uint32_t offset /**< */); 728 729 730 #ifdef __cplusplus 731 } 732 #endif 733 734 #endif 735 736 /** 737 * @} 738 */ 739