diff options
Diffstat (limited to 'src/3rdparty/xcb/libxcb/xkb.c')
-rw-r--r-- | src/3rdparty/xcb/libxcb/xkb.c | 22021 |
1 files changed, 22021 insertions, 0 deletions
diff --git a/src/3rdparty/xcb/libxcb/xkb.c b/src/3rdparty/xcb/libxcb/xkb.c new file mode 100644 index 0000000000..3e07d6df84 --- /dev/null +++ b/src/3rdparty/xcb/libxcb/xkb.c @@ -0,0 +1,22021 @@ +/* + * This file generated automatically from xkb.xml by c_client.py. + * Edit at your peril. + */ + +#include <stdlib.h> +#include <string.h> +#include <assert.h> +#include <stddef.h> /* for offsetof() */ +#include "xcbext.h" +#include "xkb.h" + +#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) +#include "xproto.h" + +xcb_extension_t xcb_xkb_id = { "XKEYBOARD", 0 }; + +int qt_xcb_sumof(uint8_t *list, int len) +{ + int i, s = 0; + for(i=0; i<len; i++) { + s += *list; + list++; + } + return s; +} + +/***************************************************************************** + ** + ** void xcb_xkb_ax_option_next + ** + ** @param xcb_xkb_ax_option_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_ax_option_next (xcb_xkb_ax_option_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_ax_option_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_ax_option_end + ** + ** @param xcb_xkb_ax_option_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_ax_option_end (xcb_xkb_ax_option_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_device_spec_next + ** + ** @param xcb_xkb_device_spec_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_device_spec_next (xcb_xkb_device_spec_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_device_spec_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_device_spec_end + ** + ** @param xcb_xkb_device_spec_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_device_spec_end (xcb_xkb_device_spec_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_led_class_spec_next + ** + ** @param xcb_xkb_led_class_spec_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_led_class_spec_next (xcb_xkb_led_class_spec_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_led_class_spec_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_led_class_spec_end + ** + ** @param xcb_xkb_led_class_spec_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_led_class_spec_end (xcb_xkb_led_class_spec_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_bell_class_spec_next + ** + ** @param xcb_xkb_bell_class_spec_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_bell_class_spec_next (xcb_xkb_bell_class_spec_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_bell_class_spec_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_bell_class_spec_end + ** + ** @param xcb_xkb_bell_class_spec_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_bell_class_spec_end (xcb_xkb_bell_class_spec_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_id_spec_next + ** + ** @param xcb_xkb_id_spec_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_id_spec_next (xcb_xkb_id_spec_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_id_spec_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_id_spec_end + ** + ** @param xcb_xkb_id_spec_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_id_spec_end (xcb_xkb_id_spec_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_indicator_map_next + ** + ** @param xcb_xkb_indicator_map_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_indicator_map_next (xcb_xkb_indicator_map_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_indicator_map_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_indicator_map_end + ** + ** @param xcb_xkb_indicator_map_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_indicator_map_end (xcb_xkb_indicator_map_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_mod_def_next + ** + ** @param xcb_xkb_mod_def_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_mod_def_next (xcb_xkb_mod_def_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_mod_def_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_mod_def_end + ** + ** @param xcb_xkb_mod_def_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_mod_def_end (xcb_xkb_mod_def_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_key_name_next + ** + ** @param xcb_xkb_key_name_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_key_name_next (xcb_xkb_key_name_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_key_name_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_key_name_end + ** + ** @param xcb_xkb_key_name_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_key_name_end (xcb_xkb_key_name_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_key_alias_next + ** + ** @param xcb_xkb_key_alias_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_key_alias_next (xcb_xkb_key_alias_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_key_alias_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_key_alias_end + ** + ** @param xcb_xkb_key_alias_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_key_alias_end (xcb_xkb_key_alias_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_xkb_counted_string_8_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_counted_string_8_t *_aux = (xcb_xkb_counted_string_8_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_counted_string_8_t); + xcb_tmp += xcb_block_len; + /* string */ + xcb_block_len += _aux->length * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_counted_string_8_string + ** + ** @param const xcb_xkb_counted_string_8_t *R + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_counted_string_8_string (const xcb_xkb_counted_string_8_t *R /**< */) +{ + return (uint8_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_counted_string_8_string_length + ** + ** @param const xcb_xkb_counted_string_8_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_counted_string_8_string_length (const xcb_xkb_counted_string_8_t *R /**< */) +{ + return R->length; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_counted_string_8_string_end + ** + ** @param const xcb_xkb_counted_string_8_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_counted_string_8_string_end (const xcb_xkb_counted_string_8_t *R /**< */) +{ + xcb_generic_iterator_t i; + i.data = ((uint8_t *) (R + 1)) + (R->length); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_counted_string_8_next + ** + ** @param xcb_xkb_counted_string_8_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_counted_string_8_next (xcb_xkb_counted_string_8_iterator_t *i /**< */) +{ + xcb_xkb_counted_string_8_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_counted_string_8_t *)(((char *)R) + xcb_xkb_counted_string_8_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_counted_string_8_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_counted_string_8_end + ** + ** @param xcb_xkb_counted_string_8_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_counted_string_8_end (xcb_xkb_counted_string_8_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_counted_string_8_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_counted_string_16_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_counted_string_16_t *_aux = (xcb_xkb_counted_string_16_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_counted_string_16_t); + xcb_tmp += xcb_block_len; + /* string */ + xcb_block_len += _aux->length * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_counted_string_16_string + ** + ** @param const xcb_xkb_counted_string_16_t *R + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_counted_string_16_string (const xcb_xkb_counted_string_16_t *R /**< */) +{ + return (uint8_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_counted_string_16_string_length + ** + ** @param const xcb_xkb_counted_string_16_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_counted_string_16_string_length (const xcb_xkb_counted_string_16_t *R /**< */) +{ + return R->length; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_counted_string_16_string_end + ** + ** @param const xcb_xkb_counted_string_16_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_counted_string_16_string_end (const xcb_xkb_counted_string_16_t *R /**< */) +{ + xcb_generic_iterator_t i; + i.data = ((uint8_t *) (R + 1)) + (R->length); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_counted_string_16_pad_0 + ** + ** @param const xcb_xkb_counted_string_16_t *R + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_counted_string_16_pad_0 (const xcb_xkb_counted_string_16_t *R /**< */) +{ + xcb_generic_iterator_t prev = xcb_xkb_counted_string_16_string_end(R); + return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0); +} + + +/***************************************************************************** + ** + ** void xcb_xkb_counted_string_16_next + ** + ** @param xcb_xkb_counted_string_16_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_counted_string_16_next (xcb_xkb_counted_string_16_iterator_t *i /**< */) +{ + xcb_xkb_counted_string_16_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_counted_string_16_t *)(((char *)R) + xcb_xkb_counted_string_16_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_counted_string_16_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_counted_string_16_end + ** + ** @param xcb_xkb_counted_string_16_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_counted_string_16_end (xcb_xkb_counted_string_16_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_counted_string_16_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_kt_map_entry_next + ** + ** @param xcb_xkb_kt_map_entry_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_kt_map_entry_next (xcb_xkb_kt_map_entry_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_kt_map_entry_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_kt_map_entry_end + ** + ** @param xcb_xkb_kt_map_entry_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_kt_map_entry_end (xcb_xkb_kt_map_entry_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_xkb_key_type_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_key_type_t *_aux = (xcb_xkb_key_type_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_key_type_t); + xcb_tmp += xcb_block_len; + /* map */ + xcb_block_len += _aux->nMapEntries * sizeof(xcb_xkb_kt_map_entry_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_kt_map_entry_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* preserve */ + xcb_block_len += (_aux->hasPreserve * _aux->nMapEntries) * sizeof(xcb_xkb_mod_def_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_kt_map_entry_t * xcb_xkb_key_type_map + ** + ** @param const xcb_xkb_key_type_t *R + ** @returns xcb_xkb_kt_map_entry_t * + ** + *****************************************************************************/ + +xcb_xkb_kt_map_entry_t * +xcb_xkb_key_type_map (const xcb_xkb_key_type_t *R /**< */) +{ + return (xcb_xkb_kt_map_entry_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_key_type_map_length + ** + ** @param const xcb_xkb_key_type_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_key_type_map_length (const xcb_xkb_key_type_t *R /**< */) +{ + return R->nMapEntries; +} + + +/***************************************************************************** + ** + ** xcb_xkb_kt_map_entry_iterator_t xcb_xkb_key_type_map_iterator + ** + ** @param const xcb_xkb_key_type_t *R + ** @returns xcb_xkb_kt_map_entry_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_kt_map_entry_iterator_t +xcb_xkb_key_type_map_iterator (const xcb_xkb_key_type_t *R /**< */) +{ + xcb_xkb_kt_map_entry_iterator_t i; + i.data = (xcb_xkb_kt_map_entry_t *) (R + 1); + i.rem = R->nMapEntries; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_mod_def_t * xcb_xkb_key_type_preserve + ** + ** @param const xcb_xkb_key_type_t *R + ** @returns xcb_xkb_mod_def_t * + ** + *****************************************************************************/ + +xcb_xkb_mod_def_t * +xcb_xkb_key_type_preserve (const xcb_xkb_key_type_t *R /**< */) +{ + xcb_generic_iterator_t prev = xcb_xkb_kt_map_entry_end(xcb_xkb_key_type_map_iterator(R)); + return (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index) + 0); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_key_type_preserve_length + ** + ** @param const xcb_xkb_key_type_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_key_type_preserve_length (const xcb_xkb_key_type_t *R /**< */) +{ + return (R->hasPreserve * R->nMapEntries); +} + + +/***************************************************************************** + ** + ** xcb_xkb_mod_def_iterator_t xcb_xkb_key_type_preserve_iterator + ** + ** @param const xcb_xkb_key_type_t *R + ** @returns xcb_xkb_mod_def_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_mod_def_iterator_t +xcb_xkb_key_type_preserve_iterator (const xcb_xkb_key_type_t *R /**< */) +{ + xcb_xkb_mod_def_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_kt_map_entry_end(xcb_xkb_key_type_map_iterator(R)); + i.data = (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index)); + i.rem = (R->hasPreserve * R->nMapEntries); + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_key_type_next + ** + ** @param xcb_xkb_key_type_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_key_type_next (xcb_xkb_key_type_iterator_t *i /**< */) +{ + xcb_xkb_key_type_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_key_type_t *)(((char *)R) + xcb_xkb_key_type_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_key_type_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_key_type_end + ** + ** @param xcb_xkb_key_type_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_key_type_end (xcb_xkb_key_type_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_key_type_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_key_sym_map_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_key_sym_map_t *_aux = (xcb_xkb_key_sym_map_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_key_sym_map_t); + xcb_tmp += xcb_block_len; + /* syms */ + xcb_block_len += _aux->nSyms * sizeof(xcb_keysym_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_keysym_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_keysym_t * xcb_xkb_key_sym_map_syms + ** + ** @param const xcb_xkb_key_sym_map_t *R + ** @returns xcb_keysym_t * + ** + *****************************************************************************/ + +xcb_keysym_t * +xcb_xkb_key_sym_map_syms (const xcb_xkb_key_sym_map_t *R /**< */) +{ + return (xcb_keysym_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_key_sym_map_syms_length + ** + ** @param const xcb_xkb_key_sym_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_key_sym_map_syms_length (const xcb_xkb_key_sym_map_t *R /**< */) +{ + return R->nSyms; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_key_sym_map_syms_end + ** + ** @param const xcb_xkb_key_sym_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_key_sym_map_syms_end (const xcb_xkb_key_sym_map_t *R /**< */) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_keysym_t *) (R + 1)) + (R->nSyms); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_key_sym_map_next + ** + ** @param xcb_xkb_key_sym_map_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_key_sym_map_next (xcb_xkb_key_sym_map_iterator_t *i /**< */) +{ + xcb_xkb_key_sym_map_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_key_sym_map_t *)(((char *)R) + xcb_xkb_key_sym_map_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_key_sym_map_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_key_sym_map_end + ** + ** @param xcb_xkb_key_sym_map_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_key_sym_map_end (xcb_xkb_key_sym_map_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_key_sym_map_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_common_behavior_next + ** + ** @param xcb_xkb_common_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_common_behavior_next (xcb_xkb_common_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_common_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_common_behavior_end + ** + ** @param xcb_xkb_common_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_common_behavior_end (xcb_xkb_common_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_default_behavior_next + ** + ** @param xcb_xkb_default_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_default_behavior_next (xcb_xkb_default_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_default_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_default_behavior_end + ** + ** @param xcb_xkb_default_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_default_behavior_end (xcb_xkb_default_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_lock_behavior_next + ** + ** @param xcb_xkb_lock_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_lock_behavior_next (xcb_xkb_lock_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_lock_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_lock_behavior_end + ** + ** @param xcb_xkb_lock_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_lock_behavior_end (xcb_xkb_lock_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_radio_group_behavior_next + ** + ** @param xcb_xkb_radio_group_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_radio_group_behavior_next (xcb_xkb_radio_group_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_radio_group_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_radio_group_behavior_end + ** + ** @param xcb_xkb_radio_group_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_radio_group_behavior_end (xcb_xkb_radio_group_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_overlay_1_behavior_next + ** + ** @param xcb_xkb_overlay_1_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_overlay_1_behavior_next (xcb_xkb_overlay_1_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_overlay_1_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_overlay_1_behavior_end + ** + ** @param xcb_xkb_overlay_1_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_overlay_1_behavior_end (xcb_xkb_overlay_1_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_overlay_2_behavior_next + ** + ** @param xcb_xkb_overlay_2_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_overlay_2_behavior_next (xcb_xkb_overlay_2_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_overlay_2_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_overlay_2_behavior_end + ** + ** @param xcb_xkb_overlay_2_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_overlay_2_behavior_end (xcb_xkb_overlay_2_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_permament_lock_behavior_next + ** + ** @param xcb_xkb_permament_lock_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_permament_lock_behavior_next (xcb_xkb_permament_lock_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_permament_lock_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_permament_lock_behavior_end + ** + ** @param xcb_xkb_permament_lock_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_permament_lock_behavior_end (xcb_xkb_permament_lock_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_permament_radio_group_behavior_next + ** + ** @param xcb_xkb_permament_radio_group_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_permament_radio_group_behavior_next (xcb_xkb_permament_radio_group_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_permament_radio_group_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_permament_radio_group_behavior_end + ** + ** @param xcb_xkb_permament_radio_group_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_permament_radio_group_behavior_end (xcb_xkb_permament_radio_group_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_permament_overlay_1_behavior_next + ** + ** @param xcb_xkb_permament_overlay_1_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_permament_overlay_1_behavior_next (xcb_xkb_permament_overlay_1_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_permament_overlay_1_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_permament_overlay_1_behavior_end + ** + ** @param xcb_xkb_permament_overlay_1_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_permament_overlay_1_behavior_end (xcb_xkb_permament_overlay_1_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_permament_overlay_2_behavior_next + ** + ** @param xcb_xkb_permament_overlay_2_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_permament_overlay_2_behavior_next (xcb_xkb_permament_overlay_2_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_permament_overlay_2_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_permament_overlay_2_behavior_end + ** + ** @param xcb_xkb_permament_overlay_2_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_permament_overlay_2_behavior_end (xcb_xkb_permament_overlay_2_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_behavior_next + ** + ** @param xcb_xkb_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_behavior_next (xcb_xkb_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_behavior_end + ** + ** @param xcb_xkb_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_behavior_end (xcb_xkb_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_set_behavior_next + ** + ** @param xcb_xkb_set_behavior_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_set_behavior_next (xcb_xkb_set_behavior_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_set_behavior_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_behavior_end + ** + ** @param xcb_xkb_set_behavior_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_behavior_end (xcb_xkb_set_behavior_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_set_explicit_next + ** + ** @param xcb_xkb_set_explicit_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_set_explicit_next (xcb_xkb_set_explicit_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_set_explicit_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_explicit_end + ** + ** @param xcb_xkb_set_explicit_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_explicit_end (xcb_xkb_set_explicit_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_key_mod_map_next + ** + ** @param xcb_xkb_key_mod_map_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_key_mod_map_next (xcb_xkb_key_mod_map_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_key_mod_map_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_key_mod_map_end + ** + ** @param xcb_xkb_key_mod_map_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_key_mod_map_end (xcb_xkb_key_mod_map_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_key_v_mod_map_next + ** + ** @param xcb_xkb_key_v_mod_map_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_key_v_mod_map_next (xcb_xkb_key_v_mod_map_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_key_v_mod_map_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_key_v_mod_map_end + ** + ** @param xcb_xkb_key_v_mod_map_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_key_v_mod_map_end (xcb_xkb_key_v_mod_map_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_kt_set_map_entry_next + ** + ** @param xcb_xkb_kt_set_map_entry_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_kt_set_map_entry_next (xcb_xkb_kt_set_map_entry_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_kt_set_map_entry_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_kt_set_map_entry_end + ** + ** @param xcb_xkb_kt_set_map_entry_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_kt_set_map_entry_end (xcb_xkb_kt_set_map_entry_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_xkb_set_key_type_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_set_key_type_t *_aux = (xcb_xkb_set_key_type_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_set_key_type_t); + xcb_tmp += xcb_block_len; + /* entries */ + xcb_block_len += _aux->nMapEntries * sizeof(xcb_xkb_kt_set_map_entry_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_kt_set_map_entry_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* preserve_entries */ + xcb_block_len += (_aux->preserve * _aux->nMapEntries) * sizeof(xcb_xkb_kt_set_map_entry_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_kt_set_map_entry_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_kt_set_map_entry_t * xcb_xkb_set_key_type_entries + ** + ** @param const xcb_xkb_set_key_type_t *R + ** @returns xcb_xkb_kt_set_map_entry_t * + ** + *****************************************************************************/ + +xcb_xkb_kt_set_map_entry_t * +xcb_xkb_set_key_type_entries (const xcb_xkb_set_key_type_t *R /**< */) +{ + return (xcb_xkb_kt_set_map_entry_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_key_type_entries_length + ** + ** @param const xcb_xkb_set_key_type_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_key_type_entries_length (const xcb_xkb_set_key_type_t *R /**< */) +{ + return R->nMapEntries; +} + + +/***************************************************************************** + ** + ** xcb_xkb_kt_set_map_entry_iterator_t xcb_xkb_set_key_type_entries_iterator + ** + ** @param const xcb_xkb_set_key_type_t *R + ** @returns xcb_xkb_kt_set_map_entry_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_kt_set_map_entry_iterator_t +xcb_xkb_set_key_type_entries_iterator (const xcb_xkb_set_key_type_t *R /**< */) +{ + xcb_xkb_kt_set_map_entry_iterator_t i; + i.data = (xcb_xkb_kt_set_map_entry_t *) (R + 1); + i.rem = R->nMapEntries; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_kt_set_map_entry_t * xcb_xkb_set_key_type_preserve_entries + ** + ** @param const xcb_xkb_set_key_type_t *R + ** @returns xcb_xkb_kt_set_map_entry_t * + ** + *****************************************************************************/ + +xcb_xkb_kt_set_map_entry_t * +xcb_xkb_set_key_type_preserve_entries (const xcb_xkb_set_key_type_t *R /**< */) +{ + xcb_generic_iterator_t prev = xcb_xkb_kt_set_map_entry_end(xcb_xkb_set_key_type_entries_iterator(R)); + return (xcb_xkb_kt_set_map_entry_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_kt_set_map_entry_t, prev.index) + 0); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_key_type_preserve_entries_length + ** + ** @param const xcb_xkb_set_key_type_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_key_type_preserve_entries_length (const xcb_xkb_set_key_type_t *R /**< */) +{ + return (R->preserve * R->nMapEntries); +} + + +/***************************************************************************** + ** + ** xcb_xkb_kt_set_map_entry_iterator_t xcb_xkb_set_key_type_preserve_entries_iterator + ** + ** @param const xcb_xkb_set_key_type_t *R + ** @returns xcb_xkb_kt_set_map_entry_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_kt_set_map_entry_iterator_t +xcb_xkb_set_key_type_preserve_entries_iterator (const xcb_xkb_set_key_type_t *R /**< */) +{ + xcb_xkb_kt_set_map_entry_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_kt_set_map_entry_end(xcb_xkb_set_key_type_entries_iterator(R)); + i.data = (xcb_xkb_kt_set_map_entry_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_kt_set_map_entry_t, prev.index)); + i.rem = (R->preserve * R->nMapEntries); + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_set_key_type_next + ** + ** @param xcb_xkb_set_key_type_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_set_key_type_next (xcb_xkb_set_key_type_iterator_t *i /**< */) +{ + xcb_xkb_set_key_type_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_set_key_type_t *)(((char *)R) + xcb_xkb_set_key_type_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_set_key_type_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_key_type_end + ** + ** @param xcb_xkb_set_key_type_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_key_type_end (xcb_xkb_set_key_type_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_set_key_type_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_string8_next + ** + ** @param xcb_xkb_string8_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_string8_next (xcb_xkb_string8_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_string8_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_string8_end + ** + ** @param xcb_xkb_string8_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_string8_end (xcb_xkb_string8_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_xkb_property_serialize (void **_buffer /**< */, + const xcb_xkb_property_t *_aux /**< */, + const xcb_xkb_string8_t *name /**< */, + const xcb_xkb_string8_t *value /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[5]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + /* xcb_xkb_property_t.nameLength */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->nameLength; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* name */ + xcb_parts[xcb_parts_idx].iov_base = (char *) name; + xcb_block_len += _aux->nameLength * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->nameLength * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_property_t.valueLength */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->valueLength; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* value */ + xcb_parts[xcb_parts_idx].iov_base = (char *) value; + xcb_block_len += _aux->valueLength * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->valueLength * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_property_unserialize (const void *_buffer /**< */, + xcb_xkb_property_t **_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + xcb_xkb_property_t xcb_out; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + xcb_xkb_string8_t *name; + int name_len; + xcb_xkb_string8_t *value; + int value_len; + + /* xcb_xkb_property_t.nameLength */ + xcb_out.nameLength = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* name */ + name = (xcb_xkb_string8_t *)xcb_tmp; + name_len = xcb_out.nameLength * sizeof(xcb_xkb_string8_t); + xcb_block_len += name_len; + xcb_tmp += name_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_property_t.valueLength */ + xcb_out.valueLength = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* value */ + value = (xcb_xkb_string8_t *)xcb_tmp; + value_len = xcb_out.valueLength * sizeof(xcb_xkb_string8_t); + xcb_block_len += value_len; + xcb_tmp += value_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == _aux) + return xcb_buffer_len; + + if (NULL == *_aux) { + /* allocate memory */ + *_aux = malloc(xcb_buffer_len); + } + + xcb_tmp = ((char *)*_aux)+xcb_buffer_len; + xcb_tmp -= value_len; + memmove(xcb_tmp, value, value_len); + xcb_tmp -= name_len; + memmove(xcb_tmp, name, name_len); + **_aux = xcb_out; + + return xcb_buffer_len; +} + +int +xcb_xkb_property_sizeof (const void *_buffer /**< */) +{ + return xcb_xkb_property_unserialize(_buffer, NULL); +} + + +/***************************************************************************** + ** + ** xcb_xkb_string8_t * xcb_xkb_property_name + ** + ** @param const xcb_xkb_property_t *R + ** @returns xcb_xkb_string8_t * + ** + *****************************************************************************/ + +xcb_xkb_string8_t * +xcb_xkb_property_name (const xcb_xkb_property_t *R /**< */) +{ + return (xcb_xkb_string8_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_property_name_length + ** + ** @param const xcb_xkb_property_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_property_name_length (const xcb_xkb_property_t *R /**< */) +{ + return R->nameLength; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_property_name_end + ** + ** @param const xcb_xkb_property_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_property_name_end (const xcb_xkb_property_t *R /**< */) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_xkb_string8_t *) (R + 1)) + (R->nameLength); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_string8_t * xcb_xkb_property_value + ** + ** @param const xcb_xkb_property_t *R + ** @returns xcb_xkb_string8_t * + ** + *****************************************************************************/ + +xcb_xkb_string8_t * +xcb_xkb_property_value (const xcb_xkb_property_t *R /**< */) +{ + xcb_generic_iterator_t prev = xcb_xkb_property_name_end(R); + return (xcb_xkb_string8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint16_t, prev.index) + 2); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_property_value_length + ** + ** @param const xcb_xkb_property_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_property_value_length (const xcb_xkb_property_t *R /**< */) +{ + return R->valueLength; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_property_value_end + ** + ** @param const xcb_xkb_property_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_property_value_end (const xcb_xkb_property_t *R /**< */) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t child = xcb_xkb_property_name_end(R); + i.data = ((xcb_xkb_string8_t *) child.data) + (R->valueLength); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_property_next + ** + ** @param xcb_xkb_property_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_property_next (xcb_xkb_property_iterator_t *i /**< */) +{ + xcb_xkb_property_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_property_t *)(((char *)R) + xcb_xkb_property_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_property_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_property_end + ** + ** @param xcb_xkb_property_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_property_end (xcb_xkb_property_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_property_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_outline_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_outline_t *_aux = (xcb_xkb_outline_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_outline_t); + xcb_tmp += xcb_block_len; + /* points */ + xcb_block_len += _aux->nPoints * sizeof(xcb_point_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_point_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_point_t * xcb_xkb_outline_points + ** + ** @param const xcb_xkb_outline_t *R + ** @returns xcb_point_t * + ** + *****************************************************************************/ + +xcb_point_t * +xcb_xkb_outline_points (const xcb_xkb_outline_t *R /**< */) +{ + return (xcb_point_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_outline_points_length + ** + ** @param const xcb_xkb_outline_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_outline_points_length (const xcb_xkb_outline_t *R /**< */) +{ + return R->nPoints; +} + + +/***************************************************************************** + ** + ** xcb_point_iterator_t xcb_xkb_outline_points_iterator + ** + ** @param const xcb_xkb_outline_t *R + ** @returns xcb_point_iterator_t + ** + *****************************************************************************/ + +xcb_point_iterator_t +xcb_xkb_outline_points_iterator (const xcb_xkb_outline_t *R /**< */) +{ + xcb_point_iterator_t i; + i.data = (xcb_point_t *) (R + 1); + i.rem = R->nPoints; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_outline_next + ** + ** @param xcb_xkb_outline_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_outline_next (xcb_xkb_outline_iterator_t *i /**< */) +{ + xcb_xkb_outline_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_outline_t *)(((char *)R) + xcb_xkb_outline_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_outline_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_outline_end + ** + ** @param xcb_xkb_outline_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_outline_end (xcb_xkb_outline_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_outline_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_shape_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_shape_t *_aux = (xcb_xkb_shape_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + xcb_block_len += sizeof(xcb_xkb_shape_t); + xcb_tmp += xcb_block_len; + /* outlines */ + for(i=0; i<_aux->nOutlines; i++) { + xcb_tmp_len = xcb_xkb_outline_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_outline_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_shape_outlines_length + ** + ** @param const xcb_xkb_shape_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_shape_outlines_length (const xcb_xkb_shape_t *R /**< */) +{ + return R->nOutlines; +} + + +/***************************************************************************** + ** + ** xcb_xkb_outline_iterator_t xcb_xkb_shape_outlines_iterator + ** + ** @param const xcb_xkb_shape_t *R + ** @returns xcb_xkb_outline_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_outline_iterator_t +xcb_xkb_shape_outlines_iterator (const xcb_xkb_shape_t *R /**< */) +{ + xcb_xkb_outline_iterator_t i; + i.data = (xcb_xkb_outline_t *) (R + 1); + i.rem = R->nOutlines; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_shape_next + ** + ** @param xcb_xkb_shape_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_shape_next (xcb_xkb_shape_iterator_t *i /**< */) +{ + xcb_xkb_shape_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_shape_t *)(((char *)R) + xcb_xkb_shape_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_shape_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_shape_end + ** + ** @param xcb_xkb_shape_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_shape_end (xcb_xkb_shape_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_shape_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_key_next + ** + ** @param xcb_xkb_key_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_key_next (xcb_xkb_key_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_key_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_key_end + ** + ** @param xcb_xkb_key_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_key_end (xcb_xkb_key_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_overlay_key_next + ** + ** @param xcb_xkb_overlay_key_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_overlay_key_next (xcb_xkb_overlay_key_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_overlay_key_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_overlay_key_end + ** + ** @param xcb_xkb_overlay_key_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_overlay_key_end (xcb_xkb_overlay_key_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_xkb_overlay_row_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_overlay_row_t *_aux = (xcb_xkb_overlay_row_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_overlay_row_t); + xcb_tmp += xcb_block_len; + /* keys */ + xcb_block_len += _aux->nKeys * sizeof(xcb_xkb_overlay_key_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_overlay_key_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_overlay_key_t * xcb_xkb_overlay_row_keys + ** + ** @param const xcb_xkb_overlay_row_t *R + ** @returns xcb_xkb_overlay_key_t * + ** + *****************************************************************************/ + +xcb_xkb_overlay_key_t * +xcb_xkb_overlay_row_keys (const xcb_xkb_overlay_row_t *R /**< */) +{ + return (xcb_xkb_overlay_key_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_overlay_row_keys_length + ** + ** @param const xcb_xkb_overlay_row_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_overlay_row_keys_length (const xcb_xkb_overlay_row_t *R /**< */) +{ + return R->nKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_overlay_key_iterator_t xcb_xkb_overlay_row_keys_iterator + ** + ** @param const xcb_xkb_overlay_row_t *R + ** @returns xcb_xkb_overlay_key_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_overlay_key_iterator_t +xcb_xkb_overlay_row_keys_iterator (const xcb_xkb_overlay_row_t *R /**< */) +{ + xcb_xkb_overlay_key_iterator_t i; + i.data = (xcb_xkb_overlay_key_t *) (R + 1); + i.rem = R->nKeys; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_overlay_row_next + ** + ** @param xcb_xkb_overlay_row_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_overlay_row_next (xcb_xkb_overlay_row_iterator_t *i /**< */) +{ + xcb_xkb_overlay_row_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_overlay_row_t *)(((char *)R) + xcb_xkb_overlay_row_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_overlay_row_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_overlay_row_end + ** + ** @param xcb_xkb_overlay_row_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_overlay_row_end (xcb_xkb_overlay_row_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_overlay_row_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_overlay_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_overlay_t *_aux = (xcb_xkb_overlay_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + xcb_block_len += sizeof(xcb_xkb_overlay_t); + xcb_tmp += xcb_block_len; + /* rows */ + for(i=0; i<_aux->nRows; i++) { + xcb_tmp_len = xcb_xkb_overlay_row_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_overlay_row_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_overlay_rows_length + ** + ** @param const xcb_xkb_overlay_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_overlay_rows_length (const xcb_xkb_overlay_t *R /**< */) +{ + return R->nRows; +} + + +/***************************************************************************** + ** + ** xcb_xkb_overlay_row_iterator_t xcb_xkb_overlay_rows_iterator + ** + ** @param const xcb_xkb_overlay_t *R + ** @returns xcb_xkb_overlay_row_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_overlay_row_iterator_t +xcb_xkb_overlay_rows_iterator (const xcb_xkb_overlay_t *R /**< */) +{ + xcb_xkb_overlay_row_iterator_t i; + i.data = (xcb_xkb_overlay_row_t *) (R + 1); + i.rem = R->nRows; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_overlay_next + ** + ** @param xcb_xkb_overlay_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_overlay_next (xcb_xkb_overlay_iterator_t *i /**< */) +{ + xcb_xkb_overlay_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_overlay_t *)(((char *)R) + xcb_xkb_overlay_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_overlay_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_overlay_end + ** + ** @param xcb_xkb_overlay_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_overlay_end (xcb_xkb_overlay_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_overlay_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_row_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_row_t *_aux = (xcb_xkb_row_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_row_t); + xcb_tmp += xcb_block_len; + /* keys */ + xcb_block_len += _aux->nKeys * sizeof(xcb_xkb_key_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_t * xcb_xkb_row_keys + ** + ** @param const xcb_xkb_row_t *R + ** @returns xcb_xkb_key_t * + ** + *****************************************************************************/ + +xcb_xkb_key_t * +xcb_xkb_row_keys (const xcb_xkb_row_t *R /**< */) +{ + return (xcb_xkb_key_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_row_keys_length + ** + ** @param const xcb_xkb_row_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_row_keys_length (const xcb_xkb_row_t *R /**< */) +{ + return R->nKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_iterator_t xcb_xkb_row_keys_iterator + ** + ** @param const xcb_xkb_row_t *R + ** @returns xcb_xkb_key_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_iterator_t +xcb_xkb_row_keys_iterator (const xcb_xkb_row_t *R /**< */) +{ + xcb_xkb_key_iterator_t i; + i.data = (xcb_xkb_key_t *) (R + 1); + i.rem = R->nKeys; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_row_next + ** + ** @param xcb_xkb_row_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_row_next (xcb_xkb_row_iterator_t *i /**< */) +{ + xcb_xkb_row_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_row_t *)(((char *)R) + xcb_xkb_row_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_row_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_row_end + ** + ** @param xcb_xkb_row_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_row_end (xcb_xkb_row_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_row_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_common_doodad_next + ** + ** @param xcb_xkb_common_doodad_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_common_doodad_next (xcb_xkb_common_doodad_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_common_doodad_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_common_doodad_end + ** + ** @param xcb_xkb_common_doodad_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_common_doodad_end (xcb_xkb_common_doodad_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_shape_doodad_next + ** + ** @param xcb_xkb_shape_doodad_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_shape_doodad_next (xcb_xkb_shape_doodad_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_shape_doodad_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_shape_doodad_end + ** + ** @param xcb_xkb_shape_doodad_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_shape_doodad_end (xcb_xkb_shape_doodad_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_xkb_text_doodad_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_text_doodad_t); + xcb_tmp += xcb_block_len; + /* text */ + xcb_block_len += xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* font */ + xcb_block_len += xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_counted_string_16_t * xcb_xkb_text_doodad_text + ** + ** @param const xcb_xkb_text_doodad_t *R + ** @returns xcb_xkb_counted_string_16_t * + ** + *****************************************************************************/ + +xcb_xkb_counted_string_16_t * +xcb_xkb_text_doodad_text (const xcb_xkb_text_doodad_t *R /**< */) +{ + return (xcb_xkb_counted_string_16_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** xcb_xkb_counted_string_16_t * xcb_xkb_text_doodad_font + ** + ** @param const xcb_xkb_text_doodad_t *R + ** @returns xcb_xkb_counted_string_16_t * + ** + *****************************************************************************/ + +xcb_xkb_counted_string_16_t * +xcb_xkb_text_doodad_font (const xcb_xkb_text_doodad_t *R /**< */) +{ + xcb_generic_iterator_t prev = xcb_xkb_counted_string_16_string_end(xcb_xkb_text_doodad_text(R)); + return (xcb_xkb_counted_string_16_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_counted_string_16_t, prev.index) + 0); +} + + +/***************************************************************************** + ** + ** void xcb_xkb_text_doodad_next + ** + ** @param xcb_xkb_text_doodad_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_text_doodad_next (xcb_xkb_text_doodad_iterator_t *i /**< */) +{ + xcb_xkb_text_doodad_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_text_doodad_t *)(((char *)R) + xcb_xkb_text_doodad_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_text_doodad_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_text_doodad_end + ** + ** @param xcb_xkb_text_doodad_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_text_doodad_end (xcb_xkb_text_doodad_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_text_doodad_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_indicator_doodad_next + ** + ** @param xcb_xkb_indicator_doodad_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_indicator_doodad_next (xcb_xkb_indicator_doodad_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_indicator_doodad_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_indicator_doodad_end + ** + ** @param xcb_xkb_indicator_doodad_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_indicator_doodad_end (xcb_xkb_indicator_doodad_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_xkb_logo_doodad_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_logo_doodad_t); + xcb_tmp += xcb_block_len; + /* logoName */ + xcb_block_len += xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_counted_string_16_t * xcb_xkb_logo_doodad_logo_name + ** + ** @param const xcb_xkb_logo_doodad_t *R + ** @returns xcb_xkb_counted_string_16_t * + ** + *****************************************************************************/ + +xcb_xkb_counted_string_16_t * +xcb_xkb_logo_doodad_logo_name (const xcb_xkb_logo_doodad_t *R /**< */) +{ + return (xcb_xkb_counted_string_16_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** void xcb_xkb_logo_doodad_next + ** + ** @param xcb_xkb_logo_doodad_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_logo_doodad_next (xcb_xkb_logo_doodad_iterator_t *i /**< */) +{ + xcb_xkb_logo_doodad_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_logo_doodad_t *)(((char *)R) + xcb_xkb_logo_doodad_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_logo_doodad_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_logo_doodad_end + ** + ** @param xcb_xkb_logo_doodad_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_logo_doodad_end (xcb_xkb_logo_doodad_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_logo_doodad_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_doodad_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_doodad_t); + xcb_tmp += xcb_block_len; + /* text */ + xcb_block_len += xcb_xkb_text_doodad_sizeof(xcb_tmp); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_text_doodad_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* logo */ + xcb_block_len += xcb_xkb_logo_doodad_sizeof(xcb_tmp); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_logo_doodad_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_doodad_next + ** + ** @param xcb_xkb_doodad_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_doodad_next (xcb_xkb_doodad_iterator_t *i /**< */) +{ + xcb_xkb_doodad_t *R = i->data; + /* FIXME - determine the size of the union xcb_xkb_doodad_t */ +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_doodad_end + ** + ** @param xcb_xkb_doodad_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_doodad_end (xcb_xkb_doodad_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_doodad_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_section_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_section_t *_aux = (xcb_xkb_section_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + xcb_block_len += sizeof(xcb_xkb_section_t); + xcb_tmp += xcb_block_len; + /* rows */ + for(i=0; i<_aux->nRows; i++) { + xcb_tmp_len = xcb_xkb_row_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_row_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* doodads */ + for(i=0; i<_aux->nDoodads; i++) { + xcb_tmp_len = xcb_xkb_doodad_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_doodad_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* overlays */ + for(i=0; i<_aux->nOverlays; i++) { + xcb_tmp_len = xcb_xkb_overlay_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_overlay_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_section_rows_length + ** + ** @param const xcb_xkb_section_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_section_rows_length (const xcb_xkb_section_t *R /**< */) +{ + return R->nRows; +} + + +/***************************************************************************** + ** + ** xcb_xkb_row_iterator_t xcb_xkb_section_rows_iterator + ** + ** @param const xcb_xkb_section_t *R + ** @returns xcb_xkb_row_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_row_iterator_t +xcb_xkb_section_rows_iterator (const xcb_xkb_section_t *R /**< */) +{ + xcb_xkb_row_iterator_t i; + i.data = (xcb_xkb_row_t *) (R + 1); + i.rem = R->nRows; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_section_doodads_length + ** + ** @param const xcb_xkb_section_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_section_doodads_length (const xcb_xkb_section_t *R /**< */) +{ + return R->nDoodads; +} + + +/***************************************************************************** + ** + ** xcb_xkb_doodad_iterator_t xcb_xkb_section_doodads_iterator + ** + ** @param const xcb_xkb_section_t *R + ** @returns xcb_xkb_doodad_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_doodad_iterator_t +xcb_xkb_section_doodads_iterator (const xcb_xkb_section_t *R /**< */) +{ + xcb_xkb_doodad_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_row_end(xcb_xkb_section_rows_iterator(R)); + i.data = (xcb_xkb_doodad_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_doodad_t, prev.index)); + i.rem = R->nDoodads; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_section_overlays_length + ** + ** @param const xcb_xkb_section_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_section_overlays_length (const xcb_xkb_section_t *R /**< */) +{ + return R->nOverlays; +} + + +/***************************************************************************** + ** + ** xcb_xkb_overlay_iterator_t xcb_xkb_section_overlays_iterator + ** + ** @param const xcb_xkb_section_t *R + ** @returns xcb_xkb_overlay_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_overlay_iterator_t +xcb_xkb_section_overlays_iterator (const xcb_xkb_section_t *R /**< */) +{ + xcb_xkb_overlay_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_doodad_end(xcb_xkb_section_doodads_iterator(R)); + i.data = (xcb_xkb_overlay_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_overlay_t, prev.index)); + i.rem = R->nOverlays; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_section_next + ** + ** @param xcb_xkb_section_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_section_next (xcb_xkb_section_iterator_t *i /**< */) +{ + xcb_xkb_section_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_section_t *)(((char *)R) + xcb_xkb_section_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_section_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_section_end + ** + ** @param xcb_xkb_section_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_section_end (xcb_xkb_section_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_section_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_listing_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_listing_t *_aux = (xcb_xkb_listing_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_listing_t); + xcb_tmp += xcb_block_len; + /* string */ + xcb_block_len += _aux->length * sizeof(xcb_xkb_string8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_string8_t * xcb_xkb_listing_string + ** + ** @param const xcb_xkb_listing_t *R + ** @returns xcb_xkb_string8_t * + ** + *****************************************************************************/ + +xcb_xkb_string8_t * +xcb_xkb_listing_string (const xcb_xkb_listing_t *R /**< */) +{ + return (xcb_xkb_string8_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_listing_string_length + ** + ** @param const xcb_xkb_listing_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_listing_string_length (const xcb_xkb_listing_t *R /**< */) +{ + return R->length; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_listing_string_end + ** + ** @param const xcb_xkb_listing_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_listing_string_end (const xcb_xkb_listing_t *R /**< */) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_xkb_string8_t *) (R + 1)) + (R->length); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_listing_next + ** + ** @param xcb_xkb_listing_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_listing_next (xcb_xkb_listing_iterator_t *i /**< */) +{ + xcb_xkb_listing_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_listing_t *)(((char *)R) + xcb_xkb_listing_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_listing_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_listing_end + ** + ** @param xcb_xkb_listing_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_listing_end (xcb_xkb_listing_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_listing_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_xkb_device_led_info_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_device_led_info_t *_aux = (xcb_xkb_device_led_info_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_device_led_info_t); + xcb_tmp += xcb_block_len; + /* names */ + xcb_block_len += xcb_popcount(_aux->namesPresent) * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* maps */ + xcb_block_len += xcb_popcount(_aux->mapsPresent) * sizeof(xcb_xkb_indicator_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_device_led_info_names + ** + ** @param const xcb_xkb_device_led_info_t *R + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_device_led_info_names (const xcb_xkb_device_led_info_t *R /**< */) +{ + return (xcb_atom_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_device_led_info_names_length + ** + ** @param const xcb_xkb_device_led_info_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_device_led_info_names_length (const xcb_xkb_device_led_info_t *R /**< */) +{ + return xcb_popcount(R->namesPresent); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_device_led_info_names_end + ** + ** @param const xcb_xkb_device_led_info_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_device_led_info_names_end (const xcb_xkb_device_led_info_t *R /**< */) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_atom_t *) (R + 1)) + (xcb_popcount(R->namesPresent)); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_indicator_map_t * xcb_xkb_device_led_info_maps + ** + ** @param const xcb_xkb_device_led_info_t *R + ** @returns xcb_xkb_indicator_map_t * + ** + *****************************************************************************/ + +xcb_xkb_indicator_map_t * +xcb_xkb_device_led_info_maps (const xcb_xkb_device_led_info_t *R /**< */) +{ + xcb_generic_iterator_t prev = xcb_xkb_device_led_info_names_end(R); + return (xcb_xkb_indicator_map_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_indicator_map_t, prev.index) + 0); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_device_led_info_maps_length + ** + ** @param const xcb_xkb_device_led_info_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_device_led_info_maps_length (const xcb_xkb_device_led_info_t *R /**< */) +{ + return xcb_popcount(R->mapsPresent); +} + + +/***************************************************************************** + ** + ** xcb_xkb_indicator_map_iterator_t xcb_xkb_device_led_info_maps_iterator + ** + ** @param const xcb_xkb_device_led_info_t *R + ** @returns xcb_xkb_indicator_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_indicator_map_iterator_t +xcb_xkb_device_led_info_maps_iterator (const xcb_xkb_device_led_info_t *R /**< */) +{ + xcb_xkb_indicator_map_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_device_led_info_names_end(R); + i.data = (xcb_xkb_indicator_map_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_indicator_map_t, prev.index)); + i.rem = xcb_popcount(R->mapsPresent); + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_device_led_info_next + ** + ** @param xcb_xkb_device_led_info_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_device_led_info_next (xcb_xkb_device_led_info_iterator_t *i /**< */) +{ + xcb_xkb_device_led_info_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_xkb_device_led_info_t *)(((char *)R) + xcb_xkb_device_led_info_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_xkb_device_led_info_t *) child.data; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_device_led_info_end + ** + ** @param xcb_xkb_device_led_info_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_device_led_info_end (xcb_xkb_device_led_info_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_xkb_device_led_info_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_no_action_next + ** + ** @param xcb_xkb_sa_no_action_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_no_action_next (xcb_xkb_sa_no_action_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_no_action_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_no_action_end + ** + ** @param xcb_xkb_sa_no_action_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_no_action_end (xcb_xkb_sa_no_action_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_set_mods_next + ** + ** @param xcb_xkb_sa_set_mods_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_set_mods_next (xcb_xkb_sa_set_mods_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_set_mods_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_set_mods_end + ** + ** @param xcb_xkb_sa_set_mods_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_set_mods_end (xcb_xkb_sa_set_mods_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_latch_mods_next + ** + ** @param xcb_xkb_sa_latch_mods_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_latch_mods_next (xcb_xkb_sa_latch_mods_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_latch_mods_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_latch_mods_end + ** + ** @param xcb_xkb_sa_latch_mods_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_latch_mods_end (xcb_xkb_sa_latch_mods_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_lock_mods_next + ** + ** @param xcb_xkb_sa_lock_mods_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_lock_mods_next (xcb_xkb_sa_lock_mods_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_lock_mods_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_lock_mods_end + ** + ** @param xcb_xkb_sa_lock_mods_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_lock_mods_end (xcb_xkb_sa_lock_mods_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_set_group_next + ** + ** @param xcb_xkb_sa_set_group_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_set_group_next (xcb_xkb_sa_set_group_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_set_group_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_set_group_end + ** + ** @param xcb_xkb_sa_set_group_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_set_group_end (xcb_xkb_sa_set_group_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_latch_group_next + ** + ** @param xcb_xkb_sa_latch_group_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_latch_group_next (xcb_xkb_sa_latch_group_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_latch_group_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_latch_group_end + ** + ** @param xcb_xkb_sa_latch_group_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_latch_group_end (xcb_xkb_sa_latch_group_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_lock_group_next + ** + ** @param xcb_xkb_sa_lock_group_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_lock_group_next (xcb_xkb_sa_lock_group_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_lock_group_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_lock_group_end + ** + ** @param xcb_xkb_sa_lock_group_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_lock_group_end (xcb_xkb_sa_lock_group_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_move_ptr_next + ** + ** @param xcb_xkb_sa_move_ptr_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_move_ptr_next (xcb_xkb_sa_move_ptr_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_move_ptr_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_move_ptr_end + ** + ** @param xcb_xkb_sa_move_ptr_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_move_ptr_end (xcb_xkb_sa_move_ptr_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_ptr_btn_next + ** + ** @param xcb_xkb_sa_ptr_btn_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_ptr_btn_next (xcb_xkb_sa_ptr_btn_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_ptr_btn_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_ptr_btn_end + ** + ** @param xcb_xkb_sa_ptr_btn_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_ptr_btn_end (xcb_xkb_sa_ptr_btn_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_lock_ptr_btn_next + ** + ** @param xcb_xkb_sa_lock_ptr_btn_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_lock_ptr_btn_next (xcb_xkb_sa_lock_ptr_btn_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_lock_ptr_btn_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_lock_ptr_btn_end + ** + ** @param xcb_xkb_sa_lock_ptr_btn_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_lock_ptr_btn_end (xcb_xkb_sa_lock_ptr_btn_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_set_ptr_dflt_next + ** + ** @param xcb_xkb_sa_set_ptr_dflt_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_set_ptr_dflt_next (xcb_xkb_sa_set_ptr_dflt_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_set_ptr_dflt_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_set_ptr_dflt_end + ** + ** @param xcb_xkb_sa_set_ptr_dflt_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_set_ptr_dflt_end (xcb_xkb_sa_set_ptr_dflt_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_iso_lock_next + ** + ** @param xcb_xkb_sa_iso_lock_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_iso_lock_next (xcb_xkb_sa_iso_lock_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_iso_lock_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_iso_lock_end + ** + ** @param xcb_xkb_sa_iso_lock_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_iso_lock_end (xcb_xkb_sa_iso_lock_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_terminate_next + ** + ** @param xcb_xkb_sa_terminate_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_terminate_next (xcb_xkb_sa_terminate_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_terminate_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_terminate_end + ** + ** @param xcb_xkb_sa_terminate_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_terminate_end (xcb_xkb_sa_terminate_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_switch_screen_next + ** + ** @param xcb_xkb_sa_switch_screen_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_switch_screen_next (xcb_xkb_sa_switch_screen_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_switch_screen_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_switch_screen_end + ** + ** @param xcb_xkb_sa_switch_screen_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_switch_screen_end (xcb_xkb_sa_switch_screen_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_set_controls_next + ** + ** @param xcb_xkb_sa_set_controls_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_set_controls_next (xcb_xkb_sa_set_controls_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_set_controls_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_set_controls_end + ** + ** @param xcb_xkb_sa_set_controls_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_set_controls_end (xcb_xkb_sa_set_controls_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_lock_controls_next + ** + ** @param xcb_xkb_sa_lock_controls_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_lock_controls_next (xcb_xkb_sa_lock_controls_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_lock_controls_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_lock_controls_end + ** + ** @param xcb_xkb_sa_lock_controls_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_lock_controls_end (xcb_xkb_sa_lock_controls_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_action_message_next + ** + ** @param xcb_xkb_sa_action_message_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_action_message_next (xcb_xkb_sa_action_message_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_action_message_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_action_message_end + ** + ** @param xcb_xkb_sa_action_message_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_action_message_end (xcb_xkb_sa_action_message_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_redirect_key_next + ** + ** @param xcb_xkb_sa_redirect_key_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_redirect_key_next (xcb_xkb_sa_redirect_key_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_redirect_key_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_redirect_key_end + ** + ** @param xcb_xkb_sa_redirect_key_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_redirect_key_end (xcb_xkb_sa_redirect_key_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_device_btn_next + ** + ** @param xcb_xkb_sa_device_btn_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_device_btn_next (xcb_xkb_sa_device_btn_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_device_btn_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_device_btn_end + ** + ** @param xcb_xkb_sa_device_btn_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_device_btn_end (xcb_xkb_sa_device_btn_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_lock_device_btn_next + ** + ** @param xcb_xkb_sa_lock_device_btn_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_lock_device_btn_next (xcb_xkb_sa_lock_device_btn_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_lock_device_btn_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_lock_device_btn_end + ** + ** @param xcb_xkb_sa_lock_device_btn_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_lock_device_btn_end (xcb_xkb_sa_lock_device_btn_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_sa_device_valuator_next + ** + ** @param xcb_xkb_sa_device_valuator_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_sa_device_valuator_next (xcb_xkb_sa_device_valuator_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_sa_device_valuator_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_sa_device_valuator_end + ** + ** @param xcb_xkb_sa_device_valuator_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_sa_device_valuator_end (xcb_xkb_sa_device_valuator_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** void xcb_xkb_action_next + ** + ** @param xcb_xkb_action_iterator_t *i + ** @returns void + ** + *****************************************************************************/ + +void +xcb_xkb_action_next (xcb_xkb_action_iterator_t *i /**< */) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_xkb_action_t); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_action_end + ** + ** @param xcb_xkb_action_iterator_t i + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_action_end (xcb_xkb_action_iterator_t i /**< */) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_use_extension_cookie_t xcb_xkb_use_extension + ** + ** @param xcb_connection_t *c + ** @param uint16_t wantedMajor + ** @param uint16_t wantedMinor + ** @returns xcb_xkb_use_extension_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_use_extension_cookie_t +xcb_xkb_use_extension (xcb_connection_t *c /**< */, + uint16_t wantedMajor /**< */, + uint16_t wantedMinor /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_USE_EXTENSION, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_use_extension_cookie_t xcb_ret; + xcb_xkb_use_extension_request_t xcb_out; + + xcb_out.wantedMajor = wantedMajor; + xcb_out.wantedMinor = wantedMinor; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_use_extension_cookie_t xcb_xkb_use_extension_unchecked + ** + ** @param xcb_connection_t *c + ** @param uint16_t wantedMajor + ** @param uint16_t wantedMinor + ** @returns xcb_xkb_use_extension_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_use_extension_cookie_t +xcb_xkb_use_extension_unchecked (xcb_connection_t *c /**< */, + uint16_t wantedMajor /**< */, + uint16_t wantedMinor /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_USE_EXTENSION, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_use_extension_cookie_t xcb_ret; + xcb_xkb_use_extension_request_t xcb_out; + + xcb_out.wantedMajor = wantedMajor; + xcb_out.wantedMinor = wantedMinor; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_use_extension_reply_t * xcb_xkb_use_extension_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_use_extension_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_use_extension_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_use_extension_reply_t * +xcb_xkb_use_extension_reply (xcb_connection_t *c /**< */, + xcb_xkb_use_extension_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_use_extension_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_xkb_select_events_details_serialize (void **_buffer /**< */, + uint16_t affectWhich /**< */, + uint16_t clear /**< */, + uint16_t selectAll /**< */, + const xcb_xkb_select_events_details_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[23]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectNewKeyboard */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectNewKeyboard; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.newKeyboardDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->newKeyboardDetails; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_STATE_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectState */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectState; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.stateDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->stateDetails; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectCtrls */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectCtrls; + xcb_block_len += sizeof(uint32_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint32_t); + /* xcb_xkb_select_events_details_t.ctrlDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->ctrlDetails; + xcb_block_len += sizeof(uint32_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint32_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectIndicatorState */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectIndicatorState; + xcb_block_len += sizeof(uint32_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint32_t); + /* xcb_xkb_select_events_details_t.indicatorStateDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicatorStateDetails; + xcb_block_len += sizeof(uint32_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint32_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectIndicatorMap */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectIndicatorMap; + xcb_block_len += sizeof(uint32_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint32_t); + /* xcb_xkb_select_events_details_t.indicatorMapDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicatorMapDetails; + xcb_block_len += sizeof(uint32_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint32_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NAMES_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectNames; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.namesDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->namesDetails; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectCompat */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectCompat; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_select_events_details_t.compatDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatDetails; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_BELL_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectBell */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectBell; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_select_events_details_t.bellDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->bellDetails; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACTION_MESSAGE) { + /* xcb_xkb_select_events_details_t.affectMsgDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectMsgDetails; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_select_events_details_t.msgDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->msgDetails; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectAccessX */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectAccessX; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.accessXDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->accessXDetails; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectExtDev */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectExtDev; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.extdevDetails */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->extdevDetails; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_select_events_details_unpack (const void *_buffer /**< */, + uint16_t affectWhich /**< */, + uint16_t clear /**< */, + uint16_t selectAll /**< */, + xcb_xkb_select_events_details_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectNewKeyboard */ + _aux->affectNewKeyboard = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.newKeyboardDetails */ + _aux->newKeyboardDetails = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_STATE_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectState */ + _aux->affectState = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.stateDetails */ + _aux->stateDetails = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectCtrls */ + _aux->affectCtrls = *(uint32_t *)xcb_tmp; + xcb_block_len += sizeof(uint32_t); + xcb_tmp += sizeof(uint32_t); + xcb_align_to = ALIGNOF(uint32_t); + /* xcb_xkb_select_events_details_t.ctrlDetails */ + _aux->ctrlDetails = *(uint32_t *)xcb_tmp; + xcb_block_len += sizeof(uint32_t); + xcb_tmp += sizeof(uint32_t); + xcb_align_to = ALIGNOF(uint32_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectIndicatorState */ + _aux->affectIndicatorState = *(uint32_t *)xcb_tmp; + xcb_block_len += sizeof(uint32_t); + xcb_tmp += sizeof(uint32_t); + xcb_align_to = ALIGNOF(uint32_t); + /* xcb_xkb_select_events_details_t.indicatorStateDetails */ + _aux->indicatorStateDetails = *(uint32_t *)xcb_tmp; + xcb_block_len += sizeof(uint32_t); + xcb_tmp += sizeof(uint32_t); + xcb_align_to = ALIGNOF(uint32_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectIndicatorMap */ + _aux->affectIndicatorMap = *(uint32_t *)xcb_tmp; + xcb_block_len += sizeof(uint32_t); + xcb_tmp += sizeof(uint32_t); + xcb_align_to = ALIGNOF(uint32_t); + /* xcb_xkb_select_events_details_t.indicatorMapDetails */ + _aux->indicatorMapDetails = *(uint32_t *)xcb_tmp; + xcb_block_len += sizeof(uint32_t); + xcb_tmp += sizeof(uint32_t); + xcb_align_to = ALIGNOF(uint32_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NAMES_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectNames */ + _aux->affectNames = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.namesDetails */ + _aux->namesDetails = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectCompat */ + _aux->affectCompat = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_select_events_details_t.compatDetails */ + _aux->compatDetails = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_BELL_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectBell */ + _aux->affectBell = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_select_events_details_t.bellDetails */ + _aux->bellDetails = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACTION_MESSAGE) { + /* xcb_xkb_select_events_details_t.affectMsgDetails */ + _aux->affectMsgDetails = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_select_events_details_t.msgDetails */ + _aux->msgDetails = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectAccessX */ + _aux->affectAccessX = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.accessXDetails */ + _aux->accessXDetails = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + } + if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY) { + /* xcb_xkb_select_events_details_t.affectExtDev */ + _aux->affectExtDev = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_select_events_details_t.extdevDetails */ + _aux->extdevDetails = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +int +xcb_xkb_select_events_details_sizeof (const void *_buffer /**< */, + uint16_t affectWhich /**< */, + uint16_t clear /**< */, + uint16_t selectAll /**< */) +{ + xcb_xkb_select_events_details_t _aux; + return xcb_xkb_select_events_details_unpack(_buffer, affectWhich, clear, selectAll, &_aux); +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_select_events_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t affectWhich + ** @param uint16_t clear + ** @param uint16_t selectAll + ** @param uint16_t affectMap + ** @param uint16_t map + ** @param const void *details + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_select_events_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t affectWhich /**< */, + uint16_t clear /**< */, + uint16_t selectAll /**< */, + uint16_t affectMap /**< */, + uint16_t map /**< */, + const void *details /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SELECT_EVENTS, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_select_events_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.affectWhich = affectWhich; + xcb_out.clear = clear; + xcb_out.selectAll = selectAll; + xcb_out.affectMap = affectMap; + xcb_out.map = map; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_select_events_details_t details */ + xcb_parts[4].iov_base = (char *) details; + xcb_parts[4].iov_len = + xcb_xkb_select_events_details_sizeof (details, affectWhich, clear, selectAll); + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_select_events + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t affectWhich + ** @param uint16_t clear + ** @param uint16_t selectAll + ** @param uint16_t affectMap + ** @param uint16_t map + ** @param const void *details + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_select_events (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t affectWhich /**< */, + uint16_t clear /**< */, + uint16_t selectAll /**< */, + uint16_t affectMap /**< */, + uint16_t map /**< */, + const void *details /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SELECT_EVENTS, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_select_events_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.affectWhich = affectWhich; + xcb_out.clear = clear; + xcb_out.selectAll = selectAll; + xcb_out.affectMap = affectMap; + xcb_out.map = map; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_select_events_details_t details */ + xcb_parts[4].iov_base = (char *) details; + xcb_parts[4].iov_len = + xcb_xkb_select_events_details_sizeof (details, affectWhich, clear, selectAll); + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_select_events_aux_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t affectWhich + ** @param uint16_t clear + ** @param uint16_t selectAll + ** @param uint16_t affectMap + ** @param uint16_t map + ** @param const xcb_xkb_select_events_details_t *details + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_select_events_aux_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t affectWhich /**< */, + uint16_t clear /**< */, + uint16_t selectAll /**< */, + uint16_t affectMap /**< */, + uint16_t map /**< */, + const xcb_xkb_select_events_details_t *details /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SELECT_EVENTS, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_select_events_request_t xcb_out; + void *xcb_aux0 = 0; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.affectWhich = affectWhich; + xcb_out.clear = clear; + xcb_out.selectAll = selectAll; + xcb_out.affectMap = affectMap; + xcb_out.map = map; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_select_events_details_t details */ + xcb_parts[4].iov_len = + xcb_xkb_select_events_details_serialize (&xcb_aux0, affectWhich, clear, selectAll, details); + xcb_parts[4].iov_base = xcb_aux0; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + free(xcb_aux0); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_select_events_aux + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t affectWhich + ** @param uint16_t clear + ** @param uint16_t selectAll + ** @param uint16_t affectMap + ** @param uint16_t map + ** @param const xcb_xkb_select_events_details_t *details + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_select_events_aux (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t affectWhich /**< */, + uint16_t clear /**< */, + uint16_t selectAll /**< */, + uint16_t affectMap /**< */, + uint16_t map /**< */, + const xcb_xkb_select_events_details_t *details /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SELECT_EVENTS, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_select_events_request_t xcb_out; + void *xcb_aux0 = 0; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.affectWhich = affectWhich; + xcb_out.clear = clear; + xcb_out.selectAll = selectAll; + xcb_out.affectMap = affectMap; + xcb_out.map = map; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_select_events_details_t details */ + xcb_parts[4].iov_len = + xcb_xkb_select_events_details_serialize (&xcb_aux0, affectWhich, clear, selectAll, details); + xcb_parts[4].iov_base = xcb_aux0; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + free(xcb_aux0); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_bell_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param xcb_xkb_bell_class_spec_t bellClass + ** @param xcb_xkb_id_spec_t bellID + ** @param int8_t percent + ** @param uint8_t forceSound + ** @param uint8_t eventOnly + ** @param int16_t pitch + ** @param int16_t duration + ** @param xcb_atom_t name + ** @param xcb_window_t window + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_bell_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + xcb_xkb_bell_class_spec_t bellClass /**< */, + xcb_xkb_id_spec_t bellID /**< */, + int8_t percent /**< */, + uint8_t forceSound /**< */, + uint8_t eventOnly /**< */, + int16_t pitch /**< */, + int16_t duration /**< */, + xcb_atom_t name /**< */, + xcb_window_t window /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_BELL, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_bell_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.bellClass = bellClass; + xcb_out.bellID = bellID; + xcb_out.percent = percent; + xcb_out.forceSound = forceSound; + xcb_out.eventOnly = eventOnly; + xcb_out.pad0 = 0; + xcb_out.pitch = pitch; + xcb_out.duration = duration; + memset(xcb_out.pad1, 0, 2); + xcb_out.name = name; + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_bell + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param xcb_xkb_bell_class_spec_t bellClass + ** @param xcb_xkb_id_spec_t bellID + ** @param int8_t percent + ** @param uint8_t forceSound + ** @param uint8_t eventOnly + ** @param int16_t pitch + ** @param int16_t duration + ** @param xcb_atom_t name + ** @param xcb_window_t window + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_bell (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + xcb_xkb_bell_class_spec_t bellClass /**< */, + xcb_xkb_id_spec_t bellID /**< */, + int8_t percent /**< */, + uint8_t forceSound /**< */, + uint8_t eventOnly /**< */, + int16_t pitch /**< */, + int16_t duration /**< */, + xcb_atom_t name /**< */, + xcb_window_t window /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_BELL, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_bell_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.bellClass = bellClass; + xcb_out.bellID = bellID; + xcb_out.percent = percent; + xcb_out.forceSound = forceSound; + xcb_out.eventOnly = eventOnly; + xcb_out.pad0 = 0; + xcb_out.pitch = pitch; + xcb_out.duration = duration; + memset(xcb_out.pad1, 0, 2); + xcb_out.name = name; + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_state_cookie_t xcb_xkb_get_state + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @returns xcb_xkb_get_state_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_state_cookie_t +xcb_xkb_get_state (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_STATE, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_state_cookie_t xcb_ret; + xcb_xkb_get_state_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_state_cookie_t xcb_xkb_get_state_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @returns xcb_xkb_get_state_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_state_cookie_t +xcb_xkb_get_state_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_STATE, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_state_cookie_t xcb_ret; + xcb_xkb_get_state_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_state_reply_t * xcb_xkb_get_state_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_state_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_state_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_state_reply_t * +xcb_xkb_get_state_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_state_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_latch_lock_state_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t affectModLocks + ** @param uint8_t modLocks + ** @param uint8_t lockGroup + ** @param uint8_t groupLock + ** @param uint8_t affectModLatches + ** @param uint8_t latchGroup + ** @param uint16_t groupLatch + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_latch_lock_state_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t affectModLocks /**< */, + uint8_t modLocks /**< */, + uint8_t lockGroup /**< */, + uint8_t groupLock /**< */, + uint8_t affectModLatches /**< */, + uint8_t latchGroup /**< */, + uint16_t groupLatch /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_LATCH_LOCK_STATE, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_latch_lock_state_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.affectModLocks = affectModLocks; + xcb_out.modLocks = modLocks; + xcb_out.lockGroup = lockGroup; + xcb_out.groupLock = groupLock; + xcb_out.affectModLatches = affectModLatches; + xcb_out.pad0 = 0; + xcb_out.latchGroup = latchGroup; + xcb_out.groupLatch = groupLatch; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_latch_lock_state + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t affectModLocks + ** @param uint8_t modLocks + ** @param uint8_t lockGroup + ** @param uint8_t groupLock + ** @param uint8_t affectModLatches + ** @param uint8_t latchGroup + ** @param uint16_t groupLatch + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_latch_lock_state (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t affectModLocks /**< */, + uint8_t modLocks /**< */, + uint8_t lockGroup /**< */, + uint8_t groupLock /**< */, + uint8_t affectModLatches /**< */, + uint8_t latchGroup /**< */, + uint16_t groupLatch /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_LATCH_LOCK_STATE, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_latch_lock_state_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.affectModLocks = affectModLocks; + xcb_out.modLocks = modLocks; + xcb_out.lockGroup = lockGroup; + xcb_out.groupLock = groupLock; + xcb_out.affectModLatches = affectModLatches; + xcb_out.pad0 = 0; + xcb_out.latchGroup = latchGroup; + xcb_out.groupLatch = groupLatch; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_controls_cookie_t xcb_xkb_get_controls + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @returns xcb_xkb_get_controls_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_controls_cookie_t +xcb_xkb_get_controls (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_CONTROLS, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_controls_cookie_t xcb_ret; + xcb_xkb_get_controls_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_controls_cookie_t xcb_xkb_get_controls_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @returns xcb_xkb_get_controls_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_controls_cookie_t +xcb_xkb_get_controls_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_CONTROLS, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_controls_cookie_t xcb_ret; + xcb_xkb_get_controls_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_controls_reply_t * xcb_xkb_get_controls_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_controls_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_controls_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_controls_reply_t * +xcb_xkb_get_controls_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_controls_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_get_controls_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_controls_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t affectInternalRealMods + ** @param uint8_t internalRealMods + ** @param uint8_t affectIgnoreLockRealMods + ** @param uint8_t ignoreLockRealMods + ** @param uint16_t affectInternalVirtualMods + ** @param uint16_t internalVirtualMods + ** @param uint16_t affectIgnoreLockVirtualMods + ** @param uint16_t ignoreLockVirtualMods + ** @param uint8_t mouseKeysDfltBtn + ** @param uint8_t groupsWrap + ** @param xcb_xkb_ax_option_t accessXOptions + ** @param uint32_t affectEnabledControls + ** @param uint32_t enabledControls + ** @param uint32_t changeControls + ** @param uint16_t repeatDelay + ** @param uint16_t repeatInterval + ** @param uint16_t slowKeysDelay + ** @param uint16_t debounceDelay + ** @param uint16_t mouseKeysDelay + ** @param uint16_t mouseKeysInterval + ** @param uint16_t mouseKeysTimeToMax + ** @param uint16_t mouseKeysMaxSpeed + ** @param int16_t mouseKeysCurve + ** @param uint16_t accessXTimeout + ** @param uint32_t accessXTimeoutMask + ** @param uint32_t accessXTimeoutValues + ** @param xcb_xkb_ax_option_t accessXTimeoutOptionsMask + ** @param xcb_xkb_ax_option_t accessXTimeoutOptionsValues + ** @param const uint8_t *perKeyRepeat + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_controls_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t affectInternalRealMods /**< */, + uint8_t internalRealMods /**< */, + uint8_t affectIgnoreLockRealMods /**< */, + uint8_t ignoreLockRealMods /**< */, + uint16_t affectInternalVirtualMods /**< */, + uint16_t internalVirtualMods /**< */, + uint16_t affectIgnoreLockVirtualMods /**< */, + uint16_t ignoreLockVirtualMods /**< */, + uint8_t mouseKeysDfltBtn /**< */, + uint8_t groupsWrap /**< */, + xcb_xkb_ax_option_t accessXOptions /**< */, + uint32_t affectEnabledControls /**< */, + uint32_t enabledControls /**< */, + uint32_t changeControls /**< */, + uint16_t repeatDelay /**< */, + uint16_t repeatInterval /**< */, + uint16_t slowKeysDelay /**< */, + uint16_t debounceDelay /**< */, + uint16_t mouseKeysDelay /**< */, + uint16_t mouseKeysInterval /**< */, + uint16_t mouseKeysTimeToMax /**< */, + uint16_t mouseKeysMaxSpeed /**< */, + int16_t mouseKeysCurve /**< */, + uint16_t accessXTimeout /**< */, + uint32_t accessXTimeoutMask /**< */, + uint32_t accessXTimeoutValues /**< */, + xcb_xkb_ax_option_t accessXTimeoutOptionsMask /**< */, + xcb_xkb_ax_option_t accessXTimeoutOptionsValues /**< */, + const uint8_t *perKeyRepeat /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_CONTROLS, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_controls_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.affectInternalRealMods = affectInternalRealMods; + xcb_out.internalRealMods = internalRealMods; + xcb_out.affectIgnoreLockRealMods = affectIgnoreLockRealMods; + xcb_out.ignoreLockRealMods = ignoreLockRealMods; + xcb_out.affectInternalVirtualMods = affectInternalVirtualMods; + xcb_out.internalVirtualMods = internalVirtualMods; + xcb_out.affectIgnoreLockVirtualMods = affectIgnoreLockVirtualMods; + xcb_out.ignoreLockVirtualMods = ignoreLockVirtualMods; + xcb_out.mouseKeysDfltBtn = mouseKeysDfltBtn; + xcb_out.groupsWrap = groupsWrap; + xcb_out.accessXOptions = accessXOptions; + memset(xcb_out.pad0, 0, 2); + xcb_out.affectEnabledControls = affectEnabledControls; + xcb_out.enabledControls = enabledControls; + xcb_out.changeControls = changeControls; + xcb_out.repeatDelay = repeatDelay; + xcb_out.repeatInterval = repeatInterval; + xcb_out.slowKeysDelay = slowKeysDelay; + xcb_out.debounceDelay = debounceDelay; + xcb_out.mouseKeysDelay = mouseKeysDelay; + xcb_out.mouseKeysInterval = mouseKeysInterval; + xcb_out.mouseKeysTimeToMax = mouseKeysTimeToMax; + xcb_out.mouseKeysMaxSpeed = mouseKeysMaxSpeed; + xcb_out.mouseKeysCurve = mouseKeysCurve; + xcb_out.accessXTimeout = accessXTimeout; + xcb_out.accessXTimeoutMask = accessXTimeoutMask; + xcb_out.accessXTimeoutValues = accessXTimeoutValues; + xcb_out.accessXTimeoutOptionsMask = accessXTimeoutOptionsMask; + xcb_out.accessXTimeoutOptionsValues = accessXTimeoutOptionsValues; + memcpy(xcb_out.perKeyRepeat, perKeyRepeat, 32); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_controls + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t affectInternalRealMods + ** @param uint8_t internalRealMods + ** @param uint8_t affectIgnoreLockRealMods + ** @param uint8_t ignoreLockRealMods + ** @param uint16_t affectInternalVirtualMods + ** @param uint16_t internalVirtualMods + ** @param uint16_t affectIgnoreLockVirtualMods + ** @param uint16_t ignoreLockVirtualMods + ** @param uint8_t mouseKeysDfltBtn + ** @param uint8_t groupsWrap + ** @param xcb_xkb_ax_option_t accessXOptions + ** @param uint32_t affectEnabledControls + ** @param uint32_t enabledControls + ** @param uint32_t changeControls + ** @param uint16_t repeatDelay + ** @param uint16_t repeatInterval + ** @param uint16_t slowKeysDelay + ** @param uint16_t debounceDelay + ** @param uint16_t mouseKeysDelay + ** @param uint16_t mouseKeysInterval + ** @param uint16_t mouseKeysTimeToMax + ** @param uint16_t mouseKeysMaxSpeed + ** @param int16_t mouseKeysCurve + ** @param uint16_t accessXTimeout + ** @param uint32_t accessXTimeoutMask + ** @param uint32_t accessXTimeoutValues + ** @param xcb_xkb_ax_option_t accessXTimeoutOptionsMask + ** @param xcb_xkb_ax_option_t accessXTimeoutOptionsValues + ** @param const uint8_t *perKeyRepeat + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_controls (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t affectInternalRealMods /**< */, + uint8_t internalRealMods /**< */, + uint8_t affectIgnoreLockRealMods /**< */, + uint8_t ignoreLockRealMods /**< */, + uint16_t affectInternalVirtualMods /**< */, + uint16_t internalVirtualMods /**< */, + uint16_t affectIgnoreLockVirtualMods /**< */, + uint16_t ignoreLockVirtualMods /**< */, + uint8_t mouseKeysDfltBtn /**< */, + uint8_t groupsWrap /**< */, + xcb_xkb_ax_option_t accessXOptions /**< */, + uint32_t affectEnabledControls /**< */, + uint32_t enabledControls /**< */, + uint32_t changeControls /**< */, + uint16_t repeatDelay /**< */, + uint16_t repeatInterval /**< */, + uint16_t slowKeysDelay /**< */, + uint16_t debounceDelay /**< */, + uint16_t mouseKeysDelay /**< */, + uint16_t mouseKeysInterval /**< */, + uint16_t mouseKeysTimeToMax /**< */, + uint16_t mouseKeysMaxSpeed /**< */, + int16_t mouseKeysCurve /**< */, + uint16_t accessXTimeout /**< */, + uint32_t accessXTimeoutMask /**< */, + uint32_t accessXTimeoutValues /**< */, + xcb_xkb_ax_option_t accessXTimeoutOptionsMask /**< */, + xcb_xkb_ax_option_t accessXTimeoutOptionsValues /**< */, + const uint8_t *perKeyRepeat /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_CONTROLS, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_controls_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.affectInternalRealMods = affectInternalRealMods; + xcb_out.internalRealMods = internalRealMods; + xcb_out.affectIgnoreLockRealMods = affectIgnoreLockRealMods; + xcb_out.ignoreLockRealMods = ignoreLockRealMods; + xcb_out.affectInternalVirtualMods = affectInternalVirtualMods; + xcb_out.internalVirtualMods = internalVirtualMods; + xcb_out.affectIgnoreLockVirtualMods = affectIgnoreLockVirtualMods; + xcb_out.ignoreLockVirtualMods = ignoreLockVirtualMods; + xcb_out.mouseKeysDfltBtn = mouseKeysDfltBtn; + xcb_out.groupsWrap = groupsWrap; + xcb_out.accessXOptions = accessXOptions; + memset(xcb_out.pad0, 0, 2); + xcb_out.affectEnabledControls = affectEnabledControls; + xcb_out.enabledControls = enabledControls; + xcb_out.changeControls = changeControls; + xcb_out.repeatDelay = repeatDelay; + xcb_out.repeatInterval = repeatInterval; + xcb_out.slowKeysDelay = slowKeysDelay; + xcb_out.debounceDelay = debounceDelay; + xcb_out.mouseKeysDelay = mouseKeysDelay; + xcb_out.mouseKeysInterval = mouseKeysInterval; + xcb_out.mouseKeysTimeToMax = mouseKeysTimeToMax; + xcb_out.mouseKeysMaxSpeed = mouseKeysMaxSpeed; + xcb_out.mouseKeysCurve = mouseKeysCurve; + xcb_out.accessXTimeout = accessXTimeout; + xcb_out.accessXTimeoutMask = accessXTimeoutMask; + xcb_out.accessXTimeoutValues = accessXTimeoutValues; + xcb_out.accessXTimeoutOptionsMask = accessXTimeoutOptionsMask; + xcb_out.accessXTimeoutOptionsValues = accessXTimeoutOptionsValues; + memcpy(xcb_out.perKeyRepeat, perKeyRepeat, 32); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_types_rtrn_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_types_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->nTypes; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_type_iterator_t xcb_xkb_get_map_map_types_rtrn_iterator + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_xkb_key_type_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_type_iterator_t +xcb_xkb_get_map_map_types_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_xkb_key_type_iterator_t i; + i.data = /* map */ S->types_rtrn; + i.rem = R->nTypes; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_syms_rtrn_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_syms_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->nKeySyms; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_map_map_syms_rtrn_iterator + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_xkb_key_sym_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_sym_map_iterator_t +xcb_xkb_get_map_map_syms_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_xkb_key_sym_map_iterator_t i; + i.data = /* map */ S->syms_rtrn; + i.rem = R->nKeySyms; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_map_map_acts_rtrn_count + ** + ** @param const xcb_xkb_get_map_map_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_map_map_acts_rtrn_count (const xcb_xkb_get_map_map_t *S /**< */) +{ + return /* map */ S->acts_rtrn_count; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_acts_rtrn_count_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_acts_rtrn_count_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->nKeyActions; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_map_map_acts_rtrn_count_end + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_map_map_acts_rtrn_count_end (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* map */ S->acts_rtrn_count + R->nKeyActions; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_t * xcb_xkb_get_map_map_acts_rtrn_acts + ** + ** @param const xcb_xkb_get_map_map_t *S + ** @returns xcb_xkb_action_t * + ** + *****************************************************************************/ + +xcb_xkb_action_t * +xcb_xkb_get_map_map_acts_rtrn_acts (const xcb_xkb_get_map_map_t *S /**< */) +{ + return /* map */ S->acts_rtrn_acts; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_acts_rtrn_acts_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_acts_rtrn_acts_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->totalActions; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_iterator_t xcb_xkb_get_map_map_acts_rtrn_acts_iterator + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_xkb_action_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_action_iterator_t +xcb_xkb_get_map_map_acts_rtrn_acts_iterator (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_xkb_action_iterator_t i; + i.data = /* map */ S->acts_rtrn_acts; + i.rem = R->totalActions; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_t * xcb_xkb_get_map_map_behaviors_rtrn + ** + ** @param const xcb_xkb_get_map_map_t *S + ** @returns xcb_xkb_set_behavior_t * + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_t * +xcb_xkb_get_map_map_behaviors_rtrn (const xcb_xkb_get_map_map_t *S /**< */) +{ + return /* map */ S->behaviors_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_behaviors_rtrn_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_behaviors_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->totalKeyBehaviors; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_map_map_behaviors_rtrn_iterator + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_xkb_set_behavior_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_iterator_t +xcb_xkb_get_map_map_behaviors_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_xkb_set_behavior_iterator_t i; + i.data = /* map */ S->behaviors_rtrn; + i.rem = R->totalKeyBehaviors; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_map_map_vmods_rtrn + ** + ** @param const xcb_xkb_get_map_map_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_map_map_vmods_rtrn (const xcb_xkb_get_map_map_t *S /**< */) +{ + return /* map */ S->vmods_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_vmods_rtrn_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_vmods_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->nVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_map_map_vmods_rtrn_end + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_map_map_vmods_rtrn_end (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* map */ S->vmods_rtrn + R->nVModMapKeys; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_t * xcb_xkb_get_map_map_explicit_rtrn + ** + ** @param const xcb_xkb_get_map_map_t *S + ** @returns xcb_xkb_set_explicit_t * + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_t * +xcb_xkb_get_map_map_explicit_rtrn (const xcb_xkb_get_map_map_t *S /**< */) +{ + return /* map */ S->explicit_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_explicit_rtrn_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_explicit_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->totalKeyExplicit; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_map_map_explicit_rtrn_iterator + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_xkb_set_explicit_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_iterator_t +xcb_xkb_get_map_map_explicit_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_xkb_set_explicit_iterator_t i; + i.data = /* map */ S->explicit_rtrn; + i.rem = R->totalKeyExplicit; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_t * xcb_xkb_get_map_map_modmap_rtrn + ** + ** @param const xcb_xkb_get_map_map_t *S + ** @returns xcb_xkb_key_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_t * +xcb_xkb_get_map_map_modmap_rtrn (const xcb_xkb_get_map_map_t *S /**< */) +{ + return /* map */ S->modmap_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_modmap_rtrn_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_modmap_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->totalModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_map_map_modmap_rtrn_iterator + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_xkb_key_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_iterator_t +xcb_xkb_get_map_map_modmap_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_xkb_key_mod_map_iterator_t i; + i.data = /* map */ S->modmap_rtrn; + i.rem = R->totalModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_map_map_vmodmap_rtrn + ** + ** @param const xcb_xkb_get_map_map_t *S + ** @returns xcb_xkb_key_v_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_t * +xcb_xkb_get_map_map_vmodmap_rtrn (const xcb_xkb_get_map_map_t *S /**< */) +{ + return /* map */ S->vmodmap_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_map_map_vmodmap_rtrn_length + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_map_map_vmodmap_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + return R->totalVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_map_map_vmodmap_rtrn_iterator + ** + ** @param const xcb_xkb_get_map_map_t *R + ** @returns xcb_xkb_key_v_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_iterator_t +xcb_xkb_get_map_map_vmodmap_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, + const xcb_xkb_get_map_map_t *S /**< */) +{ + xcb_xkb_key_v_mod_map_iterator_t i; + i.data = /* map */ S->vmodmap_rtrn; + i.rem = R->totalVModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + +int +xcb_xkb_get_map_map_serialize (void **_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + const xcb_xkb_get_map_map_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[19]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types_rtrn; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->types_rtrn; + for(i=0; i<nTypes; i++) { + xcb_block_len = xcb_xkb_key_type_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->syms_rtrn; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->syms_rtrn; + for(i=0; i<nKeySyms; i++) { + xcb_block_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_count */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_count; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_acts */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_acts; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors_rtrn; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods_rtrn; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit_rtrn; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap_rtrn; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap_rtrn; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_get_map_map_unpack (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + xcb_xkb_get_map_map_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types_rtrn */ + _aux->types_rtrn = (xcb_xkb_key_type_t *)xcb_tmp; + for(i=0; i<nTypes; i++) { + xcb_tmp_len = xcb_xkb_key_type_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms_rtrn */ + _aux->syms_rtrn = (xcb_xkb_key_sym_map_t *)xcb_tmp; + for(i=0; i<nKeySyms; i++) { + xcb_tmp_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_count */ + _aux->acts_rtrn_count = (uint8_t *)xcb_tmp; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_acts */ + _aux->acts_rtrn_acts = (xcb_xkb_action_t *)xcb_tmp; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors_rtrn */ + _aux->behaviors_rtrn = (xcb_xkb_set_behavior_t *)xcb_tmp; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods_rtrn */ + _aux->vmods_rtrn = (uint8_t *)xcb_tmp; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit_rtrn */ + _aux->explicit_rtrn = (xcb_xkb_set_explicit_t *)xcb_tmp; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap_rtrn */ + _aux->modmap_rtrn = (xcb_xkb_key_mod_map_t *)xcb_tmp; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap_rtrn */ + _aux->vmodmap_rtrn = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +int +xcb_xkb_get_map_map_sizeof (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */) +{ + xcb_xkb_get_map_map_t _aux; + return xcb_xkb_get_map_map_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_map_cookie_t xcb_xkb_get_map + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t full + ** @param uint16_t partial + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param xcb_keycode_t firstKeySym + ** @param uint8_t nKeySyms + ** @param xcb_keycode_t firstKeyAction + ** @param uint8_t nKeyActions + ** @param xcb_keycode_t firstKeyBehavior + ** @param uint8_t nKeyBehaviors + ** @param uint16_t virtualMods + ** @param xcb_keycode_t firstKeyExplicit + ** @param uint8_t nKeyExplicit + ** @param xcb_keycode_t firstModMapKey + ** @param uint8_t nModMapKeys + ** @param xcb_keycode_t firstVModMapKey + ** @param uint8_t nVModMapKeys + ** @returns xcb_xkb_get_map_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_map_cookie_t +xcb_xkb_get_map (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t full /**< */, + uint16_t partial /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + xcb_keycode_t firstKeySym /**< */, + uint8_t nKeySyms /**< */, + xcb_keycode_t firstKeyAction /**< */, + uint8_t nKeyActions /**< */, + xcb_keycode_t firstKeyBehavior /**< */, + uint8_t nKeyBehaviors /**< */, + uint16_t virtualMods /**< */, + xcb_keycode_t firstKeyExplicit /**< */, + uint8_t nKeyExplicit /**< */, + xcb_keycode_t firstModMapKey /**< */, + uint8_t nModMapKeys /**< */, + xcb_keycode_t firstVModMapKey /**< */, + uint8_t nVModMapKeys /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_MAP, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_map_cookie_t xcb_ret; + xcb_xkb_get_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.full = full; + xcb_out.partial = partial; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKeySym = firstKeySym; + xcb_out.nKeySyms = nKeySyms; + xcb_out.firstKeyAction = firstKeyAction; + xcb_out.nKeyActions = nKeyActions; + xcb_out.firstKeyBehavior = firstKeyBehavior; + xcb_out.nKeyBehaviors = nKeyBehaviors; + xcb_out.virtualMods = virtualMods; + xcb_out.firstKeyExplicit = firstKeyExplicit; + xcb_out.nKeyExplicit = nKeyExplicit; + xcb_out.firstModMapKey = firstModMapKey; + xcb_out.nModMapKeys = nModMapKeys; + xcb_out.firstVModMapKey = firstVModMapKey; + xcb_out.nVModMapKeys = nVModMapKeys; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_map_cookie_t xcb_xkb_get_map_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t full + ** @param uint16_t partial + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param xcb_keycode_t firstKeySym + ** @param uint8_t nKeySyms + ** @param xcb_keycode_t firstKeyAction + ** @param uint8_t nKeyActions + ** @param xcb_keycode_t firstKeyBehavior + ** @param uint8_t nKeyBehaviors + ** @param uint16_t virtualMods + ** @param xcb_keycode_t firstKeyExplicit + ** @param uint8_t nKeyExplicit + ** @param xcb_keycode_t firstModMapKey + ** @param uint8_t nModMapKeys + ** @param xcb_keycode_t firstVModMapKey + ** @param uint8_t nVModMapKeys + ** @returns xcb_xkb_get_map_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_map_cookie_t +xcb_xkb_get_map_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t full /**< */, + uint16_t partial /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + xcb_keycode_t firstKeySym /**< */, + uint8_t nKeySyms /**< */, + xcb_keycode_t firstKeyAction /**< */, + uint8_t nKeyActions /**< */, + xcb_keycode_t firstKeyBehavior /**< */, + uint8_t nKeyBehaviors /**< */, + uint16_t virtualMods /**< */, + xcb_keycode_t firstKeyExplicit /**< */, + uint8_t nKeyExplicit /**< */, + xcb_keycode_t firstModMapKey /**< */, + uint8_t nModMapKeys /**< */, + xcb_keycode_t firstVModMapKey /**< */, + uint8_t nVModMapKeys /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_MAP, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_map_cookie_t xcb_ret; + xcb_xkb_get_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.full = full; + xcb_out.partial = partial; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKeySym = firstKeySym; + xcb_out.nKeySyms = nKeySyms; + xcb_out.firstKeyAction = firstKeyAction; + xcb_out.nKeyActions = nKeyActions; + xcb_out.firstKeyBehavior = firstKeyBehavior; + xcb_out.nKeyBehaviors = nKeyBehaviors; + xcb_out.virtualMods = virtualMods; + xcb_out.firstKeyExplicit = firstKeyExplicit; + xcb_out.nKeyExplicit = nKeyExplicit; + xcb_out.firstModMapKey = firstModMapKey; + xcb_out.nModMapKeys = nModMapKeys; + xcb_out.firstVModMapKey = firstVModMapKey; + xcb_out.nVModMapKeys = nVModMapKeys; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_map_map_t * xcb_xkb_get_map_map + ** + ** @param const xcb_xkb_get_map_reply_t *R + ** @returns xcb_xkb_get_map_map_t * + ** + *****************************************************************************/ + +void * +xcb_xkb_get_map_map (const xcb_xkb_get_map_reply_t *R /**< */) +{ + return (void *) (R + 1); +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_map_reply_t * xcb_xkb_get_map_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_map_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_map_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_map_reply_t * +xcb_xkb_get_map_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_map_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_get_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_types_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_types_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->nTypes; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_key_type_iterator_t xcb_xkb_set_map_values_types_iterator + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_xkb_set_key_type_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_key_type_iterator_t +xcb_xkb_set_map_values_types_iterator (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_xkb_set_key_type_iterator_t i; + i.data = /* values */ S->types; + i.rem = R->nTypes; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_syms_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_syms_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->nKeySyms; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_set_map_values_syms_iterator + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_xkb_key_sym_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_sym_map_iterator_t +xcb_xkb_set_map_values_syms_iterator (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_xkb_key_sym_map_iterator_t i; + i.data = /* values */ S->syms; + i.rem = R->nKeySyms; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_set_map_values_actions_count + ** + ** @param const xcb_xkb_set_map_values_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_set_map_values_actions_count (const xcb_xkb_set_map_values_t *S /**< */) +{ + return /* values */ S->actionsCount; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_actions_count_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_actions_count_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->nKeyActions; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_map_values_actions_count_end + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_map_values_actions_count_end (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->actionsCount + R->nKeyActions; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_t * xcb_xkb_set_map_values_actions + ** + ** @param const xcb_xkb_set_map_values_t *S + ** @returns xcb_xkb_action_t * + ** + *****************************************************************************/ + +xcb_xkb_action_t * +xcb_xkb_set_map_values_actions (const xcb_xkb_set_map_values_t *S /**< */) +{ + return /* values */ S->actions; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_actions_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_actions_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->totalActions; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_iterator_t xcb_xkb_set_map_values_actions_iterator + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_xkb_action_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_action_iterator_t +xcb_xkb_set_map_values_actions_iterator (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_xkb_action_iterator_t i; + i.data = /* values */ S->actions; + i.rem = R->totalActions; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_t * xcb_xkb_set_map_values_behaviors + ** + ** @param const xcb_xkb_set_map_values_t *S + ** @returns xcb_xkb_set_behavior_t * + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_t * +xcb_xkb_set_map_values_behaviors (const xcb_xkb_set_map_values_t *S /**< */) +{ + return /* values */ S->behaviors; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_behaviors_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_behaviors_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->totalKeyBehaviors; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_iterator_t xcb_xkb_set_map_values_behaviors_iterator + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_xkb_set_behavior_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_iterator_t +xcb_xkb_set_map_values_behaviors_iterator (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_xkb_set_behavior_iterator_t i; + i.data = /* values */ S->behaviors; + i.rem = R->totalKeyBehaviors; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_set_map_values_vmods + ** + ** @param const xcb_xkb_set_map_values_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_set_map_values_vmods (const xcb_xkb_set_map_values_t *S /**< */) +{ + return /* values */ S->vmods; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_vmods_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_vmods_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->nVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_map_values_vmods_end + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_map_values_vmods_end (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->vmods + R->nVModMapKeys; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_t * xcb_xkb_set_map_values_explicit + ** + ** @param const xcb_xkb_set_map_values_t *S + ** @returns xcb_xkb_set_explicit_t * + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_t * +xcb_xkb_set_map_values_explicit (const xcb_xkb_set_map_values_t *S /**< */) +{ + return /* values */ S->explicit; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_explicit_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_explicit_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->totalKeyExplicit; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_iterator_t xcb_xkb_set_map_values_explicit_iterator + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_xkb_set_explicit_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_iterator_t +xcb_xkb_set_map_values_explicit_iterator (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_xkb_set_explicit_iterator_t i; + i.data = /* values */ S->explicit; + i.rem = R->totalKeyExplicit; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_t * xcb_xkb_set_map_values_modmap + ** + ** @param const xcb_xkb_set_map_values_t *S + ** @returns xcb_xkb_key_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_t * +xcb_xkb_set_map_values_modmap (const xcb_xkb_set_map_values_t *S /**< */) +{ + return /* values */ S->modmap; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_modmap_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_modmap_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->totalModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_set_map_values_modmap_iterator + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_xkb_key_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_iterator_t +xcb_xkb_set_map_values_modmap_iterator (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_xkb_key_mod_map_iterator_t i; + i.data = /* values */ S->modmap; + i.rem = R->totalModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_t * xcb_xkb_set_map_values_vmodmap + ** + ** @param const xcb_xkb_set_map_values_t *S + ** @returns xcb_xkb_key_v_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_t * +xcb_xkb_set_map_values_vmodmap (const xcb_xkb_set_map_values_t *S /**< */) +{ + return /* values */ S->vmodmap; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_map_values_vmodmap_length + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_map_values_vmodmap_length (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + return R->totalVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_set_map_values_vmodmap_iterator + ** + ** @param const xcb_xkb_set_map_values_t *R + ** @returns xcb_xkb_key_v_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_iterator_t +xcb_xkb_set_map_values_vmodmap_iterator (const xcb_xkb_set_map_request_t *R /**< */, + const xcb_xkb_set_map_values_t *S /**< */) +{ + xcb_xkb_key_v_mod_map_iterator_t i; + i.data = /* values */ S->vmodmap; + i.rem = R->totalVModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + +int +xcb_xkb_set_map_values_serialize (void **_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + const xcb_xkb_set_map_values_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[19]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->types; + for(i=0; i<nTypes; i++) { + xcb_block_len = xcb_xkb_set_key_type_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->syms; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->syms; + for(i=0; i<nKeySyms; i++) { + xcb_block_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* actionsCount */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->actionsCount; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* actions */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->actions; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_set_map_values_unpack (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + xcb_xkb_set_map_values_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types */ + _aux->types = (xcb_xkb_set_key_type_t *)xcb_tmp; + for(i=0; i<nTypes; i++) { + xcb_tmp_len = xcb_xkb_set_key_type_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_set_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms */ + _aux->syms = (xcb_xkb_key_sym_map_t *)xcb_tmp; + for(i=0; i<nKeySyms; i++) { + xcb_tmp_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* actionsCount */ + _aux->actionsCount = (uint8_t *)xcb_tmp; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* actions */ + _aux->actions = (xcb_xkb_action_t *)xcb_tmp; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors */ + _aux->behaviors = (xcb_xkb_set_behavior_t *)xcb_tmp; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods */ + _aux->vmods = (uint8_t *)xcb_tmp; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit */ + _aux->explicit = (xcb_xkb_set_explicit_t *)xcb_tmp; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap */ + _aux->modmap = (xcb_xkb_key_mod_map_t *)xcb_tmp; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap */ + _aux->vmodmap = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +int +xcb_xkb_set_map_values_sizeof (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */) +{ + xcb_xkb_set_map_values_t _aux; + return xcb_xkb_set_map_values_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_map_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t present + ** @param uint16_t flags + ** @param xcb_keycode_t minKeyCode + ** @param xcb_keycode_t maxKeyCode + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param xcb_keycode_t firstKeySym + ** @param uint8_t nKeySyms + ** @param uint16_t totalSyms + ** @param xcb_keycode_t firstKeyAction + ** @param uint8_t nKeyActions + ** @param uint16_t totalActions + ** @param xcb_keycode_t firstKeyBehavior + ** @param uint8_t nKeyBehaviors + ** @param uint8_t totalKeyBehaviors + ** @param xcb_keycode_t firstKeyExplicit + ** @param uint8_t nKeyExplicit + ** @param uint8_t totalKeyExplicit + ** @param xcb_keycode_t firstModMapKey + ** @param uint8_t nModMapKeys + ** @param uint8_t totalModMapKeys + ** @param xcb_keycode_t firstVModMapKey + ** @param uint8_t nVModMapKeys + ** @param uint8_t totalVModMapKeys + ** @param uint16_t virtualMods + ** @param const void *values + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_map_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t present /**< */, + uint16_t flags /**< */, + xcb_keycode_t minKeyCode /**< */, + xcb_keycode_t maxKeyCode /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + xcb_keycode_t firstKeySym /**< */, + uint8_t nKeySyms /**< */, + uint16_t totalSyms /**< */, + xcb_keycode_t firstKeyAction /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + xcb_keycode_t firstKeyBehavior /**< */, + uint8_t nKeyBehaviors /**< */, + uint8_t totalKeyBehaviors /**< */, + xcb_keycode_t firstKeyExplicit /**< */, + uint8_t nKeyExplicit /**< */, + uint8_t totalKeyExplicit /**< */, + xcb_keycode_t firstModMapKey /**< */, + uint8_t nModMapKeys /**< */, + uint8_t totalModMapKeys /**< */, + xcb_keycode_t firstVModMapKey /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t virtualMods /**< */, + const void *values /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_MAP, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.present = present; + xcb_out.flags = flags; + xcb_out.minKeyCode = minKeyCode; + xcb_out.maxKeyCode = maxKeyCode; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKeySym = firstKeySym; + xcb_out.nKeySyms = nKeySyms; + xcb_out.totalSyms = totalSyms; + xcb_out.firstKeyAction = firstKeyAction; + xcb_out.nKeyActions = nKeyActions; + xcb_out.totalActions = totalActions; + xcb_out.firstKeyBehavior = firstKeyBehavior; + xcb_out.nKeyBehaviors = nKeyBehaviors; + xcb_out.totalKeyBehaviors = totalKeyBehaviors; + xcb_out.firstKeyExplicit = firstKeyExplicit; + xcb_out.nKeyExplicit = nKeyExplicit; + xcb_out.totalKeyExplicit = totalKeyExplicit; + xcb_out.firstModMapKey = firstModMapKey; + xcb_out.nModMapKeys = nModMapKeys; + xcb_out.totalModMapKeys = totalModMapKeys; + xcb_out.firstVModMapKey = firstVModMapKey; + xcb_out.nVModMapKeys = nVModMapKeys; + xcb_out.totalVModMapKeys = totalVModMapKeys; + xcb_out.virtualMods = virtualMods; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_set_map_values_t values */ + xcb_parts[4].iov_base = (char *) values; + xcb_parts[4].iov_len = + xcb_xkb_set_map_values_sizeof (values, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present); + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_map + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t present + ** @param uint16_t flags + ** @param xcb_keycode_t minKeyCode + ** @param xcb_keycode_t maxKeyCode + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param xcb_keycode_t firstKeySym + ** @param uint8_t nKeySyms + ** @param uint16_t totalSyms + ** @param xcb_keycode_t firstKeyAction + ** @param uint8_t nKeyActions + ** @param uint16_t totalActions + ** @param xcb_keycode_t firstKeyBehavior + ** @param uint8_t nKeyBehaviors + ** @param uint8_t totalKeyBehaviors + ** @param xcb_keycode_t firstKeyExplicit + ** @param uint8_t nKeyExplicit + ** @param uint8_t totalKeyExplicit + ** @param xcb_keycode_t firstModMapKey + ** @param uint8_t nModMapKeys + ** @param uint8_t totalModMapKeys + ** @param xcb_keycode_t firstVModMapKey + ** @param uint8_t nVModMapKeys + ** @param uint8_t totalVModMapKeys + ** @param uint16_t virtualMods + ** @param const void *values + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_map (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t present /**< */, + uint16_t flags /**< */, + xcb_keycode_t minKeyCode /**< */, + xcb_keycode_t maxKeyCode /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + xcb_keycode_t firstKeySym /**< */, + uint8_t nKeySyms /**< */, + uint16_t totalSyms /**< */, + xcb_keycode_t firstKeyAction /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + xcb_keycode_t firstKeyBehavior /**< */, + uint8_t nKeyBehaviors /**< */, + uint8_t totalKeyBehaviors /**< */, + xcb_keycode_t firstKeyExplicit /**< */, + uint8_t nKeyExplicit /**< */, + uint8_t totalKeyExplicit /**< */, + xcb_keycode_t firstModMapKey /**< */, + uint8_t nModMapKeys /**< */, + uint8_t totalModMapKeys /**< */, + xcb_keycode_t firstVModMapKey /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t virtualMods /**< */, + const void *values /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_MAP, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.present = present; + xcb_out.flags = flags; + xcb_out.minKeyCode = minKeyCode; + xcb_out.maxKeyCode = maxKeyCode; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKeySym = firstKeySym; + xcb_out.nKeySyms = nKeySyms; + xcb_out.totalSyms = totalSyms; + xcb_out.firstKeyAction = firstKeyAction; + xcb_out.nKeyActions = nKeyActions; + xcb_out.totalActions = totalActions; + xcb_out.firstKeyBehavior = firstKeyBehavior; + xcb_out.nKeyBehaviors = nKeyBehaviors; + xcb_out.totalKeyBehaviors = totalKeyBehaviors; + xcb_out.firstKeyExplicit = firstKeyExplicit; + xcb_out.nKeyExplicit = nKeyExplicit; + xcb_out.totalKeyExplicit = totalKeyExplicit; + xcb_out.firstModMapKey = firstModMapKey; + xcb_out.nModMapKeys = nModMapKeys; + xcb_out.totalModMapKeys = totalModMapKeys; + xcb_out.firstVModMapKey = firstVModMapKey; + xcb_out.nVModMapKeys = nVModMapKeys; + xcb_out.totalVModMapKeys = totalVModMapKeys; + xcb_out.virtualMods = virtualMods; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_set_map_values_t values */ + xcb_parts[4].iov_base = (char *) values; + xcb_parts[4].iov_len = + xcb_xkb_set_map_values_sizeof (values, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present); + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_map_aux_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t present + ** @param uint16_t flags + ** @param xcb_keycode_t minKeyCode + ** @param xcb_keycode_t maxKeyCode + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param xcb_keycode_t firstKeySym + ** @param uint8_t nKeySyms + ** @param uint16_t totalSyms + ** @param xcb_keycode_t firstKeyAction + ** @param uint8_t nKeyActions + ** @param uint16_t totalActions + ** @param xcb_keycode_t firstKeyBehavior + ** @param uint8_t nKeyBehaviors + ** @param uint8_t totalKeyBehaviors + ** @param xcb_keycode_t firstKeyExplicit + ** @param uint8_t nKeyExplicit + ** @param uint8_t totalKeyExplicit + ** @param xcb_keycode_t firstModMapKey + ** @param uint8_t nModMapKeys + ** @param uint8_t totalModMapKeys + ** @param xcb_keycode_t firstVModMapKey + ** @param uint8_t nVModMapKeys + ** @param uint8_t totalVModMapKeys + ** @param uint16_t virtualMods + ** @param const xcb_xkb_set_map_values_t *values + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_map_aux_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t present /**< */, + uint16_t flags /**< */, + xcb_keycode_t minKeyCode /**< */, + xcb_keycode_t maxKeyCode /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + xcb_keycode_t firstKeySym /**< */, + uint8_t nKeySyms /**< */, + uint16_t totalSyms /**< */, + xcb_keycode_t firstKeyAction /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + xcb_keycode_t firstKeyBehavior /**< */, + uint8_t nKeyBehaviors /**< */, + uint8_t totalKeyBehaviors /**< */, + xcb_keycode_t firstKeyExplicit /**< */, + uint8_t nKeyExplicit /**< */, + uint8_t totalKeyExplicit /**< */, + xcb_keycode_t firstModMapKey /**< */, + uint8_t nModMapKeys /**< */, + uint8_t totalModMapKeys /**< */, + xcb_keycode_t firstVModMapKey /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t virtualMods /**< */, + const xcb_xkb_set_map_values_t *values /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_MAP, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_map_request_t xcb_out; + void *xcb_aux0 = 0; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.present = present; + xcb_out.flags = flags; + xcb_out.minKeyCode = minKeyCode; + xcb_out.maxKeyCode = maxKeyCode; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKeySym = firstKeySym; + xcb_out.nKeySyms = nKeySyms; + xcb_out.totalSyms = totalSyms; + xcb_out.firstKeyAction = firstKeyAction; + xcb_out.nKeyActions = nKeyActions; + xcb_out.totalActions = totalActions; + xcb_out.firstKeyBehavior = firstKeyBehavior; + xcb_out.nKeyBehaviors = nKeyBehaviors; + xcb_out.totalKeyBehaviors = totalKeyBehaviors; + xcb_out.firstKeyExplicit = firstKeyExplicit; + xcb_out.nKeyExplicit = nKeyExplicit; + xcb_out.totalKeyExplicit = totalKeyExplicit; + xcb_out.firstModMapKey = firstModMapKey; + xcb_out.nModMapKeys = nModMapKeys; + xcb_out.totalModMapKeys = totalModMapKeys; + xcb_out.firstVModMapKey = firstVModMapKey; + xcb_out.nVModMapKeys = nVModMapKeys; + xcb_out.totalVModMapKeys = totalVModMapKeys; + xcb_out.virtualMods = virtualMods; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_set_map_values_t values */ + xcb_parts[4].iov_len = + xcb_xkb_set_map_values_serialize (&xcb_aux0, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, values); + xcb_parts[4].iov_base = xcb_aux0; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + free(xcb_aux0); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_map_aux + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t present + ** @param uint16_t flags + ** @param xcb_keycode_t minKeyCode + ** @param xcb_keycode_t maxKeyCode + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param xcb_keycode_t firstKeySym + ** @param uint8_t nKeySyms + ** @param uint16_t totalSyms + ** @param xcb_keycode_t firstKeyAction + ** @param uint8_t nKeyActions + ** @param uint16_t totalActions + ** @param xcb_keycode_t firstKeyBehavior + ** @param uint8_t nKeyBehaviors + ** @param uint8_t totalKeyBehaviors + ** @param xcb_keycode_t firstKeyExplicit + ** @param uint8_t nKeyExplicit + ** @param uint8_t totalKeyExplicit + ** @param xcb_keycode_t firstModMapKey + ** @param uint8_t nModMapKeys + ** @param uint8_t totalModMapKeys + ** @param xcb_keycode_t firstVModMapKey + ** @param uint8_t nVModMapKeys + ** @param uint8_t totalVModMapKeys + ** @param uint16_t virtualMods + ** @param const xcb_xkb_set_map_values_t *values + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_map_aux (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t present /**< */, + uint16_t flags /**< */, + xcb_keycode_t minKeyCode /**< */, + xcb_keycode_t maxKeyCode /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + xcb_keycode_t firstKeySym /**< */, + uint8_t nKeySyms /**< */, + uint16_t totalSyms /**< */, + xcb_keycode_t firstKeyAction /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + xcb_keycode_t firstKeyBehavior /**< */, + uint8_t nKeyBehaviors /**< */, + uint8_t totalKeyBehaviors /**< */, + xcb_keycode_t firstKeyExplicit /**< */, + uint8_t nKeyExplicit /**< */, + uint8_t totalKeyExplicit /**< */, + xcb_keycode_t firstModMapKey /**< */, + uint8_t nModMapKeys /**< */, + uint8_t totalModMapKeys /**< */, + xcb_keycode_t firstVModMapKey /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t virtualMods /**< */, + const xcb_xkb_set_map_values_t *values /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_MAP, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_map_request_t xcb_out; + void *xcb_aux0 = 0; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.present = present; + xcb_out.flags = flags; + xcb_out.minKeyCode = minKeyCode; + xcb_out.maxKeyCode = maxKeyCode; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKeySym = firstKeySym; + xcb_out.nKeySyms = nKeySyms; + xcb_out.totalSyms = totalSyms; + xcb_out.firstKeyAction = firstKeyAction; + xcb_out.nKeyActions = nKeyActions; + xcb_out.totalActions = totalActions; + xcb_out.firstKeyBehavior = firstKeyBehavior; + xcb_out.nKeyBehaviors = nKeyBehaviors; + xcb_out.totalKeyBehaviors = totalKeyBehaviors; + xcb_out.firstKeyExplicit = firstKeyExplicit; + xcb_out.nKeyExplicit = nKeyExplicit; + xcb_out.totalKeyExplicit = totalKeyExplicit; + xcb_out.firstModMapKey = firstModMapKey; + xcb_out.nModMapKeys = nModMapKeys; + xcb_out.totalModMapKeys = totalModMapKeys; + xcb_out.firstVModMapKey = firstVModMapKey; + xcb_out.nVModMapKeys = nVModMapKeys; + xcb_out.totalVModMapKeys = totalVModMapKeys; + xcb_out.virtualMods = virtualMods; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_set_map_values_t values */ + xcb_parts[4].iov_len = + xcb_xkb_set_map_values_serialize (&xcb_aux0, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, values); + xcb_parts[4].iov_base = xcb_aux0; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + free(xcb_aux0); + return xcb_ret; +} + +int +xcb_xkb_get_compat_map_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_get_compat_map_reply_t *_aux = (xcb_xkb_get_compat_map_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_get_compat_map_reply_t); + xcb_tmp += xcb_block_len; + /* si_rtrn */ + xcb_block_len += (16 * _aux->nSIRtrn) * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* group_rtrn */ + xcb_block_len += xcb_popcount(_aux->groupsRtrn) * sizeof(xcb_xkb_mod_def_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_compat_map_cookie_t xcb_xkb_get_compat_map + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t groups + ** @param uint8_t getAllSI + ** @param uint16_t firstSI + ** @param uint16_t nSI + ** @returns xcb_xkb_get_compat_map_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_compat_map_cookie_t +xcb_xkb_get_compat_map (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t groups /**< */, + uint8_t getAllSI /**< */, + uint16_t firstSI /**< */, + uint16_t nSI /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_COMPAT_MAP, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_compat_map_cookie_t xcb_ret; + xcb_xkb_get_compat_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.groups = groups; + xcb_out.getAllSI = getAllSI; + xcb_out.firstSI = firstSI; + xcb_out.nSI = nSI; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_compat_map_cookie_t xcb_xkb_get_compat_map_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t groups + ** @param uint8_t getAllSI + ** @param uint16_t firstSI + ** @param uint16_t nSI + ** @returns xcb_xkb_get_compat_map_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_compat_map_cookie_t +xcb_xkb_get_compat_map_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t groups /**< */, + uint8_t getAllSI /**< */, + uint16_t firstSI /**< */, + uint16_t nSI /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_COMPAT_MAP, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_compat_map_cookie_t xcb_ret; + xcb_xkb_get_compat_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.groups = groups; + xcb_out.getAllSI = getAllSI; + xcb_out.firstSI = firstSI; + xcb_out.nSI = nSI; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_compat_map_si_rtrn + ** + ** @param const xcb_xkb_get_compat_map_reply_t *R + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_compat_map_si_rtrn (const xcb_xkb_get_compat_map_reply_t *R /**< */) +{ + return (uint8_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_compat_map_si_rtrn_length + ** + ** @param const xcb_xkb_get_compat_map_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_compat_map_si_rtrn_length (const xcb_xkb_get_compat_map_reply_t *R /**< */) +{ + return (16 * R->nSIRtrn); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_compat_map_si_rtrn_end + ** + ** @param const xcb_xkb_get_compat_map_reply_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_compat_map_si_rtrn_end (const xcb_xkb_get_compat_map_reply_t *R /**< */) +{ + xcb_generic_iterator_t i; + i.data = ((uint8_t *) (R + 1)) + ((16 * R->nSIRtrn)); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_mod_def_t * xcb_xkb_get_compat_map_group_rtrn + ** + ** @param const xcb_xkb_get_compat_map_reply_t *R + ** @returns xcb_xkb_mod_def_t * + ** + *****************************************************************************/ + +xcb_xkb_mod_def_t * +xcb_xkb_get_compat_map_group_rtrn (const xcb_xkb_get_compat_map_reply_t *R /**< */) +{ + xcb_generic_iterator_t prev = xcb_xkb_get_compat_map_si_rtrn_end(R); + return (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index) + 0); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_compat_map_group_rtrn_length + ** + ** @param const xcb_xkb_get_compat_map_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_compat_map_group_rtrn_length (const xcb_xkb_get_compat_map_reply_t *R /**< */) +{ + return xcb_popcount(R->groupsRtrn); +} + + +/***************************************************************************** + ** + ** xcb_xkb_mod_def_iterator_t xcb_xkb_get_compat_map_group_rtrn_iterator + ** + ** @param const xcb_xkb_get_compat_map_reply_t *R + ** @returns xcb_xkb_mod_def_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_mod_def_iterator_t +xcb_xkb_get_compat_map_group_rtrn_iterator (const xcb_xkb_get_compat_map_reply_t *R /**< */) +{ + xcb_xkb_mod_def_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_get_compat_map_si_rtrn_end(R); + i.data = (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index)); + i.rem = xcb_popcount(R->groupsRtrn); + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_compat_map_reply_t * xcb_xkb_get_compat_map_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_compat_map_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_compat_map_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_compat_map_reply_t * +xcb_xkb_get_compat_map_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_compat_map_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_get_compat_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_xkb_set_compat_map_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_set_compat_map_request_t *_aux = (xcb_xkb_set_compat_map_request_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_set_compat_map_request_t); + xcb_tmp += xcb_block_len; + /* si */ + xcb_block_len += (16 * _aux->nSI) * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* groupMaps */ + xcb_block_len += xcb_popcount(_aux->groups) * sizeof(xcb_xkb_mod_def_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_compat_map_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t recomputeActions + ** @param uint8_t truncateSI + ** @param uint8_t groups + ** @param uint16_t firstSI + ** @param uint16_t nSI + ** @param const uint8_t *si + ** @param const xcb_xkb_mod_def_t *groupMaps + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_compat_map_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t recomputeActions /**< */, + uint8_t truncateSI /**< */, + uint8_t groups /**< */, + uint16_t firstSI /**< */, + uint16_t nSI /**< */, + const uint8_t *si /**< */, + const xcb_xkb_mod_def_t *groupMaps /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 6, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_COMPAT_MAP, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[8]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_compat_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.pad0 = 0; + xcb_out.recomputeActions = recomputeActions; + xcb_out.truncateSI = truncateSI; + xcb_out.groups = groups; + xcb_out.firstSI = firstSI; + xcb_out.nSI = nSI; + memset(xcb_out.pad1, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* uint8_t si */ + xcb_parts[4].iov_base = (char *) si; + xcb_parts[4].iov_len = (16 * nSI) * sizeof(uint8_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + /* xcb_xkb_mod_def_t groupMaps */ + xcb_parts[6].iov_base = (char *) groupMaps; + xcb_parts[6].iov_len = xcb_popcount(groups) * sizeof(xcb_xkb_mod_def_t); + xcb_parts[7].iov_base = 0; + xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_compat_map + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t recomputeActions + ** @param uint8_t truncateSI + ** @param uint8_t groups + ** @param uint16_t firstSI + ** @param uint16_t nSI + ** @param const uint8_t *si + ** @param const xcb_xkb_mod_def_t *groupMaps + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_compat_map (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t recomputeActions /**< */, + uint8_t truncateSI /**< */, + uint8_t groups /**< */, + uint16_t firstSI /**< */, + uint16_t nSI /**< */, + const uint8_t *si /**< */, + const xcb_xkb_mod_def_t *groupMaps /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 6, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_COMPAT_MAP, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[8]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_compat_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.pad0 = 0; + xcb_out.recomputeActions = recomputeActions; + xcb_out.truncateSI = truncateSI; + xcb_out.groups = groups; + xcb_out.firstSI = firstSI; + xcb_out.nSI = nSI; + memset(xcb_out.pad1, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* uint8_t si */ + xcb_parts[4].iov_base = (char *) si; + xcb_parts[4].iov_len = (16 * nSI) * sizeof(uint8_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + /* xcb_xkb_mod_def_t groupMaps */ + xcb_parts[6].iov_base = (char *) groupMaps; + xcb_parts[6].iov_len = xcb_popcount(groups) * sizeof(xcb_xkb_mod_def_t); + xcb_parts[7].iov_base = 0; + xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_indicator_state_cookie_t xcb_xkb_get_indicator_state + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @returns xcb_xkb_get_indicator_state_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_indicator_state_cookie_t +xcb_xkb_get_indicator_state (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_INDICATOR_STATE, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_indicator_state_cookie_t xcb_ret; + xcb_xkb_get_indicator_state_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_indicator_state_cookie_t xcb_xkb_get_indicator_state_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @returns xcb_xkb_get_indicator_state_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_indicator_state_cookie_t +xcb_xkb_get_indicator_state_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_INDICATOR_STATE, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_indicator_state_cookie_t xcb_ret; + xcb_xkb_get_indicator_state_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_indicator_state_reply_t * xcb_xkb_get_indicator_state_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_indicator_state_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_indicator_state_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_indicator_state_reply_t * +xcb_xkb_get_indicator_state_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_indicator_state_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_get_indicator_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_xkb_get_indicator_map_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_get_indicator_map_reply_t *_aux = (xcb_xkb_get_indicator_map_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_get_indicator_map_reply_t); + xcb_tmp += xcb_block_len; + /* maps */ + xcb_block_len += _aux->nIndicators * sizeof(xcb_xkb_indicator_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_indicator_map_cookie_t xcb_xkb_get_indicator_map + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint32_t which + ** @returns xcb_xkb_get_indicator_map_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_indicator_map_cookie_t +xcb_xkb_get_indicator_map (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint32_t which /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_INDICATOR_MAP, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_indicator_map_cookie_t xcb_ret; + xcb_xkb_get_indicator_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.which = which; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_indicator_map_cookie_t xcb_xkb_get_indicator_map_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint32_t which + ** @returns xcb_xkb_get_indicator_map_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_indicator_map_cookie_t +xcb_xkb_get_indicator_map_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint32_t which /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_INDICATOR_MAP, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_indicator_map_cookie_t xcb_ret; + xcb_xkb_get_indicator_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.which = which; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_indicator_map_t * xcb_xkb_get_indicator_map_maps + ** + ** @param const xcb_xkb_get_indicator_map_reply_t *R + ** @returns xcb_xkb_indicator_map_t * + ** + *****************************************************************************/ + +xcb_xkb_indicator_map_t * +xcb_xkb_get_indicator_map_maps (const xcb_xkb_get_indicator_map_reply_t *R /**< */) +{ + return (xcb_xkb_indicator_map_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_indicator_map_maps_length + ** + ** @param const xcb_xkb_get_indicator_map_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_indicator_map_maps_length (const xcb_xkb_get_indicator_map_reply_t *R /**< */) +{ + return R->nIndicators; +} + + +/***************************************************************************** + ** + ** xcb_xkb_indicator_map_iterator_t xcb_xkb_get_indicator_map_maps_iterator + ** + ** @param const xcb_xkb_get_indicator_map_reply_t *R + ** @returns xcb_xkb_indicator_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_indicator_map_iterator_t +xcb_xkb_get_indicator_map_maps_iterator (const xcb_xkb_get_indicator_map_reply_t *R /**< */) +{ + xcb_xkb_indicator_map_iterator_t i; + i.data = (xcb_xkb_indicator_map_t *) (R + 1); + i.rem = R->nIndicators; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_indicator_map_reply_t * xcb_xkb_get_indicator_map_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_indicator_map_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_indicator_map_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_indicator_map_reply_t * +xcb_xkb_get_indicator_map_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_indicator_map_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_get_indicator_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_xkb_set_indicator_map_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_set_indicator_map_request_t *_aux = (xcb_xkb_set_indicator_map_request_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xkb_set_indicator_map_request_t); + xcb_tmp += xcb_block_len; + /* maps */ + xcb_block_len += xcb_popcount(_aux->which) * sizeof(xcb_xkb_indicator_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_indicator_map_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint32_t which + ** @param const xcb_xkb_indicator_map_t *maps + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_indicator_map_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint32_t which /**< */, + const xcb_xkb_indicator_map_t *maps /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 4, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_INDICATOR_MAP, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_indicator_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.which = which; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_indicator_map_t maps */ + xcb_parts[4].iov_base = (char *) maps; + xcb_parts[4].iov_len = xcb_popcount(which) * sizeof(xcb_xkb_indicator_map_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_indicator_map + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint32_t which + ** @param const xcb_xkb_indicator_map_t *maps + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_indicator_map (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint32_t which /**< */, + const xcb_xkb_indicator_map_t *maps /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 4, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_INDICATOR_MAP, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_indicator_map_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.which = which; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_indicator_map_t maps */ + xcb_parts[4].iov_base = (char *) maps; + xcb_parts[4].iov_len = xcb_popcount(which) * sizeof(xcb_xkb_indicator_map_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_named_indicator_cookie_t xcb_xkb_get_named_indicator + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param xcb_xkb_led_class_spec_t ledClass + ** @param xcb_xkb_id_spec_t ledID + ** @param xcb_atom_t indicator + ** @returns xcb_xkb_get_named_indicator_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_named_indicator_cookie_t +xcb_xkb_get_named_indicator (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + xcb_xkb_led_class_spec_t ledClass /**< */, + xcb_xkb_id_spec_t ledID /**< */, + xcb_atom_t indicator /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_NAMED_INDICATOR, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_named_indicator_cookie_t xcb_ret; + xcb_xkb_get_named_indicator_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.ledClass = ledClass; + xcb_out.ledID = ledID; + memset(xcb_out.pad0, 0, 2); + xcb_out.indicator = indicator; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_named_indicator_cookie_t xcb_xkb_get_named_indicator_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param xcb_xkb_led_class_spec_t ledClass + ** @param xcb_xkb_id_spec_t ledID + ** @param xcb_atom_t indicator + ** @returns xcb_xkb_get_named_indicator_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_named_indicator_cookie_t +xcb_xkb_get_named_indicator_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + xcb_xkb_led_class_spec_t ledClass /**< */, + xcb_xkb_id_spec_t ledID /**< */, + xcb_atom_t indicator /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_NAMED_INDICATOR, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_named_indicator_cookie_t xcb_ret; + xcb_xkb_get_named_indicator_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.ledClass = ledClass; + xcb_out.ledID = ledID; + memset(xcb_out.pad0, 0, 2); + xcb_out.indicator = indicator; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_named_indicator_reply_t * xcb_xkb_get_named_indicator_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_named_indicator_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_named_indicator_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_named_indicator_reply_t * +xcb_xkb_get_named_indicator_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_named_indicator_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_get_named_indicator_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_named_indicator_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param xcb_xkb_led_class_spec_t ledClass + ** @param xcb_xkb_id_spec_t ledID + ** @param xcb_atom_t indicator + ** @param uint8_t setState + ** @param uint8_t on + ** @param uint8_t setMap + ** @param uint8_t createMap + ** @param uint8_t map_flags + ** @param uint8_t map_whichGroups + ** @param uint8_t map_groups + ** @param uint8_t map_whichMods + ** @param uint8_t map_realMods + ** @param uint16_t map_vmods + ** @param uint32_t map_ctrls + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_named_indicator_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + xcb_xkb_led_class_spec_t ledClass /**< */, + xcb_xkb_id_spec_t ledID /**< */, + xcb_atom_t indicator /**< */, + uint8_t setState /**< */, + uint8_t on /**< */, + uint8_t setMap /**< */, + uint8_t createMap /**< */, + uint8_t map_flags /**< */, + uint8_t map_whichGroups /**< */, + uint8_t map_groups /**< */, + uint8_t map_whichMods /**< */, + uint8_t map_realMods /**< */, + uint16_t map_vmods /**< */, + uint32_t map_ctrls /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_NAMED_INDICATOR, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_named_indicator_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.ledClass = ledClass; + xcb_out.ledID = ledID; + memset(xcb_out.pad0, 0, 2); + xcb_out.indicator = indicator; + xcb_out.setState = setState; + xcb_out.on = on; + xcb_out.setMap = setMap; + xcb_out.createMap = createMap; + xcb_out.pad1 = 0; + xcb_out.map_flags = map_flags; + xcb_out.map_whichGroups = map_whichGroups; + xcb_out.map_groups = map_groups; + xcb_out.map_whichMods = map_whichMods; + xcb_out.map_realMods = map_realMods; + xcb_out.map_vmods = map_vmods; + xcb_out.map_ctrls = map_ctrls; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_named_indicator + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param xcb_xkb_led_class_spec_t ledClass + ** @param xcb_xkb_id_spec_t ledID + ** @param xcb_atom_t indicator + ** @param uint8_t setState + ** @param uint8_t on + ** @param uint8_t setMap + ** @param uint8_t createMap + ** @param uint8_t map_flags + ** @param uint8_t map_whichGroups + ** @param uint8_t map_groups + ** @param uint8_t map_whichMods + ** @param uint8_t map_realMods + ** @param uint16_t map_vmods + ** @param uint32_t map_ctrls + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_named_indicator (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + xcb_xkb_led_class_spec_t ledClass /**< */, + xcb_xkb_id_spec_t ledID /**< */, + xcb_atom_t indicator /**< */, + uint8_t setState /**< */, + uint8_t on /**< */, + uint8_t setMap /**< */, + uint8_t createMap /**< */, + uint8_t map_flags /**< */, + uint8_t map_whichGroups /**< */, + uint8_t map_groups /**< */, + uint8_t map_whichMods /**< */, + uint8_t map_realMods /**< */, + uint16_t map_vmods /**< */, + uint32_t map_ctrls /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_NAMED_INDICATOR, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_named_indicator_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.ledClass = ledClass; + xcb_out.ledID = ledID; + memset(xcb_out.pad0, 0, 2); + xcb_out.indicator = indicator; + xcb_out.setState = setState; + xcb_out.on = on; + xcb_out.setMap = setMap; + xcb_out.createMap = createMap; + xcb_out.pad1 = 0; + xcb_out.map_flags = map_flags; + xcb_out.map_whichGroups = map_whichGroups; + xcb_out.map_groups = map_groups; + xcb_out.map_whichMods = map_whichMods; + xcb_out.map_realMods = map_realMods; + xcb_out.map_vmods = map_vmods; + xcb_out.map_ctrls = map_ctrls; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_names_value_list_type_names + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_names_value_list_type_names (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->typeNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_type_names_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_type_names_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return R->nTypes; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_type_names_end + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_names_value_list_type_names_end (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* valueList */ S->typeNames + R->nTypes; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_names_value_list_n_levels_per_type + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_names_value_list_n_levels_per_type (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->nLevelsPerType; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_n_levels_per_type_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_n_levels_per_type_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return R->nTypes; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_n_levels_per_type_end + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_names_value_list_n_levels_per_type_end (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* valueList */ S->nLevelsPerType + R->nTypes; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_names_value_list_kt_level_names + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_names_value_list_kt_level_names (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->ktLevelNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_kt_level_names_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_kt_level_names_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return qt_xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_kt_level_names_end + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_names_value_list_kt_level_names_end (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* valueList */ S->ktLevelNames + qt_xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_names_value_list_indicator_names + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_names_value_list_indicator_names (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->indicatorNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_indicator_names_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_indicator_names_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return xcb_popcount(R->indicators); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_indicator_names_end + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_names_value_list_indicator_names_end (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* valueList */ S->indicatorNames + xcb_popcount(R->indicators); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_names_value_list_virtual_mod_names + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_names_value_list_virtual_mod_names (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->virtualModNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_virtual_mod_names_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_virtual_mod_names_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return xcb_popcount(R->virtualMods); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_virtual_mod_names_end + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_names_value_list_virtual_mod_names_end (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* valueList */ S->virtualModNames + xcb_popcount(R->virtualMods); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_names_value_list_groups + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_names_value_list_groups (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->groups; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_groups_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_groups_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return xcb_popcount(R->groupNames); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_groups_end + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_names_value_list_groups_end (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* valueList */ S->groups + xcb_popcount(R->groupNames); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_name_t * xcb_xkb_get_names_value_list_key_names + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns xcb_xkb_key_name_t * + ** + *****************************************************************************/ + +xcb_xkb_key_name_t * +xcb_xkb_get_names_value_list_key_names (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->keyNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_key_names_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_key_names_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return R->nKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_name_iterator_t xcb_xkb_get_names_value_list_key_names_iterator + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_xkb_key_name_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_name_iterator_t +xcb_xkb_get_names_value_list_key_names_iterator (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_xkb_key_name_iterator_t i; + i.data = /* valueList */ S->keyNames; + i.rem = R->nKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_alias_t * xcb_xkb_get_names_value_list_key_aliases + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns xcb_xkb_key_alias_t * + ** + *****************************************************************************/ + +xcb_xkb_key_alias_t * +xcb_xkb_get_names_value_list_key_aliases (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->keyAliases; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_key_aliases_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_key_aliases_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return R->nKeyAliases; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_names_value_list_key_aliases_iterator + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_xkb_key_alias_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_alias_iterator_t +xcb_xkb_get_names_value_list_key_aliases_iterator (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_xkb_key_alias_iterator_t i; + i.data = /* valueList */ S->keyAliases; + i.rem = R->nKeyAliases; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_names_value_list_radio_group_names + ** + ** @param const xcb_xkb_get_names_value_list_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_names_value_list_radio_group_names (const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return /* valueList */ S->radioGroupNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_names_value_list_radio_group_names_length + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_names_value_list_radio_group_names_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + return R->nRadioGroups; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_radio_group_names_end + ** + ** @param const xcb_xkb_get_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_names_value_list_radio_group_names_end (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* valueList */ S->radioGroupNames + R->nRadioGroups; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + +int +xcb_xkb_get_names_value_list_serialize (void **_buffer /**< */, + uint8_t nTypes /**< */, + uint32_t indicators /**< */, + uint16_t virtualMods /**< */, + uint8_t groupNames /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint8_t nRadioGroups /**< */, + uint32_t which /**< */, + const xcb_xkb_get_names_value_list_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[25]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { + /* xcb_xkb_get_names_value_list_t.keycodesName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { + /* xcb_xkb_get_names_value_list_t.geometryName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { + /* xcb_xkb_get_names_value_list_t.symbolsName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { + /* xcb_xkb_get_names_value_list_t.physSymbolsName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_TYPES) { + /* xcb_xkb_get_names_value_list_t.typesName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_COMPAT) { + /* xcb_xkb_get_names_value_list_t.compatName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* typeNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; + xcb_block_len += nTypes * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* nLevelsPerType */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; + xcb_block_len += nTypes * sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* ktLevelNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; + xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = qt_xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* indicatorNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; + xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* virtualModNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; + xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* groups */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; + xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; + xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); + xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyAliases */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; + xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); + } + if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* radioGroupNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; + xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_get_names_value_list_unpack (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint32_t indicators /**< */, + uint16_t virtualMods /**< */, + uint8_t groupNames /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint8_t nRadioGroups /**< */, + uint32_t which /**< */, + xcb_xkb_get_names_value_list_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { + /* xcb_xkb_get_names_value_list_t.keycodesName */ + _aux->keycodesName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { + /* xcb_xkb_get_names_value_list_t.geometryName */ + _aux->geometryName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { + /* xcb_xkb_get_names_value_list_t.symbolsName */ + _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { + /* xcb_xkb_get_names_value_list_t.physSymbolsName */ + _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_TYPES) { + /* xcb_xkb_get_names_value_list_t.typesName */ + _aux->typesName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_COMPAT) { + /* xcb_xkb_get_names_value_list_t.compatName */ + _aux->compatName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* typeNames */ + _aux->typeNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += nTypes * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* nLevelsPerType */ + _aux->nLevelsPerType = (uint8_t *)xcb_tmp; + xcb_block_len += nTypes * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* ktLevelNames */ + _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* indicatorNames */ + _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* virtualModNames */ + _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* groups */ + _aux->groups = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyNames */ + _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; + xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyAliases */ + _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; + xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); + } + if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* radioGroupNames */ + _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +int +xcb_xkb_get_names_value_list_sizeof (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint32_t indicators /**< */, + uint16_t virtualMods /**< */, + uint8_t groupNames /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint8_t nRadioGroups /**< */, + uint32_t which /**< */) +{ + xcb_xkb_get_names_value_list_t _aux; + return xcb_xkb_get_names_value_list_unpack(_buffer, nTypes, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, &_aux); +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_names_cookie_t xcb_xkb_get_names + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint32_t which + ** @returns xcb_xkb_get_names_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_names_cookie_t +xcb_xkb_get_names (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint32_t which /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_NAMES, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_names_cookie_t xcb_ret; + xcb_xkb_get_names_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.which = which; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_names_cookie_t xcb_xkb_get_names_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint32_t which + ** @returns xcb_xkb_get_names_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_names_cookie_t +xcb_xkb_get_names_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint32_t which /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_NAMES, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_names_cookie_t xcb_ret; + xcb_xkb_get_names_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.which = which; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_names_value_list_t * xcb_xkb_get_names_value_list + ** + ** @param const xcb_xkb_get_names_reply_t *R + ** @returns xcb_xkb_get_names_value_list_t * + ** + *****************************************************************************/ + +void * +xcb_xkb_get_names_value_list (const xcb_xkb_get_names_reply_t *R /**< */) +{ + return (void *) (R + 1); +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_names_reply_t * xcb_xkb_get_names_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_names_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_names_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_names_reply_t * +xcb_xkb_get_names_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_names_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_get_names_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_set_names_values_type_names + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_set_names_values_type_names (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->typeNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_type_names_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_type_names_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return R->nTypes; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_names_values_type_names_end + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_names_values_type_names_end (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->typeNames + R->nTypes; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_set_names_values_n_levels_per_type + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_set_names_values_n_levels_per_type (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->nLevelsPerType; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_n_levels_per_type_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_n_levels_per_type_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return R->nKTLevels; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_names_values_n_levels_per_type_end + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_names_values_n_levels_per_type_end (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->nLevelsPerType + R->nKTLevels; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_set_names_values_kt_level_names + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_set_names_values_kt_level_names (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->ktLevelNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_kt_level_names_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_kt_level_names_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return qt_xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_names_values_kt_level_names_end + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_names_values_kt_level_names_end (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->ktLevelNames + qt_xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_set_names_values_indicator_names + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_set_names_values_indicator_names (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->indicatorNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_indicator_names_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_indicator_names_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return xcb_popcount(R->indicators); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_names_values_indicator_names_end + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_names_values_indicator_names_end (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->indicatorNames + xcb_popcount(R->indicators); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_set_names_values_virtual_mod_names + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_set_names_values_virtual_mod_names (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->virtualModNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_virtual_mod_names_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_virtual_mod_names_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return xcb_popcount(R->virtualMods); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_names_values_virtual_mod_names_end + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_names_values_virtual_mod_names_end (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->virtualModNames + xcb_popcount(R->virtualMods); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_set_names_values_groups + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_set_names_values_groups (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->groups; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_groups_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_groups_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return xcb_popcount(R->groupNames); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_names_values_groups_end + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_names_values_groups_end (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->groups + xcb_popcount(R->groupNames); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_name_t * xcb_xkb_set_names_values_key_names + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns xcb_xkb_key_name_t * + ** + *****************************************************************************/ + +xcb_xkb_key_name_t * +xcb_xkb_set_names_values_key_names (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->keyNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_key_names_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_key_names_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return R->nKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_name_iterator_t xcb_xkb_set_names_values_key_names_iterator + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_xkb_key_name_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_name_iterator_t +xcb_xkb_set_names_values_key_names_iterator (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_xkb_key_name_iterator_t i; + i.data = /* values */ S->keyNames; + i.rem = R->nKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_alias_t * xcb_xkb_set_names_values_key_aliases + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns xcb_xkb_key_alias_t * + ** + *****************************************************************************/ + +xcb_xkb_key_alias_t * +xcb_xkb_set_names_values_key_aliases (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->keyAliases; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_key_aliases_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_key_aliases_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return R->nKeyAliases; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_alias_iterator_t xcb_xkb_set_names_values_key_aliases_iterator + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_xkb_key_alias_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_alias_iterator_t +xcb_xkb_set_names_values_key_aliases_iterator (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_xkb_key_alias_iterator_t i; + i.data = /* values */ S->keyAliases; + i.rem = R->nKeyAliases; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_set_names_values_radio_group_names + ** + ** @param const xcb_xkb_set_names_values_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_set_names_values_radio_group_names (const xcb_xkb_set_names_values_t *S /**< */) +{ + return /* values */ S->radioGroupNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_set_names_values_radio_group_names_length + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_set_names_values_radio_group_names_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + return R->nRadioGroups; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_set_names_values_radio_group_names_end + ** + ** @param const xcb_xkb_set_names_values_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_set_names_values_radio_group_names_end (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* values */ S->radioGroupNames + R->nRadioGroups; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + +int +xcb_xkb_set_names_values_serialize (void **_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint16_t virtualMods /**< */, + uint8_t groupNames /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint8_t nRadioGroups /**< */, + uint32_t which /**< */, + const xcb_xkb_set_names_values_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[25]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { + /* xcb_xkb_set_names_values_t.keycodesName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { + /* xcb_xkb_set_names_values_t.geometryName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { + /* xcb_xkb_set_names_values_t.symbolsName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { + /* xcb_xkb_set_names_values_t.physSymbolsName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_TYPES) { + /* xcb_xkb_set_names_values_t.typesName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_COMPAT) { + /* xcb_xkb_set_names_values_t.compatName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* typeNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; + xcb_block_len += nTypes * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* nLevelsPerType */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; + xcb_block_len += nKTLevels * sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = nKTLevels * sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* ktLevelNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; + xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* indicatorNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; + xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* virtualModNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; + xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* groups */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; + xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; + xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); + xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyAliases */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; + xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); + } + if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* radioGroupNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; + xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_set_names_values_unpack (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint16_t virtualMods /**< */, + uint8_t groupNames /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint8_t nRadioGroups /**< */, + uint32_t which /**< */, + xcb_xkb_set_names_values_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { + /* xcb_xkb_set_names_values_t.keycodesName */ + _aux->keycodesName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { + /* xcb_xkb_set_names_values_t.geometryName */ + _aux->geometryName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { + /* xcb_xkb_set_names_values_t.symbolsName */ + _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { + /* xcb_xkb_set_names_values_t.physSymbolsName */ + _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_TYPES) { + /* xcb_xkb_set_names_values_t.typesName */ + _aux->typesName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_COMPAT) { + /* xcb_xkb_set_names_values_t.compatName */ + _aux->compatName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* typeNames */ + _aux->typeNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += nTypes * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* nLevelsPerType */ + _aux->nLevelsPerType = (uint8_t *)xcb_tmp; + xcb_block_len += nKTLevels * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* ktLevelNames */ + _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* indicatorNames */ + _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* virtualModNames */ + _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* groups */ + _aux->groups = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyNames */ + _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; + xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyAliases */ + _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; + xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); + } + if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* radioGroupNames */ + _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +int +xcb_xkb_set_names_values_sizeof (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint16_t virtualMods /**< */, + uint8_t groupNames /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint8_t nRadioGroups /**< */, + uint32_t which /**< */) +{ + xcb_xkb_set_names_values_t _aux; + return xcb_xkb_set_names_values_unpack(_buffer, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, &_aux); +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_names_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t virtualMods + ** @param uint32_t which + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param uint8_t firstKTLevelt + ** @param uint8_t nKTLevels + ** @param uint32_t indicators + ** @param uint8_t groupNames + ** @param uint8_t nRadioGroups + ** @param xcb_keycode_t firstKey + ** @param uint8_t nKeys + ** @param uint8_t nKeyAliases + ** @param uint16_t totalKTLevelNames + ** @param const void *values + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_names_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t virtualMods /**< */, + uint32_t which /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + uint8_t firstKTLevelt /**< */, + uint8_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint8_t groupNames /**< */, + uint8_t nRadioGroups /**< */, + xcb_keycode_t firstKey /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint16_t totalKTLevelNames /**< */, + const void *values /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_NAMES, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_names_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.virtualMods = virtualMods; + xcb_out.which = which; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKTLevelt = firstKTLevelt; + xcb_out.nKTLevels = nKTLevels; + xcb_out.indicators = indicators; + xcb_out.groupNames = groupNames; + xcb_out.nRadioGroups = nRadioGroups; + xcb_out.firstKey = firstKey; + xcb_out.nKeys = nKeys; + xcb_out.nKeyAliases = nKeyAliases; + xcb_out.pad0 = 0; + xcb_out.totalKTLevelNames = totalKTLevelNames; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_set_names_values_t values */ + xcb_parts[4].iov_base = (char *) values; + xcb_parts[4].iov_len = + xcb_xkb_set_names_values_sizeof (values, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which); + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_names + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t virtualMods + ** @param uint32_t which + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param uint8_t firstKTLevelt + ** @param uint8_t nKTLevels + ** @param uint32_t indicators + ** @param uint8_t groupNames + ** @param uint8_t nRadioGroups + ** @param xcb_keycode_t firstKey + ** @param uint8_t nKeys + ** @param uint8_t nKeyAliases + ** @param uint16_t totalKTLevelNames + ** @param const void *values + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_names (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t virtualMods /**< */, + uint32_t which /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + uint8_t firstKTLevelt /**< */, + uint8_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint8_t groupNames /**< */, + uint8_t nRadioGroups /**< */, + xcb_keycode_t firstKey /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint16_t totalKTLevelNames /**< */, + const void *values /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_NAMES, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_names_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.virtualMods = virtualMods; + xcb_out.which = which; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKTLevelt = firstKTLevelt; + xcb_out.nKTLevels = nKTLevels; + xcb_out.indicators = indicators; + xcb_out.groupNames = groupNames; + xcb_out.nRadioGroups = nRadioGroups; + xcb_out.firstKey = firstKey; + xcb_out.nKeys = nKeys; + xcb_out.nKeyAliases = nKeyAliases; + xcb_out.pad0 = 0; + xcb_out.totalKTLevelNames = totalKTLevelNames; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_set_names_values_t values */ + xcb_parts[4].iov_base = (char *) values; + xcb_parts[4].iov_len = + xcb_xkb_set_names_values_sizeof (values, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which); + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_names_aux_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t virtualMods + ** @param uint32_t which + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param uint8_t firstKTLevelt + ** @param uint8_t nKTLevels + ** @param uint32_t indicators + ** @param uint8_t groupNames + ** @param uint8_t nRadioGroups + ** @param xcb_keycode_t firstKey + ** @param uint8_t nKeys + ** @param uint8_t nKeyAliases + ** @param uint16_t totalKTLevelNames + ** @param const xcb_xkb_set_names_values_t *values + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_names_aux_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t virtualMods /**< */, + uint32_t which /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + uint8_t firstKTLevelt /**< */, + uint8_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint8_t groupNames /**< */, + uint8_t nRadioGroups /**< */, + xcb_keycode_t firstKey /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint16_t totalKTLevelNames /**< */, + const xcb_xkb_set_names_values_t *values /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_NAMES, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_names_request_t xcb_out; + void *xcb_aux0 = 0; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.virtualMods = virtualMods; + xcb_out.which = which; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKTLevelt = firstKTLevelt; + xcb_out.nKTLevels = nKTLevels; + xcb_out.indicators = indicators; + xcb_out.groupNames = groupNames; + xcb_out.nRadioGroups = nRadioGroups; + xcb_out.firstKey = firstKey; + xcb_out.nKeys = nKeys; + xcb_out.nKeyAliases = nKeyAliases; + xcb_out.pad0 = 0; + xcb_out.totalKTLevelNames = totalKTLevelNames; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_set_names_values_t values */ + xcb_parts[4].iov_len = + xcb_xkb_set_names_values_serialize (&xcb_aux0, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, values); + xcb_parts[4].iov_base = xcb_aux0; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + free(xcb_aux0); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_names_aux + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t virtualMods + ** @param uint32_t which + ** @param uint8_t firstType + ** @param uint8_t nTypes + ** @param uint8_t firstKTLevelt + ** @param uint8_t nKTLevels + ** @param uint32_t indicators + ** @param uint8_t groupNames + ** @param uint8_t nRadioGroups + ** @param xcb_keycode_t firstKey + ** @param uint8_t nKeys + ** @param uint8_t nKeyAliases + ** @param uint16_t totalKTLevelNames + ** @param const xcb_xkb_set_names_values_t *values + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_names_aux (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t virtualMods /**< */, + uint32_t which /**< */, + uint8_t firstType /**< */, + uint8_t nTypes /**< */, + uint8_t firstKTLevelt /**< */, + uint8_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint8_t groupNames /**< */, + uint8_t nRadioGroups /**< */, + xcb_keycode_t firstKey /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint16_t totalKTLevelNames /**< */, + const xcb_xkb_set_names_values_t *values /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 3, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_NAMES, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[5]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_names_request_t xcb_out; + void *xcb_aux0 = 0; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.virtualMods = virtualMods; + xcb_out.which = which; + xcb_out.firstType = firstType; + xcb_out.nTypes = nTypes; + xcb_out.firstKTLevelt = firstKTLevelt; + xcb_out.nKTLevels = nKTLevels; + xcb_out.indicators = indicators; + xcb_out.groupNames = groupNames; + xcb_out.nRadioGroups = nRadioGroups; + xcb_out.firstKey = firstKey; + xcb_out.nKeys = nKeys; + xcb_out.nKeyAliases = nKeyAliases; + xcb_out.pad0 = 0; + xcb_out.totalKTLevelNames = totalKTLevelNames; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_set_names_values_t values */ + xcb_parts[4].iov_len = + xcb_xkb_set_names_values_serialize (&xcb_aux0, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, values); + xcb_parts[4].iov_base = xcb_aux0; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + free(xcb_aux0); + return xcb_ret; +} + +int +xcb_xkb_get_geometry_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_get_geometry_reply_t *_aux = (xcb_xkb_get_geometry_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + xcb_block_len += sizeof(xcb_xkb_get_geometry_reply_t); + xcb_tmp += xcb_block_len; + /* labelFont */ + xcb_block_len += xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* properties */ + for(i=0; i<_aux->nProperties; i++) { + xcb_tmp_len = xcb_xkb_property_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_property_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* colors */ + for(i=0; i<_aux->nColors; i++) { + xcb_tmp_len = xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* shapes */ + for(i=0; i<_aux->nShapes; i++) { + xcb_tmp_len = xcb_xkb_shape_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_shape_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* sections */ + for(i=0; i<_aux->nSections; i++) { + xcb_tmp_len = xcb_xkb_section_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_section_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* doodads */ + for(i=0; i<_aux->nDoodads; i++) { + xcb_tmp_len = xcb_xkb_doodad_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_doodad_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyAliases */ + xcb_block_len += _aux->nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_geometry_cookie_t xcb_xkb_get_geometry + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param xcb_atom_t name + ** @returns xcb_xkb_get_geometry_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_geometry_cookie_t +xcb_xkb_get_geometry (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + xcb_atom_t name /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_GEOMETRY, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_geometry_cookie_t xcb_ret; + xcb_xkb_get_geometry_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.name = name; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_geometry_cookie_t xcb_xkb_get_geometry_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param xcb_atom_t name + ** @returns xcb_xkb_get_geometry_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_get_geometry_cookie_t +xcb_xkb_get_geometry_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + xcb_atom_t name /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_GET_GEOMETRY, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_get_geometry_cookie_t xcb_ret; + xcb_xkb_get_geometry_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.name = name; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_counted_string_16_t * xcb_xkb_get_geometry_label_font + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns xcb_xkb_counted_string_16_t * + ** + *****************************************************************************/ + +xcb_xkb_counted_string_16_t * +xcb_xkb_get_geometry_label_font (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + return (xcb_xkb_counted_string_16_t *) (R + 1); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_geometry_properties_length + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_geometry_properties_length (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + return R->nProperties; +} + + +/***************************************************************************** + ** + ** xcb_xkb_property_iterator_t xcb_xkb_get_geometry_properties_iterator + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns xcb_xkb_property_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_property_iterator_t +xcb_xkb_get_geometry_properties_iterator (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + xcb_xkb_property_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_counted_string_16_string_end(xcb_xkb_get_geometry_label_font(R)); + i.data = (xcb_xkb_property_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_property_t, prev.index)); + i.rem = R->nProperties; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_geometry_colors_length + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_geometry_colors_length (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + return R->nColors; +} + + +/***************************************************************************** + ** + ** xcb_xkb_counted_string_16_iterator_t xcb_xkb_get_geometry_colors_iterator + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns xcb_xkb_counted_string_16_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_counted_string_16_iterator_t +xcb_xkb_get_geometry_colors_iterator (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + xcb_xkb_counted_string_16_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_property_end(xcb_xkb_get_geometry_properties_iterator(R)); + i.data = (xcb_xkb_counted_string_16_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_counted_string_16_t, prev.index)); + i.rem = R->nColors; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_geometry_shapes_length + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_geometry_shapes_length (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + return R->nShapes; +} + + +/***************************************************************************** + ** + ** xcb_xkb_shape_iterator_t xcb_xkb_get_geometry_shapes_iterator + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns xcb_xkb_shape_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_shape_iterator_t +xcb_xkb_get_geometry_shapes_iterator (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + xcb_xkb_shape_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_counted_string_16_end(xcb_xkb_get_geometry_colors_iterator(R)); + i.data = (xcb_xkb_shape_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_shape_t, prev.index)); + i.rem = R->nShapes; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_geometry_sections_length + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_geometry_sections_length (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + return R->nSections; +} + + +/***************************************************************************** + ** + ** xcb_xkb_section_iterator_t xcb_xkb_get_geometry_sections_iterator + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns xcb_xkb_section_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_section_iterator_t +xcb_xkb_get_geometry_sections_iterator (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + xcb_xkb_section_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_shape_end(xcb_xkb_get_geometry_shapes_iterator(R)); + i.data = (xcb_xkb_section_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_section_t, prev.index)); + i.rem = R->nSections; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_geometry_doodads_length + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_geometry_doodads_length (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + return R->nDoodads; +} + + +/***************************************************************************** + ** + ** xcb_xkb_doodad_iterator_t xcb_xkb_get_geometry_doodads_iterator + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns xcb_xkb_doodad_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_doodad_iterator_t +xcb_xkb_get_geometry_doodads_iterator (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + xcb_xkb_doodad_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_section_end(xcb_xkb_get_geometry_sections_iterator(R)); + i.data = (xcb_xkb_doodad_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_doodad_t, prev.index)); + i.rem = R->nDoodads; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_alias_t * xcb_xkb_get_geometry_key_aliases + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns xcb_xkb_key_alias_t * + ** + *****************************************************************************/ + +xcb_xkb_key_alias_t * +xcb_xkb_get_geometry_key_aliases (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + xcb_generic_iterator_t prev = xcb_xkb_doodad_end(xcb_xkb_get_geometry_doodads_iterator(R)); + return (xcb_xkb_key_alias_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_key_alias_t, prev.index) + 0); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_geometry_key_aliases_length + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_geometry_key_aliases_length (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + return R->nKeyAliases; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_geometry_key_aliases_iterator + ** + ** @param const xcb_xkb_get_geometry_reply_t *R + ** @returns xcb_xkb_key_alias_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_alias_iterator_t +xcb_xkb_get_geometry_key_aliases_iterator (const xcb_xkb_get_geometry_reply_t *R /**< */) +{ + xcb_xkb_key_alias_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_doodad_end(xcb_xkb_get_geometry_doodads_iterator(R)); + i.data = (xcb_xkb_key_alias_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_key_alias_t, prev.index)); + i.rem = R->nKeyAliases; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_get_geometry_reply_t * xcb_xkb_get_geometry_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_get_geometry_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_get_geometry_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_get_geometry_reply_t * +xcb_xkb_get_geometry_reply (xcb_connection_t *c /**< */, + xcb_xkb_get_geometry_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + xcb_xkb_get_geometry_reply_t *reply = (xcb_xkb_get_geometry_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); + int i; + xcb_xkb_property_iterator_t properties_iter = xcb_xkb_get_geometry_properties_iterator(reply); + int properties_len = xcb_xkb_get_geometry_properties_length(reply); + xcb_xkb_property_t *properties_data; + /* special cases: transform parts of the reply to match XCB data structures */ + for(i=0; i<properties_len; i++) { + properties_data = properties_iter.data; + xcb_xkb_property_unserialize((const void *)properties_data, &properties_data); + xcb_xkb_property_next(&properties_iter); + } + return reply; +} + +int +xcb_xkb_set_geometry_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xkb_set_geometry_request_t *_aux = (xcb_xkb_set_geometry_request_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + xcb_block_len += sizeof(xcb_xkb_set_geometry_request_t); + xcb_tmp += xcb_block_len; + /* labelFont */ + xcb_block_len += xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* properties */ + for(i=0; i<_aux->nProperties; i++) { + xcb_tmp_len = xcb_xkb_property_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_property_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* colors */ + for(i=0; i<_aux->nColors; i++) { + xcb_tmp_len = xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* shapes */ + for(i=0; i<_aux->nShapes; i++) { + xcb_tmp_len = xcb_xkb_shape_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_shape_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* sections */ + for(i=0; i<_aux->nSections; i++) { + xcb_tmp_len = xcb_xkb_section_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_section_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* doodads */ + for(i=0; i<_aux->nDoodads; i++) { + xcb_tmp_len = xcb_xkb_doodad_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_doodad_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyAliases */ + xcb_block_len += _aux->nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_geometry_checked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t nShapes + ** @param uint8_t nSections + ** @param xcb_atom_t name + ** @param uint16_t widthMM + ** @param uint16_t heightMM + ** @param uint16_t nProperties + ** @param uint16_t nColors + ** @param uint16_t nDoodads + ** @param uint16_t nKeyAliases + ** @param uint8_t baseColorNdx + ** @param uint8_t labelColorNdx + ** @param xcb_xkb_counted_string_16_t *labelFont + ** @param const xcb_xkb_property_t *properties + ** @param const xcb_xkb_counted_string_16_t *colors + ** @param const xcb_xkb_shape_t *shapes + ** @param const xcb_xkb_section_t *sections + ** @param const xcb_xkb_doodad_t *doodads + ** @param const xcb_xkb_key_alias_t *keyAliases + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_geometry_checked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t nShapes /**< */, + uint8_t nSections /**< */, + xcb_atom_t name /**< */, + uint16_t widthMM /**< */, + uint16_t heightMM /**< */, + uint16_t nProperties /**< */, + uint16_t nColors /**< */, + uint16_t nDoodads /**< */, + uint16_t nKeyAliases /**< */, + uint8_t baseColorNdx /**< */, + uint8_t labelColorNdx /**< */, + xcb_xkb_counted_string_16_t *labelFont /**< */, + const xcb_xkb_property_t *properties /**< */, + const xcb_xkb_counted_string_16_t *colors /**< */, + const xcb_xkb_shape_t *shapes /**< */, + const xcb_xkb_section_t *sections /**< */, + const xcb_xkb_doodad_t *doodads /**< */, + const xcb_xkb_key_alias_t *keyAliases /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 16, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_GEOMETRY, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[18]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_geometry_request_t xcb_out; + unsigned int i; + unsigned int xcb_tmp_len; + char *xcb_tmp; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.nShapes = nShapes; + xcb_out.nSections = nSections; + xcb_out.name = name; + xcb_out.widthMM = widthMM; + xcb_out.heightMM = heightMM; + xcb_out.nProperties = nProperties; + xcb_out.nColors = nColors; + xcb_out.nDoodads = nDoodads; + xcb_out.nKeyAliases = nKeyAliases; + xcb_out.baseColorNdx = baseColorNdx; + xcb_out.labelColorNdx = labelColorNdx; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_counted_string_16_t labelFont */ + xcb_parts[4].iov_base = (char *) labelFont; + xcb_parts[4].iov_len = + xcb_xkb_counted_string_16_sizeof (labelFont); + /* xcb_xkb_property_t properties */ + xcb_parts[5].iov_base = (char *) properties; + xcb_parts[5].iov_len = 0; + xcb_tmp = (char *)properties; + for(i=0; i<nProperties; i++) { + xcb_tmp_len = xcb_xkb_property_sizeof(xcb_tmp); + xcb_parts[5].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[6].iov_base = 0; + xcb_parts[6].iov_len = -xcb_parts[5].iov_len & 3; + /* xcb_xkb_counted_string_16_t colors */ + xcb_parts[7].iov_base = (char *) colors; + xcb_parts[7].iov_len = 0; + xcb_tmp = (char *)colors; + for(i=0; i<nColors; i++) { + xcb_tmp_len = xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_parts[7].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[8].iov_base = 0; + xcb_parts[8].iov_len = -xcb_parts[7].iov_len & 3; + /* xcb_xkb_shape_t shapes */ + xcb_parts[9].iov_base = (char *) shapes; + xcb_parts[9].iov_len = 0; + xcb_tmp = (char *)shapes; + for(i=0; i<nShapes; i++) { + xcb_tmp_len = xcb_xkb_shape_sizeof(xcb_tmp); + xcb_parts[9].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[10].iov_base = 0; + xcb_parts[10].iov_len = -xcb_parts[9].iov_len & 3; + /* xcb_xkb_section_t sections */ + xcb_parts[11].iov_base = (char *) sections; + xcb_parts[11].iov_len = 0; + xcb_tmp = (char *)sections; + for(i=0; i<nSections; i++) { + xcb_tmp_len = xcb_xkb_section_sizeof(xcb_tmp); + xcb_parts[11].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[12].iov_base = 0; + xcb_parts[12].iov_len = -xcb_parts[11].iov_len & 3; + /* xcb_xkb_doodad_t doodads */ + xcb_parts[13].iov_base = (char *) doodads; + xcb_parts[13].iov_len = 0; + xcb_tmp = (char *)doodads; + for(i=0; i<nDoodads; i++) { + xcb_tmp_len = xcb_xkb_doodad_sizeof(xcb_tmp); + xcb_parts[13].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[14].iov_base = 0; + xcb_parts[14].iov_len = -xcb_parts[13].iov_len & 3; + /* xcb_xkb_key_alias_t keyAliases */ + xcb_parts[15].iov_base = (char *) keyAliases; + xcb_parts[15].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_parts[16].iov_base = 0; + xcb_parts[16].iov_len = -xcb_parts[15].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_void_cookie_t xcb_xkb_set_geometry + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint8_t nShapes + ** @param uint8_t nSections + ** @param xcb_atom_t name + ** @param uint16_t widthMM + ** @param uint16_t heightMM + ** @param uint16_t nProperties + ** @param uint16_t nColors + ** @param uint16_t nDoodads + ** @param uint16_t nKeyAliases + ** @param uint8_t baseColorNdx + ** @param uint8_t labelColorNdx + ** @param xcb_xkb_counted_string_16_t *labelFont + ** @param const xcb_xkb_property_t *properties + ** @param const xcb_xkb_counted_string_16_t *colors + ** @param const xcb_xkb_shape_t *shapes + ** @param const xcb_xkb_section_t *sections + ** @param const xcb_xkb_doodad_t *doodads + ** @param const xcb_xkb_key_alias_t *keyAliases + ** @returns xcb_void_cookie_t + ** + *****************************************************************************/ + +xcb_void_cookie_t +xcb_xkb_set_geometry (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint8_t nShapes /**< */, + uint8_t nSections /**< */, + xcb_atom_t name /**< */, + uint16_t widthMM /**< */, + uint16_t heightMM /**< */, + uint16_t nProperties /**< */, + uint16_t nColors /**< */, + uint16_t nDoodads /**< */, + uint16_t nKeyAliases /**< */, + uint8_t baseColorNdx /**< */, + uint8_t labelColorNdx /**< */, + xcb_xkb_counted_string_16_t *labelFont /**< */, + const xcb_xkb_property_t *properties /**< */, + const xcb_xkb_counted_string_16_t *colors /**< */, + const xcb_xkb_shape_t *shapes /**< */, + const xcb_xkb_section_t *sections /**< */, + const xcb_xkb_doodad_t *doodads /**< */, + const xcb_xkb_key_alias_t *keyAliases /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 16, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_SET_GEOMETRY, + /* isvoid */ 1 + }; + + struct iovec xcb_parts[18]; + xcb_void_cookie_t xcb_ret; + xcb_xkb_set_geometry_request_t xcb_out; + unsigned int i; + unsigned int xcb_tmp_len; + char *xcb_tmp; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.nShapes = nShapes; + xcb_out.nSections = nSections; + xcb_out.name = name; + xcb_out.widthMM = widthMM; + xcb_out.heightMM = heightMM; + xcb_out.nProperties = nProperties; + xcb_out.nColors = nColors; + xcb_out.nDoodads = nDoodads; + xcb_out.nKeyAliases = nKeyAliases; + xcb_out.baseColorNdx = baseColorNdx; + xcb_out.labelColorNdx = labelColorNdx; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_xkb_counted_string_16_t labelFont */ + xcb_parts[4].iov_base = (char *) labelFont; + xcb_parts[4].iov_len = + xcb_xkb_counted_string_16_sizeof (labelFont); + /* xcb_xkb_property_t properties */ + xcb_parts[5].iov_base = (char *) properties; + xcb_parts[5].iov_len = 0; + xcb_tmp = (char *)properties; + for(i=0; i<nProperties; i++) { + xcb_tmp_len = xcb_xkb_property_sizeof(xcb_tmp); + xcb_parts[5].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[6].iov_base = 0; + xcb_parts[6].iov_len = -xcb_parts[5].iov_len & 3; + /* xcb_xkb_counted_string_16_t colors */ + xcb_parts[7].iov_base = (char *) colors; + xcb_parts[7].iov_len = 0; + xcb_tmp = (char *)colors; + for(i=0; i<nColors; i++) { + xcb_tmp_len = xcb_xkb_counted_string_16_sizeof(xcb_tmp); + xcb_parts[7].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[8].iov_base = 0; + xcb_parts[8].iov_len = -xcb_parts[7].iov_len & 3; + /* xcb_xkb_shape_t shapes */ + xcb_parts[9].iov_base = (char *) shapes; + xcb_parts[9].iov_len = 0; + xcb_tmp = (char *)shapes; + for(i=0; i<nShapes; i++) { + xcb_tmp_len = xcb_xkb_shape_sizeof(xcb_tmp); + xcb_parts[9].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[10].iov_base = 0; + xcb_parts[10].iov_len = -xcb_parts[9].iov_len & 3; + /* xcb_xkb_section_t sections */ + xcb_parts[11].iov_base = (char *) sections; + xcb_parts[11].iov_len = 0; + xcb_tmp = (char *)sections; + for(i=0; i<nSections; i++) { + xcb_tmp_len = xcb_xkb_section_sizeof(xcb_tmp); + xcb_parts[11].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[12].iov_base = 0; + xcb_parts[12].iov_len = -xcb_parts[11].iov_len & 3; + /* xcb_xkb_doodad_t doodads */ + xcb_parts[13].iov_base = (char *) doodads; + xcb_parts[13].iov_len = 0; + xcb_tmp = (char *)doodads; + for(i=0; i<nDoodads; i++) { + xcb_tmp_len = xcb_xkb_doodad_sizeof(xcb_tmp); + xcb_parts[13].iov_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_parts[14].iov_base = 0; + xcb_parts[14].iov_len = -xcb_parts[13].iov_len & 3; + /* xcb_xkb_key_alias_t keyAliases */ + xcb_parts[15].iov_base = (char *) keyAliases; + xcb_parts[15].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_parts[16].iov_base = 0; + xcb_parts[16].iov_len = -xcb_parts[15].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_per_client_flags_cookie_t xcb_xkb_per_client_flags + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint32_t change + ** @param uint32_t value + ** @param uint32_t ctrlsToChange + ** @param uint32_t autoCtrls + ** @param uint32_t autoCtrlsValues + ** @returns xcb_xkb_per_client_flags_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_per_client_flags_cookie_t +xcb_xkb_per_client_flags (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint32_t change /**< */, + uint32_t value /**< */, + uint32_t ctrlsToChange /**< */, + uint32_t autoCtrls /**< */, + uint32_t autoCtrlsValues /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_PER_CLIENT_FLAGS, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_per_client_flags_cookie_t xcb_ret; + xcb_xkb_per_client_flags_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.change = change; + xcb_out.value = value; + xcb_out.ctrlsToChange = ctrlsToChange; + xcb_out.autoCtrls = autoCtrls; + xcb_out.autoCtrlsValues = autoCtrlsValues; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_per_client_flags_cookie_t xcb_xkb_per_client_flags_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint32_t change + ** @param uint32_t value + ** @param uint32_t ctrlsToChange + ** @param uint32_t autoCtrls + ** @param uint32_t autoCtrlsValues + ** @returns xcb_xkb_per_client_flags_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_per_client_flags_cookie_t +xcb_xkb_per_client_flags_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint32_t change /**< */, + uint32_t value /**< */, + uint32_t ctrlsToChange /**< */, + uint32_t autoCtrls /**< */, + uint32_t autoCtrlsValues /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_PER_CLIENT_FLAGS, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_per_client_flags_cookie_t xcb_ret; + xcb_xkb_per_client_flags_request_t xcb_out; + + xcb_out.deviceSpec = deviceSpec; + memset(xcb_out.pad0, 0, 2); + xcb_out.change = change; + xcb_out.value = value; + xcb_out.ctrlsToChange = ctrlsToChange; + xcb_out.autoCtrls = autoCtrls; + xcb_out.autoCtrlsValues = autoCtrlsValues; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_per_client_flags_reply_t * xcb_xkb_per_client_flags_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_per_client_flags_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_per_client_flags_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_per_client_flags_reply_t * +xcb_xkb_per_client_flags_reply (xcb_connection_t *c /**< */, + xcb_xkb_per_client_flags_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_per_client_flags_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_xkb_list_components_serialize (void **_buffer /**< */, + const xcb_xkb_list_components_request_t *_aux /**< */, + const xcb_xkb_string8_t *keymapsSpec /**< */, + const xcb_xkb_string8_t *keycodesSpec /**< */, + const xcb_xkb_string8_t *typesSpec /**< */, + const xcb_xkb_string8_t *compatMapSpec /**< */, + const xcb_xkb_string8_t *symbolsSpec /**< */, + const xcb_xkb_string8_t *geometrySpec /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[15]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + /* xcb_xkb_list_components_request_t.deviceSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->deviceSpec; + xcb_block_len += sizeof(xcb_xkb_device_spec_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_xkb_device_spec_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_device_spec_t); + /* xcb_xkb_list_components_request_t.maxNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->maxNames; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_list_components_request_t.keymapsSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keymapsSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* keymapsSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) keymapsSpec; + xcb_block_len += _aux->keymapsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->keymapsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.keycodesSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* keycodesSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) keycodesSpec; + xcb_block_len += _aux->keycodesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->keycodesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.typesSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* typesSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) typesSpec; + xcb_block_len += _aux->typesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->typesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.compatMapSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatMapSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* compatMapSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) compatMapSpec; + xcb_block_len += _aux->compatMapSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->compatMapSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.symbolsSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* symbolsSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) symbolsSpec; + xcb_block_len += _aux->symbolsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->symbolsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.geometrySpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometrySpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* geometrySpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) geometrySpec; + xcb_block_len += _aux->geometrySpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->geometrySpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_list_components_unserialize (const void *_buffer /**< */, + xcb_xkb_list_components_request_t **_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + xcb_xkb_list_components_request_t xcb_out; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + xcb_xkb_string8_t *keymapsSpec; + int keymapsSpec_len; + xcb_xkb_string8_t *keycodesSpec; + int keycodesSpec_len; + xcb_xkb_string8_t *typesSpec; + int typesSpec_len; + xcb_xkb_string8_t *compatMapSpec; + int compatMapSpec_len; + xcb_xkb_string8_t *symbolsSpec; + int symbolsSpec_len; + xcb_xkb_string8_t *geometrySpec; + int geometrySpec_len; + + /* xcb_xkb_list_components_request_t.major_opcode */ + xcb_out.major_opcode = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_list_components_request_t.minor_opcode */ + xcb_out.minor_opcode = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_list_components_request_t.length */ + xcb_out.length = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_list_components_request_t.deviceSpec */ + xcb_out.deviceSpec = *(xcb_xkb_device_spec_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_xkb_device_spec_t); + xcb_tmp += sizeof(xcb_xkb_device_spec_t); + xcb_align_to = ALIGNOF(xcb_xkb_device_spec_t); + /* xcb_xkb_list_components_request_t.maxNames */ + xcb_out.maxNames = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_list_components_request_t.keymapsSpecLen */ + xcb_out.keymapsSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* keymapsSpec */ + keymapsSpec = (xcb_xkb_string8_t *)xcb_tmp; + keymapsSpec_len = xcb_out.keymapsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += keymapsSpec_len; + xcb_tmp += keymapsSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.keycodesSpecLen */ + xcb_out.keycodesSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* keycodesSpec */ + keycodesSpec = (xcb_xkb_string8_t *)xcb_tmp; + keycodesSpec_len = xcb_out.keycodesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += keycodesSpec_len; + xcb_tmp += keycodesSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.typesSpecLen */ + xcb_out.typesSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* typesSpec */ + typesSpec = (xcb_xkb_string8_t *)xcb_tmp; + typesSpec_len = xcb_out.typesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += typesSpec_len; + xcb_tmp += typesSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.compatMapSpecLen */ + xcb_out.compatMapSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* compatMapSpec */ + compatMapSpec = (xcb_xkb_string8_t *)xcb_tmp; + compatMapSpec_len = xcb_out.compatMapSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += compatMapSpec_len; + xcb_tmp += compatMapSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.symbolsSpecLen */ + xcb_out.symbolsSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* symbolsSpec */ + symbolsSpec = (xcb_xkb_string8_t *)xcb_tmp; + symbolsSpec_len = xcb_out.symbolsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += symbolsSpec_len; + xcb_tmp += symbolsSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_list_components_request_t.geometrySpecLen */ + xcb_out.geometrySpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* geometrySpec */ + geometrySpec = (xcb_xkb_string8_t *)xcb_tmp; + geometrySpec_len = xcb_out.geometrySpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += geometrySpec_len; + xcb_tmp += geometrySpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == _aux) + return xcb_buffer_len; + + if (NULL == *_aux) { + /* allocate memory */ + *_aux = malloc(xcb_buffer_len); + } + + xcb_tmp = ((char *)*_aux)+xcb_buffer_len; + xcb_tmp -= geometrySpec_len; + memmove(xcb_tmp, geometrySpec, geometrySpec_len); + xcb_tmp -= symbolsSpec_len; + memmove(xcb_tmp, symbolsSpec, symbolsSpec_len); + xcb_tmp -= compatMapSpec_len; + memmove(xcb_tmp, compatMapSpec, compatMapSpec_len); + xcb_tmp -= typesSpec_len; + memmove(xcb_tmp, typesSpec, typesSpec_len); + xcb_tmp -= keycodesSpec_len; + memmove(xcb_tmp, keycodesSpec, keycodesSpec_len); + xcb_tmp -= keymapsSpec_len; + memmove(xcb_tmp, keymapsSpec, keymapsSpec_len); + **_aux = xcb_out; + + return xcb_buffer_len; +} + +int +xcb_xkb_list_components_sizeof (const void *_buffer /**< */) +{ + return xcb_xkb_list_components_unserialize(_buffer, NULL); +} + + +/***************************************************************************** + ** + ** xcb_xkb_list_components_cookie_t xcb_xkb_list_components + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t maxNames + ** @param uint8_t keymapsSpecLen + ** @param const xcb_xkb_string8_t *keymapsSpec + ** @param uint8_t keycodesSpecLen + ** @param const xcb_xkb_string8_t *keycodesSpec + ** @param uint8_t typesSpecLen + ** @param const xcb_xkb_string8_t *typesSpec + ** @param uint8_t compatMapSpecLen + ** @param const xcb_xkb_string8_t *compatMapSpec + ** @param uint8_t symbolsSpecLen + ** @param const xcb_xkb_string8_t *symbolsSpec + ** @param uint8_t geometrySpecLen + ** @param const xcb_xkb_string8_t *geometrySpec + ** @returns xcb_xkb_list_components_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_list_components_cookie_t +xcb_xkb_list_components (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t maxNames /**< */, + uint8_t keymapsSpecLen /**< */, + const xcb_xkb_string8_t *keymapsSpec /**< */, + uint8_t keycodesSpecLen /**< */, + const xcb_xkb_string8_t *keycodesSpec /**< */, + uint8_t typesSpecLen /**< */, + const xcb_xkb_string8_t *typesSpec /**< */, + uint8_t compatMapSpecLen /**< */, + const xcb_xkb_string8_t *compatMapSpec /**< */, + uint8_t symbolsSpecLen /**< */, + const xcb_xkb_string8_t *symbolsSpec /**< */, + uint8_t geometrySpecLen /**< */, + const xcb_xkb_string8_t *geometrySpec /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_LIST_COMPONENTS, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_list_components_cookie_t xcb_ret; + xcb_xkb_list_components_request_t xcb_out; + /* in the protocol description, variable size fields are followed by fixed size fields */ + void *xcb_aux = 0; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.maxNames = maxNames; + xcb_out.keymapsSpecLen = keymapsSpecLen; + xcb_out.keycodesSpecLen = keycodesSpecLen; + xcb_out.typesSpecLen = typesSpecLen; + xcb_out.compatMapSpecLen = compatMapSpecLen; + xcb_out.symbolsSpecLen = symbolsSpecLen; + xcb_out.geometrySpecLen = geometrySpecLen; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = 2*sizeof(uint8_t) + sizeof(uint16_t); + xcb_parts[3].iov_len = xcb_xkb_list_components_serialize (&xcb_aux, &xcb_out, keymapsSpec, keycodesSpec, typesSpec, compatMapSpec, symbolsSpec, geometrySpec); + xcb_parts[3].iov_base = (char *) xcb_aux; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + free(xcb_aux); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** xcb_xkb_list_components_cookie_t xcb_xkb_list_components_unchecked + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_device_spec_t deviceSpec + ** @param uint16_t maxNames + ** @param uint8_t keymapsSpecLen + ** @param const xcb_xkb_string8_t *keymapsSpec + ** @param uint8_t keycodesSpecLen + ** @param const xcb_xkb_string8_t *keycodesSpec + ** @param uint8_t typesSpecLen + ** @param const xcb_xkb_string8_t *typesSpec + ** @param uint8_t compatMapSpecLen + ** @param const xcb_xkb_string8_t *compatMapSpec + ** @param uint8_t symbolsSpecLen + ** @param const xcb_xkb_string8_t *symbolsSpec + ** @param uint8_t geometrySpecLen + ** @param const xcb_xkb_string8_t *geometrySpec + ** @returns xcb_xkb_list_components_cookie_t + ** + *****************************************************************************/ + +xcb_xkb_list_components_cookie_t +xcb_xkb_list_components_unchecked (xcb_connection_t *c /**< */, + xcb_xkb_device_spec_t deviceSpec /**< */, + uint16_t maxNames /**< */, + uint8_t keymapsSpecLen /**< */, + const xcb_xkb_string8_t *keymapsSpec /**< */, + uint8_t keycodesSpecLen /**< */, + const xcb_xkb_string8_t *keycodesSpec /**< */, + uint8_t typesSpecLen /**< */, + const xcb_xkb_string8_t *typesSpec /**< */, + uint8_t compatMapSpecLen /**< */, + const xcb_xkb_string8_t *compatMapSpec /**< */, + uint8_t symbolsSpecLen /**< */, + const xcb_xkb_string8_t *symbolsSpec /**< */, + uint8_t geometrySpecLen /**< */, + const xcb_xkb_string8_t *geometrySpec /**< */) +{ + static const xcb_protocol_request_t xcb_req = { + /* count */ 2, + /* ext */ &xcb_xkb_id, + /* opcode */ XCB_XKB_LIST_COMPONENTS, + /* isvoid */ 0 + }; + + struct iovec xcb_parts[4]; + xcb_xkb_list_components_cookie_t xcb_ret; + xcb_xkb_list_components_request_t xcb_out; + /* in the protocol description, variable size fields are followed by fixed size fields */ + void *xcb_aux = 0; + + xcb_out.deviceSpec = deviceSpec; + xcb_out.maxNames = maxNames; + xcb_out.keymapsSpecLen = keymapsSpecLen; + xcb_out.keycodesSpecLen = keycodesSpecLen; + xcb_out.typesSpecLen = typesSpecLen; + xcb_out.compatMapSpecLen = compatMapSpecLen; + xcb_out.symbolsSpecLen = symbolsSpecLen; + xcb_out.geometrySpecLen = geometrySpecLen; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = 2*sizeof(uint8_t) + sizeof(uint16_t); + xcb_parts[3].iov_len = xcb_xkb_list_components_serialize (&xcb_aux, &xcb_out, keymapsSpec, keycodesSpec, typesSpec, compatMapSpec, symbolsSpec, geometrySpec); + xcb_parts[3].iov_base = (char *) xcb_aux; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + free(xcb_aux); + return xcb_ret; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_list_components_keymaps_length + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_list_components_keymaps_length (const xcb_xkb_list_components_reply_t *R /**< */) +{ + return R->nKeymaps; +} + + +/***************************************************************************** + ** + ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_keymaps_iterator + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns xcb_xkb_listing_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_listing_iterator_t +xcb_xkb_list_components_keymaps_iterator (const xcb_xkb_list_components_reply_t *R /**< */) +{ + xcb_xkb_listing_iterator_t i; + i.data = (xcb_xkb_listing_t *) (R + 1); + i.rem = R->nKeymaps; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_list_components_keycodes_length + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_list_components_keycodes_length (const xcb_xkb_list_components_reply_t *R /**< */) +{ + return R->nKeycodes; +} + + +/***************************************************************************** + ** + ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_keycodes_iterator + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns xcb_xkb_listing_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_listing_iterator_t +xcb_xkb_list_components_keycodes_iterator (const xcb_xkb_list_components_reply_t *R /**< */) +{ + xcb_xkb_listing_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_keymaps_iterator(R)); + i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); + i.rem = R->nKeycodes; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_list_components_types_length + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_list_components_types_length (const xcb_xkb_list_components_reply_t *R /**< */) +{ + return R->nTypes; +} + + +/***************************************************************************** + ** + ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_types_iterator + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns xcb_xkb_listing_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_listing_iterator_t +xcb_xkb_list_components_types_iterator (const xcb_xkb_list_components_reply_t *R /**< */) +{ + xcb_xkb_listing_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_keycodes_iterator(R)); + i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); + i.rem = R->nTypes; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_list_components_compat_maps_length + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_list_components_compat_maps_length (const xcb_xkb_list_components_reply_t *R /**< */) +{ + return R->nCompatMaps; +} + + +/***************************************************************************** + ** + ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_compat_maps_iterator + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns xcb_xkb_listing_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_listing_iterator_t +xcb_xkb_list_components_compat_maps_iterator (const xcb_xkb_list_components_reply_t *R /**< */) +{ + xcb_xkb_listing_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_types_iterator(R)); + i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); + i.rem = R->nCompatMaps; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_list_components_symbols_length + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_list_components_symbols_length (const xcb_xkb_list_components_reply_t *R /**< */) +{ + return R->nSymbols; +} + + +/***************************************************************************** + ** + ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_symbols_iterator + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns xcb_xkb_listing_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_listing_iterator_t +xcb_xkb_list_components_symbols_iterator (const xcb_xkb_list_components_reply_t *R /**< */) +{ + xcb_xkb_listing_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_compat_maps_iterator(R)); + i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); + i.rem = R->nSymbols; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_list_components_geometries_length + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_list_components_geometries_length (const xcb_xkb_list_components_reply_t *R /**< */) +{ + return R->nGeometries; +} + + +/***************************************************************************** + ** + ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_geometries_iterator + ** + ** @param const xcb_xkb_list_components_reply_t *R + ** @returns xcb_xkb_listing_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_listing_iterator_t +xcb_xkb_list_components_geometries_iterator (const xcb_xkb_list_components_reply_t *R /**< */) +{ + xcb_xkb_listing_iterator_t i; + xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_symbols_iterator(R)); + i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); + i.rem = R->nGeometries; + i.index = (char *) i.data - (char *) R; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_list_components_reply_t * xcb_xkb_list_components_reply + ** + ** @param xcb_connection_t *c + ** @param xcb_xkb_list_components_cookie_t cookie + ** @param xcb_generic_error_t **e + ** @returns xcb_xkb_list_components_reply_t * + ** + *****************************************************************************/ + +xcb_xkb_list_components_reply_t * +xcb_xkb_list_components_reply (xcb_connection_t *c /**< */, + xcb_xkb_list_components_cookie_t cookie /**< */, + xcb_generic_error_t **e /**< */) +{ + return (xcb_xkb_list_components_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_xkb_get_kbd_by_name_serialize (void **_buffer /**< */, + const xcb_xkb_get_kbd_by_name_request_t *_aux /**< */, + const xcb_xkb_string8_t *keymapsSpec /**< */, + const xcb_xkb_string8_t *keycodesSpec /**< */, + const xcb_xkb_string8_t *typesSpec /**< */, + const xcb_xkb_string8_t *compatMapSpec /**< */, + const xcb_xkb_string8_t *symbolsSpec /**< */, + const xcb_xkb_string8_t *geometrySpec /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[18]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + /* xcb_xkb_get_kbd_by_name_request_t.deviceSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->deviceSpec; + xcb_block_len += sizeof(xcb_xkb_device_spec_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_xkb_device_spec_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_device_spec_t); + /* xcb_xkb_get_kbd_by_name_request_t.need */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->need; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_get_kbd_by_name_request_t.want */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->want; + xcb_block_len += sizeof(uint16_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_get_kbd_by_name_request_t.load */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->load; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_get_kbd_by_name_request_t.pad0 */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &xcb_pad; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_get_kbd_by_name_request_t.keymapsSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keymapsSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* keymapsSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) keymapsSpec; + xcb_block_len += _aux->keymapsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->keymapsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.keycodesSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* keycodesSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) keycodesSpec; + xcb_block_len += _aux->keycodesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->keycodesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.typesSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* typesSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) typesSpec; + xcb_block_len += _aux->typesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->typesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.compatMapSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatMapSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* compatMapSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) compatMapSpec; + xcb_block_len += _aux->compatMapSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->compatMapSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.symbolsSpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsSpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* symbolsSpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) symbolsSpec; + xcb_block_len += _aux->symbolsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->symbolsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.geometrySpecLen */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometrySpecLen; + xcb_block_len += sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* geometrySpec */ + xcb_parts[xcb_parts_idx].iov_base = (char *) geometrySpec; + xcb_block_len += _aux->geometrySpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts[xcb_parts_idx].iov_len = _aux->geometrySpecLen * sizeof(xcb_xkb_string8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_unserialize (const void *_buffer /**< */, + xcb_xkb_get_kbd_by_name_request_t **_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + xcb_xkb_get_kbd_by_name_request_t xcb_out; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + xcb_xkb_string8_t *keymapsSpec; + int keymapsSpec_len; + xcb_xkb_string8_t *keycodesSpec; + int keycodesSpec_len; + xcb_xkb_string8_t *typesSpec; + int typesSpec_len; + xcb_xkb_string8_t *compatMapSpec; + int compatMapSpec_len; + xcb_xkb_string8_t *symbolsSpec; + int symbolsSpec_len; + xcb_xkb_string8_t *geometrySpec; + int geometrySpec_len; + + /* xcb_xkb_get_kbd_by_name_request_t.major_opcode */ + xcb_out.major_opcode = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_get_kbd_by_name_request_t.minor_opcode */ + xcb_out.minor_opcode = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_get_kbd_by_name_request_t.length */ + xcb_out.length = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_get_kbd_by_name_request_t.deviceSpec */ + xcb_out.deviceSpec = *(xcb_xkb_device_spec_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_xkb_device_spec_t); + xcb_tmp += sizeof(xcb_xkb_device_spec_t); + xcb_align_to = ALIGNOF(xcb_xkb_device_spec_t); + /* xcb_xkb_get_kbd_by_name_request_t.need */ + xcb_out.need = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_get_kbd_by_name_request_t.want */ + xcb_out.want = *(uint16_t *)xcb_tmp; + xcb_block_len += sizeof(uint16_t); + xcb_tmp += sizeof(uint16_t); + xcb_align_to = ALIGNOF(uint16_t); + /* xcb_xkb_get_kbd_by_name_request_t.load */ + xcb_out.load = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_get_kbd_by_name_request_t.pad0 */ + xcb_out.pad0 = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* xcb_xkb_get_kbd_by_name_request_t.keymapsSpecLen */ + xcb_out.keymapsSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* keymapsSpec */ + keymapsSpec = (xcb_xkb_string8_t *)xcb_tmp; + keymapsSpec_len = xcb_out.keymapsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += keymapsSpec_len; + xcb_tmp += keymapsSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.keycodesSpecLen */ + xcb_out.keycodesSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* keycodesSpec */ + keycodesSpec = (xcb_xkb_string8_t *)xcb_tmp; + keycodesSpec_len = xcb_out.keycodesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += keycodesSpec_len; + xcb_tmp += keycodesSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.typesSpecLen */ + xcb_out.typesSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* typesSpec */ + typesSpec = (xcb_xkb_string8_t *)xcb_tmp; + typesSpec_len = xcb_out.typesSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += typesSpec_len; + xcb_tmp += typesSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.compatMapSpecLen */ + xcb_out.compatMapSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* compatMapSpec */ + compatMapSpec = (xcb_xkb_string8_t *)xcb_tmp; + compatMapSpec_len = xcb_out.compatMapSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += compatMapSpec_len; + xcb_tmp += compatMapSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.symbolsSpecLen */ + xcb_out.symbolsSpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* symbolsSpec */ + symbolsSpec = (xcb_xkb_string8_t *)xcb_tmp; + symbolsSpec_len = xcb_out.symbolsSpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += symbolsSpec_len; + xcb_tmp += symbolsSpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* xcb_xkb_get_kbd_by_name_request_t.geometrySpecLen */ + xcb_out.geometrySpecLen = *(uint8_t *)xcb_tmp; + xcb_block_len += sizeof(uint8_t); + xcb_tmp += sizeof(uint8_t); + xcb_align_to = ALIGNOF(uint8_t); + /* geometrySpec */ + geometrySpec = (xcb_xkb_string8_t *)xcb_tmp; + geometrySpec_len = xcb_out.geometrySpecLen * sizeof(xcb_xkb_string8_t); + xcb_block_len += geometrySpec_len; + xcb_tmp += geometrySpec_len; + xcb_align_to = ALIGNOF(xcb_xkb_string8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == _aux) + return xcb_buffer_len; + + if (NULL == *_aux) { + /* allocate memory */ + *_aux = malloc(xcb_buffer_len); + } + + xcb_tmp = ((char *)*_aux)+xcb_buffer_len; + xcb_tmp -= geometrySpec_len; + memmove(xcb_tmp, geometrySpec, geometrySpec_len); + xcb_tmp -= symbolsSpec_len; + memmove(xcb_tmp, symbolsSpec, symbolsSpec_len); + xcb_tmp -= compatMapSpec_len; + memmove(xcb_tmp, compatMapSpec, compatMapSpec_len); + xcb_tmp -= typesSpec_len; + memmove(xcb_tmp, typesSpec, typesSpec_len); + xcb_tmp -= keycodesSpec_len; + memmove(xcb_tmp, keycodesSpec, keycodesSpec_len); + xcb_tmp -= keymapsSpec_len; + memmove(xcb_tmp, keymapsSpec, keymapsSpec_len); + **_aux = xcb_out; + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_sizeof (const void *_buffer /**< */) +{ + return xcb_xkb_get_kbd_by_name_unserialize(_buffer, NULL); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.nTypes; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_type_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_xkb_key_type_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_type_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_type_iterator_t i; + i.data = /* replies */ S->types.map.types_rtrn; + i.rem = /* replies */ S->types.nTypes; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.nKeySyms; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_xkb_key_sym_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_sym_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_sym_map_iterator_t i; + i.data = /* replies */ S->types.map.syms_rtrn; + i.rem = /* replies */ S->types.nKeySyms; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.map.acts_rtrn_count; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.nKeyActions; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->types.map.acts_rtrn_count + /* replies */ S->types.nKeyActions; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_t * xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_action_t * + ** + *****************************************************************************/ + +xcb_xkb_action_t * +xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.map.acts_rtrn_acts; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.totalActions; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_xkb_action_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_action_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_action_iterator_t i; + i.data = /* replies */ S->types.map.acts_rtrn_acts; + i.rem = /* replies */ S->types.totalActions; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_t * xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_set_behavior_t * + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_t * +xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.map.behaviors_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.totalKeyBehaviors; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_xkb_set_behavior_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_set_behavior_iterator_t i; + i.data = /* replies */ S->types.map.behaviors_rtrn; + i.rem = /* replies */ S->types.totalKeyBehaviors; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.map.vmods_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.nVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->types.map.vmods_rtrn + /* replies */ S->types.nVModMapKeys; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_t * xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_set_explicit_t * + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_t * +xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.map.explicit_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.totalKeyExplicit; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_xkb_set_explicit_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_set_explicit_iterator_t i; + i.data = /* replies */ S->types.map.explicit_rtrn; + i.rem = /* replies */ S->types.totalKeyExplicit; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_t * xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_key_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_t * +xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.map.modmap_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.totalModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_xkb_key_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_mod_map_iterator_t i; + i.data = /* replies */ S->types.map.modmap_rtrn; + i.rem = /* replies */ S->types.totalModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_key_v_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_t * +xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.map.vmodmap_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->types.totalVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R + ** @returns xcb_xkb_key_v_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_v_mod_map_iterator_t i; + i.data = /* replies */ S->types.map.vmodmap_rtrn; + i.rem = /* replies */ S->types.totalVModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + +int +xcb_xkb_get_kbd_by_name_replies_types_map_serialize (void **_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + const xcb_xkb_get_kbd_by_name_replies_types_map_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[19]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types_rtrn; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->types_rtrn; + for(i=0; i<nTypes; i++) { + xcb_block_len = xcb_xkb_key_type_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->syms_rtrn; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->syms_rtrn; + for(i=0; i<nKeySyms; i++) { + xcb_block_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_count */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_count; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_acts */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_acts; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors_rtrn; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods_rtrn; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit_rtrn; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap_rtrn; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap_rtrn; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_replies_types_map_unpack (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + xcb_xkb_get_kbd_by_name_replies_types_map_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types_rtrn */ + _aux->types_rtrn = (xcb_xkb_key_type_t *)xcb_tmp; + for(i=0; i<nTypes; i++) { + xcb_tmp_len = xcb_xkb_key_type_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms_rtrn */ + _aux->syms_rtrn = (xcb_xkb_key_sym_map_t *)xcb_tmp; + for(i=0; i<nKeySyms; i++) { + xcb_tmp_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_count */ + _aux->acts_rtrn_count = (uint8_t *)xcb_tmp; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_acts */ + _aux->acts_rtrn_acts = (xcb_xkb_action_t *)xcb_tmp; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors_rtrn */ + _aux->behaviors_rtrn = (xcb_xkb_set_behavior_t *)xcb_tmp; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods_rtrn */ + _aux->vmods_rtrn = (uint8_t *)xcb_tmp; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit_rtrn */ + _aux->explicit_rtrn = (xcb_xkb_set_explicit_t *)xcb_tmp; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap_rtrn */ + _aux->modmap_rtrn = (xcb_xkb_key_mod_map_t *)xcb_tmp; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap_rtrn */ + _aux->vmodmap_rtrn = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_replies_types_map_sizeof (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */) +{ + xcb_xkb_get_kbd_by_name_replies_types_map_t _aux; + return xcb_xkb_get_kbd_by_name_replies_types_map_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_types_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_types_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.nTypes; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_type_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_types_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_xkb_key_type_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_type_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_types_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_type_iterator_t i; + i.data = /* replies */ S->client_symbols.map.types_rtrn; + i.rem = /* replies */ S->client_symbols.nTypes; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_syms_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_syms_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.nKeySyms; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_syms_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_xkb_key_sym_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_sym_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_syms_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_sym_map_iterator_t i; + i.data = /* replies */ S->client_symbols.map.syms_rtrn; + i.rem = /* replies */ S->client_symbols.nKeySyms; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_count + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_count (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.map.acts_rtrn_count; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_count_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_count_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.nKeyActions; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_count_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_count_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->client_symbols.map.acts_rtrn_count + /* replies */ S->client_symbols.nKeyActions; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_t * xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_acts + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_action_t * + ** + *****************************************************************************/ + +xcb_xkb_action_t * +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_acts (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.map.acts_rtrn_acts; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_acts_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_acts_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.totalActions; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_acts_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_xkb_action_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_action_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_acts_rtrn_acts_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_action_iterator_t i; + i.data = /* replies */ S->client_symbols.map.acts_rtrn_acts; + i.rem = /* replies */ S->client_symbols.totalActions; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_t * xcb_xkb_get_kbd_by_name_replies_client_symbols_map_behaviors_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_set_behavior_t * + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_t * +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_behaviors_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.map.behaviors_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_behaviors_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_behaviors_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.totalKeyBehaviors; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_behaviors_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_xkb_set_behavior_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_behaviors_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_set_behavior_iterator_t i; + i.data = /* replies */ S->client_symbols.map.behaviors_rtrn; + i.rem = /* replies */ S->client_symbols.totalKeyBehaviors; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmods_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmods_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.map.vmods_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmods_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmods_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.nVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmods_rtrn_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmods_rtrn_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->client_symbols.map.vmods_rtrn + /* replies */ S->client_symbols.nVModMapKeys; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_t * xcb_xkb_get_kbd_by_name_replies_client_symbols_map_explicit_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_set_explicit_t * + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_t * +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_explicit_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.map.explicit_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_explicit_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_explicit_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.totalKeyExplicit; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_explicit_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_xkb_set_explicit_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_explicit_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_set_explicit_iterator_t i; + i.data = /* replies */ S->client_symbols.map.explicit_rtrn; + i.rem = /* replies */ S->client_symbols.totalKeyExplicit; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_t * xcb_xkb_get_kbd_by_name_replies_client_symbols_map_modmap_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_key_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_t * +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_modmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.map.modmap_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_modmap_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_modmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.totalModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_modmap_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_xkb_key_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_modmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_mod_map_iterator_t i; + i.data = /* replies */ S->client_symbols.map.modmap_rtrn; + i.rem = /* replies */ S->client_symbols.totalModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmodmap_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_key_v_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_t * +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmodmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.map.vmodmap_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmodmap_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmodmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->client_symbols.totalVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmodmap_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *R + ** @returns xcb_xkb_key_v_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_vmodmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_v_mod_map_iterator_t i; + i.data = /* replies */ S->client_symbols.map.vmodmap_rtrn; + i.rem = /* replies */ S->client_symbols.totalVModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_serialize (void **_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + const xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[19]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types_rtrn; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->types_rtrn; + for(i=0; i<nTypes; i++) { + xcb_block_len = xcb_xkb_key_type_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->syms_rtrn; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->syms_rtrn; + for(i=0; i<nKeySyms; i++) { + xcb_block_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_count */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_count; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_acts */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_acts; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors_rtrn; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods_rtrn; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit_rtrn; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap_rtrn; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap_rtrn; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_unpack (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types_rtrn */ + _aux->types_rtrn = (xcb_xkb_key_type_t *)xcb_tmp; + for(i=0; i<nTypes; i++) { + xcb_tmp_len = xcb_xkb_key_type_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms_rtrn */ + _aux->syms_rtrn = (xcb_xkb_key_sym_map_t *)xcb_tmp; + for(i=0; i<nKeySyms; i++) { + xcb_tmp_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_count */ + _aux->acts_rtrn_count = (uint8_t *)xcb_tmp; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_acts */ + _aux->acts_rtrn_acts = (xcb_xkb_action_t *)xcb_tmp; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors_rtrn */ + _aux->behaviors_rtrn = (xcb_xkb_set_behavior_t *)xcb_tmp; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods_rtrn */ + _aux->vmods_rtrn = (uint8_t *)xcb_tmp; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit_rtrn */ + _aux->explicit_rtrn = (xcb_xkb_set_explicit_t *)xcb_tmp; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap_rtrn */ + _aux->modmap_rtrn = (xcb_xkb_key_mod_map_t *)xcb_tmp; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap_rtrn */ + _aux->vmodmap_rtrn = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_replies_client_symbols_map_sizeof (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */) +{ + xcb_xkb_get_kbd_by_name_replies_client_symbols_map_t _aux; + return xcb_xkb_get_kbd_by_name_replies_client_symbols_map_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_types_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_types_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.nTypes; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_type_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_types_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_xkb_key_type_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_type_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_types_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_type_iterator_t i; + i.data = /* replies */ S->server_symbols.map.types_rtrn; + i.rem = /* replies */ S->server_symbols.nTypes; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_syms_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_syms_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.nKeySyms; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_syms_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_xkb_key_sym_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_sym_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_syms_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_sym_map_iterator_t i; + i.data = /* replies */ S->server_symbols.map.syms_rtrn; + i.rem = /* replies */ S->server_symbols.nKeySyms; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_count + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_count (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.map.acts_rtrn_count; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_count_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_count_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.nKeyActions; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_count_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_count_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->server_symbols.map.acts_rtrn_count + /* replies */ S->server_symbols.nKeyActions; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_t * xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_acts + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_action_t * + ** + *****************************************************************************/ + +xcb_xkb_action_t * +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_acts (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.map.acts_rtrn_acts; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_acts_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_acts_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.totalActions; +} + + +/***************************************************************************** + ** + ** xcb_xkb_action_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_acts_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_xkb_action_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_action_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_acts_rtrn_acts_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_action_iterator_t i; + i.data = /* replies */ S->server_symbols.map.acts_rtrn_acts; + i.rem = /* replies */ S->server_symbols.totalActions; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_t * xcb_xkb_get_kbd_by_name_replies_server_symbols_map_behaviors_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_set_behavior_t * + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_t * +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_behaviors_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.map.behaviors_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_behaviors_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_behaviors_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.totalKeyBehaviors; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_behaviors_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_xkb_set_behavior_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_behavior_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_behaviors_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_set_behavior_iterator_t i; + i.data = /* replies */ S->server_symbols.map.behaviors_rtrn; + i.rem = /* replies */ S->server_symbols.totalKeyBehaviors; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmods_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmods_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.map.vmods_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmods_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmods_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.nVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmods_rtrn_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmods_rtrn_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->server_symbols.map.vmods_rtrn + /* replies */ S->server_symbols.nVModMapKeys; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_t * xcb_xkb_get_kbd_by_name_replies_server_symbols_map_explicit_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_set_explicit_t * + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_t * +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_explicit_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.map.explicit_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_explicit_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_explicit_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.totalKeyExplicit; +} + + +/***************************************************************************** + ** + ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_explicit_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_xkb_set_explicit_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_set_explicit_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_explicit_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_set_explicit_iterator_t i; + i.data = /* replies */ S->server_symbols.map.explicit_rtrn; + i.rem = /* replies */ S->server_symbols.totalKeyExplicit; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_t * xcb_xkb_get_kbd_by_name_replies_server_symbols_map_modmap_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_key_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_t * +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_modmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.map.modmap_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_modmap_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_modmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.totalModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_modmap_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_xkb_key_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_mod_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_modmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_mod_map_iterator_t i; + i.data = /* replies */ S->server_symbols.map.modmap_rtrn; + i.rem = /* replies */ S->server_symbols.totalModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmodmap_rtrn + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_key_v_mod_map_t * + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_t * +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmodmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.map.vmodmap_rtrn; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmodmap_rtrn_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmodmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->server_symbols.totalVModMapKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmodmap_rtrn_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *R + ** @returns xcb_xkb_key_v_mod_map_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_v_mod_map_iterator_t +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_vmodmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_v_mod_map_iterator_t i; + i.data = /* replies */ S->server_symbols.map.vmodmap_rtrn; + i.rem = /* replies */ S->server_symbols.totalVModMapKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_serialize (void **_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + const xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[19]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types_rtrn; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->types_rtrn; + for(i=0; i<nTypes; i++) { + xcb_block_len = xcb_xkb_key_type_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->syms_rtrn; + xcb_parts[xcb_parts_idx].iov_len = 0; + xcb_tmp = (char *) _aux->syms_rtrn; + for(i=0; i<nKeySyms; i++) { + xcb_block_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_parts[xcb_parts_idx].iov_len += xcb_block_len; + } + xcb_block_len = xcb_parts[xcb_parts_idx].iov_len; + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_count */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_count; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_acts */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_acts; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors_rtrn; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods_rtrn; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts[xcb_parts_idx].iov_len = nVModMapKeys * sizeof(xcb_keycode_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit_rtrn; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap_rtrn; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap_rtrn */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap_rtrn; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_unpack (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */, + xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + unsigned int i; + unsigned int xcb_tmp_len; + + if(present & XCB_XKB_MAP_PART_KEY_TYPES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* types_rtrn */ + _aux->types_rtrn = (xcb_xkb_key_type_t *)xcb_tmp; + for(i=0; i<nTypes; i++) { + xcb_tmp_len = xcb_xkb_key_type_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_type_t); + } + if(present & XCB_XKB_MAP_PART_KEY_SYMS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* syms_rtrn */ + _aux->syms_rtrn = (xcb_xkb_key_sym_map_t *)xcb_tmp; + for(i=0; i<nKeySyms; i++) { + xcb_tmp_len = xcb_xkb_key_sym_map_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_xkb_key_sym_map_t); + } + if(present & XCB_XKB_MAP_PART_KEY_ACTIONS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_count */ + _aux->acts_rtrn_count = (uint8_t *)xcb_tmp; + xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* acts_rtrn_acts */ + _aux->acts_rtrn_acts = (xcb_xkb_action_t *)xcb_tmp; + xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_action_t); + } + if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* behaviors_rtrn */ + _aux->behaviors_rtrn = (xcb_xkb_set_behavior_t *)xcb_tmp; + xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmods_rtrn */ + _aux->vmods_rtrn = (uint8_t *)xcb_tmp; + xcb_block_len += nVModMapKeys * sizeof(xcb_keycode_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + } + if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* explicit_rtrn */ + _aux->explicit_rtrn = (xcb_xkb_set_explicit_t *)xcb_tmp; + xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); + } + if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modmap_rtrn */ + _aux->modmap_rtrn = (xcb_xkb_key_mod_map_t *)xcb_tmp; + xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); + } + if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* vmodmap_rtrn */ + _aux->vmodmap_rtrn = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; + xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_replies_server_symbols_map_sizeof (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint8_t nKeySyms /**< */, + uint8_t nKeyActions /**< */, + uint16_t totalActions /**< */, + uint8_t totalKeyBehaviors /**< */, + uint8_t nVModMapKeys /**< */, + uint8_t totalKeyExplicit /**< */, + uint8_t totalModMapKeys /**< */, + uint8_t totalVModMapKeys /**< */, + uint16_t present /**< */) +{ + xcb_xkb_get_kbd_by_name_replies_server_symbols_map_t _aux; + return xcb_xkb_get_kbd_by_name_replies_server_symbols_map_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, nVModMapKeys, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.valueList.typeNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.nTypes; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->key_names.valueList.typeNames + /* replies */ S->key_names.nTypes; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** uint8_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns uint8_t * + ** + *****************************************************************************/ + +uint8_t * +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 /**< */) +{ + return /* replies */ S->key_names.valueList.nLevelsPerType; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +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 /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.nKTLevels; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +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 /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->key_names.valueList.nLevelsPerType + /* replies */ S->key_names.nKTLevels; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.valueList.ktLevelNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +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 /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return qt_xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +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 /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->key_names.valueList.ktLevelNames + qt_xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.valueList.indicatorNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return xcb_popcount(/* replies */ S->key_names.indicators); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->key_names.valueList.indicatorNames + xcb_popcount(/* replies */ S->key_names.indicators); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.valueList.virtualModNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +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 /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return xcb_popcount(/* replies */ S->key_names.virtualMods); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +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 /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->key_names.valueList.virtualModNames + xcb_popcount(/* replies */ S->key_names.virtualMods); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.valueList.groups; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return xcb_popcount(/* replies */ S->key_names.groupNames); +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->key_names.valueList.groups + xcb_popcount(/* replies */ S->key_names.groupNames); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_name_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_key_name_t * + ** + *****************************************************************************/ + +xcb_xkb_key_name_t * +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.valueList.keyNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.nKeys; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_name_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_xkb_key_name_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_name_iterator_t +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_name_iterator_t i; + i.data = /* replies */ S->key_names.valueList.keyNames; + i.rem = /* replies */ S->key_names.nKeys; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_alias_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_xkb_key_alias_t * + ** + *****************************************************************************/ + +xcb_xkb_key_alias_t * +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.valueList.keyAliases; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.nKeyAliases; +} + + +/***************************************************************************** + ** + ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_xkb_key_alias_iterator_t + ** + *****************************************************************************/ + +xcb_xkb_key_alias_iterator_t +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_xkb_key_alias_iterator_t i; + i.data = /* replies */ S->key_names.valueList.keyAliases; + i.rem = /* replies */ S->key_names.nKeyAliases; + i.index = (char *) i.data - (char *) S; + return i; +} + + +/***************************************************************************** + ** + ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_t *S + ** @returns xcb_atom_t * + ** + *****************************************************************************/ + +xcb_atom_t * +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.valueList.radioGroupNames; +} + + +/***************************************************************************** + ** + ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns int + ** + *****************************************************************************/ + +int +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 /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + return /* replies */ S->key_names.nRadioGroups; +} + + +/***************************************************************************** + ** + ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end + ** + ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R + ** @returns xcb_generic_iterator_t + ** + *****************************************************************************/ + +xcb_generic_iterator_t +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 /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) +{ + xcb_generic_iterator_t i; + i.data = /* replies */ S->key_names.valueList.radioGroupNames + /* replies */ S->key_names.nRadioGroups; + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +} + +int +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize (void **_buffer /**< */, + uint8_t nTypes /**< */, + uint16_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint16_t virtualMods /**< */, + uint8_t groupNames /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint8_t nRadioGroups /**< */, + uint32_t which /**< */, + const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *_aux /**< */) +{ + char *xcb_out = *_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_align_to; + + unsigned int xcb_pad = 0; + char xcb_pad0[3] = {0, 0, 0}; + struct iovec xcb_parts[25]; + unsigned int xcb_parts_idx = 0; + unsigned int xcb_block_len = 0; + unsigned int i; + char *xcb_tmp; + + if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.keycodesName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.geometryName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.symbolsName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.physSymbolsName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_TYPES) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.typesName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_COMPAT) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.compatName */ + xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; + xcb_block_len += sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* typeNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; + xcb_block_len += nTypes * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* nLevelsPerType */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; + xcb_block_len += nKTLevels * sizeof(uint8_t); + xcb_parts[xcb_parts_idx].iov_len = nKTLevels * sizeof(uint8_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* ktLevelNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; + xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* indicatorNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; + xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* virtualModNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; + xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* groups */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; + xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; + xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); + xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyAliases */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; + xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); + } + if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + /* radioGroupNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; + xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); + xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; + xcb_parts[xcb_parts_idx].iov_len = xcb_pad; + xcb_parts_idx++; + xcb_pad = 0; + } + xcb_block_len = 0; + + if (NULL == xcb_out) { + /* allocate memory */ + xcb_out = malloc(xcb_buffer_len); + *_buffer = xcb_out; + } + + xcb_tmp = xcb_out; + for(i=0; i<xcb_parts_idx; i++) { + if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) + memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); + if (0 != xcb_parts[i].iov_len) + xcb_tmp += xcb_parts[i].iov_len; + } + + return xcb_buffer_len; +} + +int +xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack (const void *_buffer /**< */, + uint8_t nTypes /**< */, + uint16_t nKTLevels /**< */, + uint32_t indicators /**< */, + uint16_t virtualMods /**< */, + uint8_t groupNames /**< */, + uint8_t nKeys /**< */, + uint8_t nKeyAliases /**< */, + uint8_t nRadioGroups /**< */, + uint32_t which /**< */, + xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *_aux /**< */) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.keycodesName */ + _aux->keycodesName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.geometryName */ + _aux->geometryName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.symbolsName */ + _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.physSymbolsName */ + _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_TYPES) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.typesName */ + _aux->typesName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_COMPAT) { + /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.compatName */ + _aux->compatName = *(xcb_atom_t *)xcb_tmp; + xcb_block_len += sizeof(xcb_atom_t); + xcb_tmp += sizeof(xcb_atom_t); + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* typeNames */ + _aux->typeNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += nTypes * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* nLevelsPerType */ + _aux->nLevelsPerType = (uint8_t *)xcb_tmp; + xcb_block_len += nKTLevels * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* ktLevelNames */ + _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* indicatorNames */ + _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* virtualModNames */ + _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* groups */ + _aux->groups = (xcb_atom_t *)xcb_tmp; + xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyNames */ + _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; + xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); + } + if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* keyAliases */ + _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; + xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); + } + if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* radioGroupNames */ + _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; + xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block |