1 /* 2 * This file generated automatically from xkb.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 "xkb.h" 15 16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) 17 #include "xproto.h" 18 19 xcb_extension_t xcb_xkb_id = { "XKEYBOARD", 0 }; 20 21 22 /***************************************************************************** 23 ** 24 ** void xcb_xkb_device_spec_next 25 ** 26 ** @param xcb_xkb_device_spec_iterator_t *i 27 ** @returns void 28 ** 29 *****************************************************************************/ 30 31 void 32 xcb_xkb_device_spec_next (xcb_xkb_device_spec_iterator_t *i /**< */) 33 { 34 --i->rem; 35 ++i->data; 36 i->index += sizeof(xcb_xkb_device_spec_t); 37 } 38 39 40 /***************************************************************************** 41 ** 42 ** xcb_generic_iterator_t xcb_xkb_device_spec_end 43 ** 44 ** @param xcb_xkb_device_spec_iterator_t i 45 ** @returns xcb_generic_iterator_t 46 ** 47 *****************************************************************************/ 48 49 xcb_generic_iterator_t 50 xcb_xkb_device_spec_end (xcb_xkb_device_spec_iterator_t i /**< */) 51 { 52 xcb_generic_iterator_t ret; 53 ret.data = i.data + i.rem; 54 ret.index = i.index + ((char *) ret.data - (char *) i.data); 55 ret.rem = 0; 56 return ret; 57 } 58 59 60 /***************************************************************************** 61 ** 62 ** void xcb_xkb_led_class_spec_next 63 ** 64 ** @param xcb_xkb_led_class_spec_iterator_t *i 65 ** @returns void 66 ** 67 *****************************************************************************/ 68 69 void 70 xcb_xkb_led_class_spec_next (xcb_xkb_led_class_spec_iterator_t *i /**< */) 71 { 72 --i->rem; 73 ++i->data; 74 i->index += sizeof(xcb_xkb_led_class_spec_t); 75 } 76 77 78 /***************************************************************************** 79 ** 80 ** xcb_generic_iterator_t xcb_xkb_led_class_spec_end 81 ** 82 ** @param xcb_xkb_led_class_spec_iterator_t i 83 ** @returns xcb_generic_iterator_t 84 ** 85 *****************************************************************************/ 86 87 xcb_generic_iterator_t 88 xcb_xkb_led_class_spec_end (xcb_xkb_led_class_spec_iterator_t i /**< */) 89 { 90 xcb_generic_iterator_t ret; 91 ret.data = i.data + i.rem; 92 ret.index = i.index + ((char *) ret.data - (char *) i.data); 93 ret.rem = 0; 94 return ret; 95 } 96 97 98 /***************************************************************************** 99 ** 100 ** void xcb_xkb_bell_class_spec_next 101 ** 102 ** @param xcb_xkb_bell_class_spec_iterator_t *i 103 ** @returns void 104 ** 105 *****************************************************************************/ 106 107 void 108 xcb_xkb_bell_class_spec_next (xcb_xkb_bell_class_spec_iterator_t *i /**< */) 109 { 110 --i->rem; 111 ++i->data; 112 i->index += sizeof(xcb_xkb_bell_class_spec_t); 113 } 114 115 116 /***************************************************************************** 117 ** 118 ** xcb_generic_iterator_t xcb_xkb_bell_class_spec_end 119 ** 120 ** @param xcb_xkb_bell_class_spec_iterator_t i 121 ** @returns xcb_generic_iterator_t 122 ** 123 *****************************************************************************/ 124 125 xcb_generic_iterator_t 126 xcb_xkb_bell_class_spec_end (xcb_xkb_bell_class_spec_iterator_t i /**< */) 127 { 128 xcb_generic_iterator_t ret; 129 ret.data = i.data + i.rem; 130 ret.index = i.index + ((char *) ret.data - (char *) i.data); 131 ret.rem = 0; 132 return ret; 133 } 134 135 136 /***************************************************************************** 137 ** 138 ** void xcb_xkb_id_spec_next 139 ** 140 ** @param xcb_xkb_id_spec_iterator_t *i 141 ** @returns void 142 ** 143 *****************************************************************************/ 144 145 void 146 xcb_xkb_id_spec_next (xcb_xkb_id_spec_iterator_t *i /**< */) 147 { 148 --i->rem; 149 ++i->data; 150 i->index += sizeof(xcb_xkb_id_spec_t); 151 } 152 153 154 /***************************************************************************** 155 ** 156 ** xcb_generic_iterator_t xcb_xkb_id_spec_end 157 ** 158 ** @param xcb_xkb_id_spec_iterator_t i 159 ** @returns xcb_generic_iterator_t 160 ** 161 *****************************************************************************/ 162 163 xcb_generic_iterator_t 164 xcb_xkb_id_spec_end (xcb_xkb_id_spec_iterator_t i /**< */) 165 { 166 xcb_generic_iterator_t ret; 167 ret.data = i.data + i.rem; 168 ret.index = i.index + ((char *) ret.data - (char *) i.data); 169 ret.rem = 0; 170 return ret; 171 } 172 173 174 /***************************************************************************** 175 ** 176 ** void xcb_xkb_indicator_map_next 177 ** 178 ** @param xcb_xkb_indicator_map_iterator_t *i 179 ** @returns void 180 ** 181 *****************************************************************************/ 182 183 void 184 xcb_xkb_indicator_map_next (xcb_xkb_indicator_map_iterator_t *i /**< */) 185 { 186 --i->rem; 187 ++i->data; 188 i->index += sizeof(xcb_xkb_indicator_map_t); 189 } 190 191 192 /***************************************************************************** 193 ** 194 ** xcb_generic_iterator_t xcb_xkb_indicator_map_end 195 ** 196 ** @param xcb_xkb_indicator_map_iterator_t i 197 ** @returns xcb_generic_iterator_t 198 ** 199 *****************************************************************************/ 200 201 xcb_generic_iterator_t 202 xcb_xkb_indicator_map_end (xcb_xkb_indicator_map_iterator_t i /**< */) 203 { 204 xcb_generic_iterator_t ret; 205 ret.data = i.data + i.rem; 206 ret.index = i.index + ((char *) ret.data - (char *) i.data); 207 ret.rem = 0; 208 return ret; 209 } 210 211 212 /***************************************************************************** 213 ** 214 ** void xcb_xkb_mod_def_next 215 ** 216 ** @param xcb_xkb_mod_def_iterator_t *i 217 ** @returns void 218 ** 219 *****************************************************************************/ 220 221 void 222 xcb_xkb_mod_def_next (xcb_xkb_mod_def_iterator_t *i /**< */) 223 { 224 --i->rem; 225 ++i->data; 226 i->index += sizeof(xcb_xkb_mod_def_t); 227 } 228 229 230 /***************************************************************************** 231 ** 232 ** xcb_generic_iterator_t xcb_xkb_mod_def_end 233 ** 234 ** @param xcb_xkb_mod_def_iterator_t i 235 ** @returns xcb_generic_iterator_t 236 ** 237 *****************************************************************************/ 238 239 xcb_generic_iterator_t 240 xcb_xkb_mod_def_end (xcb_xkb_mod_def_iterator_t i /**< */) 241 { 242 xcb_generic_iterator_t ret; 243 ret.data = i.data + i.rem; 244 ret.index = i.index + ((char *) ret.data - (char *) i.data); 245 ret.rem = 0; 246 return ret; 247 } 248 249 250 /***************************************************************************** 251 ** 252 ** void xcb_xkb_key_name_next 253 ** 254 ** @param xcb_xkb_key_name_iterator_t *i 255 ** @returns void 256 ** 257 *****************************************************************************/ 258 259 void 260 xcb_xkb_key_name_next (xcb_xkb_key_name_iterator_t *i /**< */) 261 { 262 --i->rem; 263 ++i->data; 264 i->index += sizeof(xcb_xkb_key_name_t); 265 } 266 267 268 /***************************************************************************** 269 ** 270 ** xcb_generic_iterator_t xcb_xkb_key_name_end 271 ** 272 ** @param xcb_xkb_key_name_iterator_t i 273 ** @returns xcb_generic_iterator_t 274 ** 275 *****************************************************************************/ 276 277 xcb_generic_iterator_t 278 xcb_xkb_key_name_end (xcb_xkb_key_name_iterator_t i /**< */) 279 { 280 xcb_generic_iterator_t ret; 281 ret.data = i.data + i.rem; 282 ret.index = i.index + ((char *) ret.data - (char *) i.data); 283 ret.rem = 0; 284 return ret; 285 } 286 287 288 /***************************************************************************** 289 ** 290 ** void xcb_xkb_key_alias_next 291 ** 292 ** @param xcb_xkb_key_alias_iterator_t *i 293 ** @returns void 294 ** 295 *****************************************************************************/ 296 297 void 298 xcb_xkb_key_alias_next (xcb_xkb_key_alias_iterator_t *i /**< */) 299 { 300 --i->rem; 301 ++i->data; 302 i->index += sizeof(xcb_xkb_key_alias_t); 303 } 304 305 306 /***************************************************************************** 307 ** 308 ** xcb_generic_iterator_t xcb_xkb_key_alias_end 309 ** 310 ** @param xcb_xkb_key_alias_iterator_t i 311 ** @returns xcb_generic_iterator_t 312 ** 313 *****************************************************************************/ 314 315 xcb_generic_iterator_t 316 xcb_xkb_key_alias_end (xcb_xkb_key_alias_iterator_t i /**< */) 317 { 318 xcb_generic_iterator_t ret; 319 ret.data = i.data + i.rem; 320 ret.index = i.index + ((char *) ret.data - (char *) i.data); 321 ret.rem = 0; 322 return ret; 323 } 324 325 int 326 xcb_xkb_counted_string_16_sizeof (const void *_buffer /**< */) 327 { 328 char *xcb_tmp = (char *)_buffer; 329 const xcb_xkb_counted_string_16_t *_aux = (xcb_xkb_counted_string_16_t *)_buffer; 330 unsigned int xcb_buffer_len = 0; 331 unsigned int xcb_block_len = 0; 332 unsigned int xcb_pad = 0; 333 unsigned int xcb_align_to = 0; 334 335 336 xcb_block_len += sizeof(xcb_xkb_counted_string_16_t); 337 xcb_tmp += xcb_block_len; 338 xcb_buffer_len += xcb_block_len; 339 xcb_block_len = 0; 340 /* string */ 341 xcb_block_len += _aux->length * sizeof(char); 342 xcb_tmp += xcb_block_len; 343 xcb_align_to = ALIGNOF(char); 344 /* insert padding */ 345 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 346 xcb_buffer_len += xcb_block_len + xcb_pad; 347 if (0 != xcb_pad) { 348 xcb_tmp += xcb_pad; 349 xcb_pad = 0; 350 } 351 xcb_block_len = 0; 352 /* alignment_pad */ 353 xcb_block_len += (((_aux->length + 5) & (~3)) - (_aux->length + 2)) * sizeof(char); 354 xcb_tmp += xcb_block_len; 355 xcb_align_to = ALIGNOF(char); 356 /* insert padding */ 357 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 358 xcb_buffer_len += xcb_block_len + xcb_pad; 359 if (0 != xcb_pad) { 360 xcb_tmp += xcb_pad; 361 xcb_pad = 0; 362 } 363 xcb_block_len = 0; 364 365 return xcb_buffer_len; 366 } 367 368 369 /***************************************************************************** 370 ** 371 ** char * xcb_xkb_counted_string_16_string 372 ** 373 ** @param const xcb_xkb_counted_string_16_t *R 374 ** @returns char * 375 ** 376 *****************************************************************************/ 377 378 char * 379 xcb_xkb_counted_string_16_string (const xcb_xkb_counted_string_16_t *R /**< */) 380 { 381 return (char *) (R + 1); 382 } 383 384 385 /***************************************************************************** 386 ** 387 ** int xcb_xkb_counted_string_16_string_length 388 ** 389 ** @param const xcb_xkb_counted_string_16_t *R 390 ** @returns int 391 ** 392 *****************************************************************************/ 393 394 int 395 xcb_xkb_counted_string_16_string_length (const xcb_xkb_counted_string_16_t *R /**< */) 396 { 397 return R->length; 398 } 399 400 401 /***************************************************************************** 402 ** 403 ** xcb_generic_iterator_t xcb_xkb_counted_string_16_string_end 404 ** 405 ** @param const xcb_xkb_counted_string_16_t *R 406 ** @returns xcb_generic_iterator_t 407 ** 408 *****************************************************************************/ 409 410 xcb_generic_iterator_t 411 xcb_xkb_counted_string_16_string_end (const xcb_xkb_counted_string_16_t *R /**< */) 412 { 413 xcb_generic_iterator_t i; 414 i.data = ((char *) (R + 1)) + (R->length); 415 i.rem = 0; 416 i.index = (char *) i.data - (char *) R; 417 return i; 418 } 419 420 421 /***************************************************************************** 422 ** 423 ** void * xcb_xkb_counted_string_16_alignment_pad 424 ** 425 ** @param const xcb_xkb_counted_string_16_t *R 426 ** @returns void * 427 ** 428 *****************************************************************************/ 429 430 void * 431 xcb_xkb_counted_string_16_alignment_pad (const xcb_xkb_counted_string_16_t *R /**< */) 432 { 433 xcb_generic_iterator_t prev = xcb_xkb_counted_string_16_string_end(R); 434 return (void *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); 435 } 436 437 438 /***************************************************************************** 439 ** 440 ** int xcb_xkb_counted_string_16_alignment_pad_length 441 ** 442 ** @param const xcb_xkb_counted_string_16_t *R 443 ** @returns int 444 ** 445 *****************************************************************************/ 446 447 int 448 xcb_xkb_counted_string_16_alignment_pad_length (const xcb_xkb_counted_string_16_t *R /**< */) 449 { 450 return (((R->length + 5) & (~3)) - (R->length + 2)); 451 } 452 453 454 /***************************************************************************** 455 ** 456 ** xcb_generic_iterator_t xcb_xkb_counted_string_16_alignment_pad_end 457 ** 458 ** @param const xcb_xkb_counted_string_16_t *R 459 ** @returns xcb_generic_iterator_t 460 ** 461 *****************************************************************************/ 462 463 xcb_generic_iterator_t 464 xcb_xkb_counted_string_16_alignment_pad_end (const xcb_xkb_counted_string_16_t *R /**< */) 465 { 466 xcb_generic_iterator_t i; 467 xcb_generic_iterator_t child = xcb_xkb_counted_string_16_string_end(R); 468 i.data = ((char *) child.data) + ((((R->length + 5) & (~3)) - (R->length + 2))); 469 i.rem = 0; 470 i.index = (char *) i.data - (char *) R; 471 return i; 472 } 473 474 475 /***************************************************************************** 476 ** 477 ** void xcb_xkb_counted_string_16_next 478 ** 479 ** @param xcb_xkb_counted_string_16_iterator_t *i 480 ** @returns void 481 ** 482 *****************************************************************************/ 483 484 void 485 xcb_xkb_counted_string_16_next (xcb_xkb_counted_string_16_iterator_t *i /**< */) 486 { 487 xcb_xkb_counted_string_16_t *R = i->data; 488 xcb_generic_iterator_t child; 489 child.data = (xcb_xkb_counted_string_16_t *)(((char *)R) + xcb_xkb_counted_string_16_sizeof(R)); 490 i->index = (char *) child.data - (char *) i->data; 491 --i->rem; 492 i->data = (xcb_xkb_counted_string_16_t *) child.data; 493 } 494 495 496 /***************************************************************************** 497 ** 498 ** xcb_generic_iterator_t xcb_xkb_counted_string_16_end 499 ** 500 ** @param xcb_xkb_counted_string_16_iterator_t i 501 ** @returns xcb_generic_iterator_t 502 ** 503 *****************************************************************************/ 504 505 xcb_generic_iterator_t 506 xcb_xkb_counted_string_16_end (xcb_xkb_counted_string_16_iterator_t i /**< */) 507 { 508 xcb_generic_iterator_t ret; 509 while(i.rem > 0) 510 xcb_xkb_counted_string_16_next(&i); 511 ret.data = i.data; 512 ret.rem = i.rem; 513 ret.index = i.index; 514 return ret; 515 } 516 517 518 /***************************************************************************** 519 ** 520 ** void xcb_xkb_kt_map_entry_next 521 ** 522 ** @param xcb_xkb_kt_map_entry_iterator_t *i 523 ** @returns void 524 ** 525 *****************************************************************************/ 526 527 void 528 xcb_xkb_kt_map_entry_next (xcb_xkb_kt_map_entry_iterator_t *i /**< */) 529 { 530 --i->rem; 531 ++i->data; 532 i->index += sizeof(xcb_xkb_kt_map_entry_t); 533 } 534 535 536 /***************************************************************************** 537 ** 538 ** xcb_generic_iterator_t xcb_xkb_kt_map_entry_end 539 ** 540 ** @param xcb_xkb_kt_map_entry_iterator_t i 541 ** @returns xcb_generic_iterator_t 542 ** 543 *****************************************************************************/ 544 545 xcb_generic_iterator_t 546 xcb_xkb_kt_map_entry_end (xcb_xkb_kt_map_entry_iterator_t i /**< */) 547 { 548 xcb_generic_iterator_t ret; 549 ret.data = i.data + i.rem; 550 ret.index = i.index + ((char *) ret.data - (char *) i.data); 551 ret.rem = 0; 552 return ret; 553 } 554 555 int 556 xcb_xkb_key_type_sizeof (const void *_buffer /**< */) 557 { 558 char *xcb_tmp = (char *)_buffer; 559 const xcb_xkb_key_type_t *_aux = (xcb_xkb_key_type_t *)_buffer; 560 unsigned int xcb_buffer_len = 0; 561 unsigned int xcb_block_len = 0; 562 unsigned int xcb_pad = 0; 563 unsigned int xcb_align_to = 0; 564 565 566 xcb_block_len += sizeof(xcb_xkb_key_type_t); 567 xcb_tmp += xcb_block_len; 568 xcb_buffer_len += xcb_block_len; 569 xcb_block_len = 0; 570 /* map */ 571 xcb_block_len += _aux->nMapEntries * sizeof(xcb_xkb_kt_map_entry_t); 572 xcb_tmp += xcb_block_len; 573 xcb_align_to = ALIGNOF(xcb_xkb_kt_map_entry_t); 574 /* insert padding */ 575 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 576 xcb_buffer_len += xcb_block_len + xcb_pad; 577 if (0 != xcb_pad) { 578 xcb_tmp += xcb_pad; 579 xcb_pad = 0; 580 } 581 xcb_block_len = 0; 582 /* preserve */ 583 xcb_block_len += (_aux->hasPreserve * _aux->nMapEntries) * sizeof(xcb_xkb_mod_def_t); 584 xcb_tmp += xcb_block_len; 585 xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); 586 /* insert padding */ 587 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 588 xcb_buffer_len += xcb_block_len + xcb_pad; 589 if (0 != xcb_pad) { 590 xcb_tmp += xcb_pad; 591 xcb_pad = 0; 592 } 593 xcb_block_len = 0; 594 595 return xcb_buffer_len; 596 } 597 598 599 /***************************************************************************** 600 ** 601 ** xcb_xkb_kt_map_entry_t * xcb_xkb_key_type_map 602 ** 603 ** @param const xcb_xkb_key_type_t *R 604 ** @returns xcb_xkb_kt_map_entry_t * 605 ** 606 *****************************************************************************/ 607 608 xcb_xkb_kt_map_entry_t * 609 xcb_xkb_key_type_map (const xcb_xkb_key_type_t *R /**< */) 610 { 611 return (xcb_xkb_kt_map_entry_t *) (R + 1); 612 } 613 614 615 /***************************************************************************** 616 ** 617 ** int xcb_xkb_key_type_map_length 618 ** 619 ** @param const xcb_xkb_key_type_t *R 620 ** @returns int 621 ** 622 *****************************************************************************/ 623 624 int 625 xcb_xkb_key_type_map_length (const xcb_xkb_key_type_t *R /**< */) 626 { 627 return R->nMapEntries; 628 } 629 630 631 /***************************************************************************** 632 ** 633 ** xcb_xkb_kt_map_entry_iterator_t xcb_xkb_key_type_map_iterator 634 ** 635 ** @param const xcb_xkb_key_type_t *R 636 ** @returns xcb_xkb_kt_map_entry_iterator_t 637 ** 638 *****************************************************************************/ 639 640 xcb_xkb_kt_map_entry_iterator_t 641 xcb_xkb_key_type_map_iterator (const xcb_xkb_key_type_t *R /**< */) 642 { 643 xcb_xkb_kt_map_entry_iterator_t i; 644 i.data = (xcb_xkb_kt_map_entry_t *) (R + 1); 645 i.rem = R->nMapEntries; 646 i.index = (char *) i.data - (char *) R; 647 return i; 648 } 649 650 651 /***************************************************************************** 652 ** 653 ** xcb_xkb_mod_def_t * xcb_xkb_key_type_preserve 654 ** 655 ** @param const xcb_xkb_key_type_t *R 656 ** @returns xcb_xkb_mod_def_t * 657 ** 658 *****************************************************************************/ 659 660 xcb_xkb_mod_def_t * 661 xcb_xkb_key_type_preserve (const xcb_xkb_key_type_t *R /**< */) 662 { 663 xcb_generic_iterator_t prev = xcb_xkb_kt_map_entry_end(xcb_xkb_key_type_map_iterator(R)); 664 return (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index) + 0); 665 } 666 667 668 /***************************************************************************** 669 ** 670 ** int xcb_xkb_key_type_preserve_length 671 ** 672 ** @param const xcb_xkb_key_type_t *R 673 ** @returns int 674 ** 675 *****************************************************************************/ 676 677 int 678 xcb_xkb_key_type_preserve_length (const xcb_xkb_key_type_t *R /**< */) 679 { 680 return (R->hasPreserve * R->nMapEntries); 681 } 682 683 684 /***************************************************************************** 685 ** 686 ** xcb_xkb_mod_def_iterator_t xcb_xkb_key_type_preserve_iterator 687 ** 688 ** @param const xcb_xkb_key_type_t *R 689 ** @returns xcb_xkb_mod_def_iterator_t 690 ** 691 *****************************************************************************/ 692 693 xcb_xkb_mod_def_iterator_t 694 xcb_xkb_key_type_preserve_iterator (const xcb_xkb_key_type_t *R /**< */) 695 { 696 xcb_xkb_mod_def_iterator_t i; 697 xcb_generic_iterator_t prev = xcb_xkb_kt_map_entry_end(xcb_xkb_key_type_map_iterator(R)); 698 i.data = (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index)); 699 i.rem = (R->hasPreserve * R->nMapEntries); 700 i.index = (char *) i.data - (char *) R; 701 return i; 702 } 703 704 705 /***************************************************************************** 706 ** 707 ** void xcb_xkb_key_type_next 708 ** 709 ** @param xcb_xkb_key_type_iterator_t *i 710 ** @returns void 711 ** 712 *****************************************************************************/ 713 714 void 715 xcb_xkb_key_type_next (xcb_xkb_key_type_iterator_t *i /**< */) 716 { 717 xcb_xkb_key_type_t *R = i->data; 718 xcb_generic_iterator_t child; 719 child.data = (xcb_xkb_key_type_t *)(((char *)R) + xcb_xkb_key_type_sizeof(R)); 720 i->index = (char *) child.data - (char *) i->data; 721 --i->rem; 722 i->data = (xcb_xkb_key_type_t *) child.data; 723 } 724 725 726 /***************************************************************************** 727 ** 728 ** xcb_generic_iterator_t xcb_xkb_key_type_end 729 ** 730 ** @param xcb_xkb_key_type_iterator_t i 731 ** @returns xcb_generic_iterator_t 732 ** 733 *****************************************************************************/ 734 735 xcb_generic_iterator_t 736 xcb_xkb_key_type_end (xcb_xkb_key_type_iterator_t i /**< */) 737 { 738 xcb_generic_iterator_t ret; 739 while(i.rem > 0) 740 xcb_xkb_key_type_next(&i); 741 ret.data = i.data; 742 ret.rem = i.rem; 743 ret.index = i.index; 744 return ret; 745 } 746 747 int 748 xcb_xkb_key_sym_map_sizeof (const void *_buffer /**< */) 749 { 750 char *xcb_tmp = (char *)_buffer; 751 const xcb_xkb_key_sym_map_t *_aux = (xcb_xkb_key_sym_map_t *)_buffer; 752 unsigned int xcb_buffer_len = 0; 753 unsigned int xcb_block_len = 0; 754 unsigned int xcb_pad = 0; 755 unsigned int xcb_align_to = 0; 756 757 758 xcb_block_len += sizeof(xcb_xkb_key_sym_map_t); 759 xcb_tmp += xcb_block_len; 760 xcb_buffer_len += xcb_block_len; 761 xcb_block_len = 0; 762 /* syms */ 763 xcb_block_len += _aux->nSyms * sizeof(xcb_keysym_t); 764 xcb_tmp += xcb_block_len; 765 xcb_align_to = ALIGNOF(xcb_keysym_t); 766 /* insert padding */ 767 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 768 xcb_buffer_len += xcb_block_len + xcb_pad; 769 if (0 != xcb_pad) { 770 xcb_tmp += xcb_pad; 771 xcb_pad = 0; 772 } 773 xcb_block_len = 0; 774 775 return xcb_buffer_len; 776 } 777 778 779 /***************************************************************************** 780 ** 781 ** xcb_keysym_t * xcb_xkb_key_sym_map_syms 782 ** 783 ** @param const xcb_xkb_key_sym_map_t *R 784 ** @returns xcb_keysym_t * 785 ** 786 *****************************************************************************/ 787 788 xcb_keysym_t * 789 xcb_xkb_key_sym_map_syms (const xcb_xkb_key_sym_map_t *R /**< */) 790 { 791 return (xcb_keysym_t *) (R + 1); 792 } 793 794 795 /***************************************************************************** 796 ** 797 ** int xcb_xkb_key_sym_map_syms_length 798 ** 799 ** @param const xcb_xkb_key_sym_map_t *R 800 ** @returns int 801 ** 802 *****************************************************************************/ 803 804 int 805 xcb_xkb_key_sym_map_syms_length (const xcb_xkb_key_sym_map_t *R /**< */) 806 { 807 return R->nSyms; 808 } 809 810 811 /***************************************************************************** 812 ** 813 ** xcb_generic_iterator_t xcb_xkb_key_sym_map_syms_end 814 ** 815 ** @param const xcb_xkb_key_sym_map_t *R 816 ** @returns xcb_generic_iterator_t 817 ** 818 *****************************************************************************/ 819 820 xcb_generic_iterator_t 821 xcb_xkb_key_sym_map_syms_end (const xcb_xkb_key_sym_map_t *R /**< */) 822 { 823 xcb_generic_iterator_t i; 824 i.data = ((xcb_keysym_t *) (R + 1)) + (R->nSyms); 825 i.rem = 0; 826 i.index = (char *) i.data - (char *) R; 827 return i; 828 } 829 830 831 /***************************************************************************** 832 ** 833 ** void xcb_xkb_key_sym_map_next 834 ** 835 ** @param xcb_xkb_key_sym_map_iterator_t *i 836 ** @returns void 837 ** 838 *****************************************************************************/ 839 840 void 841 xcb_xkb_key_sym_map_next (xcb_xkb_key_sym_map_iterator_t *i /**< */) 842 { 843 xcb_xkb_key_sym_map_t *R = i->data; 844 xcb_generic_iterator_t child; 845 child.data = (xcb_xkb_key_sym_map_t *)(((char *)R) + xcb_xkb_key_sym_map_sizeof(R)); 846 i->index = (char *) child.data - (char *) i->data; 847 --i->rem; 848 i->data = (xcb_xkb_key_sym_map_t *) child.data; 849 } 850 851 852 /***************************************************************************** 853 ** 854 ** xcb_generic_iterator_t xcb_xkb_key_sym_map_end 855 ** 856 ** @param xcb_xkb_key_sym_map_iterator_t i 857 ** @returns xcb_generic_iterator_t 858 ** 859 *****************************************************************************/ 860 861 xcb_generic_iterator_t 862 xcb_xkb_key_sym_map_end (xcb_xkb_key_sym_map_iterator_t i /**< */) 863 { 864 xcb_generic_iterator_t ret; 865 while(i.rem > 0) 866 xcb_xkb_key_sym_map_next(&i); 867 ret.data = i.data; 868 ret.rem = i.rem; 869 ret.index = i.index; 870 return ret; 871 } 872 873 874 /***************************************************************************** 875 ** 876 ** void xcb_xkb_common_behavior_next 877 ** 878 ** @param xcb_xkb_common_behavior_iterator_t *i 879 ** @returns void 880 ** 881 *****************************************************************************/ 882 883 void 884 xcb_xkb_common_behavior_next (xcb_xkb_common_behavior_iterator_t *i /**< */) 885 { 886 --i->rem; 887 ++i->data; 888 i->index += sizeof(xcb_xkb_common_behavior_t); 889 } 890 891 892 /***************************************************************************** 893 ** 894 ** xcb_generic_iterator_t xcb_xkb_common_behavior_end 895 ** 896 ** @param xcb_xkb_common_behavior_iterator_t i 897 ** @returns xcb_generic_iterator_t 898 ** 899 *****************************************************************************/ 900 901 xcb_generic_iterator_t 902 xcb_xkb_common_behavior_end (xcb_xkb_common_behavior_iterator_t i /**< */) 903 { 904 xcb_generic_iterator_t ret; 905 ret.data = i.data + i.rem; 906 ret.index = i.index + ((char *) ret.data - (char *) i.data); 907 ret.rem = 0; 908 return ret; 909 } 910 911 912 /***************************************************************************** 913 ** 914 ** void xcb_xkb_default_behavior_next 915 ** 916 ** @param xcb_xkb_default_behavior_iterator_t *i 917 ** @returns void 918 ** 919 *****************************************************************************/ 920 921 void 922 xcb_xkb_default_behavior_next (xcb_xkb_default_behavior_iterator_t *i /**< */) 923 { 924 --i->rem; 925 ++i->data; 926 i->index += sizeof(xcb_xkb_default_behavior_t); 927 } 928 929 930 /***************************************************************************** 931 ** 932 ** xcb_generic_iterator_t xcb_xkb_default_behavior_end 933 ** 934 ** @param xcb_xkb_default_behavior_iterator_t i 935 ** @returns xcb_generic_iterator_t 936 ** 937 *****************************************************************************/ 938 939 xcb_generic_iterator_t 940 xcb_xkb_default_behavior_end (xcb_xkb_default_behavior_iterator_t i /**< */) 941 { 942 xcb_generic_iterator_t ret; 943 ret.data = i.data + i.rem; 944 ret.index = i.index + ((char *) ret.data - (char *) i.data); 945 ret.rem = 0; 946 return ret; 947 } 948 949 950 /***************************************************************************** 951 ** 952 ** void xcb_xkb_lock_behavior_next 953 ** 954 ** @param xcb_xkb_lock_behavior_iterator_t *i 955 ** @returns void 956 ** 957 *****************************************************************************/ 958 959 void 960 xcb_xkb_lock_behavior_next (xcb_xkb_lock_behavior_iterator_t *i /**< */) 961 { 962 --i->rem; 963 ++i->data; 964 i->index += sizeof(xcb_xkb_lock_behavior_t); 965 } 966 967 968 /***************************************************************************** 969 ** 970 ** xcb_generic_iterator_t xcb_xkb_lock_behavior_end 971 ** 972 ** @param xcb_xkb_lock_behavior_iterator_t i 973 ** @returns xcb_generic_iterator_t 974 ** 975 *****************************************************************************/ 976 977 xcb_generic_iterator_t 978 xcb_xkb_lock_behavior_end (xcb_xkb_lock_behavior_iterator_t i /**< */) 979 { 980 xcb_generic_iterator_t ret; 981 ret.data = i.data + i.rem; 982 ret.index = i.index + ((char *) ret.data - (char *) i.data); 983 ret.rem = 0; 984 return ret; 985 } 986 987 988 /***************************************************************************** 989 ** 990 ** void xcb_xkb_radio_group_behavior_next 991 ** 992 ** @param xcb_xkb_radio_group_behavior_iterator_t *i 993 ** @returns void 994 ** 995 *****************************************************************************/ 996 997 void 998 xcb_xkb_radio_group_behavior_next (xcb_xkb_radio_group_behavior_iterator_t *i /**< */) 999 { 1000 --i->rem; 1001 ++i->data; 1002 i->index += sizeof(xcb_xkb_radio_group_behavior_t); 1003 } 1004 1005 1006 /***************************************************************************** 1007 ** 1008 ** xcb_generic_iterator_t xcb_xkb_radio_group_behavior_end 1009 ** 1010 ** @param xcb_xkb_radio_group_behavior_iterator_t i 1011 ** @returns xcb_generic_iterator_t 1012 ** 1013 *****************************************************************************/ 1014 1015 xcb_generic_iterator_t 1016 xcb_xkb_radio_group_behavior_end (xcb_xkb_radio_group_behavior_iterator_t i /**< */) 1017 { 1018 xcb_generic_iterator_t ret; 1019 ret.data = i.data + i.rem; 1020 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1021 ret.rem = 0; 1022 return ret; 1023 } 1024 1025 1026 /***************************************************************************** 1027 ** 1028 ** void xcb_xkb_overlay_behavior_next 1029 ** 1030 ** @param xcb_xkb_overlay_behavior_iterator_t *i 1031 ** @returns void 1032 ** 1033 *****************************************************************************/ 1034 1035 void 1036 xcb_xkb_overlay_behavior_next (xcb_xkb_overlay_behavior_iterator_t *i /**< */) 1037 { 1038 --i->rem; 1039 ++i->data; 1040 i->index += sizeof(xcb_xkb_overlay_behavior_t); 1041 } 1042 1043 1044 /***************************************************************************** 1045 ** 1046 ** xcb_generic_iterator_t xcb_xkb_overlay_behavior_end 1047 ** 1048 ** @param xcb_xkb_overlay_behavior_iterator_t i 1049 ** @returns xcb_generic_iterator_t 1050 ** 1051 *****************************************************************************/ 1052 1053 xcb_generic_iterator_t 1054 xcb_xkb_overlay_behavior_end (xcb_xkb_overlay_behavior_iterator_t i /**< */) 1055 { 1056 xcb_generic_iterator_t ret; 1057 ret.data = i.data + i.rem; 1058 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1059 ret.rem = 0; 1060 return ret; 1061 } 1062 1063 1064 /***************************************************************************** 1065 ** 1066 ** void xcb_xkb_permament_lock_behavior_next 1067 ** 1068 ** @param xcb_xkb_permament_lock_behavior_iterator_t *i 1069 ** @returns void 1070 ** 1071 *****************************************************************************/ 1072 1073 void 1074 xcb_xkb_permament_lock_behavior_next (xcb_xkb_permament_lock_behavior_iterator_t *i /**< */) 1075 { 1076 --i->rem; 1077 ++i->data; 1078 i->index += sizeof(xcb_xkb_permament_lock_behavior_t); 1079 } 1080 1081 1082 /***************************************************************************** 1083 ** 1084 ** xcb_generic_iterator_t xcb_xkb_permament_lock_behavior_end 1085 ** 1086 ** @param xcb_xkb_permament_lock_behavior_iterator_t i 1087 ** @returns xcb_generic_iterator_t 1088 ** 1089 *****************************************************************************/ 1090 1091 xcb_generic_iterator_t 1092 xcb_xkb_permament_lock_behavior_end (xcb_xkb_permament_lock_behavior_iterator_t i /**< */) 1093 { 1094 xcb_generic_iterator_t ret; 1095 ret.data = i.data + i.rem; 1096 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1097 ret.rem = 0; 1098 return ret; 1099 } 1100 1101 1102 /***************************************************************************** 1103 ** 1104 ** void xcb_xkb_permament_radio_group_behavior_next 1105 ** 1106 ** @param xcb_xkb_permament_radio_group_behavior_iterator_t *i 1107 ** @returns void 1108 ** 1109 *****************************************************************************/ 1110 1111 void 1112 xcb_xkb_permament_radio_group_behavior_next (xcb_xkb_permament_radio_group_behavior_iterator_t *i /**< */) 1113 { 1114 --i->rem; 1115 ++i->data; 1116 i->index += sizeof(xcb_xkb_permament_radio_group_behavior_t); 1117 } 1118 1119 1120 /***************************************************************************** 1121 ** 1122 ** xcb_generic_iterator_t xcb_xkb_permament_radio_group_behavior_end 1123 ** 1124 ** @param xcb_xkb_permament_radio_group_behavior_iterator_t i 1125 ** @returns xcb_generic_iterator_t 1126 ** 1127 *****************************************************************************/ 1128 1129 xcb_generic_iterator_t 1130 xcb_xkb_permament_radio_group_behavior_end (xcb_xkb_permament_radio_group_behavior_iterator_t i /**< */) 1131 { 1132 xcb_generic_iterator_t ret; 1133 ret.data = i.data + i.rem; 1134 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1135 ret.rem = 0; 1136 return ret; 1137 } 1138 1139 1140 /***************************************************************************** 1141 ** 1142 ** void xcb_xkb_permament_overlay_behavior_next 1143 ** 1144 ** @param xcb_xkb_permament_overlay_behavior_iterator_t *i 1145 ** @returns void 1146 ** 1147 *****************************************************************************/ 1148 1149 void 1150 xcb_xkb_permament_overlay_behavior_next (xcb_xkb_permament_overlay_behavior_iterator_t *i /**< */) 1151 { 1152 --i->rem; 1153 ++i->data; 1154 i->index += sizeof(xcb_xkb_permament_overlay_behavior_t); 1155 } 1156 1157 1158 /***************************************************************************** 1159 ** 1160 ** xcb_generic_iterator_t xcb_xkb_permament_overlay_behavior_end 1161 ** 1162 ** @param xcb_xkb_permament_overlay_behavior_iterator_t i 1163 ** @returns xcb_generic_iterator_t 1164 ** 1165 *****************************************************************************/ 1166 1167 xcb_generic_iterator_t 1168 xcb_xkb_permament_overlay_behavior_end (xcb_xkb_permament_overlay_behavior_iterator_t i /**< */) 1169 { 1170 xcb_generic_iterator_t ret; 1171 ret.data = i.data + i.rem; 1172 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1173 ret.rem = 0; 1174 return ret; 1175 } 1176 1177 1178 /***************************************************************************** 1179 ** 1180 ** void xcb_xkb_behavior_next 1181 ** 1182 ** @param xcb_xkb_behavior_iterator_t *i 1183 ** @returns void 1184 ** 1185 *****************************************************************************/ 1186 1187 void 1188 xcb_xkb_behavior_next (xcb_xkb_behavior_iterator_t *i /**< */) 1189 { 1190 --i->rem; 1191 ++i->data; 1192 i->index += sizeof(xcb_xkb_behavior_t); 1193 } 1194 1195 1196 /***************************************************************************** 1197 ** 1198 ** xcb_generic_iterator_t xcb_xkb_behavior_end 1199 ** 1200 ** @param xcb_xkb_behavior_iterator_t i 1201 ** @returns xcb_generic_iterator_t 1202 ** 1203 *****************************************************************************/ 1204 1205 xcb_generic_iterator_t 1206 xcb_xkb_behavior_end (xcb_xkb_behavior_iterator_t i /**< */) 1207 { 1208 xcb_generic_iterator_t ret; 1209 ret.data = i.data + i.rem; 1210 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1211 ret.rem = 0; 1212 return ret; 1213 } 1214 1215 1216 /***************************************************************************** 1217 ** 1218 ** void xcb_xkb_set_behavior_next 1219 ** 1220 ** @param xcb_xkb_set_behavior_iterator_t *i 1221 ** @returns void 1222 ** 1223 *****************************************************************************/ 1224 1225 void 1226 xcb_xkb_set_behavior_next (xcb_xkb_set_behavior_iterator_t *i /**< */) 1227 { 1228 --i->rem; 1229 ++i->data; 1230 i->index += sizeof(xcb_xkb_set_behavior_t); 1231 } 1232 1233 1234 /***************************************************************************** 1235 ** 1236 ** xcb_generic_iterator_t xcb_xkb_set_behavior_end 1237 ** 1238 ** @param xcb_xkb_set_behavior_iterator_t i 1239 ** @returns xcb_generic_iterator_t 1240 ** 1241 *****************************************************************************/ 1242 1243 xcb_generic_iterator_t 1244 xcb_xkb_set_behavior_end (xcb_xkb_set_behavior_iterator_t i /**< */) 1245 { 1246 xcb_generic_iterator_t ret; 1247 ret.data = i.data + i.rem; 1248 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1249 ret.rem = 0; 1250 return ret; 1251 } 1252 1253 1254 /***************************************************************************** 1255 ** 1256 ** void xcb_xkb_set_explicit_next 1257 ** 1258 ** @param xcb_xkb_set_explicit_iterator_t *i 1259 ** @returns void 1260 ** 1261 *****************************************************************************/ 1262 1263 void 1264 xcb_xkb_set_explicit_next (xcb_xkb_set_explicit_iterator_t *i /**< */) 1265 { 1266 --i->rem; 1267 ++i->data; 1268 i->index += sizeof(xcb_xkb_set_explicit_t); 1269 } 1270 1271 1272 /***************************************************************************** 1273 ** 1274 ** xcb_generic_iterator_t xcb_xkb_set_explicit_end 1275 ** 1276 ** @param xcb_xkb_set_explicit_iterator_t i 1277 ** @returns xcb_generic_iterator_t 1278 ** 1279 *****************************************************************************/ 1280 1281 xcb_generic_iterator_t 1282 xcb_xkb_set_explicit_end (xcb_xkb_set_explicit_iterator_t i /**< */) 1283 { 1284 xcb_generic_iterator_t ret; 1285 ret.data = i.data + i.rem; 1286 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1287 ret.rem = 0; 1288 return ret; 1289 } 1290 1291 1292 /***************************************************************************** 1293 ** 1294 ** void xcb_xkb_key_mod_map_next 1295 ** 1296 ** @param xcb_xkb_key_mod_map_iterator_t *i 1297 ** @returns void 1298 ** 1299 *****************************************************************************/ 1300 1301 void 1302 xcb_xkb_key_mod_map_next (xcb_xkb_key_mod_map_iterator_t *i /**< */) 1303 { 1304 --i->rem; 1305 ++i->data; 1306 i->index += sizeof(xcb_xkb_key_mod_map_t); 1307 } 1308 1309 1310 /***************************************************************************** 1311 ** 1312 ** xcb_generic_iterator_t xcb_xkb_key_mod_map_end 1313 ** 1314 ** @param xcb_xkb_key_mod_map_iterator_t i 1315 ** @returns xcb_generic_iterator_t 1316 ** 1317 *****************************************************************************/ 1318 1319 xcb_generic_iterator_t 1320 xcb_xkb_key_mod_map_end (xcb_xkb_key_mod_map_iterator_t i /**< */) 1321 { 1322 xcb_generic_iterator_t ret; 1323 ret.data = i.data + i.rem; 1324 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1325 ret.rem = 0; 1326 return ret; 1327 } 1328 1329 1330 /***************************************************************************** 1331 ** 1332 ** void xcb_xkb_key_v_mod_map_next 1333 ** 1334 ** @param xcb_xkb_key_v_mod_map_iterator_t *i 1335 ** @returns void 1336 ** 1337 *****************************************************************************/ 1338 1339 void 1340 xcb_xkb_key_v_mod_map_next (xcb_xkb_key_v_mod_map_iterator_t *i /**< */) 1341 { 1342 --i->rem; 1343 ++i->data; 1344 i->index += sizeof(xcb_xkb_key_v_mod_map_t); 1345 } 1346 1347 1348 /***************************************************************************** 1349 ** 1350 ** xcb_generic_iterator_t xcb_xkb_key_v_mod_map_end 1351 ** 1352 ** @param xcb_xkb_key_v_mod_map_iterator_t i 1353 ** @returns xcb_generic_iterator_t 1354 ** 1355 *****************************************************************************/ 1356 1357 xcb_generic_iterator_t 1358 xcb_xkb_key_v_mod_map_end (xcb_xkb_key_v_mod_map_iterator_t i /**< */) 1359 { 1360 xcb_generic_iterator_t ret; 1361 ret.data = i.data + i.rem; 1362 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1363 ret.rem = 0; 1364 return ret; 1365 } 1366 1367 1368 /***************************************************************************** 1369 ** 1370 ** void xcb_xkb_kt_set_map_entry_next 1371 ** 1372 ** @param xcb_xkb_kt_set_map_entry_iterator_t *i 1373 ** @returns void 1374 ** 1375 *****************************************************************************/ 1376 1377 void 1378 xcb_xkb_kt_set_map_entry_next (xcb_xkb_kt_set_map_entry_iterator_t *i /**< */) 1379 { 1380 --i->rem; 1381 ++i->data; 1382 i->index += sizeof(xcb_xkb_kt_set_map_entry_t); 1383 } 1384 1385 1386 /***************************************************************************** 1387 ** 1388 ** xcb_generic_iterator_t xcb_xkb_kt_set_map_entry_end 1389 ** 1390 ** @param xcb_xkb_kt_set_map_entry_iterator_t i 1391 ** @returns xcb_generic_iterator_t 1392 ** 1393 *****************************************************************************/ 1394 1395 xcb_generic_iterator_t 1396 xcb_xkb_kt_set_map_entry_end (xcb_xkb_kt_set_map_entry_iterator_t i /**< */) 1397 { 1398 xcb_generic_iterator_t ret; 1399 ret.data = i.data + i.rem; 1400 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1401 ret.rem = 0; 1402 return ret; 1403 } 1404 1405 int 1406 xcb_xkb_set_key_type_sizeof (const void *_buffer /**< */) 1407 { 1408 char *xcb_tmp = (char *)_buffer; 1409 const xcb_xkb_set_key_type_t *_aux = (xcb_xkb_set_key_type_t *)_buffer; 1410 unsigned int xcb_buffer_len = 0; 1411 unsigned int xcb_block_len = 0; 1412 unsigned int xcb_pad = 0; 1413 unsigned int xcb_align_to = 0; 1414 1415 1416 xcb_block_len += sizeof(xcb_xkb_set_key_type_t); 1417 xcb_tmp += xcb_block_len; 1418 xcb_buffer_len += xcb_block_len; 1419 xcb_block_len = 0; 1420 /* entries */ 1421 xcb_block_len += _aux->nMapEntries * sizeof(xcb_xkb_kt_set_map_entry_t); 1422 xcb_tmp += xcb_block_len; 1423 xcb_align_to = ALIGNOF(xcb_xkb_kt_set_map_entry_t); 1424 /* insert padding */ 1425 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1426 xcb_buffer_len += xcb_block_len + xcb_pad; 1427 if (0 != xcb_pad) { 1428 xcb_tmp += xcb_pad; 1429 xcb_pad = 0; 1430 } 1431 xcb_block_len = 0; 1432 /* preserve_entries */ 1433 xcb_block_len += (_aux->preserve * _aux->nMapEntries) * sizeof(xcb_xkb_kt_set_map_entry_t); 1434 xcb_tmp += xcb_block_len; 1435 xcb_align_to = ALIGNOF(xcb_xkb_kt_set_map_entry_t); 1436 /* insert padding */ 1437 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1438 xcb_buffer_len += xcb_block_len + xcb_pad; 1439 if (0 != xcb_pad) { 1440 xcb_tmp += xcb_pad; 1441 xcb_pad = 0; 1442 } 1443 xcb_block_len = 0; 1444 1445 return xcb_buffer_len; 1446 } 1447 1448 1449 /***************************************************************************** 1450 ** 1451 ** xcb_xkb_kt_set_map_entry_t * xcb_xkb_set_key_type_entries 1452 ** 1453 ** @param const xcb_xkb_set_key_type_t *R 1454 ** @returns xcb_xkb_kt_set_map_entry_t * 1455 ** 1456 *****************************************************************************/ 1457 1458 xcb_xkb_kt_set_map_entry_t * 1459 xcb_xkb_set_key_type_entries (const xcb_xkb_set_key_type_t *R /**< */) 1460 { 1461 return (xcb_xkb_kt_set_map_entry_t *) (R + 1); 1462 } 1463 1464 1465 /***************************************************************************** 1466 ** 1467 ** int xcb_xkb_set_key_type_entries_length 1468 ** 1469 ** @param const xcb_xkb_set_key_type_t *R 1470 ** @returns int 1471 ** 1472 *****************************************************************************/ 1473 1474 int 1475 xcb_xkb_set_key_type_entries_length (const xcb_xkb_set_key_type_t *R /**< */) 1476 { 1477 return R->nMapEntries; 1478 } 1479 1480 1481 /***************************************************************************** 1482 ** 1483 ** xcb_xkb_kt_set_map_entry_iterator_t xcb_xkb_set_key_type_entries_iterator 1484 ** 1485 ** @param const xcb_xkb_set_key_type_t *R 1486 ** @returns xcb_xkb_kt_set_map_entry_iterator_t 1487 ** 1488 *****************************************************************************/ 1489 1490 xcb_xkb_kt_set_map_entry_iterator_t 1491 xcb_xkb_set_key_type_entries_iterator (const xcb_xkb_set_key_type_t *R /**< */) 1492 { 1493 xcb_xkb_kt_set_map_entry_iterator_t i; 1494 i.data = (xcb_xkb_kt_set_map_entry_t *) (R + 1); 1495 i.rem = R->nMapEntries; 1496 i.index = (char *) i.data - (char *) R; 1497 return i; 1498 } 1499 1500 1501 /***************************************************************************** 1502 ** 1503 ** xcb_xkb_kt_set_map_entry_t * xcb_xkb_set_key_type_preserve_entries 1504 ** 1505 ** @param const xcb_xkb_set_key_type_t *R 1506 ** @returns xcb_xkb_kt_set_map_entry_t * 1507 ** 1508 *****************************************************************************/ 1509 1510 xcb_xkb_kt_set_map_entry_t * 1511 xcb_xkb_set_key_type_preserve_entries (const xcb_xkb_set_key_type_t *R /**< */) 1512 { 1513 xcb_generic_iterator_t prev = xcb_xkb_kt_set_map_entry_end(xcb_xkb_set_key_type_entries_iterator(R)); 1514 return (xcb_xkb_kt_set_map_entry_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_kt_set_map_entry_t, prev.index) + 0); 1515 } 1516 1517 1518 /***************************************************************************** 1519 ** 1520 ** int xcb_xkb_set_key_type_preserve_entries_length 1521 ** 1522 ** @param const xcb_xkb_set_key_type_t *R 1523 ** @returns int 1524 ** 1525 *****************************************************************************/ 1526 1527 int 1528 xcb_xkb_set_key_type_preserve_entries_length (const xcb_xkb_set_key_type_t *R /**< */) 1529 { 1530 return (R->preserve * R->nMapEntries); 1531 } 1532 1533 1534 /***************************************************************************** 1535 ** 1536 ** xcb_xkb_kt_set_map_entry_iterator_t xcb_xkb_set_key_type_preserve_entries_iterator 1537 ** 1538 ** @param const xcb_xkb_set_key_type_t *R 1539 ** @returns xcb_xkb_kt_set_map_entry_iterator_t 1540 ** 1541 *****************************************************************************/ 1542 1543 xcb_xkb_kt_set_map_entry_iterator_t 1544 xcb_xkb_set_key_type_preserve_entries_iterator (const xcb_xkb_set_key_type_t *R /**< */) 1545 { 1546 xcb_xkb_kt_set_map_entry_iterator_t i; 1547 xcb_generic_iterator_t prev = xcb_xkb_kt_set_map_entry_end(xcb_xkb_set_key_type_entries_iterator(R)); 1548 i.data = (xcb_xkb_kt_set_map_entry_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_kt_set_map_entry_t, prev.index)); 1549 i.rem = (R->preserve * R->nMapEntries); 1550 i.index = (char *) i.data - (char *) R; 1551 return i; 1552 } 1553 1554 1555 /***************************************************************************** 1556 ** 1557 ** void xcb_xkb_set_key_type_next 1558 ** 1559 ** @param xcb_xkb_set_key_type_iterator_t *i 1560 ** @returns void 1561 ** 1562 *****************************************************************************/ 1563 1564 void 1565 xcb_xkb_set_key_type_next (xcb_xkb_set_key_type_iterator_t *i /**< */) 1566 { 1567 xcb_xkb_set_key_type_t *R = i->data; 1568 xcb_generic_iterator_t child; 1569 child.data = (xcb_xkb_set_key_type_t *)(((char *)R) + xcb_xkb_set_key_type_sizeof(R)); 1570 i->index = (char *) child.data - (char *) i->data; 1571 --i->rem; 1572 i->data = (xcb_xkb_set_key_type_t *) child.data; 1573 } 1574 1575 1576 /***************************************************************************** 1577 ** 1578 ** xcb_generic_iterator_t xcb_xkb_set_key_type_end 1579 ** 1580 ** @param xcb_xkb_set_key_type_iterator_t i 1581 ** @returns xcb_generic_iterator_t 1582 ** 1583 *****************************************************************************/ 1584 1585 xcb_generic_iterator_t 1586 xcb_xkb_set_key_type_end (xcb_xkb_set_key_type_iterator_t i /**< */) 1587 { 1588 xcb_generic_iterator_t ret; 1589 while(i.rem > 0) 1590 xcb_xkb_set_key_type_next(&i); 1591 ret.data = i.data; 1592 ret.rem = i.rem; 1593 ret.index = i.index; 1594 return ret; 1595 } 1596 1597 1598 /***************************************************************************** 1599 ** 1600 ** void xcb_xkb_string8_next 1601 ** 1602 ** @param xcb_xkb_string8_iterator_t *i 1603 ** @returns void 1604 ** 1605 *****************************************************************************/ 1606 1607 void 1608 xcb_xkb_string8_next (xcb_xkb_string8_iterator_t *i /**< */) 1609 { 1610 --i->rem; 1611 ++i->data; 1612 i->index += sizeof(xcb_xkb_string8_t); 1613 } 1614 1615 1616 /***************************************************************************** 1617 ** 1618 ** xcb_generic_iterator_t xcb_xkb_string8_end 1619 ** 1620 ** @param xcb_xkb_string8_iterator_t i 1621 ** @returns xcb_generic_iterator_t 1622 ** 1623 *****************************************************************************/ 1624 1625 xcb_generic_iterator_t 1626 xcb_xkb_string8_end (xcb_xkb_string8_iterator_t i /**< */) 1627 { 1628 xcb_generic_iterator_t ret; 1629 ret.data = i.data + i.rem; 1630 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1631 ret.rem = 0; 1632 return ret; 1633 } 1634 1635 int 1636 xcb_xkb_outline_sizeof (const void *_buffer /**< */) 1637 { 1638 char *xcb_tmp = (char *)_buffer; 1639 const xcb_xkb_outline_t *_aux = (xcb_xkb_outline_t *)_buffer; 1640 unsigned int xcb_buffer_len = 0; 1641 unsigned int xcb_block_len = 0; 1642 unsigned int xcb_pad = 0; 1643 unsigned int xcb_align_to = 0; 1644 1645 1646 xcb_block_len += sizeof(xcb_xkb_outline_t); 1647 xcb_tmp += xcb_block_len; 1648 xcb_buffer_len += xcb_block_len; 1649 xcb_block_len = 0; 1650 /* points */ 1651 xcb_block_len += _aux->nPoints * sizeof(xcb_point_t); 1652 xcb_tmp += xcb_block_len; 1653 xcb_align_to = ALIGNOF(xcb_point_t); 1654 /* insert padding */ 1655 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1656 xcb_buffer_len += xcb_block_len + xcb_pad; 1657 if (0 != xcb_pad) { 1658 xcb_tmp += xcb_pad; 1659 xcb_pad = 0; 1660 } 1661 xcb_block_len = 0; 1662 1663 return xcb_buffer_len; 1664 } 1665 1666 1667 /***************************************************************************** 1668 ** 1669 ** xcb_point_t * xcb_xkb_outline_points 1670 ** 1671 ** @param const xcb_xkb_outline_t *R 1672 ** @returns xcb_point_t * 1673 ** 1674 *****************************************************************************/ 1675 1676 xcb_point_t * 1677 xcb_xkb_outline_points (const xcb_xkb_outline_t *R /**< */) 1678 { 1679 return (xcb_point_t *) (R + 1); 1680 } 1681 1682 1683 /***************************************************************************** 1684 ** 1685 ** int xcb_xkb_outline_points_length 1686 ** 1687 ** @param const xcb_xkb_outline_t *R 1688 ** @returns int 1689 ** 1690 *****************************************************************************/ 1691 1692 int 1693 xcb_xkb_outline_points_length (const xcb_xkb_outline_t *R /**< */) 1694 { 1695 return R->nPoints; 1696 } 1697 1698 1699 /***************************************************************************** 1700 ** 1701 ** xcb_point_iterator_t xcb_xkb_outline_points_iterator 1702 ** 1703 ** @param const xcb_xkb_outline_t *R 1704 ** @returns xcb_point_iterator_t 1705 ** 1706 *****************************************************************************/ 1707 1708 xcb_point_iterator_t 1709 xcb_xkb_outline_points_iterator (const xcb_xkb_outline_t *R /**< */) 1710 { 1711 xcb_point_iterator_t i; 1712 i.data = (xcb_point_t *) (R + 1); 1713 i.rem = R->nPoints; 1714 i.index = (char *) i.data - (char *) R; 1715 return i; 1716 } 1717 1718 1719 /***************************************************************************** 1720 ** 1721 ** void xcb_xkb_outline_next 1722 ** 1723 ** @param xcb_xkb_outline_iterator_t *i 1724 ** @returns void 1725 ** 1726 *****************************************************************************/ 1727 1728 void 1729 xcb_xkb_outline_next (xcb_xkb_outline_iterator_t *i /**< */) 1730 { 1731 xcb_xkb_outline_t *R = i->data; 1732 xcb_generic_iterator_t child; 1733 child.data = (xcb_xkb_outline_t *)(((char *)R) + xcb_xkb_outline_sizeof(R)); 1734 i->index = (char *) child.data - (char *) i->data; 1735 --i->rem; 1736 i->data = (xcb_xkb_outline_t *) child.data; 1737 } 1738 1739 1740 /***************************************************************************** 1741 ** 1742 ** xcb_generic_iterator_t xcb_xkb_outline_end 1743 ** 1744 ** @param xcb_xkb_outline_iterator_t i 1745 ** @returns xcb_generic_iterator_t 1746 ** 1747 *****************************************************************************/ 1748 1749 xcb_generic_iterator_t 1750 xcb_xkb_outline_end (xcb_xkb_outline_iterator_t i /**< */) 1751 { 1752 xcb_generic_iterator_t ret; 1753 while(i.rem > 0) 1754 xcb_xkb_outline_next(&i); 1755 ret.data = i.data; 1756 ret.rem = i.rem; 1757 ret.index = i.index; 1758 return ret; 1759 } 1760 1761 int 1762 xcb_xkb_shape_sizeof (const void *_buffer /**< */) 1763 { 1764 char *xcb_tmp = (char *)_buffer; 1765 const xcb_xkb_shape_t *_aux = (xcb_xkb_shape_t *)_buffer; 1766 unsigned int xcb_buffer_len = 0; 1767 unsigned int xcb_block_len = 0; 1768 unsigned int xcb_pad = 0; 1769 unsigned int xcb_align_to = 0; 1770 1771 unsigned int i; 1772 unsigned int xcb_tmp_len; 1773 1774 xcb_block_len += sizeof(xcb_xkb_shape_t); 1775 xcb_tmp += xcb_block_len; 1776 xcb_buffer_len += xcb_block_len; 1777 xcb_block_len = 0; 1778 /* outlines */ 1779 for(i=0; i<_aux->nOutlines; i++) { 1780 xcb_tmp_len = xcb_xkb_outline_sizeof(xcb_tmp); 1781 xcb_block_len += xcb_tmp_len; 1782 xcb_tmp += xcb_tmp_len; 1783 } 1784 xcb_align_to = ALIGNOF(xcb_xkb_outline_t); 1785 /* insert padding */ 1786 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1787 xcb_buffer_len += xcb_block_len + xcb_pad; 1788 if (0 != xcb_pad) { 1789 xcb_tmp += xcb_pad; 1790 xcb_pad = 0; 1791 } 1792 xcb_block_len = 0; 1793 1794 return xcb_buffer_len; 1795 } 1796 1797 1798 /***************************************************************************** 1799 ** 1800 ** int xcb_xkb_shape_outlines_length 1801 ** 1802 ** @param const xcb_xkb_shape_t *R 1803 ** @returns int 1804 ** 1805 *****************************************************************************/ 1806 1807 int 1808 xcb_xkb_shape_outlines_length (const xcb_xkb_shape_t *R /**< */) 1809 { 1810 return R->nOutlines; 1811 } 1812 1813 1814 /***************************************************************************** 1815 ** 1816 ** xcb_xkb_outline_iterator_t xcb_xkb_shape_outlines_iterator 1817 ** 1818 ** @param const xcb_xkb_shape_t *R 1819 ** @returns xcb_xkb_outline_iterator_t 1820 ** 1821 *****************************************************************************/ 1822 1823 xcb_xkb_outline_iterator_t 1824 xcb_xkb_shape_outlines_iterator (const xcb_xkb_shape_t *R /**< */) 1825 { 1826 xcb_xkb_outline_iterator_t i; 1827 i.data = (xcb_xkb_outline_t *) (R + 1); 1828 i.rem = R->nOutlines; 1829 i.index = (char *) i.data - (char *) R; 1830 return i; 1831 } 1832 1833 1834 /***************************************************************************** 1835 ** 1836 ** void xcb_xkb_shape_next 1837 ** 1838 ** @param xcb_xkb_shape_iterator_t *i 1839 ** @returns void 1840 ** 1841 *****************************************************************************/ 1842 1843 void 1844 xcb_xkb_shape_next (xcb_xkb_shape_iterator_t *i /**< */) 1845 { 1846 xcb_xkb_shape_t *R = i->data; 1847 xcb_generic_iterator_t child; 1848 child.data = (xcb_xkb_shape_t *)(((char *)R) + xcb_xkb_shape_sizeof(R)); 1849 i->index = (char *) child.data - (char *) i->data; 1850 --i->rem; 1851 i->data = (xcb_xkb_shape_t *) child.data; 1852 } 1853 1854 1855 /***************************************************************************** 1856 ** 1857 ** xcb_generic_iterator_t xcb_xkb_shape_end 1858 ** 1859 ** @param xcb_xkb_shape_iterator_t i 1860 ** @returns xcb_generic_iterator_t 1861 ** 1862 *****************************************************************************/ 1863 1864 xcb_generic_iterator_t 1865 xcb_xkb_shape_end (xcb_xkb_shape_iterator_t i /**< */) 1866 { 1867 xcb_generic_iterator_t ret; 1868 while(i.rem > 0) 1869 xcb_xkb_shape_next(&i); 1870 ret.data = i.data; 1871 ret.rem = i.rem; 1872 ret.index = i.index; 1873 return ret; 1874 } 1875 1876 1877 /***************************************************************************** 1878 ** 1879 ** void xcb_xkb_key_next 1880 ** 1881 ** @param xcb_xkb_key_iterator_t *i 1882 ** @returns void 1883 ** 1884 *****************************************************************************/ 1885 1886 void 1887 xcb_xkb_key_next (xcb_xkb_key_iterator_t *i /**< */) 1888 { 1889 --i->rem; 1890 ++i->data; 1891 i->index += sizeof(xcb_xkb_key_t); 1892 } 1893 1894 1895 /***************************************************************************** 1896 ** 1897 ** xcb_generic_iterator_t xcb_xkb_key_end 1898 ** 1899 ** @param xcb_xkb_key_iterator_t i 1900 ** @returns xcb_generic_iterator_t 1901 ** 1902 *****************************************************************************/ 1903 1904 xcb_generic_iterator_t 1905 xcb_xkb_key_end (xcb_xkb_key_iterator_t i /**< */) 1906 { 1907 xcb_generic_iterator_t ret; 1908 ret.data = i.data + i.rem; 1909 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1910 ret.rem = 0; 1911 return ret; 1912 } 1913 1914 1915 /***************************************************************************** 1916 ** 1917 ** void xcb_xkb_overlay_key_next 1918 ** 1919 ** @param xcb_xkb_overlay_key_iterator_t *i 1920 ** @returns void 1921 ** 1922 *****************************************************************************/ 1923 1924 void 1925 xcb_xkb_overlay_key_next (xcb_xkb_overlay_key_iterator_t *i /**< */) 1926 { 1927 --i->rem; 1928 ++i->data; 1929 i->index += sizeof(xcb_xkb_overlay_key_t); 1930 } 1931 1932 1933 /***************************************************************************** 1934 ** 1935 ** xcb_generic_iterator_t xcb_xkb_overlay_key_end 1936 ** 1937 ** @param xcb_xkb_overlay_key_iterator_t i 1938 ** @returns xcb_generic_iterator_t 1939 ** 1940 *****************************************************************************/ 1941 1942 xcb_generic_iterator_t 1943 xcb_xkb_overlay_key_end (xcb_xkb_overlay_key_iterator_t i /**< */) 1944 { 1945 xcb_generic_iterator_t ret; 1946 ret.data = i.data + i.rem; 1947 ret.index = i.index + ((char *) ret.data - (char *) i.data); 1948 ret.rem = 0; 1949 return ret; 1950 } 1951 1952 int 1953 xcb_xkb_overlay_row_sizeof (const void *_buffer /**< */) 1954 { 1955 char *xcb_tmp = (char *)_buffer; 1956 const xcb_xkb_overlay_row_t *_aux = (xcb_xkb_overlay_row_t *)_buffer; 1957 unsigned int xcb_buffer_len = 0; 1958 unsigned int xcb_block_len = 0; 1959 unsigned int xcb_pad = 0; 1960 unsigned int xcb_align_to = 0; 1961 1962 1963 xcb_block_len += sizeof(xcb_xkb_overlay_row_t); 1964 xcb_tmp += xcb_block_len; 1965 xcb_buffer_len += xcb_block_len; 1966 xcb_block_len = 0; 1967 /* keys */ 1968 xcb_block_len += _aux->nKeys * sizeof(xcb_xkb_overlay_key_t); 1969 xcb_tmp += xcb_block_len; 1970 xcb_align_to = ALIGNOF(xcb_xkb_overlay_key_t); 1971 /* insert padding */ 1972 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1973 xcb_buffer_len += xcb_block_len + xcb_pad; 1974 if (0 != xcb_pad) { 1975 xcb_tmp += xcb_pad; 1976 xcb_pad = 0; 1977 } 1978 xcb_block_len = 0; 1979 1980 return xcb_buffer_len; 1981 } 1982 1983 1984 /***************************************************************************** 1985 ** 1986 ** xcb_xkb_overlay_key_t * xcb_xkb_overlay_row_keys 1987 ** 1988 ** @param const xcb_xkb_overlay_row_t *R 1989 ** @returns xcb_xkb_overlay_key_t * 1990 ** 1991 *****************************************************************************/ 1992 1993 xcb_xkb_overlay_key_t * 1994 xcb_xkb_overlay_row_keys (const xcb_xkb_overlay_row_t *R /**< */) 1995 { 1996 return (xcb_xkb_overlay_key_t *) (R + 1); 1997 } 1998 1999 2000 /***************************************************************************** 2001 ** 2002 ** int xcb_xkb_overlay_row_keys_length 2003 ** 2004 ** @param const xcb_xkb_overlay_row_t *R 2005 ** @returns int 2006 ** 2007 *****************************************************************************/ 2008 2009 int 2010 xcb_xkb_overlay_row_keys_length (const xcb_xkb_overlay_row_t *R /**< */) 2011 { 2012 return R->nKeys; 2013 } 2014 2015 2016 /***************************************************************************** 2017 ** 2018 ** xcb_xkb_overlay_key_iterator_t xcb_xkb_overlay_row_keys_iterator 2019 ** 2020 ** @param const xcb_xkb_overlay_row_t *R 2021 ** @returns xcb_xkb_overlay_key_iterator_t 2022 ** 2023 *****************************************************************************/ 2024 2025 xcb_xkb_overlay_key_iterator_t 2026 xcb_xkb_overlay_row_keys_iterator (const xcb_xkb_overlay_row_t *R /**< */) 2027 { 2028 xcb_xkb_overlay_key_iterator_t i; 2029 i.data = (xcb_xkb_overlay_key_t *) (R + 1); 2030 i.rem = R->nKeys; 2031 i.index = (char *) i.data - (char *) R; 2032 return i; 2033 } 2034 2035 2036 /***************************************************************************** 2037 ** 2038 ** void xcb_xkb_overlay_row_next 2039 ** 2040 ** @param xcb_xkb_overlay_row_iterator_t *i 2041 ** @returns void 2042 ** 2043 *****************************************************************************/ 2044 2045 void 2046 xcb_xkb_overlay_row_next (xcb_xkb_overlay_row_iterator_t *i /**< */) 2047 { 2048 xcb_xkb_overlay_row_t *R = i->data; 2049 xcb_generic_iterator_t child; 2050 child.data = (xcb_xkb_overlay_row_t *)(((char *)R) + xcb_xkb_overlay_row_sizeof(R)); 2051 i->index = (char *) child.data - (char *) i->data; 2052 --i->rem; 2053 i->data = (xcb_xkb_overlay_row_t *) child.data; 2054 } 2055 2056 2057 /***************************************************************************** 2058 ** 2059 ** xcb_generic_iterator_t xcb_xkb_overlay_row_end 2060 ** 2061 ** @param xcb_xkb_overlay_row_iterator_t i 2062 ** @returns xcb_generic_iterator_t 2063 ** 2064 *****************************************************************************/ 2065 2066 xcb_generic_iterator_t 2067 xcb_xkb_overlay_row_end (xcb_xkb_overlay_row_iterator_t i /**< */) 2068 { 2069 xcb_generic_iterator_t ret; 2070 while(i.rem > 0) 2071 xcb_xkb_overlay_row_next(&i); 2072 ret.data = i.data; 2073 ret.rem = i.rem; 2074 ret.index = i.index; 2075 return ret; 2076 } 2077 2078 int 2079 xcb_xkb_overlay_sizeof (const void *_buffer /**< */) 2080 { 2081 char *xcb_tmp = (char *)_buffer; 2082 const xcb_xkb_overlay_t *_aux = (xcb_xkb_overlay_t *)_buffer; 2083 unsigned int xcb_buffer_len = 0; 2084 unsigned int xcb_block_len = 0; 2085 unsigned int xcb_pad = 0; 2086 unsigned int xcb_align_to = 0; 2087 2088 unsigned int i; 2089 unsigned int xcb_tmp_len; 2090 2091 xcb_block_len += sizeof(xcb_xkb_overlay_t); 2092 xcb_tmp += xcb_block_len; 2093 xcb_buffer_len += xcb_block_len; 2094 xcb_block_len = 0; 2095 /* rows */ 2096 for(i=0; i<_aux->nRows; i++) { 2097 xcb_tmp_len = xcb_xkb_overlay_row_sizeof(xcb_tmp); 2098 xcb_block_len += xcb_tmp_len; 2099 xcb_tmp += xcb_tmp_len; 2100 } 2101 xcb_align_to = ALIGNOF(xcb_xkb_overlay_row_t); 2102 /* insert padding */ 2103 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2104 xcb_buffer_len += xcb_block_len + xcb_pad; 2105 if (0 != xcb_pad) { 2106 xcb_tmp += xcb_pad; 2107 xcb_pad = 0; 2108 } 2109 xcb_block_len = 0; 2110 2111 return xcb_buffer_len; 2112 } 2113 2114 2115 /***************************************************************************** 2116 ** 2117 ** int xcb_xkb_overlay_rows_length 2118 ** 2119 ** @param const xcb_xkb_overlay_t *R 2120 ** @returns int 2121 ** 2122 *****************************************************************************/ 2123 2124 int 2125 xcb_xkb_overlay_rows_length (const xcb_xkb_overlay_t *R /**< */) 2126 { 2127 return R->nRows; 2128 } 2129 2130 2131 /***************************************************************************** 2132 ** 2133 ** xcb_xkb_overlay_row_iterator_t xcb_xkb_overlay_rows_iterator 2134 ** 2135 ** @param const xcb_xkb_overlay_t *R 2136 ** @returns xcb_xkb_overlay_row_iterator_t 2137 ** 2138 *****************************************************************************/ 2139 2140 xcb_xkb_overlay_row_iterator_t 2141 xcb_xkb_overlay_rows_iterator (const xcb_xkb_overlay_t *R /**< */) 2142 { 2143 xcb_xkb_overlay_row_iterator_t i; 2144 i.data = (xcb_xkb_overlay_row_t *) (R + 1); 2145 i.rem = R->nRows; 2146 i.index = (char *) i.data - (char *) R; 2147 return i; 2148 } 2149 2150 2151 /***************************************************************************** 2152 ** 2153 ** void xcb_xkb_overlay_next 2154 ** 2155 ** @param xcb_xkb_overlay_iterator_t *i 2156 ** @returns void 2157 ** 2158 *****************************************************************************/ 2159 2160 void 2161 xcb_xkb_overlay_next (xcb_xkb_overlay_iterator_t *i /**< */) 2162 { 2163 xcb_xkb_overlay_t *R = i->data; 2164 xcb_generic_iterator_t child; 2165 child.data = (xcb_xkb_overlay_t *)(((char *)R) + xcb_xkb_overlay_sizeof(R)); 2166 i->index = (char *) child.data - (char *) i->data; 2167 --i->rem; 2168 i->data = (xcb_xkb_overlay_t *) child.data; 2169 } 2170 2171 2172 /***************************************************************************** 2173 ** 2174 ** xcb_generic_iterator_t xcb_xkb_overlay_end 2175 ** 2176 ** @param xcb_xkb_overlay_iterator_t i 2177 ** @returns xcb_generic_iterator_t 2178 ** 2179 *****************************************************************************/ 2180 2181 xcb_generic_iterator_t 2182 xcb_xkb_overlay_end (xcb_xkb_overlay_iterator_t i /**< */) 2183 { 2184 xcb_generic_iterator_t ret; 2185 while(i.rem > 0) 2186 xcb_xkb_overlay_next(&i); 2187 ret.data = i.data; 2188 ret.rem = i.rem; 2189 ret.index = i.index; 2190 return ret; 2191 } 2192 2193 int 2194 xcb_xkb_row_sizeof (const void *_buffer /**< */) 2195 { 2196 char *xcb_tmp = (char *)_buffer; 2197 const xcb_xkb_row_t *_aux = (xcb_xkb_row_t *)_buffer; 2198 unsigned int xcb_buffer_len = 0; 2199 unsigned int xcb_block_len = 0; 2200 unsigned int xcb_pad = 0; 2201 unsigned int xcb_align_to = 0; 2202 2203 2204 xcb_block_len += sizeof(xcb_xkb_row_t); 2205 xcb_tmp += xcb_block_len; 2206 xcb_buffer_len += xcb_block_len; 2207 xcb_block_len = 0; 2208 /* keys */ 2209 xcb_block_len += _aux->nKeys * sizeof(xcb_xkb_key_t); 2210 xcb_tmp += xcb_block_len; 2211 xcb_align_to = ALIGNOF(xcb_xkb_key_t); 2212 /* insert padding */ 2213 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2214 xcb_buffer_len += xcb_block_len + xcb_pad; 2215 if (0 != xcb_pad) { 2216 xcb_tmp += xcb_pad; 2217 xcb_pad = 0; 2218 } 2219 xcb_block_len = 0; 2220 2221 return xcb_buffer_len; 2222 } 2223 2224 2225 /***************************************************************************** 2226 ** 2227 ** xcb_xkb_key_t * xcb_xkb_row_keys 2228 ** 2229 ** @param const xcb_xkb_row_t *R 2230 ** @returns xcb_xkb_key_t * 2231 ** 2232 *****************************************************************************/ 2233 2234 xcb_xkb_key_t * 2235 xcb_xkb_row_keys (const xcb_xkb_row_t *R /**< */) 2236 { 2237 return (xcb_xkb_key_t *) (R + 1); 2238 } 2239 2240 2241 /***************************************************************************** 2242 ** 2243 ** int xcb_xkb_row_keys_length 2244 ** 2245 ** @param const xcb_xkb_row_t *R 2246 ** @returns int 2247 ** 2248 *****************************************************************************/ 2249 2250 int 2251 xcb_xkb_row_keys_length (const xcb_xkb_row_t *R /**< */) 2252 { 2253 return R->nKeys; 2254 } 2255 2256 2257 /***************************************************************************** 2258 ** 2259 ** xcb_xkb_key_iterator_t xcb_xkb_row_keys_iterator 2260 ** 2261 ** @param const xcb_xkb_row_t *R 2262 ** @returns xcb_xkb_key_iterator_t 2263 ** 2264 *****************************************************************************/ 2265 2266 xcb_xkb_key_iterator_t 2267 xcb_xkb_row_keys_iterator (const xcb_xkb_row_t *R /**< */) 2268 { 2269 xcb_xkb_key_iterator_t i; 2270 i.data = (xcb_xkb_key_t *) (R + 1); 2271 i.rem = R->nKeys; 2272 i.index = (char *) i.data - (char *) R; 2273 return i; 2274 } 2275 2276 2277 /***************************************************************************** 2278 ** 2279 ** void xcb_xkb_row_next 2280 ** 2281 ** @param xcb_xkb_row_iterator_t *i 2282 ** @returns void 2283 ** 2284 *****************************************************************************/ 2285 2286 void 2287 xcb_xkb_row_next (xcb_xkb_row_iterator_t *i /**< */) 2288 { 2289 xcb_xkb_row_t *R = i->data; 2290 xcb_generic_iterator_t child; 2291 child.data = (xcb_xkb_row_t *)(((char *)R) + xcb_xkb_row_sizeof(R)); 2292 i->index = (char *) child.data - (char *) i->data; 2293 --i->rem; 2294 i->data = (xcb_xkb_row_t *) child.data; 2295 } 2296 2297 2298 /***************************************************************************** 2299 ** 2300 ** xcb_generic_iterator_t xcb_xkb_row_end 2301 ** 2302 ** @param xcb_xkb_row_iterator_t i 2303 ** @returns xcb_generic_iterator_t 2304 ** 2305 *****************************************************************************/ 2306 2307 xcb_generic_iterator_t 2308 xcb_xkb_row_end (xcb_xkb_row_iterator_t i /**< */) 2309 { 2310 xcb_generic_iterator_t ret; 2311 while(i.rem > 0) 2312 xcb_xkb_row_next(&i); 2313 ret.data = i.data; 2314 ret.rem = i.rem; 2315 ret.index = i.index; 2316 return ret; 2317 } 2318 2319 int 2320 xcb_xkb_listing_sizeof (const void *_buffer /**< */) 2321 { 2322 char *xcb_tmp = (char *)_buffer; 2323 const xcb_xkb_listing_t *_aux = (xcb_xkb_listing_t *)_buffer; 2324 unsigned int xcb_buffer_len = 0; 2325 unsigned int xcb_block_len = 0; 2326 unsigned int xcb_pad = 0; 2327 unsigned int xcb_align_to = 0; 2328 2329 2330 xcb_block_len += sizeof(xcb_xkb_listing_t); 2331 xcb_tmp += xcb_block_len; 2332 xcb_buffer_len += xcb_block_len; 2333 xcb_block_len = 0; 2334 /* string */ 2335 xcb_block_len += _aux->length * sizeof(xcb_xkb_string8_t); 2336 xcb_tmp += xcb_block_len; 2337 xcb_align_to = ALIGNOF(xcb_xkb_string8_t); 2338 /* insert padding */ 2339 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2340 xcb_buffer_len += xcb_block_len + xcb_pad; 2341 if (0 != xcb_pad) { 2342 xcb_tmp += xcb_pad; 2343 xcb_pad = 0; 2344 } 2345 xcb_block_len = 0; 2346 2347 return xcb_buffer_len; 2348 } 2349 2350 2351 /***************************************************************************** 2352 ** 2353 ** xcb_xkb_string8_t * xcb_xkb_listing_string 2354 ** 2355 ** @param const xcb_xkb_listing_t *R 2356 ** @returns xcb_xkb_string8_t * 2357 ** 2358 *****************************************************************************/ 2359 2360 xcb_xkb_string8_t * 2361 xcb_xkb_listing_string (const xcb_xkb_listing_t *R /**< */) 2362 { 2363 return (xcb_xkb_string8_t *) (R + 1); 2364 } 2365 2366 2367 /***************************************************************************** 2368 ** 2369 ** int xcb_xkb_listing_string_length 2370 ** 2371 ** @param const xcb_xkb_listing_t *R 2372 ** @returns int 2373 ** 2374 *****************************************************************************/ 2375 2376 int 2377 xcb_xkb_listing_string_length (const xcb_xkb_listing_t *R /**< */) 2378 { 2379 return R->length; 2380 } 2381 2382 2383 /***************************************************************************** 2384 ** 2385 ** xcb_generic_iterator_t xcb_xkb_listing_string_end 2386 ** 2387 ** @param const xcb_xkb_listing_t *R 2388 ** @returns xcb_generic_iterator_t 2389 ** 2390 *****************************************************************************/ 2391 2392 xcb_generic_iterator_t 2393 xcb_xkb_listing_string_end (const xcb_xkb_listing_t *R /**< */) 2394 { 2395 xcb_generic_iterator_t i; 2396 i.data = ((xcb_xkb_string8_t *) (R + 1)) + (R->length); 2397 i.rem = 0; 2398 i.index = (char *) i.data - (char *) R; 2399 return i; 2400 } 2401 2402 2403 /***************************************************************************** 2404 ** 2405 ** void xcb_xkb_listing_next 2406 ** 2407 ** @param xcb_xkb_listing_iterator_t *i 2408 ** @returns void 2409 ** 2410 *****************************************************************************/ 2411 2412 void 2413 xcb_xkb_listing_next (xcb_xkb_listing_iterator_t *i /**< */) 2414 { 2415 xcb_xkb_listing_t *R = i->data; 2416 xcb_generic_iterator_t child; 2417 child.data = (xcb_xkb_listing_t *)(((char *)R) + xcb_xkb_listing_sizeof(R)); 2418 i->index = (char *) child.data - (char *) i->data; 2419 --i->rem; 2420 i->data = (xcb_xkb_listing_t *) child.data; 2421 } 2422 2423 2424 /***************************************************************************** 2425 ** 2426 ** xcb_generic_iterator_t xcb_xkb_listing_end 2427 ** 2428 ** @param xcb_xkb_listing_iterator_t i 2429 ** @returns xcb_generic_iterator_t 2430 ** 2431 *****************************************************************************/ 2432 2433 xcb_generic_iterator_t 2434 xcb_xkb_listing_end (xcb_xkb_listing_iterator_t i /**< */) 2435 { 2436 xcb_generic_iterator_t ret; 2437 while(i.rem > 0) 2438 xcb_xkb_listing_next(&i); 2439 ret.data = i.data; 2440 ret.rem = i.rem; 2441 ret.index = i.index; 2442 return ret; 2443 } 2444 2445 int 2446 xcb_xkb_device_led_info_sizeof (const void *_buffer /**< */) 2447 { 2448 char *xcb_tmp = (char *)_buffer; 2449 const xcb_xkb_device_led_info_t *_aux = (xcb_xkb_device_led_info_t *)_buffer; 2450 unsigned int xcb_buffer_len = 0; 2451 unsigned int xcb_block_len = 0; 2452 unsigned int xcb_pad = 0; 2453 unsigned int xcb_align_to = 0; 2454 2455 2456 xcb_block_len += sizeof(xcb_xkb_device_led_info_t); 2457 xcb_tmp += xcb_block_len; 2458 xcb_buffer_len += xcb_block_len; 2459 xcb_block_len = 0; 2460 /* names */ 2461 xcb_block_len += xcb_popcount(_aux->namesPresent) * sizeof(uint32_t); 2462 xcb_tmp += xcb_block_len; 2463 xcb_align_to = ALIGNOF(xcb_atom_t); 2464 /* insert padding */ 2465 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2466 xcb_buffer_len += xcb_block_len + xcb_pad; 2467 if (0 != xcb_pad) { 2468 xcb_tmp += xcb_pad; 2469 xcb_pad = 0; 2470 } 2471 xcb_block_len = 0; 2472 /* maps */ 2473 xcb_block_len += xcb_popcount(_aux->mapsPresent) * sizeof(xcb_xkb_indicator_map_t); 2474 xcb_tmp += xcb_block_len; 2475 xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); 2476 /* insert padding */ 2477 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2478 xcb_buffer_len += xcb_block_len + xcb_pad; 2479 if (0 != xcb_pad) { 2480 xcb_tmp += xcb_pad; 2481 xcb_pad = 0; 2482 } 2483 xcb_block_len = 0; 2484 2485 return xcb_buffer_len; 2486 } 2487 2488 2489 /***************************************************************************** 2490 ** 2491 ** xcb_atom_t * xcb_xkb_device_led_info_names 2492 ** 2493 ** @param const xcb_xkb_device_led_info_t *R 2494 ** @returns xcb_atom_t * 2495 ** 2496 *****************************************************************************/ 2497 2498 xcb_atom_t * 2499 xcb_xkb_device_led_info_names (const xcb_xkb_device_led_info_t *R /**< */) 2500 { 2501 return (xcb_atom_t *) (R + 1); 2502 } 2503 2504 2505 /***************************************************************************** 2506 ** 2507 ** int xcb_xkb_device_led_info_names_length 2508 ** 2509 ** @param const xcb_xkb_device_led_info_t *R 2510 ** @returns int 2511 ** 2512 *****************************************************************************/ 2513 2514 int 2515 xcb_xkb_device_led_info_names_length (const xcb_xkb_device_led_info_t *R /**< */) 2516 { 2517 return xcb_popcount(R->namesPresent); 2518 } 2519 2520 2521 /***************************************************************************** 2522 ** 2523 ** xcb_generic_iterator_t xcb_xkb_device_led_info_names_end 2524 ** 2525 ** @param const xcb_xkb_device_led_info_t *R 2526 ** @returns xcb_generic_iterator_t 2527 ** 2528 *****************************************************************************/ 2529 2530 xcb_generic_iterator_t 2531 xcb_xkb_device_led_info_names_end (const xcb_xkb_device_led_info_t *R /**< */) 2532 { 2533 xcb_generic_iterator_t i; 2534 i.data = ((xcb_atom_t *) (R + 1)) + (xcb_popcount(R->namesPresent)); 2535 i.rem = 0; 2536 i.index = (char *) i.data - (char *) R; 2537 return i; 2538 } 2539 2540 2541 /***************************************************************************** 2542 ** 2543 ** xcb_xkb_indicator_map_t * xcb_xkb_device_led_info_maps 2544 ** 2545 ** @param const xcb_xkb_device_led_info_t *R 2546 ** @returns xcb_xkb_indicator_map_t * 2547 ** 2548 *****************************************************************************/ 2549 2550 xcb_xkb_indicator_map_t * 2551 xcb_xkb_device_led_info_maps (const xcb_xkb_device_led_info_t *R /**< */) 2552 { 2553 xcb_generic_iterator_t prev = xcb_xkb_device_led_info_names_end(R); 2554 return (xcb_xkb_indicator_map_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_indicator_map_t, prev.index) + 0); 2555 } 2556 2557 2558 /***************************************************************************** 2559 ** 2560 ** int xcb_xkb_device_led_info_maps_length 2561 ** 2562 ** @param const xcb_xkb_device_led_info_t *R 2563 ** @returns int 2564 ** 2565 *****************************************************************************/ 2566 2567 int 2568 xcb_xkb_device_led_info_maps_length (const xcb_xkb_device_led_info_t *R /**< */) 2569 { 2570 return xcb_popcount(R->mapsPresent); 2571 } 2572 2573 2574 /***************************************************************************** 2575 ** 2576 ** xcb_xkb_indicator_map_iterator_t xcb_xkb_device_led_info_maps_iterator 2577 ** 2578 ** @param const xcb_xkb_device_led_info_t *R 2579 ** @returns xcb_xkb_indicator_map_iterator_t 2580 ** 2581 *****************************************************************************/ 2582 2583 xcb_xkb_indicator_map_iterator_t 2584 xcb_xkb_device_led_info_maps_iterator (const xcb_xkb_device_led_info_t *R /**< */) 2585 { 2586 xcb_xkb_indicator_map_iterator_t i; 2587 xcb_generic_iterator_t prev = xcb_xkb_device_led_info_names_end(R); 2588 i.data = (xcb_xkb_indicator_map_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_indicator_map_t, prev.index)); 2589 i.rem = xcb_popcount(R->mapsPresent); 2590 i.index = (char *) i.data - (char *) R; 2591 return i; 2592 } 2593 2594 2595 /***************************************************************************** 2596 ** 2597 ** void xcb_xkb_device_led_info_next 2598 ** 2599 ** @param xcb_xkb_device_led_info_iterator_t *i 2600 ** @returns void 2601 ** 2602 *****************************************************************************/ 2603 2604 void 2605 xcb_xkb_device_led_info_next (xcb_xkb_device_led_info_iterator_t *i /**< */) 2606 { 2607 xcb_xkb_device_led_info_t *R = i->data; 2608 xcb_generic_iterator_t child; 2609 child.data = (xcb_xkb_device_led_info_t *)(((char *)R) + xcb_xkb_device_led_info_sizeof(R)); 2610 i->index = (char *) child.data - (char *) i->data; 2611 --i->rem; 2612 i->data = (xcb_xkb_device_led_info_t *) child.data; 2613 } 2614 2615 2616 /***************************************************************************** 2617 ** 2618 ** xcb_generic_iterator_t xcb_xkb_device_led_info_end 2619 ** 2620 ** @param xcb_xkb_device_led_info_iterator_t i 2621 ** @returns xcb_generic_iterator_t 2622 ** 2623 *****************************************************************************/ 2624 2625 xcb_generic_iterator_t 2626 xcb_xkb_device_led_info_end (xcb_xkb_device_led_info_iterator_t i /**< */) 2627 { 2628 xcb_generic_iterator_t ret; 2629 while(i.rem > 0) 2630 xcb_xkb_device_led_info_next(&i); 2631 ret.data = i.data; 2632 ret.rem = i.rem; 2633 ret.index = i.index; 2634 return ret; 2635 } 2636 2637 2638 /***************************************************************************** 2639 ** 2640 ** void xcb_xkb_sa_no_action_next 2641 ** 2642 ** @param xcb_xkb_sa_no_action_iterator_t *i 2643 ** @returns void 2644 ** 2645 *****************************************************************************/ 2646 2647 void 2648 xcb_xkb_sa_no_action_next (xcb_xkb_sa_no_action_iterator_t *i /**< */) 2649 { 2650 --i->rem; 2651 ++i->data; 2652 i->index += sizeof(xcb_xkb_sa_no_action_t); 2653 } 2654 2655 2656 /***************************************************************************** 2657 ** 2658 ** xcb_generic_iterator_t xcb_xkb_sa_no_action_end 2659 ** 2660 ** @param xcb_xkb_sa_no_action_iterator_t i 2661 ** @returns xcb_generic_iterator_t 2662 ** 2663 *****************************************************************************/ 2664 2665 xcb_generic_iterator_t 2666 xcb_xkb_sa_no_action_end (xcb_xkb_sa_no_action_iterator_t i /**< */) 2667 { 2668 xcb_generic_iterator_t ret; 2669 ret.data = i.data + i.rem; 2670 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2671 ret.rem = 0; 2672 return ret; 2673 } 2674 2675 2676 /***************************************************************************** 2677 ** 2678 ** void xcb_xkb_sa_set_mods_next 2679 ** 2680 ** @param xcb_xkb_sa_set_mods_iterator_t *i 2681 ** @returns void 2682 ** 2683 *****************************************************************************/ 2684 2685 void 2686 xcb_xkb_sa_set_mods_next (xcb_xkb_sa_set_mods_iterator_t *i /**< */) 2687 { 2688 --i->rem; 2689 ++i->data; 2690 i->index += sizeof(xcb_xkb_sa_set_mods_t); 2691 } 2692 2693 2694 /***************************************************************************** 2695 ** 2696 ** xcb_generic_iterator_t xcb_xkb_sa_set_mods_end 2697 ** 2698 ** @param xcb_xkb_sa_set_mods_iterator_t i 2699 ** @returns xcb_generic_iterator_t 2700 ** 2701 *****************************************************************************/ 2702 2703 xcb_generic_iterator_t 2704 xcb_xkb_sa_set_mods_end (xcb_xkb_sa_set_mods_iterator_t i /**< */) 2705 { 2706 xcb_generic_iterator_t ret; 2707 ret.data = i.data + i.rem; 2708 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2709 ret.rem = 0; 2710 return ret; 2711 } 2712 2713 2714 /***************************************************************************** 2715 ** 2716 ** void xcb_xkb_sa_latch_mods_next 2717 ** 2718 ** @param xcb_xkb_sa_latch_mods_iterator_t *i 2719 ** @returns void 2720 ** 2721 *****************************************************************************/ 2722 2723 void 2724 xcb_xkb_sa_latch_mods_next (xcb_xkb_sa_latch_mods_iterator_t *i /**< */) 2725 { 2726 --i->rem; 2727 ++i->data; 2728 i->index += sizeof(xcb_xkb_sa_latch_mods_t); 2729 } 2730 2731 2732 /***************************************************************************** 2733 ** 2734 ** xcb_generic_iterator_t xcb_xkb_sa_latch_mods_end 2735 ** 2736 ** @param xcb_xkb_sa_latch_mods_iterator_t i 2737 ** @returns xcb_generic_iterator_t 2738 ** 2739 *****************************************************************************/ 2740 2741 xcb_generic_iterator_t 2742 xcb_xkb_sa_latch_mods_end (xcb_xkb_sa_latch_mods_iterator_t i /**< */) 2743 { 2744 xcb_generic_iterator_t ret; 2745 ret.data = i.data + i.rem; 2746 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2747 ret.rem = 0; 2748 return ret; 2749 } 2750 2751 2752 /***************************************************************************** 2753 ** 2754 ** void xcb_xkb_sa_lock_mods_next 2755 ** 2756 ** @param xcb_xkb_sa_lock_mods_iterator_t *i 2757 ** @returns void 2758 ** 2759 *****************************************************************************/ 2760 2761 void 2762 xcb_xkb_sa_lock_mods_next (xcb_xkb_sa_lock_mods_iterator_t *i /**< */) 2763 { 2764 --i->rem; 2765 ++i->data; 2766 i->index += sizeof(xcb_xkb_sa_lock_mods_t); 2767 } 2768 2769 2770 /***************************************************************************** 2771 ** 2772 ** xcb_generic_iterator_t xcb_xkb_sa_lock_mods_end 2773 ** 2774 ** @param xcb_xkb_sa_lock_mods_iterator_t i 2775 ** @returns xcb_generic_iterator_t 2776 ** 2777 *****************************************************************************/ 2778 2779 xcb_generic_iterator_t 2780 xcb_xkb_sa_lock_mods_end (xcb_xkb_sa_lock_mods_iterator_t i /**< */) 2781 { 2782 xcb_generic_iterator_t ret; 2783 ret.data = i.data + i.rem; 2784 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2785 ret.rem = 0; 2786 return ret; 2787 } 2788 2789 2790 /***************************************************************************** 2791 ** 2792 ** void xcb_xkb_sa_set_group_next 2793 ** 2794 ** @param xcb_xkb_sa_set_group_iterator_t *i 2795 ** @returns void 2796 ** 2797 *****************************************************************************/ 2798 2799 void 2800 xcb_xkb_sa_set_group_next (xcb_xkb_sa_set_group_iterator_t *i /**< */) 2801 { 2802 --i->rem; 2803 ++i->data; 2804 i->index += sizeof(xcb_xkb_sa_set_group_t); 2805 } 2806 2807 2808 /***************************************************************************** 2809 ** 2810 ** xcb_generic_iterator_t xcb_xkb_sa_set_group_end 2811 ** 2812 ** @param xcb_xkb_sa_set_group_iterator_t i 2813 ** @returns xcb_generic_iterator_t 2814 ** 2815 *****************************************************************************/ 2816 2817 xcb_generic_iterator_t 2818 xcb_xkb_sa_set_group_end (xcb_xkb_sa_set_group_iterator_t i /**< */) 2819 { 2820 xcb_generic_iterator_t ret; 2821 ret.data = i.data + i.rem; 2822 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2823 ret.rem = 0; 2824 return ret; 2825 } 2826 2827 2828 /***************************************************************************** 2829 ** 2830 ** void xcb_xkb_sa_latch_group_next 2831 ** 2832 ** @param xcb_xkb_sa_latch_group_iterator_t *i 2833 ** @returns void 2834 ** 2835 *****************************************************************************/ 2836 2837 void 2838 xcb_xkb_sa_latch_group_next (xcb_xkb_sa_latch_group_iterator_t *i /**< */) 2839 { 2840 --i->rem; 2841 ++i->data; 2842 i->index += sizeof(xcb_xkb_sa_latch_group_t); 2843 } 2844 2845 2846 /***************************************************************************** 2847 ** 2848 ** xcb_generic_iterator_t xcb_xkb_sa_latch_group_end 2849 ** 2850 ** @param xcb_xkb_sa_latch_group_iterator_t i 2851 ** @returns xcb_generic_iterator_t 2852 ** 2853 *****************************************************************************/ 2854 2855 xcb_generic_iterator_t 2856 xcb_xkb_sa_latch_group_end (xcb_xkb_sa_latch_group_iterator_t i /**< */) 2857 { 2858 xcb_generic_iterator_t ret; 2859 ret.data = i.data + i.rem; 2860 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2861 ret.rem = 0; 2862 return ret; 2863 } 2864 2865 2866 /***************************************************************************** 2867 ** 2868 ** void xcb_xkb_sa_lock_group_next 2869 ** 2870 ** @param xcb_xkb_sa_lock_group_iterator_t *i 2871 ** @returns void 2872 ** 2873 *****************************************************************************/ 2874 2875 void 2876 xcb_xkb_sa_lock_group_next (xcb_xkb_sa_lock_group_iterator_t *i /**< */) 2877 { 2878 --i->rem; 2879 ++i->data; 2880 i->index += sizeof(xcb_xkb_sa_lock_group_t); 2881 } 2882 2883 2884 /***************************************************************************** 2885 ** 2886 ** xcb_generic_iterator_t xcb_xkb_sa_lock_group_end 2887 ** 2888 ** @param xcb_xkb_sa_lock_group_iterator_t i 2889 ** @returns xcb_generic_iterator_t 2890 ** 2891 *****************************************************************************/ 2892 2893 xcb_generic_iterator_t 2894 xcb_xkb_sa_lock_group_end (xcb_xkb_sa_lock_group_iterator_t i /**< */) 2895 { 2896 xcb_generic_iterator_t ret; 2897 ret.data = i.data + i.rem; 2898 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2899 ret.rem = 0; 2900 return ret; 2901 } 2902 2903 2904 /***************************************************************************** 2905 ** 2906 ** void xcb_xkb_sa_move_ptr_next 2907 ** 2908 ** @param xcb_xkb_sa_move_ptr_iterator_t *i 2909 ** @returns void 2910 ** 2911 *****************************************************************************/ 2912 2913 void 2914 xcb_xkb_sa_move_ptr_next (xcb_xkb_sa_move_ptr_iterator_t *i /**< */) 2915 { 2916 --i->rem; 2917 ++i->data; 2918 i->index += sizeof(xcb_xkb_sa_move_ptr_t); 2919 } 2920 2921 2922 /***************************************************************************** 2923 ** 2924 ** xcb_generic_iterator_t xcb_xkb_sa_move_ptr_end 2925 ** 2926 ** @param xcb_xkb_sa_move_ptr_iterator_t i 2927 ** @returns xcb_generic_iterator_t 2928 ** 2929 *****************************************************************************/ 2930 2931 xcb_generic_iterator_t 2932 xcb_xkb_sa_move_ptr_end (xcb_xkb_sa_move_ptr_iterator_t i /**< */) 2933 { 2934 xcb_generic_iterator_t ret; 2935 ret.data = i.data + i.rem; 2936 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2937 ret.rem = 0; 2938 return ret; 2939 } 2940 2941 2942 /***************************************************************************** 2943 ** 2944 ** void xcb_xkb_sa_ptr_btn_next 2945 ** 2946 ** @param xcb_xkb_sa_ptr_btn_iterator_t *i 2947 ** @returns void 2948 ** 2949 *****************************************************************************/ 2950 2951 void 2952 xcb_xkb_sa_ptr_btn_next (xcb_xkb_sa_ptr_btn_iterator_t *i /**< */) 2953 { 2954 --i->rem; 2955 ++i->data; 2956 i->index += sizeof(xcb_xkb_sa_ptr_btn_t); 2957 } 2958 2959 2960 /***************************************************************************** 2961 ** 2962 ** xcb_generic_iterator_t xcb_xkb_sa_ptr_btn_end 2963 ** 2964 ** @param xcb_xkb_sa_ptr_btn_iterator_t i 2965 ** @returns xcb_generic_iterator_t 2966 ** 2967 *****************************************************************************/ 2968 2969 xcb_generic_iterator_t 2970 xcb_xkb_sa_ptr_btn_end (xcb_xkb_sa_ptr_btn_iterator_t i /**< */) 2971 { 2972 xcb_generic_iterator_t ret; 2973 ret.data = i.data + i.rem; 2974 ret.index = i.index + ((char *) ret.data - (char *) i.data); 2975 ret.rem = 0; 2976 return ret; 2977 } 2978 2979 2980 /***************************************************************************** 2981 ** 2982 ** void xcb_xkb_sa_lock_ptr_btn_next 2983 ** 2984 ** @param xcb_xkb_sa_lock_ptr_btn_iterator_t *i 2985 ** @returns void 2986 ** 2987 *****************************************************************************/ 2988 2989 void 2990 xcb_xkb_sa_lock_ptr_btn_next (xcb_xkb_sa_lock_ptr_btn_iterator_t *i /**< */) 2991 { 2992 --i->rem; 2993 ++i->data; 2994 i->index += sizeof(xcb_xkb_sa_lock_ptr_btn_t); 2995 } 2996 2997 2998 /***************************************************************************** 2999 ** 3000 ** xcb_generic_iterator_t xcb_xkb_sa_lock_ptr_btn_end 3001 ** 3002 ** @param xcb_xkb_sa_lock_ptr_btn_iterator_t i 3003 ** @returns xcb_generic_iterator_t 3004 ** 3005 *****************************************************************************/ 3006 3007 xcb_generic_iterator_t 3008 xcb_xkb_sa_lock_ptr_btn_end (xcb_xkb_sa_lock_ptr_btn_iterator_t i /**< */) 3009 { 3010 xcb_generic_iterator_t ret; 3011 ret.data = i.data + i.rem; 3012 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3013 ret.rem = 0; 3014 return ret; 3015 } 3016 3017 3018 /***************************************************************************** 3019 ** 3020 ** void xcb_xkb_sa_set_ptr_dflt_next 3021 ** 3022 ** @param xcb_xkb_sa_set_ptr_dflt_iterator_t *i 3023 ** @returns void 3024 ** 3025 *****************************************************************************/ 3026 3027 void 3028 xcb_xkb_sa_set_ptr_dflt_next (xcb_xkb_sa_set_ptr_dflt_iterator_t *i /**< */) 3029 { 3030 --i->rem; 3031 ++i->data; 3032 i->index += sizeof(xcb_xkb_sa_set_ptr_dflt_t); 3033 } 3034 3035 3036 /***************************************************************************** 3037 ** 3038 ** xcb_generic_iterator_t xcb_xkb_sa_set_ptr_dflt_end 3039 ** 3040 ** @param xcb_xkb_sa_set_ptr_dflt_iterator_t i 3041 ** @returns xcb_generic_iterator_t 3042 ** 3043 *****************************************************************************/ 3044 3045 xcb_generic_iterator_t 3046 xcb_xkb_sa_set_ptr_dflt_end (xcb_xkb_sa_set_ptr_dflt_iterator_t i /**< */) 3047 { 3048 xcb_generic_iterator_t ret; 3049 ret.data = i.data + i.rem; 3050 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3051 ret.rem = 0; 3052 return ret; 3053 } 3054 3055 3056 /***************************************************************************** 3057 ** 3058 ** void xcb_xkb_sa_iso_lock_next 3059 ** 3060 ** @param xcb_xkb_sa_iso_lock_iterator_t *i 3061 ** @returns void 3062 ** 3063 *****************************************************************************/ 3064 3065 void 3066 xcb_xkb_sa_iso_lock_next (xcb_xkb_sa_iso_lock_iterator_t *i /**< */) 3067 { 3068 --i->rem; 3069 ++i->data; 3070 i->index += sizeof(xcb_xkb_sa_iso_lock_t); 3071 } 3072 3073 3074 /***************************************************************************** 3075 ** 3076 ** xcb_generic_iterator_t xcb_xkb_sa_iso_lock_end 3077 ** 3078 ** @param xcb_xkb_sa_iso_lock_iterator_t i 3079 ** @returns xcb_generic_iterator_t 3080 ** 3081 *****************************************************************************/ 3082 3083 xcb_generic_iterator_t 3084 xcb_xkb_sa_iso_lock_end (xcb_xkb_sa_iso_lock_iterator_t i /**< */) 3085 { 3086 xcb_generic_iterator_t ret; 3087 ret.data = i.data + i.rem; 3088 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3089 ret.rem = 0; 3090 return ret; 3091 } 3092 3093 3094 /***************************************************************************** 3095 ** 3096 ** void xcb_xkb_sa_terminate_next 3097 ** 3098 ** @param xcb_xkb_sa_terminate_iterator_t *i 3099 ** @returns void 3100 ** 3101 *****************************************************************************/ 3102 3103 void 3104 xcb_xkb_sa_terminate_next (xcb_xkb_sa_terminate_iterator_t *i /**< */) 3105 { 3106 --i->rem; 3107 ++i->data; 3108 i->index += sizeof(xcb_xkb_sa_terminate_t); 3109 } 3110 3111 3112 /***************************************************************************** 3113 ** 3114 ** xcb_generic_iterator_t xcb_xkb_sa_terminate_end 3115 ** 3116 ** @param xcb_xkb_sa_terminate_iterator_t i 3117 ** @returns xcb_generic_iterator_t 3118 ** 3119 *****************************************************************************/ 3120 3121 xcb_generic_iterator_t 3122 xcb_xkb_sa_terminate_end (xcb_xkb_sa_terminate_iterator_t i /**< */) 3123 { 3124 xcb_generic_iterator_t ret; 3125 ret.data = i.data + i.rem; 3126 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3127 ret.rem = 0; 3128 return ret; 3129 } 3130 3131 3132 /***************************************************************************** 3133 ** 3134 ** void xcb_xkb_sa_switch_screen_next 3135 ** 3136 ** @param xcb_xkb_sa_switch_screen_iterator_t *i 3137 ** @returns void 3138 ** 3139 *****************************************************************************/ 3140 3141 void 3142 xcb_xkb_sa_switch_screen_next (xcb_xkb_sa_switch_screen_iterator_t *i /**< */) 3143 { 3144 --i->rem; 3145 ++i->data; 3146 i->index += sizeof(xcb_xkb_sa_switch_screen_t); 3147 } 3148 3149 3150 /***************************************************************************** 3151 ** 3152 ** xcb_generic_iterator_t xcb_xkb_sa_switch_screen_end 3153 ** 3154 ** @param xcb_xkb_sa_switch_screen_iterator_t i 3155 ** @returns xcb_generic_iterator_t 3156 ** 3157 *****************************************************************************/ 3158 3159 xcb_generic_iterator_t 3160 xcb_xkb_sa_switch_screen_end (xcb_xkb_sa_switch_screen_iterator_t i /**< */) 3161 { 3162 xcb_generic_iterator_t ret; 3163 ret.data = i.data + i.rem; 3164 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3165 ret.rem = 0; 3166 return ret; 3167 } 3168 3169 3170 /***************************************************************************** 3171 ** 3172 ** void xcb_xkb_sa_set_controls_next 3173 ** 3174 ** @param xcb_xkb_sa_set_controls_iterator_t *i 3175 ** @returns void 3176 ** 3177 *****************************************************************************/ 3178 3179 void 3180 xcb_xkb_sa_set_controls_next (xcb_xkb_sa_set_controls_iterator_t *i /**< */) 3181 { 3182 --i->rem; 3183 ++i->data; 3184 i->index += sizeof(xcb_xkb_sa_set_controls_t); 3185 } 3186 3187 3188 /***************************************************************************** 3189 ** 3190 ** xcb_generic_iterator_t xcb_xkb_sa_set_controls_end 3191 ** 3192 ** @param xcb_xkb_sa_set_controls_iterator_t i 3193 ** @returns xcb_generic_iterator_t 3194 ** 3195 *****************************************************************************/ 3196 3197 xcb_generic_iterator_t 3198 xcb_xkb_sa_set_controls_end (xcb_xkb_sa_set_controls_iterator_t i /**< */) 3199 { 3200 xcb_generic_iterator_t ret; 3201 ret.data = i.data + i.rem; 3202 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3203 ret.rem = 0; 3204 return ret; 3205 } 3206 3207 3208 /***************************************************************************** 3209 ** 3210 ** void xcb_xkb_sa_lock_controls_next 3211 ** 3212 ** @param xcb_xkb_sa_lock_controls_iterator_t *i 3213 ** @returns void 3214 ** 3215 *****************************************************************************/ 3216 3217 void 3218 xcb_xkb_sa_lock_controls_next (xcb_xkb_sa_lock_controls_iterator_t *i /**< */) 3219 { 3220 --i->rem; 3221 ++i->data; 3222 i->index += sizeof(xcb_xkb_sa_lock_controls_t); 3223 } 3224 3225 3226 /***************************************************************************** 3227 ** 3228 ** xcb_generic_iterator_t xcb_xkb_sa_lock_controls_end 3229 ** 3230 ** @param xcb_xkb_sa_lock_controls_iterator_t i 3231 ** @returns xcb_generic_iterator_t 3232 ** 3233 *****************************************************************************/ 3234 3235 xcb_generic_iterator_t 3236 xcb_xkb_sa_lock_controls_end (xcb_xkb_sa_lock_controls_iterator_t i /**< */) 3237 { 3238 xcb_generic_iterator_t ret; 3239 ret.data = i.data + i.rem; 3240 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3241 ret.rem = 0; 3242 return ret; 3243 } 3244 3245 3246 /***************************************************************************** 3247 ** 3248 ** void xcb_xkb_sa_action_message_next 3249 ** 3250 ** @param xcb_xkb_sa_action_message_iterator_t *i 3251 ** @returns void 3252 ** 3253 *****************************************************************************/ 3254 3255 void 3256 xcb_xkb_sa_action_message_next (xcb_xkb_sa_action_message_iterator_t *i /**< */) 3257 { 3258 --i->rem; 3259 ++i->data; 3260 i->index += sizeof(xcb_xkb_sa_action_message_t); 3261 } 3262 3263 3264 /***************************************************************************** 3265 ** 3266 ** xcb_generic_iterator_t xcb_xkb_sa_action_message_end 3267 ** 3268 ** @param xcb_xkb_sa_action_message_iterator_t i 3269 ** @returns xcb_generic_iterator_t 3270 ** 3271 *****************************************************************************/ 3272 3273 xcb_generic_iterator_t 3274 xcb_xkb_sa_action_message_end (xcb_xkb_sa_action_message_iterator_t i /**< */) 3275 { 3276 xcb_generic_iterator_t ret; 3277 ret.data = i.data + i.rem; 3278 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3279 ret.rem = 0; 3280 return ret; 3281 } 3282 3283 3284 /***************************************************************************** 3285 ** 3286 ** void xcb_xkb_sa_redirect_key_next 3287 ** 3288 ** @param xcb_xkb_sa_redirect_key_iterator_t *i 3289 ** @returns void 3290 ** 3291 *****************************************************************************/ 3292 3293 void 3294 xcb_xkb_sa_redirect_key_next (xcb_xkb_sa_redirect_key_iterator_t *i /**< */) 3295 { 3296 --i->rem; 3297 ++i->data; 3298 i->index += sizeof(xcb_xkb_sa_redirect_key_t); 3299 } 3300 3301 3302 /***************************************************************************** 3303 ** 3304 ** xcb_generic_iterator_t xcb_xkb_sa_redirect_key_end 3305 ** 3306 ** @param xcb_xkb_sa_redirect_key_iterator_t i 3307 ** @returns xcb_generic_iterator_t 3308 ** 3309 *****************************************************************************/ 3310 3311 xcb_generic_iterator_t 3312 xcb_xkb_sa_redirect_key_end (xcb_xkb_sa_redirect_key_iterator_t i /**< */) 3313 { 3314 xcb_generic_iterator_t ret; 3315 ret.data = i.data + i.rem; 3316 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3317 ret.rem = 0; 3318 return ret; 3319 } 3320 3321 3322 /***************************************************************************** 3323 ** 3324 ** void xcb_xkb_sa_device_btn_next 3325 ** 3326 ** @param xcb_xkb_sa_device_btn_iterator_t *i 3327 ** @returns void 3328 ** 3329 *****************************************************************************/ 3330 3331 void 3332 xcb_xkb_sa_device_btn_next (xcb_xkb_sa_device_btn_iterator_t *i /**< */) 3333 { 3334 --i->rem; 3335 ++i->data; 3336 i->index += sizeof(xcb_xkb_sa_device_btn_t); 3337 } 3338 3339 3340 /***************************************************************************** 3341 ** 3342 ** xcb_generic_iterator_t xcb_xkb_sa_device_btn_end 3343 ** 3344 ** @param xcb_xkb_sa_device_btn_iterator_t i 3345 ** @returns xcb_generic_iterator_t 3346 ** 3347 *****************************************************************************/ 3348 3349 xcb_generic_iterator_t 3350 xcb_xkb_sa_device_btn_end (xcb_xkb_sa_device_btn_iterator_t i /**< */) 3351 { 3352 xcb_generic_iterator_t ret; 3353 ret.data = i.data + i.rem; 3354 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3355 ret.rem = 0; 3356 return ret; 3357 } 3358 3359 3360 /***************************************************************************** 3361 ** 3362 ** void xcb_xkb_sa_lock_device_btn_next 3363 ** 3364 ** @param xcb_xkb_sa_lock_device_btn_iterator_t *i 3365 ** @returns void 3366 ** 3367 *****************************************************************************/ 3368 3369 void 3370 xcb_xkb_sa_lock_device_btn_next (xcb_xkb_sa_lock_device_btn_iterator_t *i /**< */) 3371 { 3372 --i->rem; 3373 ++i->data; 3374 i->index += sizeof(xcb_xkb_sa_lock_device_btn_t); 3375 } 3376 3377 3378 /***************************************************************************** 3379 ** 3380 ** xcb_generic_iterator_t xcb_xkb_sa_lock_device_btn_end 3381 ** 3382 ** @param xcb_xkb_sa_lock_device_btn_iterator_t i 3383 ** @returns xcb_generic_iterator_t 3384 ** 3385 *****************************************************************************/ 3386 3387 xcb_generic_iterator_t 3388 xcb_xkb_sa_lock_device_btn_end (xcb_xkb_sa_lock_device_btn_iterator_t i /**< */) 3389 { 3390 xcb_generic_iterator_t ret; 3391 ret.data = i.data + i.rem; 3392 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3393 ret.rem = 0; 3394 return ret; 3395 } 3396 3397 3398 /***************************************************************************** 3399 ** 3400 ** void xcb_xkb_sa_device_valuator_next 3401 ** 3402 ** @param xcb_xkb_sa_device_valuator_iterator_t *i 3403 ** @returns void 3404 ** 3405 *****************************************************************************/ 3406 3407 void 3408 xcb_xkb_sa_device_valuator_next (xcb_xkb_sa_device_valuator_iterator_t *i /**< */) 3409 { 3410 --i->rem; 3411 ++i->data; 3412 i->index += sizeof(xcb_xkb_sa_device_valuator_t); 3413 } 3414 3415 3416 /***************************************************************************** 3417 ** 3418 ** xcb_generic_iterator_t xcb_xkb_sa_device_valuator_end 3419 ** 3420 ** @param xcb_xkb_sa_device_valuator_iterator_t i 3421 ** @returns xcb_generic_iterator_t 3422 ** 3423 *****************************************************************************/ 3424 3425 xcb_generic_iterator_t 3426 xcb_xkb_sa_device_valuator_end (xcb_xkb_sa_device_valuator_iterator_t i /**< */) 3427 { 3428 xcb_generic_iterator_t ret; 3429 ret.data = i.data + i.rem; 3430 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3431 ret.rem = 0; 3432 return ret; 3433 } 3434 3435 3436 /***************************************************************************** 3437 ** 3438 ** void xcb_xkb_si_action_next 3439 ** 3440 ** @param xcb_xkb_si_action_iterator_t *i 3441 ** @returns void 3442 ** 3443 *****************************************************************************/ 3444 3445 void 3446 xcb_xkb_si_action_next (xcb_xkb_si_action_iterator_t *i /**< */) 3447 { 3448 --i->rem; 3449 ++i->data; 3450 i->index += sizeof(xcb_xkb_si_action_t); 3451 } 3452 3453 3454 /***************************************************************************** 3455 ** 3456 ** xcb_generic_iterator_t xcb_xkb_si_action_end 3457 ** 3458 ** @param xcb_xkb_si_action_iterator_t i 3459 ** @returns xcb_generic_iterator_t 3460 ** 3461 *****************************************************************************/ 3462 3463 xcb_generic_iterator_t 3464 xcb_xkb_si_action_end (xcb_xkb_si_action_iterator_t i /**< */) 3465 { 3466 xcb_generic_iterator_t ret; 3467 ret.data = i.data + i.rem; 3468 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3469 ret.rem = 0; 3470 return ret; 3471 } 3472 3473 3474 /***************************************************************************** 3475 ** 3476 ** void xcb_xkb_sym_interpret_next 3477 ** 3478 ** @param xcb_xkb_sym_interpret_iterator_t *i 3479 ** @returns void 3480 ** 3481 *****************************************************************************/ 3482 3483 void 3484 xcb_xkb_sym_interpret_next (xcb_xkb_sym_interpret_iterator_t *i /**< */) 3485 { 3486 --i->rem; 3487 ++i->data; 3488 i->index += sizeof(xcb_xkb_sym_interpret_t); 3489 } 3490 3491 3492 /***************************************************************************** 3493 ** 3494 ** xcb_generic_iterator_t xcb_xkb_sym_interpret_end 3495 ** 3496 ** @param xcb_xkb_sym_interpret_iterator_t i 3497 ** @returns xcb_generic_iterator_t 3498 ** 3499 *****************************************************************************/ 3500 3501 xcb_generic_iterator_t 3502 xcb_xkb_sym_interpret_end (xcb_xkb_sym_interpret_iterator_t i /**< */) 3503 { 3504 xcb_generic_iterator_t ret; 3505 ret.data = i.data + i.rem; 3506 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3507 ret.rem = 0; 3508 return ret; 3509 } 3510 3511 3512 /***************************************************************************** 3513 ** 3514 ** void xcb_xkb_action_next 3515 ** 3516 ** @param xcb_xkb_action_iterator_t *i 3517 ** @returns void 3518 ** 3519 *****************************************************************************/ 3520 3521 void 3522 xcb_xkb_action_next (xcb_xkb_action_iterator_t *i /**< */) 3523 { 3524 --i->rem; 3525 ++i->data; 3526 i->index += sizeof(xcb_xkb_action_t); 3527 } 3528 3529 3530 /***************************************************************************** 3531 ** 3532 ** xcb_generic_iterator_t xcb_xkb_action_end 3533 ** 3534 ** @param xcb_xkb_action_iterator_t i 3535 ** @returns xcb_generic_iterator_t 3536 ** 3537 *****************************************************************************/ 3538 3539 xcb_generic_iterator_t 3540 xcb_xkb_action_end (xcb_xkb_action_iterator_t i /**< */) 3541 { 3542 xcb_generic_iterator_t ret; 3543 ret.data = i.data + i.rem; 3544 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3545 ret.rem = 0; 3546 return ret; 3547 } 3548 3549 3550 /***************************************************************************** 3551 ** 3552 ** xcb_xkb_use_extension_cookie_t xcb_xkb_use_extension 3553 ** 3554 ** @param xcb_connection_t *c 3555 ** @param uint16_t wantedMajor 3556 ** @param uint16_t wantedMinor 3557 ** @returns xcb_xkb_use_extension_cookie_t 3558 ** 3559 *****************************************************************************/ 3560 3561 xcb_xkb_use_extension_cookie_t 3562 xcb_xkb_use_extension (xcb_connection_t *c /**< */, 3563 uint16_t wantedMajor /**< */, 3564 uint16_t wantedMinor /**< */) 3565 { 3566 static const xcb_protocol_request_t xcb_req = { 3567 /* count */ 2, 3568 /* ext */ &xcb_xkb_id, 3569 /* opcode */ XCB_XKB_USE_EXTENSION, 3570 /* isvoid */ 0 3571 }; 3572 3573 struct iovec xcb_parts[4]; 3574 xcb_xkb_use_extension_cookie_t xcb_ret; 3575 xcb_xkb_use_extension_request_t xcb_out; 3576 3577 xcb_out.wantedMajor = wantedMajor; 3578 xcb_out.wantedMinor = wantedMinor; 3579 3580 xcb_parts[2].iov_base = (char *) &xcb_out; 3581 xcb_parts[2].iov_len = sizeof(xcb_out); 3582 xcb_parts[3].iov_base = 0; 3583 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3584 3585 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3586 return xcb_ret; 3587 } 3588 3589 3590 /***************************************************************************** 3591 ** 3592 ** xcb_xkb_use_extension_cookie_t xcb_xkb_use_extension_unchecked 3593 ** 3594 ** @param xcb_connection_t *c 3595 ** @param uint16_t wantedMajor 3596 ** @param uint16_t wantedMinor 3597 ** @returns xcb_xkb_use_extension_cookie_t 3598 ** 3599 *****************************************************************************/ 3600 3601 xcb_xkb_use_extension_cookie_t 3602 xcb_xkb_use_extension_unchecked (xcb_connection_t *c /**< */, 3603 uint16_t wantedMajor /**< */, 3604 uint16_t wantedMinor /**< */) 3605 { 3606 static const xcb_protocol_request_t xcb_req = { 3607 /* count */ 2, 3608 /* ext */ &xcb_xkb_id, 3609 /* opcode */ XCB_XKB_USE_EXTENSION, 3610 /* isvoid */ 0 3611 }; 3612 3613 struct iovec xcb_parts[4]; 3614 xcb_xkb_use_extension_cookie_t xcb_ret; 3615 xcb_xkb_use_extension_request_t xcb_out; 3616 3617 xcb_out.wantedMajor = wantedMajor; 3618 xcb_out.wantedMinor = wantedMinor; 3619 3620 xcb_parts[2].iov_base = (char *) &xcb_out; 3621 xcb_parts[2].iov_len = sizeof(xcb_out); 3622 xcb_parts[3].iov_base = 0; 3623 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3624 3625 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3626 return xcb_ret; 3627 } 3628 3629 3630 /***************************************************************************** 3631 ** 3632 ** xcb_xkb_use_extension_reply_t * xcb_xkb_use_extension_reply 3633 ** 3634 ** @param xcb_connection_t *c 3635 ** @param xcb_xkb_use_extension_cookie_t cookie 3636 ** @param xcb_generic_error_t **e 3637 ** @returns xcb_xkb_use_extension_reply_t * 3638 ** 3639 *****************************************************************************/ 3640 3641 xcb_xkb_use_extension_reply_t * 3642 xcb_xkb_use_extension_reply (xcb_connection_t *c /**< */, 3643 xcb_xkb_use_extension_cookie_t cookie /**< */, 3644 xcb_generic_error_t **e /**< */) 3645 { 3646 return (xcb_xkb_use_extension_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 3647 } 3648 3649 int 3650 xcb_xkb_select_events_details_serialize (void **_buffer /**< */, 3651 uint16_t affectWhich /**< */, 3652 uint16_t clear /**< */, 3653 uint16_t selectAll /**< */, 3654 const xcb_xkb_select_events_details_t *_aux /**< */) 3655 { 3656 char *xcb_out = *_buffer; 3657 unsigned int xcb_buffer_len = 0; 3658 unsigned int xcb_align_to = 0; 3659 3660 unsigned int xcb_pad = 0; 3661 char xcb_pad0[3] = {0, 0, 0}; 3662 struct iovec xcb_parts[23]; 3663 unsigned int xcb_parts_idx = 0; 3664 unsigned int xcb_block_len = 0; 3665 unsigned int i; 3666 char *xcb_tmp; 3667 3668 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY) { 3669 /* xcb_xkb_select_events_details_t.affectNewKeyboard */ 3670 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectNewKeyboard; 3671 xcb_block_len += sizeof(uint16_t); 3672 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3673 xcb_parts_idx++; 3674 xcb_align_to = ALIGNOF(uint16_t); 3675 /* xcb_xkb_select_events_details_t.newKeyboardDetails */ 3676 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->newKeyboardDetails; 3677 xcb_block_len += sizeof(uint16_t); 3678 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3679 xcb_parts_idx++; 3680 xcb_align_to = ALIGNOF(uint16_t); 3681 } 3682 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_STATE_NOTIFY) { 3683 /* xcb_xkb_select_events_details_t.affectState */ 3684 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectState; 3685 xcb_block_len += sizeof(uint16_t); 3686 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3687 xcb_parts_idx++; 3688 xcb_align_to = ALIGNOF(uint16_t); 3689 /* xcb_xkb_select_events_details_t.stateDetails */ 3690 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->stateDetails; 3691 xcb_block_len += sizeof(uint16_t); 3692 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3693 xcb_parts_idx++; 3694 xcb_align_to = ALIGNOF(uint16_t); 3695 } 3696 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY) { 3697 /* xcb_xkb_select_events_details_t.affectCtrls */ 3698 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectCtrls; 3699 xcb_block_len += sizeof(uint32_t); 3700 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 3701 xcb_parts_idx++; 3702 xcb_align_to = ALIGNOF(uint32_t); 3703 /* xcb_xkb_select_events_details_t.ctrlDetails */ 3704 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->ctrlDetails; 3705 xcb_block_len += sizeof(uint32_t); 3706 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 3707 xcb_parts_idx++; 3708 xcb_align_to = ALIGNOF(uint32_t); 3709 } 3710 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY) { 3711 /* xcb_xkb_select_events_details_t.affectIndicatorState */ 3712 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectIndicatorState; 3713 xcb_block_len += sizeof(uint32_t); 3714 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 3715 xcb_parts_idx++; 3716 xcb_align_to = ALIGNOF(uint32_t); 3717 /* xcb_xkb_select_events_details_t.indicatorStateDetails */ 3718 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicatorStateDetails; 3719 xcb_block_len += sizeof(uint32_t); 3720 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 3721 xcb_parts_idx++; 3722 xcb_align_to = ALIGNOF(uint32_t); 3723 } 3724 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY) { 3725 /* xcb_xkb_select_events_details_t.affectIndicatorMap */ 3726 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectIndicatorMap; 3727 xcb_block_len += sizeof(uint32_t); 3728 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 3729 xcb_parts_idx++; 3730 xcb_align_to = ALIGNOF(uint32_t); 3731 /* xcb_xkb_select_events_details_t.indicatorMapDetails */ 3732 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicatorMapDetails; 3733 xcb_block_len += sizeof(uint32_t); 3734 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 3735 xcb_parts_idx++; 3736 xcb_align_to = ALIGNOF(uint32_t); 3737 } 3738 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NAMES_NOTIFY) { 3739 /* xcb_xkb_select_events_details_t.affectNames */ 3740 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectNames; 3741 xcb_block_len += sizeof(uint16_t); 3742 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3743 xcb_parts_idx++; 3744 xcb_align_to = ALIGNOF(uint16_t); 3745 /* xcb_xkb_select_events_details_t.namesDetails */ 3746 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->namesDetails; 3747 xcb_block_len += sizeof(uint16_t); 3748 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3749 xcb_parts_idx++; 3750 xcb_align_to = ALIGNOF(uint16_t); 3751 } 3752 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY) { 3753 /* xcb_xkb_select_events_details_t.affectCompat */ 3754 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectCompat; 3755 xcb_block_len += sizeof(uint8_t); 3756 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 3757 xcb_parts_idx++; 3758 xcb_align_to = ALIGNOF(uint8_t); 3759 /* xcb_xkb_select_events_details_t.compatDetails */ 3760 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatDetails; 3761 xcb_block_len += sizeof(uint8_t); 3762 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 3763 xcb_parts_idx++; 3764 xcb_align_to = ALIGNOF(uint8_t); 3765 } 3766 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_BELL_NOTIFY) { 3767 /* xcb_xkb_select_events_details_t.affectBell */ 3768 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectBell; 3769 xcb_block_len += sizeof(uint8_t); 3770 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 3771 xcb_parts_idx++; 3772 xcb_align_to = ALIGNOF(uint8_t); 3773 /* xcb_xkb_select_events_details_t.bellDetails */ 3774 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->bellDetails; 3775 xcb_block_len += sizeof(uint8_t); 3776 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 3777 xcb_parts_idx++; 3778 xcb_align_to = ALIGNOF(uint8_t); 3779 } 3780 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACTION_MESSAGE) { 3781 /* xcb_xkb_select_events_details_t.affectMsgDetails */ 3782 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectMsgDetails; 3783 xcb_block_len += sizeof(uint8_t); 3784 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 3785 xcb_parts_idx++; 3786 xcb_align_to = ALIGNOF(uint8_t); 3787 /* xcb_xkb_select_events_details_t.msgDetails */ 3788 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->msgDetails; 3789 xcb_block_len += sizeof(uint8_t); 3790 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 3791 xcb_parts_idx++; 3792 xcb_align_to = ALIGNOF(uint8_t); 3793 } 3794 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY) { 3795 /* xcb_xkb_select_events_details_t.affectAccessX */ 3796 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectAccessX; 3797 xcb_block_len += sizeof(uint16_t); 3798 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3799 xcb_parts_idx++; 3800 xcb_align_to = ALIGNOF(uint16_t); 3801 /* xcb_xkb_select_events_details_t.accessXDetails */ 3802 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->accessXDetails; 3803 xcb_block_len += sizeof(uint16_t); 3804 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3805 xcb_parts_idx++; 3806 xcb_align_to = ALIGNOF(uint16_t); 3807 } 3808 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY) { 3809 /* xcb_xkb_select_events_details_t.affectExtDev */ 3810 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectExtDev; 3811 xcb_block_len += sizeof(uint16_t); 3812 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3813 xcb_parts_idx++; 3814 xcb_align_to = ALIGNOF(uint16_t); 3815 /* xcb_xkb_select_events_details_t.extdevDetails */ 3816 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->extdevDetails; 3817 xcb_block_len += sizeof(uint16_t); 3818 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 3819 xcb_parts_idx++; 3820 xcb_align_to = ALIGNOF(uint16_t); 3821 } 3822 /* insert padding */ 3823 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3824 xcb_buffer_len += xcb_block_len + xcb_pad; 3825 if (0 != xcb_pad) { 3826 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 3827 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 3828 xcb_parts_idx++; 3829 xcb_pad = 0; 3830 } 3831 xcb_block_len = 0; 3832 3833 if (NULL == xcb_out) { 3834 /* allocate memory */ 3835 xcb_out = malloc(xcb_buffer_len); 3836 *_buffer = xcb_out; 3837 } 3838 3839 xcb_tmp = xcb_out; 3840 for(i=0; i<xcb_parts_idx; i++) { 3841 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 3842 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 3843 if (0 != xcb_parts[i].iov_len) 3844 xcb_tmp += xcb_parts[i].iov_len; 3845 } 3846 3847 return xcb_buffer_len; 3848 } 3849 3850 int 3851 xcb_xkb_select_events_details_unpack (const void *_buffer /**< */, 3852 uint16_t affectWhich /**< */, 3853 uint16_t clear /**< */, 3854 uint16_t selectAll /**< */, 3855 xcb_xkb_select_events_details_t *_aux /**< */) 3856 { 3857 char *xcb_tmp = (char *)_buffer; 3858 unsigned int xcb_buffer_len = 0; 3859 unsigned int xcb_block_len = 0; 3860 unsigned int xcb_pad = 0; 3861 unsigned int xcb_align_to = 0; 3862 3863 3864 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY) { 3865 /* xcb_xkb_select_events_details_t.affectNewKeyboard */ 3866 _aux->affectNewKeyboard = *(uint16_t *)xcb_tmp; 3867 xcb_block_len += sizeof(uint16_t); 3868 xcb_tmp += sizeof(uint16_t); 3869 xcb_align_to = ALIGNOF(uint16_t); 3870 /* xcb_xkb_select_events_details_t.newKeyboardDetails */ 3871 _aux->newKeyboardDetails = *(uint16_t *)xcb_tmp; 3872 xcb_block_len += sizeof(uint16_t); 3873 xcb_tmp += sizeof(uint16_t); 3874 xcb_align_to = ALIGNOF(uint16_t); 3875 } 3876 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_STATE_NOTIFY) { 3877 /* xcb_xkb_select_events_details_t.affectState */ 3878 _aux->affectState = *(uint16_t *)xcb_tmp; 3879 xcb_block_len += sizeof(uint16_t); 3880 xcb_tmp += sizeof(uint16_t); 3881 xcb_align_to = ALIGNOF(uint16_t); 3882 /* xcb_xkb_select_events_details_t.stateDetails */ 3883 _aux->stateDetails = *(uint16_t *)xcb_tmp; 3884 xcb_block_len += sizeof(uint16_t); 3885 xcb_tmp += sizeof(uint16_t); 3886 xcb_align_to = ALIGNOF(uint16_t); 3887 } 3888 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY) { 3889 /* xcb_xkb_select_events_details_t.affectCtrls */ 3890 _aux->affectCtrls = *(uint32_t *)xcb_tmp; 3891 xcb_block_len += sizeof(uint32_t); 3892 xcb_tmp += sizeof(uint32_t); 3893 xcb_align_to = ALIGNOF(uint32_t); 3894 /* xcb_xkb_select_events_details_t.ctrlDetails */ 3895 _aux->ctrlDetails = *(uint32_t *)xcb_tmp; 3896 xcb_block_len += sizeof(uint32_t); 3897 xcb_tmp += sizeof(uint32_t); 3898 xcb_align_to = ALIGNOF(uint32_t); 3899 } 3900 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY) { 3901 /* xcb_xkb_select_events_details_t.affectIndicatorState */ 3902 _aux->affectIndicatorState = *(uint32_t *)xcb_tmp; 3903 xcb_block_len += sizeof(uint32_t); 3904 xcb_tmp += sizeof(uint32_t); 3905 xcb_align_to = ALIGNOF(uint32_t); 3906 /* xcb_xkb_select_events_details_t.indicatorStateDetails */ 3907 _aux->indicatorStateDetails = *(uint32_t *)xcb_tmp; 3908 xcb_block_len += sizeof(uint32_t); 3909 xcb_tmp += sizeof(uint32_t); 3910 xcb_align_to = ALIGNOF(uint32_t); 3911 } 3912 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY) { 3913 /* xcb_xkb_select_events_details_t.affectIndicatorMap */ 3914 _aux->affectIndicatorMap = *(uint32_t *)xcb_tmp; 3915 xcb_block_len += sizeof(uint32_t); 3916 xcb_tmp += sizeof(uint32_t); 3917 xcb_align_to = ALIGNOF(uint32_t); 3918 /* xcb_xkb_select_events_details_t.indicatorMapDetails */ 3919 _aux->indicatorMapDetails = *(uint32_t *)xcb_tmp; 3920 xcb_block_len += sizeof(uint32_t); 3921 xcb_tmp += sizeof(uint32_t); 3922 xcb_align_to = ALIGNOF(uint32_t); 3923 } 3924 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NAMES_NOTIFY) { 3925 /* xcb_xkb_select_events_details_t.affectNames */ 3926 _aux->affectNames = *(uint16_t *)xcb_tmp; 3927 xcb_block_len += sizeof(uint16_t); 3928 xcb_tmp += sizeof(uint16_t); 3929 xcb_align_to = ALIGNOF(uint16_t); 3930 /* xcb_xkb_select_events_details_t.namesDetails */ 3931 _aux->namesDetails = *(uint16_t *)xcb_tmp; 3932 xcb_block_len += sizeof(uint16_t); 3933 xcb_tmp += sizeof(uint16_t); 3934 xcb_align_to = ALIGNOF(uint16_t); 3935 } 3936 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY) { 3937 /* xcb_xkb_select_events_details_t.affectCompat */ 3938 _aux->affectCompat = *(uint8_t *)xcb_tmp; 3939 xcb_block_len += sizeof(uint8_t); 3940 xcb_tmp += sizeof(uint8_t); 3941 xcb_align_to = ALIGNOF(uint8_t); 3942 /* xcb_xkb_select_events_details_t.compatDetails */ 3943 _aux->compatDetails = *(uint8_t *)xcb_tmp; 3944 xcb_block_len += sizeof(uint8_t); 3945 xcb_tmp += sizeof(uint8_t); 3946 xcb_align_to = ALIGNOF(uint8_t); 3947 } 3948 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_BELL_NOTIFY) { 3949 /* xcb_xkb_select_events_details_t.affectBell */ 3950 _aux->affectBell = *(uint8_t *)xcb_tmp; 3951 xcb_block_len += sizeof(uint8_t); 3952 xcb_tmp += sizeof(uint8_t); 3953 xcb_align_to = ALIGNOF(uint8_t); 3954 /* xcb_xkb_select_events_details_t.bellDetails */ 3955 _aux->bellDetails = *(uint8_t *)xcb_tmp; 3956 xcb_block_len += sizeof(uint8_t); 3957 xcb_tmp += sizeof(uint8_t); 3958 xcb_align_to = ALIGNOF(uint8_t); 3959 } 3960 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACTION_MESSAGE) { 3961 /* xcb_xkb_select_events_details_t.affectMsgDetails */ 3962 _aux->affectMsgDetails = *(uint8_t *)xcb_tmp; 3963 xcb_block_len += sizeof(uint8_t); 3964 xcb_tmp += sizeof(uint8_t); 3965 xcb_align_to = ALIGNOF(uint8_t); 3966 /* xcb_xkb_select_events_details_t.msgDetails */ 3967 _aux->msgDetails = *(uint8_t *)xcb_tmp; 3968 xcb_block_len += sizeof(uint8_t); 3969 xcb_tmp += sizeof(uint8_t); 3970 xcb_align_to = ALIGNOF(uint8_t); 3971 } 3972 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY) { 3973 /* xcb_xkb_select_events_details_t.affectAccessX */ 3974 _aux->affectAccessX = *(uint16_t *)xcb_tmp; 3975 xcb_block_len += sizeof(uint16_t); 3976 xcb_tmp += sizeof(uint16_t); 3977 xcb_align_to = ALIGNOF(uint16_t); 3978 /* xcb_xkb_select_events_details_t.accessXDetails */ 3979 _aux->accessXDetails = *(uint16_t *)xcb_tmp; 3980 xcb_block_len += sizeof(uint16_t); 3981 xcb_tmp += sizeof(uint16_t); 3982 xcb_align_to = ALIGNOF(uint16_t); 3983 } 3984 if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY) { 3985 /* xcb_xkb_select_events_details_t.affectExtDev */ 3986 _aux->affectExtDev = *(uint16_t *)xcb_tmp; 3987 xcb_block_len += sizeof(uint16_t); 3988 xcb_tmp += sizeof(uint16_t); 3989 xcb_align_to = ALIGNOF(uint16_t); 3990 /* xcb_xkb_select_events_details_t.extdevDetails */ 3991 _aux->extdevDetails = *(uint16_t *)xcb_tmp; 3992 xcb_block_len += sizeof(uint16_t); 3993 xcb_tmp += sizeof(uint16_t); 3994 xcb_align_to = ALIGNOF(uint16_t); 3995 } 3996 /* insert padding */ 3997 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3998 xcb_buffer_len += xcb_block_len + xcb_pad; 3999 if (0 != xcb_pad) { 4000 xcb_tmp += xcb_pad; 4001 xcb_pad = 0; 4002 } 4003 xcb_block_len = 0; 4004 4005 return xcb_buffer_len; 4006 } 4007 4008 int 4009 xcb_xkb_select_events_details_sizeof (const void *_buffer /**< */, 4010 uint16_t affectWhich /**< */, 4011 uint16_t clear /**< */, 4012 uint16_t selectAll /**< */) 4013 { 4014 xcb_xkb_select_events_details_t _aux; 4015 return xcb_xkb_select_events_details_unpack(_buffer, affectWhich, clear, selectAll, &_aux); 4016 } 4017 4018 4019 /***************************************************************************** 4020 ** 4021 ** xcb_void_cookie_t xcb_xkb_select_events_checked 4022 ** 4023 ** @param xcb_connection_t *c 4024 ** @param xcb_xkb_device_spec_t deviceSpec 4025 ** @param uint16_t affectWhich 4026 ** @param uint16_t clear 4027 ** @param uint16_t selectAll 4028 ** @param uint16_t affectMap 4029 ** @param uint16_t map 4030 ** @param const void *details 4031 ** @returns xcb_void_cookie_t 4032 ** 4033 *****************************************************************************/ 4034 4035 xcb_void_cookie_t 4036 xcb_xkb_select_events_checked (xcb_connection_t *c /**< */, 4037 xcb_xkb_device_spec_t deviceSpec /**< */, 4038 uint16_t affectWhich /**< */, 4039 uint16_t clear /**< */, 4040 uint16_t selectAll /**< */, 4041 uint16_t affectMap /**< */, 4042 uint16_t map /**< */, 4043 const void *details /**< */) 4044 { 4045 static const xcb_protocol_request_t xcb_req = { 4046 /* count */ 3, 4047 /* ext */ &xcb_xkb_id, 4048 /* opcode */ XCB_XKB_SELECT_EVENTS, 4049 /* isvoid */ 1 4050 }; 4051 4052 struct iovec xcb_parts[5]; 4053 xcb_void_cookie_t xcb_ret; 4054 xcb_xkb_select_events_request_t xcb_out; 4055 4056 xcb_out.deviceSpec = deviceSpec; 4057 xcb_out.affectWhich = affectWhich; 4058 xcb_out.clear = clear; 4059 xcb_out.selectAll = selectAll; 4060 xcb_out.affectMap = affectMap; 4061 xcb_out.map = map; 4062 4063 xcb_parts[2].iov_base = (char *) &xcb_out; 4064 xcb_parts[2].iov_len = sizeof(xcb_out); 4065 xcb_parts[3].iov_base = 0; 4066 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4067 /* xcb_xkb_select_events_details_t details */ 4068 xcb_parts[4].iov_base = (char *) details; 4069 xcb_parts[4].iov_len = 4070 xcb_xkb_select_events_details_sizeof (details, affectWhich, clear, selectAll); 4071 4072 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4073 return xcb_ret; 4074 } 4075 4076 4077 /***************************************************************************** 4078 ** 4079 ** xcb_void_cookie_t xcb_xkb_select_events 4080 ** 4081 ** @param xcb_connection_t *c 4082 ** @param xcb_xkb_device_spec_t deviceSpec 4083 ** @param uint16_t affectWhich 4084 ** @param uint16_t clear 4085 ** @param uint16_t selectAll 4086 ** @param uint16_t affectMap 4087 ** @param uint16_t map 4088 ** @param const void *details 4089 ** @returns xcb_void_cookie_t 4090 ** 4091 *****************************************************************************/ 4092 4093 xcb_void_cookie_t 4094 xcb_xkb_select_events (xcb_connection_t *c /**< */, 4095 xcb_xkb_device_spec_t deviceSpec /**< */, 4096 uint16_t affectWhich /**< */, 4097 uint16_t clear /**< */, 4098 uint16_t selectAll /**< */, 4099 uint16_t affectMap /**< */, 4100 uint16_t map /**< */, 4101 const void *details /**< */) 4102 { 4103 static const xcb_protocol_request_t xcb_req = { 4104 /* count */ 3, 4105 /* ext */ &xcb_xkb_id, 4106 /* opcode */ XCB_XKB_SELECT_EVENTS, 4107 /* isvoid */ 1 4108 }; 4109 4110 struct iovec xcb_parts[5]; 4111 xcb_void_cookie_t xcb_ret; 4112 xcb_xkb_select_events_request_t xcb_out; 4113 4114 xcb_out.deviceSpec = deviceSpec; 4115 xcb_out.affectWhich = affectWhich; 4116 xcb_out.clear = clear; 4117 xcb_out.selectAll = selectAll; 4118 xcb_out.affectMap = affectMap; 4119 xcb_out.map = map; 4120 4121 xcb_parts[2].iov_base = (char *) &xcb_out; 4122 xcb_parts[2].iov_len = sizeof(xcb_out); 4123 xcb_parts[3].iov_base = 0; 4124 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4125 /* xcb_xkb_select_events_details_t details */ 4126 xcb_parts[4].iov_base = (char *) details; 4127 xcb_parts[4].iov_len = 4128 xcb_xkb_select_events_details_sizeof (details, affectWhich, clear, selectAll); 4129 4130 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4131 return xcb_ret; 4132 } 4133 4134 4135 /***************************************************************************** 4136 ** 4137 ** xcb_void_cookie_t xcb_xkb_select_events_aux_checked 4138 ** 4139 ** @param xcb_connection_t *c 4140 ** @param xcb_xkb_device_spec_t deviceSpec 4141 ** @param uint16_t affectWhich 4142 ** @param uint16_t clear 4143 ** @param uint16_t selectAll 4144 ** @param uint16_t affectMap 4145 ** @param uint16_t map 4146 ** @param const xcb_xkb_select_events_details_t *details 4147 ** @returns xcb_void_cookie_t 4148 ** 4149 *****************************************************************************/ 4150 4151 xcb_void_cookie_t 4152 xcb_xkb_select_events_aux_checked (xcb_connection_t *c /**< */, 4153 xcb_xkb_device_spec_t deviceSpec /**< */, 4154 uint16_t affectWhich /**< */, 4155 uint16_t clear /**< */, 4156 uint16_t selectAll /**< */, 4157 uint16_t affectMap /**< */, 4158 uint16_t map /**< */, 4159 const xcb_xkb_select_events_details_t *details /**< */) 4160 { 4161 static const xcb_protocol_request_t xcb_req = { 4162 /* count */ 3, 4163 /* ext */ &xcb_xkb_id, 4164 /* opcode */ XCB_XKB_SELECT_EVENTS, 4165 /* isvoid */ 1 4166 }; 4167 4168 struct iovec xcb_parts[5]; 4169 xcb_void_cookie_t xcb_ret; 4170 xcb_xkb_select_events_request_t xcb_out; 4171 void *xcb_aux0 = 0; 4172 4173 xcb_out.deviceSpec = deviceSpec; 4174 xcb_out.affectWhich = affectWhich; 4175 xcb_out.clear = clear; 4176 xcb_out.selectAll = selectAll; 4177 xcb_out.affectMap = affectMap; 4178 xcb_out.map = map; 4179 4180 xcb_parts[2].iov_base = (char *) &xcb_out; 4181 xcb_parts[2].iov_len = sizeof(xcb_out); 4182 xcb_parts[3].iov_base = 0; 4183 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4184 /* xcb_xkb_select_events_details_t details */ 4185 xcb_parts[4].iov_len = 4186 xcb_xkb_select_events_details_serialize (&xcb_aux0, affectWhich, clear, selectAll, details); 4187 xcb_parts[4].iov_base = xcb_aux0; 4188 4189 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4190 free(xcb_aux0); 4191 return xcb_ret; 4192 } 4193 4194 4195 /***************************************************************************** 4196 ** 4197 ** xcb_void_cookie_t xcb_xkb_select_events_aux 4198 ** 4199 ** @param xcb_connection_t *c 4200 ** @param xcb_xkb_device_spec_t deviceSpec 4201 ** @param uint16_t affectWhich 4202 ** @param uint16_t clear 4203 ** @param uint16_t selectAll 4204 ** @param uint16_t affectMap 4205 ** @param uint16_t map 4206 ** @param const xcb_xkb_select_events_details_t *details 4207 ** @returns xcb_void_cookie_t 4208 ** 4209 *****************************************************************************/ 4210 4211 xcb_void_cookie_t 4212 xcb_xkb_select_events_aux (xcb_connection_t *c /**< */, 4213 xcb_xkb_device_spec_t deviceSpec /**< */, 4214 uint16_t affectWhich /**< */, 4215 uint16_t clear /**< */, 4216 uint16_t selectAll /**< */, 4217 uint16_t affectMap /**< */, 4218 uint16_t map /**< */, 4219 const xcb_xkb_select_events_details_t *details /**< */) 4220 { 4221 static const xcb_protocol_request_t xcb_req = { 4222 /* count */ 3, 4223 /* ext */ &xcb_xkb_id, 4224 /* opcode */ XCB_XKB_SELECT_EVENTS, 4225 /* isvoid */ 1 4226 }; 4227 4228 struct iovec xcb_parts[5]; 4229 xcb_void_cookie_t xcb_ret; 4230 xcb_xkb_select_events_request_t xcb_out; 4231 void *xcb_aux0 = 0; 4232 4233 xcb_out.deviceSpec = deviceSpec; 4234 xcb_out.affectWhich = affectWhich; 4235 xcb_out.clear = clear; 4236 xcb_out.selectAll = selectAll; 4237 xcb_out.affectMap = affectMap; 4238 xcb_out.map = map; 4239 4240 xcb_parts[2].iov_base = (char *) &xcb_out; 4241 xcb_parts[2].iov_len = sizeof(xcb_out); 4242 xcb_parts[3].iov_base = 0; 4243 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4244 /* xcb_xkb_select_events_details_t details */ 4245 xcb_parts[4].iov_len = 4246 xcb_xkb_select_events_details_serialize (&xcb_aux0, affectWhich, clear, selectAll, details); 4247 xcb_parts[4].iov_base = xcb_aux0; 4248 4249 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4250 free(xcb_aux0); 4251 return xcb_ret; 4252 } 4253 4254 4255 /***************************************************************************** 4256 ** 4257 ** xcb_void_cookie_t xcb_xkb_bell_checked 4258 ** 4259 ** @param xcb_connection_t *c 4260 ** @param xcb_xkb_device_spec_t deviceSpec 4261 ** @param xcb_xkb_bell_class_spec_t bellClass 4262 ** @param xcb_xkb_id_spec_t bellID 4263 ** @param int8_t percent 4264 ** @param uint8_t forceSound 4265 ** @param uint8_t eventOnly 4266 ** @param int16_t pitch 4267 ** @param int16_t duration 4268 ** @param xcb_atom_t name 4269 ** @param xcb_window_t window 4270 ** @returns xcb_void_cookie_t 4271 ** 4272 *****************************************************************************/ 4273 4274 xcb_void_cookie_t 4275 xcb_xkb_bell_checked (xcb_connection_t *c /**< */, 4276 xcb_xkb_device_spec_t deviceSpec /**< */, 4277 xcb_xkb_bell_class_spec_t bellClass /**< */, 4278 xcb_xkb_id_spec_t bellID /**< */, 4279 int8_t percent /**< */, 4280 uint8_t forceSound /**< */, 4281 uint8_t eventOnly /**< */, 4282 int16_t pitch /**< */, 4283 int16_t duration /**< */, 4284 xcb_atom_t name /**< */, 4285 xcb_window_t window /**< */) 4286 { 4287 static const xcb_protocol_request_t xcb_req = { 4288 /* count */ 2, 4289 /* ext */ &xcb_xkb_id, 4290 /* opcode */ XCB_XKB_BELL, 4291 /* isvoid */ 1 4292 }; 4293 4294 struct iovec xcb_parts[4]; 4295 xcb_void_cookie_t xcb_ret; 4296 xcb_xkb_bell_request_t xcb_out; 4297 4298 xcb_out.deviceSpec = deviceSpec; 4299 xcb_out.bellClass = bellClass; 4300 xcb_out.bellID = bellID; 4301 xcb_out.percent = percent; 4302 xcb_out.forceSound = forceSound; 4303 xcb_out.eventOnly = eventOnly; 4304 xcb_out.pad0 = 0; 4305 xcb_out.pitch = pitch; 4306 xcb_out.duration = duration; 4307 memset(xcb_out.pad1, 0, 2); 4308 xcb_out.name = name; 4309 xcb_out.window = window; 4310 4311 xcb_parts[2].iov_base = (char *) &xcb_out; 4312 xcb_parts[2].iov_len = sizeof(xcb_out); 4313 xcb_parts[3].iov_base = 0; 4314 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4315 4316 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4317 return xcb_ret; 4318 } 4319 4320 4321 /***************************************************************************** 4322 ** 4323 ** xcb_void_cookie_t xcb_xkb_bell 4324 ** 4325 ** @param xcb_connection_t *c 4326 ** @param xcb_xkb_device_spec_t deviceSpec 4327 ** @param xcb_xkb_bell_class_spec_t bellClass 4328 ** @param xcb_xkb_id_spec_t bellID 4329 ** @param int8_t percent 4330 ** @param uint8_t forceSound 4331 ** @param uint8_t eventOnly 4332 ** @param int16_t pitch 4333 ** @param int16_t duration 4334 ** @param xcb_atom_t name 4335 ** @param xcb_window_t window 4336 ** @returns xcb_void_cookie_t 4337 ** 4338 *****************************************************************************/ 4339 4340 xcb_void_cookie_t 4341 xcb_xkb_bell (xcb_connection_t *c /**< */, 4342 xcb_xkb_device_spec_t deviceSpec /**< */, 4343 xcb_xkb_bell_class_spec_t bellClass /**< */, 4344 xcb_xkb_id_spec_t bellID /**< */, 4345 int8_t percent /**< */, 4346 uint8_t forceSound /**< */, 4347 uint8_t eventOnly /**< */, 4348 int16_t pitch /**< */, 4349 int16_t duration /**< */, 4350 xcb_atom_t name /**< */, 4351 xcb_window_t window /**< */) 4352 { 4353 static const xcb_protocol_request_t xcb_req = { 4354 /* count */ 2, 4355 /* ext */ &xcb_xkb_id, 4356 /* opcode */ XCB_XKB_BELL, 4357 /* isvoid */ 1 4358 }; 4359 4360 struct iovec xcb_parts[4]; 4361 xcb_void_cookie_t xcb_ret; 4362 xcb_xkb_bell_request_t xcb_out; 4363 4364 xcb_out.deviceSpec = deviceSpec; 4365 xcb_out.bellClass = bellClass; 4366 xcb_out.bellID = bellID; 4367 xcb_out.percent = percent; 4368 xcb_out.forceSound = forceSound; 4369 xcb_out.eventOnly = eventOnly; 4370 xcb_out.pad0 = 0; 4371 xcb_out.pitch = pitch; 4372 xcb_out.duration = duration; 4373 memset(xcb_out.pad1, 0, 2); 4374 xcb_out.name = name; 4375 xcb_out.window = window; 4376 4377 xcb_parts[2].iov_base = (char *) &xcb_out; 4378 xcb_parts[2].iov_len = sizeof(xcb_out); 4379 xcb_parts[3].iov_base = 0; 4380 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4381 4382 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4383 return xcb_ret; 4384 } 4385 4386 4387 /***************************************************************************** 4388 ** 4389 ** xcb_xkb_get_state_cookie_t xcb_xkb_get_state 4390 ** 4391 ** @param xcb_connection_t *c 4392 ** @param xcb_xkb_device_spec_t deviceSpec 4393 ** @returns xcb_xkb_get_state_cookie_t 4394 ** 4395 *****************************************************************************/ 4396 4397 xcb_xkb_get_state_cookie_t 4398 xcb_xkb_get_state (xcb_connection_t *c /**< */, 4399 xcb_xkb_device_spec_t deviceSpec /**< */) 4400 { 4401 static const xcb_protocol_request_t xcb_req = { 4402 /* count */ 2, 4403 /* ext */ &xcb_xkb_id, 4404 /* opcode */ XCB_XKB_GET_STATE, 4405 /* isvoid */ 0 4406 }; 4407 4408 struct iovec xcb_parts[4]; 4409 xcb_xkb_get_state_cookie_t xcb_ret; 4410 xcb_xkb_get_state_request_t xcb_out; 4411 4412 xcb_out.deviceSpec = deviceSpec; 4413 memset(xcb_out.pad0, 0, 2); 4414 4415 xcb_parts[2].iov_base = (char *) &xcb_out; 4416 xcb_parts[2].iov_len = sizeof(xcb_out); 4417 xcb_parts[3].iov_base = 0; 4418 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4419 4420 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4421 return xcb_ret; 4422 } 4423 4424 4425 /***************************************************************************** 4426 ** 4427 ** xcb_xkb_get_state_cookie_t xcb_xkb_get_state_unchecked 4428 ** 4429 ** @param xcb_connection_t *c 4430 ** @param xcb_xkb_device_spec_t deviceSpec 4431 ** @returns xcb_xkb_get_state_cookie_t 4432 ** 4433 *****************************************************************************/ 4434 4435 xcb_xkb_get_state_cookie_t 4436 xcb_xkb_get_state_unchecked (xcb_connection_t *c /**< */, 4437 xcb_xkb_device_spec_t deviceSpec /**< */) 4438 { 4439 static const xcb_protocol_request_t xcb_req = { 4440 /* count */ 2, 4441 /* ext */ &xcb_xkb_id, 4442 /* opcode */ XCB_XKB_GET_STATE, 4443 /* isvoid */ 0 4444 }; 4445 4446 struct iovec xcb_parts[4]; 4447 xcb_xkb_get_state_cookie_t xcb_ret; 4448 xcb_xkb_get_state_request_t xcb_out; 4449 4450 xcb_out.deviceSpec = deviceSpec; 4451 memset(xcb_out.pad0, 0, 2); 4452 4453 xcb_parts[2].iov_base = (char *) &xcb_out; 4454 xcb_parts[2].iov_len = sizeof(xcb_out); 4455 xcb_parts[3].iov_base = 0; 4456 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4457 4458 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4459 return xcb_ret; 4460 } 4461 4462 4463 /***************************************************************************** 4464 ** 4465 ** xcb_xkb_get_state_reply_t * xcb_xkb_get_state_reply 4466 ** 4467 ** @param xcb_connection_t *c 4468 ** @param xcb_xkb_get_state_cookie_t cookie 4469 ** @param xcb_generic_error_t **e 4470 ** @returns xcb_xkb_get_state_reply_t * 4471 ** 4472 *****************************************************************************/ 4473 4474 xcb_xkb_get_state_reply_t * 4475 xcb_xkb_get_state_reply (xcb_connection_t *c /**< */, 4476 xcb_xkb_get_state_cookie_t cookie /**< */, 4477 xcb_generic_error_t **e /**< */) 4478 { 4479 return (xcb_xkb_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4480 } 4481 4482 4483 /***************************************************************************** 4484 ** 4485 ** xcb_void_cookie_t xcb_xkb_latch_lock_state_checked 4486 ** 4487 ** @param xcb_connection_t *c 4488 ** @param xcb_xkb_device_spec_t deviceSpec 4489 ** @param uint8_t affectModLocks 4490 ** @param uint8_t modLocks 4491 ** @param uint8_t lockGroup 4492 ** @param uint8_t groupLock 4493 ** @param uint8_t affectModLatches 4494 ** @param uint8_t latchGroup 4495 ** @param uint16_t groupLatch 4496 ** @returns xcb_void_cookie_t 4497 ** 4498 *****************************************************************************/ 4499 4500 xcb_void_cookie_t 4501 xcb_xkb_latch_lock_state_checked (xcb_connection_t *c /**< */, 4502 xcb_xkb_device_spec_t deviceSpec /**< */, 4503 uint8_t affectModLocks /**< */, 4504 uint8_t modLocks /**< */, 4505 uint8_t lockGroup /**< */, 4506 uint8_t groupLock /**< */, 4507 uint8_t affectModLatches /**< */, 4508 uint8_t latchGroup /**< */, 4509 uint16_t groupLatch /**< */) 4510 { 4511 static const xcb_protocol_request_t xcb_req = { 4512 /* count */ 2, 4513 /* ext */ &xcb_xkb_id, 4514 /* opcode */ XCB_XKB_LATCH_LOCK_STATE, 4515 /* isvoid */ 1 4516 }; 4517 4518 struct iovec xcb_parts[4]; 4519 xcb_void_cookie_t xcb_ret; 4520 xcb_xkb_latch_lock_state_request_t xcb_out; 4521 4522 xcb_out.deviceSpec = deviceSpec; 4523 xcb_out.affectModLocks = affectModLocks; 4524 xcb_out.modLocks = modLocks; 4525 xcb_out.lockGroup = lockGroup; 4526 xcb_out.groupLock = groupLock; 4527 xcb_out.affectModLatches = affectModLatches; 4528 xcb_out.pad0 = 0; 4529 xcb_out.latchGroup = latchGroup; 4530 xcb_out.groupLatch = groupLatch; 4531 4532 xcb_parts[2].iov_base = (char *) &xcb_out; 4533 xcb_parts[2].iov_len = sizeof(xcb_out); 4534 xcb_parts[3].iov_base = 0; 4535 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4536 4537 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4538 return xcb_ret; 4539 } 4540 4541 4542 /***************************************************************************** 4543 ** 4544 ** xcb_void_cookie_t xcb_xkb_latch_lock_state 4545 ** 4546 ** @param xcb_connection_t *c 4547 ** @param xcb_xkb_device_spec_t deviceSpec 4548 ** @param uint8_t affectModLocks 4549 ** @param uint8_t modLocks 4550 ** @param uint8_t lockGroup 4551 ** @param uint8_t groupLock 4552 ** @param uint8_t affectModLatches 4553 ** @param uint8_t latchGroup 4554 ** @param uint16_t groupLatch 4555 ** @returns xcb_void_cookie_t 4556 ** 4557 *****************************************************************************/ 4558 4559 xcb_void_cookie_t 4560 xcb_xkb_latch_lock_state (xcb_connection_t *c /**< */, 4561 xcb_xkb_device_spec_t deviceSpec /**< */, 4562 uint8_t affectModLocks /**< */, 4563 uint8_t modLocks /**< */, 4564 uint8_t lockGroup /**< */, 4565 uint8_t groupLock /**< */, 4566 uint8_t affectModLatches /**< */, 4567 uint8_t latchGroup /**< */, 4568 uint16_t groupLatch /**< */) 4569 { 4570 static const xcb_protocol_request_t xcb_req = { 4571 /* count */ 2, 4572 /* ext */ &xcb_xkb_id, 4573 /* opcode */ XCB_XKB_LATCH_LOCK_STATE, 4574 /* isvoid */ 1 4575 }; 4576 4577 struct iovec xcb_parts[4]; 4578 xcb_void_cookie_t xcb_ret; 4579 xcb_xkb_latch_lock_state_request_t xcb_out; 4580 4581 xcb_out.deviceSpec = deviceSpec; 4582 xcb_out.affectModLocks = affectModLocks; 4583 xcb_out.modLocks = modLocks; 4584 xcb_out.lockGroup = lockGroup; 4585 xcb_out.groupLock = groupLock; 4586 xcb_out.affectModLatches = affectModLatches; 4587 xcb_out.pad0 = 0; 4588 xcb_out.latchGroup = latchGroup; 4589 xcb_out.groupLatch = groupLatch; 4590 4591 xcb_parts[2].iov_base = (char *) &xcb_out; 4592 xcb_parts[2].iov_len = sizeof(xcb_out); 4593 xcb_parts[3].iov_base = 0; 4594 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4595 4596 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4597 return xcb_ret; 4598 } 4599 4600 4601 /***************************************************************************** 4602 ** 4603 ** xcb_xkb_get_controls_cookie_t xcb_xkb_get_controls 4604 ** 4605 ** @param xcb_connection_t *c 4606 ** @param xcb_xkb_device_spec_t deviceSpec 4607 ** @returns xcb_xkb_get_controls_cookie_t 4608 ** 4609 *****************************************************************************/ 4610 4611 xcb_xkb_get_controls_cookie_t 4612 xcb_xkb_get_controls (xcb_connection_t *c /**< */, 4613 xcb_xkb_device_spec_t deviceSpec /**< */) 4614 { 4615 static const xcb_protocol_request_t xcb_req = { 4616 /* count */ 2, 4617 /* ext */ &xcb_xkb_id, 4618 /* opcode */ XCB_XKB_GET_CONTROLS, 4619 /* isvoid */ 0 4620 }; 4621 4622 struct iovec xcb_parts[4]; 4623 xcb_xkb_get_controls_cookie_t xcb_ret; 4624 xcb_xkb_get_controls_request_t xcb_out; 4625 4626 xcb_out.deviceSpec = deviceSpec; 4627 memset(xcb_out.pad0, 0, 2); 4628 4629 xcb_parts[2].iov_base = (char *) &xcb_out; 4630 xcb_parts[2].iov_len = sizeof(xcb_out); 4631 xcb_parts[3].iov_base = 0; 4632 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4633 4634 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4635 return xcb_ret; 4636 } 4637 4638 4639 /***************************************************************************** 4640 ** 4641 ** xcb_xkb_get_controls_cookie_t xcb_xkb_get_controls_unchecked 4642 ** 4643 ** @param xcb_connection_t *c 4644 ** @param xcb_xkb_device_spec_t deviceSpec 4645 ** @returns xcb_xkb_get_controls_cookie_t 4646 ** 4647 *****************************************************************************/ 4648 4649 xcb_xkb_get_controls_cookie_t 4650 xcb_xkb_get_controls_unchecked (xcb_connection_t *c /**< */, 4651 xcb_xkb_device_spec_t deviceSpec /**< */) 4652 { 4653 static const xcb_protocol_request_t xcb_req = { 4654 /* count */ 2, 4655 /* ext */ &xcb_xkb_id, 4656 /* opcode */ XCB_XKB_GET_CONTROLS, 4657 /* isvoid */ 0 4658 }; 4659 4660 struct iovec xcb_parts[4]; 4661 xcb_xkb_get_controls_cookie_t xcb_ret; 4662 xcb_xkb_get_controls_request_t xcb_out; 4663 4664 xcb_out.deviceSpec = deviceSpec; 4665 memset(xcb_out.pad0, 0, 2); 4666 4667 xcb_parts[2].iov_base = (char *) &xcb_out; 4668 xcb_parts[2].iov_len = sizeof(xcb_out); 4669 xcb_parts[3].iov_base = 0; 4670 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4671 4672 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4673 return xcb_ret; 4674 } 4675 4676 4677 /***************************************************************************** 4678 ** 4679 ** xcb_xkb_get_controls_reply_t * xcb_xkb_get_controls_reply 4680 ** 4681 ** @param xcb_connection_t *c 4682 ** @param xcb_xkb_get_controls_cookie_t cookie 4683 ** @param xcb_generic_error_t **e 4684 ** @returns xcb_xkb_get_controls_reply_t * 4685 ** 4686 *****************************************************************************/ 4687 4688 xcb_xkb_get_controls_reply_t * 4689 xcb_xkb_get_controls_reply (xcb_connection_t *c /**< */, 4690 xcb_xkb_get_controls_cookie_t cookie /**< */, 4691 xcb_generic_error_t **e /**< */) 4692 { 4693 return (xcb_xkb_get_controls_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4694 } 4695 4696 4697 /***************************************************************************** 4698 ** 4699 ** xcb_void_cookie_t xcb_xkb_set_controls_checked 4700 ** 4701 ** @param xcb_connection_t *c 4702 ** @param xcb_xkb_device_spec_t deviceSpec 4703 ** @param uint8_t affectInternalRealMods 4704 ** @param uint8_t internalRealMods 4705 ** @param uint8_t affectIgnoreLockRealMods 4706 ** @param uint8_t ignoreLockRealMods 4707 ** @param uint16_t affectInternalVirtualMods 4708 ** @param uint16_t internalVirtualMods 4709 ** @param uint16_t affectIgnoreLockVirtualMods 4710 ** @param uint16_t ignoreLockVirtualMods 4711 ** @param uint8_t mouseKeysDfltBtn 4712 ** @param uint8_t groupsWrap 4713 ** @param uint16_t accessXOptions 4714 ** @param uint32_t affectEnabledControls 4715 ** @param uint32_t enabledControls 4716 ** @param uint32_t changeControls 4717 ** @param uint16_t repeatDelay 4718 ** @param uint16_t repeatInterval 4719 ** @param uint16_t slowKeysDelay 4720 ** @param uint16_t debounceDelay 4721 ** @param uint16_t mouseKeysDelay 4722 ** @param uint16_t mouseKeysInterval 4723 ** @param uint16_t mouseKeysTimeToMax 4724 ** @param uint16_t mouseKeysMaxSpeed 4725 ** @param int16_t mouseKeysCurve 4726 ** @param uint16_t accessXTimeout 4727 ** @param uint32_t accessXTimeoutMask 4728 ** @param uint32_t accessXTimeoutValues 4729 ** @param uint16_t accessXTimeoutOptionsMask 4730 ** @param uint16_t accessXTimeoutOptionsValues 4731 ** @param const uint8_t *perKeyRepeat 4732 ** @returns xcb_void_cookie_t 4733 ** 4734 *****************************************************************************/ 4735 4736 xcb_void_cookie_t 4737 xcb_xkb_set_controls_checked (xcb_connection_t *c /**< */, 4738 xcb_xkb_device_spec_t deviceSpec /**< */, 4739 uint8_t affectInternalRealMods /**< */, 4740 uint8_t internalRealMods /**< */, 4741 uint8_t affectIgnoreLockRealMods /**< */, 4742 uint8_t ignoreLockRealMods /**< */, 4743 uint16_t affectInternalVirtualMods /**< */, 4744 uint16_t internalVirtualMods /**< */, 4745 uint16_t affectIgnoreLockVirtualMods /**< */, 4746 uint16_t ignoreLockVirtualMods /**< */, 4747 uint8_t mouseKeysDfltBtn /**< */, 4748 uint8_t groupsWrap /**< */, 4749 uint16_t accessXOptions /**< */, 4750 uint32_t affectEnabledControls /**< */, 4751 uint32_t enabledControls /**< */, 4752 uint32_t changeControls /**< */, 4753 uint16_t repeatDelay /**< */, 4754 uint16_t repeatInterval /**< */, 4755 uint16_t slowKeysDelay /**< */, 4756 uint16_t debounceDelay /**< */, 4757 uint16_t mouseKeysDelay /**< */, 4758 uint16_t mouseKeysInterval /**< */, 4759 uint16_t mouseKeysTimeToMax /**< */, 4760 uint16_t mouseKeysMaxSpeed /**< */, 4761 int16_t mouseKeysCurve /**< */, 4762 uint16_t accessXTimeout /**< */, 4763 uint32_t accessXTimeoutMask /**< */, 4764 uint32_t accessXTimeoutValues /**< */, 4765 uint16_t accessXTimeoutOptionsMask /**< */, 4766 uint16_t accessXTimeoutOptionsValues /**< */, 4767 const uint8_t *perKeyRepeat /**< */) 4768 { 4769 static const xcb_protocol_request_t xcb_req = { 4770 /* count */ 2, 4771 /* ext */ &xcb_xkb_id, 4772 /* opcode */ XCB_XKB_SET_CONTROLS, 4773 /* isvoid */ 1 4774 }; 4775 4776 struct iovec xcb_parts[4]; 4777 xcb_void_cookie_t xcb_ret; 4778 xcb_xkb_set_controls_request_t xcb_out; 4779 4780 xcb_out.deviceSpec = deviceSpec; 4781 xcb_out.affectInternalRealMods = affectInternalRealMods; 4782 xcb_out.internalRealMods = internalRealMods; 4783 xcb_out.affectIgnoreLockRealMods = affectIgnoreLockRealMods; 4784 xcb_out.ignoreLockRealMods = ignoreLockRealMods; 4785 xcb_out.affectInternalVirtualMods = affectInternalVirtualMods; 4786 xcb_out.internalVirtualMods = internalVirtualMods; 4787 xcb_out.affectIgnoreLockVirtualMods = affectIgnoreLockVirtualMods; 4788 xcb_out.ignoreLockVirtualMods = ignoreLockVirtualMods; 4789 xcb_out.mouseKeysDfltBtn = mouseKeysDfltBtn; 4790 xcb_out.groupsWrap = groupsWrap; 4791 xcb_out.accessXOptions = accessXOptions; 4792 memset(xcb_out.pad0, 0, 2); 4793 xcb_out.affectEnabledControls = affectEnabledControls; 4794 xcb_out.enabledControls = enabledControls; 4795 xcb_out.changeControls = changeControls; 4796 xcb_out.repeatDelay = repeatDelay; 4797 xcb_out.repeatInterval = repeatInterval; 4798 xcb_out.slowKeysDelay = slowKeysDelay; 4799 xcb_out.debounceDelay = debounceDelay; 4800 xcb_out.mouseKeysDelay = mouseKeysDelay; 4801 xcb_out.mouseKeysInterval = mouseKeysInterval; 4802 xcb_out.mouseKeysTimeToMax = mouseKeysTimeToMax; 4803 xcb_out.mouseKeysMaxSpeed = mouseKeysMaxSpeed; 4804 xcb_out.mouseKeysCurve = mouseKeysCurve; 4805 xcb_out.accessXTimeout = accessXTimeout; 4806 xcb_out.accessXTimeoutMask = accessXTimeoutMask; 4807 xcb_out.accessXTimeoutValues = accessXTimeoutValues; 4808 xcb_out.accessXTimeoutOptionsMask = accessXTimeoutOptionsMask; 4809 xcb_out.accessXTimeoutOptionsValues = accessXTimeoutOptionsValues; 4810 memcpy(xcb_out.perKeyRepeat, perKeyRepeat, 32); 4811 4812 xcb_parts[2].iov_base = (char *) &xcb_out; 4813 xcb_parts[2].iov_len = sizeof(xcb_out); 4814 xcb_parts[3].iov_base = 0; 4815 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4816 4817 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4818 return xcb_ret; 4819 } 4820 4821 4822 /***************************************************************************** 4823 ** 4824 ** xcb_void_cookie_t xcb_xkb_set_controls 4825 ** 4826 ** @param xcb_connection_t *c 4827 ** @param xcb_xkb_device_spec_t deviceSpec 4828 ** @param uint8_t affectInternalRealMods 4829 ** @param uint8_t internalRealMods 4830 ** @param uint8_t affectIgnoreLockRealMods 4831 ** @param uint8_t ignoreLockRealMods 4832 ** @param uint16_t affectInternalVirtualMods 4833 ** @param uint16_t internalVirtualMods 4834 ** @param uint16_t affectIgnoreLockVirtualMods 4835 ** @param uint16_t ignoreLockVirtualMods 4836 ** @param uint8_t mouseKeysDfltBtn 4837 ** @param uint8_t groupsWrap 4838 ** @param uint16_t accessXOptions 4839 ** @param uint32_t affectEnabledControls 4840 ** @param uint32_t enabledControls 4841 ** @param uint32_t changeControls 4842 ** @param uint16_t repeatDelay 4843 ** @param uint16_t repeatInterval 4844 ** @param uint16_t slowKeysDelay 4845 ** @param uint16_t debounceDelay 4846 ** @param uint16_t mouseKeysDelay 4847 ** @param uint16_t mouseKeysInterval 4848 ** @param uint16_t mouseKeysTimeToMax 4849 ** @param uint16_t mouseKeysMaxSpeed 4850 ** @param int16_t mouseKeysCurve 4851 ** @param uint16_t accessXTimeout 4852 ** @param uint32_t accessXTimeoutMask 4853 ** @param uint32_t accessXTimeoutValues 4854 ** @param uint16_t accessXTimeoutOptionsMask 4855 ** @param uint16_t accessXTimeoutOptionsValues 4856 ** @param const uint8_t *perKeyRepeat 4857 ** @returns xcb_void_cookie_t 4858 ** 4859 *****************************************************************************/ 4860 4861 xcb_void_cookie_t 4862 xcb_xkb_set_controls (xcb_connection_t *c /**< */, 4863 xcb_xkb_device_spec_t deviceSpec /**< */, 4864 uint8_t affectInternalRealMods /**< */, 4865 uint8_t internalRealMods /**< */, 4866 uint8_t affectIgnoreLockRealMods /**< */, 4867 uint8_t ignoreLockRealMods /**< */, 4868 uint16_t affectInternalVirtualMods /**< */, 4869 uint16_t internalVirtualMods /**< */, 4870 uint16_t affectIgnoreLockVirtualMods /**< */, 4871 uint16_t ignoreLockVirtualMods /**< */, 4872 uint8_t mouseKeysDfltBtn /**< */, 4873 uint8_t groupsWrap /**< */, 4874 uint16_t accessXOptions /**< */, 4875 uint32_t affectEnabledControls /**< */, 4876 uint32_t enabledControls /**< */, 4877 uint32_t changeControls /**< */, 4878 uint16_t repeatDelay /**< */, 4879 uint16_t repeatInterval /**< */, 4880 uint16_t slowKeysDelay /**< */, 4881 uint16_t debounceDelay /**< */, 4882 uint16_t mouseKeysDelay /**< */, 4883 uint16_t mouseKeysInterval /**< */, 4884 uint16_t mouseKeysTimeToMax /**< */, 4885 uint16_t mouseKeysMaxSpeed /**< */, 4886 int16_t mouseKeysCurve /**< */, 4887 uint16_t accessXTimeout /**< */, 4888 uint32_t accessXTimeoutMask /**< */, 4889 uint32_t accessXTimeoutValues /**< */, 4890 uint16_t accessXTimeoutOptionsMask /**< */, 4891 uint16_t accessXTimeoutOptionsValues /**< */, 4892 const uint8_t *perKeyRepeat /**< */) 4893 { 4894 static const xcb_protocol_request_t xcb_req = { 4895 /* count */ 2, 4896 /* ext */ &xcb_xkb_id, 4897 /* opcode */ XCB_XKB_SET_CONTROLS, 4898 /* isvoid */ 1 4899 }; 4900 4901 struct iovec xcb_parts[4]; 4902 xcb_void_cookie_t xcb_ret; 4903 xcb_xkb_set_controls_request_t xcb_out; 4904 4905 xcb_out.deviceSpec = deviceSpec; 4906 xcb_out.affectInternalRealMods = affectInternalRealMods; 4907 xcb_out.internalRealMods = internalRealMods; 4908 xcb_out.affectIgnoreLockRealMods = affectIgnoreLockRealMods; 4909 xcb_out.ignoreLockRealMods = ignoreLockRealMods; 4910 xcb_out.affectInternalVirtualMods = affectInternalVirtualMods; 4911 xcb_out.internalVirtualMods = internalVirtualMods; 4912 xcb_out.affectIgnoreLockVirtualMods = affectIgnoreLockVirtualMods; 4913 xcb_out.ignoreLockVirtualMods = ignoreLockVirtualMods; 4914 xcb_out.mouseKeysDfltBtn = mouseKeysDfltBtn; 4915 xcb_out.groupsWrap = groupsWrap; 4916 xcb_out.accessXOptions = accessXOptions; 4917 memset(xcb_out.pad0, 0, 2); 4918 xcb_out.affectEnabledControls = affectEnabledControls; 4919 xcb_out.enabledControls = enabledControls; 4920 xcb_out.changeControls = changeControls; 4921 xcb_out.repeatDelay = repeatDelay; 4922 xcb_out.repeatInterval = repeatInterval; 4923 xcb_out.slowKeysDelay = slowKeysDelay; 4924 xcb_out.debounceDelay = debounceDelay; 4925 xcb_out.mouseKeysDelay = mouseKeysDelay; 4926 xcb_out.mouseKeysInterval = mouseKeysInterval; 4927 xcb_out.mouseKeysTimeToMax = mouseKeysTimeToMax; 4928 xcb_out.mouseKeysMaxSpeed = mouseKeysMaxSpeed; 4929 xcb_out.mouseKeysCurve = mouseKeysCurve; 4930 xcb_out.accessXTimeout = accessXTimeout; 4931 xcb_out.accessXTimeoutMask = accessXTimeoutMask; 4932 xcb_out.accessXTimeoutValues = accessXTimeoutValues; 4933 xcb_out.accessXTimeoutOptionsMask = accessXTimeoutOptionsMask; 4934 xcb_out.accessXTimeoutOptionsValues = accessXTimeoutOptionsValues; 4935 memcpy(xcb_out.perKeyRepeat, perKeyRepeat, 32); 4936 4937 xcb_parts[2].iov_base = (char *) &xcb_out; 4938 xcb_parts[2].iov_len = sizeof(xcb_out); 4939 xcb_parts[3].iov_base = 0; 4940 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4941 4942 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4943 return xcb_ret; 4944 } 4945 4946 4947 /***************************************************************************** 4948 ** 4949 ** int xcb_xkb_get_map_map_types_rtrn_length 4950 ** 4951 ** @param const xcb_xkb_get_map_map_t *R 4952 ** @returns int 4953 ** 4954 *****************************************************************************/ 4955 4956 int 4957 xcb_xkb_get_map_map_types_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, 4958 const xcb_xkb_get_map_map_t *S /**< */) 4959 { 4960 return R->nTypes; 4961 } 4962 4963 4964 /***************************************************************************** 4965 ** 4966 ** xcb_xkb_key_type_iterator_t xcb_xkb_get_map_map_types_rtrn_iterator 4967 ** 4968 ** @param const xcb_xkb_get_map_map_t *R 4969 ** @returns xcb_xkb_key_type_iterator_t 4970 ** 4971 *****************************************************************************/ 4972 4973 xcb_xkb_key_type_iterator_t 4974 xcb_xkb_get_map_map_types_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, 4975 const xcb_xkb_get_map_map_t *S /**< */) 4976 { 4977 xcb_xkb_key_type_iterator_t i; 4978 i.data = /* map */ S->types_rtrn; 4979 i.rem = R->nTypes; 4980 i.index = (char *) i.data - (char *) S; 4981 return i; 4982 } 4983 4984 4985 /***************************************************************************** 4986 ** 4987 ** int xcb_xkb_get_map_map_syms_rtrn_length 4988 ** 4989 ** @param const xcb_xkb_get_map_map_t *R 4990 ** @returns int 4991 ** 4992 *****************************************************************************/ 4993 4994 int 4995 xcb_xkb_get_map_map_syms_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, 4996 const xcb_xkb_get_map_map_t *S /**< */) 4997 { 4998 return R->nKeySyms; 4999 } 5000 5001 5002 /***************************************************************************** 5003 ** 5004 ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_map_map_syms_rtrn_iterator 5005 ** 5006 ** @param const xcb_xkb_get_map_map_t *R 5007 ** @returns xcb_xkb_key_sym_map_iterator_t 5008 ** 5009 *****************************************************************************/ 5010 5011 xcb_xkb_key_sym_map_iterator_t 5012 xcb_xkb_get_map_map_syms_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, 5013 const xcb_xkb_get_map_map_t *S /**< */) 5014 { 5015 xcb_xkb_key_sym_map_iterator_t i; 5016 i.data = /* map */ S->syms_rtrn; 5017 i.rem = R->nKeySyms; 5018 i.index = (char *) i.data - (char *) S; 5019 return i; 5020 } 5021 5022 5023 /***************************************************************************** 5024 ** 5025 ** uint8_t * xcb_xkb_get_map_map_acts_rtrn_count 5026 ** 5027 ** @param const xcb_xkb_get_map_map_t *S 5028 ** @returns uint8_t * 5029 ** 5030 *****************************************************************************/ 5031 5032 uint8_t * 5033 xcb_xkb_get_map_map_acts_rtrn_count (const xcb_xkb_get_map_map_t *S /**< */) 5034 { 5035 return /* map */ S->acts_rtrn_count; 5036 } 5037 5038 5039 /***************************************************************************** 5040 ** 5041 ** int xcb_xkb_get_map_map_acts_rtrn_count_length 5042 ** 5043 ** @param const xcb_xkb_get_map_map_t *R 5044 ** @returns int 5045 ** 5046 *****************************************************************************/ 5047 5048 int 5049 xcb_xkb_get_map_map_acts_rtrn_count_length (const xcb_xkb_get_map_reply_t *R /**< */, 5050 const xcb_xkb_get_map_map_t *S /**< */) 5051 { 5052 return R->nKeyActions; 5053 } 5054 5055 5056 /***************************************************************************** 5057 ** 5058 ** xcb_generic_iterator_t xcb_xkb_get_map_map_acts_rtrn_count_end 5059 ** 5060 ** @param const xcb_xkb_get_map_map_t *R 5061 ** @returns xcb_generic_iterator_t 5062 ** 5063 *****************************************************************************/ 5064 5065 xcb_generic_iterator_t 5066 xcb_xkb_get_map_map_acts_rtrn_count_end (const xcb_xkb_get_map_reply_t *R /**< */, 5067 const xcb_xkb_get_map_map_t *S /**< */) 5068 { 5069 xcb_generic_iterator_t i; 5070 i.data = /* map */ S->acts_rtrn_count + R->nKeyActions; 5071 i.rem = 0; 5072 i.index = (char *) i.data - (char *) S; 5073 return i; 5074 } 5075 5076 5077 /***************************************************************************** 5078 ** 5079 ** uint8_t * xcb_xkb_get_map_map_alignment_pad 5080 ** 5081 ** @param const xcb_xkb_get_map_map_t *S 5082 ** @returns uint8_t * 5083 ** 5084 *****************************************************************************/ 5085 5086 uint8_t * 5087 xcb_xkb_get_map_map_alignment_pad (const xcb_xkb_get_map_map_t *S /**< */) 5088 { 5089 return /* map */ S->alignment_pad; 5090 } 5091 5092 5093 /***************************************************************************** 5094 ** 5095 ** int xcb_xkb_get_map_map_alignment_pad_length 5096 ** 5097 ** @param const xcb_xkb_get_map_map_t *R 5098 ** @returns int 5099 ** 5100 *****************************************************************************/ 5101 5102 int 5103 xcb_xkb_get_map_map_alignment_pad_length (const xcb_xkb_get_map_reply_t *R /**< */, 5104 const xcb_xkb_get_map_map_t *S /**< */) 5105 { 5106 return (((R->nKeyActions + 3) & (~3)) - R->nKeyActions); 5107 } 5108 5109 5110 /***************************************************************************** 5111 ** 5112 ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_end 5113 ** 5114 ** @param const xcb_xkb_get_map_map_t *R 5115 ** @returns xcb_generic_iterator_t 5116 ** 5117 *****************************************************************************/ 5118 5119 xcb_generic_iterator_t 5120 xcb_xkb_get_map_map_alignment_pad_end (const xcb_xkb_get_map_reply_t *R /**< */, 5121 const xcb_xkb_get_map_map_t *S /**< */) 5122 { 5123 xcb_generic_iterator_t i; 5124 i.data = /* map */ S->alignment_pad + (((R->nKeyActions + 3) & (~3)) - R->nKeyActions); 5125 i.rem = 0; 5126 i.index = (char *) i.data - (char *) S; 5127 return i; 5128 } 5129 5130 5131 /***************************************************************************** 5132 ** 5133 ** xcb_xkb_action_t * xcb_xkb_get_map_map_acts_rtrn_acts 5134 ** 5135 ** @param const xcb_xkb_get_map_map_t *S 5136 ** @returns xcb_xkb_action_t * 5137 ** 5138 *****************************************************************************/ 5139 5140 xcb_xkb_action_t * 5141 xcb_xkb_get_map_map_acts_rtrn_acts (const xcb_xkb_get_map_map_t *S /**< */) 5142 { 5143 return /* map */ S->acts_rtrn_acts; 5144 } 5145 5146 5147 /***************************************************************************** 5148 ** 5149 ** int xcb_xkb_get_map_map_acts_rtrn_acts_length 5150 ** 5151 ** @param const xcb_xkb_get_map_map_t *R 5152 ** @returns int 5153 ** 5154 *****************************************************************************/ 5155 5156 int 5157 xcb_xkb_get_map_map_acts_rtrn_acts_length (const xcb_xkb_get_map_reply_t *R /**< */, 5158 const xcb_xkb_get_map_map_t *S /**< */) 5159 { 5160 return R->totalActions; 5161 } 5162 5163 5164 /***************************************************************************** 5165 ** 5166 ** xcb_xkb_action_iterator_t xcb_xkb_get_map_map_acts_rtrn_acts_iterator 5167 ** 5168 ** @param const xcb_xkb_get_map_map_t *R 5169 ** @returns xcb_xkb_action_iterator_t 5170 ** 5171 *****************************************************************************/ 5172 5173 xcb_xkb_action_iterator_t 5174 xcb_xkb_get_map_map_acts_rtrn_acts_iterator (const xcb_xkb_get_map_reply_t *R /**< */, 5175 const xcb_xkb_get_map_map_t *S /**< */) 5176 { 5177 xcb_xkb_action_iterator_t i; 5178 i.data = /* map */ S->acts_rtrn_acts; 5179 i.rem = R->totalActions; 5180 i.index = (char *) i.data - (char *) S; 5181 return i; 5182 } 5183 5184 5185 /***************************************************************************** 5186 ** 5187 ** xcb_xkb_set_behavior_t * xcb_xkb_get_map_map_behaviors_rtrn 5188 ** 5189 ** @param const xcb_xkb_get_map_map_t *S 5190 ** @returns xcb_xkb_set_behavior_t * 5191 ** 5192 *****************************************************************************/ 5193 5194 xcb_xkb_set_behavior_t * 5195 xcb_xkb_get_map_map_behaviors_rtrn (const xcb_xkb_get_map_map_t *S /**< */) 5196 { 5197 return /* map */ S->behaviors_rtrn; 5198 } 5199 5200 5201 /***************************************************************************** 5202 ** 5203 ** int xcb_xkb_get_map_map_behaviors_rtrn_length 5204 ** 5205 ** @param const xcb_xkb_get_map_map_t *R 5206 ** @returns int 5207 ** 5208 *****************************************************************************/ 5209 5210 int 5211 xcb_xkb_get_map_map_behaviors_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, 5212 const xcb_xkb_get_map_map_t *S /**< */) 5213 { 5214 return R->totalKeyBehaviors; 5215 } 5216 5217 5218 /***************************************************************************** 5219 ** 5220 ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_map_map_behaviors_rtrn_iterator 5221 ** 5222 ** @param const xcb_xkb_get_map_map_t *R 5223 ** @returns xcb_xkb_set_behavior_iterator_t 5224 ** 5225 *****************************************************************************/ 5226 5227 xcb_xkb_set_behavior_iterator_t 5228 xcb_xkb_get_map_map_behaviors_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, 5229 const xcb_xkb_get_map_map_t *S /**< */) 5230 { 5231 xcb_xkb_set_behavior_iterator_t i; 5232 i.data = /* map */ S->behaviors_rtrn; 5233 i.rem = R->totalKeyBehaviors; 5234 i.index = (char *) i.data - (char *) S; 5235 return i; 5236 } 5237 5238 5239 /***************************************************************************** 5240 ** 5241 ** uint8_t * xcb_xkb_get_map_map_vmods_rtrn 5242 ** 5243 ** @param const xcb_xkb_get_map_map_t *S 5244 ** @returns uint8_t * 5245 ** 5246 *****************************************************************************/ 5247 5248 uint8_t * 5249 xcb_xkb_get_map_map_vmods_rtrn (const xcb_xkb_get_map_map_t *S /**< */) 5250 { 5251 return /* map */ S->vmods_rtrn; 5252 } 5253 5254 5255 /***************************************************************************** 5256 ** 5257 ** int xcb_xkb_get_map_map_vmods_rtrn_length 5258 ** 5259 ** @param const xcb_xkb_get_map_map_t *R 5260 ** @returns int 5261 ** 5262 *****************************************************************************/ 5263 5264 int 5265 xcb_xkb_get_map_map_vmods_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, 5266 const xcb_xkb_get_map_map_t *S /**< */) 5267 { 5268 return xcb_popcount(R->virtualMods); 5269 } 5270 5271 5272 /***************************************************************************** 5273 ** 5274 ** xcb_generic_iterator_t xcb_xkb_get_map_map_vmods_rtrn_end 5275 ** 5276 ** @param const xcb_xkb_get_map_map_t *R 5277 ** @returns xcb_generic_iterator_t 5278 ** 5279 *****************************************************************************/ 5280 5281 xcb_generic_iterator_t 5282 xcb_xkb_get_map_map_vmods_rtrn_end (const xcb_xkb_get_map_reply_t *R /**< */, 5283 const xcb_xkb_get_map_map_t *S /**< */) 5284 { 5285 xcb_generic_iterator_t i; 5286 i.data = /* map */ S->vmods_rtrn + xcb_popcount(R->virtualMods); 5287 i.rem = 0; 5288 i.index = (char *) i.data - (char *) S; 5289 return i; 5290 } 5291 5292 5293 /***************************************************************************** 5294 ** 5295 ** uint8_t * xcb_xkb_get_map_map_alignment_pad_2 5296 ** 5297 ** @param const xcb_xkb_get_map_map_t *S 5298 ** @returns uint8_t * 5299 ** 5300 *****************************************************************************/ 5301 5302 uint8_t * 5303 xcb_xkb_get_map_map_alignment_pad_2 (const xcb_xkb_get_map_map_t *S /**< */) 5304 { 5305 return /* map */ S->alignment_pad2; 5306 } 5307 5308 5309 /***************************************************************************** 5310 ** 5311 ** int xcb_xkb_get_map_map_alignment_pad_2_length 5312 ** 5313 ** @param const xcb_xkb_get_map_map_t *R 5314 ** @returns int 5315 ** 5316 *****************************************************************************/ 5317 5318 int 5319 xcb_xkb_get_map_map_alignment_pad_2_length (const xcb_xkb_get_map_reply_t *R /**< */, 5320 const xcb_xkb_get_map_map_t *S /**< */) 5321 { 5322 return (((xcb_popcount(R->virtualMods) + 3) & (~3)) - xcb_popcount(R->virtualMods)); 5323 } 5324 5325 5326 /***************************************************************************** 5327 ** 5328 ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_2_end 5329 ** 5330 ** @param const xcb_xkb_get_map_map_t *R 5331 ** @returns xcb_generic_iterator_t 5332 ** 5333 *****************************************************************************/ 5334 5335 xcb_generic_iterator_t 5336 xcb_xkb_get_map_map_alignment_pad_2_end (const xcb_xkb_get_map_reply_t *R /**< */, 5337 const xcb_xkb_get_map_map_t *S /**< */) 5338 { 5339 xcb_generic_iterator_t i; 5340 i.data = /* map */ S->alignment_pad2 + (((xcb_popcount(R->virtualMods) + 3) & (~3)) - xcb_popcount(R->virtualMods)); 5341 i.rem = 0; 5342 i.index = (char *) i.data - (char *) S; 5343 return i; 5344 } 5345 5346 5347 /***************************************************************************** 5348 ** 5349 ** xcb_xkb_set_explicit_t * xcb_xkb_get_map_map_explicit_rtrn 5350 ** 5351 ** @param const xcb_xkb_get_map_map_t *S 5352 ** @returns xcb_xkb_set_explicit_t * 5353 ** 5354 *****************************************************************************/ 5355 5356 xcb_xkb_set_explicit_t * 5357 xcb_xkb_get_map_map_explicit_rtrn (const xcb_xkb_get_map_map_t *S /**< */) 5358 { 5359 return /* map */ S->explicit_rtrn; 5360 } 5361 5362 5363 /***************************************************************************** 5364 ** 5365 ** int xcb_xkb_get_map_map_explicit_rtrn_length 5366 ** 5367 ** @param const xcb_xkb_get_map_map_t *R 5368 ** @returns int 5369 ** 5370 *****************************************************************************/ 5371 5372 int 5373 xcb_xkb_get_map_map_explicit_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, 5374 const xcb_xkb_get_map_map_t *S /**< */) 5375 { 5376 return R->totalKeyExplicit; 5377 } 5378 5379 5380 /***************************************************************************** 5381 ** 5382 ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_map_map_explicit_rtrn_iterator 5383 ** 5384 ** @param const xcb_xkb_get_map_map_t *R 5385 ** @returns xcb_xkb_set_explicit_iterator_t 5386 ** 5387 *****************************************************************************/ 5388 5389 xcb_xkb_set_explicit_iterator_t 5390 xcb_xkb_get_map_map_explicit_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, 5391 const xcb_xkb_get_map_map_t *S /**< */) 5392 { 5393 xcb_xkb_set_explicit_iterator_t i; 5394 i.data = /* map */ S->explicit_rtrn; 5395 i.rem = R->totalKeyExplicit; 5396 i.index = (char *) i.data - (char *) S; 5397 return i; 5398 } 5399 5400 5401 /***************************************************************************** 5402 ** 5403 ** uint16_t * xcb_xkb_get_map_map_alignment_pad_3 5404 ** 5405 ** @param const xcb_xkb_get_map_map_t *S 5406 ** @returns uint16_t * 5407 ** 5408 *****************************************************************************/ 5409 5410 uint16_t * 5411 xcb_xkb_get_map_map_alignment_pad_3 (const xcb_xkb_get_map_map_t *S /**< */) 5412 { 5413 return /* map */ S->alignment_pad3; 5414 } 5415 5416 5417 /***************************************************************************** 5418 ** 5419 ** int xcb_xkb_get_map_map_alignment_pad_3_length 5420 ** 5421 ** @param const xcb_xkb_get_map_map_t *R 5422 ** @returns int 5423 ** 5424 *****************************************************************************/ 5425 5426 int 5427 xcb_xkb_get_map_map_alignment_pad_3_length (const xcb_xkb_get_map_reply_t *R /**< */, 5428 const xcb_xkb_get_map_map_t *S /**< */) 5429 { 5430 return (((R->totalKeyExplicit + 1) & (~1)) - R->totalKeyExplicit); 5431 } 5432 5433 5434 /***************************************************************************** 5435 ** 5436 ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_3_end 5437 ** 5438 ** @param const xcb_xkb_get_map_map_t *R 5439 ** @returns xcb_generic_iterator_t 5440 ** 5441 *****************************************************************************/ 5442 5443 xcb_generic_iterator_t 5444 xcb_xkb_get_map_map_alignment_pad_3_end (const xcb_xkb_get_map_reply_t *R /**< */, 5445 const xcb_xkb_get_map_map_t *S /**< */) 5446 { 5447 xcb_generic_iterator_t i; 5448 i.data = /* map */ S->alignment_pad3 + (((R->totalKeyExplicit + 1) & (~1)) - R->totalKeyExplicit); 5449 i.rem = 0; 5450 i.index = (char *) i.data - (char *) S; 5451 return i; 5452 } 5453 5454 5455 /***************************************************************************** 5456 ** 5457 ** xcb_xkb_key_mod_map_t * xcb_xkb_get_map_map_modmap_rtrn 5458 ** 5459 ** @param const xcb_xkb_get_map_map_t *S 5460 ** @returns xcb_xkb_key_mod_map_t * 5461 ** 5462 *****************************************************************************/ 5463 5464 xcb_xkb_key_mod_map_t * 5465 xcb_xkb_get_map_map_modmap_rtrn (const xcb_xkb_get_map_map_t *S /**< */) 5466 { 5467 return /* map */ S->modmap_rtrn; 5468 } 5469 5470 5471 /***************************************************************************** 5472 ** 5473 ** int xcb_xkb_get_map_map_modmap_rtrn_length 5474 ** 5475 ** @param const xcb_xkb_get_map_map_t *R 5476 ** @returns int 5477 ** 5478 *****************************************************************************/ 5479 5480 int 5481 xcb_xkb_get_map_map_modmap_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, 5482 const xcb_xkb_get_map_map_t *S /**< */) 5483 { 5484 return R->totalModMapKeys; 5485 } 5486 5487 5488 /***************************************************************************** 5489 ** 5490 ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_map_map_modmap_rtrn_iterator 5491 ** 5492 ** @param const xcb_xkb_get_map_map_t *R 5493 ** @returns xcb_xkb_key_mod_map_iterator_t 5494 ** 5495 *****************************************************************************/ 5496 5497 xcb_xkb_key_mod_map_iterator_t 5498 xcb_xkb_get_map_map_modmap_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, 5499 const xcb_xkb_get_map_map_t *S /**< */) 5500 { 5501 xcb_xkb_key_mod_map_iterator_t i; 5502 i.data = /* map */ S->modmap_rtrn; 5503 i.rem = R->totalModMapKeys; 5504 i.index = (char *) i.data - (char *) S; 5505 return i; 5506 } 5507 5508 5509 /***************************************************************************** 5510 ** 5511 ** uint16_t * xcb_xkb_get_map_map_alignment_pad_4 5512 ** 5513 ** @param const xcb_xkb_get_map_map_t *S 5514 ** @returns uint16_t * 5515 ** 5516 *****************************************************************************/ 5517 5518 uint16_t * 5519 xcb_xkb_get_map_map_alignment_pad_4 (const xcb_xkb_get_map_map_t *S /**< */) 5520 { 5521 return /* map */ S->alignment_pad4; 5522 } 5523 5524 5525 /***************************************************************************** 5526 ** 5527 ** int xcb_xkb_get_map_map_alignment_pad_4_length 5528 ** 5529 ** @param const xcb_xkb_get_map_map_t *R 5530 ** @returns int 5531 ** 5532 *****************************************************************************/ 5533 5534 int 5535 xcb_xkb_get_map_map_alignment_pad_4_length (const xcb_xkb_get_map_reply_t *R /**< */, 5536 const xcb_xkb_get_map_map_t *S /**< */) 5537 { 5538 return (((R->totalModMapKeys + 1) & (~1)) - R->totalModMapKeys); 5539 } 5540 5541 5542 /***************************************************************************** 5543 ** 5544 ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_4_end 5545 ** 5546 ** @param const xcb_xkb_get_map_map_t *R 5547 ** @returns xcb_generic_iterator_t 5548 ** 5549 *****************************************************************************/ 5550 5551 xcb_generic_iterator_t 5552 xcb_xkb_get_map_map_alignment_pad_4_end (const xcb_xkb_get_map_reply_t *R /**< */, 5553 const xcb_xkb_get_map_map_t *S /**< */) 5554 { 5555 xcb_generic_iterator_t i; 5556 i.data = /* map */ S->alignment_pad4 + (((R->totalModMapKeys + 1) & (~1)) - R->totalModMapKeys); 5557 i.rem = 0; 5558 i.index = (char *) i.data - (char *) S; 5559 return i; 5560 } 5561 5562 5563 /***************************************************************************** 5564 ** 5565 ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_map_map_vmodmap_rtrn 5566 ** 5567 ** @param const xcb_xkb_get_map_map_t *S 5568 ** @returns xcb_xkb_key_v_mod_map_t * 5569 ** 5570 *****************************************************************************/ 5571 5572 xcb_xkb_key_v_mod_map_t * 5573 xcb_xkb_get_map_map_vmodmap_rtrn (const xcb_xkb_get_map_map_t *S /**< */) 5574 { 5575 return /* map */ S->vmodmap_rtrn; 5576 } 5577 5578 5579 /***************************************************************************** 5580 ** 5581 ** int xcb_xkb_get_map_map_vmodmap_rtrn_length 5582 ** 5583 ** @param const xcb_xkb_get_map_map_t *R 5584 ** @returns int 5585 ** 5586 *****************************************************************************/ 5587 5588 int 5589 xcb_xkb_get_map_map_vmodmap_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, 5590 const xcb_xkb_get_map_map_t *S /**< */) 5591 { 5592 return R->totalVModMapKeys; 5593 } 5594 5595 5596 /***************************************************************************** 5597 ** 5598 ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_map_map_vmodmap_rtrn_iterator 5599 ** 5600 ** @param const xcb_xkb_get_map_map_t *R 5601 ** @returns xcb_xkb_key_v_mod_map_iterator_t 5602 ** 5603 *****************************************************************************/ 5604 5605 xcb_xkb_key_v_mod_map_iterator_t 5606 xcb_xkb_get_map_map_vmodmap_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, 5607 const xcb_xkb_get_map_map_t *S /**< */) 5608 { 5609 xcb_xkb_key_v_mod_map_iterator_t i; 5610 i.data = /* map */ S->vmodmap_rtrn; 5611 i.rem = R->totalVModMapKeys; 5612 i.index = (char *) i.data - (char *) S; 5613 return i; 5614 } 5615 5616 int 5617 xcb_xkb_get_map_map_serialize (void **_buffer /**< */, 5618 uint8_t nTypes /**< */, 5619 uint8_t nKeySyms /**< */, 5620 uint8_t nKeyActions /**< */, 5621 uint16_t totalActions /**< */, 5622 uint8_t totalKeyBehaviors /**< */, 5623 uint16_t virtualMods /**< */, 5624 uint8_t totalKeyExplicit /**< */, 5625 uint8_t totalModMapKeys /**< */, 5626 uint8_t totalVModMapKeys /**< */, 5627 uint16_t present /**< */, 5628 const xcb_xkb_get_map_map_t *_aux /**< */) 5629 { 5630 char *xcb_out = *_buffer; 5631 unsigned int xcb_buffer_len = 0; 5632 unsigned int xcb_align_to = 0; 5633 5634 unsigned int xcb_pad = 0; 5635 char xcb_pad0[3] = {0, 0, 0}; 5636 struct iovec xcb_parts[27]; 5637 unsigned int xcb_parts_idx = 0; 5638 unsigned int xcb_block_len = 0; 5639 unsigned int i; 5640 char *xcb_tmp; 5641 5642 if(present & XCB_XKB_MAP_PART_KEY_TYPES) { 5643 /* insert padding */ 5644 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5645 xcb_buffer_len += xcb_block_len + xcb_pad; 5646 if (0 != xcb_pad) { 5647 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5648 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5649 xcb_parts_idx++; 5650 xcb_pad = 0; 5651 } 5652 xcb_block_len = 0; 5653 /* types_rtrn */ 5654 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types_rtrn; 5655 xcb_parts[xcb_parts_idx].iov_len = 0; 5656 xcb_tmp = (char *) _aux->types_rtrn; 5657 for(i=0; i<nTypes; i++) { 5658 xcb_block_len = xcb_xkb_key_type_sizeof(xcb_tmp); 5659 xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; 5660 } 5661 xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; 5662 xcb_parts_idx++; 5663 xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); 5664 } 5665 if(present & XCB_XKB_MAP_PART_KEY_SYMS) { 5666 /* insert padding */ 5667 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5668 xcb_buffer_len += xcb_block_len + xcb_pad; 5669 if (0 != xcb_pad) { 5670 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5671 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5672 xcb_parts_idx++; 5673 xcb_pad = 0; 5674 } 5675 xcb_block_len = 0; 5676 /* syms_rtrn */ 5677 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->syms_rtrn; 5678 xcb_parts[xcb_parts_idx].iov_len = 0; 5679 xcb_tmp = (char *) _aux->syms_rtrn; 5680 for(i=0; i<nKeySyms; i++) { 5681 xcb_block_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); 5682 xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; 5683 } 5684 xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; 5685 xcb_parts_idx++; 5686 xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); 5687 } 5688 if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { 5689 /* insert padding */ 5690 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5691 xcb_buffer_len += xcb_block_len + xcb_pad; 5692 if (0 != xcb_pad) { 5693 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5694 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5695 xcb_parts_idx++; 5696 xcb_pad = 0; 5697 } 5698 xcb_block_len = 0; 5699 /* acts_rtrn_count */ 5700 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_count; 5701 xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); 5702 xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); 5703 xcb_parts_idx++; 5704 xcb_align_to = ALIGNOF(uint8_t); 5705 /* insert padding */ 5706 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5707 xcb_buffer_len += xcb_block_len + xcb_pad; 5708 if (0 != xcb_pad) { 5709 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5710 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5711 xcb_parts_idx++; 5712 xcb_pad = 0; 5713 } 5714 xcb_block_len = 0; 5715 /* alignment_pad */ 5716 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad; 5717 xcb_block_len += (((nKeyActions + 3) & (~3)) - nKeyActions) * sizeof(xcb_keycode_t); 5718 xcb_parts[xcb_parts_idx].iov_len = (((nKeyActions + 3) & (~3)) - nKeyActions) * sizeof(xcb_keycode_t); 5719 xcb_parts_idx++; 5720 xcb_align_to = ALIGNOF(uint8_t); 5721 /* insert padding */ 5722 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5723 xcb_buffer_len += xcb_block_len + xcb_pad; 5724 if (0 != xcb_pad) { 5725 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5726 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5727 xcb_parts_idx++; 5728 xcb_pad = 0; 5729 } 5730 xcb_block_len = 0; 5731 /* acts_rtrn_acts */ 5732 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_acts; 5733 xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); 5734 xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); 5735 xcb_parts_idx++; 5736 xcb_align_to = ALIGNOF(xcb_xkb_action_t); 5737 } 5738 if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { 5739 /* insert padding */ 5740 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5741 xcb_buffer_len += xcb_block_len + xcb_pad; 5742 if (0 != xcb_pad) { 5743 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5744 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5745 xcb_parts_idx++; 5746 xcb_pad = 0; 5747 } 5748 xcb_block_len = 0; 5749 /* behaviors_rtrn */ 5750 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors_rtrn; 5751 xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 5752 xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 5753 xcb_parts_idx++; 5754 xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); 5755 } 5756 if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { 5757 /* insert padding */ 5758 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5759 xcb_buffer_len += xcb_block_len + xcb_pad; 5760 if (0 != xcb_pad) { 5761 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5762 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5763 xcb_parts_idx++; 5764 xcb_pad = 0; 5765 } 5766 xcb_block_len = 0; 5767 /* vmods_rtrn */ 5768 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods_rtrn; 5769 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 5770 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 5771 xcb_parts_idx++; 5772 xcb_align_to = ALIGNOF(uint8_t); 5773 /* insert padding */ 5774 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5775 xcb_buffer_len += xcb_block_len + xcb_pad; 5776 if (0 != xcb_pad) { 5777 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5778 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5779 xcb_parts_idx++; 5780 xcb_pad = 0; 5781 } 5782 xcb_block_len = 0; 5783 /* alignment_pad2 */ 5784 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad2; 5785 xcb_block_len += (((xcb_popcount(virtualMods) + 3) & (~3)) - xcb_popcount(virtualMods)) * sizeof(xcb_keycode_t); 5786 xcb_parts[xcb_parts_idx].iov_len = (((xcb_popcount(virtualMods) + 3) & (~3)) - xcb_popcount(virtualMods)) * sizeof(xcb_keycode_t); 5787 xcb_parts_idx++; 5788 xcb_align_to = ALIGNOF(uint8_t); 5789 } 5790 if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { 5791 /* insert padding */ 5792 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5793 xcb_buffer_len += xcb_block_len + xcb_pad; 5794 if (0 != xcb_pad) { 5795 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5796 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5797 xcb_parts_idx++; 5798 xcb_pad = 0; 5799 } 5800 xcb_block_len = 0; 5801 /* explicit_rtrn */ 5802 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit_rtrn; 5803 xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 5804 xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 5805 xcb_parts_idx++; 5806 xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); 5807 /* insert padding */ 5808 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5809 xcb_buffer_len += xcb_block_len + xcb_pad; 5810 if (0 != xcb_pad) { 5811 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5812 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5813 xcb_parts_idx++; 5814 xcb_pad = 0; 5815 } 5816 xcb_block_len = 0; 5817 /* alignment_pad3 */ 5818 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad3; 5819 xcb_block_len += (((totalKeyExplicit + 1) & (~1)) - totalKeyExplicit) * sizeof(uint16_t); 5820 xcb_parts[xcb_parts_idx].iov_len = (((totalKeyExplicit + 1) & (~1)) - totalKeyExplicit) * sizeof(uint16_t); 5821 xcb_parts_idx++; 5822 xcb_align_to = ALIGNOF(uint16_t); 5823 } 5824 if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { 5825 /* insert padding */ 5826 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5827 xcb_buffer_len += xcb_block_len + xcb_pad; 5828 if (0 != xcb_pad) { 5829 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5830 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5831 xcb_parts_idx++; 5832 xcb_pad = 0; 5833 } 5834 xcb_block_len = 0; 5835 /* modmap_rtrn */ 5836 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap_rtrn; 5837 xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 5838 xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 5839 xcb_parts_idx++; 5840 xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); 5841 /* insert padding */ 5842 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5843 xcb_buffer_len += xcb_block_len + xcb_pad; 5844 if (0 != xcb_pad) { 5845 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5846 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5847 xcb_parts_idx++; 5848 xcb_pad = 0; 5849 } 5850 xcb_block_len = 0; 5851 /* alignment_pad4 */ 5852 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad4; 5853 xcb_block_len += (((totalModMapKeys + 1) & (~1)) - totalModMapKeys) * sizeof(uint16_t); 5854 xcb_parts[xcb_parts_idx].iov_len = (((totalModMapKeys + 1) & (~1)) - totalModMapKeys) * sizeof(uint16_t); 5855 xcb_parts_idx++; 5856 xcb_align_to = ALIGNOF(uint16_t); 5857 } 5858 if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { 5859 /* insert padding */ 5860 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5861 xcb_buffer_len += xcb_block_len + xcb_pad; 5862 if (0 != xcb_pad) { 5863 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5864 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5865 xcb_parts_idx++; 5866 xcb_pad = 0; 5867 } 5868 xcb_block_len = 0; 5869 /* vmodmap_rtrn */ 5870 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap_rtrn; 5871 xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 5872 xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 5873 xcb_parts_idx++; 5874 xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); 5875 } 5876 /* insert padding */ 5877 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5878 xcb_buffer_len += xcb_block_len + xcb_pad; 5879 if (0 != xcb_pad) { 5880 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 5881 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 5882 xcb_parts_idx++; 5883 xcb_pad = 0; 5884 } 5885 xcb_block_len = 0; 5886 5887 if (NULL == xcb_out) { 5888 /* allocate memory */ 5889 xcb_out = malloc(xcb_buffer_len); 5890 *_buffer = xcb_out; 5891 } 5892 5893 xcb_tmp = xcb_out; 5894 for(i=0; i<xcb_parts_idx; i++) { 5895 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 5896 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 5897 if (0 != xcb_parts[i].iov_len) 5898 xcb_tmp += xcb_parts[i].iov_len; 5899 } 5900 5901 return xcb_buffer_len; 5902 } 5903 5904 int 5905 xcb_xkb_get_map_map_unpack (const void *_buffer /**< */, 5906 uint8_t nTypes /**< */, 5907 uint8_t nKeySyms /**< */, 5908 uint8_t nKeyActions /**< */, 5909 uint16_t totalActions /**< */, 5910 uint8_t totalKeyBehaviors /**< */, 5911 uint16_t virtualMods /**< */, 5912 uint8_t totalKeyExplicit /**< */, 5913 uint8_t totalModMapKeys /**< */, 5914 uint8_t totalVModMapKeys /**< */, 5915 uint16_t present /**< */, 5916 xcb_xkb_get_map_map_t *_aux /**< */) 5917 { 5918 char *xcb_tmp = (char *)_buffer; 5919 unsigned int xcb_buffer_len = 0; 5920 unsigned int xcb_block_len = 0; 5921 unsigned int xcb_pad = 0; 5922 unsigned int xcb_align_to = 0; 5923 5924 unsigned int i; 5925 unsigned int xcb_tmp_len; 5926 5927 if(present & XCB_XKB_MAP_PART_KEY_TYPES) { 5928 /* insert padding */ 5929 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5930 xcb_buffer_len += xcb_block_len + xcb_pad; 5931 if (0 != xcb_pad) { 5932 xcb_tmp += xcb_pad; 5933 xcb_pad = 0; 5934 } 5935 xcb_block_len = 0; 5936 /* types_rtrn */ 5937 _aux->types_rtrn = (xcb_xkb_key_type_t *)xcb_tmp; 5938 for(i=0; i<nTypes; i++) { 5939 xcb_tmp_len = xcb_xkb_key_type_sizeof(xcb_tmp); 5940 xcb_block_len += xcb_tmp_len; 5941 xcb_tmp += xcb_tmp_len; 5942 } 5943 xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); 5944 } 5945 if(present & XCB_XKB_MAP_PART_KEY_SYMS) { 5946 /* insert padding */ 5947 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5948 xcb_buffer_len += xcb_block_len + xcb_pad; 5949 if (0 != xcb_pad) { 5950 xcb_tmp += xcb_pad; 5951 xcb_pad = 0; 5952 } 5953 xcb_block_len = 0; 5954 /* syms_rtrn */ 5955 _aux->syms_rtrn = (xcb_xkb_key_sym_map_t *)xcb_tmp; 5956 for(i=0; i<nKeySyms; i++) { 5957 xcb_tmp_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); 5958 xcb_block_len += xcb_tmp_len; 5959 xcb_tmp += xcb_tmp_len; 5960 } 5961 xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); 5962 } 5963 if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { 5964 /* insert padding */ 5965 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5966 xcb_buffer_len += xcb_block_len + xcb_pad; 5967 if (0 != xcb_pad) { 5968 xcb_tmp += xcb_pad; 5969 xcb_pad = 0; 5970 } 5971 xcb_block_len = 0; 5972 /* acts_rtrn_count */ 5973 _aux->acts_rtrn_count = (uint8_t *)xcb_tmp; 5974 xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); 5975 xcb_tmp += xcb_block_len; 5976 xcb_align_to = ALIGNOF(uint8_t); 5977 /* insert padding */ 5978 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5979 xcb_buffer_len += xcb_block_len + xcb_pad; 5980 if (0 != xcb_pad) { 5981 xcb_tmp += xcb_pad; 5982 xcb_pad = 0; 5983 } 5984 xcb_block_len = 0; 5985 /* alignment_pad */ 5986 _aux->alignment_pad = (uint8_t *)xcb_tmp; 5987 xcb_block_len += (((nKeyActions + 3) & (~3)) - nKeyActions) * sizeof(xcb_keycode_t); 5988 xcb_tmp += xcb_block_len; 5989 xcb_align_to = ALIGNOF(uint8_t); 5990 /* insert padding */ 5991 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5992 xcb_buffer_len += xcb_block_len + xcb_pad; 5993 if (0 != xcb_pad) { 5994 xcb_tmp += xcb_pad; 5995 xcb_pad = 0; 5996 } 5997 xcb_block_len = 0; 5998 /* acts_rtrn_acts */ 5999 _aux->acts_rtrn_acts = (xcb_xkb_action_t *)xcb_tmp; 6000 xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); 6001 xcb_tmp += xcb_block_len; 6002 xcb_align_to = ALIGNOF(xcb_xkb_action_t); 6003 } 6004 if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { 6005 /* insert padding */ 6006 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6007 xcb_buffer_len += xcb_block_len + xcb_pad; 6008 if (0 != xcb_pad) { 6009 xcb_tmp += xcb_pad; 6010 xcb_pad = 0; 6011 } 6012 xcb_block_len = 0; 6013 /* behaviors_rtrn */ 6014 _aux->behaviors_rtrn = (xcb_xkb_set_behavior_t *)xcb_tmp; 6015 xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 6016 xcb_tmp += xcb_block_len; 6017 xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); 6018 } 6019 if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { 6020 /* insert padding */ 6021 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6022 xcb_buffer_len += xcb_block_len + xcb_pad; 6023 if (0 != xcb_pad) { 6024 xcb_tmp += xcb_pad; 6025 xcb_pad = 0; 6026 } 6027 xcb_block_len = 0; 6028 /* vmods_rtrn */ 6029 _aux->vmods_rtrn = (uint8_t *)xcb_tmp; 6030 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 6031 xcb_tmp += xcb_block_len; 6032 xcb_align_to = ALIGNOF(uint8_t); 6033 /* insert padding */ 6034 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6035 xcb_buffer_len += xcb_block_len + xcb_pad; 6036 if (0 != xcb_pad) { 6037 xcb_tmp += xcb_pad; 6038 xcb_pad = 0; 6039 } 6040 xcb_block_len = 0; 6041 /* alignment_pad2 */ 6042 _aux->alignment_pad2 = (uint8_t *)xcb_tmp; 6043 xcb_block_len += (((xcb_popcount(virtualMods) + 3) & (~3)) - xcb_popcount(virtualMods)) * sizeof(xcb_keycode_t); 6044 xcb_tmp += xcb_block_len; 6045 xcb_align_to = ALIGNOF(uint8_t); 6046 } 6047 if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { 6048 /* insert padding */ 6049 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6050 xcb_buffer_len += xcb_block_len + xcb_pad; 6051 if (0 != xcb_pad) { 6052 xcb_tmp += xcb_pad; 6053 xcb_pad = 0; 6054 } 6055 xcb_block_len = 0; 6056 /* explicit_rtrn */ 6057 _aux->explicit_rtrn = (xcb_xkb_set_explicit_t *)xcb_tmp; 6058 xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 6059 xcb_tmp += xcb_block_len; 6060 xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); 6061 /* insert padding */ 6062 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6063 xcb_buffer_len += xcb_block_len + xcb_pad; 6064 if (0 != xcb_pad) { 6065 xcb_tmp += xcb_pad; 6066 xcb_pad = 0; 6067 } 6068 xcb_block_len = 0; 6069 /* alignment_pad3 */ 6070 _aux->alignment_pad3 = (uint16_t *)xcb_tmp; 6071 xcb_block_len += (((totalKeyExplicit + 1) & (~1)) - totalKeyExplicit) * sizeof(uint16_t); 6072 xcb_tmp += xcb_block_len; 6073 xcb_align_to = ALIGNOF(uint16_t); 6074 } 6075 if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { 6076 /* insert padding */ 6077 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6078 xcb_buffer_len += xcb_block_len + xcb_pad; 6079 if (0 != xcb_pad) { 6080 xcb_tmp += xcb_pad; 6081 xcb_pad = 0; 6082 } 6083 xcb_block_len = 0; 6084 /* modmap_rtrn */ 6085 _aux->modmap_rtrn = (xcb_xkb_key_mod_map_t *)xcb_tmp; 6086 xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 6087 xcb_tmp += xcb_block_len; 6088 xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); 6089 /* insert padding */ 6090 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6091 xcb_buffer_len += xcb_block_len + xcb_pad; 6092 if (0 != xcb_pad) { 6093 xcb_tmp += xcb_pad; 6094 xcb_pad = 0; 6095 } 6096 xcb_block_len = 0; 6097 /* alignment_pad4 */ 6098 _aux->alignment_pad4 = (uint16_t *)xcb_tmp; 6099 xcb_block_len += (((totalModMapKeys + 1) & (~1)) - totalModMapKeys) * sizeof(uint16_t); 6100 xcb_tmp += xcb_block_len; 6101 xcb_align_to = ALIGNOF(uint16_t); 6102 } 6103 if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { 6104 /* insert padding */ 6105 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6106 xcb_buffer_len += xcb_block_len + xcb_pad; 6107 if (0 != xcb_pad) { 6108 xcb_tmp += xcb_pad; 6109 xcb_pad = 0; 6110 } 6111 xcb_block_len = 0; 6112 /* vmodmap_rtrn */ 6113 _aux->vmodmap_rtrn = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; 6114 xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 6115 xcb_tmp += xcb_block_len; 6116 xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); 6117 } 6118 /* insert padding */ 6119 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6120 xcb_buffer_len += xcb_block_len + xcb_pad; 6121 if (0 != xcb_pad) { 6122 xcb_tmp += xcb_pad; 6123 xcb_pad = 0; 6124 } 6125 xcb_block_len = 0; 6126 6127 return xcb_buffer_len; 6128 } 6129 6130 int 6131 xcb_xkb_get_map_map_sizeof (const void *_buffer /**< */, 6132 uint8_t nTypes /**< */, 6133 uint8_t nKeySyms /**< */, 6134 uint8_t nKeyActions /**< */, 6135 uint16_t totalActions /**< */, 6136 uint8_t totalKeyBehaviors /**< */, 6137 uint16_t virtualMods /**< */, 6138 uint8_t totalKeyExplicit /**< */, 6139 uint8_t totalModMapKeys /**< */, 6140 uint8_t totalVModMapKeys /**< */, 6141 uint16_t present /**< */) 6142 { 6143 xcb_xkb_get_map_map_t _aux; 6144 return xcb_xkb_get_map_map_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); 6145 } 6146 6147 6148 /***************************************************************************** 6149 ** 6150 ** xcb_xkb_get_map_cookie_t xcb_xkb_get_map 6151 ** 6152 ** @param xcb_connection_t *c 6153 ** @param xcb_xkb_device_spec_t deviceSpec 6154 ** @param uint16_t full 6155 ** @param uint16_t partial 6156 ** @param uint8_t firstType 6157 ** @param uint8_t nTypes 6158 ** @param xcb_keycode_t firstKeySym 6159 ** @param uint8_t nKeySyms 6160 ** @param xcb_keycode_t firstKeyAction 6161 ** @param uint8_t nKeyActions 6162 ** @param xcb_keycode_t firstKeyBehavior 6163 ** @param uint8_t nKeyBehaviors 6164 ** @param uint16_t virtualMods 6165 ** @param xcb_keycode_t firstKeyExplicit 6166 ** @param uint8_t nKeyExplicit 6167 ** @param xcb_keycode_t firstModMapKey 6168 ** @param uint8_t nModMapKeys 6169 ** @param xcb_keycode_t firstVModMapKey 6170 ** @param uint8_t nVModMapKeys 6171 ** @returns xcb_xkb_get_map_cookie_t 6172 ** 6173 *****************************************************************************/ 6174 6175 xcb_xkb_get_map_cookie_t 6176 xcb_xkb_get_map (xcb_connection_t *c /**< */, 6177 xcb_xkb_device_spec_t deviceSpec /**< */, 6178 uint16_t full /**< */, 6179 uint16_t partial /**< */, 6180 uint8_t firstType /**< */, 6181 uint8_t nTypes /**< */, 6182 xcb_keycode_t firstKeySym /**< */, 6183 uint8_t nKeySyms /**< */, 6184 xcb_keycode_t firstKeyAction /**< */, 6185 uint8_t nKeyActions /**< */, 6186 xcb_keycode_t firstKeyBehavior /**< */, 6187 uint8_t nKeyBehaviors /**< */, 6188 uint16_t virtualMods /**< */, 6189 xcb_keycode_t firstKeyExplicit /**< */, 6190 uint8_t nKeyExplicit /**< */, 6191 xcb_keycode_t firstModMapKey /**< */, 6192 uint8_t nModMapKeys /**< */, 6193 xcb_keycode_t firstVModMapKey /**< */, 6194 uint8_t nVModMapKeys /**< */) 6195 { 6196 static const xcb_protocol_request_t xcb_req = { 6197 /* count */ 2, 6198 /* ext */ &xcb_xkb_id, 6199 /* opcode */ XCB_XKB_GET_MAP, 6200 /* isvoid */ 0 6201 }; 6202 6203 struct iovec xcb_parts[4]; 6204 xcb_xkb_get_map_cookie_t xcb_ret; 6205 xcb_xkb_get_map_request_t xcb_out; 6206 6207 xcb_out.deviceSpec = deviceSpec; 6208 xcb_out.full = full; 6209 xcb_out.partial = partial; 6210 xcb_out.firstType = firstType; 6211 xcb_out.nTypes = nTypes; 6212 xcb_out.firstKeySym = firstKeySym; 6213 xcb_out.nKeySyms = nKeySyms; 6214 xcb_out.firstKeyAction = firstKeyAction; 6215 xcb_out.nKeyActions = nKeyActions; 6216 xcb_out.firstKeyBehavior = firstKeyBehavior; 6217 xcb_out.nKeyBehaviors = nKeyBehaviors; 6218 xcb_out.virtualMods = virtualMods; 6219 xcb_out.firstKeyExplicit = firstKeyExplicit; 6220 xcb_out.nKeyExplicit = nKeyExplicit; 6221 xcb_out.firstModMapKey = firstModMapKey; 6222 xcb_out.nModMapKeys = nModMapKeys; 6223 xcb_out.firstVModMapKey = firstVModMapKey; 6224 xcb_out.nVModMapKeys = nVModMapKeys; 6225 memset(xcb_out.pad0, 0, 2); 6226 6227 xcb_parts[2].iov_base = (char *) &xcb_out; 6228 xcb_parts[2].iov_len = sizeof(xcb_out); 6229 xcb_parts[3].iov_base = 0; 6230 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6231 6232 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6233 return xcb_ret; 6234 } 6235 6236 6237 /***************************************************************************** 6238 ** 6239 ** xcb_xkb_get_map_cookie_t xcb_xkb_get_map_unchecked 6240 ** 6241 ** @param xcb_connection_t *c 6242 ** @param xcb_xkb_device_spec_t deviceSpec 6243 ** @param uint16_t full 6244 ** @param uint16_t partial 6245 ** @param uint8_t firstType 6246 ** @param uint8_t nTypes 6247 ** @param xcb_keycode_t firstKeySym 6248 ** @param uint8_t nKeySyms 6249 ** @param xcb_keycode_t firstKeyAction 6250 ** @param uint8_t nKeyActions 6251 ** @param xcb_keycode_t firstKeyBehavior 6252 ** @param uint8_t nKeyBehaviors 6253 ** @param uint16_t virtualMods 6254 ** @param xcb_keycode_t firstKeyExplicit 6255 ** @param uint8_t nKeyExplicit 6256 ** @param xcb_keycode_t firstModMapKey 6257 ** @param uint8_t nModMapKeys 6258 ** @param xcb_keycode_t firstVModMapKey 6259 ** @param uint8_t nVModMapKeys 6260 ** @returns xcb_xkb_get_map_cookie_t 6261 ** 6262 *****************************************************************************/ 6263 6264 xcb_xkb_get_map_cookie_t 6265 xcb_xkb_get_map_unchecked (xcb_connection_t *c /**< */, 6266 xcb_xkb_device_spec_t deviceSpec /**< */, 6267 uint16_t full /**< */, 6268 uint16_t partial /**< */, 6269 uint8_t firstType /**< */, 6270 uint8_t nTypes /**< */, 6271 xcb_keycode_t firstKeySym /**< */, 6272 uint8_t nKeySyms /**< */, 6273 xcb_keycode_t firstKeyAction /**< */, 6274 uint8_t nKeyActions /**< */, 6275 xcb_keycode_t firstKeyBehavior /**< */, 6276 uint8_t nKeyBehaviors /**< */, 6277 uint16_t virtualMods /**< */, 6278 xcb_keycode_t firstKeyExplicit /**< */, 6279 uint8_t nKeyExplicit /**< */, 6280 xcb_keycode_t firstModMapKey /**< */, 6281 uint8_t nModMapKeys /**< */, 6282 xcb_keycode_t firstVModMapKey /**< */, 6283 uint8_t nVModMapKeys /**< */) 6284 { 6285 static const xcb_protocol_request_t xcb_req = { 6286 /* count */ 2, 6287 /* ext */ &xcb_xkb_id, 6288 /* opcode */ XCB_XKB_GET_MAP, 6289 /* isvoid */ 0 6290 }; 6291 6292 struct iovec xcb_parts[4]; 6293 xcb_xkb_get_map_cookie_t xcb_ret; 6294 xcb_xkb_get_map_request_t xcb_out; 6295 6296 xcb_out.deviceSpec = deviceSpec; 6297 xcb_out.full = full; 6298 xcb_out.partial = partial; 6299 xcb_out.firstType = firstType; 6300 xcb_out.nTypes = nTypes; 6301 xcb_out.firstKeySym = firstKeySym; 6302 xcb_out.nKeySyms = nKeySyms; 6303 xcb_out.firstKeyAction = firstKeyAction; 6304 xcb_out.nKeyActions = nKeyActions; 6305 xcb_out.firstKeyBehavior = firstKeyBehavior; 6306 xcb_out.nKeyBehaviors = nKeyBehaviors; 6307 xcb_out.virtualMods = virtualMods; 6308 xcb_out.firstKeyExplicit = firstKeyExplicit; 6309 xcb_out.nKeyExplicit = nKeyExplicit; 6310 xcb_out.firstModMapKey = firstModMapKey; 6311 xcb_out.nModMapKeys = nModMapKeys; 6312 xcb_out.firstVModMapKey = firstVModMapKey; 6313 xcb_out.nVModMapKeys = nVModMapKeys; 6314 memset(xcb_out.pad0, 0, 2); 6315 6316 xcb_parts[2].iov_base = (char *) &xcb_out; 6317 xcb_parts[2].iov_len = sizeof(xcb_out); 6318 xcb_parts[3].iov_base = 0; 6319 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6320 6321 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6322 return xcb_ret; 6323 } 6324 6325 6326 /***************************************************************************** 6327 ** 6328 ** xcb_xkb_get_map_map_t * xcb_xkb_get_map_map 6329 ** 6330 ** @param const xcb_xkb_get_map_reply_t *R 6331 ** @returns xcb_xkb_get_map_map_t * 6332 ** 6333 *****************************************************************************/ 6334 6335 void * 6336 xcb_xkb_get_map_map (const xcb_xkb_get_map_reply_t *R /**< */) 6337 { 6338 return (void *) (R + 1); 6339 } 6340 6341 6342 /***************************************************************************** 6343 ** 6344 ** xcb_xkb_get_map_reply_t * xcb_xkb_get_map_reply 6345 ** 6346 ** @param xcb_connection_t *c 6347 ** @param xcb_xkb_get_map_cookie_t cookie 6348 ** @param xcb_generic_error_t **e 6349 ** @returns xcb_xkb_get_map_reply_t * 6350 ** 6351 *****************************************************************************/ 6352 6353 xcb_xkb_get_map_reply_t * 6354 xcb_xkb_get_map_reply (xcb_connection_t *c /**< */, 6355 xcb_xkb_get_map_cookie_t cookie /**< */, 6356 xcb_generic_error_t **e /**< */) 6357 { 6358 return (xcb_xkb_get_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6359 } 6360 6361 6362 /***************************************************************************** 6363 ** 6364 ** int xcb_xkb_set_map_values_types_length 6365 ** 6366 ** @param const xcb_xkb_set_map_values_t *R 6367 ** @returns int 6368 ** 6369 *****************************************************************************/ 6370 6371 int 6372 xcb_xkb_set_map_values_types_length (const xcb_xkb_set_map_request_t *R /**< */, 6373 const xcb_xkb_set_map_values_t *S /**< */) 6374 { 6375 return R->nTypes; 6376 } 6377 6378 6379 /***************************************************************************** 6380 ** 6381 ** xcb_xkb_set_key_type_iterator_t xcb_xkb_set_map_values_types_iterator 6382 ** 6383 ** @param const xcb_xkb_set_map_values_t *R 6384 ** @returns xcb_xkb_set_key_type_iterator_t 6385 ** 6386 *****************************************************************************/ 6387 6388 xcb_xkb_set_key_type_iterator_t 6389 xcb_xkb_set_map_values_types_iterator (const xcb_xkb_set_map_request_t *R /**< */, 6390 const xcb_xkb_set_map_values_t *S /**< */) 6391 { 6392 xcb_xkb_set_key_type_iterator_t i; 6393 i.data = /* values */ S->types; 6394 i.rem = R->nTypes; 6395 i.index = (char *) i.data - (char *) S; 6396 return i; 6397 } 6398 6399 6400 /***************************************************************************** 6401 ** 6402 ** int xcb_xkb_set_map_values_syms_length 6403 ** 6404 ** @param const xcb_xkb_set_map_values_t *R 6405 ** @returns int 6406 ** 6407 *****************************************************************************/ 6408 6409 int 6410 xcb_xkb_set_map_values_syms_length (const xcb_xkb_set_map_request_t *R /**< */, 6411 const xcb_xkb_set_map_values_t *S /**< */) 6412 { 6413 return R->nKeySyms; 6414 } 6415 6416 6417 /***************************************************************************** 6418 ** 6419 ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_set_map_values_syms_iterator 6420 ** 6421 ** @param const xcb_xkb_set_map_values_t *R 6422 ** @returns xcb_xkb_key_sym_map_iterator_t 6423 ** 6424 *****************************************************************************/ 6425 6426 xcb_xkb_key_sym_map_iterator_t 6427 xcb_xkb_set_map_values_syms_iterator (const xcb_xkb_set_map_request_t *R /**< */, 6428 const xcb_xkb_set_map_values_t *S /**< */) 6429 { 6430 xcb_xkb_key_sym_map_iterator_t i; 6431 i.data = /* values */ S->syms; 6432 i.rem = R->nKeySyms; 6433 i.index = (char *) i.data - (char *) S; 6434 return i; 6435 } 6436 6437 6438 /***************************************************************************** 6439 ** 6440 ** uint8_t * xcb_xkb_set_map_values_actions_count 6441 ** 6442 ** @param const xcb_xkb_set_map_values_t *S 6443 ** @returns uint8_t * 6444 ** 6445 *****************************************************************************/ 6446 6447 uint8_t * 6448 xcb_xkb_set_map_values_actions_count (const xcb_xkb_set_map_values_t *S /**< */) 6449 { 6450 return /* values */ S->actionsCount; 6451 } 6452 6453 6454 /***************************************************************************** 6455 ** 6456 ** int xcb_xkb_set_map_values_actions_count_length 6457 ** 6458 ** @param const xcb_xkb_set_map_values_t *R 6459 ** @returns int 6460 ** 6461 *****************************************************************************/ 6462 6463 int 6464 xcb_xkb_set_map_values_actions_count_length (const xcb_xkb_set_map_request_t *R /**< */, 6465 const xcb_xkb_set_map_values_t *S /**< */) 6466 { 6467 return R->nKeyActions; 6468 } 6469 6470 6471 /***************************************************************************** 6472 ** 6473 ** xcb_generic_iterator_t xcb_xkb_set_map_values_actions_count_end 6474 ** 6475 ** @param const xcb_xkb_set_map_values_t *R 6476 ** @returns xcb_generic_iterator_t 6477 ** 6478 *****************************************************************************/ 6479 6480 xcb_generic_iterator_t 6481 xcb_xkb_set_map_values_actions_count_end (const xcb_xkb_set_map_request_t *R /**< */, 6482 const xcb_xkb_set_map_values_t *S /**< */) 6483 { 6484 xcb_generic_iterator_t i; 6485 i.data = /* values */ S->actionsCount + R->nKeyActions; 6486 i.rem = 0; 6487 i.index = (char *) i.data - (char *) S; 6488 return i; 6489 } 6490 6491 6492 /***************************************************************************** 6493 ** 6494 ** xcb_xkb_action_t * xcb_xkb_set_map_values_actions 6495 ** 6496 ** @param const xcb_xkb_set_map_values_t *S 6497 ** @returns xcb_xkb_action_t * 6498 ** 6499 *****************************************************************************/ 6500 6501 xcb_xkb_action_t * 6502 xcb_xkb_set_map_values_actions (const xcb_xkb_set_map_values_t *S /**< */) 6503 { 6504 return /* values */ S->actions; 6505 } 6506 6507 6508 /***************************************************************************** 6509 ** 6510 ** int xcb_xkb_set_map_values_actions_length 6511 ** 6512 ** @param const xcb_xkb_set_map_values_t *R 6513 ** @returns int 6514 ** 6515 *****************************************************************************/ 6516 6517 int 6518 xcb_xkb_set_map_values_actions_length (const xcb_xkb_set_map_request_t *R /**< */, 6519 const xcb_xkb_set_map_values_t *S /**< */) 6520 { 6521 return R->totalActions; 6522 } 6523 6524 6525 /***************************************************************************** 6526 ** 6527 ** xcb_xkb_action_iterator_t xcb_xkb_set_map_values_actions_iterator 6528 ** 6529 ** @param const xcb_xkb_set_map_values_t *R 6530 ** @returns xcb_xkb_action_iterator_t 6531 ** 6532 *****************************************************************************/ 6533 6534 xcb_xkb_action_iterator_t 6535 xcb_xkb_set_map_values_actions_iterator (const xcb_xkb_set_map_request_t *R /**< */, 6536 const xcb_xkb_set_map_values_t *S /**< */) 6537 { 6538 xcb_xkb_action_iterator_t i; 6539 i.data = /* values */ S->actions; 6540 i.rem = R->totalActions; 6541 i.index = (char *) i.data - (char *) S; 6542 return i; 6543 } 6544 6545 6546 /***************************************************************************** 6547 ** 6548 ** xcb_xkb_set_behavior_t * xcb_xkb_set_map_values_behaviors 6549 ** 6550 ** @param const xcb_xkb_set_map_values_t *S 6551 ** @returns xcb_xkb_set_behavior_t * 6552 ** 6553 *****************************************************************************/ 6554 6555 xcb_xkb_set_behavior_t * 6556 xcb_xkb_set_map_values_behaviors (const xcb_xkb_set_map_values_t *S /**< */) 6557 { 6558 return /* values */ S->behaviors; 6559 } 6560 6561 6562 /***************************************************************************** 6563 ** 6564 ** int xcb_xkb_set_map_values_behaviors_length 6565 ** 6566 ** @param const xcb_xkb_set_map_values_t *R 6567 ** @returns int 6568 ** 6569 *****************************************************************************/ 6570 6571 int 6572 xcb_xkb_set_map_values_behaviors_length (const xcb_xkb_set_map_request_t *R /**< */, 6573 const xcb_xkb_set_map_values_t *S /**< */) 6574 { 6575 return R->totalKeyBehaviors; 6576 } 6577 6578 6579 /***************************************************************************** 6580 ** 6581 ** xcb_xkb_set_behavior_iterator_t xcb_xkb_set_map_values_behaviors_iterator 6582 ** 6583 ** @param const xcb_xkb_set_map_values_t *R 6584 ** @returns xcb_xkb_set_behavior_iterator_t 6585 ** 6586 *****************************************************************************/ 6587 6588 xcb_xkb_set_behavior_iterator_t 6589 xcb_xkb_set_map_values_behaviors_iterator (const xcb_xkb_set_map_request_t *R /**< */, 6590 const xcb_xkb_set_map_values_t *S /**< */) 6591 { 6592 xcb_xkb_set_behavior_iterator_t i; 6593 i.data = /* values */ S->behaviors; 6594 i.rem = R->totalKeyBehaviors; 6595 i.index = (char *) i.data - (char *) S; 6596 return i; 6597 } 6598 6599 6600 /***************************************************************************** 6601 ** 6602 ** uint8_t * xcb_xkb_set_map_values_vmods 6603 ** 6604 ** @param const xcb_xkb_set_map_values_t *S 6605 ** @returns uint8_t * 6606 ** 6607 *****************************************************************************/ 6608 6609 uint8_t * 6610 xcb_xkb_set_map_values_vmods (const xcb_xkb_set_map_values_t *S /**< */) 6611 { 6612 return /* values */ S->vmods; 6613 } 6614 6615 6616 /***************************************************************************** 6617 ** 6618 ** int xcb_xkb_set_map_values_vmods_length 6619 ** 6620 ** @param const xcb_xkb_set_map_values_t *R 6621 ** @returns int 6622 ** 6623 *****************************************************************************/ 6624 6625 int 6626 xcb_xkb_set_map_values_vmods_length (const xcb_xkb_set_map_request_t *R /**< */, 6627 const xcb_xkb_set_map_values_t *S /**< */) 6628 { 6629 return xcb_popcount(R->virtualMods); 6630 } 6631 6632 6633 /***************************************************************************** 6634 ** 6635 ** xcb_generic_iterator_t xcb_xkb_set_map_values_vmods_end 6636 ** 6637 ** @param const xcb_xkb_set_map_values_t *R 6638 ** @returns xcb_generic_iterator_t 6639 ** 6640 *****************************************************************************/ 6641 6642 xcb_generic_iterator_t 6643 xcb_xkb_set_map_values_vmods_end (const xcb_xkb_set_map_request_t *R /**< */, 6644 const xcb_xkb_set_map_values_t *S /**< */) 6645 { 6646 xcb_generic_iterator_t i; 6647 i.data = /* values */ S->vmods + xcb_popcount(R->virtualMods); 6648 i.rem = 0; 6649 i.index = (char *) i.data - (char *) S; 6650 return i; 6651 } 6652 6653 6654 /***************************************************************************** 6655 ** 6656 ** xcb_xkb_set_explicit_t * xcb_xkb_set_map_values_explicit 6657 ** 6658 ** @param const xcb_xkb_set_map_values_t *S 6659 ** @returns xcb_xkb_set_explicit_t * 6660 ** 6661 *****************************************************************************/ 6662 6663 xcb_xkb_set_explicit_t * 6664 xcb_xkb_set_map_values_explicit (const xcb_xkb_set_map_values_t *S /**< */) 6665 { 6666 return /* values */ S->explicit; 6667 } 6668 6669 6670 /***************************************************************************** 6671 ** 6672 ** int xcb_xkb_set_map_values_explicit_length 6673 ** 6674 ** @param const xcb_xkb_set_map_values_t *R 6675 ** @returns int 6676 ** 6677 *****************************************************************************/ 6678 6679 int 6680 xcb_xkb_set_map_values_explicit_length (const xcb_xkb_set_map_request_t *R /**< */, 6681 const xcb_xkb_set_map_values_t *S /**< */) 6682 { 6683 return R->totalKeyExplicit; 6684 } 6685 6686 6687 /***************************************************************************** 6688 ** 6689 ** xcb_xkb_set_explicit_iterator_t xcb_xkb_set_map_values_explicit_iterator 6690 ** 6691 ** @param const xcb_xkb_set_map_values_t *R 6692 ** @returns xcb_xkb_set_explicit_iterator_t 6693 ** 6694 *****************************************************************************/ 6695 6696 xcb_xkb_set_explicit_iterator_t 6697 xcb_xkb_set_map_values_explicit_iterator (const xcb_xkb_set_map_request_t *R /**< */, 6698 const xcb_xkb_set_map_values_t *S /**< */) 6699 { 6700 xcb_xkb_set_explicit_iterator_t i; 6701 i.data = /* values */ S->explicit; 6702 i.rem = R->totalKeyExplicit; 6703 i.index = (char *) i.data - (char *) S; 6704 return i; 6705 } 6706 6707 6708 /***************************************************************************** 6709 ** 6710 ** xcb_xkb_key_mod_map_t * xcb_xkb_set_map_values_modmap 6711 ** 6712 ** @param const xcb_xkb_set_map_values_t *S 6713 ** @returns xcb_xkb_key_mod_map_t * 6714 ** 6715 *****************************************************************************/ 6716 6717 xcb_xkb_key_mod_map_t * 6718 xcb_xkb_set_map_values_modmap (const xcb_xkb_set_map_values_t *S /**< */) 6719 { 6720 return /* values */ S->modmap; 6721 } 6722 6723 6724 /***************************************************************************** 6725 ** 6726 ** int xcb_xkb_set_map_values_modmap_length 6727 ** 6728 ** @param const xcb_xkb_set_map_values_t *R 6729 ** @returns int 6730 ** 6731 *****************************************************************************/ 6732 6733 int 6734 xcb_xkb_set_map_values_modmap_length (const xcb_xkb_set_map_request_t *R /**< */, 6735 const xcb_xkb_set_map_values_t *S /**< */) 6736 { 6737 return R->totalModMapKeys; 6738 } 6739 6740 6741 /***************************************************************************** 6742 ** 6743 ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_set_map_values_modmap_iterator 6744 ** 6745 ** @param const xcb_xkb_set_map_values_t *R 6746 ** @returns xcb_xkb_key_mod_map_iterator_t 6747 ** 6748 *****************************************************************************/ 6749 6750 xcb_xkb_key_mod_map_iterator_t 6751 xcb_xkb_set_map_values_modmap_iterator (const xcb_xkb_set_map_request_t *R /**< */, 6752 const xcb_xkb_set_map_values_t *S /**< */) 6753 { 6754 xcb_xkb_key_mod_map_iterator_t i; 6755 i.data = /* values */ S->modmap; 6756 i.rem = R->totalModMapKeys; 6757 i.index = (char *) i.data - (char *) S; 6758 return i; 6759 } 6760 6761 6762 /***************************************************************************** 6763 ** 6764 ** xcb_xkb_key_v_mod_map_t * xcb_xkb_set_map_values_vmodmap 6765 ** 6766 ** @param const xcb_xkb_set_map_values_t *S 6767 ** @returns xcb_xkb_key_v_mod_map_t * 6768 ** 6769 *****************************************************************************/ 6770 6771 xcb_xkb_key_v_mod_map_t * 6772 xcb_xkb_set_map_values_vmodmap (const xcb_xkb_set_map_values_t *S /**< */) 6773 { 6774 return /* values */ S->vmodmap; 6775 } 6776 6777 6778 /***************************************************************************** 6779 ** 6780 ** int xcb_xkb_set_map_values_vmodmap_length 6781 ** 6782 ** @param const xcb_xkb_set_map_values_t *R 6783 ** @returns int 6784 ** 6785 *****************************************************************************/ 6786 6787 int 6788 xcb_xkb_set_map_values_vmodmap_length (const xcb_xkb_set_map_request_t *R /**< */, 6789 const xcb_xkb_set_map_values_t *S /**< */) 6790 { 6791 return R->totalVModMapKeys; 6792 } 6793 6794 6795 /***************************************************************************** 6796 ** 6797 ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_set_map_values_vmodmap_iterator 6798 ** 6799 ** @param const xcb_xkb_set_map_values_t *R 6800 ** @returns xcb_xkb_key_v_mod_map_iterator_t 6801 ** 6802 *****************************************************************************/ 6803 6804 xcb_xkb_key_v_mod_map_iterator_t 6805 xcb_xkb_set_map_values_vmodmap_iterator (const xcb_xkb_set_map_request_t *R /**< */, 6806 const xcb_xkb_set_map_values_t *S /**< */) 6807 { 6808 xcb_xkb_key_v_mod_map_iterator_t i; 6809 i.data = /* values */ S->vmodmap; 6810 i.rem = R->totalVModMapKeys; 6811 i.index = (char *) i.data - (char *) S; 6812 return i; 6813 } 6814 6815 int 6816 xcb_xkb_set_map_values_serialize (void **_buffer /**< */, 6817 uint8_t nTypes /**< */, 6818 uint8_t nKeySyms /**< */, 6819 uint8_t nKeyActions /**< */, 6820 uint16_t totalActions /**< */, 6821 uint8_t totalKeyBehaviors /**< */, 6822 uint16_t virtualMods /**< */, 6823 uint8_t totalKeyExplicit /**< */, 6824 uint8_t totalModMapKeys /**< */, 6825 uint8_t totalVModMapKeys /**< */, 6826 uint16_t present /**< */, 6827 const xcb_xkb_set_map_values_t *_aux /**< */) 6828 { 6829 char *xcb_out = *_buffer; 6830 unsigned int xcb_buffer_len = 0; 6831 unsigned int xcb_align_to = 0; 6832 6833 unsigned int xcb_pad = 0; 6834 char xcb_pad0[3] = {0, 0, 0}; 6835 struct iovec xcb_parts[19]; 6836 unsigned int xcb_parts_idx = 0; 6837 unsigned int xcb_block_len = 0; 6838 unsigned int i; 6839 char *xcb_tmp; 6840 6841 if(present & XCB_XKB_MAP_PART_KEY_TYPES) { 6842 /* insert padding */ 6843 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6844 xcb_buffer_len += xcb_block_len + xcb_pad; 6845 if (0 != xcb_pad) { 6846 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6847 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 6848 xcb_parts_idx++; 6849 xcb_pad = 0; 6850 } 6851 xcb_block_len = 0; 6852 /* types */ 6853 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types; 6854 xcb_parts[xcb_parts_idx].iov_len = 0; 6855 xcb_tmp = (char *) _aux->types; 6856 for(i=0; i<nTypes; i++) { 6857 xcb_block_len = xcb_xkb_set_key_type_sizeof(xcb_tmp); 6858 xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; 6859 } 6860 xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; 6861 xcb_parts_idx++; 6862 xcb_align_to = ALIGNOF(xcb_xkb_set_key_type_t); 6863 } 6864 if(present & XCB_XKB_MAP_PART_KEY_SYMS) { 6865 /* insert padding */ 6866 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6867 xcb_buffer_len += xcb_block_len + xcb_pad; 6868 if (0 != xcb_pad) { 6869 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6870 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 6871 xcb_parts_idx++; 6872 xcb_pad = 0; 6873 } 6874 xcb_block_len = 0; 6875 /* syms */ 6876 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->syms; 6877 xcb_parts[xcb_parts_idx].iov_len = 0; 6878 xcb_tmp = (char *) _aux->syms; 6879 for(i=0; i<nKeySyms; i++) { 6880 xcb_block_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); 6881 xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; 6882 } 6883 xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; 6884 xcb_parts_idx++; 6885 xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); 6886 } 6887 if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { 6888 /* insert padding */ 6889 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6890 xcb_buffer_len += xcb_block_len + xcb_pad; 6891 if (0 != xcb_pad) { 6892 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6893 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 6894 xcb_parts_idx++; 6895 xcb_pad = 0; 6896 } 6897 xcb_block_len = 0; 6898 /* actionsCount */ 6899 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->actionsCount; 6900 xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); 6901 xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); 6902 xcb_parts_idx++; 6903 xcb_align_to = ALIGNOF(uint8_t); 6904 /* insert padding */ 6905 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6906 xcb_buffer_len += xcb_block_len + xcb_pad; 6907 if (0 != xcb_pad) { 6908 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6909 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 6910 xcb_parts_idx++; 6911 xcb_pad = 0; 6912 } 6913 xcb_block_len = 0; 6914 /* actions */ 6915 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->actions; 6916 xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); 6917 xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); 6918 xcb_parts_idx++; 6919 xcb_align_to = ALIGNOF(xcb_xkb_action_t); 6920 } 6921 if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { 6922 /* insert padding */ 6923 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6924 xcb_buffer_len += xcb_block_len + xcb_pad; 6925 if (0 != xcb_pad) { 6926 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6927 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 6928 xcb_parts_idx++; 6929 xcb_pad = 0; 6930 } 6931 xcb_block_len = 0; 6932 /* behaviors */ 6933 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors; 6934 xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 6935 xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 6936 xcb_parts_idx++; 6937 xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); 6938 } 6939 if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { 6940 /* insert padding */ 6941 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6942 xcb_buffer_len += xcb_block_len + xcb_pad; 6943 if (0 != xcb_pad) { 6944 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6945 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 6946 xcb_parts_idx++; 6947 xcb_pad = 0; 6948 } 6949 xcb_block_len = 0; 6950 /* vmods */ 6951 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods; 6952 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 6953 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 6954 xcb_parts_idx++; 6955 xcb_align_to = ALIGNOF(uint8_t); 6956 } 6957 if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { 6958 /* insert padding */ 6959 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6960 xcb_buffer_len += xcb_block_len + xcb_pad; 6961 if (0 != xcb_pad) { 6962 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6963 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 6964 xcb_parts_idx++; 6965 xcb_pad = 0; 6966 } 6967 xcb_block_len = 0; 6968 /* explicit */ 6969 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit; 6970 xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 6971 xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 6972 xcb_parts_idx++; 6973 xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); 6974 } 6975 if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { 6976 /* insert padding */ 6977 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6978 xcb_buffer_len += xcb_block_len + xcb_pad; 6979 if (0 != xcb_pad) { 6980 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6981 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 6982 xcb_parts_idx++; 6983 xcb_pad = 0; 6984 } 6985 xcb_block_len = 0; 6986 /* modmap */ 6987 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap; 6988 xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 6989 xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 6990 xcb_parts_idx++; 6991 xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); 6992 } 6993 if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { 6994 /* insert padding */ 6995 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6996 xcb_buffer_len += xcb_block_len + xcb_pad; 6997 if (0 != xcb_pad) { 6998 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 6999 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 7000 xcb_parts_idx++; 7001 xcb_pad = 0; 7002 } 7003 xcb_block_len = 0; 7004 /* vmodmap */ 7005 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap; 7006 xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 7007 xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 7008 xcb_parts_idx++; 7009 xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); 7010 } 7011 /* insert padding */ 7012 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7013 xcb_buffer_len += xcb_block_len + xcb_pad; 7014 if (0 != xcb_pad) { 7015 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 7016 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 7017 xcb_parts_idx++; 7018 xcb_pad = 0; 7019 } 7020 xcb_block_len = 0; 7021 7022 if (NULL == xcb_out) { 7023 /* allocate memory */ 7024 xcb_out = malloc(xcb_buffer_len); 7025 *_buffer = xcb_out; 7026 } 7027 7028 xcb_tmp = xcb_out; 7029 for(i=0; i<xcb_parts_idx; i++) { 7030 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 7031 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 7032 if (0 != xcb_parts[i].iov_len) 7033 xcb_tmp += xcb_parts[i].iov_len; 7034 } 7035 7036 return xcb_buffer_len; 7037 } 7038 7039 int 7040 xcb_xkb_set_map_values_unpack (const void *_buffer /**< */, 7041 uint8_t nTypes /**< */, 7042 uint8_t nKeySyms /**< */, 7043 uint8_t nKeyActions /**< */, 7044 uint16_t totalActions /**< */, 7045 uint8_t totalKeyBehaviors /**< */, 7046 uint16_t virtualMods /**< */, 7047 uint8_t totalKeyExplicit /**< */, 7048 uint8_t totalModMapKeys /**< */, 7049 uint8_t totalVModMapKeys /**< */, 7050 uint16_t present /**< */, 7051 xcb_xkb_set_map_values_t *_aux /**< */) 7052 { 7053 char *xcb_tmp = (char *)_buffer; 7054 unsigned int xcb_buffer_len = 0; 7055 unsigned int xcb_block_len = 0; 7056 unsigned int xcb_pad = 0; 7057 unsigned int xcb_align_to = 0; 7058 7059 unsigned int i; 7060 unsigned int xcb_tmp_len; 7061 7062 if(present & XCB_XKB_MAP_PART_KEY_TYPES) { 7063 /* insert padding */ 7064 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7065 xcb_buffer_len += xcb_block_len + xcb_pad; 7066 if (0 != xcb_pad) { 7067 xcb_tmp += xcb_pad; 7068 xcb_pad = 0; 7069 } 7070 xcb_block_len = 0; 7071 /* types */ 7072 _aux->types = (xcb_xkb_set_key_type_t *)xcb_tmp; 7073 for(i=0; i<nTypes; i++) { 7074 xcb_tmp_len = xcb_xkb_set_key_type_sizeof(xcb_tmp); 7075 xcb_block_len += xcb_tmp_len; 7076 xcb_tmp += xcb_tmp_len; 7077 } 7078 xcb_align_to = ALIGNOF(xcb_xkb_set_key_type_t); 7079 } 7080 if(present & XCB_XKB_MAP_PART_KEY_SYMS) { 7081 /* insert padding */ 7082 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7083 xcb_buffer_len += xcb_block_len + xcb_pad; 7084 if (0 != xcb_pad) { 7085 xcb_tmp += xcb_pad; 7086 xcb_pad = 0; 7087 } 7088 xcb_block_len = 0; 7089 /* syms */ 7090 _aux->syms = (xcb_xkb_key_sym_map_t *)xcb_tmp; 7091 for(i=0; i<nKeySyms; i++) { 7092 xcb_tmp_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); 7093 xcb_block_len += xcb_tmp_len; 7094 xcb_tmp += xcb_tmp_len; 7095 } 7096 xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); 7097 } 7098 if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { 7099 /* insert padding */ 7100 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7101 xcb_buffer_len += xcb_block_len + xcb_pad; 7102 if (0 != xcb_pad) { 7103 xcb_tmp += xcb_pad; 7104 xcb_pad = 0; 7105 } 7106 xcb_block_len = 0; 7107 /* actionsCount */ 7108 _aux->actionsCount = (uint8_t *)xcb_tmp; 7109 xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); 7110 xcb_tmp += xcb_block_len; 7111 xcb_align_to = ALIGNOF(uint8_t); 7112 /* insert padding */ 7113 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7114 xcb_buffer_len += xcb_block_len + xcb_pad; 7115 if (0 != xcb_pad) { 7116 xcb_tmp += xcb_pad; 7117 xcb_pad = 0; 7118 } 7119 xcb_block_len = 0; 7120 /* actions */ 7121 _aux->actions = (xcb_xkb_action_t *)xcb_tmp; 7122 xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); 7123 xcb_tmp += xcb_block_len; 7124 xcb_align_to = ALIGNOF(xcb_xkb_action_t); 7125 } 7126 if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { 7127 /* insert padding */ 7128 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7129 xcb_buffer_len += xcb_block_len + xcb_pad; 7130 if (0 != xcb_pad) { 7131 xcb_tmp += xcb_pad; 7132 xcb_pad = 0; 7133 } 7134 xcb_block_len = 0; 7135 /* behaviors */ 7136 _aux->behaviors = (xcb_xkb_set_behavior_t *)xcb_tmp; 7137 xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 7138 xcb_tmp += xcb_block_len; 7139 xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); 7140 } 7141 if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { 7142 /* insert padding */ 7143 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7144 xcb_buffer_len += xcb_block_len + xcb_pad; 7145 if (0 != xcb_pad) { 7146 xcb_tmp += xcb_pad; 7147 xcb_pad = 0; 7148 } 7149 xcb_block_len = 0; 7150 /* vmods */ 7151 _aux->vmods = (uint8_t *)xcb_tmp; 7152 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 7153 xcb_tmp += xcb_block_len; 7154 xcb_align_to = ALIGNOF(uint8_t); 7155 } 7156 if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { 7157 /* insert padding */ 7158 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7159 xcb_buffer_len += xcb_block_len + xcb_pad; 7160 if (0 != xcb_pad) { 7161 xcb_tmp += xcb_pad; 7162 xcb_pad = 0; 7163 } 7164 xcb_block_len = 0; 7165 /* explicit */ 7166 _aux->explicit = (xcb_xkb_set_explicit_t *)xcb_tmp; 7167 xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 7168 xcb_tmp += xcb_block_len; 7169 xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); 7170 } 7171 if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { 7172 /* insert padding */ 7173 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7174 xcb_buffer_len += xcb_block_len + xcb_pad; 7175 if (0 != xcb_pad) { 7176 xcb_tmp += xcb_pad; 7177 xcb_pad = 0; 7178 } 7179 xcb_block_len = 0; 7180 /* modmap */ 7181 _aux->modmap = (xcb_xkb_key_mod_map_t *)xcb_tmp; 7182 xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 7183 xcb_tmp += xcb_block_len; 7184 xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); 7185 } 7186 if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { 7187 /* insert padding */ 7188 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7189 xcb_buffer_len += xcb_block_len + xcb_pad; 7190 if (0 != xcb_pad) { 7191 xcb_tmp += xcb_pad; 7192 xcb_pad = 0; 7193 } 7194 xcb_block_len = 0; 7195 /* vmodmap */ 7196 _aux->vmodmap = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; 7197 xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 7198 xcb_tmp += xcb_block_len; 7199 xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); 7200 } 7201 /* insert padding */ 7202 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7203 xcb_buffer_len += xcb_block_len + xcb_pad; 7204 if (0 != xcb_pad) { 7205 xcb_tmp += xcb_pad; 7206 xcb_pad = 0; 7207 } 7208 xcb_block_len = 0; 7209 7210 return xcb_buffer_len; 7211 } 7212 7213 int 7214 xcb_xkb_set_map_values_sizeof (const void *_buffer /**< */, 7215 uint8_t nTypes /**< */, 7216 uint8_t nKeySyms /**< */, 7217 uint8_t nKeyActions /**< */, 7218 uint16_t totalActions /**< */, 7219 uint8_t totalKeyBehaviors /**< */, 7220 uint16_t virtualMods /**< */, 7221 uint8_t totalKeyExplicit /**< */, 7222 uint8_t totalModMapKeys /**< */, 7223 uint8_t totalVModMapKeys /**< */, 7224 uint16_t present /**< */) 7225 { 7226 xcb_xkb_set_map_values_t _aux; 7227 return xcb_xkb_set_map_values_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); 7228 } 7229 7230 7231 /***************************************************************************** 7232 ** 7233 ** xcb_void_cookie_t xcb_xkb_set_map_checked 7234 ** 7235 ** @param xcb_connection_t *c 7236 ** @param xcb_xkb_device_spec_t deviceSpec 7237 ** @param uint16_t present 7238 ** @param uint16_t flags 7239 ** @param xcb_keycode_t minKeyCode 7240 ** @param xcb_keycode_t maxKeyCode 7241 ** @param uint8_t firstType 7242 ** @param uint8_t nTypes 7243 ** @param xcb_keycode_t firstKeySym 7244 ** @param uint8_t nKeySyms 7245 ** @param uint16_t totalSyms 7246 ** @param xcb_keycode_t firstKeyAction 7247 ** @param uint8_t nKeyActions 7248 ** @param uint16_t totalActions 7249 ** @param xcb_keycode_t firstKeyBehavior 7250 ** @param uint8_t nKeyBehaviors 7251 ** @param uint8_t totalKeyBehaviors 7252 ** @param xcb_keycode_t firstKeyExplicit 7253 ** @param uint8_t nKeyExplicit 7254 ** @param uint8_t totalKeyExplicit 7255 ** @param xcb_keycode_t firstModMapKey 7256 ** @param uint8_t nModMapKeys 7257 ** @param uint8_t totalModMapKeys 7258 ** @param xcb_keycode_t firstVModMapKey 7259 ** @param uint8_t nVModMapKeys 7260 ** @param uint8_t totalVModMapKeys 7261 ** @param uint16_t virtualMods 7262 ** @param const void *values 7263 ** @returns xcb_void_cookie_t 7264 ** 7265 *****************************************************************************/ 7266 7267 xcb_void_cookie_t 7268 xcb_xkb_set_map_checked (xcb_connection_t *c /**< */, 7269 xcb_xkb_device_spec_t deviceSpec /**< */, 7270 uint16_t present /**< */, 7271 uint16_t flags /**< */, 7272 xcb_keycode_t minKeyCode /**< */, 7273 xcb_keycode_t maxKeyCode /**< */, 7274 uint8_t firstType /**< */, 7275 uint8_t nTypes /**< */, 7276 xcb_keycode_t firstKeySym /**< */, 7277 uint8_t nKeySyms /**< */, 7278 uint16_t totalSyms /**< */, 7279 xcb_keycode_t firstKeyAction /**< */, 7280 uint8_t nKeyActions /**< */, 7281 uint16_t totalActions /**< */, 7282 xcb_keycode_t firstKeyBehavior /**< */, 7283 uint8_t nKeyBehaviors /**< */, 7284 uint8_t totalKeyBehaviors /**< */, 7285 xcb_keycode_t firstKeyExplicit /**< */, 7286 uint8_t nKeyExplicit /**< */, 7287 uint8_t totalKeyExplicit /**< */, 7288 xcb_keycode_t firstModMapKey /**< */, 7289 uint8_t nModMapKeys /**< */, 7290 uint8_t totalModMapKeys /**< */, 7291 xcb_keycode_t firstVModMapKey /**< */, 7292 uint8_t nVModMapKeys /**< */, 7293 uint8_t totalVModMapKeys /**< */, 7294 uint16_t virtualMods /**< */, 7295 const void *values /**< */) 7296 { 7297 static const xcb_protocol_request_t xcb_req = { 7298 /* count */ 3, 7299 /* ext */ &xcb_xkb_id, 7300 /* opcode */ XCB_XKB_SET_MAP, 7301 /* isvoid */ 1 7302 }; 7303 7304 struct iovec xcb_parts[5]; 7305 xcb_void_cookie_t xcb_ret; 7306 xcb_xkb_set_map_request_t xcb_out; 7307 7308 xcb_out.deviceSpec = deviceSpec; 7309 xcb_out.present = present; 7310 xcb_out.flags = flags; 7311 xcb_out.minKeyCode = minKeyCode; 7312 xcb_out.maxKeyCode = maxKeyCode; 7313 xcb_out.firstType = firstType; 7314 xcb_out.nTypes = nTypes; 7315 xcb_out.firstKeySym = firstKeySym; 7316 xcb_out.nKeySyms = nKeySyms; 7317 xcb_out.totalSyms = totalSyms; 7318 xcb_out.firstKeyAction = firstKeyAction; 7319 xcb_out.nKeyActions = nKeyActions; 7320 xcb_out.totalActions = totalActions; 7321 xcb_out.firstKeyBehavior = firstKeyBehavior; 7322 xcb_out.nKeyBehaviors = nKeyBehaviors; 7323 xcb_out.totalKeyBehaviors = totalKeyBehaviors; 7324 xcb_out.firstKeyExplicit = firstKeyExplicit; 7325 xcb_out.nKeyExplicit = nKeyExplicit; 7326 xcb_out.totalKeyExplicit = totalKeyExplicit; 7327 xcb_out.firstModMapKey = firstModMapKey; 7328 xcb_out.nModMapKeys = nModMapKeys; 7329 xcb_out.totalModMapKeys = totalModMapKeys; 7330 xcb_out.firstVModMapKey = firstVModMapKey; 7331 xcb_out.nVModMapKeys = nVModMapKeys; 7332 xcb_out.totalVModMapKeys = totalVModMapKeys; 7333 xcb_out.virtualMods = virtualMods; 7334 7335 xcb_parts[2].iov_base = (char *) &xcb_out; 7336 xcb_parts[2].iov_len = sizeof(xcb_out); 7337 xcb_parts[3].iov_base = 0; 7338 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7339 /* xcb_xkb_set_map_values_t values */ 7340 xcb_parts[4].iov_base = (char *) values; 7341 xcb_parts[4].iov_len = 7342 xcb_xkb_set_map_values_sizeof (values, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present); 7343 7344 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7345 return xcb_ret; 7346 } 7347 7348 7349 /***************************************************************************** 7350 ** 7351 ** xcb_void_cookie_t xcb_xkb_set_map 7352 ** 7353 ** @param xcb_connection_t *c 7354 ** @param xcb_xkb_device_spec_t deviceSpec 7355 ** @param uint16_t present 7356 ** @param uint16_t flags 7357 ** @param xcb_keycode_t minKeyCode 7358 ** @param xcb_keycode_t maxKeyCode 7359 ** @param uint8_t firstType 7360 ** @param uint8_t nTypes 7361 ** @param xcb_keycode_t firstKeySym 7362 ** @param uint8_t nKeySyms 7363 ** @param uint16_t totalSyms 7364 ** @param xcb_keycode_t firstKeyAction 7365 ** @param uint8_t nKeyActions 7366 ** @param uint16_t totalActions 7367 ** @param xcb_keycode_t firstKeyBehavior 7368 ** @param uint8_t nKeyBehaviors 7369 ** @param uint8_t totalKeyBehaviors 7370 ** @param xcb_keycode_t firstKeyExplicit 7371 ** @param uint8_t nKeyExplicit 7372 ** @param uint8_t totalKeyExplicit 7373 ** @param xcb_keycode_t firstModMapKey 7374 ** @param uint8_t nModMapKeys 7375 ** @param uint8_t totalModMapKeys 7376 ** @param xcb_keycode_t firstVModMapKey 7377 ** @param uint8_t nVModMapKeys 7378 ** @param uint8_t totalVModMapKeys 7379 ** @param uint16_t virtualMods 7380 ** @param const void *values 7381 ** @returns xcb_void_cookie_t 7382 ** 7383 *****************************************************************************/ 7384 7385 xcb_void_cookie_t 7386 xcb_xkb_set_map (xcb_connection_t *c /**< */, 7387 xcb_xkb_device_spec_t deviceSpec /**< */, 7388 uint16_t present /**< */, 7389 uint16_t flags /**< */, 7390 xcb_keycode_t minKeyCode /**< */, 7391 xcb_keycode_t maxKeyCode /**< */, 7392 uint8_t firstType /**< */, 7393 uint8_t nTypes /**< */, 7394 xcb_keycode_t firstKeySym /**< */, 7395 uint8_t nKeySyms /**< */, 7396 uint16_t totalSyms /**< */, 7397 xcb_keycode_t firstKeyAction /**< */, 7398 uint8_t nKeyActions /**< */, 7399 uint16_t totalActions /**< */, 7400 xcb_keycode_t firstKeyBehavior /**< */, 7401 uint8_t nKeyBehaviors /**< */, 7402 uint8_t totalKeyBehaviors /**< */, 7403 xcb_keycode_t firstKeyExplicit /**< */, 7404 uint8_t nKeyExplicit /**< */, 7405 uint8_t totalKeyExplicit /**< */, 7406 xcb_keycode_t firstModMapKey /**< */, 7407 uint8_t nModMapKeys /**< */, 7408 uint8_t totalModMapKeys /**< */, 7409 xcb_keycode_t firstVModMapKey /**< */, 7410 uint8_t nVModMapKeys /**< */, 7411 uint8_t totalVModMapKeys /**< */, 7412 uint16_t virtualMods /**< */, 7413 const void *values /**< */) 7414 { 7415 static const xcb_protocol_request_t xcb_req = { 7416 /* count */ 3, 7417 /* ext */ &xcb_xkb_id, 7418 /* opcode */ XCB_XKB_SET_MAP, 7419 /* isvoid */ 1 7420 }; 7421 7422 struct iovec xcb_parts[5]; 7423 xcb_void_cookie_t xcb_ret; 7424 xcb_xkb_set_map_request_t xcb_out; 7425 7426 xcb_out.deviceSpec = deviceSpec; 7427 xcb_out.present = present; 7428 xcb_out.flags = flags; 7429 xcb_out.minKeyCode = minKeyCode; 7430 xcb_out.maxKeyCode = maxKeyCode; 7431 xcb_out.firstType = firstType; 7432 xcb_out.nTypes = nTypes; 7433 xcb_out.firstKeySym = firstKeySym; 7434 xcb_out.nKeySyms = nKeySyms; 7435 xcb_out.totalSyms = totalSyms; 7436 xcb_out.firstKeyAction = firstKeyAction; 7437 xcb_out.nKeyActions = nKeyActions; 7438 xcb_out.totalActions = totalActions; 7439 xcb_out.firstKeyBehavior = firstKeyBehavior; 7440 xcb_out.nKeyBehaviors = nKeyBehaviors; 7441 xcb_out.totalKeyBehaviors = totalKeyBehaviors; 7442 xcb_out.firstKeyExplicit = firstKeyExplicit; 7443 xcb_out.nKeyExplicit = nKeyExplicit; 7444 xcb_out.totalKeyExplicit = totalKeyExplicit; 7445 xcb_out.firstModMapKey = firstModMapKey; 7446 xcb_out.nModMapKeys = nModMapKeys; 7447 xcb_out.totalModMapKeys = totalModMapKeys; 7448 xcb_out.firstVModMapKey = firstVModMapKey; 7449 xcb_out.nVModMapKeys = nVModMapKeys; 7450 xcb_out.totalVModMapKeys = totalVModMapKeys; 7451 xcb_out.virtualMods = virtualMods; 7452 7453 xcb_parts[2].iov_base = (char *) &xcb_out; 7454 xcb_parts[2].iov_len = sizeof(xcb_out); 7455 xcb_parts[3].iov_base = 0; 7456 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7457 /* xcb_xkb_set_map_values_t values */ 7458 xcb_parts[4].iov_base = (char *) values; 7459 xcb_parts[4].iov_len = 7460 xcb_xkb_set_map_values_sizeof (values, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present); 7461 7462 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7463 return xcb_ret; 7464 } 7465 7466 7467 /***************************************************************************** 7468 ** 7469 ** xcb_void_cookie_t xcb_xkb_set_map_aux_checked 7470 ** 7471 ** @param xcb_connection_t *c 7472 ** @param xcb_xkb_device_spec_t deviceSpec 7473 ** @param uint16_t present 7474 ** @param uint16_t flags 7475 ** @param xcb_keycode_t minKeyCode 7476 ** @param xcb_keycode_t maxKeyCode 7477 ** @param uint8_t firstType 7478 ** @param uint8_t nTypes 7479 ** @param xcb_keycode_t firstKeySym 7480 ** @param uint8_t nKeySyms 7481 ** @param uint16_t totalSyms 7482 ** @param xcb_keycode_t firstKeyAction 7483 ** @param uint8_t nKeyActions 7484 ** @param uint16_t totalActions 7485 ** @param xcb_keycode_t firstKeyBehavior 7486 ** @param uint8_t nKeyBehaviors 7487 ** @param uint8_t totalKeyBehaviors 7488 ** @param xcb_keycode_t firstKeyExplicit 7489 ** @param uint8_t nKeyExplicit 7490 ** @param uint8_t totalKeyExplicit 7491 ** @param xcb_keycode_t firstModMapKey 7492 ** @param uint8_t nModMapKeys 7493 ** @param uint8_t totalModMapKeys 7494 ** @param xcb_keycode_t firstVModMapKey 7495 ** @param uint8_t nVModMapKeys 7496 ** @param uint8_t totalVModMapKeys 7497 ** @param uint16_t virtualMods 7498 ** @param const xcb_xkb_set_map_values_t *values 7499 ** @returns xcb_void_cookie_t 7500 ** 7501 *****************************************************************************/ 7502 7503 xcb_void_cookie_t 7504 xcb_xkb_set_map_aux_checked (xcb_connection_t *c /**< */, 7505 xcb_xkb_device_spec_t deviceSpec /**< */, 7506 uint16_t present /**< */, 7507 uint16_t flags /**< */, 7508 xcb_keycode_t minKeyCode /**< */, 7509 xcb_keycode_t maxKeyCode /**< */, 7510 uint8_t firstType /**< */, 7511 uint8_t nTypes /**< */, 7512 xcb_keycode_t firstKeySym /**< */, 7513 uint8_t nKeySyms /**< */, 7514 uint16_t totalSyms /**< */, 7515 xcb_keycode_t firstKeyAction /**< */, 7516 uint8_t nKeyActions /**< */, 7517 uint16_t totalActions /**< */, 7518 xcb_keycode_t firstKeyBehavior /**< */, 7519 uint8_t nKeyBehaviors /**< */, 7520 uint8_t totalKeyBehaviors /**< */, 7521 xcb_keycode_t firstKeyExplicit /**< */, 7522 uint8_t nKeyExplicit /**< */, 7523 uint8_t totalKeyExplicit /**< */, 7524 xcb_keycode_t firstModMapKey /**< */, 7525 uint8_t nModMapKeys /**< */, 7526 uint8_t totalModMapKeys /**< */, 7527 xcb_keycode_t firstVModMapKey /**< */, 7528 uint8_t nVModMapKeys /**< */, 7529 uint8_t totalVModMapKeys /**< */, 7530 uint16_t virtualMods /**< */, 7531 const xcb_xkb_set_map_values_t *values /**< */) 7532 { 7533 static const xcb_protocol_request_t xcb_req = { 7534 /* count */ 3, 7535 /* ext */ &xcb_xkb_id, 7536 /* opcode */ XCB_XKB_SET_MAP, 7537 /* isvoid */ 1 7538 }; 7539 7540 struct iovec xcb_parts[5]; 7541 xcb_void_cookie_t xcb_ret; 7542 xcb_xkb_set_map_request_t xcb_out; 7543 void *xcb_aux0 = 0; 7544 7545 xcb_out.deviceSpec = deviceSpec; 7546 xcb_out.present = present; 7547 xcb_out.flags = flags; 7548 xcb_out.minKeyCode = minKeyCode; 7549 xcb_out.maxKeyCode = maxKeyCode; 7550 xcb_out.firstType = firstType; 7551 xcb_out.nTypes = nTypes; 7552 xcb_out.firstKeySym = firstKeySym; 7553 xcb_out.nKeySyms = nKeySyms; 7554 xcb_out.totalSyms = totalSyms; 7555 xcb_out.firstKeyAction = firstKeyAction; 7556 xcb_out.nKeyActions = nKeyActions; 7557 xcb_out.totalActions = totalActions; 7558 xcb_out.firstKeyBehavior = firstKeyBehavior; 7559 xcb_out.nKeyBehaviors = nKeyBehaviors; 7560 xcb_out.totalKeyBehaviors = totalKeyBehaviors; 7561 xcb_out.firstKeyExplicit = firstKeyExplicit; 7562 xcb_out.nKeyExplicit = nKeyExplicit; 7563 xcb_out.totalKeyExplicit = totalKeyExplicit; 7564 xcb_out.firstModMapKey = firstModMapKey; 7565 xcb_out.nModMapKeys = nModMapKeys; 7566 xcb_out.totalModMapKeys = totalModMapKeys; 7567 xcb_out.firstVModMapKey = firstVModMapKey; 7568 xcb_out.nVModMapKeys = nVModMapKeys; 7569 xcb_out.totalVModMapKeys = totalVModMapKeys; 7570 xcb_out.virtualMods = virtualMods; 7571 7572 xcb_parts[2].iov_base = (char *) &xcb_out; 7573 xcb_parts[2].iov_len = sizeof(xcb_out); 7574 xcb_parts[3].iov_base = 0; 7575 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7576 /* xcb_xkb_set_map_values_t values */ 7577 xcb_parts[4].iov_len = 7578 xcb_xkb_set_map_values_serialize (&xcb_aux0, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, values); 7579 xcb_parts[4].iov_base = xcb_aux0; 7580 7581 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7582 free(xcb_aux0); 7583 return xcb_ret; 7584 } 7585 7586 7587 /***************************************************************************** 7588 ** 7589 ** xcb_void_cookie_t xcb_xkb_set_map_aux 7590 ** 7591 ** @param xcb_connection_t *c 7592 ** @param xcb_xkb_device_spec_t deviceSpec 7593 ** @param uint16_t present 7594 ** @param uint16_t flags 7595 ** @param xcb_keycode_t minKeyCode 7596 ** @param xcb_keycode_t maxKeyCode 7597 ** @param uint8_t firstType 7598 ** @param uint8_t nTypes 7599 ** @param xcb_keycode_t firstKeySym 7600 ** @param uint8_t nKeySyms 7601 ** @param uint16_t totalSyms 7602 ** @param xcb_keycode_t firstKeyAction 7603 ** @param uint8_t nKeyActions 7604 ** @param uint16_t totalActions 7605 ** @param xcb_keycode_t firstKeyBehavior 7606 ** @param uint8_t nKeyBehaviors 7607 ** @param uint8_t totalKeyBehaviors 7608 ** @param xcb_keycode_t firstKeyExplicit 7609 ** @param uint8_t nKeyExplicit 7610 ** @param uint8_t totalKeyExplicit 7611 ** @param xcb_keycode_t firstModMapKey 7612 ** @param uint8_t nModMapKeys 7613 ** @param uint8_t totalModMapKeys 7614 ** @param xcb_keycode_t firstVModMapKey 7615 ** @param uint8_t nVModMapKeys 7616 ** @param uint8_t totalVModMapKeys 7617 ** @param uint16_t virtualMods 7618 ** @param const xcb_xkb_set_map_values_t *values 7619 ** @returns xcb_void_cookie_t 7620 ** 7621 *****************************************************************************/ 7622 7623 xcb_void_cookie_t 7624 xcb_xkb_set_map_aux (xcb_connection_t *c /**< */, 7625 xcb_xkb_device_spec_t deviceSpec /**< */, 7626 uint16_t present /**< */, 7627 uint16_t flags /**< */, 7628 xcb_keycode_t minKeyCode /**< */, 7629 xcb_keycode_t maxKeyCode /**< */, 7630 uint8_t firstType /**< */, 7631 uint8_t nTypes /**< */, 7632 xcb_keycode_t firstKeySym /**< */, 7633 uint8_t nKeySyms /**< */, 7634 uint16_t totalSyms /**< */, 7635 xcb_keycode_t firstKeyAction /**< */, 7636 uint8_t nKeyActions /**< */, 7637 uint16_t totalActions /**< */, 7638 xcb_keycode_t firstKeyBehavior /**< */, 7639 uint8_t nKeyBehaviors /**< */, 7640 uint8_t totalKeyBehaviors /**< */, 7641 xcb_keycode_t firstKeyExplicit /**< */, 7642 uint8_t nKeyExplicit /**< */, 7643 uint8_t totalKeyExplicit /**< */, 7644 xcb_keycode_t firstModMapKey /**< */, 7645 uint8_t nModMapKeys /**< */, 7646 uint8_t totalModMapKeys /**< */, 7647 xcb_keycode_t firstVModMapKey /**< */, 7648 uint8_t nVModMapKeys /**< */, 7649 uint8_t totalVModMapKeys /**< */, 7650 uint16_t virtualMods /**< */, 7651 const xcb_xkb_set_map_values_t *values /**< */) 7652 { 7653 static const xcb_protocol_request_t xcb_req = { 7654 /* count */ 3, 7655 /* ext */ &xcb_xkb_id, 7656 /* opcode */ XCB_XKB_SET_MAP, 7657 /* isvoid */ 1 7658 }; 7659 7660 struct iovec xcb_parts[5]; 7661 xcb_void_cookie_t xcb_ret; 7662 xcb_xkb_set_map_request_t xcb_out; 7663 void *xcb_aux0 = 0; 7664 7665 xcb_out.deviceSpec = deviceSpec; 7666 xcb_out.present = present; 7667 xcb_out.flags = flags; 7668 xcb_out.minKeyCode = minKeyCode; 7669 xcb_out.maxKeyCode = maxKeyCode; 7670 xcb_out.firstType = firstType; 7671 xcb_out.nTypes = nTypes; 7672 xcb_out.firstKeySym = firstKeySym; 7673 xcb_out.nKeySyms = nKeySyms; 7674 xcb_out.totalSyms = totalSyms; 7675 xcb_out.firstKeyAction = firstKeyAction; 7676 xcb_out.nKeyActions = nKeyActions; 7677 xcb_out.totalActions = totalActions; 7678 xcb_out.firstKeyBehavior = firstKeyBehavior; 7679 xcb_out.nKeyBehaviors = nKeyBehaviors; 7680 xcb_out.totalKeyBehaviors = totalKeyBehaviors; 7681 xcb_out.firstKeyExplicit = firstKeyExplicit; 7682 xcb_out.nKeyExplicit = nKeyExplicit; 7683 xcb_out.totalKeyExplicit = totalKeyExplicit; 7684 xcb_out.firstModMapKey = firstModMapKey; 7685 xcb_out.nModMapKeys = nModMapKeys; 7686 xcb_out.totalModMapKeys = totalModMapKeys; 7687 xcb_out.firstVModMapKey = firstVModMapKey; 7688 xcb_out.nVModMapKeys = nVModMapKeys; 7689 xcb_out.totalVModMapKeys = totalVModMapKeys; 7690 xcb_out.virtualMods = virtualMods; 7691 7692 xcb_parts[2].iov_base = (char *) &xcb_out; 7693 xcb_parts[2].iov_len = sizeof(xcb_out); 7694 xcb_parts[3].iov_base = 0; 7695 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7696 /* xcb_xkb_set_map_values_t values */ 7697 xcb_parts[4].iov_len = 7698 xcb_xkb_set_map_values_serialize (&xcb_aux0, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, values); 7699 xcb_parts[4].iov_base = xcb_aux0; 7700 7701 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7702 free(xcb_aux0); 7703 return xcb_ret; 7704 } 7705 7706 int 7707 xcb_xkb_get_compat_map_sizeof (const void *_buffer /**< */) 7708 { 7709 char *xcb_tmp = (char *)_buffer; 7710 const xcb_xkb_get_compat_map_reply_t *_aux = (xcb_xkb_get_compat_map_reply_t *)_buffer; 7711 unsigned int xcb_buffer_len = 0; 7712 unsigned int xcb_block_len = 0; 7713 unsigned int xcb_pad = 0; 7714 unsigned int xcb_align_to = 0; 7715 7716 7717 xcb_block_len += sizeof(xcb_xkb_get_compat_map_reply_t); 7718 xcb_tmp += xcb_block_len; 7719 xcb_buffer_len += xcb_block_len; 7720 xcb_block_len = 0; 7721 /* si_rtrn */ 7722 xcb_block_len += _aux->nSIRtrn * sizeof(xcb_xkb_sym_interpret_t); 7723 xcb_tmp += xcb_block_len; 7724 xcb_align_to = ALIGNOF(xcb_xkb_sym_interpret_t); 7725 /* insert padding */ 7726 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7727 xcb_buffer_len += xcb_block_len + xcb_pad; 7728 if (0 != xcb_pad) { 7729 xcb_tmp += xcb_pad; 7730 xcb_pad = 0; 7731 } 7732 xcb_block_len = 0; 7733 /* group_rtrn */ 7734 xcb_block_len += xcb_popcount(_aux->groupsRtrn) * sizeof(xcb_xkb_mod_def_t); 7735 xcb_tmp += xcb_block_len; 7736 xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); 7737 /* insert padding */ 7738 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7739 xcb_buffer_len += xcb_block_len + xcb_pad; 7740 if (0 != xcb_pad) { 7741 xcb_tmp += xcb_pad; 7742 xcb_pad = 0; 7743 } 7744 xcb_block_len = 0; 7745 7746 return xcb_buffer_len; 7747 } 7748 7749 7750 /***************************************************************************** 7751 ** 7752 ** xcb_xkb_get_compat_map_cookie_t xcb_xkb_get_compat_map 7753 ** 7754 ** @param xcb_connection_t *c 7755 ** @param xcb_xkb_device_spec_t deviceSpec 7756 ** @param uint8_t groups 7757 ** @param uint8_t getAllSI 7758 ** @param uint16_t firstSI 7759 ** @param uint16_t nSI 7760 ** @returns xcb_xkb_get_compat_map_cookie_t 7761 ** 7762 *****************************************************************************/ 7763 7764 xcb_xkb_get_compat_map_cookie_t 7765 xcb_xkb_get_compat_map (xcb_connection_t *c /**< */, 7766 xcb_xkb_device_spec_t deviceSpec /**< */, 7767 uint8_t groups /**< */, 7768 uint8_t getAllSI /**< */, 7769 uint16_t firstSI /**< */, 7770 uint16_t nSI /**< */) 7771 { 7772 static const xcb_protocol_request_t xcb_req = { 7773 /* count */ 2, 7774 /* ext */ &xcb_xkb_id, 7775 /* opcode */ XCB_XKB_GET_COMPAT_MAP, 7776 /* isvoid */ 0 7777 }; 7778 7779 struct iovec xcb_parts[4]; 7780 xcb_xkb_get_compat_map_cookie_t xcb_ret; 7781 xcb_xkb_get_compat_map_request_t xcb_out; 7782 7783 xcb_out.deviceSpec = deviceSpec; 7784 xcb_out.groups = groups; 7785 xcb_out.getAllSI = getAllSI; 7786 xcb_out.firstSI = firstSI; 7787 xcb_out.nSI = nSI; 7788 7789 xcb_parts[2].iov_base = (char *) &xcb_out; 7790 xcb_parts[2].iov_len = sizeof(xcb_out); 7791 xcb_parts[3].iov_base = 0; 7792 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7793 7794 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7795 return xcb_ret; 7796 } 7797 7798 7799 /***************************************************************************** 7800 ** 7801 ** xcb_xkb_get_compat_map_cookie_t xcb_xkb_get_compat_map_unchecked 7802 ** 7803 ** @param xcb_connection_t *c 7804 ** @param xcb_xkb_device_spec_t deviceSpec 7805 ** @param uint8_t groups 7806 ** @param uint8_t getAllSI 7807 ** @param uint16_t firstSI 7808 ** @param uint16_t nSI 7809 ** @returns xcb_xkb_get_compat_map_cookie_t 7810 ** 7811 *****************************************************************************/ 7812 7813 xcb_xkb_get_compat_map_cookie_t 7814 xcb_xkb_get_compat_map_unchecked (xcb_connection_t *c /**< */, 7815 xcb_xkb_device_spec_t deviceSpec /**< */, 7816 uint8_t groups /**< */, 7817 uint8_t getAllSI /**< */, 7818 uint16_t firstSI /**< */, 7819 uint16_t nSI /**< */) 7820 { 7821 static const xcb_protocol_request_t xcb_req = { 7822 /* count */ 2, 7823 /* ext */ &xcb_xkb_id, 7824 /* opcode */ XCB_XKB_GET_COMPAT_MAP, 7825 /* isvoid */ 0 7826 }; 7827 7828 struct iovec xcb_parts[4]; 7829 xcb_xkb_get_compat_map_cookie_t xcb_ret; 7830 xcb_xkb_get_compat_map_request_t xcb_out; 7831 7832 xcb_out.deviceSpec = deviceSpec; 7833 xcb_out.groups = groups; 7834 xcb_out.getAllSI = getAllSI; 7835 xcb_out.firstSI = firstSI; 7836 xcb_out.nSI = nSI; 7837 7838 xcb_parts[2].iov_base = (char *) &xcb_out; 7839 xcb_parts[2].iov_len = sizeof(xcb_out); 7840 xcb_parts[3].iov_base = 0; 7841 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7842 7843 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7844 return xcb_ret; 7845 } 7846 7847 7848 /***************************************************************************** 7849 ** 7850 ** xcb_xkb_sym_interpret_t * xcb_xkb_get_compat_map_si_rtrn 7851 ** 7852 ** @param const xcb_xkb_get_compat_map_reply_t *R 7853 ** @returns xcb_xkb_sym_interpret_t * 7854 ** 7855 *****************************************************************************/ 7856 7857 xcb_xkb_sym_interpret_t * 7858 xcb_xkb_get_compat_map_si_rtrn (const xcb_xkb_get_compat_map_reply_t *R /**< */) 7859 { 7860 return (xcb_xkb_sym_interpret_t *) (R + 1); 7861 } 7862 7863 7864 /***************************************************************************** 7865 ** 7866 ** int xcb_xkb_get_compat_map_si_rtrn_length 7867 ** 7868 ** @param const xcb_xkb_get_compat_map_reply_t *R 7869 ** @returns int 7870 ** 7871 *****************************************************************************/ 7872 7873 int 7874 xcb_xkb_get_compat_map_si_rtrn_length (const xcb_xkb_get_compat_map_reply_t *R /**< */) 7875 { 7876 return R->nSIRtrn; 7877 } 7878 7879 7880 /***************************************************************************** 7881 ** 7882 ** xcb_xkb_sym_interpret_iterator_t xcb_xkb_get_compat_map_si_rtrn_iterator 7883 ** 7884 ** @param const xcb_xkb_get_compat_map_reply_t *R 7885 ** @returns xcb_xkb_sym_interpret_iterator_t 7886 ** 7887 *****************************************************************************/ 7888 7889 xcb_xkb_sym_interpret_iterator_t 7890 xcb_xkb_get_compat_map_si_rtrn_iterator (const xcb_xkb_get_compat_map_reply_t *R /**< */) 7891 { 7892 xcb_xkb_sym_interpret_iterator_t i; 7893 i.data = (xcb_xkb_sym_interpret_t *) (R + 1); 7894 i.rem = R->nSIRtrn; 7895 i.index = (char *) i.data - (char *) R; 7896 return i; 7897 } 7898 7899 7900 /***************************************************************************** 7901 ** 7902 ** xcb_xkb_mod_def_t * xcb_xkb_get_compat_map_group_rtrn 7903 ** 7904 ** @param const xcb_xkb_get_compat_map_reply_t *R 7905 ** @returns xcb_xkb_mod_def_t * 7906 ** 7907 *****************************************************************************/ 7908 7909 xcb_xkb_mod_def_t * 7910 xcb_xkb_get_compat_map_group_rtrn (const xcb_xkb_get_compat_map_reply_t *R /**< */) 7911 { 7912 xcb_generic_iterator_t prev = xcb_xkb_sym_interpret_end(xcb_xkb_get_compat_map_si_rtrn_iterator(R)); 7913 return (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index) + 0); 7914 } 7915 7916 7917 /***************************************************************************** 7918 ** 7919 ** int xcb_xkb_get_compat_map_group_rtrn_length 7920 ** 7921 ** @param const xcb_xkb_get_compat_map_reply_t *R 7922 ** @returns int 7923 ** 7924 *****************************************************************************/ 7925 7926 int 7927 xcb_xkb_get_compat_map_group_rtrn_length (const xcb_xkb_get_compat_map_reply_t *R /**< */) 7928 { 7929 return xcb_popcount(R->groupsRtrn); 7930 } 7931 7932 7933 /***************************************************************************** 7934 ** 7935 ** xcb_xkb_mod_def_iterator_t xcb_xkb_get_compat_map_group_rtrn_iterator 7936 ** 7937 ** @param const xcb_xkb_get_compat_map_reply_t *R 7938 ** @returns xcb_xkb_mod_def_iterator_t 7939 ** 7940 *****************************************************************************/ 7941 7942 xcb_xkb_mod_def_iterator_t 7943 xcb_xkb_get_compat_map_group_rtrn_iterator (const xcb_xkb_get_compat_map_reply_t *R /**< */) 7944 { 7945 xcb_xkb_mod_def_iterator_t i; 7946 xcb_generic_iterator_t prev = xcb_xkb_sym_interpret_end(xcb_xkb_get_compat_map_si_rtrn_iterator(R)); 7947 i.data = (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index)); 7948 i.rem = xcb_popcount(R->groupsRtrn); 7949 i.index = (char *) i.data - (char *) R; 7950 return i; 7951 } 7952 7953 7954 /***************************************************************************** 7955 ** 7956 ** xcb_xkb_get_compat_map_reply_t * xcb_xkb_get_compat_map_reply 7957 ** 7958 ** @param xcb_connection_t *c 7959 ** @param xcb_xkb_get_compat_map_cookie_t cookie 7960 ** @param xcb_generic_error_t **e 7961 ** @returns xcb_xkb_get_compat_map_reply_t * 7962 ** 7963 *****************************************************************************/ 7964 7965 xcb_xkb_get_compat_map_reply_t * 7966 xcb_xkb_get_compat_map_reply (xcb_connection_t *c /**< */, 7967 xcb_xkb_get_compat_map_cookie_t cookie /**< */, 7968 xcb_generic_error_t **e /**< */) 7969 { 7970 return (xcb_xkb_get_compat_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7971 } 7972 7973 int 7974 xcb_xkb_set_compat_map_sizeof (const void *_buffer /**< */) 7975 { 7976 char *xcb_tmp = (char *)_buffer; 7977 const xcb_xkb_set_compat_map_request_t *_aux = (xcb_xkb_set_compat_map_request_t *)_buffer; 7978 unsigned int xcb_buffer_len = 0; 7979 unsigned int xcb_block_len = 0; 7980 unsigned int xcb_pad = 0; 7981 unsigned int xcb_align_to = 0; 7982 7983 7984 xcb_block_len += sizeof(xcb_xkb_set_compat_map_request_t); 7985 xcb_tmp += xcb_block_len; 7986 xcb_buffer_len += xcb_block_len; 7987 xcb_block_len = 0; 7988 /* si */ 7989 xcb_block_len += _aux->nSI * sizeof(xcb_xkb_sym_interpret_t); 7990 xcb_tmp += xcb_block_len; 7991 xcb_align_to = ALIGNOF(xcb_xkb_sym_interpret_t); 7992 /* insert padding */ 7993 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7994 xcb_buffer_len += xcb_block_len + xcb_pad; 7995 if (0 != xcb_pad) { 7996 xcb_tmp += xcb_pad; 7997 xcb_pad = 0; 7998 } 7999 xcb_block_len = 0; 8000 /* groupMaps */ 8001 xcb_block_len += xcb_popcount(_aux->groups) * sizeof(xcb_xkb_mod_def_t); 8002 xcb_tmp += xcb_block_len; 8003 xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); 8004 /* insert padding */ 8005 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8006 xcb_buffer_len += xcb_block_len + xcb_pad; 8007 if (0 != xcb_pad) { 8008 xcb_tmp += xcb_pad; 8009 xcb_pad = 0; 8010 } 8011 xcb_block_len = 0; 8012 8013 return xcb_buffer_len; 8014 } 8015 8016 8017 /***************************************************************************** 8018 ** 8019 ** xcb_void_cookie_t xcb_xkb_set_compat_map_checked 8020 ** 8021 ** @param xcb_connection_t *c 8022 ** @param xcb_xkb_device_spec_t deviceSpec 8023 ** @param uint8_t recomputeActions 8024 ** @param uint8_t truncateSI 8025 ** @param uint8_t groups 8026 ** @param uint16_t firstSI 8027 ** @param uint16_t nSI 8028 ** @param const xcb_xkb_sym_interpret_t *si 8029 ** @param const xcb_xkb_mod_def_t *groupMaps 8030 ** @returns xcb_void_cookie_t 8031 ** 8032 *****************************************************************************/ 8033 8034 xcb_void_cookie_t 8035 xcb_xkb_set_compat_map_checked (xcb_connection_t *c /**< */, 8036 xcb_xkb_device_spec_t deviceSpec /**< */, 8037 uint8_t recomputeActions /**< */, 8038 uint8_t truncateSI /**< */, 8039 uint8_t groups /**< */, 8040 uint16_t firstSI /**< */, 8041 uint16_t nSI /**< */, 8042 const xcb_xkb_sym_interpret_t *si /**< */, 8043 const xcb_xkb_mod_def_t *groupMaps /**< */) 8044 { 8045 static const xcb_protocol_request_t xcb_req = { 8046 /* count */ 6, 8047 /* ext */ &xcb_xkb_id, 8048 /* opcode */ XCB_XKB_SET_COMPAT_MAP, 8049 /* isvoid */ 1 8050 }; 8051 8052 struct iovec xcb_parts[8]; 8053 xcb_void_cookie_t xcb_ret; 8054 xcb_xkb_set_compat_map_request_t xcb_out; 8055 8056 xcb_out.deviceSpec = deviceSpec; 8057 xcb_out.pad0 = 0; 8058 xcb_out.recomputeActions = recomputeActions; 8059 xcb_out.truncateSI = truncateSI; 8060 xcb_out.groups = groups; 8061 xcb_out.firstSI = firstSI; 8062 xcb_out.nSI = nSI; 8063 memset(xcb_out.pad1, 0, 2); 8064 8065 xcb_parts[2].iov_base = (char *) &xcb_out; 8066 xcb_parts[2].iov_len = sizeof(xcb_out); 8067 xcb_parts[3].iov_base = 0; 8068 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8069 /* xcb_xkb_sym_interpret_t si */ 8070 xcb_parts[4].iov_base = (char *) si; 8071 xcb_parts[4].iov_len = nSI * sizeof(xcb_xkb_sym_interpret_t); 8072 xcb_parts[5].iov_base = 0; 8073 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8074 /* xcb_xkb_mod_def_t groupMaps */ 8075 xcb_parts[6].iov_base = (char *) groupMaps; 8076 xcb_parts[6].iov_len = xcb_popcount(groups) * sizeof(xcb_xkb_mod_def_t); 8077 xcb_parts[7].iov_base = 0; 8078 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 8079 8080 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8081 return xcb_ret; 8082 } 8083 8084 8085 /***************************************************************************** 8086 ** 8087 ** xcb_void_cookie_t xcb_xkb_set_compat_map 8088 ** 8089 ** @param xcb_connection_t *c 8090 ** @param xcb_xkb_device_spec_t deviceSpec 8091 ** @param uint8_t recomputeActions 8092 ** @param uint8_t truncateSI 8093 ** @param uint8_t groups 8094 ** @param uint16_t firstSI 8095 ** @param uint16_t nSI 8096 ** @param const xcb_xkb_sym_interpret_t *si 8097 ** @param const xcb_xkb_mod_def_t *groupMaps 8098 ** @returns xcb_void_cookie_t 8099 ** 8100 *****************************************************************************/ 8101 8102 xcb_void_cookie_t 8103 xcb_xkb_set_compat_map (xcb_connection_t *c /**< */, 8104 xcb_xkb_device_spec_t deviceSpec /**< */, 8105 uint8_t recomputeActions /**< */, 8106 uint8_t truncateSI /**< */, 8107 uint8_t groups /**< */, 8108 uint16_t firstSI /**< */, 8109 uint16_t nSI /**< */, 8110 const xcb_xkb_sym_interpret_t *si /**< */, 8111 const xcb_xkb_mod_def_t *groupMaps /**< */) 8112 { 8113 static const xcb_protocol_request_t xcb_req = { 8114 /* count */ 6, 8115 /* ext */ &xcb_xkb_id, 8116 /* opcode */ XCB_XKB_SET_COMPAT_MAP, 8117 /* isvoid */ 1 8118 }; 8119 8120 struct iovec xcb_parts[8]; 8121 xcb_void_cookie_t xcb_ret; 8122 xcb_xkb_set_compat_map_request_t xcb_out; 8123 8124 xcb_out.deviceSpec = deviceSpec; 8125 xcb_out.pad0 = 0; 8126 xcb_out.recomputeActions = recomputeActions; 8127 xcb_out.truncateSI = truncateSI; 8128 xcb_out.groups = groups; 8129 xcb_out.firstSI = firstSI; 8130 xcb_out.nSI = nSI; 8131 memset(xcb_out.pad1, 0, 2); 8132 8133 xcb_parts[2].iov_base = (char *) &xcb_out; 8134 xcb_parts[2].iov_len = sizeof(xcb_out); 8135 xcb_parts[3].iov_base = 0; 8136 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8137 /* xcb_xkb_sym_interpret_t si */ 8138 xcb_parts[4].iov_base = (char *) si; 8139 xcb_parts[4].iov_len = nSI * sizeof(xcb_xkb_sym_interpret_t); 8140 xcb_parts[5].iov_base = 0; 8141 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8142 /* xcb_xkb_mod_def_t groupMaps */ 8143 xcb_parts[6].iov_base = (char *) groupMaps; 8144 xcb_parts[6].iov_len = xcb_popcount(groups) * sizeof(xcb_xkb_mod_def_t); 8145 xcb_parts[7].iov_base = 0; 8146 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 8147 8148 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8149 return xcb_ret; 8150 } 8151 8152 8153 /***************************************************************************** 8154 ** 8155 ** xcb_xkb_get_indicator_state_cookie_t xcb_xkb_get_indicator_state 8156 ** 8157 ** @param xcb_connection_t *c 8158 ** @param xcb_xkb_device_spec_t deviceSpec 8159 ** @returns xcb_xkb_get_indicator_state_cookie_t 8160 ** 8161 *****************************************************************************/ 8162 8163 xcb_xkb_get_indicator_state_cookie_t 8164 xcb_xkb_get_indicator_state (xcb_connection_t *c /**< */, 8165 xcb_xkb_device_spec_t deviceSpec /**< */) 8166 { 8167 static const xcb_protocol_request_t xcb_req = { 8168 /* count */ 2, 8169 /* ext */ &xcb_xkb_id, 8170 /* opcode */ XCB_XKB_GET_INDICATOR_STATE, 8171 /* isvoid */ 0 8172 }; 8173 8174 struct iovec xcb_parts[4]; 8175 xcb_xkb_get_indicator_state_cookie_t xcb_ret; 8176 xcb_xkb_get_indicator_state_request_t xcb_out; 8177 8178 xcb_out.deviceSpec = deviceSpec; 8179 memset(xcb_out.pad0, 0, 2); 8180 8181 xcb_parts[2].iov_base = (char *) &xcb_out; 8182 xcb_parts[2].iov_len = sizeof(xcb_out); 8183 xcb_parts[3].iov_base = 0; 8184 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8185 8186 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8187 return xcb_ret; 8188 } 8189 8190 8191 /***************************************************************************** 8192 ** 8193 ** xcb_xkb_get_indicator_state_cookie_t xcb_xkb_get_indicator_state_unchecked 8194 ** 8195 ** @param xcb_connection_t *c 8196 ** @param xcb_xkb_device_spec_t deviceSpec 8197 ** @returns xcb_xkb_get_indicator_state_cookie_t 8198 ** 8199 *****************************************************************************/ 8200 8201 xcb_xkb_get_indicator_state_cookie_t 8202 xcb_xkb_get_indicator_state_unchecked (xcb_connection_t *c /**< */, 8203 xcb_xkb_device_spec_t deviceSpec /**< */) 8204 { 8205 static const xcb_protocol_request_t xcb_req = { 8206 /* count */ 2, 8207 /* ext */ &xcb_xkb_id, 8208 /* opcode */ XCB_XKB_GET_INDICATOR_STATE, 8209 /* isvoid */ 0 8210 }; 8211 8212 struct iovec xcb_parts[4]; 8213 xcb_xkb_get_indicator_state_cookie_t xcb_ret; 8214 xcb_xkb_get_indicator_state_request_t xcb_out; 8215 8216 xcb_out.deviceSpec = deviceSpec; 8217 memset(xcb_out.pad0, 0, 2); 8218 8219 xcb_parts[2].iov_base = (char *) &xcb_out; 8220 xcb_parts[2].iov_len = sizeof(xcb_out); 8221 xcb_parts[3].iov_base = 0; 8222 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8223 8224 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8225 return xcb_ret; 8226 } 8227 8228 8229 /***************************************************************************** 8230 ** 8231 ** xcb_xkb_get_indicator_state_reply_t * xcb_xkb_get_indicator_state_reply 8232 ** 8233 ** @param xcb_connection_t *c 8234 ** @param xcb_xkb_get_indicator_state_cookie_t cookie 8235 ** @param xcb_generic_error_t **e 8236 ** @returns xcb_xkb_get_indicator_state_reply_t * 8237 ** 8238 *****************************************************************************/ 8239 8240 xcb_xkb_get_indicator_state_reply_t * 8241 xcb_xkb_get_indicator_state_reply (xcb_connection_t *c /**< */, 8242 xcb_xkb_get_indicator_state_cookie_t cookie /**< */, 8243 xcb_generic_error_t **e /**< */) 8244 { 8245 return (xcb_xkb_get_indicator_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8246 } 8247 8248 int 8249 xcb_xkb_get_indicator_map_sizeof (const void *_buffer /**< */) 8250 { 8251 char *xcb_tmp = (char *)_buffer; 8252 const xcb_xkb_get_indicator_map_reply_t *_aux = (xcb_xkb_get_indicator_map_reply_t *)_buffer; 8253 unsigned int xcb_buffer_len = 0; 8254 unsigned int xcb_block_len = 0; 8255 unsigned int xcb_pad = 0; 8256 unsigned int xcb_align_to = 0; 8257 8258 8259 xcb_block_len += sizeof(xcb_xkb_get_indicator_map_reply_t); 8260 xcb_tmp += xcb_block_len; 8261 xcb_buffer_len += xcb_block_len; 8262 xcb_block_len = 0; 8263 /* maps */ 8264 xcb_block_len += xcb_popcount(_aux->which) * sizeof(xcb_xkb_indicator_map_t); 8265 xcb_tmp += xcb_block_len; 8266 xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); 8267 /* insert padding */ 8268 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8269 xcb_buffer_len += xcb_block_len + xcb_pad; 8270 if (0 != xcb_pad) { 8271 xcb_tmp += xcb_pad; 8272 xcb_pad = 0; 8273 } 8274 xcb_block_len = 0; 8275 8276 return xcb_buffer_len; 8277 } 8278 8279 8280 /***************************************************************************** 8281 ** 8282 ** xcb_xkb_get_indicator_map_cookie_t xcb_xkb_get_indicator_map 8283 ** 8284 ** @param xcb_connection_t *c 8285 ** @param xcb_xkb_device_spec_t deviceSpec 8286 ** @param uint32_t which 8287 ** @returns xcb_xkb_get_indicator_map_cookie_t 8288 ** 8289 *****************************************************************************/ 8290 8291 xcb_xkb_get_indicator_map_cookie_t 8292 xcb_xkb_get_indicator_map (xcb_connection_t *c /**< */, 8293 xcb_xkb_device_spec_t deviceSpec /**< */, 8294 uint32_t which /**< */) 8295 { 8296 static const xcb_protocol_request_t xcb_req = { 8297 /* count */ 2, 8298 /* ext */ &xcb_xkb_id, 8299 /* opcode */ XCB_XKB_GET_INDICATOR_MAP, 8300 /* isvoid */ 0 8301 }; 8302 8303 struct iovec xcb_parts[4]; 8304 xcb_xkb_get_indicator_map_cookie_t xcb_ret; 8305 xcb_xkb_get_indicator_map_request_t xcb_out; 8306 8307 xcb_out.deviceSpec = deviceSpec; 8308 memset(xcb_out.pad0, 0, 2); 8309 xcb_out.which = which; 8310 8311 xcb_parts[2].iov_base = (char *) &xcb_out; 8312 xcb_parts[2].iov_len = sizeof(xcb_out); 8313 xcb_parts[3].iov_base = 0; 8314 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8315 8316 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8317 return xcb_ret; 8318 } 8319 8320 8321 /***************************************************************************** 8322 ** 8323 ** xcb_xkb_get_indicator_map_cookie_t xcb_xkb_get_indicator_map_unchecked 8324 ** 8325 ** @param xcb_connection_t *c 8326 ** @param xcb_xkb_device_spec_t deviceSpec 8327 ** @param uint32_t which 8328 ** @returns xcb_xkb_get_indicator_map_cookie_t 8329 ** 8330 *****************************************************************************/ 8331 8332 xcb_xkb_get_indicator_map_cookie_t 8333 xcb_xkb_get_indicator_map_unchecked (xcb_connection_t *c /**< */, 8334 xcb_xkb_device_spec_t deviceSpec /**< */, 8335 uint32_t which /**< */) 8336 { 8337 static const xcb_protocol_request_t xcb_req = { 8338 /* count */ 2, 8339 /* ext */ &xcb_xkb_id, 8340 /* opcode */ XCB_XKB_GET_INDICATOR_MAP, 8341 /* isvoid */ 0 8342 }; 8343 8344 struct iovec xcb_parts[4]; 8345 xcb_xkb_get_indicator_map_cookie_t xcb_ret; 8346 xcb_xkb_get_indicator_map_request_t xcb_out; 8347 8348 xcb_out.deviceSpec = deviceSpec; 8349 memset(xcb_out.pad0, 0, 2); 8350 xcb_out.which = which; 8351 8352 xcb_parts[2].iov_base = (char *) &xcb_out; 8353 xcb_parts[2].iov_len = sizeof(xcb_out); 8354 xcb_parts[3].iov_base = 0; 8355 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8356 8357 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8358 return xcb_ret; 8359 } 8360 8361 8362 /***************************************************************************** 8363 ** 8364 ** xcb_xkb_indicator_map_t * xcb_xkb_get_indicator_map_maps 8365 ** 8366 ** @param const xcb_xkb_get_indicator_map_reply_t *R 8367 ** @returns xcb_xkb_indicator_map_t * 8368 ** 8369 *****************************************************************************/ 8370 8371 xcb_xkb_indicator_map_t * 8372 xcb_xkb_get_indicator_map_maps (const xcb_xkb_get_indicator_map_reply_t *R /**< */) 8373 { 8374 return (xcb_xkb_indicator_map_t *) (R + 1); 8375 } 8376 8377 8378 /***************************************************************************** 8379 ** 8380 ** int xcb_xkb_get_indicator_map_maps_length 8381 ** 8382 ** @param const xcb_xkb_get_indicator_map_reply_t *R 8383 ** @returns int 8384 ** 8385 *****************************************************************************/ 8386 8387 int 8388 xcb_xkb_get_indicator_map_maps_length (const xcb_xkb_get_indicator_map_reply_t *R /**< */) 8389 { 8390 return xcb_popcount(R->which); 8391 } 8392 8393 8394 /***************************************************************************** 8395 ** 8396 ** xcb_xkb_indicator_map_iterator_t xcb_xkb_get_indicator_map_maps_iterator 8397 ** 8398 ** @param const xcb_xkb_get_indicator_map_reply_t *R 8399 ** @returns xcb_xkb_indicator_map_iterator_t 8400 ** 8401 *****************************************************************************/ 8402 8403 xcb_xkb_indicator_map_iterator_t 8404 xcb_xkb_get_indicator_map_maps_iterator (const xcb_xkb_get_indicator_map_reply_t *R /**< */) 8405 { 8406 xcb_xkb_indicator_map_iterator_t i; 8407 i.data = (xcb_xkb_indicator_map_t *) (R + 1); 8408 i.rem = xcb_popcount(R->which); 8409 i.index = (char *) i.data - (char *) R; 8410 return i; 8411 } 8412 8413 8414 /***************************************************************************** 8415 ** 8416 ** xcb_xkb_get_indicator_map_reply_t * xcb_xkb_get_indicator_map_reply 8417 ** 8418 ** @param xcb_connection_t *c 8419 ** @param xcb_xkb_get_indicator_map_cookie_t cookie 8420 ** @param xcb_generic_error_t **e 8421 ** @returns xcb_xkb_get_indicator_map_reply_t * 8422 ** 8423 *****************************************************************************/ 8424 8425 xcb_xkb_get_indicator_map_reply_t * 8426 xcb_xkb_get_indicator_map_reply (xcb_connection_t *c /**< */, 8427 xcb_xkb_get_indicator_map_cookie_t cookie /**< */, 8428 xcb_generic_error_t **e /**< */) 8429 { 8430 return (xcb_xkb_get_indicator_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8431 } 8432 8433 int 8434 xcb_xkb_set_indicator_map_sizeof (const void *_buffer /**< */) 8435 { 8436 char *xcb_tmp = (char *)_buffer; 8437 const xcb_xkb_set_indicator_map_request_t *_aux = (xcb_xkb_set_indicator_map_request_t *)_buffer; 8438 unsigned int xcb_buffer_len = 0; 8439 unsigned int xcb_block_len = 0; 8440 unsigned int xcb_pad = 0; 8441 unsigned int xcb_align_to = 0; 8442 8443 8444 xcb_block_len += sizeof(xcb_xkb_set_indicator_map_request_t); 8445 xcb_tmp += xcb_block_len; 8446 xcb_buffer_len += xcb_block_len; 8447 xcb_block_len = 0; 8448 /* maps */ 8449 xcb_block_len += xcb_popcount(_aux->which) * sizeof(xcb_xkb_indicator_map_t); 8450 xcb_tmp += xcb_block_len; 8451 xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); 8452 /* insert padding */ 8453 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8454 xcb_buffer_len += xcb_block_len + xcb_pad; 8455 if (0 != xcb_pad) { 8456 xcb_tmp += xcb_pad; 8457 xcb_pad = 0; 8458 } 8459 xcb_block_len = 0; 8460 8461 return xcb_buffer_len; 8462 } 8463 8464 8465 /***************************************************************************** 8466 ** 8467 ** xcb_void_cookie_t xcb_xkb_set_indicator_map_checked 8468 ** 8469 ** @param xcb_connection_t *c 8470 ** @param xcb_xkb_device_spec_t deviceSpec 8471 ** @param uint32_t which 8472 ** @param const xcb_xkb_indicator_map_t *maps 8473 ** @returns xcb_void_cookie_t 8474 ** 8475 *****************************************************************************/ 8476 8477 xcb_void_cookie_t 8478 xcb_xkb_set_indicator_map_checked (xcb_connection_t *c /**< */, 8479 xcb_xkb_device_spec_t deviceSpec /**< */, 8480 uint32_t which /**< */, 8481 const xcb_xkb_indicator_map_t *maps /**< */) 8482 { 8483 static const xcb_protocol_request_t xcb_req = { 8484 /* count */ 4, 8485 /* ext */ &xcb_xkb_id, 8486 /* opcode */ XCB_XKB_SET_INDICATOR_MAP, 8487 /* isvoid */ 1 8488 }; 8489 8490 struct iovec xcb_parts[6]; 8491 xcb_void_cookie_t xcb_ret; 8492 xcb_xkb_set_indicator_map_request_t xcb_out; 8493 8494 xcb_out.deviceSpec = deviceSpec; 8495 memset(xcb_out.pad0, 0, 2); 8496 xcb_out.which = which; 8497 8498 xcb_parts[2].iov_base = (char *) &xcb_out; 8499 xcb_parts[2].iov_len = sizeof(xcb_out); 8500 xcb_parts[3].iov_base = 0; 8501 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8502 /* xcb_xkb_indicator_map_t maps */ 8503 xcb_parts[4].iov_base = (char *) maps; 8504 xcb_parts[4].iov_len = xcb_popcount(which) * sizeof(xcb_xkb_indicator_map_t); 8505 xcb_parts[5].iov_base = 0; 8506 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8507 8508 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8509 return xcb_ret; 8510 } 8511 8512 8513 /***************************************************************************** 8514 ** 8515 ** xcb_void_cookie_t xcb_xkb_set_indicator_map 8516 ** 8517 ** @param xcb_connection_t *c 8518 ** @param xcb_xkb_device_spec_t deviceSpec 8519 ** @param uint32_t which 8520 ** @param const xcb_xkb_indicator_map_t *maps 8521 ** @returns xcb_void_cookie_t 8522 ** 8523 *****************************************************************************/ 8524 8525 xcb_void_cookie_t 8526 xcb_xkb_set_indicator_map (xcb_connection_t *c /**< */, 8527 xcb_xkb_device_spec_t deviceSpec /**< */, 8528 uint32_t which /**< */, 8529 const xcb_xkb_indicator_map_t *maps /**< */) 8530 { 8531 static const xcb_protocol_request_t xcb_req = { 8532 /* count */ 4, 8533 /* ext */ &xcb_xkb_id, 8534 /* opcode */ XCB_XKB_SET_INDICATOR_MAP, 8535 /* isvoid */ 1 8536 }; 8537 8538 struct iovec xcb_parts[6]; 8539 xcb_void_cookie_t xcb_ret; 8540 xcb_xkb_set_indicator_map_request_t xcb_out; 8541 8542 xcb_out.deviceSpec = deviceSpec; 8543 memset(xcb_out.pad0, 0, 2); 8544 xcb_out.which = which; 8545 8546 xcb_parts[2].iov_base = (char *) &xcb_out; 8547 xcb_parts[2].iov_len = sizeof(xcb_out); 8548 xcb_parts[3].iov_base = 0; 8549 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8550 /* xcb_xkb_indicator_map_t maps */ 8551 xcb_parts[4].iov_base = (char *) maps; 8552 xcb_parts[4].iov_len = xcb_popcount(which) * sizeof(xcb_xkb_indicator_map_t); 8553 xcb_parts[5].iov_base = 0; 8554 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8555 8556 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8557 return xcb_ret; 8558 } 8559 8560 8561 /***************************************************************************** 8562 ** 8563 ** xcb_xkb_get_named_indicator_cookie_t xcb_xkb_get_named_indicator 8564 ** 8565 ** @param xcb_connection_t *c 8566 ** @param xcb_xkb_device_spec_t deviceSpec 8567 ** @param xcb_xkb_led_class_spec_t ledClass 8568 ** @param xcb_xkb_id_spec_t ledID 8569 ** @param xcb_atom_t indicator 8570 ** @returns xcb_xkb_get_named_indicator_cookie_t 8571 ** 8572 *****************************************************************************/ 8573 8574 xcb_xkb_get_named_indicator_cookie_t 8575 xcb_xkb_get_named_indicator (xcb_connection_t *c /**< */, 8576 xcb_xkb_device_spec_t deviceSpec /**< */, 8577 xcb_xkb_led_class_spec_t ledClass /**< */, 8578 xcb_xkb_id_spec_t ledID /**< */, 8579 xcb_atom_t indicator /**< */) 8580 { 8581 static const xcb_protocol_request_t xcb_req = { 8582 /* count */ 2, 8583 /* ext */ &xcb_xkb_id, 8584 /* opcode */ XCB_XKB_GET_NAMED_INDICATOR, 8585 /* isvoid */ 0 8586 }; 8587 8588 struct iovec xcb_parts[4]; 8589 xcb_xkb_get_named_indicator_cookie_t xcb_ret; 8590 xcb_xkb_get_named_indicator_request_t xcb_out; 8591 8592 xcb_out.deviceSpec = deviceSpec; 8593 xcb_out.ledClass = ledClass; 8594 xcb_out.ledID = ledID; 8595 memset(xcb_out.pad0, 0, 2); 8596 xcb_out.indicator = indicator; 8597 8598 xcb_parts[2].iov_base = (char *) &xcb_out; 8599 xcb_parts[2].iov_len = sizeof(xcb_out); 8600 xcb_parts[3].iov_base = 0; 8601 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8602 8603 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8604 return xcb_ret; 8605 } 8606 8607 8608 /***************************************************************************** 8609 ** 8610 ** xcb_xkb_get_named_indicator_cookie_t xcb_xkb_get_named_indicator_unchecked 8611 ** 8612 ** @param xcb_connection_t *c 8613 ** @param xcb_xkb_device_spec_t deviceSpec 8614 ** @param xcb_xkb_led_class_spec_t ledClass 8615 ** @param xcb_xkb_id_spec_t ledID 8616 ** @param xcb_atom_t indicator 8617 ** @returns xcb_xkb_get_named_indicator_cookie_t 8618 ** 8619 *****************************************************************************/ 8620 8621 xcb_xkb_get_named_indicator_cookie_t 8622 xcb_xkb_get_named_indicator_unchecked (xcb_connection_t *c /**< */, 8623 xcb_xkb_device_spec_t deviceSpec /**< */, 8624 xcb_xkb_led_class_spec_t ledClass /**< */, 8625 xcb_xkb_id_spec_t ledID /**< */, 8626 xcb_atom_t indicator /**< */) 8627 { 8628 static const xcb_protocol_request_t xcb_req = { 8629 /* count */ 2, 8630 /* ext */ &xcb_xkb_id, 8631 /* opcode */ XCB_XKB_GET_NAMED_INDICATOR, 8632 /* isvoid */ 0 8633 }; 8634 8635 struct iovec xcb_parts[4]; 8636 xcb_xkb_get_named_indicator_cookie_t xcb_ret; 8637 xcb_xkb_get_named_indicator_request_t xcb_out; 8638 8639 xcb_out.deviceSpec = deviceSpec; 8640 xcb_out.ledClass = ledClass; 8641 xcb_out.ledID = ledID; 8642 memset(xcb_out.pad0, 0, 2); 8643 xcb_out.indicator = indicator; 8644 8645 xcb_parts[2].iov_base = (char *) &xcb_out; 8646 xcb_parts[2].iov_len = sizeof(xcb_out); 8647 xcb_parts[3].iov_base = 0; 8648 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8649 8650 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8651 return xcb_ret; 8652 } 8653 8654 8655 /***************************************************************************** 8656 ** 8657 ** xcb_xkb_get_named_indicator_reply_t * xcb_xkb_get_named_indicator_reply 8658 ** 8659 ** @param xcb_connection_t *c 8660 ** @param xcb_xkb_get_named_indicator_cookie_t cookie 8661 ** @param xcb_generic_error_t **e 8662 ** @returns xcb_xkb_get_named_indicator_reply_t * 8663 ** 8664 *****************************************************************************/ 8665 8666 xcb_xkb_get_named_indicator_reply_t * 8667 xcb_xkb_get_named_indicator_reply (xcb_connection_t *c /**< */, 8668 xcb_xkb_get_named_indicator_cookie_t cookie /**< */, 8669 xcb_generic_error_t **e /**< */) 8670 { 8671 return (xcb_xkb_get_named_indicator_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8672 } 8673 8674 8675 /***************************************************************************** 8676 ** 8677 ** xcb_void_cookie_t xcb_xkb_set_named_indicator_checked 8678 ** 8679 ** @param xcb_connection_t *c 8680 ** @param xcb_xkb_device_spec_t deviceSpec 8681 ** @param xcb_xkb_led_class_spec_t ledClass 8682 ** @param xcb_xkb_id_spec_t ledID 8683 ** @param xcb_atom_t indicator 8684 ** @param uint8_t setState 8685 ** @param uint8_t on 8686 ** @param uint8_t setMap 8687 ** @param uint8_t createMap 8688 ** @param uint8_t map_flags 8689 ** @param uint8_t map_whichGroups 8690 ** @param uint8_t map_groups 8691 ** @param uint8_t map_whichMods 8692 ** @param uint8_t map_realMods 8693 ** @param uint16_t map_vmods 8694 ** @param uint32_t map_ctrls 8695 ** @returns xcb_void_cookie_t 8696 ** 8697 *****************************************************************************/ 8698 8699 xcb_void_cookie_t 8700 xcb_xkb_set_named_indicator_checked (xcb_connection_t *c /**< */, 8701 xcb_xkb_device_spec_t deviceSpec /**< */, 8702 xcb_xkb_led_class_spec_t ledClass /**< */, 8703 xcb_xkb_id_spec_t ledID /**< */, 8704 xcb_atom_t indicator /**< */, 8705 uint8_t setState /**< */, 8706 uint8_t on /**< */, 8707 uint8_t setMap /**< */, 8708 uint8_t createMap /**< */, 8709 uint8_t map_flags /**< */, 8710 uint8_t map_whichGroups /**< */, 8711 uint8_t map_groups /**< */, 8712 uint8_t map_whichMods /**< */, 8713 uint8_t map_realMods /**< */, 8714 uint16_t map_vmods /**< */, 8715 uint32_t map_ctrls /**< */) 8716 { 8717 static const xcb_protocol_request_t xcb_req = { 8718 /* count */ 2, 8719 /* ext */ &xcb_xkb_id, 8720 /* opcode */ XCB_XKB_SET_NAMED_INDICATOR, 8721 /* isvoid */ 1 8722 }; 8723 8724 struct iovec xcb_parts[4]; 8725 xcb_void_cookie_t xcb_ret; 8726 xcb_xkb_set_named_indicator_request_t xcb_out; 8727 8728 xcb_out.deviceSpec = deviceSpec; 8729 xcb_out.ledClass = ledClass; 8730 xcb_out.ledID = ledID; 8731 memset(xcb_out.pad0, 0, 2); 8732 xcb_out.indicator = indicator; 8733 xcb_out.setState = setState; 8734 xcb_out.on = on; 8735 xcb_out.setMap = setMap; 8736 xcb_out.createMap = createMap; 8737 xcb_out.pad1 = 0; 8738 xcb_out.map_flags = map_flags; 8739 xcb_out.map_whichGroups = map_whichGroups; 8740 xcb_out.map_groups = map_groups; 8741 xcb_out.map_whichMods = map_whichMods; 8742 xcb_out.map_realMods = map_realMods; 8743 xcb_out.map_vmods = map_vmods; 8744 xcb_out.map_ctrls = map_ctrls; 8745 8746 xcb_parts[2].iov_base = (char *) &xcb_out; 8747 xcb_parts[2].iov_len = sizeof(xcb_out); 8748 xcb_parts[3].iov_base = 0; 8749 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8750 8751 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8752 return xcb_ret; 8753 } 8754 8755 8756 /***************************************************************************** 8757 ** 8758 ** xcb_void_cookie_t xcb_xkb_set_named_indicator 8759 ** 8760 ** @param xcb_connection_t *c 8761 ** @param xcb_xkb_device_spec_t deviceSpec 8762 ** @param xcb_xkb_led_class_spec_t ledClass 8763 ** @param xcb_xkb_id_spec_t ledID 8764 ** @param xcb_atom_t indicator 8765 ** @param uint8_t setState 8766 ** @param uint8_t on 8767 ** @param uint8_t setMap 8768 ** @param uint8_t createMap 8769 ** @param uint8_t map_flags 8770 ** @param uint8_t map_whichGroups 8771 ** @param uint8_t map_groups 8772 ** @param uint8_t map_whichMods 8773 ** @param uint8_t map_realMods 8774 ** @param uint16_t map_vmods 8775 ** @param uint32_t map_ctrls 8776 ** @returns xcb_void_cookie_t 8777 ** 8778 *****************************************************************************/ 8779 8780 xcb_void_cookie_t 8781 xcb_xkb_set_named_indicator (xcb_connection_t *c /**< */, 8782 xcb_xkb_device_spec_t deviceSpec /**< */, 8783 xcb_xkb_led_class_spec_t ledClass /**< */, 8784 xcb_xkb_id_spec_t ledID /**< */, 8785 xcb_atom_t indicator /**< */, 8786 uint8_t setState /**< */, 8787 uint8_t on /**< */, 8788 uint8_t setMap /**< */, 8789 uint8_t createMap /**< */, 8790 uint8_t map_flags /**< */, 8791 uint8_t map_whichGroups /**< */, 8792 uint8_t map_groups /**< */, 8793 uint8_t map_whichMods /**< */, 8794 uint8_t map_realMods /**< */, 8795 uint16_t map_vmods /**< */, 8796 uint32_t map_ctrls /**< */) 8797 { 8798 static const xcb_protocol_request_t xcb_req = { 8799 /* count */ 2, 8800 /* ext */ &xcb_xkb_id, 8801 /* opcode */ XCB_XKB_SET_NAMED_INDICATOR, 8802 /* isvoid */ 1 8803 }; 8804 8805 struct iovec xcb_parts[4]; 8806 xcb_void_cookie_t xcb_ret; 8807 xcb_xkb_set_named_indicator_request_t xcb_out; 8808 8809 xcb_out.deviceSpec = deviceSpec; 8810 xcb_out.ledClass = ledClass; 8811 xcb_out.ledID = ledID; 8812 memset(xcb_out.pad0, 0, 2); 8813 xcb_out.indicator = indicator; 8814 xcb_out.setState = setState; 8815 xcb_out.on = on; 8816 xcb_out.setMap = setMap; 8817 xcb_out.createMap = createMap; 8818 xcb_out.pad1 = 0; 8819 xcb_out.map_flags = map_flags; 8820 xcb_out.map_whichGroups = map_whichGroups; 8821 xcb_out.map_groups = map_groups; 8822 xcb_out.map_whichMods = map_whichMods; 8823 xcb_out.map_realMods = map_realMods; 8824 xcb_out.map_vmods = map_vmods; 8825 xcb_out.map_ctrls = map_ctrls; 8826 8827 xcb_parts[2].iov_base = (char *) &xcb_out; 8828 xcb_parts[2].iov_len = sizeof(xcb_out); 8829 xcb_parts[3].iov_base = 0; 8830 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8831 8832 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8833 return xcb_ret; 8834 } 8835 8836 8837 /***************************************************************************** 8838 ** 8839 ** xcb_atom_t * xcb_xkb_get_names_value_list_type_names 8840 ** 8841 ** @param const xcb_xkb_get_names_value_list_t *S 8842 ** @returns xcb_atom_t * 8843 ** 8844 *****************************************************************************/ 8845 8846 xcb_atom_t * 8847 xcb_xkb_get_names_value_list_type_names (const xcb_xkb_get_names_value_list_t *S /**< */) 8848 { 8849 return /* valueList */ S->typeNames; 8850 } 8851 8852 8853 /***************************************************************************** 8854 ** 8855 ** int xcb_xkb_get_names_value_list_type_names_length 8856 ** 8857 ** @param const xcb_xkb_get_names_value_list_t *R 8858 ** @returns int 8859 ** 8860 *****************************************************************************/ 8861 8862 int 8863 xcb_xkb_get_names_value_list_type_names_length (const xcb_xkb_get_names_reply_t *R /**< */, 8864 const xcb_xkb_get_names_value_list_t *S /**< */) 8865 { 8866 return R->nTypes; 8867 } 8868 8869 8870 /***************************************************************************** 8871 ** 8872 ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_type_names_end 8873 ** 8874 ** @param const xcb_xkb_get_names_value_list_t *R 8875 ** @returns xcb_generic_iterator_t 8876 ** 8877 *****************************************************************************/ 8878 8879 xcb_generic_iterator_t 8880 xcb_xkb_get_names_value_list_type_names_end (const xcb_xkb_get_names_reply_t *R /**< */, 8881 const xcb_xkb_get_names_value_list_t *S /**< */) 8882 { 8883 xcb_generic_iterator_t i; 8884 i.data = /* valueList */ S->typeNames + R->nTypes; 8885 i.rem = 0; 8886 i.index = (char *) i.data - (char *) S; 8887 return i; 8888 } 8889 8890 8891 /***************************************************************************** 8892 ** 8893 ** uint8_t * xcb_xkb_get_names_value_list_n_levels_per_type 8894 ** 8895 ** @param const xcb_xkb_get_names_value_list_t *S 8896 ** @returns uint8_t * 8897 ** 8898 *****************************************************************************/ 8899 8900 uint8_t * 8901 xcb_xkb_get_names_value_list_n_levels_per_type (const xcb_xkb_get_names_value_list_t *S /**< */) 8902 { 8903 return /* valueList */ S->nLevelsPerType; 8904 } 8905 8906 8907 /***************************************************************************** 8908 ** 8909 ** int xcb_xkb_get_names_value_list_n_levels_per_type_length 8910 ** 8911 ** @param const xcb_xkb_get_names_value_list_t *R 8912 ** @returns int 8913 ** 8914 *****************************************************************************/ 8915 8916 int 8917 xcb_xkb_get_names_value_list_n_levels_per_type_length (const xcb_xkb_get_names_reply_t *R /**< */, 8918 const xcb_xkb_get_names_value_list_t *S /**< */) 8919 { 8920 return R->nTypes; 8921 } 8922 8923 8924 /***************************************************************************** 8925 ** 8926 ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_n_levels_per_type_end 8927 ** 8928 ** @param const xcb_xkb_get_names_value_list_t *R 8929 ** @returns xcb_generic_iterator_t 8930 ** 8931 *****************************************************************************/ 8932 8933 xcb_generic_iterator_t 8934 xcb_xkb_get_names_value_list_n_levels_per_type_end (const xcb_xkb_get_names_reply_t *R /**< */, 8935 const xcb_xkb_get_names_value_list_t *S /**< */) 8936 { 8937 xcb_generic_iterator_t i; 8938 i.data = /* valueList */ S->nLevelsPerType + R->nTypes; 8939 i.rem = 0; 8940 i.index = (char *) i.data - (char *) S; 8941 return i; 8942 } 8943 8944 8945 /***************************************************************************** 8946 ** 8947 ** uint8_t * xcb_xkb_get_names_value_list_alignment_pad 8948 ** 8949 ** @param const xcb_xkb_get_names_value_list_t *S 8950 ** @returns uint8_t * 8951 ** 8952 *****************************************************************************/ 8953 8954 uint8_t * 8955 xcb_xkb_get_names_value_list_alignment_pad (const xcb_xkb_get_names_value_list_t *S /**< */) 8956 { 8957 return /* valueList */ S->alignment_pad; 8958 } 8959 8960 8961 /***************************************************************************** 8962 ** 8963 ** int xcb_xkb_get_names_value_list_alignment_pad_length 8964 ** 8965 ** @param const xcb_xkb_get_names_value_list_t *R 8966 ** @returns int 8967 ** 8968 *****************************************************************************/ 8969 8970 int 8971 xcb_xkb_get_names_value_list_alignment_pad_length (const xcb_xkb_get_names_reply_t *R /**< */, 8972 const xcb_xkb_get_names_value_list_t *S /**< */) 8973 { 8974 return (((R->nTypes + 3) & (~3)) - R->nTypes); 8975 } 8976 8977 8978 /***************************************************************************** 8979 ** 8980 ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_alignment_pad_end 8981 ** 8982 ** @param const xcb_xkb_get_names_value_list_t *R 8983 ** @returns xcb_generic_iterator_t 8984 ** 8985 *****************************************************************************/ 8986 8987 xcb_generic_iterator_t 8988 xcb_xkb_get_names_value_list_alignment_pad_end (const xcb_xkb_get_names_reply_t *R /**< */, 8989 const xcb_xkb_get_names_value_list_t *S /**< */) 8990 { 8991 xcb_generic_iterator_t i; 8992 i.data = /* valueList */ S->alignment_pad + (((R->nTypes + 3) & (~3)) - R->nTypes); 8993 i.rem = 0; 8994 i.index = (char *) i.data - (char *) S; 8995 return i; 8996 } 8997 8998 8999 /***************************************************************************** 9000 ** 9001 ** xcb_atom_t * xcb_xkb_get_names_value_list_kt_level_names 9002 ** 9003 ** @param const xcb_xkb_get_names_value_list_t *S 9004 ** @returns xcb_atom_t * 9005 ** 9006 *****************************************************************************/ 9007 9008 xcb_atom_t * 9009 xcb_xkb_get_names_value_list_kt_level_names (const xcb_xkb_get_names_value_list_t *S /**< */) 9010 { 9011 return /* valueList */ S->ktLevelNames; 9012 } 9013 9014 9015 /***************************************************************************** 9016 ** 9017 ** int xcb_xkb_get_names_value_list_kt_level_names_length 9018 ** 9019 ** @param const xcb_xkb_get_names_value_list_t *R 9020 ** @returns int 9021 ** 9022 *****************************************************************************/ 9023 9024 int 9025 xcb_xkb_get_names_value_list_kt_level_names_length (const xcb_xkb_get_names_reply_t *R /**< */, 9026 const xcb_xkb_get_names_value_list_t *S /**< */) 9027 { 9028 return xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); 9029 } 9030 9031 9032 /***************************************************************************** 9033 ** 9034 ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_kt_level_names_end 9035 ** 9036 ** @param const xcb_xkb_get_names_value_list_t *R 9037 ** @returns xcb_generic_iterator_t 9038 ** 9039 *****************************************************************************/ 9040 9041 xcb_generic_iterator_t 9042 xcb_xkb_get_names_value_list_kt_level_names_end (const xcb_xkb_get_names_reply_t *R /**< */, 9043 const xcb_xkb_get_names_value_list_t *S /**< */) 9044 { 9045 xcb_generic_iterator_t i; 9046 i.data = /* valueList */ S->ktLevelNames + xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); 9047 i.rem = 0; 9048 i.index = (char *) i.data - (char *) S; 9049 return i; 9050 } 9051 9052 9053 /***************************************************************************** 9054 ** 9055 ** xcb_atom_t * xcb_xkb_get_names_value_list_indicator_names 9056 ** 9057 ** @param const xcb_xkb_get_names_value_list_t *S 9058 ** @returns xcb_atom_t * 9059 ** 9060 *****************************************************************************/ 9061 9062 xcb_atom_t * 9063 xcb_xkb_get_names_value_list_indicator_names (const xcb_xkb_get_names_value_list_t *S /**< */) 9064 { 9065 return /* valueList */ S->indicatorNames; 9066 } 9067 9068 9069 /***************************************************************************** 9070 ** 9071 ** int xcb_xkb_get_names_value_list_indicator_names_length 9072 ** 9073 ** @param const xcb_xkb_get_names_value_list_t *R 9074 ** @returns int 9075 ** 9076 *****************************************************************************/ 9077 9078 int 9079 xcb_xkb_get_names_value_list_indicator_names_length (const xcb_xkb_get_names_reply_t *R /**< */, 9080 const xcb_xkb_get_names_value_list_t *S /**< */) 9081 { 9082 return xcb_popcount(R->indicators); 9083 } 9084 9085 9086 /***************************************************************************** 9087 ** 9088 ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_indicator_names_end 9089 ** 9090 ** @param const xcb_xkb_get_names_value_list_t *R 9091 ** @returns xcb_generic_iterator_t 9092 ** 9093 *****************************************************************************/ 9094 9095 xcb_generic_iterator_t 9096 xcb_xkb_get_names_value_list_indicator_names_end (const xcb_xkb_get_names_reply_t *R /**< */, 9097 const xcb_xkb_get_names_value_list_t *S /**< */) 9098 { 9099 xcb_generic_iterator_t i; 9100 i.data = /* valueList */ S->indicatorNames + xcb_popcount(R->indicators); 9101 i.rem = 0; 9102 i.index = (char *) i.data - (char *) S; 9103 return i; 9104 } 9105 9106 9107 /***************************************************************************** 9108 ** 9109 ** xcb_atom_t * xcb_xkb_get_names_value_list_virtual_mod_names 9110 ** 9111 ** @param const xcb_xkb_get_names_value_list_t *S 9112 ** @returns xcb_atom_t * 9113 ** 9114 *****************************************************************************/ 9115 9116 xcb_atom_t * 9117 xcb_xkb_get_names_value_list_virtual_mod_names (const xcb_xkb_get_names_value_list_t *S /**< */) 9118 { 9119 return /* valueList */ S->virtualModNames; 9120 } 9121 9122 9123 /***************************************************************************** 9124 ** 9125 ** int xcb_xkb_get_names_value_list_virtual_mod_names_length 9126 ** 9127 ** @param const xcb_xkb_get_names_value_list_t *R 9128 ** @returns int 9129 ** 9130 *****************************************************************************/ 9131 9132 int 9133 xcb_xkb_get_names_value_list_virtual_mod_names_length (const xcb_xkb_get_names_reply_t *R /**< */, 9134 const xcb_xkb_get_names_value_list_t *S /**< */) 9135 { 9136 return xcb_popcount(R->virtualMods); 9137 } 9138 9139 9140 /***************************************************************************** 9141 ** 9142 ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_virtual_mod_names_end 9143 ** 9144 ** @param const xcb_xkb_get_names_value_list_t *R 9145 ** @returns xcb_generic_iterator_t 9146 ** 9147 *****************************************************************************/ 9148 9149 xcb_generic_iterator_t 9150 xcb_xkb_get_names_value_list_virtual_mod_names_end (const xcb_xkb_get_names_reply_t *R /**< */, 9151 const xcb_xkb_get_names_value_list_t *S /**< */) 9152 { 9153 xcb_generic_iterator_t i; 9154 i.data = /* valueList */ S->virtualModNames + xcb_popcount(R->virtualMods); 9155 i.rem = 0; 9156 i.index = (char *) i.data - (char *) S; 9157 return i; 9158 } 9159 9160 9161 /***************************************************************************** 9162 ** 9163 ** xcb_atom_t * xcb_xkb_get_names_value_list_groups 9164 ** 9165 ** @param const xcb_xkb_get_names_value_list_t *S 9166 ** @returns xcb_atom_t * 9167 ** 9168 *****************************************************************************/ 9169 9170 xcb_atom_t * 9171 xcb_xkb_get_names_value_list_groups (const xcb_xkb_get_names_value_list_t *S /**< */) 9172 { 9173 return /* valueList */ S->groups; 9174 } 9175 9176 9177 /***************************************************************************** 9178 ** 9179 ** int xcb_xkb_get_names_value_list_groups_length 9180 ** 9181 ** @param const xcb_xkb_get_names_value_list_t *R 9182 ** @returns int 9183 ** 9184 *****************************************************************************/ 9185 9186 int 9187 xcb_xkb_get_names_value_list_groups_length (const xcb_xkb_get_names_reply_t *R /**< */, 9188 const xcb_xkb_get_names_value_list_t *S /**< */) 9189 { 9190 return xcb_popcount(R->groupNames); 9191 } 9192 9193 9194 /***************************************************************************** 9195 ** 9196 ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_groups_end 9197 ** 9198 ** @param const xcb_xkb_get_names_value_list_t *R 9199 ** @returns xcb_generic_iterator_t 9200 ** 9201 *****************************************************************************/ 9202 9203 xcb_generic_iterator_t 9204 xcb_xkb_get_names_value_list_groups_end (const xcb_xkb_get_names_reply_t *R /**< */, 9205 const xcb_xkb_get_names_value_list_t *S /**< */) 9206 { 9207 xcb_generic_iterator_t i; 9208 i.data = /* valueList */ S->groups + xcb_popcount(R->groupNames); 9209 i.rem = 0; 9210 i.index = (char *) i.data - (char *) S; 9211 return i; 9212 } 9213 9214 9215 /***************************************************************************** 9216 ** 9217 ** xcb_xkb_key_name_t * xcb_xkb_get_names_value_list_key_names 9218 ** 9219 ** @param const xcb_xkb_get_names_value_list_t *S 9220 ** @returns xcb_xkb_key_name_t * 9221 ** 9222 *****************************************************************************/ 9223 9224 xcb_xkb_key_name_t * 9225 xcb_xkb_get_names_value_list_key_names (const xcb_xkb_get_names_value_list_t *S /**< */) 9226 { 9227 return /* valueList */ S->keyNames; 9228 } 9229 9230 9231 /***************************************************************************** 9232 ** 9233 ** int xcb_xkb_get_names_value_list_key_names_length 9234 ** 9235 ** @param const xcb_xkb_get_names_value_list_t *R 9236 ** @returns int 9237 ** 9238 *****************************************************************************/ 9239 9240 int 9241 xcb_xkb_get_names_value_list_key_names_length (const xcb_xkb_get_names_reply_t *R /**< */, 9242 const xcb_xkb_get_names_value_list_t *S /**< */) 9243 { 9244 return R->nKeys; 9245 } 9246 9247 9248 /***************************************************************************** 9249 ** 9250 ** xcb_xkb_key_name_iterator_t xcb_xkb_get_names_value_list_key_names_iterator 9251 ** 9252 ** @param const xcb_xkb_get_names_value_list_t *R 9253 ** @returns xcb_xkb_key_name_iterator_t 9254 ** 9255 *****************************************************************************/ 9256 9257 xcb_xkb_key_name_iterator_t 9258 xcb_xkb_get_names_value_list_key_names_iterator (const xcb_xkb_get_names_reply_t *R /**< */, 9259 const xcb_xkb_get_names_value_list_t *S /**< */) 9260 { 9261 xcb_xkb_key_name_iterator_t i; 9262 i.data = /* valueList */ S->keyNames; 9263 i.rem = R->nKeys; 9264 i.index = (char *) i.data - (char *) S; 9265 return i; 9266 } 9267 9268 9269 /***************************************************************************** 9270 ** 9271 ** xcb_xkb_key_alias_t * xcb_xkb_get_names_value_list_key_aliases 9272 ** 9273 ** @param const xcb_xkb_get_names_value_list_t *S 9274 ** @returns xcb_xkb_key_alias_t * 9275 ** 9276 *****************************************************************************/ 9277 9278 xcb_xkb_key_alias_t * 9279 xcb_xkb_get_names_value_list_key_aliases (const xcb_xkb_get_names_value_list_t *S /**< */) 9280 { 9281 return /* valueList */ S->keyAliases; 9282 } 9283 9284 9285 /***************************************************************************** 9286 ** 9287 ** int xcb_xkb_get_names_value_list_key_aliases_length 9288 ** 9289 ** @param const xcb_xkb_get_names_value_list_t *R 9290 ** @returns int 9291 ** 9292 *****************************************************************************/ 9293 9294 int 9295 xcb_xkb_get_names_value_list_key_aliases_length (const xcb_xkb_get_names_reply_t *R /**< */, 9296 const xcb_xkb_get_names_value_list_t *S /**< */) 9297 { 9298 return R->nKeyAliases; 9299 } 9300 9301 9302 /***************************************************************************** 9303 ** 9304 ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_names_value_list_key_aliases_iterator 9305 ** 9306 ** @param const xcb_xkb_get_names_value_list_t *R 9307 ** @returns xcb_xkb_key_alias_iterator_t 9308 ** 9309 *****************************************************************************/ 9310 9311 xcb_xkb_key_alias_iterator_t 9312 xcb_xkb_get_names_value_list_key_aliases_iterator (const xcb_xkb_get_names_reply_t *R /**< */, 9313 const xcb_xkb_get_names_value_list_t *S /**< */) 9314 { 9315 xcb_xkb_key_alias_iterator_t i; 9316 i.data = /* valueList */ S->keyAliases; 9317 i.rem = R->nKeyAliases; 9318 i.index = (char *) i.data - (char *) S; 9319 return i; 9320 } 9321 9322 9323 /***************************************************************************** 9324 ** 9325 ** xcb_atom_t * xcb_xkb_get_names_value_list_radio_group_names 9326 ** 9327 ** @param const xcb_xkb_get_names_value_list_t *S 9328 ** @returns xcb_atom_t * 9329 ** 9330 *****************************************************************************/ 9331 9332 xcb_atom_t * 9333 xcb_xkb_get_names_value_list_radio_group_names (const xcb_xkb_get_names_value_list_t *S /**< */) 9334 { 9335 return /* valueList */ S->radioGroupNames; 9336 } 9337 9338 9339 /***************************************************************************** 9340 ** 9341 ** int xcb_xkb_get_names_value_list_radio_group_names_length 9342 ** 9343 ** @param const xcb_xkb_get_names_value_list_t *R 9344 ** @returns int 9345 ** 9346 *****************************************************************************/ 9347 9348 int 9349 xcb_xkb_get_names_value_list_radio_group_names_length (const xcb_xkb_get_names_reply_t *R /**< */, 9350 const xcb_xkb_get_names_value_list_t *S /**< */) 9351 { 9352 return R->nRadioGroups; 9353 } 9354 9355 9356 /***************************************************************************** 9357 ** 9358 ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_radio_group_names_end 9359 ** 9360 ** @param const xcb_xkb_get_names_value_list_t *R 9361 ** @returns xcb_generic_iterator_t 9362 ** 9363 *****************************************************************************/ 9364 9365 xcb_generic_iterator_t 9366 xcb_xkb_get_names_value_list_radio_group_names_end (const xcb_xkb_get_names_reply_t *R /**< */, 9367 const xcb_xkb_get_names_value_list_t *S /**< */) 9368 { 9369 xcb_generic_iterator_t i; 9370 i.data = /* valueList */ S->radioGroupNames + R->nRadioGroups; 9371 i.rem = 0; 9372 i.index = (char *) i.data - (char *) S; 9373 return i; 9374 } 9375 9376 int 9377 xcb_xkb_get_names_value_list_serialize (void **_buffer /**< */, 9378 uint8_t nTypes /**< */, 9379 uint32_t indicators /**< */, 9380 uint16_t virtualMods /**< */, 9381 uint8_t groupNames /**< */, 9382 uint8_t nKeys /**< */, 9383 uint8_t nKeyAliases /**< */, 9384 uint8_t nRadioGroups /**< */, 9385 uint32_t which /**< */, 9386 const xcb_xkb_get_names_value_list_t *_aux /**< */) 9387 { 9388 char *xcb_out = *_buffer; 9389 unsigned int xcb_buffer_len = 0; 9390 unsigned int xcb_align_to = 0; 9391 9392 unsigned int xcb_pad = 0; 9393 char xcb_pad0[3] = {0, 0, 0}; 9394 struct iovec xcb_parts[27]; 9395 unsigned int xcb_parts_idx = 0; 9396 unsigned int xcb_block_len = 0; 9397 unsigned int i; 9398 char *xcb_tmp; 9399 9400 if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { 9401 /* xcb_xkb_get_names_value_list_t.keycodesName */ 9402 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; 9403 xcb_block_len += sizeof(xcb_atom_t); 9404 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 9405 xcb_parts_idx++; 9406 xcb_align_to = ALIGNOF(xcb_atom_t); 9407 } 9408 if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { 9409 /* xcb_xkb_get_names_value_list_t.geometryName */ 9410 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; 9411 xcb_block_len += sizeof(xcb_atom_t); 9412 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 9413 xcb_parts_idx++; 9414 xcb_align_to = ALIGNOF(xcb_atom_t); 9415 } 9416 if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { 9417 /* xcb_xkb_get_names_value_list_t.symbolsName */ 9418 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; 9419 xcb_block_len += sizeof(xcb_atom_t); 9420 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 9421 xcb_parts_idx++; 9422 xcb_align_to = ALIGNOF(xcb_atom_t); 9423 } 9424 if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { 9425 /* xcb_xkb_get_names_value_list_t.physSymbolsName */ 9426 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; 9427 xcb_block_len += sizeof(xcb_atom_t); 9428 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 9429 xcb_parts_idx++; 9430 xcb_align_to = ALIGNOF(xcb_atom_t); 9431 } 9432 if(which & XCB_XKB_NAME_DETAIL_TYPES) { 9433 /* xcb_xkb_get_names_value_list_t.typesName */ 9434 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; 9435 xcb_block_len += sizeof(xcb_atom_t); 9436 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 9437 xcb_parts_idx++; 9438 xcb_align_to = ALIGNOF(xcb_atom_t); 9439 } 9440 if(which & XCB_XKB_NAME_DETAIL_COMPAT) { 9441 /* xcb_xkb_get_names_value_list_t.compatName */ 9442 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; 9443 xcb_block_len += sizeof(xcb_atom_t); 9444 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 9445 xcb_parts_idx++; 9446 xcb_align_to = ALIGNOF(xcb_atom_t); 9447 } 9448 if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { 9449 /* insert padding */ 9450 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9451 xcb_buffer_len += xcb_block_len + xcb_pad; 9452 if (0 != xcb_pad) { 9453 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9454 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9455 xcb_parts_idx++; 9456 xcb_pad = 0; 9457 } 9458 xcb_block_len = 0; 9459 /* typeNames */ 9460 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; 9461 xcb_block_len += nTypes * sizeof(xcb_atom_t); 9462 xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); 9463 xcb_parts_idx++; 9464 xcb_align_to = ALIGNOF(xcb_atom_t); 9465 } 9466 if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { 9467 /* insert padding */ 9468 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9469 xcb_buffer_len += xcb_block_len + xcb_pad; 9470 if (0 != xcb_pad) { 9471 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9472 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9473 xcb_parts_idx++; 9474 xcb_pad = 0; 9475 } 9476 xcb_block_len = 0; 9477 /* nLevelsPerType */ 9478 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; 9479 xcb_block_len += nTypes * sizeof(uint8_t); 9480 xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(uint8_t); 9481 xcb_parts_idx++; 9482 xcb_align_to = ALIGNOF(uint8_t); 9483 /* insert padding */ 9484 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9485 xcb_buffer_len += xcb_block_len + xcb_pad; 9486 if (0 != xcb_pad) { 9487 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9488 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9489 xcb_parts_idx++; 9490 xcb_pad = 0; 9491 } 9492 xcb_block_len = 0; 9493 /* alignment_pad */ 9494 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad; 9495 xcb_block_len += (((nTypes + 3) & (~3)) - nTypes) * sizeof(uint8_t); 9496 xcb_parts[xcb_parts_idx].iov_len = (((nTypes + 3) & (~3)) - nTypes) * sizeof(uint8_t); 9497 xcb_parts_idx++; 9498 xcb_align_to = ALIGNOF(uint8_t); 9499 /* insert padding */ 9500 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9501 xcb_buffer_len += xcb_block_len + xcb_pad; 9502 if (0 != xcb_pad) { 9503 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9504 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9505 xcb_parts_idx++; 9506 xcb_pad = 0; 9507 } 9508 xcb_block_len = 0; 9509 /* ktLevelNames */ 9510 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; 9511 xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); 9512 xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); 9513 xcb_parts_idx++; 9514 xcb_align_to = ALIGNOF(xcb_atom_t); 9515 } 9516 if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { 9517 /* insert padding */ 9518 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9519 xcb_buffer_len += xcb_block_len + xcb_pad; 9520 if (0 != xcb_pad) { 9521 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9522 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9523 xcb_parts_idx++; 9524 xcb_pad = 0; 9525 } 9526 xcb_block_len = 0; 9527 /* indicatorNames */ 9528 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; 9529 xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); 9530 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); 9531 xcb_parts_idx++; 9532 xcb_align_to = ALIGNOF(xcb_atom_t); 9533 } 9534 if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { 9535 /* insert padding */ 9536 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9537 xcb_buffer_len += xcb_block_len + xcb_pad; 9538 if (0 != xcb_pad) { 9539 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9540 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9541 xcb_parts_idx++; 9542 xcb_pad = 0; 9543 } 9544 xcb_block_len = 0; 9545 /* virtualModNames */ 9546 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; 9547 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 9548 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 9549 xcb_parts_idx++; 9550 xcb_align_to = ALIGNOF(xcb_atom_t); 9551 } 9552 if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { 9553 /* insert padding */ 9554 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9555 xcb_buffer_len += xcb_block_len + xcb_pad; 9556 if (0 != xcb_pad) { 9557 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9558 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9559 xcb_parts_idx++; 9560 xcb_pad = 0; 9561 } 9562 xcb_block_len = 0; 9563 /* groups */ 9564 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; 9565 xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); 9566 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); 9567 xcb_parts_idx++; 9568 xcb_align_to = ALIGNOF(xcb_atom_t); 9569 } 9570 if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { 9571 /* insert padding */ 9572 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9573 xcb_buffer_len += xcb_block_len + xcb_pad; 9574 if (0 != xcb_pad) { 9575 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9576 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9577 xcb_parts_idx++; 9578 xcb_pad = 0; 9579 } 9580 xcb_block_len = 0; 9581 /* keyNames */ 9582 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; 9583 xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); 9584 xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); 9585 xcb_parts_idx++; 9586 xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); 9587 } 9588 if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { 9589 /* insert padding */ 9590 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9591 xcb_buffer_len += xcb_block_len + xcb_pad; 9592 if (0 != xcb_pad) { 9593 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9594 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9595 xcb_parts_idx++; 9596 xcb_pad = 0; 9597 } 9598 xcb_block_len = 0; 9599 /* keyAliases */ 9600 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; 9601 xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); 9602 xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); 9603 xcb_parts_idx++; 9604 xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); 9605 } 9606 if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { 9607 /* insert padding */ 9608 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9609 xcb_buffer_len += xcb_block_len + xcb_pad; 9610 if (0 != xcb_pad) { 9611 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9612 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9613 xcb_parts_idx++; 9614 xcb_pad = 0; 9615 } 9616 xcb_block_len = 0; 9617 /* radioGroupNames */ 9618 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; 9619 xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); 9620 xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); 9621 xcb_parts_idx++; 9622 xcb_align_to = ALIGNOF(xcb_atom_t); 9623 } 9624 /* insert padding */ 9625 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9626 xcb_buffer_len += xcb_block_len + xcb_pad; 9627 if (0 != xcb_pad) { 9628 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 9629 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 9630 xcb_parts_idx++; 9631 xcb_pad = 0; 9632 } 9633 xcb_block_len = 0; 9634 9635 if (NULL == xcb_out) { 9636 /* allocate memory */ 9637 xcb_out = malloc(xcb_buffer_len); 9638 *_buffer = xcb_out; 9639 } 9640 9641 xcb_tmp = xcb_out; 9642 for(i=0; i<xcb_parts_idx; i++) { 9643 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 9644 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 9645 if (0 != xcb_parts[i].iov_len) 9646 xcb_tmp += xcb_parts[i].iov_len; 9647 } 9648 9649 return xcb_buffer_len; 9650 } 9651 9652 int 9653 xcb_xkb_get_names_value_list_unpack (const void *_buffer /**< */, 9654 uint8_t nTypes /**< */, 9655 uint32_t indicators /**< */, 9656 uint16_t virtualMods /**< */, 9657 uint8_t groupNames /**< */, 9658 uint8_t nKeys /**< */, 9659 uint8_t nKeyAliases /**< */, 9660 uint8_t nRadioGroups /**< */, 9661 uint32_t which /**< */, 9662 xcb_xkb_get_names_value_list_t *_aux /**< */) 9663 { 9664 char *xcb_tmp = (char *)_buffer; 9665 unsigned int xcb_buffer_len = 0; 9666 unsigned int xcb_block_len = 0; 9667 unsigned int xcb_pad = 0; 9668 unsigned int xcb_align_to = 0; 9669 9670 9671 if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { 9672 /* xcb_xkb_get_names_value_list_t.keycodesName */ 9673 _aux->keycodesName = *(xcb_atom_t *)xcb_tmp; 9674 xcb_block_len += sizeof(xcb_atom_t); 9675 xcb_tmp += sizeof(xcb_atom_t); 9676 xcb_align_to = ALIGNOF(xcb_atom_t); 9677 } 9678 if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { 9679 /* xcb_xkb_get_names_value_list_t.geometryName */ 9680 _aux->geometryName = *(xcb_atom_t *)xcb_tmp; 9681 xcb_block_len += sizeof(xcb_atom_t); 9682 xcb_tmp += sizeof(xcb_atom_t); 9683 xcb_align_to = ALIGNOF(xcb_atom_t); 9684 } 9685 if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { 9686 /* xcb_xkb_get_names_value_list_t.symbolsName */ 9687 _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; 9688 xcb_block_len += sizeof(xcb_atom_t); 9689 xcb_tmp += sizeof(xcb_atom_t); 9690 xcb_align_to = ALIGNOF(xcb_atom_t); 9691 } 9692 if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { 9693 /* xcb_xkb_get_names_value_list_t.physSymbolsName */ 9694 _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; 9695 xcb_block_len += sizeof(xcb_atom_t); 9696 xcb_tmp += sizeof(xcb_atom_t); 9697 xcb_align_to = ALIGNOF(xcb_atom_t); 9698 } 9699 if(which & XCB_XKB_NAME_DETAIL_TYPES) { 9700 /* xcb_xkb_get_names_value_list_t.typesName */ 9701 _aux->typesName = *(xcb_atom_t *)xcb_tmp; 9702 xcb_block_len += sizeof(xcb_atom_t); 9703 xcb_tmp += sizeof(xcb_atom_t); 9704 xcb_align_to = ALIGNOF(xcb_atom_t); 9705 } 9706 if(which & XCB_XKB_NAME_DETAIL_COMPAT) { 9707 /* xcb_xkb_get_names_value_list_t.compatName */ 9708 _aux->compatName = *(xcb_atom_t *)xcb_tmp; 9709 xcb_block_len += sizeof(xcb_atom_t); 9710 xcb_tmp += sizeof(xcb_atom_t); 9711 xcb_align_to = ALIGNOF(xcb_atom_t); 9712 } 9713 if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { 9714 /* insert padding */ 9715 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9716 xcb_buffer_len += xcb_block_len + xcb_pad; 9717 if (0 != xcb_pad) { 9718 xcb_tmp += xcb_pad; 9719 xcb_pad = 0; 9720 } 9721 xcb_block_len = 0; 9722 /* typeNames */ 9723 _aux->typeNames = (xcb_atom_t *)xcb_tmp; 9724 xcb_block_len += nTypes * sizeof(xcb_atom_t); 9725 xcb_tmp += xcb_block_len; 9726 xcb_align_to = ALIGNOF(xcb_atom_t); 9727 } 9728 if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { 9729 /* insert padding */ 9730 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9731 xcb_buffer_len += xcb_block_len + xcb_pad; 9732 if (0 != xcb_pad) { 9733 xcb_tmp += xcb_pad; 9734 xcb_pad = 0; 9735 } 9736 xcb_block_len = 0; 9737 /* nLevelsPerType */ 9738 _aux->nLevelsPerType = (uint8_t *)xcb_tmp; 9739 xcb_block_len += nTypes * sizeof(uint8_t); 9740 xcb_tmp += xcb_block_len; 9741 xcb_align_to = ALIGNOF(uint8_t); 9742 /* insert padding */ 9743 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9744 xcb_buffer_len += xcb_block_len + xcb_pad; 9745 if (0 != xcb_pad) { 9746 xcb_tmp += xcb_pad; 9747 xcb_pad = 0; 9748 } 9749 xcb_block_len = 0; 9750 /* alignment_pad */ 9751 _aux->alignment_pad = (uint8_t *)xcb_tmp; 9752 xcb_block_len += (((nTypes + 3) & (~3)) - nTypes) * sizeof(uint8_t); 9753 xcb_tmp += xcb_block_len; 9754 xcb_align_to = ALIGNOF(uint8_t); 9755 /* insert padding */ 9756 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9757 xcb_buffer_len += xcb_block_len + xcb_pad; 9758 if (0 != xcb_pad) { 9759 xcb_tmp += xcb_pad; 9760 xcb_pad = 0; 9761 } 9762 xcb_block_len = 0; 9763 /* ktLevelNames */ 9764 _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; 9765 xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); 9766 xcb_tmp += xcb_block_len; 9767 xcb_align_to = ALIGNOF(xcb_atom_t); 9768 } 9769 if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { 9770 /* insert padding */ 9771 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9772 xcb_buffer_len += xcb_block_len + xcb_pad; 9773 if (0 != xcb_pad) { 9774 xcb_tmp += xcb_pad; 9775 xcb_pad = 0; 9776 } 9777 xcb_block_len = 0; 9778 /* indicatorNames */ 9779 _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; 9780 xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); 9781 xcb_tmp += xcb_block_len; 9782 xcb_align_to = ALIGNOF(xcb_atom_t); 9783 } 9784 if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { 9785 /* insert padding */ 9786 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9787 xcb_buffer_len += xcb_block_len + xcb_pad; 9788 if (0 != xcb_pad) { 9789 xcb_tmp += xcb_pad; 9790 xcb_pad = 0; 9791 } 9792 xcb_block_len = 0; 9793 /* virtualModNames */ 9794 _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; 9795 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 9796 xcb_tmp += xcb_block_len; 9797 xcb_align_to = ALIGNOF(xcb_atom_t); 9798 } 9799 if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { 9800 /* insert padding */ 9801 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9802 xcb_buffer_len += xcb_block_len + xcb_pad; 9803 if (0 != xcb_pad) { 9804 xcb_tmp += xcb_pad; 9805 xcb_pad = 0; 9806 } 9807 xcb_block_len = 0; 9808 /* groups */ 9809 _aux->groups = (xcb_atom_t *)xcb_tmp; 9810 xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); 9811 xcb_tmp += xcb_block_len; 9812 xcb_align_to = ALIGNOF(xcb_atom_t); 9813 } 9814 if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { 9815 /* insert padding */ 9816 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9817 xcb_buffer_len += xcb_block_len + xcb_pad; 9818 if (0 != xcb_pad) { 9819 xcb_tmp += xcb_pad; 9820 xcb_pad = 0; 9821 } 9822 xcb_block_len = 0; 9823 /* keyNames */ 9824 _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; 9825 xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); 9826 xcb_tmp += xcb_block_len; 9827 xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); 9828 } 9829 if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { 9830 /* insert padding */ 9831 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9832 xcb_buffer_len += xcb_block_len + xcb_pad; 9833 if (0 != xcb_pad) { 9834 xcb_tmp += xcb_pad; 9835 xcb_pad = 0; 9836 } 9837 xcb_block_len = 0; 9838 /* keyAliases */ 9839 _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; 9840 xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); 9841 xcb_tmp += xcb_block_len; 9842 xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); 9843 } 9844 if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { 9845 /* insert padding */ 9846 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9847 xcb_buffer_len += xcb_block_len + xcb_pad; 9848 if (0 != xcb_pad) { 9849 xcb_tmp += xcb_pad; 9850 xcb_pad = 0; 9851 } 9852 xcb_block_len = 0; 9853 /* radioGroupNames */ 9854 _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; 9855 xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); 9856 xcb_tmp += xcb_block_len; 9857 xcb_align_to = ALIGNOF(xcb_atom_t); 9858 } 9859 /* insert padding */ 9860 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9861 xcb_buffer_len += xcb_block_len + xcb_pad; 9862 if (0 != xcb_pad) { 9863 xcb_tmp += xcb_pad; 9864 xcb_pad = 0; 9865 } 9866 xcb_block_len = 0; 9867 9868 return xcb_buffer_len; 9869 } 9870 9871 int 9872 xcb_xkb_get_names_value_list_sizeof (const void *_buffer /**< */, 9873 uint8_t nTypes /**< */, 9874 uint32_t indicators /**< */, 9875 uint16_t virtualMods /**< */, 9876 uint8_t groupNames /**< */, 9877 uint8_t nKeys /**< */, 9878 uint8_t nKeyAliases /**< */, 9879 uint8_t nRadioGroups /**< */, 9880 uint32_t which /**< */) 9881 { 9882 xcb_xkb_get_names_value_list_t _aux; 9883 return xcb_xkb_get_names_value_list_unpack(_buffer, nTypes, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, &_aux); 9884 } 9885 9886 9887 /***************************************************************************** 9888 ** 9889 ** xcb_xkb_get_names_cookie_t xcb_xkb_get_names 9890 ** 9891 ** @param xcb_connection_t *c 9892 ** @param xcb_xkb_device_spec_t deviceSpec 9893 ** @param uint32_t which 9894 ** @returns xcb_xkb_get_names_cookie_t 9895 ** 9896 *****************************************************************************/ 9897 9898 xcb_xkb_get_names_cookie_t 9899 xcb_xkb_get_names (xcb_connection_t *c /**< */, 9900 xcb_xkb_device_spec_t deviceSpec /**< */, 9901 uint32_t which /**< */) 9902 { 9903 static const xcb_protocol_request_t xcb_req = { 9904 /* count */ 2, 9905 /* ext */ &xcb_xkb_id, 9906 /* opcode */ XCB_XKB_GET_NAMES, 9907 /* isvoid */ 0 9908 }; 9909 9910 struct iovec xcb_parts[4]; 9911 xcb_xkb_get_names_cookie_t xcb_ret; 9912 xcb_xkb_get_names_request_t xcb_out; 9913 9914 xcb_out.deviceSpec = deviceSpec; 9915 memset(xcb_out.pad0, 0, 2); 9916 xcb_out.which = which; 9917 9918 xcb_parts[2].iov_base = (char *) &xcb_out; 9919 xcb_parts[2].iov_len = sizeof(xcb_out); 9920 xcb_parts[3].iov_base = 0; 9921 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9922 9923 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9924 return xcb_ret; 9925 } 9926 9927 9928 /***************************************************************************** 9929 ** 9930 ** xcb_xkb_get_names_cookie_t xcb_xkb_get_names_unchecked 9931 ** 9932 ** @param xcb_connection_t *c 9933 ** @param xcb_xkb_device_spec_t deviceSpec 9934 ** @param uint32_t which 9935 ** @returns xcb_xkb_get_names_cookie_t 9936 ** 9937 *****************************************************************************/ 9938 9939 xcb_xkb_get_names_cookie_t 9940 xcb_xkb_get_names_unchecked (xcb_connection_t *c /**< */, 9941 xcb_xkb_device_spec_t deviceSpec /**< */, 9942 uint32_t which /**< */) 9943 { 9944 static const xcb_protocol_request_t xcb_req = { 9945 /* count */ 2, 9946 /* ext */ &xcb_xkb_id, 9947 /* opcode */ XCB_XKB_GET_NAMES, 9948 /* isvoid */ 0 9949 }; 9950 9951 struct iovec xcb_parts[4]; 9952 xcb_xkb_get_names_cookie_t xcb_ret; 9953 xcb_xkb_get_names_request_t xcb_out; 9954 9955 xcb_out.deviceSpec = deviceSpec; 9956 memset(xcb_out.pad0, 0, 2); 9957 xcb_out.which = which; 9958 9959 xcb_parts[2].iov_base = (char *) &xcb_out; 9960 xcb_parts[2].iov_len = sizeof(xcb_out); 9961 xcb_parts[3].iov_base = 0; 9962 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9963 9964 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9965 return xcb_ret; 9966 } 9967 9968 9969 /***************************************************************************** 9970 ** 9971 ** xcb_xkb_get_names_value_list_t * xcb_xkb_get_names_value_list 9972 ** 9973 ** @param const xcb_xkb_get_names_reply_t *R 9974 ** @returns xcb_xkb_get_names_value_list_t * 9975 ** 9976 *****************************************************************************/ 9977 9978 void * 9979 xcb_xkb_get_names_value_list (const xcb_xkb_get_names_reply_t *R /**< */) 9980 { 9981 return (void *) (R + 1); 9982 } 9983 9984 9985 /***************************************************************************** 9986 ** 9987 ** xcb_xkb_get_names_reply_t * xcb_xkb_get_names_reply 9988 ** 9989 ** @param xcb_connection_t *c 9990 ** @param xcb_xkb_get_names_cookie_t cookie 9991 ** @param xcb_generic_error_t **e 9992 ** @returns xcb_xkb_get_names_reply_t * 9993 ** 9994 *****************************************************************************/ 9995 9996 xcb_xkb_get_names_reply_t * 9997 xcb_xkb_get_names_reply (xcb_connection_t *c /**< */, 9998 xcb_xkb_get_names_cookie_t cookie /**< */, 9999 xcb_generic_error_t **e /**< */) 10000 { 10001 return (xcb_xkb_get_names_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10002 } 10003 10004 10005 /***************************************************************************** 10006 ** 10007 ** xcb_atom_t * xcb_xkb_set_names_values_type_names 10008 ** 10009 ** @param const xcb_xkb_set_names_values_t *S 10010 ** @returns xcb_atom_t * 10011 ** 10012 *****************************************************************************/ 10013 10014 xcb_atom_t * 10015 xcb_xkb_set_names_values_type_names (const xcb_xkb_set_names_values_t *S /**< */) 10016 { 10017 return /* values */ S->typeNames; 10018 } 10019 10020 10021 /***************************************************************************** 10022 ** 10023 ** int xcb_xkb_set_names_values_type_names_length 10024 ** 10025 ** @param const xcb_xkb_set_names_values_t *R 10026 ** @returns int 10027 ** 10028 *****************************************************************************/ 10029 10030 int 10031 xcb_xkb_set_names_values_type_names_length (const xcb_xkb_set_names_request_t *R /**< */, 10032 const xcb_xkb_set_names_values_t *S /**< */) 10033 { 10034 return R->nTypes; 10035 } 10036 10037 10038 /***************************************************************************** 10039 ** 10040 ** xcb_generic_iterator_t xcb_xkb_set_names_values_type_names_end 10041 ** 10042 ** @param const xcb_xkb_set_names_values_t *R 10043 ** @returns xcb_generic_iterator_t 10044 ** 10045 *****************************************************************************/ 10046 10047 xcb_generic_iterator_t 10048 xcb_xkb_set_names_values_type_names_end (const xcb_xkb_set_names_request_t *R /**< */, 10049 const xcb_xkb_set_names_values_t *S /**< */) 10050 { 10051 xcb_generic_iterator_t i; 10052 i.data = /* values */ S->typeNames + R->nTypes; 10053 i.rem = 0; 10054 i.index = (char *) i.data - (char *) S; 10055 return i; 10056 } 10057 10058 10059 /***************************************************************************** 10060 ** 10061 ** uint8_t * xcb_xkb_set_names_values_n_levels_per_type 10062 ** 10063 ** @param const xcb_xkb_set_names_values_t *S 10064 ** @returns uint8_t * 10065 ** 10066 *****************************************************************************/ 10067 10068 uint8_t * 10069 xcb_xkb_set_names_values_n_levels_per_type (const xcb_xkb_set_names_values_t *S /**< */) 10070 { 10071 return /* values */ S->nLevelsPerType; 10072 } 10073 10074 10075 /***************************************************************************** 10076 ** 10077 ** int xcb_xkb_set_names_values_n_levels_per_type_length 10078 ** 10079 ** @param const xcb_xkb_set_names_values_t *R 10080 ** @returns int 10081 ** 10082 *****************************************************************************/ 10083 10084 int 10085 xcb_xkb_set_names_values_n_levels_per_type_length (const xcb_xkb_set_names_request_t *R /**< */, 10086 const xcb_xkb_set_names_values_t *S /**< */) 10087 { 10088 return R->nKTLevels; 10089 } 10090 10091 10092 /***************************************************************************** 10093 ** 10094 ** xcb_generic_iterator_t xcb_xkb_set_names_values_n_levels_per_type_end 10095 ** 10096 ** @param const xcb_xkb_set_names_values_t *R 10097 ** @returns xcb_generic_iterator_t 10098 ** 10099 *****************************************************************************/ 10100 10101 xcb_generic_iterator_t 10102 xcb_xkb_set_names_values_n_levels_per_type_end (const xcb_xkb_set_names_request_t *R /**< */, 10103 const xcb_xkb_set_names_values_t *S /**< */) 10104 { 10105 xcb_generic_iterator_t i; 10106 i.data = /* values */ S->nLevelsPerType + R->nKTLevels; 10107 i.rem = 0; 10108 i.index = (char *) i.data - (char *) S; 10109 return i; 10110 } 10111 10112 10113 /***************************************************************************** 10114 ** 10115 ** xcb_atom_t * xcb_xkb_set_names_values_kt_level_names 10116 ** 10117 ** @param const xcb_xkb_set_names_values_t *S 10118 ** @returns xcb_atom_t * 10119 ** 10120 *****************************************************************************/ 10121 10122 xcb_atom_t * 10123 xcb_xkb_set_names_values_kt_level_names (const xcb_xkb_set_names_values_t *S /**< */) 10124 { 10125 return /* values */ S->ktLevelNames; 10126 } 10127 10128 10129 /***************************************************************************** 10130 ** 10131 ** int xcb_xkb_set_names_values_kt_level_names_length 10132 ** 10133 ** @param const xcb_xkb_set_names_values_t *R 10134 ** @returns int 10135 ** 10136 *****************************************************************************/ 10137 10138 int 10139 xcb_xkb_set_names_values_kt_level_names_length (const xcb_xkb_set_names_request_t *R /**< */, 10140 const xcb_xkb_set_names_values_t *S /**< */) 10141 { 10142 return xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); 10143 } 10144 10145 10146 /***************************************************************************** 10147 ** 10148 ** xcb_generic_iterator_t xcb_xkb_set_names_values_kt_level_names_end 10149 ** 10150 ** @param const xcb_xkb_set_names_values_t *R 10151 ** @returns xcb_generic_iterator_t 10152 ** 10153 *****************************************************************************/ 10154 10155 xcb_generic_iterator_t 10156 xcb_xkb_set_names_values_kt_level_names_end (const xcb_xkb_set_names_request_t *R /**< */, 10157 const xcb_xkb_set_names_values_t *S /**< */) 10158 { 10159 xcb_generic_iterator_t i; 10160 i.data = /* values */ S->ktLevelNames + xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); 10161 i.rem = 0; 10162 i.index = (char *) i.data - (char *) S; 10163 return i; 10164 } 10165 10166 10167 /***************************************************************************** 10168 ** 10169 ** xcb_atom_t * xcb_xkb_set_names_values_indicator_names 10170 ** 10171 ** @param const xcb_xkb_set_names_values_t *S 10172 ** @returns xcb_atom_t * 10173 ** 10174 *****************************************************************************/ 10175 10176 xcb_atom_t * 10177 xcb_xkb_set_names_values_indicator_names (const xcb_xkb_set_names_values_t *S /**< */) 10178 { 10179 return /* values */ S->indicatorNames; 10180 } 10181 10182 10183 /***************************************************************************** 10184 ** 10185 ** int xcb_xkb_set_names_values_indicator_names_length 10186 ** 10187 ** @param const xcb_xkb_set_names_values_t *R 10188 ** @returns int 10189 ** 10190 *****************************************************************************/ 10191 10192 int 10193 xcb_xkb_set_names_values_indicator_names_length (const xcb_xkb_set_names_request_t *R /**< */, 10194 const xcb_xkb_set_names_values_t *S /**< */) 10195 { 10196 return xcb_popcount(R->indicators); 10197 } 10198 10199 10200 /***************************************************************************** 10201 ** 10202 ** xcb_generic_iterator_t xcb_xkb_set_names_values_indicator_names_end 10203 ** 10204 ** @param const xcb_xkb_set_names_values_t *R 10205 ** @returns xcb_generic_iterator_t 10206 ** 10207 *****************************************************************************/ 10208 10209 xcb_generic_iterator_t 10210 xcb_xkb_set_names_values_indicator_names_end (const xcb_xkb_set_names_request_t *R /**< */, 10211 const xcb_xkb_set_names_values_t *S /**< */) 10212 { 10213 xcb_generic_iterator_t i; 10214 i.data = /* values */ S->indicatorNames + xcb_popcount(R->indicators); 10215 i.rem = 0; 10216 i.index = (char *) i.data - (char *) S; 10217 return i; 10218 } 10219 10220 10221 /***************************************************************************** 10222 ** 10223 ** xcb_atom_t * xcb_xkb_set_names_values_virtual_mod_names 10224 ** 10225 ** @param const xcb_xkb_set_names_values_t *S 10226 ** @returns xcb_atom_t * 10227 ** 10228 *****************************************************************************/ 10229 10230 xcb_atom_t * 10231 xcb_xkb_set_names_values_virtual_mod_names (const xcb_xkb_set_names_values_t *S /**< */) 10232 { 10233 return /* values */ S->virtualModNames; 10234 } 10235 10236 10237 /***************************************************************************** 10238 ** 10239 ** int xcb_xkb_set_names_values_virtual_mod_names_length 10240 ** 10241 ** @param const xcb_xkb_set_names_values_t *R 10242 ** @returns int 10243 ** 10244 *****************************************************************************/ 10245 10246 int 10247 xcb_xkb_set_names_values_virtual_mod_names_length (const xcb_xkb_set_names_request_t *R /**< */, 10248 const xcb_xkb_set_names_values_t *S /**< */) 10249 { 10250 return xcb_popcount(R->virtualMods); 10251 } 10252 10253 10254 /***************************************************************************** 10255 ** 10256 ** xcb_generic_iterator_t xcb_xkb_set_names_values_virtual_mod_names_end 10257 ** 10258 ** @param const xcb_xkb_set_names_values_t *R 10259 ** @returns xcb_generic_iterator_t 10260 ** 10261 *****************************************************************************/ 10262 10263 xcb_generic_iterator_t 10264 xcb_xkb_set_names_values_virtual_mod_names_end (const xcb_xkb_set_names_request_t *R /**< */, 10265 const xcb_xkb_set_names_values_t *S /**< */) 10266 { 10267 xcb_generic_iterator_t i; 10268 i.data = /* values */ S->virtualModNames + xcb_popcount(R->virtualMods); 10269 i.rem = 0; 10270 i.index = (char *) i.data - (char *) S; 10271 return i; 10272 } 10273 10274 10275 /***************************************************************************** 10276 ** 10277 ** xcb_atom_t * xcb_xkb_set_names_values_groups 10278 ** 10279 ** @param const xcb_xkb_set_names_values_t *S 10280 ** @returns xcb_atom_t * 10281 ** 10282 *****************************************************************************/ 10283 10284 xcb_atom_t * 10285 xcb_xkb_set_names_values_groups (const xcb_xkb_set_names_values_t *S /**< */) 10286 { 10287 return /* values */ S->groups; 10288 } 10289 10290 10291 /***************************************************************************** 10292 ** 10293 ** int xcb_xkb_set_names_values_groups_length 10294 ** 10295 ** @param const xcb_xkb_set_names_values_t *R 10296 ** @returns int 10297 ** 10298 *****************************************************************************/ 10299 10300 int 10301 xcb_xkb_set_names_values_groups_length (const xcb_xkb_set_names_request_t *R /**< */, 10302 const xcb_xkb_set_names_values_t *S /**< */) 10303 { 10304 return xcb_popcount(R->groupNames); 10305 } 10306 10307 10308 /***************************************************************************** 10309 ** 10310 ** xcb_generic_iterator_t xcb_xkb_set_names_values_groups_end 10311 ** 10312 ** @param const xcb_xkb_set_names_values_t *R 10313 ** @returns xcb_generic_iterator_t 10314 ** 10315 *****************************************************************************/ 10316 10317 xcb_generic_iterator_t 10318 xcb_xkb_set_names_values_groups_end (const xcb_xkb_set_names_request_t *R /**< */, 10319 const xcb_xkb_set_names_values_t *S /**< */) 10320 { 10321 xcb_generic_iterator_t i; 10322 i.data = /* values */ S->groups + xcb_popcount(R->groupNames); 10323 i.rem = 0; 10324 i.index = (char *) i.data - (char *) S; 10325 return i; 10326 } 10327 10328 10329 /***************************************************************************** 10330 ** 10331 ** xcb_xkb_key_name_t * xcb_xkb_set_names_values_key_names 10332 ** 10333 ** @param const xcb_xkb_set_names_values_t *S 10334 ** @returns xcb_xkb_key_name_t * 10335 ** 10336 *****************************************************************************/ 10337 10338 xcb_xkb_key_name_t * 10339 xcb_xkb_set_names_values_key_names (const xcb_xkb_set_names_values_t *S /**< */) 10340 { 10341 return /* values */ S->keyNames; 10342 } 10343 10344 10345 /***************************************************************************** 10346 ** 10347 ** int xcb_xkb_set_names_values_key_names_length 10348 ** 10349 ** @param const xcb_xkb_set_names_values_t *R 10350 ** @returns int 10351 ** 10352 *****************************************************************************/ 10353 10354 int 10355 xcb_xkb_set_names_values_key_names_length (const xcb_xkb_set_names_request_t *R /**< */, 10356 const xcb_xkb_set_names_values_t *S /**< */) 10357 { 10358 return R->nKeys; 10359 } 10360 10361 10362 /***************************************************************************** 10363 ** 10364 ** xcb_xkb_key_name_iterator_t xcb_xkb_set_names_values_key_names_iterator 10365 ** 10366 ** @param const xcb_xkb_set_names_values_t *R 10367 ** @returns xcb_xkb_key_name_iterator_t 10368 ** 10369 *****************************************************************************/ 10370 10371 xcb_xkb_key_name_iterator_t 10372 xcb_xkb_set_names_values_key_names_iterator (const xcb_xkb_set_names_request_t *R /**< */, 10373 const xcb_xkb_set_names_values_t *S /**< */) 10374 { 10375 xcb_xkb_key_name_iterator_t i; 10376 i.data = /* values */ S->keyNames; 10377 i.rem = R->nKeys; 10378 i.index = (char *) i.data - (char *) S; 10379 return i; 10380 } 10381 10382 10383 /***************************************************************************** 10384 ** 10385 ** xcb_xkb_key_alias_t * xcb_xkb_set_names_values_key_aliases 10386 ** 10387 ** @param const xcb_xkb_set_names_values_t *S 10388 ** @returns xcb_xkb_key_alias_t * 10389 ** 10390 *****************************************************************************/ 10391 10392 xcb_xkb_key_alias_t * 10393 xcb_xkb_set_names_values_key_aliases (const xcb_xkb_set_names_values_t *S /**< */) 10394 { 10395 return /* values */ S->keyAliases; 10396 } 10397 10398 10399 /***************************************************************************** 10400 ** 10401 ** int xcb_xkb_set_names_values_key_aliases_length 10402 ** 10403 ** @param const xcb_xkb_set_names_values_t *R 10404 ** @returns int 10405 ** 10406 *****************************************************************************/ 10407 10408 int 10409 xcb_xkb_set_names_values_key_aliases_length (const xcb_xkb_set_names_request_t *R /**< */, 10410 const xcb_xkb_set_names_values_t *S /**< */) 10411 { 10412 return R->nKeyAliases; 10413 } 10414 10415 10416 /***************************************************************************** 10417 ** 10418 ** xcb_xkb_key_alias_iterator_t xcb_xkb_set_names_values_key_aliases_iterator 10419 ** 10420 ** @param const xcb_xkb_set_names_values_t *R 10421 ** @returns xcb_xkb_key_alias_iterator_t 10422 ** 10423 *****************************************************************************/ 10424 10425 xcb_xkb_key_alias_iterator_t 10426 xcb_xkb_set_names_values_key_aliases_iterator (const xcb_xkb_set_names_request_t *R /**< */, 10427 const xcb_xkb_set_names_values_t *S /**< */) 10428 { 10429 xcb_xkb_key_alias_iterator_t i; 10430 i.data = /* values */ S->keyAliases; 10431 i.rem = R->nKeyAliases; 10432 i.index = (char *) i.data - (char *) S; 10433 return i; 10434 } 10435 10436 10437 /***************************************************************************** 10438 ** 10439 ** xcb_atom_t * xcb_xkb_set_names_values_radio_group_names 10440 ** 10441 ** @param const xcb_xkb_set_names_values_t *S 10442 ** @returns xcb_atom_t * 10443 ** 10444 *****************************************************************************/ 10445 10446 xcb_atom_t * 10447 xcb_xkb_set_names_values_radio_group_names (const xcb_xkb_set_names_values_t *S /**< */) 10448 { 10449 return /* values */ S->radioGroupNames; 10450 } 10451 10452 10453 /***************************************************************************** 10454 ** 10455 ** int xcb_xkb_set_names_values_radio_group_names_length 10456 ** 10457 ** @param const xcb_xkb_set_names_values_t *R 10458 ** @returns int 10459 ** 10460 *****************************************************************************/ 10461 10462 int 10463 xcb_xkb_set_names_values_radio_group_names_length (const xcb_xkb_set_names_request_t *R /**< */, 10464 const xcb_xkb_set_names_values_t *S /**< */) 10465 { 10466 return R->nRadioGroups; 10467 } 10468 10469 10470 /***************************************************************************** 10471 ** 10472 ** xcb_generic_iterator_t xcb_xkb_set_names_values_radio_group_names_end 10473 ** 10474 ** @param const xcb_xkb_set_names_values_t *R 10475 ** @returns xcb_generic_iterator_t 10476 ** 10477 *****************************************************************************/ 10478 10479 xcb_generic_iterator_t 10480 xcb_xkb_set_names_values_radio_group_names_end (const xcb_xkb_set_names_request_t *R /**< */, 10481 const xcb_xkb_set_names_values_t *S /**< */) 10482 { 10483 xcb_generic_iterator_t i; 10484 i.data = /* values */ S->radioGroupNames + R->nRadioGroups; 10485 i.rem = 0; 10486 i.index = (char *) i.data - (char *) S; 10487 return i; 10488 } 10489 10490 int 10491 xcb_xkb_set_names_values_serialize (void **_buffer /**< */, 10492 uint8_t nTypes /**< */, 10493 uint8_t nKTLevels /**< */, 10494 uint32_t indicators /**< */, 10495 uint16_t virtualMods /**< */, 10496 uint8_t groupNames /**< */, 10497 uint8_t nKeys /**< */, 10498 uint8_t nKeyAliases /**< */, 10499 uint8_t nRadioGroups /**< */, 10500 uint32_t which /**< */, 10501 const xcb_xkb_set_names_values_t *_aux /**< */) 10502 { 10503 char *xcb_out = *_buffer; 10504 unsigned int xcb_buffer_len = 0; 10505 unsigned int xcb_align_to = 0; 10506 10507 unsigned int xcb_pad = 0; 10508 char xcb_pad0[3] = {0, 0, 0}; 10509 struct iovec xcb_parts[25]; 10510 unsigned int xcb_parts_idx = 0; 10511 unsigned int xcb_block_len = 0; 10512 unsigned int i; 10513 char *xcb_tmp; 10514 10515 if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { 10516 /* xcb_xkb_set_names_values_t.keycodesName */ 10517 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; 10518 xcb_block_len += sizeof(xcb_atom_t); 10519 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 10520 xcb_parts_idx++; 10521 xcb_align_to = ALIGNOF(xcb_atom_t); 10522 } 10523 if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { 10524 /* xcb_xkb_set_names_values_t.geometryName */ 10525 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; 10526 xcb_block_len += sizeof(xcb_atom_t); 10527 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 10528 xcb_parts_idx++; 10529 xcb_align_to = ALIGNOF(xcb_atom_t); 10530 } 10531 if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { 10532 /* xcb_xkb_set_names_values_t.symbolsName */ 10533 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; 10534 xcb_block_len += sizeof(xcb_atom_t); 10535 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 10536 xcb_parts_idx++; 10537 xcb_align_to = ALIGNOF(xcb_atom_t); 10538 } 10539 if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { 10540 /* xcb_xkb_set_names_values_t.physSymbolsName */ 10541 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; 10542 xcb_block_len += sizeof(xcb_atom_t); 10543 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 10544 xcb_parts_idx++; 10545 xcb_align_to = ALIGNOF(xcb_atom_t); 10546 } 10547 if(which & XCB_XKB_NAME_DETAIL_TYPES) { 10548 /* xcb_xkb_set_names_values_t.typesName */ 10549 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; 10550 xcb_block_len += sizeof(xcb_atom_t); 10551 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 10552 xcb_parts_idx++; 10553 xcb_align_to = ALIGNOF(xcb_atom_t); 10554 } 10555 if(which & XCB_XKB_NAME_DETAIL_COMPAT) { 10556 /* xcb_xkb_set_names_values_t.compatName */ 10557 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; 10558 xcb_block_len += sizeof(xcb_atom_t); 10559 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 10560 xcb_parts_idx++; 10561 xcb_align_to = ALIGNOF(xcb_atom_t); 10562 } 10563 if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { 10564 /* insert padding */ 10565 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10566 xcb_buffer_len += xcb_block_len + xcb_pad; 10567 if (0 != xcb_pad) { 10568 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10569 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10570 xcb_parts_idx++; 10571 xcb_pad = 0; 10572 } 10573 xcb_block_len = 0; 10574 /* typeNames */ 10575 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; 10576 xcb_block_len += nTypes * sizeof(xcb_atom_t); 10577 xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); 10578 xcb_parts_idx++; 10579 xcb_align_to = ALIGNOF(xcb_atom_t); 10580 } 10581 if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { 10582 /* insert padding */ 10583 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10584 xcb_buffer_len += xcb_block_len + xcb_pad; 10585 if (0 != xcb_pad) { 10586 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10587 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10588 xcb_parts_idx++; 10589 xcb_pad = 0; 10590 } 10591 xcb_block_len = 0; 10592 /* nLevelsPerType */ 10593 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; 10594 xcb_block_len += nKTLevels * sizeof(uint8_t); 10595 xcb_parts[xcb_parts_idx].iov_len = nKTLevels * sizeof(uint8_t); 10596 xcb_parts_idx++; 10597 xcb_align_to = ALIGNOF(uint8_t); 10598 /* insert padding */ 10599 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10600 xcb_buffer_len += xcb_block_len + xcb_pad; 10601 if (0 != xcb_pad) { 10602 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10603 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10604 xcb_parts_idx++; 10605 xcb_pad = 0; 10606 } 10607 xcb_block_len = 0; 10608 /* ktLevelNames */ 10609 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; 10610 xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); 10611 xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); 10612 xcb_parts_idx++; 10613 xcb_align_to = ALIGNOF(xcb_atom_t); 10614 } 10615 if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { 10616 /* insert padding */ 10617 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10618 xcb_buffer_len += xcb_block_len + xcb_pad; 10619 if (0 != xcb_pad) { 10620 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10621 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10622 xcb_parts_idx++; 10623 xcb_pad = 0; 10624 } 10625 xcb_block_len = 0; 10626 /* indicatorNames */ 10627 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; 10628 xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); 10629 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); 10630 xcb_parts_idx++; 10631 xcb_align_to = ALIGNOF(xcb_atom_t); 10632 } 10633 if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { 10634 /* insert padding */ 10635 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10636 xcb_buffer_len += xcb_block_len + xcb_pad; 10637 if (0 != xcb_pad) { 10638 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10639 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10640 xcb_parts_idx++; 10641 xcb_pad = 0; 10642 } 10643 xcb_block_len = 0; 10644 /* virtualModNames */ 10645 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; 10646 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 10647 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 10648 xcb_parts_idx++; 10649 xcb_align_to = ALIGNOF(xcb_atom_t); 10650 } 10651 if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { 10652 /* insert padding */ 10653 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10654 xcb_buffer_len += xcb_block_len + xcb_pad; 10655 if (0 != xcb_pad) { 10656 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10657 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10658 xcb_parts_idx++; 10659 xcb_pad = 0; 10660 } 10661 xcb_block_len = 0; 10662 /* groups */ 10663 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; 10664 xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); 10665 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); 10666 xcb_parts_idx++; 10667 xcb_align_to = ALIGNOF(xcb_atom_t); 10668 } 10669 if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { 10670 /* insert padding */ 10671 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10672 xcb_buffer_len += xcb_block_len + xcb_pad; 10673 if (0 != xcb_pad) { 10674 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10675 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10676 xcb_parts_idx++; 10677 xcb_pad = 0; 10678 } 10679 xcb_block_len = 0; 10680 /* keyNames */ 10681 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; 10682 xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); 10683 xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); 10684 xcb_parts_idx++; 10685 xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); 10686 } 10687 if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { 10688 /* insert padding */ 10689 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10690 xcb_buffer_len += xcb_block_len + xcb_pad; 10691 if (0 != xcb_pad) { 10692 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10693 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10694 xcb_parts_idx++; 10695 xcb_pad = 0; 10696 } 10697 xcb_block_len = 0; 10698 /* keyAliases */ 10699 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; 10700 xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); 10701 xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); 10702 xcb_parts_idx++; 10703 xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); 10704 } 10705 if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { 10706 /* insert padding */ 10707 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10708 xcb_buffer_len += xcb_block_len + xcb_pad; 10709 if (0 != xcb_pad) { 10710 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10711 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10712 xcb_parts_idx++; 10713 xcb_pad = 0; 10714 } 10715 xcb_block_len = 0; 10716 /* radioGroupNames */ 10717 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; 10718 xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); 10719 xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); 10720 xcb_parts_idx++; 10721 xcb_align_to = ALIGNOF(xcb_atom_t); 10722 } 10723 /* insert padding */ 10724 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10725 xcb_buffer_len += xcb_block_len + xcb_pad; 10726 if (0 != xcb_pad) { 10727 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 10728 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 10729 xcb_parts_idx++; 10730 xcb_pad = 0; 10731 } 10732 xcb_block_len = 0; 10733 10734 if (NULL == xcb_out) { 10735 /* allocate memory */ 10736 xcb_out = malloc(xcb_buffer_len); 10737 *_buffer = xcb_out; 10738 } 10739 10740 xcb_tmp = xcb_out; 10741 for(i=0; i<xcb_parts_idx; i++) { 10742 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 10743 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 10744 if (0 != xcb_parts[i].iov_len) 10745 xcb_tmp += xcb_parts[i].iov_len; 10746 } 10747 10748 return xcb_buffer_len; 10749 } 10750 10751 int 10752 xcb_xkb_set_names_values_unpack (const void *_buffer /**< */, 10753 uint8_t nTypes /**< */, 10754 uint8_t nKTLevels /**< */, 10755 uint32_t indicators /**< */, 10756 uint16_t virtualMods /**< */, 10757 uint8_t groupNames /**< */, 10758 uint8_t nKeys /**< */, 10759 uint8_t nKeyAliases /**< */, 10760 uint8_t nRadioGroups /**< */, 10761 uint32_t which /**< */, 10762 xcb_xkb_set_names_values_t *_aux /**< */) 10763 { 10764 char *xcb_tmp = (char *)_buffer; 10765 unsigned int xcb_buffer_len = 0; 10766 unsigned int xcb_block_len = 0; 10767 unsigned int xcb_pad = 0; 10768 unsigned int xcb_align_to = 0; 10769 10770 10771 if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { 10772 /* xcb_xkb_set_names_values_t.keycodesName */ 10773 _aux->keycodesName = *(xcb_atom_t *)xcb_tmp; 10774 xcb_block_len += sizeof(xcb_atom_t); 10775 xcb_tmp += sizeof(xcb_atom_t); 10776 xcb_align_to = ALIGNOF(xcb_atom_t); 10777 } 10778 if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { 10779 /* xcb_xkb_set_names_values_t.geometryName */ 10780 _aux->geometryName = *(xcb_atom_t *)xcb_tmp; 10781 xcb_block_len += sizeof(xcb_atom_t); 10782 xcb_tmp += sizeof(xcb_atom_t); 10783 xcb_align_to = ALIGNOF(xcb_atom_t); 10784 } 10785 if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { 10786 /* xcb_xkb_set_names_values_t.symbolsName */ 10787 _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; 10788 xcb_block_len += sizeof(xcb_atom_t); 10789 xcb_tmp += sizeof(xcb_atom_t); 10790 xcb_align_to = ALIGNOF(xcb_atom_t); 10791 } 10792 if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { 10793 /* xcb_xkb_set_names_values_t.physSymbolsName */ 10794 _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; 10795 xcb_block_len += sizeof(xcb_atom_t); 10796 xcb_tmp += sizeof(xcb_atom_t); 10797 xcb_align_to = ALIGNOF(xcb_atom_t); 10798 } 10799 if(which & XCB_XKB_NAME_DETAIL_TYPES) { 10800 /* xcb_xkb_set_names_values_t.typesName */ 10801 _aux->typesName = *(xcb_atom_t *)xcb_tmp; 10802 xcb_block_len += sizeof(xcb_atom_t); 10803 xcb_tmp += sizeof(xcb_atom_t); 10804 xcb_align_to = ALIGNOF(xcb_atom_t); 10805 } 10806 if(which & XCB_XKB_NAME_DETAIL_COMPAT) { 10807 /* xcb_xkb_set_names_values_t.compatName */ 10808 _aux->compatName = *(xcb_atom_t *)xcb_tmp; 10809 xcb_block_len += sizeof(xcb_atom_t); 10810 xcb_tmp += sizeof(xcb_atom_t); 10811 xcb_align_to = ALIGNOF(xcb_atom_t); 10812 } 10813 if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { 10814 /* insert padding */ 10815 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10816 xcb_buffer_len += xcb_block_len + xcb_pad; 10817 if (0 != xcb_pad) { 10818 xcb_tmp += xcb_pad; 10819 xcb_pad = 0; 10820 } 10821 xcb_block_len = 0; 10822 /* typeNames */ 10823 _aux->typeNames = (xcb_atom_t *)xcb_tmp; 10824 xcb_block_len += nTypes * sizeof(xcb_atom_t); 10825 xcb_tmp += xcb_block_len; 10826 xcb_align_to = ALIGNOF(xcb_atom_t); 10827 } 10828 if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { 10829 /* insert padding */ 10830 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10831 xcb_buffer_len += xcb_block_len + xcb_pad; 10832 if (0 != xcb_pad) { 10833 xcb_tmp += xcb_pad; 10834 xcb_pad = 0; 10835 } 10836 xcb_block_len = 0; 10837 /* nLevelsPerType */ 10838 _aux->nLevelsPerType = (uint8_t *)xcb_tmp; 10839 xcb_block_len += nKTLevels * sizeof(uint8_t); 10840 xcb_tmp += xcb_block_len; 10841 xcb_align_to = ALIGNOF(uint8_t); 10842 /* insert padding */ 10843 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10844 xcb_buffer_len += xcb_block_len + xcb_pad; 10845 if (0 != xcb_pad) { 10846 xcb_tmp += xcb_pad; 10847 xcb_pad = 0; 10848 } 10849 xcb_block_len = 0; 10850 /* ktLevelNames */ 10851 _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; 10852 xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); 10853 xcb_tmp += xcb_block_len; 10854 xcb_align_to = ALIGNOF(xcb_atom_t); 10855 } 10856 if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { 10857 /* insert padding */ 10858 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10859 xcb_buffer_len += xcb_block_len + xcb_pad; 10860 if (0 != xcb_pad) { 10861 xcb_tmp += xcb_pad; 10862 xcb_pad = 0; 10863 } 10864 xcb_block_len = 0; 10865 /* indicatorNames */ 10866 _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; 10867 xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); 10868 xcb_tmp += xcb_block_len; 10869 xcb_align_to = ALIGNOF(xcb_atom_t); 10870 } 10871 if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { 10872 /* insert padding */ 10873 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10874 xcb_buffer_len += xcb_block_len + xcb_pad; 10875 if (0 != xcb_pad) { 10876 xcb_tmp += xcb_pad; 10877 xcb_pad = 0; 10878 } 10879 xcb_block_len = 0; 10880 /* virtualModNames */ 10881 _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; 10882 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 10883 xcb_tmp += xcb_block_len; 10884 xcb_align_to = ALIGNOF(xcb_atom_t); 10885 } 10886 if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { 10887 /* insert padding */ 10888 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10889 xcb_buffer_len += xcb_block_len + xcb_pad; 10890 if (0 != xcb_pad) { 10891 xcb_tmp += xcb_pad; 10892 xcb_pad = 0; 10893 } 10894 xcb_block_len = 0; 10895 /* groups */ 10896 _aux->groups = (xcb_atom_t *)xcb_tmp; 10897 xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); 10898 xcb_tmp += xcb_block_len; 10899 xcb_align_to = ALIGNOF(xcb_atom_t); 10900 } 10901 if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { 10902 /* insert padding */ 10903 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10904 xcb_buffer_len += xcb_block_len + xcb_pad; 10905 if (0 != xcb_pad) { 10906 xcb_tmp += xcb_pad; 10907 xcb_pad = 0; 10908 } 10909 xcb_block_len = 0; 10910 /* keyNames */ 10911 _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; 10912 xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); 10913 xcb_tmp += xcb_block_len; 10914 xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); 10915 } 10916 if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { 10917 /* insert padding */ 10918 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10919 xcb_buffer_len += xcb_block_len + xcb_pad; 10920 if (0 != xcb_pad) { 10921 xcb_tmp += xcb_pad; 10922 xcb_pad = 0; 10923 } 10924 xcb_block_len = 0; 10925 /* keyAliases */ 10926 _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; 10927 xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); 10928 xcb_tmp += xcb_block_len; 10929 xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); 10930 } 10931 if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { 10932 /* insert padding */ 10933 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10934 xcb_buffer_len += xcb_block_len + xcb_pad; 10935 if (0 != xcb_pad) { 10936 xcb_tmp += xcb_pad; 10937 xcb_pad = 0; 10938 } 10939 xcb_block_len = 0; 10940 /* radioGroupNames */ 10941 _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; 10942 xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); 10943 xcb_tmp += xcb_block_len; 10944 xcb_align_to = ALIGNOF(xcb_atom_t); 10945 } 10946 /* insert padding */ 10947 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10948 xcb_buffer_len += xcb_block_len + xcb_pad; 10949 if (0 != xcb_pad) { 10950 xcb_tmp += xcb_pad; 10951 xcb_pad = 0; 10952 } 10953 xcb_block_len = 0; 10954 10955 return xcb_buffer_len; 10956 } 10957 10958 int 10959 xcb_xkb_set_names_values_sizeof (const void *_buffer /**< */, 10960 uint8_t nTypes /**< */, 10961 uint8_t nKTLevels /**< */, 10962 uint32_t indicators /**< */, 10963 uint16_t virtualMods /**< */, 10964 uint8_t groupNames /**< */, 10965 uint8_t nKeys /**< */, 10966 uint8_t nKeyAliases /**< */, 10967 uint8_t nRadioGroups /**< */, 10968 uint32_t which /**< */) 10969 { 10970 xcb_xkb_set_names_values_t _aux; 10971 return xcb_xkb_set_names_values_unpack(_buffer, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, &_aux); 10972 } 10973 10974 10975 /***************************************************************************** 10976 ** 10977 ** xcb_void_cookie_t xcb_xkb_set_names_checked 10978 ** 10979 ** @param xcb_connection_t *c 10980 ** @param xcb_xkb_device_spec_t deviceSpec 10981 ** @param uint16_t virtualMods 10982 ** @param uint32_t which 10983 ** @param uint8_t firstType 10984 ** @param uint8_t nTypes 10985 ** @param uint8_t firstKTLevelt 10986 ** @param uint8_t nKTLevels 10987 ** @param uint32_t indicators 10988 ** @param uint8_t groupNames 10989 ** @param uint8_t nRadioGroups 10990 ** @param xcb_keycode_t firstKey 10991 ** @param uint8_t nKeys 10992 ** @param uint8_t nKeyAliases 10993 ** @param uint16_t totalKTLevelNames 10994 ** @param const void *values 10995 ** @returns xcb_void_cookie_t 10996 ** 10997 *****************************************************************************/ 10998 10999 xcb_void_cookie_t 11000 xcb_xkb_set_names_checked (xcb_connection_t *c /**< */, 11001 xcb_xkb_device_spec_t deviceSpec /**< */, 11002 uint16_t virtualMods /**< */, 11003 uint32_t which /**< */, 11004 uint8_t firstType /**< */, 11005 uint8_t nTypes /**< */, 11006 uint8_t firstKTLevelt /**< */, 11007 uint8_t nKTLevels /**< */, 11008 uint32_t indicators /**< */, 11009 uint8_t groupNames /**< */, 11010 uint8_t nRadioGroups /**< */, 11011 xcb_keycode_t firstKey /**< */, 11012 uint8_t nKeys /**< */, 11013 uint8_t nKeyAliases /**< */, 11014 uint16_t totalKTLevelNames /**< */, 11015 const void *values /**< */) 11016 { 11017 static const xcb_protocol_request_t xcb_req = { 11018 /* count */ 3, 11019 /* ext */ &xcb_xkb_id, 11020 /* opcode */ XCB_XKB_SET_NAMES, 11021 /* isvoid */ 1 11022 }; 11023 11024 struct iovec xcb_parts[5]; 11025 xcb_void_cookie_t xcb_ret; 11026 xcb_xkb_set_names_request_t xcb_out; 11027 11028 xcb_out.deviceSpec = deviceSpec; 11029 xcb_out.virtualMods = virtualMods; 11030 xcb_out.which = which; 11031 xcb_out.firstType = firstType; 11032 xcb_out.nTypes = nTypes; 11033 xcb_out.firstKTLevelt = firstKTLevelt; 11034 xcb_out.nKTLevels = nKTLevels; 11035 xcb_out.indicators = indicators; 11036 xcb_out.groupNames = groupNames; 11037 xcb_out.nRadioGroups = nRadioGroups; 11038 xcb_out.firstKey = firstKey; 11039 xcb_out.nKeys = nKeys; 11040 xcb_out.nKeyAliases = nKeyAliases; 11041 xcb_out.pad0 = 0; 11042 xcb_out.totalKTLevelNames = totalKTLevelNames; 11043 11044 xcb_parts[2].iov_base = (char *) &xcb_out; 11045 xcb_parts[2].iov_len = sizeof(xcb_out); 11046 xcb_parts[3].iov_base = 0; 11047 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11048 /* xcb_xkb_set_names_values_t values */ 11049 xcb_parts[4].iov_base = (char *) values; 11050 xcb_parts[4].iov_len = 11051 xcb_xkb_set_names_values_sizeof (values, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which); 11052 11053 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11054 return xcb_ret; 11055 } 11056 11057 11058 /***************************************************************************** 11059 ** 11060 ** xcb_void_cookie_t xcb_xkb_set_names 11061 ** 11062 ** @param xcb_connection_t *c 11063 ** @param xcb_xkb_device_spec_t deviceSpec 11064 ** @param uint16_t virtualMods 11065 ** @param uint32_t which 11066 ** @param uint8_t firstType 11067 ** @param uint8_t nTypes 11068 ** @param uint8_t firstKTLevelt 11069 ** @param uint8_t nKTLevels 11070 ** @param uint32_t indicators 11071 ** @param uint8_t groupNames 11072 ** @param uint8_t nRadioGroups 11073 ** @param xcb_keycode_t firstKey 11074 ** @param uint8_t nKeys 11075 ** @param uint8_t nKeyAliases 11076 ** @param uint16_t totalKTLevelNames 11077 ** @param const void *values 11078 ** @returns xcb_void_cookie_t 11079 ** 11080 *****************************************************************************/ 11081 11082 xcb_void_cookie_t 11083 xcb_xkb_set_names (xcb_connection_t *c /**< */, 11084 xcb_xkb_device_spec_t deviceSpec /**< */, 11085 uint16_t virtualMods /**< */, 11086 uint32_t which /**< */, 11087 uint8_t firstType /**< */, 11088 uint8_t nTypes /**< */, 11089 uint8_t firstKTLevelt /**< */, 11090 uint8_t nKTLevels /**< */, 11091 uint32_t indicators /**< */, 11092 uint8_t groupNames /**< */, 11093 uint8_t nRadioGroups /**< */, 11094 xcb_keycode_t firstKey /**< */, 11095 uint8_t nKeys /**< */, 11096 uint8_t nKeyAliases /**< */, 11097 uint16_t totalKTLevelNames /**< */, 11098 const void *values /**< */) 11099 { 11100 static const xcb_protocol_request_t xcb_req = { 11101 /* count */ 3, 11102 /* ext */ &xcb_xkb_id, 11103 /* opcode */ XCB_XKB_SET_NAMES, 11104 /* isvoid */ 1 11105 }; 11106 11107 struct iovec xcb_parts[5]; 11108 xcb_void_cookie_t xcb_ret; 11109 xcb_xkb_set_names_request_t xcb_out; 11110 11111 xcb_out.deviceSpec = deviceSpec; 11112 xcb_out.virtualMods = virtualMods; 11113 xcb_out.which = which; 11114 xcb_out.firstType = firstType; 11115 xcb_out.nTypes = nTypes; 11116 xcb_out.firstKTLevelt = firstKTLevelt; 11117 xcb_out.nKTLevels = nKTLevels; 11118 xcb_out.indicators = indicators; 11119 xcb_out.groupNames = groupNames; 11120 xcb_out.nRadioGroups = nRadioGroups; 11121 xcb_out.firstKey = firstKey; 11122 xcb_out.nKeys = nKeys; 11123 xcb_out.nKeyAliases = nKeyAliases; 11124 xcb_out.pad0 = 0; 11125 xcb_out.totalKTLevelNames = totalKTLevelNames; 11126 11127 xcb_parts[2].iov_base = (char *) &xcb_out; 11128 xcb_parts[2].iov_len = sizeof(xcb_out); 11129 xcb_parts[3].iov_base = 0; 11130 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11131 /* xcb_xkb_set_names_values_t values */ 11132 xcb_parts[4].iov_base = (char *) values; 11133 xcb_parts[4].iov_len = 11134 xcb_xkb_set_names_values_sizeof (values, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which); 11135 11136 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11137 return xcb_ret; 11138 } 11139 11140 11141 /***************************************************************************** 11142 ** 11143 ** xcb_void_cookie_t xcb_xkb_set_names_aux_checked 11144 ** 11145 ** @param xcb_connection_t *c 11146 ** @param xcb_xkb_device_spec_t deviceSpec 11147 ** @param uint16_t virtualMods 11148 ** @param uint32_t which 11149 ** @param uint8_t firstType 11150 ** @param uint8_t nTypes 11151 ** @param uint8_t firstKTLevelt 11152 ** @param uint8_t nKTLevels 11153 ** @param uint32_t indicators 11154 ** @param uint8_t groupNames 11155 ** @param uint8_t nRadioGroups 11156 ** @param xcb_keycode_t firstKey 11157 ** @param uint8_t nKeys 11158 ** @param uint8_t nKeyAliases 11159 ** @param uint16_t totalKTLevelNames 11160 ** @param const xcb_xkb_set_names_values_t *values 11161 ** @returns xcb_void_cookie_t 11162 ** 11163 *****************************************************************************/ 11164 11165 xcb_void_cookie_t 11166 xcb_xkb_set_names_aux_checked (xcb_connection_t *c /**< */, 11167 xcb_xkb_device_spec_t deviceSpec /**< */, 11168 uint16_t virtualMods /**< */, 11169 uint32_t which /**< */, 11170 uint8_t firstType /**< */, 11171 uint8_t nTypes /**< */, 11172 uint8_t firstKTLevelt /**< */, 11173 uint8_t nKTLevels /**< */, 11174 uint32_t indicators /**< */, 11175 uint8_t groupNames /**< */, 11176 uint8_t nRadioGroups /**< */, 11177 xcb_keycode_t firstKey /**< */, 11178 uint8_t nKeys /**< */, 11179 uint8_t nKeyAliases /**< */, 11180 uint16_t totalKTLevelNames /**< */, 11181 const xcb_xkb_set_names_values_t *values /**< */) 11182 { 11183 static const xcb_protocol_request_t xcb_req = { 11184 /* count */ 3, 11185 /* ext */ &xcb_xkb_id, 11186 /* opcode */ XCB_XKB_SET_NAMES, 11187 /* isvoid */ 1 11188 }; 11189 11190 struct iovec xcb_parts[5]; 11191 xcb_void_cookie_t xcb_ret; 11192 xcb_xkb_set_names_request_t xcb_out; 11193 void *xcb_aux0 = 0; 11194 11195 xcb_out.deviceSpec = deviceSpec; 11196 xcb_out.virtualMods = virtualMods; 11197 xcb_out.which = which; 11198 xcb_out.firstType = firstType; 11199 xcb_out.nTypes = nTypes; 11200 xcb_out.firstKTLevelt = firstKTLevelt; 11201 xcb_out.nKTLevels = nKTLevels; 11202 xcb_out.indicators = indicators; 11203 xcb_out.groupNames = groupNames; 11204 xcb_out.nRadioGroups = nRadioGroups; 11205 xcb_out.firstKey = firstKey; 11206 xcb_out.nKeys = nKeys; 11207 xcb_out.nKeyAliases = nKeyAliases; 11208 xcb_out.pad0 = 0; 11209 xcb_out.totalKTLevelNames = totalKTLevelNames; 11210 11211 xcb_parts[2].iov_base = (char *) &xcb_out; 11212 xcb_parts[2].iov_len = sizeof(xcb_out); 11213 xcb_parts[3].iov_base = 0; 11214 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11215 /* xcb_xkb_set_names_values_t values */ 11216 xcb_parts[4].iov_len = 11217 xcb_xkb_set_names_values_serialize (&xcb_aux0, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, values); 11218 xcb_parts[4].iov_base = xcb_aux0; 11219 11220 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11221 free(xcb_aux0); 11222 return xcb_ret; 11223 } 11224 11225 11226 /***************************************************************************** 11227 ** 11228 ** xcb_void_cookie_t xcb_xkb_set_names_aux 11229 ** 11230 ** @param xcb_connection_t *c 11231 ** @param xcb_xkb_device_spec_t deviceSpec 11232 ** @param uint16_t virtualMods 11233 ** @param uint32_t which 11234 ** @param uint8_t firstType 11235 ** @param uint8_t nTypes 11236 ** @param uint8_t firstKTLevelt 11237 ** @param uint8_t nKTLevels 11238 ** @param uint32_t indicators 11239 ** @param uint8_t groupNames 11240 ** @param uint8_t nRadioGroups 11241 ** @param xcb_keycode_t firstKey 11242 ** @param uint8_t nKeys 11243 ** @param uint8_t nKeyAliases 11244 ** @param uint16_t totalKTLevelNames 11245 ** @param const xcb_xkb_set_names_values_t *values 11246 ** @returns xcb_void_cookie_t 11247 ** 11248 *****************************************************************************/ 11249 11250 xcb_void_cookie_t 11251 xcb_xkb_set_names_aux (xcb_connection_t *c /**< */, 11252 xcb_xkb_device_spec_t deviceSpec /**< */, 11253 uint16_t virtualMods /**< */, 11254 uint32_t which /**< */, 11255 uint8_t firstType /**< */, 11256 uint8_t nTypes /**< */, 11257 uint8_t firstKTLevelt /**< */, 11258 uint8_t nKTLevels /**< */, 11259 uint32_t indicators /**< */, 11260 uint8_t groupNames /**< */, 11261 uint8_t nRadioGroups /**< */, 11262 xcb_keycode_t firstKey /**< */, 11263 uint8_t nKeys /**< */, 11264 uint8_t nKeyAliases /**< */, 11265 uint16_t totalKTLevelNames /**< */, 11266 const xcb_xkb_set_names_values_t *values /**< */) 11267 { 11268 static const xcb_protocol_request_t xcb_req = { 11269 /* count */ 3, 11270 /* ext */ &xcb_xkb_id, 11271 /* opcode */ XCB_XKB_SET_NAMES, 11272 /* isvoid */ 1 11273 }; 11274 11275 struct iovec xcb_parts[5]; 11276 xcb_void_cookie_t xcb_ret; 11277 xcb_xkb_set_names_request_t xcb_out; 11278 void *xcb_aux0 = 0; 11279 11280 xcb_out.deviceSpec = deviceSpec; 11281 xcb_out.virtualMods = virtualMods; 11282 xcb_out.which = which; 11283 xcb_out.firstType = firstType; 11284 xcb_out.nTypes = nTypes; 11285 xcb_out.firstKTLevelt = firstKTLevelt; 11286 xcb_out.nKTLevels = nKTLevels; 11287 xcb_out.indicators = indicators; 11288 xcb_out.groupNames = groupNames; 11289 xcb_out.nRadioGroups = nRadioGroups; 11290 xcb_out.firstKey = firstKey; 11291 xcb_out.nKeys = nKeys; 11292 xcb_out.nKeyAliases = nKeyAliases; 11293 xcb_out.pad0 = 0; 11294 xcb_out.totalKTLevelNames = totalKTLevelNames; 11295 11296 xcb_parts[2].iov_base = (char *) &xcb_out; 11297 xcb_parts[2].iov_len = sizeof(xcb_out); 11298 xcb_parts[3].iov_base = 0; 11299 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11300 /* xcb_xkb_set_names_values_t values */ 11301 xcb_parts[4].iov_len = 11302 xcb_xkb_set_names_values_serialize (&xcb_aux0, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, values); 11303 xcb_parts[4].iov_base = xcb_aux0; 11304 11305 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11306 free(xcb_aux0); 11307 return xcb_ret; 11308 } 11309 11310 11311 /***************************************************************************** 11312 ** 11313 ** xcb_xkb_per_client_flags_cookie_t xcb_xkb_per_client_flags 11314 ** 11315 ** @param xcb_connection_t *c 11316 ** @param xcb_xkb_device_spec_t deviceSpec 11317 ** @param uint32_t change 11318 ** @param uint32_t value 11319 ** @param uint32_t ctrlsToChange 11320 ** @param uint32_t autoCtrls 11321 ** @param uint32_t autoCtrlsValues 11322 ** @returns xcb_xkb_per_client_flags_cookie_t 11323 ** 11324 *****************************************************************************/ 11325 11326 xcb_xkb_per_client_flags_cookie_t 11327 xcb_xkb_per_client_flags (xcb_connection_t *c /**< */, 11328 xcb_xkb_device_spec_t deviceSpec /**< */, 11329 uint32_t change /**< */, 11330 uint32_t value /**< */, 11331 uint32_t ctrlsToChange /**< */, 11332 uint32_t autoCtrls /**< */, 11333 uint32_t autoCtrlsValues /**< */) 11334 { 11335 static const xcb_protocol_request_t xcb_req = { 11336 /* count */ 2, 11337 /* ext */ &xcb_xkb_id, 11338 /* opcode */ XCB_XKB_PER_CLIENT_FLAGS, 11339 /* isvoid */ 0 11340 }; 11341 11342 struct iovec xcb_parts[4]; 11343 xcb_xkb_per_client_flags_cookie_t xcb_ret; 11344 xcb_xkb_per_client_flags_request_t xcb_out; 11345 11346 xcb_out.deviceSpec = deviceSpec; 11347 memset(xcb_out.pad0, 0, 2); 11348 xcb_out.change = change; 11349 xcb_out.value = value; 11350 xcb_out.ctrlsToChange = ctrlsToChange; 11351 xcb_out.autoCtrls = autoCtrls; 11352 xcb_out.autoCtrlsValues = autoCtrlsValues; 11353 11354 xcb_parts[2].iov_base = (char *) &xcb_out; 11355 xcb_parts[2].iov_len = sizeof(xcb_out); 11356 xcb_parts[3].iov_base = 0; 11357 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11358 11359 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11360 return xcb_ret; 11361 } 11362 11363 11364 /***************************************************************************** 11365 ** 11366 ** xcb_xkb_per_client_flags_cookie_t xcb_xkb_per_client_flags_unchecked 11367 ** 11368 ** @param xcb_connection_t *c 11369 ** @param xcb_xkb_device_spec_t deviceSpec 11370 ** @param uint32_t change 11371 ** @param uint32_t value 11372 ** @param uint32_t ctrlsToChange 11373 ** @param uint32_t autoCtrls 11374 ** @param uint32_t autoCtrlsValues 11375 ** @returns xcb_xkb_per_client_flags_cookie_t 11376 ** 11377 *****************************************************************************/ 11378 11379 xcb_xkb_per_client_flags_cookie_t 11380 xcb_xkb_per_client_flags_unchecked (xcb_connection_t *c /**< */, 11381 xcb_xkb_device_spec_t deviceSpec /**< */, 11382 uint32_t change /**< */, 11383 uint32_t value /**< */, 11384 uint32_t ctrlsToChange /**< */, 11385 uint32_t autoCtrls /**< */, 11386 uint32_t autoCtrlsValues /**< */) 11387 { 11388 static const xcb_protocol_request_t xcb_req = { 11389 /* count */ 2, 11390 /* ext */ &xcb_xkb_id, 11391 /* opcode */ XCB_XKB_PER_CLIENT_FLAGS, 11392 /* isvoid */ 0 11393 }; 11394 11395 struct iovec xcb_parts[4]; 11396 xcb_xkb_per_client_flags_cookie_t xcb_ret; 11397 xcb_xkb_per_client_flags_request_t xcb_out; 11398 11399 xcb_out.deviceSpec = deviceSpec; 11400 memset(xcb_out.pad0, 0, 2); 11401 xcb_out.change = change; 11402 xcb_out.value = value; 11403 xcb_out.ctrlsToChange = ctrlsToChange; 11404 xcb_out.autoCtrls = autoCtrls; 11405 xcb_out.autoCtrlsValues = autoCtrlsValues; 11406 11407 xcb_parts[2].iov_base = (char *) &xcb_out; 11408 xcb_parts[2].iov_len = sizeof(xcb_out); 11409 xcb_parts[3].iov_base = 0; 11410 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11411 11412 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11413 return xcb_ret; 11414 } 11415 11416 11417 /***************************************************************************** 11418 ** 11419 ** xcb_xkb_per_client_flags_reply_t * xcb_xkb_per_client_flags_reply 11420 ** 11421 ** @param xcb_connection_t *c 11422 ** @param xcb_xkb_per_client_flags_cookie_t cookie 11423 ** @param xcb_generic_error_t **e 11424 ** @returns xcb_xkb_per_client_flags_reply_t * 11425 ** 11426 *****************************************************************************/ 11427 11428 xcb_xkb_per_client_flags_reply_t * 11429 xcb_xkb_per_client_flags_reply (xcb_connection_t *c /**< */, 11430 xcb_xkb_per_client_flags_cookie_t cookie /**< */, 11431 xcb_generic_error_t **e /**< */) 11432 { 11433 return (xcb_xkb_per_client_flags_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 11434 } 11435 11436 int 11437 xcb_xkb_list_components_sizeof (const void *_buffer /**< */) 11438 { 11439 char *xcb_tmp = (char *)_buffer; 11440 const xcb_xkb_list_components_reply_t *_aux = (xcb_xkb_list_components_reply_t *)_buffer; 11441 unsigned int xcb_buffer_len = 0; 11442 unsigned int xcb_block_len = 0; 11443 unsigned int xcb_pad = 0; 11444 unsigned int xcb_align_to = 0; 11445 11446 unsigned int i; 11447 unsigned int xcb_tmp_len; 11448 11449 xcb_block_len += sizeof(xcb_xkb_list_components_reply_t); 11450 xcb_tmp += xcb_block_len; 11451 xcb_buffer_len += xcb_block_len; 11452 xcb_block_len = 0; 11453 /* keymaps */ 11454 for(i=0; i<_aux->nKeymaps; i++) { 11455 xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); 11456 xcb_block_len += xcb_tmp_len; 11457 xcb_tmp += xcb_tmp_len; 11458 } 11459 xcb_align_to = ALIGNOF(xcb_xkb_listing_t); 11460 /* insert padding */ 11461 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 11462 xcb_buffer_len += xcb_block_len + xcb_pad; 11463 if (0 != xcb_pad) { 11464 xcb_tmp += xcb_pad; 11465 xcb_pad = 0; 11466 } 11467 xcb_block_len = 0; 11468 /* keycodes */ 11469 for(i=0; i<_aux->nKeycodes; i++) { 11470 xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); 11471 xcb_block_len += xcb_tmp_len; 11472 xcb_tmp += xcb_tmp_len; 11473 } 11474 xcb_align_to = ALIGNOF(xcb_xkb_listing_t); 11475 /* insert padding */ 11476 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 11477 xcb_buffer_len += xcb_block_len + xcb_pad; 11478 if (0 != xcb_pad) { 11479 xcb_tmp += xcb_pad; 11480 xcb_pad = 0; 11481 } 11482 xcb_block_len = 0; 11483 /* types */ 11484 for(i=0; i<_aux->nTypes; i++) { 11485 xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); 11486 xcb_block_len += xcb_tmp_len; 11487 xcb_tmp += xcb_tmp_len; 11488 } 11489 xcb_align_to = ALIGNOF(xcb_xkb_listing_t); 11490 /* insert padding */ 11491 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 11492 xcb_buffer_len += xcb_block_len + xcb_pad; 11493 if (0 != xcb_pad) { 11494 xcb_tmp += xcb_pad; 11495 xcb_pad = 0; 11496 } 11497 xcb_block_len = 0; 11498 /* compatMaps */ 11499 for(i=0; i<_aux->nCompatMaps; i++) { 11500 xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); 11501 xcb_block_len += xcb_tmp_len; 11502 xcb_tmp += xcb_tmp_len; 11503 } 11504 xcb_align_to = ALIGNOF(xcb_xkb_listing_t); 11505 /* insert padding */ 11506 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 11507 xcb_buffer_len += xcb_block_len + xcb_pad; 11508 if (0 != xcb_pad) { 11509 xcb_tmp += xcb_pad; 11510 xcb_pad = 0; 11511 } 11512 xcb_block_len = 0; 11513 /* symbols */ 11514 for(i=0; i<_aux->nSymbols; i++) { 11515 xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); 11516 xcb_block_len += xcb_tmp_len; 11517 xcb_tmp += xcb_tmp_len; 11518 } 11519 xcb_align_to = ALIGNOF(xcb_xkb_listing_t); 11520 /* insert padding */ 11521 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 11522 xcb_buffer_len += xcb_block_len + xcb_pad; 11523 if (0 != xcb_pad) { 11524 xcb_tmp += xcb_pad; 11525 xcb_pad = 0; 11526 } 11527 xcb_block_len = 0; 11528 /* geometries */ 11529 for(i=0; i<_aux->nGeometries; i++) { 11530 xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); 11531 xcb_block_len += xcb_tmp_len; 11532 xcb_tmp += xcb_tmp_len; 11533 } 11534 xcb_align_to = ALIGNOF(xcb_xkb_listing_t); 11535 /* insert padding */ 11536 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 11537 xcb_buffer_len += xcb_block_len + xcb_pad; 11538 if (0 != xcb_pad) { 11539 xcb_tmp += xcb_pad; 11540 xcb_pad = 0; 11541 } 11542 xcb_block_len = 0; 11543 11544 return xcb_buffer_len; 11545 } 11546 11547 11548 /***************************************************************************** 11549 ** 11550 ** xcb_xkb_list_components_cookie_t xcb_xkb_list_components 11551 ** 11552 ** @param xcb_connection_t *c 11553 ** @param xcb_xkb_device_spec_t deviceSpec 11554 ** @param uint16_t maxNames 11555 ** @returns xcb_xkb_list_components_cookie_t 11556 ** 11557 *****************************************************************************/ 11558 11559 xcb_xkb_list_components_cookie_t 11560 xcb_xkb_list_components (xcb_connection_t *c /**< */, 11561 xcb_xkb_device_spec_t deviceSpec /**< */, 11562 uint16_t maxNames /**< */) 11563 { 11564 static const xcb_protocol_request_t xcb_req = { 11565 /* count */ 2, 11566 /* ext */ &xcb_xkb_id, 11567 /* opcode */ XCB_XKB_LIST_COMPONENTS, 11568 /* isvoid */ 0 11569 }; 11570 11571 struct iovec xcb_parts[4]; 11572 xcb_xkb_list_components_cookie_t xcb_ret; 11573 xcb_xkb_list_components_request_t xcb_out; 11574 11575 xcb_out.deviceSpec = deviceSpec; 11576 xcb_out.maxNames = maxNames; 11577 11578 xcb_parts[2].iov_base = (char *) &xcb_out; 11579 xcb_parts[2].iov_len = sizeof(xcb_out); 11580 xcb_parts[3].iov_base = 0; 11581 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11582 11583 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11584 return xcb_ret; 11585 } 11586 11587 11588 /***************************************************************************** 11589 ** 11590 ** xcb_xkb_list_components_cookie_t xcb_xkb_list_components_unchecked 11591 ** 11592 ** @param xcb_connection_t *c 11593 ** @param xcb_xkb_device_spec_t deviceSpec 11594 ** @param uint16_t maxNames 11595 ** @returns xcb_xkb_list_components_cookie_t 11596 ** 11597 *****************************************************************************/ 11598 11599 xcb_xkb_list_components_cookie_t 11600 xcb_xkb_list_components_unchecked (xcb_connection_t *c /**< */, 11601 xcb_xkb_device_spec_t deviceSpec /**< */, 11602 uint16_t maxNames /**< */) 11603 { 11604 static const xcb_protocol_request_t xcb_req = { 11605 /* count */ 2, 11606 /* ext */ &xcb_xkb_id, 11607 /* opcode */ XCB_XKB_LIST_COMPONENTS, 11608 /* isvoid */ 0 11609 }; 11610 11611 struct iovec xcb_parts[4]; 11612 xcb_xkb_list_components_cookie_t xcb_ret; 11613 xcb_xkb_list_components_request_t xcb_out; 11614 11615 xcb_out.deviceSpec = deviceSpec; 11616 xcb_out.maxNames = maxNames; 11617 11618 xcb_parts[2].iov_base = (char *) &xcb_out; 11619 xcb_parts[2].iov_len = sizeof(xcb_out); 11620 xcb_parts[3].iov_base = 0; 11621 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 11622 11623 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11624 return xcb_ret; 11625 } 11626 11627 11628 /***************************************************************************** 11629 ** 11630 ** int xcb_xkb_list_components_keymaps_length 11631 ** 11632 ** @param const xcb_xkb_list_components_reply_t *R 11633 ** @returns int 11634 ** 11635 *****************************************************************************/ 11636 11637 int 11638 xcb_xkb_list_components_keymaps_length (const xcb_xkb_list_components_reply_t *R /**< */) 11639 { 11640 return R->nKeymaps; 11641 } 11642 11643 11644 /***************************************************************************** 11645 ** 11646 ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_keymaps_iterator 11647 ** 11648 ** @param const xcb_xkb_list_components_reply_t *R 11649 ** @returns xcb_xkb_listing_iterator_t 11650 ** 11651 *****************************************************************************/ 11652 11653 xcb_xkb_listing_iterator_t 11654 xcb_xkb_list_components_keymaps_iterator (const xcb_xkb_list_components_reply_t *R /**< */) 11655 { 11656 xcb_xkb_listing_iterator_t i; 11657 i.data = (xcb_xkb_listing_t *) (R + 1); 11658 i.rem = R->nKeymaps; 11659 i.index = (char *) i.data - (char *) R; 11660 return i; 11661 } 11662 11663 11664 /***************************************************************************** 11665 ** 11666 ** int xcb_xkb_list_components_keycodes_length 11667 ** 11668 ** @param const xcb_xkb_list_components_reply_t *R 11669 ** @returns int 11670 ** 11671 *****************************************************************************/ 11672 11673 int 11674 xcb_xkb_list_components_keycodes_length (const xcb_xkb_list_components_reply_t *R /**< */) 11675 { 11676 return R->nKeycodes; 11677 } 11678 11679 11680 /***************************************************************************** 11681 ** 11682 ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_keycodes_iterator 11683 ** 11684 ** @param const xcb_xkb_list_components_reply_t *R 11685 ** @returns xcb_xkb_listing_iterator_t 11686 ** 11687 *****************************************************************************/ 11688 11689 xcb_xkb_listing_iterator_t 11690 xcb_xkb_list_components_keycodes_iterator (const xcb_xkb_list_components_reply_t *R /**< */) 11691 { 11692 xcb_xkb_listing_iterator_t i; 11693 xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_keymaps_iterator(R)); 11694 i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); 11695 i.rem = R->nKeycodes; 11696 i.index = (char *) i.data - (char *) R; 11697 return i; 11698 } 11699 11700 11701 /***************************************************************************** 11702 ** 11703 ** int xcb_xkb_list_components_types_length 11704 ** 11705 ** @param const xcb_xkb_list_components_reply_t *R 11706 ** @returns int 11707 ** 11708 *****************************************************************************/ 11709 11710 int 11711 xcb_xkb_list_components_types_length (const xcb_xkb_list_components_reply_t *R /**< */) 11712 { 11713 return R->nTypes; 11714 } 11715 11716 11717 /***************************************************************************** 11718 ** 11719 ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_types_iterator 11720 ** 11721 ** @param const xcb_xkb_list_components_reply_t *R 11722 ** @returns xcb_xkb_listing_iterator_t 11723 ** 11724 *****************************************************************************/ 11725 11726 xcb_xkb_listing_iterator_t 11727 xcb_xkb_list_components_types_iterator (const xcb_xkb_list_components_reply_t *R /**< */) 11728 { 11729 xcb_xkb_listing_iterator_t i; 11730 xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_keycodes_iterator(R)); 11731 i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); 11732 i.rem = R->nTypes; 11733 i.index = (char *) i.data - (char *) R; 11734 return i; 11735 } 11736 11737 11738 /***************************************************************************** 11739 ** 11740 ** int xcb_xkb_list_components_compat_maps_length 11741 ** 11742 ** @param const xcb_xkb_list_components_reply_t *R 11743 ** @returns int 11744 ** 11745 *****************************************************************************/ 11746 11747 int 11748 xcb_xkb_list_components_compat_maps_length (const xcb_xkb_list_components_reply_t *R /**< */) 11749 { 11750 return R->nCompatMaps; 11751 } 11752 11753 11754 /***************************************************************************** 11755 ** 11756 ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_compat_maps_iterator 11757 ** 11758 ** @param const xcb_xkb_list_components_reply_t *R 11759 ** @returns xcb_xkb_listing_iterator_t 11760 ** 11761 *****************************************************************************/ 11762 11763 xcb_xkb_listing_iterator_t 11764 xcb_xkb_list_components_compat_maps_iterator (const xcb_xkb_list_components_reply_t *R /**< */) 11765 { 11766 xcb_xkb_listing_iterator_t i; 11767 xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_types_iterator(R)); 11768 i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); 11769 i.rem = R->nCompatMaps; 11770 i.index = (char *) i.data - (char *) R; 11771 return i; 11772 } 11773 11774 11775 /***************************************************************************** 11776 ** 11777 ** int xcb_xkb_list_components_symbols_length 11778 ** 11779 ** @param const xcb_xkb_list_components_reply_t *R 11780 ** @returns int 11781 ** 11782 *****************************************************************************/ 11783 11784 int 11785 xcb_xkb_list_components_symbols_length (const xcb_xkb_list_components_reply_t *R /**< */) 11786 { 11787 return R->nSymbols; 11788 } 11789 11790 11791 /***************************************************************************** 11792 ** 11793 ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_symbols_iterator 11794 ** 11795 ** @param const xcb_xkb_list_components_reply_t *R 11796 ** @returns xcb_xkb_listing_iterator_t 11797 ** 11798 *****************************************************************************/ 11799 11800 xcb_xkb_listing_iterator_t 11801 xcb_xkb_list_components_symbols_iterator (const xcb_xkb_list_components_reply_t *R /**< */) 11802 { 11803 xcb_xkb_listing_iterator_t i; 11804 xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_compat_maps_iterator(R)); 11805 i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); 11806 i.rem = R->nSymbols; 11807 i.index = (char *) i.data - (char *) R; 11808 return i; 11809 } 11810 11811 11812 /***************************************************************************** 11813 ** 11814 ** int xcb_xkb_list_components_geometries_length 11815 ** 11816 ** @param const xcb_xkb_list_components_reply_t *R 11817 ** @returns int 11818 ** 11819 *****************************************************************************/ 11820 11821 int 11822 xcb_xkb_list_components_geometries_length (const xcb_xkb_list_components_reply_t *R /**< */) 11823 { 11824 return R->nGeometries; 11825 } 11826 11827 11828 /***************************************************************************** 11829 ** 11830 ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_geometries_iterator 11831 ** 11832 ** @param const xcb_xkb_list_components_reply_t *R 11833 ** @returns xcb_xkb_listing_iterator_t 11834 ** 11835 *****************************************************************************/ 11836 11837 xcb_xkb_listing_iterator_t 11838 xcb_xkb_list_components_geometries_iterator (const xcb_xkb_list_components_reply_t *R /**< */) 11839 { 11840 xcb_xkb_listing_iterator_t i; 11841 xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_symbols_iterator(R)); 11842 i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); 11843 i.rem = R->nGeometries; 11844 i.index = (char *) i.data - (char *) R; 11845 return i; 11846 } 11847 11848 11849 /***************************************************************************** 11850 ** 11851 ** xcb_xkb_list_components_reply_t * xcb_xkb_list_components_reply 11852 ** 11853 ** @param xcb_connection_t *c 11854 ** @param xcb_xkb_list_components_cookie_t cookie 11855 ** @param xcb_generic_error_t **e 11856 ** @returns xcb_xkb_list_components_reply_t * 11857 ** 11858 *****************************************************************************/ 11859 11860 xcb_xkb_list_components_reply_t * 11861 xcb_xkb_list_components_reply (xcb_connection_t *c /**< */, 11862 xcb_xkb_list_components_cookie_t cookie /**< */, 11863 xcb_generic_error_t **e /**< */) 11864 { 11865 return (xcb_xkb_list_components_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 11866 } 11867 11868 11869 /***************************************************************************** 11870 ** 11871 ** int xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length 11872 ** 11873 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 11874 ** @returns int 11875 ** 11876 *****************************************************************************/ 11877 11878 int 11879 xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 11880 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 11881 { 11882 return /* replies */ S->types.nTypes; 11883 } 11884 11885 11886 /***************************************************************************** 11887 ** 11888 ** xcb_xkb_key_type_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator 11889 ** 11890 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 11891 ** @returns xcb_xkb_key_type_iterator_t 11892 ** 11893 *****************************************************************************/ 11894 11895 xcb_xkb_key_type_iterator_t 11896 xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 11897 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 11898 { 11899 xcb_xkb_key_type_iterator_t i; 11900 i.data = /* replies */ S->types.map.types_rtrn; 11901 i.rem = /* replies */ S->types.nTypes; 11902 i.index = (char *) i.data - (char *) S; 11903 return i; 11904 } 11905 11906 11907 /***************************************************************************** 11908 ** 11909 ** int xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length 11910 ** 11911 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 11912 ** @returns int 11913 ** 11914 *****************************************************************************/ 11915 11916 int 11917 xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 11918 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 11919 { 11920 return /* replies */ S->types.nKeySyms; 11921 } 11922 11923 11924 /***************************************************************************** 11925 ** 11926 ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator 11927 ** 11928 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 11929 ** @returns xcb_xkb_key_sym_map_iterator_t 11930 ** 11931 *****************************************************************************/ 11932 11933 xcb_xkb_key_sym_map_iterator_t 11934 xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 11935 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 11936 { 11937 xcb_xkb_key_sym_map_iterator_t i; 11938 i.data = /* replies */ S->types.map.syms_rtrn; 11939 i.rem = /* replies */ S->types.nKeySyms; 11940 i.index = (char *) i.data - (char *) S; 11941 return i; 11942 } 11943 11944 11945 /***************************************************************************** 11946 ** 11947 ** uint8_t * xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count 11948 ** 11949 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 11950 ** @returns uint8_t * 11951 ** 11952 *****************************************************************************/ 11953 11954 uint8_t * 11955 xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 11956 { 11957 return /* replies */ S->types.map.acts_rtrn_count; 11958 } 11959 11960 11961 /***************************************************************************** 11962 ** 11963 ** int xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length 11964 ** 11965 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 11966 ** @returns int 11967 ** 11968 *****************************************************************************/ 11969 11970 int 11971 xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 11972 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 11973 { 11974 return /* replies */ S->types.nKeyActions; 11975 } 11976 11977 11978 /***************************************************************************** 11979 ** 11980 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end 11981 ** 11982 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 11983 ** @returns xcb_generic_iterator_t 11984 ** 11985 *****************************************************************************/ 11986 11987 xcb_generic_iterator_t 11988 xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 11989 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 11990 { 11991 xcb_generic_iterator_t i; 11992 i.data = /* replies */ S->types.map.acts_rtrn_count + /* replies */ S->types.nKeyActions; 11993 i.rem = 0; 11994 i.index = (char *) i.data - (char *) S; 11995 return i; 11996 } 11997 11998 11999 /***************************************************************************** 12000 ** 12001 ** xcb_xkb_action_t * xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts 12002 ** 12003 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12004 ** @returns xcb_xkb_action_t * 12005 ** 12006 *****************************************************************************/ 12007 12008 xcb_xkb_action_t * 12009 xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12010 { 12011 return /* replies */ S->types.map.acts_rtrn_acts; 12012 } 12013 12014 12015 /***************************************************************************** 12016 ** 12017 ** int xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length 12018 ** 12019 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12020 ** @returns int 12021 ** 12022 *****************************************************************************/ 12023 12024 int 12025 xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12026 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12027 { 12028 return /* replies */ S->types.totalActions; 12029 } 12030 12031 12032 /***************************************************************************** 12033 ** 12034 ** xcb_xkb_action_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator 12035 ** 12036 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12037 ** @returns xcb_xkb_action_iterator_t 12038 ** 12039 *****************************************************************************/ 12040 12041 xcb_xkb_action_iterator_t 12042 xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12043 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12044 { 12045 xcb_xkb_action_iterator_t i; 12046 i.data = /* replies */ S->types.map.acts_rtrn_acts; 12047 i.rem = /* replies */ S->types.totalActions; 12048 i.index = (char *) i.data - (char *) S; 12049 return i; 12050 } 12051 12052 12053 /***************************************************************************** 12054 ** 12055 ** xcb_xkb_set_behavior_t * xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn 12056 ** 12057 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12058 ** @returns xcb_xkb_set_behavior_t * 12059 ** 12060 *****************************************************************************/ 12061 12062 xcb_xkb_set_behavior_t * 12063 xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12064 { 12065 return /* replies */ S->types.map.behaviors_rtrn; 12066 } 12067 12068 12069 /***************************************************************************** 12070 ** 12071 ** int xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length 12072 ** 12073 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12074 ** @returns int 12075 ** 12076 *****************************************************************************/ 12077 12078 int 12079 xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12080 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12081 { 12082 return /* replies */ S->types.totalKeyBehaviors; 12083 } 12084 12085 12086 /***************************************************************************** 12087 ** 12088 ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator 12089 ** 12090 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12091 ** @returns xcb_xkb_set_behavior_iterator_t 12092 ** 12093 *****************************************************************************/ 12094 12095 xcb_xkb_set_behavior_iterator_t 12096 xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12097 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12098 { 12099 xcb_xkb_set_behavior_iterator_t i; 12100 i.data = /* replies */ S->types.map.behaviors_rtrn; 12101 i.rem = /* replies */ S->types.totalKeyBehaviors; 12102 i.index = (char *) i.data - (char *) S; 12103 return i; 12104 } 12105 12106 12107 /***************************************************************************** 12108 ** 12109 ** uint8_t * xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn 12110 ** 12111 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12112 ** @returns uint8_t * 12113 ** 12114 *****************************************************************************/ 12115 12116 uint8_t * 12117 xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12118 { 12119 return /* replies */ S->types.map.vmods_rtrn; 12120 } 12121 12122 12123 /***************************************************************************** 12124 ** 12125 ** int xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length 12126 ** 12127 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12128 ** @returns int 12129 ** 12130 *****************************************************************************/ 12131 12132 int 12133 xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12134 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12135 { 12136 return xcb_popcount(/* replies */ S->types.virtualMods); 12137 } 12138 12139 12140 /***************************************************************************** 12141 ** 12142 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end 12143 ** 12144 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12145 ** @returns xcb_generic_iterator_t 12146 ** 12147 *****************************************************************************/ 12148 12149 xcb_generic_iterator_t 12150 xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12151 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12152 { 12153 xcb_generic_iterator_t i; 12154 i.data = /* replies */ S->types.map.vmods_rtrn + xcb_popcount(/* replies */ S->types.virtualMods); 12155 i.rem = 0; 12156 i.index = (char *) i.data - (char *) S; 12157 return i; 12158 } 12159 12160 12161 /***************************************************************************** 12162 ** 12163 ** xcb_xkb_set_explicit_t * xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn 12164 ** 12165 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12166 ** @returns xcb_xkb_set_explicit_t * 12167 ** 12168 *****************************************************************************/ 12169 12170 xcb_xkb_set_explicit_t * 12171 xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12172 { 12173 return /* replies */ S->types.map.explicit_rtrn; 12174 } 12175 12176 12177 /***************************************************************************** 12178 ** 12179 ** int xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length 12180 ** 12181 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12182 ** @returns int 12183 ** 12184 *****************************************************************************/ 12185 12186 int 12187 xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12188 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12189 { 12190 return /* replies */ S->types.totalKeyExplicit; 12191 } 12192 12193 12194 /***************************************************************************** 12195 ** 12196 ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator 12197 ** 12198 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12199 ** @returns xcb_xkb_set_explicit_iterator_t 12200 ** 12201 *****************************************************************************/ 12202 12203 xcb_xkb_set_explicit_iterator_t 12204 xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12205 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12206 { 12207 xcb_xkb_set_explicit_iterator_t i; 12208 i.data = /* replies */ S->types.map.explicit_rtrn; 12209 i.rem = /* replies */ S->types.totalKeyExplicit; 12210 i.index = (char *) i.data - (char *) S; 12211 return i; 12212 } 12213 12214 12215 /***************************************************************************** 12216 ** 12217 ** xcb_xkb_key_mod_map_t * xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn 12218 ** 12219 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12220 ** @returns xcb_xkb_key_mod_map_t * 12221 ** 12222 *****************************************************************************/ 12223 12224 xcb_xkb_key_mod_map_t * 12225 xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12226 { 12227 return /* replies */ S->types.map.modmap_rtrn; 12228 } 12229 12230 12231 /***************************************************************************** 12232 ** 12233 ** int xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length 12234 ** 12235 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12236 ** @returns int 12237 ** 12238 *****************************************************************************/ 12239 12240 int 12241 xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12242 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12243 { 12244 return /* replies */ S->types.totalModMapKeys; 12245 } 12246 12247 12248 /***************************************************************************** 12249 ** 12250 ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator 12251 ** 12252 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12253 ** @returns xcb_xkb_key_mod_map_iterator_t 12254 ** 12255 *****************************************************************************/ 12256 12257 xcb_xkb_key_mod_map_iterator_t 12258 xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12259 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12260 { 12261 xcb_xkb_key_mod_map_iterator_t i; 12262 i.data = /* replies */ S->types.map.modmap_rtrn; 12263 i.rem = /* replies */ S->types.totalModMapKeys; 12264 i.index = (char *) i.data - (char *) S; 12265 return i; 12266 } 12267 12268 12269 /***************************************************************************** 12270 ** 12271 ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn 12272 ** 12273 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12274 ** @returns xcb_xkb_key_v_mod_map_t * 12275 ** 12276 *****************************************************************************/ 12277 12278 xcb_xkb_key_v_mod_map_t * 12279 xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12280 { 12281 return /* replies */ S->types.map.vmodmap_rtrn; 12282 } 12283 12284 12285 /***************************************************************************** 12286 ** 12287 ** int xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length 12288 ** 12289 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12290 ** @returns int 12291 ** 12292 *****************************************************************************/ 12293 12294 int 12295 xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12296 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12297 { 12298 return /* replies */ S->types.totalVModMapKeys; 12299 } 12300 12301 12302 /***************************************************************************** 12303 ** 12304 ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator 12305 ** 12306 ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R 12307 ** @returns xcb_xkb_key_v_mod_map_iterator_t 12308 ** 12309 *****************************************************************************/ 12310 12311 xcb_xkb_key_v_mod_map_iterator_t 12312 xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12313 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12314 { 12315 xcb_xkb_key_v_mod_map_iterator_t i; 12316 i.data = /* replies */ S->types.map.vmodmap_rtrn; 12317 i.rem = /* replies */ S->types.totalVModMapKeys; 12318 i.index = (char *) i.data - (char *) S; 12319 return i; 12320 } 12321 12322 int 12323 xcb_xkb_get_kbd_by_name_replies_types_map_serialize (void **_buffer /**< */, 12324 uint8_t nTypes /**< */, 12325 uint8_t nKeySyms /**< */, 12326 uint8_t nKeyActions /**< */, 12327 uint16_t totalActions /**< */, 12328 uint8_t totalKeyBehaviors /**< */, 12329 uint16_t virtualMods /**< */, 12330 uint8_t totalKeyExplicit /**< */, 12331 uint8_t totalModMapKeys /**< */, 12332 uint8_t totalVModMapKeys /**< */, 12333 uint16_t present /**< */, 12334 const xcb_xkb_get_kbd_by_name_replies_types_map_t *_aux /**< */) 12335 { 12336 char *xcb_out = *_buffer; 12337 unsigned int xcb_buffer_len = 0; 12338 unsigned int xcb_align_to = 0; 12339 12340 unsigned int xcb_pad = 0; 12341 char xcb_pad0[3] = {0, 0, 0}; 12342 struct iovec xcb_parts[19]; 12343 unsigned int xcb_parts_idx = 0; 12344 unsigned int xcb_block_len = 0; 12345 unsigned int i; 12346 char *xcb_tmp; 12347 12348 if(present & XCB_XKB_MAP_PART_KEY_TYPES) { 12349 /* insert padding */ 12350 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12351 xcb_buffer_len += xcb_block_len + xcb_pad; 12352 if (0 != xcb_pad) { 12353 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12354 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12355 xcb_parts_idx++; 12356 xcb_pad = 0; 12357 } 12358 xcb_block_len = 0; 12359 /* types_rtrn */ 12360 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types_rtrn; 12361 xcb_parts[xcb_parts_idx].iov_len = 0; 12362 xcb_tmp = (char *) _aux->types_rtrn; 12363 for(i=0; i<nTypes; i++) { 12364 xcb_block_len = xcb_xkb_key_type_sizeof(xcb_tmp); 12365 xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; 12366 } 12367 xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; 12368 xcb_parts_idx++; 12369 xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); 12370 } 12371 if(present & XCB_XKB_MAP_PART_KEY_SYMS) { 12372 /* insert padding */ 12373 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12374 xcb_buffer_len += xcb_block_len + xcb_pad; 12375 if (0 != xcb_pad) { 12376 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12377 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12378 xcb_parts_idx++; 12379 xcb_pad = 0; 12380 } 12381 xcb_block_len = 0; 12382 /* syms_rtrn */ 12383 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->syms_rtrn; 12384 xcb_parts[xcb_parts_idx].iov_len = 0; 12385 xcb_tmp = (char *) _aux->syms_rtrn; 12386 for(i=0; i<nKeySyms; i++) { 12387 xcb_block_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); 12388 xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; 12389 } 12390 xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; 12391 xcb_parts_idx++; 12392 xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); 12393 } 12394 if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { 12395 /* insert padding */ 12396 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12397 xcb_buffer_len += xcb_block_len + xcb_pad; 12398 if (0 != xcb_pad) { 12399 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12400 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12401 xcb_parts_idx++; 12402 xcb_pad = 0; 12403 } 12404 xcb_block_len = 0; 12405 /* acts_rtrn_count */ 12406 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_count; 12407 xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); 12408 xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); 12409 xcb_parts_idx++; 12410 xcb_align_to = ALIGNOF(uint8_t); 12411 /* insert padding */ 12412 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12413 xcb_buffer_len += xcb_block_len + xcb_pad; 12414 if (0 != xcb_pad) { 12415 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12416 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12417 xcb_parts_idx++; 12418 xcb_pad = 0; 12419 } 12420 xcb_block_len = 0; 12421 /* acts_rtrn_acts */ 12422 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_acts; 12423 xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); 12424 xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); 12425 xcb_parts_idx++; 12426 xcb_align_to = ALIGNOF(xcb_xkb_action_t); 12427 } 12428 if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { 12429 /* insert padding */ 12430 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12431 xcb_buffer_len += xcb_block_len + xcb_pad; 12432 if (0 != xcb_pad) { 12433 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12434 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12435 xcb_parts_idx++; 12436 xcb_pad = 0; 12437 } 12438 xcb_block_len = 0; 12439 /* behaviors_rtrn */ 12440 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors_rtrn; 12441 xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 12442 xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 12443 xcb_parts_idx++; 12444 xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); 12445 } 12446 if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { 12447 /* insert padding */ 12448 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12449 xcb_buffer_len += xcb_block_len + xcb_pad; 12450 if (0 != xcb_pad) { 12451 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12452 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12453 xcb_parts_idx++; 12454 xcb_pad = 0; 12455 } 12456 xcb_block_len = 0; 12457 /* vmods_rtrn */ 12458 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods_rtrn; 12459 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 12460 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 12461 xcb_parts_idx++; 12462 xcb_align_to = ALIGNOF(uint8_t); 12463 } 12464 if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { 12465 /* insert padding */ 12466 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12467 xcb_buffer_len += xcb_block_len + xcb_pad; 12468 if (0 != xcb_pad) { 12469 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12470 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12471 xcb_parts_idx++; 12472 xcb_pad = 0; 12473 } 12474 xcb_block_len = 0; 12475 /* explicit_rtrn */ 12476 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit_rtrn; 12477 xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 12478 xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 12479 xcb_parts_idx++; 12480 xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); 12481 } 12482 if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { 12483 /* insert padding */ 12484 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12485 xcb_buffer_len += xcb_block_len + xcb_pad; 12486 if (0 != xcb_pad) { 12487 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12488 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12489 xcb_parts_idx++; 12490 xcb_pad = 0; 12491 } 12492 xcb_block_len = 0; 12493 /* modmap_rtrn */ 12494 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap_rtrn; 12495 xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 12496 xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 12497 xcb_parts_idx++; 12498 xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); 12499 } 12500 if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { 12501 /* insert padding */ 12502 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12503 xcb_buffer_len += xcb_block_len + xcb_pad; 12504 if (0 != xcb_pad) { 12505 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12506 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12507 xcb_parts_idx++; 12508 xcb_pad = 0; 12509 } 12510 xcb_block_len = 0; 12511 /* vmodmap_rtrn */ 12512 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap_rtrn; 12513 xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 12514 xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 12515 xcb_parts_idx++; 12516 xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); 12517 } 12518 /* insert padding */ 12519 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12520 xcb_buffer_len += xcb_block_len + xcb_pad; 12521 if (0 != xcb_pad) { 12522 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 12523 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 12524 xcb_parts_idx++; 12525 xcb_pad = 0; 12526 } 12527 xcb_block_len = 0; 12528 12529 if (NULL == xcb_out) { 12530 /* allocate memory */ 12531 xcb_out = malloc(xcb_buffer_len); 12532 *_buffer = xcb_out; 12533 } 12534 12535 xcb_tmp = xcb_out; 12536 for(i=0; i<xcb_parts_idx; i++) { 12537 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 12538 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 12539 if (0 != xcb_parts[i].iov_len) 12540 xcb_tmp += xcb_parts[i].iov_len; 12541 } 12542 12543 return xcb_buffer_len; 12544 } 12545 12546 int 12547 xcb_xkb_get_kbd_by_name_replies_types_map_unpack (const void *_buffer /**< */, 12548 uint8_t nTypes /**< */, 12549 uint8_t nKeySyms /**< */, 12550 uint8_t nKeyActions /**< */, 12551 uint16_t totalActions /**< */, 12552 uint8_t totalKeyBehaviors /**< */, 12553 uint16_t virtualMods /**< */, 12554 uint8_t totalKeyExplicit /**< */, 12555 uint8_t totalModMapKeys /**< */, 12556 uint8_t totalVModMapKeys /**< */, 12557 uint16_t present /**< */, 12558 xcb_xkb_get_kbd_by_name_replies_types_map_t *_aux /**< */) 12559 { 12560 char *xcb_tmp = (char *)_buffer; 12561 unsigned int xcb_buffer_len = 0; 12562 unsigned int xcb_block_len = 0; 12563 unsigned int xcb_pad = 0; 12564 unsigned int xcb_align_to = 0; 12565 12566 unsigned int i; 12567 unsigned int xcb_tmp_len; 12568 12569 if(present & XCB_XKB_MAP_PART_KEY_TYPES) { 12570 /* insert padding */ 12571 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12572 xcb_buffer_len += xcb_block_len + xcb_pad; 12573 if (0 != xcb_pad) { 12574 xcb_tmp += xcb_pad; 12575 xcb_pad = 0; 12576 } 12577 xcb_block_len = 0; 12578 /* types_rtrn */ 12579 _aux->types_rtrn = (xcb_xkb_key_type_t *)xcb_tmp; 12580 for(i=0; i<nTypes; i++) { 12581 xcb_tmp_len = xcb_xkb_key_type_sizeof(xcb_tmp); 12582 xcb_block_len += xcb_tmp_len; 12583 xcb_tmp += xcb_tmp_len; 12584 } 12585 xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); 12586 } 12587 if(present & XCB_XKB_MAP_PART_KEY_SYMS) { 12588 /* insert padding */ 12589 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12590 xcb_buffer_len += xcb_block_len + xcb_pad; 12591 if (0 != xcb_pad) { 12592 xcb_tmp += xcb_pad; 12593 xcb_pad = 0; 12594 } 12595 xcb_block_len = 0; 12596 /* syms_rtrn */ 12597 _aux->syms_rtrn = (xcb_xkb_key_sym_map_t *)xcb_tmp; 12598 for(i=0; i<nKeySyms; i++) { 12599 xcb_tmp_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); 12600 xcb_block_len += xcb_tmp_len; 12601 xcb_tmp += xcb_tmp_len; 12602 } 12603 xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); 12604 } 12605 if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { 12606 /* insert padding */ 12607 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12608 xcb_buffer_len += xcb_block_len + xcb_pad; 12609 if (0 != xcb_pad) { 12610 xcb_tmp += xcb_pad; 12611 xcb_pad = 0; 12612 } 12613 xcb_block_len = 0; 12614 /* acts_rtrn_count */ 12615 _aux->acts_rtrn_count = (uint8_t *)xcb_tmp; 12616 xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); 12617 xcb_tmp += xcb_block_len; 12618 xcb_align_to = ALIGNOF(uint8_t); 12619 /* insert padding */ 12620 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12621 xcb_buffer_len += xcb_block_len + xcb_pad; 12622 if (0 != xcb_pad) { 12623 xcb_tmp += xcb_pad; 12624 xcb_pad = 0; 12625 } 12626 xcb_block_len = 0; 12627 /* acts_rtrn_acts */ 12628 _aux->acts_rtrn_acts = (xcb_xkb_action_t *)xcb_tmp; 12629 xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); 12630 xcb_tmp += xcb_block_len; 12631 xcb_align_to = ALIGNOF(xcb_xkb_action_t); 12632 } 12633 if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { 12634 /* insert padding */ 12635 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12636 xcb_buffer_len += xcb_block_len + xcb_pad; 12637 if (0 != xcb_pad) { 12638 xcb_tmp += xcb_pad; 12639 xcb_pad = 0; 12640 } 12641 xcb_block_len = 0; 12642 /* behaviors_rtrn */ 12643 _aux->behaviors_rtrn = (xcb_xkb_set_behavior_t *)xcb_tmp; 12644 xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); 12645 xcb_tmp += xcb_block_len; 12646 xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); 12647 } 12648 if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { 12649 /* insert padding */ 12650 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12651 xcb_buffer_len += xcb_block_len + xcb_pad; 12652 if (0 != xcb_pad) { 12653 xcb_tmp += xcb_pad; 12654 xcb_pad = 0; 12655 } 12656 xcb_block_len = 0; 12657 /* vmods_rtrn */ 12658 _aux->vmods_rtrn = (uint8_t *)xcb_tmp; 12659 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); 12660 xcb_tmp += xcb_block_len; 12661 xcb_align_to = ALIGNOF(uint8_t); 12662 } 12663 if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { 12664 /* insert padding */ 12665 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12666 xcb_buffer_len += xcb_block_len + xcb_pad; 12667 if (0 != xcb_pad) { 12668 xcb_tmp += xcb_pad; 12669 xcb_pad = 0; 12670 } 12671 xcb_block_len = 0; 12672 /* explicit_rtrn */ 12673 _aux->explicit_rtrn = (xcb_xkb_set_explicit_t *)xcb_tmp; 12674 xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); 12675 xcb_tmp += xcb_block_len; 12676 xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); 12677 } 12678 if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { 12679 /* insert padding */ 12680 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12681 xcb_buffer_len += xcb_block_len + xcb_pad; 12682 if (0 != xcb_pad) { 12683 xcb_tmp += xcb_pad; 12684 xcb_pad = 0; 12685 } 12686 xcb_block_len = 0; 12687 /* modmap_rtrn */ 12688 _aux->modmap_rtrn = (xcb_xkb_key_mod_map_t *)xcb_tmp; 12689 xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); 12690 xcb_tmp += xcb_block_len; 12691 xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); 12692 } 12693 if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { 12694 /* insert padding */ 12695 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12696 xcb_buffer_len += xcb_block_len + xcb_pad; 12697 if (0 != xcb_pad) { 12698 xcb_tmp += xcb_pad; 12699 xcb_pad = 0; 12700 } 12701 xcb_block_len = 0; 12702 /* vmodmap_rtrn */ 12703 _aux->vmodmap_rtrn = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; 12704 xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); 12705 xcb_tmp += xcb_block_len; 12706 xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); 12707 } 12708 /* insert padding */ 12709 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 12710 xcb_buffer_len += xcb_block_len + xcb_pad; 12711 if (0 != xcb_pad) { 12712 xcb_tmp += xcb_pad; 12713 xcb_pad = 0; 12714 } 12715 xcb_block_len = 0; 12716 12717 return xcb_buffer_len; 12718 } 12719 12720 int 12721 xcb_xkb_get_kbd_by_name_replies_types_map_sizeof (const void *_buffer /**< */, 12722 uint8_t nTypes /**< */, 12723 uint8_t nKeySyms /**< */, 12724 uint8_t nKeyActions /**< */, 12725 uint16_t totalActions /**< */, 12726 uint8_t totalKeyBehaviors /**< */, 12727 uint16_t virtualMods /**< */, 12728 uint8_t totalKeyExplicit /**< */, 12729 uint8_t totalModMapKeys /**< */, 12730 uint8_t totalVModMapKeys /**< */, 12731 uint16_t present /**< */) 12732 { 12733 xcb_xkb_get_kbd_by_name_replies_types_map_t _aux; 12734 return xcb_xkb_get_kbd_by_name_replies_types_map_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); 12735 } 12736 12737 12738 /***************************************************************************** 12739 ** 12740 ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names 12741 ** 12742 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12743 ** @returns xcb_atom_t * 12744 ** 12745 *****************************************************************************/ 12746 12747 xcb_atom_t * 12748 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12749 { 12750 return /* replies */ S->key_names.valueList.typeNames; 12751 } 12752 12753 12754 /***************************************************************************** 12755 ** 12756 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length 12757 ** 12758 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12759 ** @returns int 12760 ** 12761 *****************************************************************************/ 12762 12763 int 12764 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12765 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12766 { 12767 return /* replies */ S->key_names.nTypes; 12768 } 12769 12770 12771 /***************************************************************************** 12772 ** 12773 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end 12774 ** 12775 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12776 ** @returns xcb_generic_iterator_t 12777 ** 12778 *****************************************************************************/ 12779 12780 xcb_generic_iterator_t 12781 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12782 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12783 { 12784 xcb_generic_iterator_t i; 12785 i.data = /* replies */ S->key_names.valueList.typeNames + /* replies */ S->key_names.nTypes; 12786 i.rem = 0; 12787 i.index = (char *) i.data - (char *) S; 12788 return i; 12789 } 12790 12791 12792 /***************************************************************************** 12793 ** 12794 ** uint8_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type 12795 ** 12796 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12797 ** @returns uint8_t * 12798 ** 12799 *****************************************************************************/ 12800 12801 uint8_t * 12802 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12803 { 12804 return /* replies */ S->key_names.valueList.nLevelsPerType; 12805 } 12806 12807 12808 /***************************************************************************** 12809 ** 12810 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length 12811 ** 12812 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12813 ** @returns int 12814 ** 12815 *****************************************************************************/ 12816 12817 int 12818 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12819 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12820 { 12821 return /* replies */ S->key_names.nKTLevels; 12822 } 12823 12824 12825 /***************************************************************************** 12826 ** 12827 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end 12828 ** 12829 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12830 ** @returns xcb_generic_iterator_t 12831 ** 12832 *****************************************************************************/ 12833 12834 xcb_generic_iterator_t 12835 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12836 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12837 { 12838 xcb_generic_iterator_t i; 12839 i.data = /* replies */ S->key_names.valueList.nLevelsPerType + /* replies */ S->key_names.nKTLevels; 12840 i.rem = 0; 12841 i.index = (char *) i.data - (char *) S; 12842 return i; 12843 } 12844 12845 12846 /***************************************************************************** 12847 ** 12848 ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names 12849 ** 12850 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12851 ** @returns xcb_atom_t * 12852 ** 12853 *****************************************************************************/ 12854 12855 xcb_atom_t * 12856 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12857 { 12858 return /* replies */ S->key_names.valueList.ktLevelNames; 12859 } 12860 12861 12862 /***************************************************************************** 12863 ** 12864 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length 12865 ** 12866 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12867 ** @returns int 12868 ** 12869 *****************************************************************************/ 12870 12871 int 12872 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12873 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12874 { 12875 return xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); 12876 } 12877 12878 12879 /***************************************************************************** 12880 ** 12881 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end 12882 ** 12883 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12884 ** @returns xcb_generic_iterator_t 12885 ** 12886 *****************************************************************************/ 12887 12888 xcb_generic_iterator_t 12889 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12890 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12891 { 12892 xcb_generic_iterator_t i; 12893 i.data = /* replies */ S->key_names.valueList.ktLevelNames + xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); 12894 i.rem = 0; 12895 i.index = (char *) i.data - (char *) S; 12896 return i; 12897 } 12898 12899 12900 /***************************************************************************** 12901 ** 12902 ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names 12903 ** 12904 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12905 ** @returns xcb_atom_t * 12906 ** 12907 *****************************************************************************/ 12908 12909 xcb_atom_t * 12910 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12911 { 12912 return /* replies */ S->key_names.valueList.indicatorNames; 12913 } 12914 12915 12916 /***************************************************************************** 12917 ** 12918 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length 12919 ** 12920 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12921 ** @returns int 12922 ** 12923 *****************************************************************************/ 12924 12925 int 12926 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12927 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12928 { 12929 return xcb_popcount(/* replies */ S->key_names.indicators); 12930 } 12931 12932 12933 /***************************************************************************** 12934 ** 12935 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end 12936 ** 12937 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12938 ** @returns xcb_generic_iterator_t 12939 ** 12940 *****************************************************************************/ 12941 12942 xcb_generic_iterator_t 12943 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12944 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12945 { 12946 xcb_generic_iterator_t i; 12947 i.data = /* replies */ S->key_names.valueList.indicatorNames + xcb_popcount(/* replies */ S->key_names.indicators); 12948 i.rem = 0; 12949 i.index = (char *) i.data - (char *) S; 12950 return i; 12951 } 12952 12953 12954 /***************************************************************************** 12955 ** 12956 ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names 12957 ** 12958 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 12959 ** @returns xcb_atom_t * 12960 ** 12961 *****************************************************************************/ 12962 12963 xcb_atom_t * 12964 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12965 { 12966 return /* replies */ S->key_names.valueList.virtualModNames; 12967 } 12968 12969 12970 /***************************************************************************** 12971 ** 12972 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length 12973 ** 12974 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12975 ** @returns int 12976 ** 12977 *****************************************************************************/ 12978 12979 int 12980 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12981 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12982 { 12983 return xcb_popcount(/* replies */ S->key_names.virtualMods); 12984 } 12985 12986 12987 /***************************************************************************** 12988 ** 12989 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end 12990 ** 12991 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 12992 ** @returns xcb_generic_iterator_t 12993 ** 12994 *****************************************************************************/ 12995 12996 xcb_generic_iterator_t 12997 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 12998 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 12999 { 13000 xcb_generic_iterator_t i; 13001 i.data = /* replies */ S->key_names.valueList.virtualModNames + xcb_popcount(/* replies */ S->key_names.virtualMods); 13002 i.rem = 0; 13003 i.index = (char *) i.data - (char *) S; 13004 return i; 13005 } 13006 13007 13008 /***************************************************************************** 13009 ** 13010 ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups 13011 ** 13012 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 13013 ** @returns xcb_atom_t * 13014 ** 13015 *****************************************************************************/ 13016 13017 xcb_atom_t * 13018 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13019 { 13020 return /* replies */ S->key_names.valueList.groups; 13021 } 13022 13023 13024 /***************************************************************************** 13025 ** 13026 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length 13027 ** 13028 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 13029 ** @returns int 13030 ** 13031 *****************************************************************************/ 13032 13033 int 13034 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13035 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13036 { 13037 return xcb_popcount(/* replies */ S->key_names.groupNames); 13038 } 13039 13040 13041 /***************************************************************************** 13042 ** 13043 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end 13044 ** 13045 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 13046 ** @returns xcb_generic_iterator_t 13047 ** 13048 *****************************************************************************/ 13049 13050 xcb_generic_iterator_t 13051 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13052 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13053 { 13054 xcb_generic_iterator_t i; 13055 i.data = /* replies */ S->key_names.valueList.groups + xcb_popcount(/* replies */ S->key_names.groupNames); 13056 i.rem = 0; 13057 i.index = (char *) i.data - (char *) S; 13058 return i; 13059 } 13060 13061 13062 /***************************************************************************** 13063 ** 13064 ** xcb_xkb_key_name_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names 13065 ** 13066 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 13067 ** @returns xcb_xkb_key_name_t * 13068 ** 13069 *****************************************************************************/ 13070 13071 xcb_xkb_key_name_t * 13072 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13073 { 13074 return /* replies */ S->key_names.valueList.keyNames; 13075 } 13076 13077 13078 /***************************************************************************** 13079 ** 13080 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length 13081 ** 13082 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 13083 ** @returns int 13084 ** 13085 *****************************************************************************/ 13086 13087 int 13088 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13089 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13090 { 13091 return /* replies */ S->key_names.nKeys; 13092 } 13093 13094 13095 /***************************************************************************** 13096 ** 13097 ** xcb_xkb_key_name_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator 13098 ** 13099 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 13100 ** @returns xcb_xkb_key_name_iterator_t 13101 ** 13102 *****************************************************************************/ 13103 13104 xcb_xkb_key_name_iterator_t 13105 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13106 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13107 { 13108 xcb_xkb_key_name_iterator_t i; 13109 i.data = /* replies */ S->key_names.valueList.keyNames; 13110 i.rem = /* replies */ S->key_names.nKeys; 13111 i.index = (char *) i.data - (char *) S; 13112 return i; 13113 } 13114 13115 13116 /***************************************************************************** 13117 ** 13118 ** xcb_xkb_key_alias_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases 13119 ** 13120 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 13121 ** @returns xcb_xkb_key_alias_t * 13122 ** 13123 *****************************************************************************/ 13124 13125 xcb_xkb_key_alias_t * 13126 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13127 { 13128 return /* replies */ S->key_names.valueList.keyAliases; 13129 } 13130 13131 13132 /***************************************************************************** 13133 ** 13134 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length 13135 ** 13136 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 13137 ** @returns int 13138 ** 13139 *****************************************************************************/ 13140 13141 int 13142 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13143 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13144 { 13145 return /* replies */ S->key_names.nKeyAliases; 13146 } 13147 13148 13149 /***************************************************************************** 13150 ** 13151 ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator 13152 ** 13153 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 13154 ** @returns xcb_xkb_key_alias_iterator_t 13155 ** 13156 *****************************************************************************/ 13157 13158 xcb_xkb_key_alias_iterator_t 13159 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13160 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13161 { 13162 xcb_xkb_key_alias_iterator_t i; 13163 i.data = /* replies */ S->key_names.valueList.keyAliases; 13164 i.rem = /* replies */ S->key_names.nKeyAliases; 13165 i.index = (char *) i.data - (char *) S; 13166 return i; 13167 } 13168 13169 13170 /***************************************************************************** 13171 ** 13172 ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names 13173 ** 13174 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 13175 ** @returns xcb_atom_t * 13176 ** 13177 *****************************************************************************/ 13178 13179 xcb_atom_t * 13180 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13181 { 13182 return /* replies */ S->key_names.valueList.radioGroupNames; 13183 } 13184 13185 13186 /***************************************************************************** 13187 ** 13188 ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length 13189 ** 13190 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 13191 ** @returns int 13192 ** 13193 *****************************************************************************/ 13194 13195 int 13196 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13197 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13198 { 13199 return /* replies */ S->key_names.nRadioGroups; 13200 } 13201 13202 13203 /***************************************************************************** 13204 ** 13205 ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end 13206 ** 13207 ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R 13208 ** @returns xcb_generic_iterator_t 13209 ** 13210 *****************************************************************************/ 13211 13212 xcb_generic_iterator_t 13213 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13214 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13215 { 13216 xcb_generic_iterator_t i; 13217 i.data = /* replies */ S->key_names.valueList.radioGroupNames + /* replies */ S->key_names.nRadioGroups; 13218 i.rem = 0; 13219 i.index = (char *) i.data - (char *) S; 13220 return i; 13221 } 13222 13223 int 13224 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize (void **_buffer /**< */, 13225 uint8_t nTypes /**< */, 13226 uint16_t nKTLevels /**< */, 13227 uint32_t indicators /**< */, 13228 uint16_t virtualMods /**< */, 13229 uint8_t groupNames /**< */, 13230 uint8_t nKeys /**< */, 13231 uint8_t nKeyAliases /**< */, 13232 uint8_t nRadioGroups /**< */, 13233 uint32_t which /**< */, 13234 const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *_aux /**< */) 13235 { 13236 char *xcb_out = *_buffer; 13237 unsigned int xcb_buffer_len = 0; 13238 unsigned int xcb_align_to = 0; 13239 13240 unsigned int xcb_pad = 0; 13241 char xcb_pad0[3] = {0, 0, 0}; 13242 struct iovec xcb_parts[25]; 13243 unsigned int xcb_parts_idx = 0; 13244 unsigned int xcb_block_len = 0; 13245 unsigned int i; 13246 char *xcb_tmp; 13247 13248 if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { 13249 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.keycodesName */ 13250 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; 13251 xcb_block_len += sizeof(xcb_atom_t); 13252 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 13253 xcb_parts_idx++; 13254 xcb_align_to = ALIGNOF(xcb_atom_t); 13255 } 13256 if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { 13257 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.geometryName */ 13258 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; 13259 xcb_block_len += sizeof(xcb_atom_t); 13260 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 13261 xcb_parts_idx++; 13262 xcb_align_to = ALIGNOF(xcb_atom_t); 13263 } 13264 if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { 13265 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.symbolsName */ 13266 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; 13267 xcb_block_len += sizeof(xcb_atom_t); 13268 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 13269 xcb_parts_idx++; 13270 xcb_align_to = ALIGNOF(xcb_atom_t); 13271 } 13272 if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { 13273 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.physSymbolsName */ 13274 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; 13275 xcb_block_len += sizeof(xcb_atom_t); 13276 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 13277 xcb_parts_idx++; 13278 xcb_align_to = ALIGNOF(xcb_atom_t); 13279 } 13280 if(which & XCB_XKB_NAME_DETAIL_TYPES) { 13281 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.typesName */ 13282 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; 13283 xcb_block_len += sizeof(xcb_atom_t); 13284 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 13285 xcb_parts_idx++; 13286 xcb_align_to = ALIGNOF(xcb_atom_t); 13287 } 13288 if(which & XCB_XKB_NAME_DETAIL_COMPAT) { 13289 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.compatName */ 13290 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; 13291 xcb_block_len += sizeof(xcb_atom_t); 13292 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 13293 xcb_parts_idx++; 13294 xcb_align_to = ALIGNOF(xcb_atom_t); 13295 } 13296 if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { 13297 /* insert padding */ 13298 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13299 xcb_buffer_len += xcb_block_len + xcb_pad; 13300 if (0 != xcb_pad) { 13301 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13302 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13303 xcb_parts_idx++; 13304 xcb_pad = 0; 13305 } 13306 xcb_block_len = 0; 13307 /* typeNames */ 13308 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; 13309 xcb_block_len += nTypes * sizeof(xcb_atom_t); 13310 xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); 13311 xcb_parts_idx++; 13312 xcb_align_to = ALIGNOF(xcb_atom_t); 13313 } 13314 if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { 13315 /* insert padding */ 13316 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13317 xcb_buffer_len += xcb_block_len + xcb_pad; 13318 if (0 != xcb_pad) { 13319 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13320 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13321 xcb_parts_idx++; 13322 xcb_pad = 0; 13323 } 13324 xcb_block_len = 0; 13325 /* nLevelsPerType */ 13326 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; 13327 xcb_block_len += nKTLevels * sizeof(uint8_t); 13328 xcb_parts[xcb_parts_idx].iov_len = nKTLevels * sizeof(uint8_t); 13329 xcb_parts_idx++; 13330 xcb_align_to = ALIGNOF(uint8_t); 13331 /* insert padding */ 13332 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13333 xcb_buffer_len += xcb_block_len + xcb_pad; 13334 if (0 != xcb_pad) { 13335 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13336 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13337 xcb_parts_idx++; 13338 xcb_pad = 0; 13339 } 13340 xcb_block_len = 0; 13341 /* ktLevelNames */ 13342 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; 13343 xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); 13344 xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); 13345 xcb_parts_idx++; 13346 xcb_align_to = ALIGNOF(xcb_atom_t); 13347 } 13348 if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { 13349 /* insert padding */ 13350 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13351 xcb_buffer_len += xcb_block_len + xcb_pad; 13352 if (0 != xcb_pad) { 13353 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13354 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13355 xcb_parts_idx++; 13356 xcb_pad = 0; 13357 } 13358 xcb_block_len = 0; 13359 /* indicatorNames */ 13360 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; 13361 xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); 13362 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); 13363 xcb_parts_idx++; 13364 xcb_align_to = ALIGNOF(xcb_atom_t); 13365 } 13366 if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { 13367 /* insert padding */ 13368 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13369 xcb_buffer_len += xcb_block_len + xcb_pad; 13370 if (0 != xcb_pad) { 13371 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13372 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13373 xcb_parts_idx++; 13374 xcb_pad = 0; 13375 } 13376 xcb_block_len = 0; 13377 /* virtualModNames */ 13378 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; 13379 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 13380 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 13381 xcb_parts_idx++; 13382 xcb_align_to = ALIGNOF(xcb_atom_t); 13383 } 13384 if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { 13385 /* insert padding */ 13386 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13387 xcb_buffer_len += xcb_block_len + xcb_pad; 13388 if (0 != xcb_pad) { 13389 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13390 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13391 xcb_parts_idx++; 13392 xcb_pad = 0; 13393 } 13394 xcb_block_len = 0; 13395 /* groups */ 13396 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; 13397 xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); 13398 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); 13399 xcb_parts_idx++; 13400 xcb_align_to = ALIGNOF(xcb_atom_t); 13401 } 13402 if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { 13403 /* insert padding */ 13404 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13405 xcb_buffer_len += xcb_block_len + xcb_pad; 13406 if (0 != xcb_pad) { 13407 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13408 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13409 xcb_parts_idx++; 13410 xcb_pad = 0; 13411 } 13412 xcb_block_len = 0; 13413 /* keyNames */ 13414 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; 13415 xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); 13416 xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); 13417 xcb_parts_idx++; 13418 xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); 13419 } 13420 if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { 13421 /* insert padding */ 13422 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13423 xcb_buffer_len += xcb_block_len + xcb_pad; 13424 if (0 != xcb_pad) { 13425 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13426 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13427 xcb_parts_idx++; 13428 xcb_pad = 0; 13429 } 13430 xcb_block_len = 0; 13431 /* keyAliases */ 13432 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; 13433 xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); 13434 xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); 13435 xcb_parts_idx++; 13436 xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); 13437 } 13438 if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { 13439 /* insert padding */ 13440 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13441 xcb_buffer_len += xcb_block_len + xcb_pad; 13442 if (0 != xcb_pad) { 13443 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13444 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13445 xcb_parts_idx++; 13446 xcb_pad = 0; 13447 } 13448 xcb_block_len = 0; 13449 /* radioGroupNames */ 13450 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; 13451 xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); 13452 xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); 13453 xcb_parts_idx++; 13454 xcb_align_to = ALIGNOF(xcb_atom_t); 13455 } 13456 /* insert padding */ 13457 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13458 xcb_buffer_len += xcb_block_len + xcb_pad; 13459 if (0 != xcb_pad) { 13460 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13461 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 13462 xcb_parts_idx++; 13463 xcb_pad = 0; 13464 } 13465 xcb_block_len = 0; 13466 13467 if (NULL == xcb_out) { 13468 /* allocate memory */ 13469 xcb_out = malloc(xcb_buffer_len); 13470 *_buffer = xcb_out; 13471 } 13472 13473 xcb_tmp = xcb_out; 13474 for(i=0; i<xcb_parts_idx; i++) { 13475 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 13476 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 13477 if (0 != xcb_parts[i].iov_len) 13478 xcb_tmp += xcb_parts[i].iov_len; 13479 } 13480 13481 return xcb_buffer_len; 13482 } 13483 13484 int 13485 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack (const void *_buffer /**< */, 13486 uint8_t nTypes /**< */, 13487 uint16_t nKTLevels /**< */, 13488 uint32_t indicators /**< */, 13489 uint16_t virtualMods /**< */, 13490 uint8_t groupNames /**< */, 13491 uint8_t nKeys /**< */, 13492 uint8_t nKeyAliases /**< */, 13493 uint8_t nRadioGroups /**< */, 13494 uint32_t which /**< */, 13495 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *_aux /**< */) 13496 { 13497 char *xcb_tmp = (char *)_buffer; 13498 unsigned int xcb_buffer_len = 0; 13499 unsigned int xcb_block_len = 0; 13500 unsigned int xcb_pad = 0; 13501 unsigned int xcb_align_to = 0; 13502 13503 13504 if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { 13505 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.keycodesName */ 13506 _aux->keycodesName = *(xcb_atom_t *)xcb_tmp; 13507 xcb_block_len += sizeof(xcb_atom_t); 13508 xcb_tmp += sizeof(xcb_atom_t); 13509 xcb_align_to = ALIGNOF(xcb_atom_t); 13510 } 13511 if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { 13512 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.geometryName */ 13513 _aux->geometryName = *(xcb_atom_t *)xcb_tmp; 13514 xcb_block_len += sizeof(xcb_atom_t); 13515 xcb_tmp += sizeof(xcb_atom_t); 13516 xcb_align_to = ALIGNOF(xcb_atom_t); 13517 } 13518 if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { 13519 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.symbolsName */ 13520 _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; 13521 xcb_block_len += sizeof(xcb_atom_t); 13522 xcb_tmp += sizeof(xcb_atom_t); 13523 xcb_align_to = ALIGNOF(xcb_atom_t); 13524 } 13525 if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { 13526 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.physSymbolsName */ 13527 _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; 13528 xcb_block_len += sizeof(xcb_atom_t); 13529 xcb_tmp += sizeof(xcb_atom_t); 13530 xcb_align_to = ALIGNOF(xcb_atom_t); 13531 } 13532 if(which & XCB_XKB_NAME_DETAIL_TYPES) { 13533 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.typesName */ 13534 _aux->typesName = *(xcb_atom_t *)xcb_tmp; 13535 xcb_block_len += sizeof(xcb_atom_t); 13536 xcb_tmp += sizeof(xcb_atom_t); 13537 xcb_align_to = ALIGNOF(xcb_atom_t); 13538 } 13539 if(which & XCB_XKB_NAME_DETAIL_COMPAT) { 13540 /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.compatName */ 13541 _aux->compatName = *(xcb_atom_t *)xcb_tmp; 13542 xcb_block_len += sizeof(xcb_atom_t); 13543 xcb_tmp += sizeof(xcb_atom_t); 13544 xcb_align_to = ALIGNOF(xcb_atom_t); 13545 } 13546 if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { 13547 /* insert padding */ 13548 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13549 xcb_buffer_len += xcb_block_len + xcb_pad; 13550 if (0 != xcb_pad) { 13551 xcb_tmp += xcb_pad; 13552 xcb_pad = 0; 13553 } 13554 xcb_block_len = 0; 13555 /* typeNames */ 13556 _aux->typeNames = (xcb_atom_t *)xcb_tmp; 13557 xcb_block_len += nTypes * sizeof(xcb_atom_t); 13558 xcb_tmp += xcb_block_len; 13559 xcb_align_to = ALIGNOF(xcb_atom_t); 13560 } 13561 if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { 13562 /* insert padding */ 13563 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13564 xcb_buffer_len += xcb_block_len + xcb_pad; 13565 if (0 != xcb_pad) { 13566 xcb_tmp += xcb_pad; 13567 xcb_pad = 0; 13568 } 13569 xcb_block_len = 0; 13570 /* nLevelsPerType */ 13571 _aux->nLevelsPerType = (uint8_t *)xcb_tmp; 13572 xcb_block_len += nKTLevels * sizeof(uint8_t); 13573 xcb_tmp += xcb_block_len; 13574 xcb_align_to = ALIGNOF(uint8_t); 13575 /* insert padding */ 13576 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13577 xcb_buffer_len += xcb_block_len + xcb_pad; 13578 if (0 != xcb_pad) { 13579 xcb_tmp += xcb_pad; 13580 xcb_pad = 0; 13581 } 13582 xcb_block_len = 0; 13583 /* ktLevelNames */ 13584 _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; 13585 xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); 13586 xcb_tmp += xcb_block_len; 13587 xcb_align_to = ALIGNOF(xcb_atom_t); 13588 } 13589 if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { 13590 /* insert padding */ 13591 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13592 xcb_buffer_len += xcb_block_len + xcb_pad; 13593 if (0 != xcb_pad) { 13594 xcb_tmp += xcb_pad; 13595 xcb_pad = 0; 13596 } 13597 xcb_block_len = 0; 13598 /* indicatorNames */ 13599 _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; 13600 xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); 13601 xcb_tmp += xcb_block_len; 13602 xcb_align_to = ALIGNOF(xcb_atom_t); 13603 } 13604 if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { 13605 /* insert padding */ 13606 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13607 xcb_buffer_len += xcb_block_len + xcb_pad; 13608 if (0 != xcb_pad) { 13609 xcb_tmp += xcb_pad; 13610 xcb_pad = 0; 13611 } 13612 xcb_block_len = 0; 13613 /* virtualModNames */ 13614 _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; 13615 xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); 13616 xcb_tmp += xcb_block_len; 13617 xcb_align_to = ALIGNOF(xcb_atom_t); 13618 } 13619 if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { 13620 /* insert padding */ 13621 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13622 xcb_buffer_len += xcb_block_len + xcb_pad; 13623 if (0 != xcb_pad) { 13624 xcb_tmp += xcb_pad; 13625 xcb_pad = 0; 13626 } 13627 xcb_block_len = 0; 13628 /* groups */ 13629 _aux->groups = (xcb_atom_t *)xcb_tmp; 13630 xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); 13631 xcb_tmp += xcb_block_len; 13632 xcb_align_to = ALIGNOF(xcb_atom_t); 13633 } 13634 if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { 13635 /* insert padding */ 13636 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13637 xcb_buffer_len += xcb_block_len + xcb_pad; 13638 if (0 != xcb_pad) { 13639 xcb_tmp += xcb_pad; 13640 xcb_pad = 0; 13641 } 13642 xcb_block_len = 0; 13643 /* keyNames */ 13644 _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; 13645 xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); 13646 xcb_tmp += xcb_block_len; 13647 xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); 13648 } 13649 if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { 13650 /* insert padding */ 13651 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13652 xcb_buffer_len += xcb_block_len + xcb_pad; 13653 if (0 != xcb_pad) { 13654 xcb_tmp += xcb_pad; 13655 xcb_pad = 0; 13656 } 13657 xcb_block_len = 0; 13658 /* keyAliases */ 13659 _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; 13660 xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); 13661 xcb_tmp += xcb_block_len; 13662 xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); 13663 } 13664 if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { 13665 /* insert padding */ 13666 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13667 xcb_buffer_len += xcb_block_len + xcb_pad; 13668 if (0 != xcb_pad) { 13669 xcb_tmp += xcb_pad; 13670 xcb_pad = 0; 13671 } 13672 xcb_block_len = 0; 13673 /* radioGroupNames */ 13674 _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; 13675 xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); 13676 xcb_tmp += xcb_block_len; 13677 xcb_align_to = ALIGNOF(xcb_atom_t); 13678 } 13679 /* insert padding */ 13680 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 13681 xcb_buffer_len += xcb_block_len + xcb_pad; 13682 if (0 != xcb_pad) { 13683 xcb_tmp += xcb_pad; 13684 xcb_pad = 0; 13685 } 13686 xcb_block_len = 0; 13687 13688 return xcb_buffer_len; 13689 } 13690 13691 int 13692 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof (const void *_buffer /**< */, 13693 uint8_t nTypes /**< */, 13694 uint16_t nKTLevels /**< */, 13695 uint32_t indicators /**< */, 13696 uint16_t virtualMods /**< */, 13697 uint8_t groupNames /**< */, 13698 uint8_t nKeys /**< */, 13699 uint8_t nKeyAliases /**< */, 13700 uint8_t nRadioGroups /**< */, 13701 uint32_t which /**< */) 13702 { 13703 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t _aux; 13704 return xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack(_buffer, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, &_aux); 13705 } 13706 13707 13708 /***************************************************************************** 13709 ** 13710 ** xcb_xkb_get_kbd_by_name_replies_types_map_t * xcb_xkb_get_kbd_by_name_replies_types_map 13711 ** 13712 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13713 ** @returns xcb_xkb_get_kbd_by_name_replies_types_map_t * 13714 ** 13715 *****************************************************************************/ 13716 13717 xcb_xkb_get_kbd_by_name_replies_types_map_t * 13718 xcb_xkb_get_kbd_by_name_replies_types_map (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */) 13719 { 13720 return (xcb_xkb_get_kbd_by_name_replies_types_map_t *) (R + 1); 13721 } 13722 13723 13724 /***************************************************************************** 13725 ** 13726 ** xcb_xkb_sym_interpret_t * xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn 13727 ** 13728 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 13729 ** @returns xcb_xkb_sym_interpret_t * 13730 ** 13731 *****************************************************************************/ 13732 13733 xcb_xkb_sym_interpret_t * 13734 xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13735 { 13736 return /* replies */ S->compat_map.si_rtrn; 13737 } 13738 13739 13740 /***************************************************************************** 13741 ** 13742 ** int xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_length 13743 ** 13744 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13745 ** @returns int 13746 ** 13747 *****************************************************************************/ 13748 13749 int 13750 xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13751 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13752 { 13753 return /* replies */ S->compat_map.nSIRtrn; 13754 } 13755 13756 13757 /***************************************************************************** 13758 ** 13759 ** xcb_xkb_sym_interpret_iterator_t xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_iterator 13760 ** 13761 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13762 ** @returns xcb_xkb_sym_interpret_iterator_t 13763 ** 13764 *****************************************************************************/ 13765 13766 xcb_xkb_sym_interpret_iterator_t 13767 xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13768 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13769 { 13770 xcb_xkb_sym_interpret_iterator_t i; 13771 i.data = /* replies */ S->compat_map.si_rtrn; 13772 i.rem = /* replies */ S->compat_map.nSIRtrn; 13773 i.index = (char *) i.data - (char *) S; 13774 return i; 13775 } 13776 13777 13778 /***************************************************************************** 13779 ** 13780 ** xcb_xkb_mod_def_t * xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn 13781 ** 13782 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 13783 ** @returns xcb_xkb_mod_def_t * 13784 ** 13785 *****************************************************************************/ 13786 13787 xcb_xkb_mod_def_t * 13788 xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13789 { 13790 return /* replies */ S->compat_map.group_rtrn; 13791 } 13792 13793 13794 /***************************************************************************** 13795 ** 13796 ** int xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_length 13797 ** 13798 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13799 ** @returns int 13800 ** 13801 *****************************************************************************/ 13802 13803 int 13804 xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13805 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13806 { 13807 return xcb_popcount(/* replies */ S->compat_map.groupsRtrn); 13808 } 13809 13810 13811 /***************************************************************************** 13812 ** 13813 ** xcb_xkb_mod_def_iterator_t xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_iterator 13814 ** 13815 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13816 ** @returns xcb_xkb_mod_def_iterator_t 13817 ** 13818 *****************************************************************************/ 13819 13820 xcb_xkb_mod_def_iterator_t 13821 xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13822 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13823 { 13824 xcb_xkb_mod_def_iterator_t i; 13825 i.data = /* replies */ S->compat_map.group_rtrn; 13826 i.rem = xcb_popcount(/* replies */ S->compat_map.groupsRtrn); 13827 i.index = (char *) i.data - (char *) S; 13828 return i; 13829 } 13830 13831 13832 /***************************************************************************** 13833 ** 13834 ** xcb_xkb_indicator_map_t * xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps 13835 ** 13836 ** @param const xcb_xkb_get_kbd_by_name_replies_t *S 13837 ** @returns xcb_xkb_indicator_map_t * 13838 ** 13839 *****************************************************************************/ 13840 13841 xcb_xkb_indicator_map_t * 13842 xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13843 { 13844 return /* replies */ S->indicator_maps.maps; 13845 } 13846 13847 13848 /***************************************************************************** 13849 ** 13850 ** int xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_length 13851 ** 13852 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13853 ** @returns int 13854 ** 13855 *****************************************************************************/ 13856 13857 int 13858 xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13859 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13860 { 13861 return /* replies */ S->indicator_maps.nIndicators; 13862 } 13863 13864 13865 /***************************************************************************** 13866 ** 13867 ** xcb_xkb_indicator_map_iterator_t xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_iterator 13868 ** 13869 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13870 ** @returns xcb_xkb_indicator_map_iterator_t 13871 ** 13872 *****************************************************************************/ 13873 13874 xcb_xkb_indicator_map_iterator_t 13875 xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, 13876 const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) 13877 { 13878 xcb_xkb_indicator_map_iterator_t i; 13879 i.data = /* replies */ S->indicator_maps.maps; 13880 i.rem = /* replies */ S->indicator_maps.nIndicators; 13881 i.index = (char *) i.data - (char *) S; 13882 return i; 13883 } 13884 13885 13886 /***************************************************************************** 13887 ** 13888 ** xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list 13889 ** 13890 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13891 ** @returns xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * 13892 ** 13893 *****************************************************************************/ 13894 13895 xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * 13896 xcb_xkb_get_kbd_by_name_replies_key_names_value_list (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */) 13897 { 13898 return (xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *) (R + 1); 13899 } 13900 13901 13902 /***************************************************************************** 13903 ** 13904 ** xcb_xkb_counted_string_16_t * xcb_xkb_get_kbd_by_name_replies_geometry_label_font 13905 ** 13906 ** @param const xcb_xkb_get_kbd_by_name_replies_t *R 13907 ** @returns xcb_xkb_counted_string_16_t * 13908 ** 13909 *****************************************************************************/ 13910 13911 xcb_xkb_counted_string_16_t * 13912 xcb_xkb_get_kbd_by_name_replies_geometry_label_font (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */) 13913 { 13914 return (xcb_xkb_counted_string_16_t *) (R + 1); 13915 } 13916 13917 int 13918 xcb_xkb_get_kbd_by_name_replies_serialize (void **_buffer /**< */, 13919 uint16_t reported /**< */, 13920 const xcb_xkb_get_kbd_by_name_replies_t *_aux /**< */) 13921 { 13922 char *xcb_out = *_buffer; 13923 unsigned int xcb_buffer_len = 0; 13924 unsigned int xcb_align_to = 0; 13925 13926 unsigned int xcb_pad = 0; 13927 char xcb_pad0[3] = {0, 0, 0}; 13928 struct iovec xcb_parts[96]; 13929 unsigned int xcb_parts_idx = 0; 13930 unsigned int xcb_block_len = 0; 13931 unsigned int i; 13932 char *xcb_tmp; 13933 13934 if((reported & XCB_XKB_GBN_DETAIL_TYPES) || 13935 (reported & XCB_XKB_GBN_DETAIL_CLIENT_SYMBOLS) || 13936 (reported & XCB_XKB_GBN_DETAIL_SERVER_SYMBOLS)) { 13937 /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_type */ 13938 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.getmap_type; 13939 xcb_block_len += sizeof(uint8_t); 13940 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 13941 xcb_parts_idx++; 13942 xcb_align_to = ALIGNOF(uint8_t); 13943 /* xcb_xkb_get_kbd_by_name_replies_t.types.typeDeviceID */ 13944 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.typeDeviceID; 13945 xcb_block_len += sizeof(uint8_t); 13946 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 13947 xcb_parts_idx++; 13948 xcb_align_to = ALIGNOF(uint8_t); 13949 /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_sequence */ 13950 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.getmap_sequence; 13951 xcb_block_len += sizeof(uint16_t); 13952 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 13953 xcb_parts_idx++; 13954 xcb_align_to = ALIGNOF(uint16_t); 13955 /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_length */ 13956 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.getmap_length; 13957 xcb_block_len += sizeof(uint32_t); 13958 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 13959 xcb_parts_idx++; 13960 xcb_align_to = ALIGNOF(uint32_t); 13961 /* xcb_xkb_get_kbd_by_name_replies_t.types.pad0 */ 13962 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 13963 xcb_block_len += sizeof(uint8_t)*2; 13964 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t)*2; 13965 xcb_parts_idx++; 13966 xcb_align_to = ALIGNOF(uint8_t); 13967 /* xcb_xkb_get_kbd_by_name_replies_t.types.typeMinKeyCode */ 13968 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.typeMinKeyCode; 13969 xcb_block_len += sizeof(xcb_keycode_t); 13970 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 13971 xcb_parts_idx++; 13972 xcb_align_to = ALIGNOF(xcb_keycode_t); 13973 /* xcb_xkb_get_kbd_by_name_replies_t.types.typeMaxKeyCode */ 13974 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.typeMaxKeyCode; 13975 xcb_block_len += sizeof(xcb_keycode_t); 13976 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 13977 xcb_parts_idx++; 13978 xcb_align_to = ALIGNOF(xcb_keycode_t); 13979 /* xcb_xkb_get_kbd_by_name_replies_t.types.present */ 13980 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.present; 13981 xcb_block_len += sizeof(uint16_t); 13982 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 13983 xcb_parts_idx++; 13984 xcb_align_to = ALIGNOF(uint16_t); 13985 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstType */ 13986 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstType; 13987 xcb_block_len += sizeof(uint8_t); 13988 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 13989 xcb_parts_idx++; 13990 xcb_align_to = ALIGNOF(uint8_t); 13991 /* xcb_xkb_get_kbd_by_name_replies_t.types.nTypes */ 13992 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nTypes; 13993 xcb_block_len += sizeof(uint8_t); 13994 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 13995 xcb_parts_idx++; 13996 xcb_align_to = ALIGNOF(uint8_t); 13997 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalTypes */ 13998 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalTypes; 13999 xcb_block_len += sizeof(uint8_t); 14000 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14001 xcb_parts_idx++; 14002 xcb_align_to = ALIGNOF(uint8_t); 14003 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeySym */ 14004 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstKeySym; 14005 xcb_block_len += sizeof(xcb_keycode_t); 14006 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14007 xcb_parts_idx++; 14008 xcb_align_to = ALIGNOF(xcb_keycode_t); 14009 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalSyms */ 14010 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalSyms; 14011 xcb_block_len += sizeof(uint16_t); 14012 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14013 xcb_parts_idx++; 14014 xcb_align_to = ALIGNOF(uint16_t); 14015 /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeySyms */ 14016 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nKeySyms; 14017 xcb_block_len += sizeof(uint8_t); 14018 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14019 xcb_parts_idx++; 14020 xcb_align_to = ALIGNOF(uint8_t); 14021 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyAction */ 14022 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstKeyAction; 14023 xcb_block_len += sizeof(xcb_keycode_t); 14024 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14025 xcb_parts_idx++; 14026 xcb_align_to = ALIGNOF(xcb_keycode_t); 14027 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalActions */ 14028 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalActions; 14029 xcb_block_len += sizeof(uint16_t); 14030 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14031 xcb_parts_idx++; 14032 xcb_align_to = ALIGNOF(uint16_t); 14033 /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyActions */ 14034 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nKeyActions; 14035 xcb_block_len += sizeof(uint8_t); 14036 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14037 xcb_parts_idx++; 14038 xcb_align_to = ALIGNOF(uint8_t); 14039 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyBehavior */ 14040 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstKeyBehavior; 14041 xcb_block_len += sizeof(xcb_keycode_t); 14042 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14043 xcb_parts_idx++; 14044 xcb_align_to = ALIGNOF(xcb_keycode_t); 14045 /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyBehaviors */ 14046 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nKeyBehaviors; 14047 xcb_block_len += sizeof(uint8_t); 14048 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14049 xcb_parts_idx++; 14050 xcb_align_to = ALIGNOF(uint8_t); 14051 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalKeyBehaviors */ 14052 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalKeyBehaviors; 14053 xcb_block_len += sizeof(uint8_t); 14054 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14055 xcb_parts_idx++; 14056 xcb_align_to = ALIGNOF(uint8_t); 14057 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyExplicit */ 14058 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstKeyExplicit; 14059 xcb_block_len += sizeof(xcb_keycode_t); 14060 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14061 xcb_parts_idx++; 14062 xcb_align_to = ALIGNOF(xcb_keycode_t); 14063 /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyExplicit */ 14064 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nKeyExplicit; 14065 xcb_block_len += sizeof(uint8_t); 14066 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14067 xcb_parts_idx++; 14068 xcb_align_to = ALIGNOF(uint8_t); 14069 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalKeyExplicit */ 14070 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalKeyExplicit; 14071 xcb_block_len += sizeof(uint8_t); 14072 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14073 xcb_parts_idx++; 14074 xcb_align_to = ALIGNOF(uint8_t); 14075 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstModMapKey */ 14076 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstModMapKey; 14077 xcb_block_len += sizeof(xcb_keycode_t); 14078 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14079 xcb_parts_idx++; 14080 xcb_align_to = ALIGNOF(xcb_keycode_t); 14081 /* xcb_xkb_get_kbd_by_name_replies_t.types.nModMapKeys */ 14082 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nModMapKeys; 14083 xcb_block_len += sizeof(uint8_t); 14084 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14085 xcb_parts_idx++; 14086 xcb_align_to = ALIGNOF(uint8_t); 14087 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalModMapKeys */ 14088 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalModMapKeys; 14089 xcb_block_len += sizeof(uint8_t); 14090 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14091 xcb_parts_idx++; 14092 xcb_align_to = ALIGNOF(uint8_t); 14093 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstVModMapKey */ 14094 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstVModMapKey; 14095 xcb_block_len += sizeof(xcb_keycode_t); 14096 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14097 xcb_parts_idx++; 14098 xcb_align_to = ALIGNOF(xcb_keycode_t); 14099 /* xcb_xkb_get_kbd_by_name_replies_t.types.nVModMapKeys */ 14100 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nVModMapKeys; 14101 xcb_block_len += sizeof(uint8_t); 14102 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14103 xcb_parts_idx++; 14104 xcb_align_to = ALIGNOF(uint8_t); 14105 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalVModMapKeys */ 14106 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalVModMapKeys; 14107 xcb_block_len += sizeof(uint8_t); 14108 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14109 xcb_parts_idx++; 14110 xcb_align_to = ALIGNOF(uint8_t); 14111 /* xcb_xkb_get_kbd_by_name_replies_t.types.pad1 */ 14112 xcb_parts[xcb_parts_idx].iov_base = (char *) &xcb_pad; 14113 xcb_block_len += sizeof(uint8_t); 14114 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14115 xcb_parts_idx++; 14116 xcb_align_to = ALIGNOF(uint8_t); 14117 /* xcb_xkb_get_kbd_by_name_replies_t.types.virtualMods */ 14118 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.virtualMods; 14119 xcb_block_len += sizeof(uint16_t); 14120 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14121 xcb_parts_idx++; 14122 xcb_align_to = ALIGNOF(uint16_t); 14123 /* insert padding */ 14124 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14125 xcb_buffer_len += xcb_block_len + xcb_pad; 14126 if (0 != xcb_pad) { 14127 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14128 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 14129 xcb_parts_idx++; 14130 xcb_pad = 0; 14131 } 14132 xcb_block_len = 0; 14133 /* map */ 14134 xcb_parts[xcb_parts_idx].iov_base = (char *)0; 14135 xcb_block_len += xcb_xkb_get_kbd_by_name_replies_types_map_serialize(&xcb_parts[xcb_parts_idx].iov_base, _aux->types.nTypes, _aux->types.nKeySyms, _aux->types.nKeyActions, _aux->types.totalActions, _aux->types.totalKeyBehaviors, _aux->types.virtualMods, _aux->types.totalKeyExplicit, _aux->types.totalModMapKeys, _aux->types.totalVModMapKeys, _aux->types.present, &_aux->types.map); 14136 xcb_parts[xcb_parts_idx].iov_len = xcb_xkb_get_kbd_by_name_replies_types_map_serialize(&xcb_parts[xcb_parts_idx].iov_base, _aux->types.nTypes, _aux->types.nKeySyms, _aux->types.nKeyActions, _aux->types.totalActions, _aux->types.totalKeyBehaviors, _aux->types.virtualMods, _aux->types.totalKeyExplicit, _aux->types.totalModMapKeys, _aux->types.totalVModMapKeys, _aux->types.present, &_aux->types.map); 14137 xcb_parts_idx++; 14138 xcb_align_to = ALIGNOF(xcb_xkb_get_kbd_by_name_replies_types_map_t); 14139 } 14140 if(reported & XCB_XKB_GBN_DETAIL_COMPAT_MAP) { 14141 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_type */ 14142 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.compatmap_type; 14143 xcb_block_len += sizeof(uint8_t); 14144 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14145 xcb_parts_idx++; 14146 xcb_align_to = ALIGNOF(uint8_t); 14147 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatDeviceID */ 14148 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.compatDeviceID; 14149 xcb_block_len += sizeof(uint8_t); 14150 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14151 xcb_parts_idx++; 14152 xcb_align_to = ALIGNOF(uint8_t); 14153 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_sequence */ 14154 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.compatmap_sequence; 14155 xcb_block_len += sizeof(uint16_t); 14156 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14157 xcb_parts_idx++; 14158 xcb_align_to = ALIGNOF(uint16_t); 14159 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_length */ 14160 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.compatmap_length; 14161 xcb_block_len += sizeof(uint32_t); 14162 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 14163 xcb_parts_idx++; 14164 xcb_align_to = ALIGNOF(uint32_t); 14165 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.groupsRtrn */ 14166 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.groupsRtrn; 14167 xcb_block_len += sizeof(uint8_t); 14168 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14169 xcb_parts_idx++; 14170 xcb_align_to = ALIGNOF(uint8_t); 14171 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.pad0 */ 14172 xcb_parts[xcb_parts_idx].iov_base = (char *) &xcb_pad; 14173 xcb_block_len += sizeof(uint8_t); 14174 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14175 xcb_parts_idx++; 14176 xcb_align_to = ALIGNOF(uint8_t); 14177 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.firstSIRtrn */ 14178 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.firstSIRtrn; 14179 xcb_block_len += sizeof(uint16_t); 14180 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14181 xcb_parts_idx++; 14182 xcb_align_to = ALIGNOF(uint16_t); 14183 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.nSIRtrn */ 14184 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.nSIRtrn; 14185 xcb_block_len += sizeof(uint16_t); 14186 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14187 xcb_parts_idx++; 14188 xcb_align_to = ALIGNOF(uint16_t); 14189 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.nTotalSI */ 14190 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.nTotalSI; 14191 xcb_block_len += sizeof(uint16_t); 14192 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14193 xcb_parts_idx++; 14194 xcb_align_to = ALIGNOF(uint16_t); 14195 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.pad1 */ 14196 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14197 xcb_block_len += sizeof(uint8_t)*16; 14198 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t)*16; 14199 xcb_parts_idx++; 14200 xcb_align_to = ALIGNOF(uint8_t); 14201 /* insert padding */ 14202 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14203 xcb_buffer_len += xcb_block_len + xcb_pad; 14204 if (0 != xcb_pad) { 14205 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14206 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 14207 xcb_parts_idx++; 14208 xcb_pad = 0; 14209 } 14210 xcb_block_len = 0; 14211 /* si_rtrn */ 14212 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->compat_map.si_rtrn; 14213 xcb_block_len += _aux->compat_map.nSIRtrn * sizeof(xcb_xkb_sym_interpret_t); 14214 xcb_parts[xcb_parts_idx].iov_len = _aux->compat_map.nSIRtrn * sizeof(xcb_xkb_sym_interpret_t); 14215 xcb_parts_idx++; 14216 xcb_align_to = ALIGNOF(xcb_xkb_sym_interpret_t); 14217 /* insert padding */ 14218 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14219 xcb_buffer_len += xcb_block_len + xcb_pad; 14220 if (0 != xcb_pad) { 14221 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14222 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 14223 xcb_parts_idx++; 14224 xcb_pad = 0; 14225 } 14226 xcb_block_len = 0; 14227 /* group_rtrn */ 14228 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->compat_map.group_rtrn; 14229 xcb_block_len += xcb_popcount(_aux->compat_map.groupsRtrn) * sizeof(xcb_xkb_mod_def_t); 14230 xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(_aux->compat_map.groupsRtrn) * sizeof(xcb_xkb_mod_def_t); 14231 xcb_parts_idx++; 14232 xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); 14233 } 14234 if(reported & XCB_XKB_GBN_DETAIL_INDICATOR_MAPS) { 14235 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_type */ 14236 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.indicatormap_type; 14237 xcb_block_len += sizeof(uint8_t); 14238 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14239 xcb_parts_idx++; 14240 xcb_align_to = ALIGNOF(uint8_t); 14241 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatorDeviceID */ 14242 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.indicatorDeviceID; 14243 xcb_block_len += sizeof(uint8_t); 14244 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14245 xcb_parts_idx++; 14246 xcb_align_to = ALIGNOF(uint8_t); 14247 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_sequence */ 14248 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.indicatormap_sequence; 14249 xcb_block_len += sizeof(uint16_t); 14250 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14251 xcb_parts_idx++; 14252 xcb_align_to = ALIGNOF(uint16_t); 14253 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_length */ 14254 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.indicatormap_length; 14255 xcb_block_len += sizeof(uint32_t); 14256 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 14257 xcb_parts_idx++; 14258 xcb_align_to = ALIGNOF(uint32_t); 14259 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.which */ 14260 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.which; 14261 xcb_block_len += sizeof(uint32_t); 14262 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 14263 xcb_parts_idx++; 14264 xcb_align_to = ALIGNOF(uint32_t); 14265 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.realIndicators */ 14266 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.realIndicators; 14267 xcb_block_len += sizeof(uint32_t); 14268 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 14269 xcb_parts_idx++; 14270 xcb_align_to = ALIGNOF(uint32_t); 14271 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.nIndicators */ 14272 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.nIndicators; 14273 xcb_block_len += sizeof(uint8_t); 14274 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14275 xcb_parts_idx++; 14276 xcb_align_to = ALIGNOF(uint8_t); 14277 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.pad0 */ 14278 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14279 xcb_block_len += sizeof(uint8_t)*15; 14280 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t)*15; 14281 xcb_parts_idx++; 14282 xcb_align_to = ALIGNOF(uint8_t); 14283 /* insert padding */ 14284 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14285 xcb_buffer_len += xcb_block_len + xcb_pad; 14286 if (0 != xcb_pad) { 14287 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14288 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 14289 xcb_parts_idx++; 14290 xcb_pad = 0; 14291 } 14292 xcb_block_len = 0; 14293 /* maps */ 14294 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicator_maps.maps; 14295 xcb_block_len += _aux->indicator_maps.nIndicators * sizeof(xcb_xkb_indicator_map_t); 14296 xcb_parts[xcb_parts_idx].iov_len = _aux->indicator_maps.nIndicators * sizeof(xcb_xkb_indicator_map_t); 14297 xcb_parts_idx++; 14298 xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); 14299 } 14300 if((reported & XCB_XKB_GBN_DETAIL_KEY_NAMES) || 14301 (reported & XCB_XKB_GBN_DETAIL_OTHER_NAMES)) { 14302 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_type */ 14303 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyname_type; 14304 xcb_block_len += sizeof(uint8_t); 14305 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14306 xcb_parts_idx++; 14307 xcb_align_to = ALIGNOF(uint8_t); 14308 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyDeviceID */ 14309 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyDeviceID; 14310 xcb_block_len += sizeof(uint8_t); 14311 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14312 xcb_parts_idx++; 14313 xcb_align_to = ALIGNOF(uint8_t); 14314 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_sequence */ 14315 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyname_sequence; 14316 xcb_block_len += sizeof(uint16_t); 14317 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14318 xcb_parts_idx++; 14319 xcb_align_to = ALIGNOF(uint16_t); 14320 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_length */ 14321 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyname_length; 14322 xcb_block_len += sizeof(uint32_t); 14323 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 14324 xcb_parts_idx++; 14325 xcb_align_to = ALIGNOF(uint32_t); 14326 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.which */ 14327 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.which; 14328 xcb_block_len += sizeof(uint32_t); 14329 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 14330 xcb_parts_idx++; 14331 xcb_align_to = ALIGNOF(uint32_t); 14332 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyMinKeyCode */ 14333 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyMinKeyCode; 14334 xcb_block_len += sizeof(xcb_keycode_t); 14335 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14336 xcb_parts_idx++; 14337 xcb_align_to = ALIGNOF(xcb_keycode_t); 14338 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyMaxKeyCode */ 14339 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyMaxKeyCode; 14340 xcb_block_len += sizeof(xcb_keycode_t); 14341 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14342 xcb_parts_idx++; 14343 xcb_align_to = ALIGNOF(xcb_keycode_t); 14344 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nTypes */ 14345 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nTypes; 14346 xcb_block_len += sizeof(uint8_t); 14347 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14348 xcb_parts_idx++; 14349 xcb_align_to = ALIGNOF(uint8_t); 14350 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.groupNames */ 14351 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.groupNames; 14352 xcb_block_len += sizeof(uint8_t); 14353 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14354 xcb_parts_idx++; 14355 xcb_align_to = ALIGNOF(uint8_t); 14356 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.virtualMods */ 14357 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.virtualMods; 14358 xcb_block_len += sizeof(uint16_t); 14359 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14360 xcb_parts_idx++; 14361 xcb_align_to = ALIGNOF(uint16_t); 14362 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.firstKey */ 14363 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.firstKey; 14364 xcb_block_len += sizeof(xcb_keycode_t); 14365 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); 14366 xcb_parts_idx++; 14367 xcb_align_to = ALIGNOF(xcb_keycode_t); 14368 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKeys */ 14369 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nKeys; 14370 xcb_block_len += sizeof(uint8_t); 14371 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14372 xcb_parts_idx++; 14373 xcb_align_to = ALIGNOF(uint8_t); 14374 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.indicators */ 14375 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.indicators; 14376 xcb_block_len += sizeof(uint32_t); 14377 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 14378 xcb_parts_idx++; 14379 xcb_align_to = ALIGNOF(uint32_t); 14380 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nRadioGroups */ 14381 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nRadioGroups; 14382 xcb_block_len += sizeof(uint8_t); 14383 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14384 xcb_parts_idx++; 14385 xcb_align_to = ALIGNOF(uint8_t); 14386 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKeyAliases */ 14387 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nKeyAliases; 14388 xcb_block_len += sizeof(uint8_t); 14389 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14390 xcb_parts_idx++; 14391 xcb_align_to = ALIGNOF(uint8_t); 14392 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKTLevels */ 14393 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nKTLevels; 14394 xcb_block_len += sizeof(uint16_t); 14395 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14396 xcb_parts_idx++; 14397 xcb_align_to = ALIGNOF(uint16_t); 14398 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.pad0 */ 14399 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14400 xcb_block_len += sizeof(uint8_t)*4; 14401 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t)*4; 14402 xcb_parts_idx++; 14403 xcb_align_to = ALIGNOF(uint8_t); 14404 /* insert padding */ 14405 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14406 xcb_buffer_len += xcb_block_len + xcb_pad; 14407 if (0 != xcb_pad) { 14408 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14409 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 14410 xcb_parts_idx++; 14411 xcb_pad = 0; 14412 } 14413 xcb_block_len = 0; 14414 /* valueList */ 14415 xcb_parts[xcb_parts_idx].iov_base = (char *)0; 14416 xcb_block_len += xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize(&xcb_parts[xcb_parts_idx].iov_base, _aux->key_names.nTypes, _aux->key_names.nKTLevels, _aux->key_names.indicators, _aux->key_names.virtualMods, _aux->key_names.groupNames, _aux->key_names.nKeys, _aux->key_names.nKeyAliases, _aux->key_names.nRadioGroups, _aux->key_names.which, &_aux->key_names.valueList); 14417 xcb_parts[xcb_parts_idx].iov_len = xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize(&xcb_parts[xcb_parts_idx].iov_base, _aux->key_names.nTypes, _aux->key_names.nKTLevels, _aux->key_names.indicators, _aux->key_names.virtualMods, _aux->key_names.groupNames, _aux->key_names.nKeys, _aux->key_names.nKeyAliases, _aux->key_names.nRadioGroups, _aux->key_names.which, &_aux->key_names.valueList); 14418 xcb_parts_idx++; 14419 xcb_align_to = ALIGNOF(xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t); 14420 } 14421 if(reported & XCB_XKB_GBN_DETAIL_GEOMETRY) { 14422 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_type */ 14423 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometry_type; 14424 xcb_block_len += sizeof(uint8_t); 14425 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14426 xcb_parts_idx++; 14427 xcb_align_to = ALIGNOF(uint8_t); 14428 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometryDeviceID */ 14429 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometryDeviceID; 14430 xcb_block_len += sizeof(uint8_t); 14431 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14432 xcb_parts_idx++; 14433 xcb_align_to = ALIGNOF(uint8_t); 14434 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_sequence */ 14435 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometry_sequence; 14436 xcb_block_len += sizeof(uint16_t); 14437 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14438 xcb_parts_idx++; 14439 xcb_align_to = ALIGNOF(uint16_t); 14440 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_length */ 14441 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometry_length; 14442 xcb_block_len += sizeof(uint32_t); 14443 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 14444 xcb_parts_idx++; 14445 xcb_align_to = ALIGNOF(uint32_t); 14446 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.name */ 14447 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.name; 14448 xcb_block_len += sizeof(xcb_atom_t); 14449 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); 14450 xcb_parts_idx++; 14451 xcb_align_to = ALIGNOF(xcb_atom_t); 14452 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometryFound */ 14453 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometryFound; 14454 xcb_block_len += sizeof(uint8_t); 14455 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14456 xcb_parts_idx++; 14457 xcb_align_to = ALIGNOF(uint8_t); 14458 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.pad0 */ 14459 xcb_parts[xcb_parts_idx].iov_base = (char *) &xcb_pad; 14460 xcb_block_len += sizeof(uint8_t); 14461 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14462 xcb_parts_idx++; 14463 xcb_align_to = ALIGNOF(uint8_t); 14464 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.widthMM */ 14465 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.widthMM; 14466 xcb_block_len += sizeof(uint16_t); 14467 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14468 xcb_parts_idx++; 14469 xcb_align_to = ALIGNOF(uint16_t); 14470 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.heightMM */ 14471 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.heightMM; 14472 xcb_block_len += sizeof(uint16_t); 14473 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14474 xcb_parts_idx++; 14475 xcb_align_to = ALIGNOF(uint16_t); 14476 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nProperties */ 14477 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nProperties; 14478 xcb_block_len += sizeof(uint16_t); 14479 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14480 xcb_parts_idx++; 14481 xcb_align_to = ALIGNOF(uint16_t); 14482 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nColors */ 14483 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nColors; 14484 xcb_block_len += sizeof(uint16_t); 14485 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14486 xcb_parts_idx++; 14487 xcb_align_to = ALIGNOF(uint16_t); 14488 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nShapes */ 14489 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nShapes; 14490 xcb_block_len += sizeof(uint16_t); 14491 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14492 xcb_parts_idx++; 14493 xcb_align_to = ALIGNOF(uint16_t); 14494 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nSections */ 14495 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nSections; 14496 xcb_block_len += sizeof(uint16_t); 14497 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14498 xcb_parts_idx++; 14499 xcb_align_to = ALIGNOF(uint16_t); 14500 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nDoodads */ 14501 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nDoodads; 14502 xcb_block_len += sizeof(uint16_t); 14503 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14504 xcb_parts_idx++; 14505 xcb_align_to = ALIGNOF(uint16_t); 14506 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nKeyAliases */ 14507 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nKeyAliases; 14508 xcb_block_len += sizeof(uint16_t); 14509 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); 14510 xcb_parts_idx++; 14511 xcb_align_to = ALIGNOF(uint16_t); 14512 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.baseColorNdx */ 14513 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.baseColorNdx; 14514 xcb_block_len += sizeof(uint8_t); 14515 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14516 xcb_parts_idx++; 14517 xcb_align_to = ALIGNOF(uint8_t); 14518 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.labelColorNdx */ 14519 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.labelColorNdx; 14520 xcb_block_len += sizeof(uint8_t); 14521 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); 14522 xcb_parts_idx++; 14523 xcb_align_to = ALIGNOF(uint8_t); 14524 /* insert padding */ 14525 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14526 xcb_buffer_len += xcb_block_len + xcb_pad; 14527 if (0 != xcb_pad) { 14528 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14529 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 14530 xcb_parts_idx++; 14531 xcb_pad = 0; 14532 } 14533 xcb_block_len = 0; 14534 /* labelFont */ 14535 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->geometry.labelFont; 14536 xcb_block_len += xcb_xkb_counted_string_16_sizeof(_aux->geometry.labelFont); 14537 xcb_parts[xcb_parts_idx].iov_len = xcb_xkb_counted_string_16_sizeof(_aux->geometry.labelFont); 14538 xcb_parts_idx++; 14539 xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); 14540 } 14541 /* insert padding */ 14542 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14543 xcb_buffer_len += xcb_block_len + xcb_pad; 14544 if (0 != xcb_pad) { 14545 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 14546 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 14547 xcb_parts_idx++; 14548 xcb_pad = 0; 14549 } 14550 xcb_block_len = 0; 14551 14552 if (NULL == xcb_out) { 14553 /* allocate memory */ 14554 xcb_out = malloc(xcb_buffer_len); 14555 *_buffer = xcb_out; 14556 } 14557 14558 xcb_tmp = xcb_out; 14559 for(i=0; i<xcb_parts_idx; i++) { 14560 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 14561 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 14562 if (0 != xcb_parts[i].iov_len) 14563 xcb_tmp += xcb_parts[i].iov_len; 14564 } 14565 14566 return xcb_buffer_len; 14567 } 14568 14569 int 14570 xcb_xkb_get_kbd_by_name_replies_unpack (const void *_buffer /**< */, 14571 uint16_t reported /**< */, 14572 xcb_xkb_get_kbd_by_name_replies_t *_aux /**< */) 14573 { 14574 char *xcb_tmp = (char *)_buffer; 14575 unsigned int xcb_buffer_len = 0; 14576 unsigned int xcb_block_len = 0; 14577 unsigned int xcb_pad = 0; 14578 unsigned int xcb_align_to = 0; 14579 14580 14581 if((reported & XCB_XKB_GBN_DETAIL_TYPES) || 14582 (reported & XCB_XKB_GBN_DETAIL_CLIENT_SYMBOLS) || 14583 (reported & XCB_XKB_GBN_DETAIL_SERVER_SYMBOLS)) { 14584 /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_type */ 14585 _aux->types.getmap_type = *(uint8_t *)xcb_tmp; 14586 xcb_block_len += sizeof(uint8_t); 14587 xcb_tmp += sizeof(uint8_t); 14588 xcb_align_to = ALIGNOF(uint8_t); 14589 /* xcb_xkb_get_kbd_by_name_replies_t.types.typeDeviceID */ 14590 _aux->types.typeDeviceID = *(uint8_t *)xcb_tmp; 14591 xcb_block_len += sizeof(uint8_t); 14592 xcb_tmp += sizeof(uint8_t); 14593 xcb_align_to = ALIGNOF(uint8_t); 14594 /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_sequence */ 14595 _aux->types.getmap_sequence = *(uint16_t *)xcb_tmp; 14596 xcb_block_len += sizeof(uint16_t); 14597 xcb_tmp += sizeof(uint16_t); 14598 xcb_align_to = ALIGNOF(uint16_t); 14599 /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_length */ 14600 _aux->types.getmap_length = *(uint32_t *)xcb_tmp; 14601 xcb_block_len += sizeof(uint32_t); 14602 xcb_tmp += sizeof(uint32_t); 14603 xcb_align_to = ALIGNOF(uint32_t); 14604 /* xcb_xkb_get_kbd_by_name_replies_t.types.pad0 */ 14605 _aux->types.pad0[0] = *(uint8_t *)xcb_tmp; 14606 _aux->types.pad0[1] = *(uint8_t *)xcb_tmp; 14607 xcb_block_len += sizeof(uint8_t) * 2; 14608 xcb_tmp += sizeof(uint8_t) * 2; 14609 xcb_align_to = ALIGNOF(uint8_t); 14610 /* xcb_xkb_get_kbd_by_name_replies_t.types.typeMinKeyCode */ 14611 _aux->types.typeMinKeyCode = *(xcb_keycode_t *)xcb_tmp; 14612 xcb_block_len += sizeof(xcb_keycode_t); 14613 xcb_tmp += sizeof(xcb_keycode_t); 14614 xcb_align_to = ALIGNOF(xcb_keycode_t); 14615 /* xcb_xkb_get_kbd_by_name_replies_t.types.typeMaxKeyCode */ 14616 _aux->types.typeMaxKeyCode = *(xcb_keycode_t *)xcb_tmp; 14617 xcb_block_len += sizeof(xcb_keycode_t); 14618 xcb_tmp += sizeof(xcb_keycode_t); 14619 xcb_align_to = ALIGNOF(xcb_keycode_t); 14620 /* xcb_xkb_get_kbd_by_name_replies_t.types.present */ 14621 _aux->types.present = *(uint16_t *)xcb_tmp; 14622 xcb_block_len += sizeof(uint16_t); 14623 xcb_tmp += sizeof(uint16_t); 14624 xcb_align_to = ALIGNOF(uint16_t); 14625 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstType */ 14626 _aux->types.firstType = *(uint8_t *)xcb_tmp; 14627 xcb_block_len += sizeof(uint8_t); 14628 xcb_tmp += sizeof(uint8_t); 14629 xcb_align_to = ALIGNOF(uint8_t); 14630 /* xcb_xkb_get_kbd_by_name_replies_t.types.nTypes */ 14631 _aux->types.nTypes = *(uint8_t *)xcb_tmp; 14632 xcb_block_len += sizeof(uint8_t); 14633 xcb_tmp += sizeof(uint8_t); 14634 xcb_align_to = ALIGNOF(uint8_t); 14635 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalTypes */ 14636 _aux->types.totalTypes = *(uint8_t *)xcb_tmp; 14637 xcb_block_len += sizeof(uint8_t); 14638 xcb_tmp += sizeof(uint8_t); 14639 xcb_align_to = ALIGNOF(uint8_t); 14640 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeySym */ 14641 _aux->types.firstKeySym = *(xcb_keycode_t *)xcb_tmp; 14642 xcb_block_len += sizeof(xcb_keycode_t); 14643 xcb_tmp += sizeof(xcb_keycode_t); 14644 xcb_align_to = ALIGNOF(xcb_keycode_t); 14645 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalSyms */ 14646 _aux->types.totalSyms = *(uint16_t *)xcb_tmp; 14647 xcb_block_len += sizeof(uint16_t); 14648 xcb_tmp += sizeof(uint16_t); 14649 xcb_align_to = ALIGNOF(uint16_t); 14650 /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeySyms */ 14651 _aux->types.nKeySyms = *(uint8_t *)xcb_tmp; 14652 xcb_block_len += sizeof(uint8_t); 14653 xcb_tmp += sizeof(uint8_t); 14654 xcb_align_to = ALIGNOF(uint8_t); 14655 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyAction */ 14656 _aux->types.firstKeyAction = *(xcb_keycode_t *)xcb_tmp; 14657 xcb_block_len += sizeof(xcb_keycode_t); 14658 xcb_tmp += sizeof(xcb_keycode_t); 14659 xcb_align_to = ALIGNOF(xcb_keycode_t); 14660 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalActions */ 14661 _aux->types.totalActions = *(uint16_t *)xcb_tmp; 14662 xcb_block_len += sizeof(uint16_t); 14663 xcb_tmp += sizeof(uint16_t); 14664 xcb_align_to = ALIGNOF(uint16_t); 14665 /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyActions */ 14666 _aux->types.nKeyActions = *(uint8_t *)xcb_tmp; 14667 xcb_block_len += sizeof(uint8_t); 14668 xcb_tmp += sizeof(uint8_t); 14669 xcb_align_to = ALIGNOF(uint8_t); 14670 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyBehavior */ 14671 _aux->types.firstKeyBehavior = *(xcb_keycode_t *)xcb_tmp; 14672 xcb_block_len += sizeof(xcb_keycode_t); 14673 xcb_tmp += sizeof(xcb_keycode_t); 14674 xcb_align_to = ALIGNOF(xcb_keycode_t); 14675 /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyBehaviors */ 14676 _aux->types.nKeyBehaviors = *(uint8_t *)xcb_tmp; 14677 xcb_block_len += sizeof(uint8_t); 14678 xcb_tmp += sizeof(uint8_t); 14679 xcb_align_to = ALIGNOF(uint8_t); 14680 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalKeyBehaviors */ 14681 _aux->types.totalKeyBehaviors = *(uint8_t *)xcb_tmp; 14682 xcb_block_len += sizeof(uint8_t); 14683 xcb_tmp += sizeof(uint8_t); 14684 xcb_align_to = ALIGNOF(uint8_t); 14685 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyExplicit */ 14686 _aux->types.firstKeyExplicit = *(xcb_keycode_t *)xcb_tmp; 14687 xcb_block_len += sizeof(xcb_keycode_t); 14688 xcb_tmp += sizeof(xcb_keycode_t); 14689 xcb_align_to = ALIGNOF(xcb_keycode_t); 14690 /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyExplicit */ 14691 _aux->types.nKeyExplicit = *(uint8_t *)xcb_tmp; 14692 xcb_block_len += sizeof(uint8_t); 14693 xcb_tmp += sizeof(uint8_t); 14694 xcb_align_to = ALIGNOF(uint8_t); 14695 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalKeyExplicit */ 14696 _aux->types.totalKeyExplicit = *(uint8_t *)xcb_tmp; 14697 xcb_block_len += sizeof(uint8_t); 14698 xcb_tmp += sizeof(uint8_t); 14699 xcb_align_to = ALIGNOF(uint8_t); 14700 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstModMapKey */ 14701 _aux->types.firstModMapKey = *(xcb_keycode_t *)xcb_tmp; 14702 xcb_block_len += sizeof(xcb_keycode_t); 14703 xcb_tmp += sizeof(xcb_keycode_t); 14704 xcb_align_to = ALIGNOF(xcb_keycode_t); 14705 /* xcb_xkb_get_kbd_by_name_replies_t.types.nModMapKeys */ 14706 _aux->types.nModMapKeys = *(uint8_t *)xcb_tmp; 14707 xcb_block_len += sizeof(uint8_t); 14708 xcb_tmp += sizeof(uint8_t); 14709 xcb_align_to = ALIGNOF(uint8_t); 14710 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalModMapKeys */ 14711 _aux->types.totalModMapKeys = *(uint8_t *)xcb_tmp; 14712 xcb_block_len += sizeof(uint8_t); 14713 xcb_tmp += sizeof(uint8_t); 14714 xcb_align_to = ALIGNOF(uint8_t); 14715 /* xcb_xkb_get_kbd_by_name_replies_t.types.firstVModMapKey */ 14716 _aux->types.firstVModMapKey = *(xcb_keycode_t *)xcb_tmp; 14717 xcb_block_len += sizeof(xcb_keycode_t); 14718 xcb_tmp += sizeof(xcb_keycode_t); 14719 xcb_align_to = ALIGNOF(xcb_keycode_t); 14720 /* xcb_xkb_get_kbd_by_name_replies_t.types.nVModMapKeys */ 14721 _aux->types.nVModMapKeys = *(uint8_t *)xcb_tmp; 14722 xcb_block_len += sizeof(uint8_t); 14723 xcb_tmp += sizeof(uint8_t); 14724 xcb_align_to = ALIGNOF(uint8_t); 14725 /* xcb_xkb_get_kbd_by_name_replies_t.types.totalVModMapKeys */ 14726 _aux->types.totalVModMapKeys = *(uint8_t *)xcb_tmp; 14727 xcb_block_len += sizeof(uint8_t); 14728 xcb_tmp += sizeof(uint8_t); 14729 xcb_align_to = ALIGNOF(uint8_t); 14730 /* xcb_xkb_get_kbd_by_name_replies_t.types.pad1 */ 14731 _aux->types.pad1 = *(uint8_t *)xcb_tmp; 14732 xcb_block_len += sizeof(uint8_t); 14733 xcb_tmp += sizeof(uint8_t); 14734 xcb_align_to = ALIGNOF(uint8_t); 14735 /* xcb_xkb_get_kbd_by_name_replies_t.types.virtualMods */ 14736 _aux->types.virtualMods = *(uint16_t *)xcb_tmp; 14737 xcb_block_len += sizeof(uint16_t); 14738 xcb_tmp += sizeof(uint16_t); 14739 xcb_align_to = ALIGNOF(uint16_t); 14740 /* insert padding */ 14741 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14742 xcb_buffer_len += xcb_block_len + xcb_pad; 14743 if (0 != xcb_pad) { 14744 xcb_tmp += xcb_pad; 14745 xcb_pad = 0; 14746 } 14747 xcb_block_len = 0; 14748 /* map */ 14749 xcb_block_len += xcb_xkb_get_kbd_by_name_replies_types_map_unpack(xcb_tmp, _aux->types.nTypes, _aux->types.nKeySyms, _aux->types.nKeyActions, _aux->types.totalActions, _aux->types.totalKeyBehaviors, _aux->types.virtualMods, _aux->types.totalKeyExplicit, _aux->types.totalModMapKeys, _aux->types.totalVModMapKeys, _aux->types.present, &_aux->types.map); 14750 xcb_tmp += xcb_block_len; 14751 xcb_align_to = ALIGNOF(xcb_xkb_get_kbd_by_name_replies_types_map_t); 14752 } 14753 if(reported & XCB_XKB_GBN_DETAIL_COMPAT_MAP) { 14754 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_type */ 14755 _aux->compat_map.compatmap_type = *(uint8_t *)xcb_tmp; 14756 xcb_block_len += sizeof(uint8_t); 14757 xcb_tmp += sizeof(uint8_t); 14758 xcb_align_to = ALIGNOF(uint8_t); 14759 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatDeviceID */ 14760 _aux->compat_map.compatDeviceID = *(uint8_t *)xcb_tmp; 14761 xcb_block_len += sizeof(uint8_t); 14762 xcb_tmp += sizeof(uint8_t); 14763 xcb_align_to = ALIGNOF(uint8_t); 14764 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_sequence */ 14765 _aux->compat_map.compatmap_sequence = *(uint16_t *)xcb_tmp; 14766 xcb_block_len += sizeof(uint16_t); 14767 xcb_tmp += sizeof(uint16_t); 14768 xcb_align_to = ALIGNOF(uint16_t); 14769 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_length */ 14770 _aux->compat_map.compatmap_length = *(uint32_t *)xcb_tmp; 14771 xcb_block_len += sizeof(uint32_t); 14772 xcb_tmp += sizeof(uint32_t); 14773 xcb_align_to = ALIGNOF(uint32_t); 14774 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.groupsRtrn */ 14775 _aux->compat_map.groupsRtrn = *(uint8_t *)xcb_tmp; 14776 xcb_block_len += sizeof(uint8_t); 14777 xcb_tmp += sizeof(uint8_t); 14778 xcb_align_to = ALIGNOF(uint8_t); 14779 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.pad0 */ 14780 _aux->compat_map.pad0 = *(uint8_t *)xcb_tmp; 14781 xcb_block_len += sizeof(uint8_t); 14782 xcb_tmp += sizeof(uint8_t); 14783 xcb_align_to = ALIGNOF(uint8_t); 14784 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.firstSIRtrn */ 14785 _aux->compat_map.firstSIRtrn = *(uint16_t *)xcb_tmp; 14786 xcb_block_len += sizeof(uint16_t); 14787 xcb_tmp += sizeof(uint16_t); 14788 xcb_align_to = ALIGNOF(uint16_t); 14789 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.nSIRtrn */ 14790 _aux->compat_map.nSIRtrn = *(uint16_t *)xcb_tmp; 14791 xcb_block_len += sizeof(uint16_t); 14792 xcb_tmp += sizeof(uint16_t); 14793 xcb_align_to = ALIGNOF(uint16_t); 14794 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.nTotalSI */ 14795 _aux->compat_map.nTotalSI = *(uint16_t *)xcb_tmp; 14796 xcb_block_len += sizeof(uint16_t); 14797 xcb_tmp += sizeof(uint16_t); 14798 xcb_align_to = ALIGNOF(uint16_t); 14799 /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.pad1 */ 14800 _aux->compat_map.pad1[0] = *(uint8_t *)xcb_tmp; 14801 _aux->compat_map.pad1[1] = *(uint8_t *)xcb_tmp; 14802 _aux->compat_map.pad1[2] = *(uint8_t *)xcb_tmp; 14803 _aux->compat_map.pad1[3] = *(uint8_t *)xcb_tmp; 14804 _aux->compat_map.pad1[4] = *(uint8_t *)xcb_tmp; 14805 _aux->compat_map.pad1[5] = *(uint8_t *)xcb_tmp; 14806 _aux->compat_map.pad1[6] = *(uint8_t *)xcb_tmp; 14807 _aux->compat_map.pad1[7] = *(uint8_t *)xcb_tmp; 14808 _aux->compat_map.pad1[8] = *(uint8_t *)xcb_tmp; 14809 _aux->compat_map.pad1[9] = *(uint8_t *)xcb_tmp; 14810 _aux->compat_map.pad1[10] = *(uint8_t *)xcb_tmp; 14811 _aux->compat_map.pad1[11] = *(uint8_t *)xcb_tmp; 14812 _aux->compat_map.pad1[12] = *(uint8_t *)xcb_tmp; 14813 _aux->compat_map.pad1[13] = *(uint8_t *)xcb_tmp; 14814 _aux->compat_map.pad1[14] = *(uint8_t *)xcb_tmp; 14815 _aux->compat_map.pad1[15] = *(uint8_t *)xcb_tmp; 14816 xcb_block_len += sizeof(uint8_t) * 16; 14817 xcb_tmp += sizeof(uint8_t) * 16; 14818 xcb_align_to = ALIGNOF(uint8_t); 14819 /* insert padding */ 14820 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14821 xcb_buffer_len += xcb_block_len + xcb_pad; 14822 if (0 != xcb_pad) { 14823 xcb_tmp += xcb_pad; 14824 xcb_pad = 0; 14825 } 14826 xcb_block_len = 0; 14827 /* si_rtrn */ 14828 _aux->compat_map.si_rtrn = (xcb_xkb_sym_interpret_t *)xcb_tmp; 14829 xcb_block_len += _aux->compat_map.nSIRtrn * sizeof(xcb_xkb_sym_interpret_t); 14830 xcb_tmp += xcb_block_len; 14831 xcb_align_to = ALIGNOF(xcb_xkb_sym_interpret_t); 14832 /* insert padding */ 14833 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14834 xcb_buffer_len += xcb_block_len + xcb_pad; 14835 if (0 != xcb_pad) { 14836 xcb_tmp += xcb_pad; 14837 xcb_pad = 0; 14838 } 14839 xcb_block_len = 0; 14840 /* group_rtrn */ 14841 _aux->compat_map.group_rtrn = (xcb_xkb_mod_def_t *)xcb_tmp; 14842 xcb_block_len += xcb_popcount(_aux->compat_map.groupsRtrn) * sizeof(xcb_xkb_mod_def_t); 14843 xcb_tmp += xcb_block_len; 14844 xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); 14845 } 14846 if(reported & XCB_XKB_GBN_DETAIL_INDICATOR_MAPS) { 14847 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_type */ 14848 _aux->indicator_maps.indicatormap_type = *(uint8_t *)xcb_tmp; 14849 xcb_block_len += sizeof(uint8_t); 14850 xcb_tmp += sizeof(uint8_t); 14851 xcb_align_to = ALIGNOF(uint8_t); 14852 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatorDeviceID */ 14853 _aux->indicator_maps.indicatorDeviceID = *(uint8_t *)xcb_tmp; 14854 xcb_block_len += sizeof(uint8_t); 14855 xcb_tmp += sizeof(uint8_t); 14856 xcb_align_to = ALIGNOF(uint8_t); 14857 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_sequence */ 14858 _aux->indicator_maps.indicatormap_sequence = *(uint16_t *)xcb_tmp; 14859 xcb_block_len += sizeof(uint16_t); 14860 xcb_tmp += sizeof(uint16_t); 14861 xcb_align_to = ALIGNOF(uint16_t); 14862 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_length */ 14863 _aux->indicator_maps.indicatormap_length = *(uint32_t *)xcb_tmp; 14864 xcb_block_len += sizeof(uint32_t); 14865 xcb_tmp += sizeof(uint32_t); 14866 xcb_align_to = ALIGNOF(uint32_t); 14867 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.which */ 14868 _aux->indicator_maps.which = *(uint32_t *)xcb_tmp; 14869 xcb_block_len += sizeof(uint32_t); 14870 xcb_tmp += sizeof(uint32_t); 14871 xcb_align_to = ALIGNOF(uint32_t); 14872 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.realIndicators */ 14873 _aux->indicator_maps.realIndicators = *(uint32_t *)xcb_tmp; 14874 xcb_block_len += sizeof(uint32_t); 14875 xcb_tmp += sizeof(uint32_t); 14876 xcb_align_to = ALIGNOF(uint32_t); 14877 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.nIndicators */ 14878 _aux->indicator_maps.nIndicators = *(uint8_t *)xcb_tmp; 14879 xcb_block_len += sizeof(uint8_t); 14880 xcb_tmp += sizeof(uint8_t); 14881 xcb_align_to = ALIGNOF(uint8_t); 14882 /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.pad0 */ 14883 _aux->indicator_maps.pad0[0] = *(uint8_t *)xcb_tmp; 14884 _aux->indicator_maps.pad0[1] = *(uint8_t *)xcb_tmp; 14885 _aux->indicator_maps.pad0[2] = *(uint8_t *)xcb_tmp; 14886 _aux->indicator_maps.pad0[3] = *(uint8_t *)xcb_tmp; 14887 _aux->indicator_maps.pad0[4] = *(uint8_t *)xcb_tmp; 14888 _aux->indicator_maps.pad0[5] = *(uint8_t *)xcb_tmp; 14889 _aux->indicator_maps.pad0[6] = *(uint8_t *)xcb_tmp; 14890 _aux->indicator_maps.pad0[7] = *(uint8_t *)xcb_tmp; 14891 _aux->indicator_maps.pad0[8] = *(uint8_t *)xcb_tmp; 14892 _aux->indicator_maps.pad0[9] = *(uint8_t *)xcb_tmp; 14893 _aux->indicator_maps.pad0[10] = *(uint8_t *)xcb_tmp; 14894 _aux->indicator_maps.pad0[11] = *(uint8_t *)xcb_tmp; 14895 _aux->indicator_maps.pad0[12] = *(uint8_t *)xcb_tmp; 14896 _aux->indicator_maps.pad0[13] = *(uint8_t *)xcb_tmp; 14897 _aux->indicator_maps.pad0[14] = *(uint8_t *)xcb_tmp; 14898 xcb_block_len += sizeof(uint8_t) * 15; 14899 xcb_tmp += sizeof(uint8_t) * 15; 14900 xcb_align_to = ALIGNOF(uint8_t); 14901 /* insert padding */ 14902 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 14903 xcb_buffer_len += xcb_block_len + xcb_pad; 14904 if (0 != xcb_pad) { 14905 xcb_tmp += xcb_pad; 14906 xcb_pad = 0; 14907 } 14908 xcb_block_len = 0; 14909 /* maps */ 14910 _aux->indicator_maps.maps = (xcb_xkb_indicator_map_t *)xcb_tmp; 14911 xcb_block_len += _aux->indicator_maps.nIndicators * sizeof(xcb_xkb_indicator_map_t); 14912 xcb_tmp += xcb_block_len; 14913 xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); 14914 } 14915 if((reported & XCB_XKB_GBN_DETAIL_KEY_NAMES) || 14916 (reported & XCB_XKB_GBN_DETAIL_OTHER_NAMES)) { 14917 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_type */ 14918 _aux->key_names.keyname_type = *(uint8_t *)xcb_tmp; 14919 xcb_block_len += sizeof(uint8_t); 14920 xcb_tmp += sizeof(uint8_t); 14921 xcb_align_to = ALIGNOF(uint8_t); 14922 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyDeviceID */ 14923 _aux->key_names.keyDeviceID = *(uint8_t *)xcb_tmp; 14924 xcb_block_len += sizeof(uint8_t); 14925 xcb_tmp += sizeof(uint8_t); 14926 xcb_align_to = ALIGNOF(uint8_t); 14927 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_sequence */ 14928 _aux->key_names.keyname_sequence = *(uint16_t *)xcb_tmp; 14929 xcb_block_len += sizeof(uint16_t); 14930 xcb_tmp += sizeof(uint16_t); 14931 xcb_align_to = ALIGNOF(uint16_t); 14932 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_length */ 14933 _aux->key_names.keyname_length = *(uint32_t *)xcb_tmp; 14934 xcb_block_len += sizeof(uint32_t); 14935 xcb_tmp += sizeof(uint32_t); 14936 xcb_align_to = ALIGNOF(uint32_t); 14937 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.which */ 14938 _aux->key_names.which = *(uint32_t *)xcb_tmp; 14939 xcb_block_len += sizeof(uint32_t); 14940 xcb_tmp += sizeof(uint32_t); 14941 xcb_align_to = ALIGNOF(uint32_t); 14942 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyMinKeyCode */ 14943 _aux->key_names.keyMinKeyCode = *(xcb_keycode_t *)xcb_tmp; 14944 xcb_block_len += sizeof(xcb_keycode_t); 14945 xcb_tmp += sizeof(xcb_keycode_t); 14946 xcb_align_to = ALIGNOF(xcb_keycode_t); 14947 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyMaxKeyCode */ 14948 _aux->key_names.keyMaxKeyCode = *(xcb_keycode_t *)xcb_tmp; 14949 xcb_block_len += sizeof(xcb_keycode_t); 14950 xcb_tmp += sizeof(xcb_keycode_t); 14951 xcb_align_to = ALIGNOF(xcb_keycode_t); 14952 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nTypes */ 14953 _aux->key_names.nTypes = *(uint8_t *)xcb_tmp; 14954 xcb_block_len += sizeof(uint8_t); 14955 xcb_tmp += sizeof(uint8_t); 14956 xcb_align_to = ALIGNOF(uint8_t); 14957 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.groupNames */ 14958 _aux->key_names.groupNames = *(uint8_t *)xcb_tmp; 14959 xcb_block_len += sizeof(uint8_t); 14960 xcb_tmp += sizeof(uint8_t); 14961 xcb_align_to = ALIGNOF(uint8_t); 14962 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.virtualMods */ 14963 _aux->key_names.virtualMods = *(uint16_t *)xcb_tmp; 14964 xcb_block_len += sizeof(uint16_t); 14965 xcb_tmp += sizeof(uint16_t); 14966 xcb_align_to = ALIGNOF(uint16_t); 14967 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.firstKey */ 14968 _aux->key_names.firstKey = *(xcb_keycode_t *)xcb_tmp; 14969 xcb_block_len += sizeof(xcb_keycode_t); 14970 xcb_tmp += sizeof(xcb_keycode_t); 14971 xcb_align_to = ALIGNOF(xcb_keycode_t); 14972 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKeys */ 14973 _aux->key_names.nKeys = *(uint8_t *)xcb_tmp; 14974 xcb_block_len += sizeof(uint8_t); 14975 xcb_tmp += sizeof(uint8_t); 14976 xcb_align_to = ALIGNOF(uint8_t); 14977 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.indicators */ 14978 _aux->key_names.indicators = *(uint32_t *)xcb_tmp; 14979 xcb_block_len += sizeof(uint32_t); 14980 xcb_tmp += sizeof(uint32_t); 14981 xcb_align_to = ALIGNOF(uint32_t); 14982 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nRadioGroups */ 14983 _aux->key_names.nRadioGroups = *(uint8_t *)xcb_tmp; 14984 xcb_block_len += sizeof(uint8_t); 14985 xcb_tmp += sizeof(uint8_t); 14986 xcb_align_to = ALIGNOF(uint8_t); 14987 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKeyAliases */ 14988 _aux->key_names.nKeyAliases = *(uint8_t *)xcb_tmp; 14989 xcb_block_len += sizeof(uint8_t); 14990 xcb_tmp += sizeof(uint8_t); 14991 xcb_align_to = ALIGNOF(uint8_t); 14992 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKTLevels */ 14993 _aux->key_names.nKTLevels = *(uint16_t *)xcb_tmp; 14994 xcb_block_len += sizeof(uint16_t); 14995 xcb_tmp += sizeof(uint16_t); 14996 xcb_align_to = ALIGNOF(uint16_t); 14997 /* xcb_xkb_get_kbd_by_name_replies_t.key_names.pad0 */ 14998 _aux->key_names.pad0[0] = *(uint8_t *)xcb_tmp; 14999 _aux->key_names.pad0[1] = *(uint8_t *)xcb_tmp; 15000 _aux->key_names.pad0[2] = *(uint8_t *)xcb_tmp; 15001 _aux->key_names.pad0[3] = *(uint8_t *)xcb_tmp; 15002 xcb_block_len += sizeof(uint8_t) * 4; 15003 xcb_tmp += sizeof(uint8_t) * 4; 15004 xcb_align_to = ALIGNOF(uint8_t); 15005 /* insert padding */ 15006 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15007 xcb_buffer_len += xcb_block_len + xcb_pad; 15008 if (0 != xcb_pad) { 15009 xcb_tmp += xcb_pad; 15010 xcb_pad = 0; 15011 } 15012 xcb_block_len = 0; 15013 /* valueList */ 15014 xcb_block_len += xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack(xcb_tmp, _aux->key_names.nTypes, _aux->key_names.nKTLevels, _aux->key_names.indicators, _aux->key_names.virtualMods, _aux->key_names.groupNames, _aux->key_names.nKeys, _aux->key_names.nKeyAliases, _aux->key_names.nRadioGroups, _aux->key_names.which, &_aux->key_names.valueList); 15015 xcb_tmp += xcb_block_len; 15016 xcb_align_to = ALIGNOF(xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t); 15017 } 15018 if(reported & XCB_XKB_GBN_DETAIL_GEOMETRY) { 15019 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_type */ 15020 _aux->geometry.geometry_type = *(uint8_t *)xcb_tmp; 15021 xcb_block_len += sizeof(uint8_t); 15022 xcb_tmp += sizeof(uint8_t); 15023 xcb_align_to = ALIGNOF(uint8_t); 15024 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometryDeviceID */ 15025 _aux->geometry.geometryDeviceID = *(uint8_t *)xcb_tmp; 15026 xcb_block_len += sizeof(uint8_t); 15027 xcb_tmp += sizeof(uint8_t); 15028 xcb_align_to = ALIGNOF(uint8_t); 15029 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_sequence */ 15030 _aux->geometry.geometry_sequence = *(uint16_t *)xcb_tmp; 15031 xcb_block_len += sizeof(uint16_t); 15032 xcb_tmp += sizeof(uint16_t); 15033 xcb_align_to = ALIGNOF(uint16_t); 15034 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_length */ 15035 _aux->geometry.geometry_length = *(uint32_t *)xcb_tmp; 15036 xcb_block_len += sizeof(uint32_t); 15037 xcb_tmp += sizeof(uint32_t); 15038 xcb_align_to = ALIGNOF(uint32_t); 15039 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.name */ 15040 _aux->geometry.name = *(xcb_atom_t *)xcb_tmp; 15041 xcb_block_len += sizeof(xcb_atom_t); 15042 xcb_tmp += sizeof(xcb_atom_t); 15043 xcb_align_to = ALIGNOF(xcb_atom_t); 15044 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometryFound */ 15045 _aux->geometry.geometryFound = *(uint8_t *)xcb_tmp; 15046 xcb_block_len += sizeof(uint8_t); 15047 xcb_tmp += sizeof(uint8_t); 15048 xcb_align_to = ALIGNOF(uint8_t); 15049 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.pad0 */ 15050 _aux->geometry.pad0 = *(uint8_t *)xcb_tmp; 15051 xcb_block_len += sizeof(uint8_t); 15052 xcb_tmp += sizeof(uint8_t); 15053 xcb_align_to = ALIGNOF(uint8_t); 15054 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.widthMM */ 15055 _aux->geometry.widthMM = *(uint16_t *)xcb_tmp; 15056 xcb_block_len += sizeof(uint16_t); 15057 xcb_tmp += sizeof(uint16_t); 15058 xcb_align_to = ALIGNOF(uint16_t); 15059 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.heightMM */ 15060 _aux->geometry.heightMM = *(uint16_t *)xcb_tmp; 15061 xcb_block_len += sizeof(uint16_t); 15062 xcb_tmp += sizeof(uint16_t); 15063 xcb_align_to = ALIGNOF(uint16_t); 15064 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nProperties */ 15065 _aux->geometry.nProperties = *(uint16_t *)xcb_tmp; 15066 xcb_block_len += sizeof(uint16_t); 15067 xcb_tmp += sizeof(uint16_t); 15068 xcb_align_to = ALIGNOF(uint16_t); 15069 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nColors */ 15070 _aux->geometry.nColors = *(uint16_t *)xcb_tmp; 15071 xcb_block_len += sizeof(uint16_t); 15072 xcb_tmp += sizeof(uint16_t); 15073 xcb_align_to = ALIGNOF(uint16_t); 15074 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nShapes */ 15075 _aux->geometry.nShapes = *(uint16_t *)xcb_tmp; 15076 xcb_block_len += sizeof(uint16_t); 15077 xcb_tmp += sizeof(uint16_t); 15078 xcb_align_to = ALIGNOF(uint16_t); 15079 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nSections */ 15080 _aux->geometry.nSections = *(uint16_t *)xcb_tmp; 15081 xcb_block_len += sizeof(uint16_t); 15082 xcb_tmp += sizeof(uint16_t); 15083 xcb_align_to = ALIGNOF(uint16_t); 15084 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nDoodads */ 15085 _aux->geometry.nDoodads = *(uint16_t *)xcb_tmp; 15086 xcb_block_len += sizeof(uint16_t); 15087 xcb_tmp += sizeof(uint16_t); 15088 xcb_align_to = ALIGNOF(uint16_t); 15089 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nKeyAliases */ 15090 _aux->geometry.nKeyAliases = *(uint16_t *)xcb_tmp; 15091 xcb_block_len += sizeof(uint16_t); 15092 xcb_tmp += sizeof(uint16_t); 15093 xcb_align_to = ALIGNOF(uint16_t); 15094 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.baseColorNdx */ 15095 _aux->geometry.baseColorNdx = *(uint8_t *)xcb_tmp; 15096 xcb_block_len += sizeof(uint8_t); 15097 xcb_tmp += sizeof(uint8_t); 15098 xcb_align_to = ALIGNOF(uint8_t); 15099 /* xcb_xkb_get_kbd_by_name_replies_t.geometry.labelColorNdx */ 15100 _aux->geometry.labelColorNdx = *(uint8_t *)xcb_tmp; 15101 xcb_block_len += sizeof(uint8_t); 15102 xcb_tmp += sizeof(uint8_t); 15103 xcb_align_to = ALIGNOF(uint8_t); 15104 /* insert padding */ 15105 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15106 xcb_buffer_len += xcb_block_len + xcb_pad; 15107 if (0 != xcb_pad) { 15108 xcb_tmp += xcb_pad; 15109 xcb_pad = 0; 15110 } 15111 xcb_block_len = 0; 15112 /* labelFont */ 15113 _aux->geometry.labelFont = (xcb_xkb_counted_string_16_t *)xcb_tmp; 15114 xcb_block_len += xcb_xkb_counted_string_16_sizeof(xcb_tmp); 15115 xcb_tmp += xcb_block_len; 15116 xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); 15117 } 15118 /* insert padding */ 15119 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15120 xcb_buffer_len += xcb_block_len + xcb_pad; 15121 if (0 != xcb_pad) { 15122 xcb_tmp += xcb_pad; 15123 xcb_pad = 0; 15124 } 15125 xcb_block_len = 0; 15126 15127 return xcb_buffer_len; 15128 } 15129 15130 int 15131 xcb_xkb_get_kbd_by_name_replies_sizeof (const void *_buffer /**< */, 15132 uint16_t reported /**< */) 15133 { 15134 xcb_xkb_get_kbd_by_name_replies_t _aux; 15135 return xcb_xkb_get_kbd_by_name_replies_unpack(_buffer, reported, &_aux); 15136 } 15137 15138 15139 /***************************************************************************** 15140 ** 15141 ** xcb_xkb_get_kbd_by_name_cookie_t xcb_xkb_get_kbd_by_name 15142 ** 15143 ** @param xcb_connection_t *c 15144 ** @param xcb_xkb_device_spec_t deviceSpec 15145 ** @param uint16_t need 15146 ** @param uint16_t want 15147 ** @param uint8_t load 15148 ** @returns xcb_xkb_get_kbd_by_name_cookie_t 15149 ** 15150 *****************************************************************************/ 15151 15152 xcb_xkb_get_kbd_by_name_cookie_t 15153 xcb_xkb_get_kbd_by_name (xcb_connection_t *c /**< */, 15154 xcb_xkb_device_spec_t deviceSpec /**< */, 15155 uint16_t need /**< */, 15156 uint16_t want /**< */, 15157 uint8_t load /**< */) 15158 { 15159 static const xcb_protocol_request_t xcb_req = { 15160 /* count */ 2, 15161 /* ext */ &xcb_xkb_id, 15162 /* opcode */ XCB_XKB_GET_KBD_BY_NAME, 15163 /* isvoid */ 0 15164 }; 15165 15166 struct iovec xcb_parts[4]; 15167 xcb_xkb_get_kbd_by_name_cookie_t xcb_ret; 15168 xcb_xkb_get_kbd_by_name_request_t xcb_out; 15169 15170 xcb_out.deviceSpec = deviceSpec; 15171 xcb_out.need = need; 15172 xcb_out.want = want; 15173 xcb_out.load = load; 15174 xcb_out.pad0 = 0; 15175 15176 xcb_parts[2].iov_base = (char *) &xcb_out; 15177 xcb_parts[2].iov_len = sizeof(xcb_out); 15178 xcb_parts[3].iov_base = 0; 15179 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 15180 15181 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 15182 return xcb_ret; 15183 } 15184 15185 15186 /***************************************************************************** 15187 ** 15188 ** xcb_xkb_get_kbd_by_name_cookie_t xcb_xkb_get_kbd_by_name_unchecked 15189 ** 15190 ** @param xcb_connection_t *c 15191 ** @param xcb_xkb_device_spec_t deviceSpec 15192 ** @param uint16_t need 15193 ** @param uint16_t want 15194 ** @param uint8_t load 15195 ** @returns xcb_xkb_get_kbd_by_name_cookie_t 15196 ** 15197 *****************************************************************************/ 15198 15199 xcb_xkb_get_kbd_by_name_cookie_t 15200 xcb_xkb_get_kbd_by_name_unchecked (xcb_connection_t *c /**< */, 15201 xcb_xkb_device_spec_t deviceSpec /**< */, 15202 uint16_t need /**< */, 15203 uint16_t want /**< */, 15204 uint8_t load /**< */) 15205 { 15206 static const xcb_protocol_request_t xcb_req = { 15207 /* count */ 2, 15208 /* ext */ &xcb_xkb_id, 15209 /* opcode */ XCB_XKB_GET_KBD_BY_NAME, 15210 /* isvoid */ 0 15211 }; 15212 15213 struct iovec xcb_parts[4]; 15214 xcb_xkb_get_kbd_by_name_cookie_t xcb_ret; 15215 xcb_xkb_get_kbd_by_name_request_t xcb_out; 15216 15217 xcb_out.deviceSpec = deviceSpec; 15218 xcb_out.need = need; 15219 xcb_out.want = want; 15220 xcb_out.load = load; 15221 xcb_out.pad0 = 0; 15222 15223 xcb_parts[2].iov_base = (char *) &xcb_out; 15224 xcb_parts[2].iov_len = sizeof(xcb_out); 15225 xcb_parts[3].iov_base = 0; 15226 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 15227 15228 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 15229 return xcb_ret; 15230 } 15231 15232 15233 /***************************************************************************** 15234 ** 15235 ** xcb_xkb_get_kbd_by_name_replies_t * xcb_xkb_get_kbd_by_name_replies 15236 ** 15237 ** @param const xcb_xkb_get_kbd_by_name_reply_t *R 15238 ** @returns xcb_xkb_get_kbd_by_name_replies_t * 15239 ** 15240 *****************************************************************************/ 15241 15242 void * 15243 xcb_xkb_get_kbd_by_name_replies (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */) 15244 { 15245 return (void *) (R + 1); 15246 } 15247 15248 15249 /***************************************************************************** 15250 ** 15251 ** xcb_xkb_get_kbd_by_name_reply_t * xcb_xkb_get_kbd_by_name_reply 15252 ** 15253 ** @param xcb_connection_t *c 15254 ** @param xcb_xkb_get_kbd_by_name_cookie_t cookie 15255 ** @param xcb_generic_error_t **e 15256 ** @returns xcb_xkb_get_kbd_by_name_reply_t * 15257 ** 15258 *****************************************************************************/ 15259 15260 xcb_xkb_get_kbd_by_name_reply_t * 15261 xcb_xkb_get_kbd_by_name_reply (xcb_connection_t *c /**< */, 15262 xcb_xkb_get_kbd_by_name_cookie_t cookie /**< */, 15263 xcb_generic_error_t **e /**< */) 15264 { 15265 return (xcb_xkb_get_kbd_by_name_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 15266 } 15267 15268 int 15269 xcb_xkb_get_device_info_sizeof (const void *_buffer /**< */) 15270 { 15271 char *xcb_tmp = (char *)_buffer; 15272 const xcb_xkb_get_device_info_reply_t *_aux = (xcb_xkb_get_device_info_reply_t *)_buffer; 15273 unsigned int xcb_buffer_len = 0; 15274 unsigned int xcb_block_len = 0; 15275 unsigned int xcb_pad = 0; 15276 unsigned int xcb_align_to = 0; 15277 15278 unsigned int i; 15279 unsigned int xcb_tmp_len; 15280 15281 xcb_block_len += sizeof(xcb_xkb_get_device_info_reply_t); 15282 xcb_tmp += xcb_block_len; 15283 xcb_buffer_len += xcb_block_len; 15284 xcb_block_len = 0; 15285 /* name */ 15286 xcb_block_len += _aux->nameLen * sizeof(xcb_xkb_string8_t); 15287 xcb_tmp += xcb_block_len; 15288 xcb_align_to = ALIGNOF(xcb_xkb_string8_t); 15289 /* insert padding */ 15290 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15291 xcb_buffer_len += xcb_block_len + xcb_pad; 15292 if (0 != xcb_pad) { 15293 xcb_tmp += xcb_pad; 15294 xcb_pad = 0; 15295 } 15296 xcb_block_len = 0; 15297 /* btnActions */ 15298 xcb_block_len += _aux->nBtnsRtrn * sizeof(xcb_xkb_action_t); 15299 xcb_tmp += xcb_block_len; 15300 xcb_align_to = ALIGNOF(xcb_xkb_action_t); 15301 /* insert padding */ 15302 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15303 xcb_buffer_len += xcb_block_len + xcb_pad; 15304 if (0 != xcb_pad) { 15305 xcb_tmp += xcb_pad; 15306 xcb_pad = 0; 15307 } 15308 xcb_block_len = 0; 15309 /* leds */ 15310 for(i=0; i<_aux->nDeviceLedFBs; i++) { 15311 xcb_tmp_len = xcb_xkb_device_led_info_sizeof(xcb_tmp); 15312 xcb_block_len += xcb_tmp_len; 15313 xcb_tmp += xcb_tmp_len; 15314 } 15315 xcb_align_to = ALIGNOF(xcb_xkb_device_led_info_t); 15316 /* insert padding */ 15317 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15318 xcb_buffer_len += xcb_block_len + xcb_pad; 15319 if (0 != xcb_pad) { 15320 xcb_tmp += xcb_pad; 15321 xcb_pad = 0; 15322 } 15323 xcb_block_len = 0; 15324 15325 return xcb_buffer_len; 15326 } 15327 15328 15329 /***************************************************************************** 15330 ** 15331 ** xcb_xkb_get_device_info_cookie_t xcb_xkb_get_device_info 15332 ** 15333 ** @param xcb_connection_t *c 15334 ** @param xcb_xkb_device_spec_t deviceSpec 15335 ** @param uint16_t wanted 15336 ** @param uint8_t allButtons 15337 ** @param uint8_t firstButton 15338 ** @param uint8_t nButtons 15339 ** @param xcb_xkb_led_class_spec_t ledClass 15340 ** @param xcb_xkb_id_spec_t ledID 15341 ** @returns xcb_xkb_get_device_info_cookie_t 15342 ** 15343 *****************************************************************************/ 15344 15345 xcb_xkb_get_device_info_cookie_t 15346 xcb_xkb_get_device_info (xcb_connection_t *c /**< */, 15347 xcb_xkb_device_spec_t deviceSpec /**< */, 15348 uint16_t wanted /**< */, 15349 uint8_t allButtons /**< */, 15350 uint8_t firstButton /**< */, 15351 uint8_t nButtons /**< */, 15352 xcb_xkb_led_class_spec_t ledClass /**< */, 15353 xcb_xkb_id_spec_t ledID /**< */) 15354 { 15355 static const xcb_protocol_request_t xcb_req = { 15356 /* count */ 2, 15357 /* ext */ &xcb_xkb_id, 15358 /* opcode */ XCB_XKB_GET_DEVICE_INFO, 15359 /* isvoid */ 0 15360 }; 15361 15362 struct iovec xcb_parts[4]; 15363 xcb_xkb_get_device_info_cookie_t xcb_ret; 15364 xcb_xkb_get_device_info_request_t xcb_out; 15365 15366 xcb_out.deviceSpec = deviceSpec; 15367 xcb_out.wanted = wanted; 15368 xcb_out.allButtons = allButtons; 15369 xcb_out.firstButton = firstButton; 15370 xcb_out.nButtons = nButtons; 15371 xcb_out.pad0 = 0; 15372 xcb_out.ledClass = ledClass; 15373 xcb_out.ledID = ledID; 15374 15375 xcb_parts[2].iov_base = (char *) &xcb_out; 15376 xcb_parts[2].iov_len = sizeof(xcb_out); 15377 xcb_parts[3].iov_base = 0; 15378 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 15379 15380 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 15381 return xcb_ret; 15382 } 15383 15384 15385 /***************************************************************************** 15386 ** 15387 ** xcb_xkb_get_device_info_cookie_t xcb_xkb_get_device_info_unchecked 15388 ** 15389 ** @param xcb_connection_t *c 15390 ** @param xcb_xkb_device_spec_t deviceSpec 15391 ** @param uint16_t wanted 15392 ** @param uint8_t allButtons 15393 ** @param uint8_t firstButton 15394 ** @param uint8_t nButtons 15395 ** @param xcb_xkb_led_class_spec_t ledClass 15396 ** @param xcb_xkb_id_spec_t ledID 15397 ** @returns xcb_xkb_get_device_info_cookie_t 15398 ** 15399 *****************************************************************************/ 15400 15401 xcb_xkb_get_device_info_cookie_t 15402 xcb_xkb_get_device_info_unchecked (xcb_connection_t *c /**< */, 15403 xcb_xkb_device_spec_t deviceSpec /**< */, 15404 uint16_t wanted /**< */, 15405 uint8_t allButtons /**< */, 15406 uint8_t firstButton /**< */, 15407 uint8_t nButtons /**< */, 15408 xcb_xkb_led_class_spec_t ledClass /**< */, 15409 xcb_xkb_id_spec_t ledID /**< */) 15410 { 15411 static const xcb_protocol_request_t xcb_req = { 15412 /* count */ 2, 15413 /* ext */ &xcb_xkb_id, 15414 /* opcode */ XCB_XKB_GET_DEVICE_INFO, 15415 /* isvoid */ 0 15416 }; 15417 15418 struct iovec xcb_parts[4]; 15419 xcb_xkb_get_device_info_cookie_t xcb_ret; 15420 xcb_xkb_get_device_info_request_t xcb_out; 15421 15422 xcb_out.deviceSpec = deviceSpec; 15423 xcb_out.wanted = wanted; 15424 xcb_out.allButtons = allButtons; 15425 xcb_out.firstButton = firstButton; 15426 xcb_out.nButtons = nButtons; 15427 xcb_out.pad0 = 0; 15428 xcb_out.ledClass = ledClass; 15429 xcb_out.ledID = ledID; 15430 15431 xcb_parts[2].iov_base = (char *) &xcb_out; 15432 xcb_parts[2].iov_len = sizeof(xcb_out); 15433 xcb_parts[3].iov_base = 0; 15434 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 15435 15436 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 15437 return xcb_ret; 15438 } 15439 15440 15441 /***************************************************************************** 15442 ** 15443 ** xcb_xkb_string8_t * xcb_xkb_get_device_info_name 15444 ** 15445 ** @param const xcb_xkb_get_device_info_reply_t *R 15446 ** @returns xcb_xkb_string8_t * 15447 ** 15448 *****************************************************************************/ 15449 15450 xcb_xkb_string8_t * 15451 xcb_xkb_get_device_info_name (const xcb_xkb_get_device_info_reply_t *R /**< */) 15452 { 15453 return (xcb_xkb_string8_t *) (R + 1); 15454 } 15455 15456 15457 /***************************************************************************** 15458 ** 15459 ** int xcb_xkb_get_device_info_name_length 15460 ** 15461 ** @param const xcb_xkb_get_device_info_reply_t *R 15462 ** @returns int 15463 ** 15464 *****************************************************************************/ 15465 15466 int 15467 xcb_xkb_get_device_info_name_length (const xcb_xkb_get_device_info_reply_t *R /**< */) 15468 { 15469 return R->nameLen; 15470 } 15471 15472 15473 /***************************************************************************** 15474 ** 15475 ** xcb_generic_iterator_t xcb_xkb_get_device_info_name_end 15476 ** 15477 ** @param const xcb_xkb_get_device_info_reply_t *R 15478 ** @returns xcb_generic_iterator_t 15479 ** 15480 *****************************************************************************/ 15481 15482 xcb_generic_iterator_t 15483 xcb_xkb_get_device_info_name_end (const xcb_xkb_get_device_info_reply_t *R /**< */) 15484 { 15485 xcb_generic_iterator_t i; 15486 i.data = ((xcb_xkb_string8_t *) (R + 1)) + (R->nameLen); 15487 i.rem = 0; 15488 i.index = (char *) i.data - (char *) R; 15489 return i; 15490 } 15491 15492 15493 /***************************************************************************** 15494 ** 15495 ** xcb_xkb_action_t * xcb_xkb_get_device_info_btn_actions 15496 ** 15497 ** @param const xcb_xkb_get_device_info_reply_t *R 15498 ** @returns xcb_xkb_action_t * 15499 ** 15500 *****************************************************************************/ 15501 15502 xcb_xkb_action_t * 15503 xcb_xkb_get_device_info_btn_actions (const xcb_xkb_get_device_info_reply_t *R /**< */) 15504 { 15505 xcb_generic_iterator_t prev = xcb_xkb_get_device_info_name_end(R); 15506 return (xcb_xkb_action_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_action_t, prev.index) + 0); 15507 } 15508 15509 15510 /***************************************************************************** 15511 ** 15512 ** int xcb_xkb_get_device_info_btn_actions_length 15513 ** 15514 ** @param const xcb_xkb_get_device_info_reply_t *R 15515 ** @returns int 15516 ** 15517 *****************************************************************************/ 15518 15519 int 15520 xcb_xkb_get_device_info_btn_actions_length (const xcb_xkb_get_device_info_reply_t *R /**< */) 15521 { 15522 return R->nBtnsRtrn; 15523 } 15524 15525 15526 /***************************************************************************** 15527 ** 15528 ** xcb_xkb_action_iterator_t xcb_xkb_get_device_info_btn_actions_iterator 15529 ** 15530 ** @param const xcb_xkb_get_device_info_reply_t *R 15531 ** @returns xcb_xkb_action_iterator_t 15532 ** 15533 *****************************************************************************/ 15534 15535 xcb_xkb_action_iterator_t 15536 xcb_xkb_get_device_info_btn_actions_iterator (const xcb_xkb_get_device_info_reply_t *R /**< */) 15537 { 15538 xcb_xkb_action_iterator_t i; 15539 xcb_generic_iterator_t prev = xcb_xkb_get_device_info_name_end(R); 15540 i.data = (xcb_xkb_action_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_action_t, prev.index)); 15541 i.rem = R->nBtnsRtrn; 15542 i.index = (char *) i.data - (char *) R; 15543 return i; 15544 } 15545 15546 15547 /***************************************************************************** 15548 ** 15549 ** int xcb_xkb_get_device_info_leds_length 15550 ** 15551 ** @param const xcb_xkb_get_device_info_reply_t *R 15552 ** @returns int 15553 ** 15554 *****************************************************************************/ 15555 15556 int 15557 xcb_xkb_get_device_info_leds_length (const xcb_xkb_get_device_info_reply_t *R /**< */) 15558 { 15559 return R->nDeviceLedFBs; 15560 } 15561 15562 15563 /***************************************************************************** 15564 ** 15565 ** xcb_xkb_device_led_info_iterator_t xcb_xkb_get_device_info_leds_iterator 15566 ** 15567 ** @param const xcb_xkb_get_device_info_reply_t *R 15568 ** @returns xcb_xkb_device_led_info_iterator_t 15569 ** 15570 *****************************************************************************/ 15571 15572 xcb_xkb_device_led_info_iterator_t 15573 xcb_xkb_get_device_info_leds_iterator (const xcb_xkb_get_device_info_reply_t *R /**< */) 15574 { 15575 xcb_xkb_device_led_info_iterator_t i; 15576 xcb_generic_iterator_t prev = xcb_xkb_action_end(xcb_xkb_get_device_info_btn_actions_iterator(R)); 15577 i.data = (xcb_xkb_device_led_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_device_led_info_t, prev.index)); 15578 i.rem = R->nDeviceLedFBs; 15579 i.index = (char *) i.data - (char *) R; 15580 return i; 15581 } 15582 15583 15584 /***************************************************************************** 15585 ** 15586 ** xcb_xkb_get_device_info_reply_t * xcb_xkb_get_device_info_reply 15587 ** 15588 ** @param xcb_connection_t *c 15589 ** @param xcb_xkb_get_device_info_cookie_t cookie 15590 ** @param xcb_generic_error_t **e 15591 ** @returns xcb_xkb_get_device_info_reply_t * 15592 ** 15593 *****************************************************************************/ 15594 15595 xcb_xkb_get_device_info_reply_t * 15596 xcb_xkb_get_device_info_reply (xcb_connection_t *c /**< */, 15597 xcb_xkb_get_device_info_cookie_t cookie /**< */, 15598 xcb_generic_error_t **e /**< */) 15599 { 15600 return (xcb_xkb_get_device_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 15601 } 15602 15603 int 15604 xcb_xkb_set_device_info_sizeof (const void *_buffer /**< */) 15605 { 15606 char *xcb_tmp = (char *)_buffer; 15607 const xcb_xkb_set_device_info_request_t *_aux = (xcb_xkb_set_device_info_request_t *)_buffer; 15608 unsigned int xcb_buffer_len = 0; 15609 unsigned int xcb_block_len = 0; 15610 unsigned int xcb_pad = 0; 15611 unsigned int xcb_align_to = 0; 15612 15613 unsigned int i; 15614 unsigned int xcb_tmp_len; 15615 15616 xcb_block_len += sizeof(xcb_xkb_set_device_info_request_t); 15617 xcb_tmp += xcb_block_len; 15618 xcb_buffer_len += xcb_block_len; 15619 xcb_block_len = 0; 15620 /* btnActions */ 15621 xcb_block_len += _aux->nBtns * sizeof(xcb_xkb_action_t); 15622 xcb_tmp += xcb_block_len; 15623 xcb_align_to = ALIGNOF(xcb_xkb_action_t); 15624 /* insert padding */ 15625 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15626 xcb_buffer_len += xcb_block_len + xcb_pad; 15627 if (0 != xcb_pad) { 15628 xcb_tmp += xcb_pad; 15629 xcb_pad = 0; 15630 } 15631 xcb_block_len = 0; 15632 /* leds */ 15633 for(i=0; i<_aux->nDeviceLedFBs; i++) { 15634 xcb_tmp_len = xcb_xkb_device_led_info_sizeof(xcb_tmp); 15635 xcb_block_len += xcb_tmp_len; 15636 xcb_tmp += xcb_tmp_len; 15637 } 15638 xcb_align_to = ALIGNOF(xcb_xkb_device_led_info_t); 15639 /* insert padding */ 15640 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15641 xcb_buffer_len += xcb_block_len + xcb_pad; 15642 if (0 != xcb_pad) { 15643 xcb_tmp += xcb_pad; 15644 xcb_pad = 0; 15645 } 15646 xcb_block_len = 0; 15647 15648 return xcb_buffer_len; 15649 } 15650 15651 15652 /***************************************************************************** 15653 ** 15654 ** xcb_void_cookie_t xcb_xkb_set_device_info_checked 15655 ** 15656 ** @param xcb_connection_t *c 15657 ** @param xcb_xkb_device_spec_t deviceSpec 15658 ** @param uint8_t firstBtn 15659 ** @param uint8_t nBtns 15660 ** @param uint16_t change 15661 ** @param uint16_t nDeviceLedFBs 15662 ** @param const xcb_xkb_action_t *btnActions 15663 ** @param const xcb_xkb_device_led_info_t *leds 15664 ** @returns xcb_void_cookie_t 15665 ** 15666 *****************************************************************************/ 15667 15668 xcb_void_cookie_t 15669 xcb_xkb_set_device_info_checked (xcb_connection_t *c /**< */, 15670 xcb_xkb_device_spec_t deviceSpec /**< */, 15671 uint8_t firstBtn /**< */, 15672 uint8_t nBtns /**< */, 15673 uint16_t change /**< */, 15674 uint16_t nDeviceLedFBs /**< */, 15675 const xcb_xkb_action_t *btnActions /**< */, 15676 const xcb_xkb_device_led_info_t *leds /**< */) 15677 { 15678 static const xcb_protocol_request_t xcb_req = { 15679 /* count */ 6, 15680 /* ext */ &xcb_xkb_id, 15681 /* opcode */ XCB_XKB_SET_DEVICE_INFO, 15682 /* isvoid */ 1 15683 }; 15684 15685 struct iovec xcb_parts[8]; 15686 xcb_void_cookie_t xcb_ret; 15687 xcb_xkb_set_device_info_request_t xcb_out; 15688 unsigned int i; 15689 unsigned int xcb_tmp_len; 15690 char *xcb_tmp; 15691 15692 xcb_out.deviceSpec = deviceSpec; 15693 xcb_out.firstBtn = firstBtn; 15694 xcb_out.nBtns = nBtns; 15695 xcb_out.change = change; 15696 xcb_out.nDeviceLedFBs = nDeviceLedFBs; 15697 15698 xcb_parts[2].iov_base = (char *) &xcb_out; 15699 xcb_parts[2].iov_len = sizeof(xcb_out); 15700 xcb_parts[3].iov_base = 0; 15701 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 15702 /* xcb_xkb_action_t btnActions */ 15703 xcb_parts[4].iov_base = (char *) btnActions; 15704 xcb_parts[4].iov_len = nBtns * sizeof(xcb_xkb_action_t); 15705 xcb_parts[5].iov_base = 0; 15706 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 15707 /* xcb_xkb_device_led_info_t leds */ 15708 xcb_parts[6].iov_base = (char *) leds; 15709 xcb_parts[6].iov_len = 0; 15710 xcb_tmp = (char *)leds; 15711 for(i=0; i<nDeviceLedFBs; i++) { 15712 xcb_tmp_len = xcb_xkb_device_led_info_sizeof(xcb_tmp); 15713 xcb_parts[6].iov_len += xcb_tmp_len; 15714 xcb_tmp += xcb_tmp_len; 15715 } 15716 xcb_parts[7].iov_base = 0; 15717 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 15718 15719 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 15720 return xcb_ret; 15721 } 15722 15723 15724 /***************************************************************************** 15725 ** 15726 ** xcb_void_cookie_t xcb_xkb_set_device_info 15727 ** 15728 ** @param xcb_connection_t *c 15729 ** @param xcb_xkb_device_spec_t deviceSpec 15730 ** @param uint8_t firstBtn 15731 ** @param uint8_t nBtns 15732 ** @param uint16_t change 15733 ** @param uint16_t nDeviceLedFBs 15734 ** @param const xcb_xkb_action_t *btnActions 15735 ** @param const xcb_xkb_device_led_info_t *leds 15736 ** @returns xcb_void_cookie_t 15737 ** 15738 *****************************************************************************/ 15739 15740 xcb_void_cookie_t 15741 xcb_xkb_set_device_info (xcb_connection_t *c /**< */, 15742 xcb_xkb_device_spec_t deviceSpec /**< */, 15743 uint8_t firstBtn /**< */, 15744 uint8_t nBtns /**< */, 15745 uint16_t change /**< */, 15746 uint16_t nDeviceLedFBs /**< */, 15747 const xcb_xkb_action_t *btnActions /**< */, 15748 const xcb_xkb_device_led_info_t *leds /**< */) 15749 { 15750 static const xcb_protocol_request_t xcb_req = { 15751 /* count */ 6, 15752 /* ext */ &xcb_xkb_id, 15753 /* opcode */ XCB_XKB_SET_DEVICE_INFO, 15754 /* isvoid */ 1 15755 }; 15756 15757 struct iovec xcb_parts[8]; 15758 xcb_void_cookie_t xcb_ret; 15759 xcb_xkb_set_device_info_request_t xcb_out; 15760 unsigned int i; 15761 unsigned int xcb_tmp_len; 15762 char *xcb_tmp; 15763 15764 xcb_out.deviceSpec = deviceSpec; 15765 xcb_out.firstBtn = firstBtn; 15766 xcb_out.nBtns = nBtns; 15767 xcb_out.change = change; 15768 xcb_out.nDeviceLedFBs = nDeviceLedFBs; 15769 15770 xcb_parts[2].iov_base = (char *) &xcb_out; 15771 xcb_parts[2].iov_len = sizeof(xcb_out); 15772 xcb_parts[3].iov_base = 0; 15773 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 15774 /* xcb_xkb_action_t btnActions */ 15775 xcb_parts[4].iov_base = (char *) btnActions; 15776 xcb_parts[4].iov_len = nBtns * sizeof(xcb_xkb_action_t); 15777 xcb_parts[5].iov_base = 0; 15778 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 15779 /* xcb_xkb_device_led_info_t leds */ 15780 xcb_parts[6].iov_base = (char *) leds; 15781 xcb_parts[6].iov_len = 0; 15782 xcb_tmp = (char *)leds; 15783 for(i=0; i<nDeviceLedFBs; i++) { 15784 xcb_tmp_len = xcb_xkb_device_led_info_sizeof(xcb_tmp); 15785 xcb_parts[6].iov_len += xcb_tmp_len; 15786 xcb_tmp += xcb_tmp_len; 15787 } 15788 xcb_parts[7].iov_base = 0; 15789 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 15790 15791 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 15792 return xcb_ret; 15793 } 15794 15795 int 15796 xcb_xkb_set_debugging_flags_sizeof (const void *_buffer /**< */) 15797 { 15798 char *xcb_tmp = (char *)_buffer; 15799 const xcb_xkb_set_debugging_flags_request_t *_aux = (xcb_xkb_set_debugging_flags_request_t *)_buffer; 15800 unsigned int xcb_buffer_len = 0; 15801 unsigned int xcb_block_len = 0; 15802 unsigned int xcb_pad = 0; 15803 unsigned int xcb_align_to = 0; 15804 15805 15806 xcb_block_len += sizeof(xcb_xkb_set_debugging_flags_request_t); 15807 xcb_tmp += xcb_block_len; 15808 xcb_buffer_len += xcb_block_len; 15809 xcb_block_len = 0; 15810 /* message */ 15811 xcb_block_len += _aux->msgLength * sizeof(xcb_xkb_string8_t); 15812 xcb_tmp += xcb_block_len; 15813 xcb_align_to = ALIGNOF(xcb_xkb_string8_t); 15814 /* insert padding */ 15815 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 15816 xcb_buffer_len += xcb_block_len + xcb_pad; 15817 if (0 != xcb_pad) { 15818 xcb_tmp += xcb_pad; 15819 xcb_pad = 0; 15820 } 15821 xcb_block_len = 0; 15822 15823 return xcb_buffer_len; 15824 } 15825 15826 15827 /***************************************************************************** 15828 ** 15829 ** xcb_xkb_set_debugging_flags_cookie_t xcb_xkb_set_debugging_flags 15830 ** 15831 ** @param xcb_connection_t *c 15832 ** @param uint16_t msgLength 15833 ** @param uint32_t affectFlags 15834 ** @param uint32_t flags 15835 ** @param uint32_t affectCtrls 15836 ** @param uint32_t ctrls 15837 ** @param const xcb_xkb_string8_t *message 15838 ** @returns xcb_xkb_set_debugging_flags_cookie_t 15839 ** 15840 *****************************************************************************/ 15841 15842 xcb_xkb_set_debugging_flags_cookie_t 15843 xcb_xkb_set_debugging_flags (xcb_connection_t *c /**< */, 15844 uint16_t msgLength /**< */, 15845 uint32_t affectFlags /**< */, 15846 uint32_t flags /**< */, 15847 uint32_t affectCtrls /**< */, 15848 uint32_t ctrls /**< */, 15849 const xcb_xkb_string8_t *message /**< */) 15850 { 15851 static const xcb_protocol_request_t xcb_req = { 15852 /* count */ 4, 15853 /* ext */ &xcb_xkb_id, 15854 /* opcode */ XCB_XKB_SET_DEBUGGING_FLAGS, 15855 /* isvoid */ 0 15856 }; 15857 15858 struct iovec xcb_parts[6]; 15859 xcb_xkb_set_debugging_flags_cookie_t xcb_ret; 15860 xcb_xkb_set_debugging_flags_request_t xcb_out; 15861 15862 xcb_out.msgLength = msgLength; 15863 memset(xcb_out.pad0, 0, 2); 15864 xcb_out.affectFlags = affectFlags; 15865 xcb_out.flags = flags; 15866 xcb_out.affectCtrls = affectCtrls; 15867 xcb_out.ctrls = ctrls; 15868 15869 xcb_parts[2].iov_base = (char *) &xcb_out; 15870 xcb_parts[2].iov_len = sizeof(xcb_out); 15871 xcb_parts[3].iov_base = 0; 15872 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 15873 /* xcb_xkb_string8_t message */ 15874 xcb_parts[4].iov_base = (char *) message; 15875 xcb_parts[4].iov_len = msgLength * sizeof(xcb_xkb_string8_t); 15876 xcb_parts[5].iov_base = 0; 15877 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 15878 15879 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 15880 return xcb_ret; 15881 } 15882 15883 15884 /***************************************************************************** 15885 ** 15886 ** xcb_xkb_set_debugging_flags_cookie_t xcb_xkb_set_debugging_flags_unchecked 15887 ** 15888 ** @param xcb_connection_t *c 15889 ** @param uint16_t msgLength 15890 ** @param uint32_t affectFlags 15891 ** @param uint32_t flags 15892 ** @param uint32_t affectCtrls 15893 ** @param uint32_t ctrls 15894 ** @param const xcb_xkb_string8_t *message 15895 ** @returns xcb_xkb_set_debugging_flags_cookie_t 15896 ** 15897 *****************************************************************************/ 15898 15899 xcb_xkb_set_debugging_flags_cookie_t 15900 xcb_xkb_set_debugging_flags_unchecked (xcb_connection_t *c /**< */, 15901 uint16_t msgLength /**< */, 15902 uint32_t affectFlags /**< */, 15903 uint32_t flags /**< */, 15904 uint32_t affectCtrls /**< */, 15905 uint32_t ctrls /**< */, 15906 const xcb_xkb_string8_t *message /**< */) 15907 { 15908 static const xcb_protocol_request_t xcb_req = { 15909 /* count */ 4, 15910 /* ext */ &xcb_xkb_id, 15911 /* opcode */ XCB_XKB_SET_DEBUGGING_FLAGS, 15912 /* isvoid */ 0 15913 }; 15914 15915 struct iovec xcb_parts[6]; 15916 xcb_xkb_set_debugging_flags_cookie_t xcb_ret; 15917 xcb_xkb_set_debugging_flags_request_t xcb_out; 15918 15919 xcb_out.msgLength = msgLength; 15920 memset(xcb_out.pad0, 0, 2); 15921 xcb_out.affectFlags = affectFlags; 15922 xcb_out.flags = flags; 15923 xcb_out.affectCtrls = affectCtrls; 15924 xcb_out.ctrls = ctrls; 15925 15926 xcb_parts[2].iov_base = (char *) &xcb_out; 15927 xcb_parts[2].iov_len = sizeof(xcb_out); 15928 xcb_parts[3].iov_base = 0; 15929 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 15930 /* xcb_xkb_string8_t message */ 15931 xcb_parts[4].iov_base = (char *) message; 15932 xcb_parts[4].iov_len = msgLength * sizeof(xcb_xkb_string8_t); 15933 xcb_parts[5].iov_base = 0; 15934 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 15935 15936 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 15937 return xcb_ret; 15938 } 15939 15940 15941 /***************************************************************************** 15942 ** 15943 ** xcb_xkb_set_debugging_flags_reply_t * xcb_xkb_set_debugging_flags_reply 15944 ** 15945 ** @param xcb_connection_t *c 15946 ** @param xcb_xkb_set_debugging_flags_cookie_t cookie 15947 ** @param xcb_generic_error_t **e 15948 ** @returns xcb_xkb_set_debugging_flags_reply_t * 15949 ** 15950 *****************************************************************************/ 15951 15952 xcb_xkb_set_debugging_flags_reply_t * 15953 xcb_xkb_set_debugging_flags_reply (xcb_connection_t *c /**< */, 15954 xcb_xkb_set_debugging_flags_cookie_t cookie /**< */, 15955 xcb_generic_error_t **e /**< */) 15956 { 15957 return (xcb_xkb_set_debugging_flags_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 15958 } 15959 15960