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 2 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 /** Opcode for xcb_shm_attach_fd. */ 215 #define XCB_SHM_ATTACH_FD 6 216 217 /** 218 * @brief xcb_shm_attach_fd_request_t 219 **/ 220 typedef struct xcb_shm_attach_fd_request_t { 221 uint8_t major_opcode; /**< */ 222 uint8_t minor_opcode; /**< */ 223 uint16_t length; /**< */ 224 xcb_shm_seg_t shmseg; /**< */ 225 uint8_t read_only; /**< */ 226 uint8_t pad0[3]; /**< */ 227 } xcb_shm_attach_fd_request_t; 228 229 /** 230 * @brief xcb_shm_create_segment_cookie_t 231 **/ 232 typedef struct xcb_shm_create_segment_cookie_t { 233 unsigned int sequence; /**< */ 234 } xcb_shm_create_segment_cookie_t; 235 236 /** Opcode for xcb_shm_create_segment. */ 237 #define XCB_SHM_CREATE_SEGMENT 7 238 239 /** 240 * @brief xcb_shm_create_segment_request_t 241 **/ 242 typedef struct xcb_shm_create_segment_request_t { 243 uint8_t major_opcode; /**< */ 244 uint8_t minor_opcode; /**< */ 245 uint16_t length; /**< */ 246 xcb_shm_seg_t shmseg; /**< */ 247 uint32_t size; /**< */ 248 uint8_t read_only; /**< */ 249 uint8_t pad0[3]; /**< */ 250 } xcb_shm_create_segment_request_t; 251 252 /** 253 * @brief xcb_shm_create_segment_reply_t 254 **/ 255 typedef struct xcb_shm_create_segment_reply_t { 256 uint8_t response_type; /**< */ 257 uint8_t nfd; /**< */ 258 uint16_t sequence; /**< */ 259 uint32_t length; /**< */ 260 uint8_t pad0[24]; /**< */ 261 } xcb_shm_create_segment_reply_t; 262 263 /** 264 * Get the next element of the iterator 265 * @param i Pointer to a xcb_shm_seg_iterator_t 266 * 267 * Get the next element in the iterator. The member rem is 268 * decreased by one. The member data points to the next 269 * element. The member index is increased by sizeof(xcb_shm_seg_t) 270 */ 271 void 272 xcb_shm_seg_next (xcb_shm_seg_iterator_t *i /**< */); 273 274 /** 275 * Return the iterator pointing to the last element 276 * @param i An xcb_shm_seg_iterator_t 277 * @return The iterator pointing to the last element 278 * 279 * Set the current element in the iterator to the last element. 280 * The member rem is set to 0. The member data points to the 281 * last element. 282 */ 283 xcb_generic_iterator_t 284 xcb_shm_seg_end (xcb_shm_seg_iterator_t i /**< */); 285 286 /** 287 * 288 * @param c The connection 289 * @return A cookie 290 * 291 * Delivers a request to the X server. 292 * 293 */ 294 xcb_shm_query_version_cookie_t 295 xcb_shm_query_version (xcb_connection_t *c /**< */); 296 297 /** 298 * 299 * @param c The connection 300 * @return A cookie 301 * 302 * Delivers a request to the X server. 303 * 304 * This form can be used only if the request will cause 305 * a reply to be generated. Any returned error will be 306 * placed in the event queue. 307 */ 308 xcb_shm_query_version_cookie_t 309 xcb_shm_query_version_unchecked (xcb_connection_t *c /**< */); 310 311 /** 312 * Return the reply 313 * @param c The connection 314 * @param cookie The cookie 315 * @param e The xcb_generic_error_t supplied 316 * 317 * Returns the reply of the request asked by 318 * 319 * The parameter @p e supplied to this function must be NULL if 320 * xcb_shm_query_version_unchecked(). is used. 321 * Otherwise, it stores the error if any. 322 * 323 * The returned value must be freed by the caller using free(). 324 */ 325 xcb_shm_query_version_reply_t * 326 xcb_shm_query_version_reply (xcb_connection_t *c /**< */, 327 xcb_shm_query_version_cookie_t cookie /**< */, 328 xcb_generic_error_t **e /**< */); 329 330 /** 331 * 332 * @param c The connection 333 * @return A cookie 334 * 335 * Delivers a request to the X server. 336 * 337 * This form can be used only if the request will not cause 338 * a reply to be generated. Any returned error will be 339 * saved for handling by xcb_request_check(). 340 */ 341 xcb_void_cookie_t 342 xcb_shm_attach_checked (xcb_connection_t *c /**< */, 343 xcb_shm_seg_t shmseg /**< */, 344 uint32_t shmid /**< */, 345 uint8_t read_only /**< */); 346 347 /** 348 * 349 * @param c The connection 350 * @return A cookie 351 * 352 * Delivers a request to the X server. 353 * 354 */ 355 xcb_void_cookie_t 356 xcb_shm_attach (xcb_connection_t *c /**< */, 357 xcb_shm_seg_t shmseg /**< */, 358 uint32_t shmid /**< */, 359 uint8_t read_only /**< */); 360 361 /** 362 * 363 * @param c The connection 364 * @return A cookie 365 * 366 * Delivers a request to the X server. 367 * 368 * This form can be used only if the request will not cause 369 * a reply to be generated. Any returned error will be 370 * saved for handling by xcb_request_check(). 371 */ 372 xcb_void_cookie_t 373 xcb_shm_detach_checked (xcb_connection_t *c /**< */, 374 xcb_shm_seg_t shmseg /**< */); 375 376 /** 377 * 378 * @param c The connection 379 * @return A cookie 380 * 381 * Delivers a request to the X server. 382 * 383 */ 384 xcb_void_cookie_t 385 xcb_shm_detach (xcb_connection_t *c /**< */, 386 xcb_shm_seg_t shmseg /**< */); 387 388 /** 389 * 390 * @param c The connection 391 * @return A cookie 392 * 393 * Delivers a request to the X server. 394 * 395 * This form can be used only if the request will not cause 396 * a reply to be generated. Any returned error will be 397 * saved for handling by xcb_request_check(). 398 */ 399 xcb_void_cookie_t 400 xcb_shm_put_image_checked (xcb_connection_t *c /**< */, 401 xcb_drawable_t drawable /**< */, 402 xcb_gcontext_t gc /**< */, 403 uint16_t total_width /**< */, 404 uint16_t total_height /**< */, 405 uint16_t src_x /**< */, 406 uint16_t src_y /**< */, 407 uint16_t src_width /**< */, 408 uint16_t src_height /**< */, 409 int16_t dst_x /**< */, 410 int16_t dst_y /**< */, 411 uint8_t depth /**< */, 412 uint8_t format /**< */, 413 uint8_t send_event /**< */, 414 xcb_shm_seg_t shmseg /**< */, 415 uint32_t offset /**< */); 416 417 /** 418 * 419 * @param c The connection 420 * @return A cookie 421 * 422 * Delivers a request to the X server. 423 * 424 */ 425 xcb_void_cookie_t 426 xcb_shm_put_image (xcb_connection_t *c /**< */, 427 xcb_drawable_t drawable /**< */, 428 xcb_gcontext_t gc /**< */, 429 uint16_t total_width /**< */, 430 uint16_t total_height /**< */, 431 uint16_t src_x /**< */, 432 uint16_t src_y /**< */, 433 uint16_t src_width /**< */, 434 uint16_t src_height /**< */, 435 int16_t dst_x /**< */, 436 int16_t dst_y /**< */, 437 uint8_t depth /**< */, 438 uint8_t format /**< */, 439 uint8_t send_event /**< */, 440 xcb_shm_seg_t shmseg /**< */, 441 uint32_t offset /**< */); 442 443 /** 444 * 445 * @param c The connection 446 * @return A cookie 447 * 448 * Delivers a request to the X server. 449 * 450 */ 451 xcb_shm_get_image_cookie_t 452 xcb_shm_get_image (xcb_connection_t *c /**< */, 453 xcb_drawable_t drawable /**< */, 454 int16_t x /**< */, 455 int16_t y /**< */, 456 uint16_t width /**< */, 457 uint16_t height /**< */, 458 uint32_t plane_mask /**< */, 459 uint8_t format /**< */, 460 xcb_shm_seg_t shmseg /**< */, 461 uint32_t offset /**< */); 462 463 /** 464 * 465 * @param c The connection 466 * @return A cookie 467 * 468 * Delivers a request to the X server. 469 * 470 * This form can be used only if the request will cause 471 * a reply to be generated. Any returned error will be 472 * placed in the event queue. 473 */ 474 xcb_shm_get_image_cookie_t 475 xcb_shm_get_image_unchecked (xcb_connection_t *c /**< */, 476 xcb_drawable_t drawable /**< */, 477 int16_t x /**< */, 478 int16_t y /**< */, 479 uint16_t width /**< */, 480 uint16_t height /**< */, 481 uint32_t plane_mask /**< */, 482 uint8_t format /**< */, 483 xcb_shm_seg_t shmseg /**< */, 484 uint32_t offset /**< */); 485 486 /** 487 * Return the reply 488 * @param c The connection 489 * @param cookie The cookie 490 * @param e The xcb_generic_error_t supplied 491 * 492 * Returns the reply of the request asked by 493 * 494 * The parameter @p e supplied to this function must be NULL if 495 * xcb_shm_get_image_unchecked(). is used. 496 * Otherwise, it stores the error if any. 497 * 498 * The returned value must be freed by the caller using free(). 499 */ 500 xcb_shm_get_image_reply_t * 501 xcb_shm_get_image_reply (xcb_connection_t *c /**< */, 502 xcb_shm_get_image_cookie_t cookie /**< */, 503 xcb_generic_error_t **e /**< */); 504 505 /** 506 * 507 * @param c The connection 508 * @return A cookie 509 * 510 * Delivers a request to the X server. 511 * 512 * This form can be used only if the request will not cause 513 * a reply to be generated. Any returned error will be 514 * saved for handling by xcb_request_check(). 515 */ 516 xcb_void_cookie_t 517 xcb_shm_create_pixmap_checked (xcb_connection_t *c /**< */, 518 xcb_pixmap_t pid /**< */, 519 xcb_drawable_t drawable /**< */, 520 uint16_t width /**< */, 521 uint16_t height /**< */, 522 uint8_t depth /**< */, 523 xcb_shm_seg_t shmseg /**< */, 524 uint32_t offset /**< */); 525 526 /** 527 * 528 * @param c The connection 529 * @return A cookie 530 * 531 * Delivers a request to the X server. 532 * 533 */ 534 xcb_void_cookie_t 535 xcb_shm_create_pixmap (xcb_connection_t *c /**< */, 536 xcb_pixmap_t pid /**< */, 537 xcb_drawable_t drawable /**< */, 538 uint16_t width /**< */, 539 uint16_t height /**< */, 540 uint8_t depth /**< */, 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 * This form can be used only if the request will not cause 552 * a reply to be generated. Any returned error will be 553 * saved for handling by xcb_request_check(). 554 */ 555 xcb_void_cookie_t 556 xcb_shm_attach_fd_checked (xcb_connection_t *c /**< */, 557 xcb_shm_seg_t shmseg /**< */, 558 int32_t shm_fd /**< */, 559 uint8_t read_only /**< */); 560 561 /** 562 * 563 * @param c The connection 564 * @return A cookie 565 * 566 * Delivers a request to the X server. 567 * 568 */ 569 xcb_void_cookie_t 570 xcb_shm_attach_fd (xcb_connection_t *c /**< */, 571 xcb_shm_seg_t shmseg /**< */, 572 int32_t shm_fd /**< */, 573 uint8_t read_only /**< */); 574 575 /** 576 * 577 * @param c The connection 578 * @return A cookie 579 * 580 * Delivers a request to the X server. 581 * 582 */ 583 xcb_shm_create_segment_cookie_t 584 xcb_shm_create_segment (xcb_connection_t *c /**< */, 585 xcb_shm_seg_t shmseg /**< */, 586 uint32_t size /**< */, 587 uint8_t read_only /**< */); 588 589 /** 590 * 591 * @param c The connection 592 * @return A cookie 593 * 594 * Delivers a request to the X server. 595 * 596 * This form can be used only if the request will cause 597 * a reply to be generated. Any returned error will be 598 * placed in the event queue. 599 */ 600 xcb_shm_create_segment_cookie_t 601 xcb_shm_create_segment_unchecked (xcb_connection_t *c /**< */, 602 xcb_shm_seg_t shmseg /**< */, 603 uint32_t size /**< */, 604 uint8_t read_only /**< */); 605 606 /** 607 * Return the reply 608 * @param c The connection 609 * @param cookie The cookie 610 * @param e The xcb_generic_error_t supplied 611 * 612 * Returns the reply of the request asked by 613 * 614 * The parameter @p e supplied to this function must be NULL if 615 * xcb_shm_create_segment_unchecked(). is used. 616 * Otherwise, it stores the error if any. 617 * 618 * The returned value must be freed by the caller using free(). 619 */ 620 xcb_shm_create_segment_reply_t * 621 xcb_shm_create_segment_reply (xcb_connection_t *c /**< */, 622 xcb_shm_create_segment_cookie_t cookie /**< */, 623 xcb_generic_error_t **e /**< */); 624 625 /** 626 * Return the reply fds 627 * @param c The connection 628 * @param reply The reply 629 * 630 * Returns the array of reply fds of the request asked by 631 * 632 * The returned value must be freed by the caller using free(). 633 */ 634 int * 635 xcb_shm_create_segment_reply_fds (xcb_connection_t *c /**< */, 636 xcb_shm_create_segment_reply_t *reply /**< */); 637 638 639 #ifdef __cplusplus 640 } 641 #endif 642 643 #endif 644 645 /** 646 * @} 647 */ 648