1 /* 2 * This file generated automatically from xinerama.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6 #ifdef HAVE_CONFIG_H 7 #include "config.h" 8 #endif 9 #include <stdlib.h> 10 #include <string.h> 11 #include <assert.h> 12 #include <stddef.h> /* for offsetof() */ 13 #include "xcbext.h" 14 #include "xinerama.h" 15 16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) 17 #include "xproto.h" 18 19 xcb_extension_t xcb_xinerama_id = { "XINERAMA", 0 }; 20 21 void 22 xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i) 23 { 24 --i->rem; 25 ++i->data; 26 i->index += sizeof(xcb_xinerama_screen_info_t); 27 } 28 29 xcb_generic_iterator_t 30 xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i) 31 { 32 xcb_generic_iterator_t ret; 33 ret.data = i.data + i.rem; 34 ret.index = i.index + ((char *) ret.data - (char *) i.data); 35 ret.rem = 0; 36 return ret; 37 } 38 39 xcb_xinerama_query_version_cookie_t 40 xcb_xinerama_query_version (xcb_connection_t *c, 41 uint8_t major, 42 uint8_t minor) 43 { 44 static const xcb_protocol_request_t xcb_req = { 45 .count = 2, 46 .ext = &xcb_xinerama_id, 47 .opcode = XCB_XINERAMA_QUERY_VERSION, 48 .isvoid = 0 49 }; 50 51 struct iovec xcb_parts[4]; 52 xcb_xinerama_query_version_cookie_t xcb_ret; 53 xcb_xinerama_query_version_request_t xcb_out; 54 55 xcb_out.major = major; 56 xcb_out.minor = minor; 57 58 xcb_parts[2].iov_base = (char *) &xcb_out; 59 xcb_parts[2].iov_len = sizeof(xcb_out); 60 xcb_parts[3].iov_base = 0; 61 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 62 63 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 64 return xcb_ret; 65 } 66 67 xcb_xinerama_query_version_cookie_t 68 xcb_xinerama_query_version_unchecked (xcb_connection_t *c, 69 uint8_t major, 70 uint8_t minor) 71 { 72 static const xcb_protocol_request_t xcb_req = { 73 .count = 2, 74 .ext = &xcb_xinerama_id, 75 .opcode = XCB_XINERAMA_QUERY_VERSION, 76 .isvoid = 0 77 }; 78 79 struct iovec xcb_parts[4]; 80 xcb_xinerama_query_version_cookie_t xcb_ret; 81 xcb_xinerama_query_version_request_t xcb_out; 82 83 xcb_out.major = major; 84 xcb_out.minor = minor; 85 86 xcb_parts[2].iov_base = (char *) &xcb_out; 87 xcb_parts[2].iov_len = sizeof(xcb_out); 88 xcb_parts[3].iov_base = 0; 89 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 90 91 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 92 return xcb_ret; 93 } 94 95 xcb_xinerama_query_version_reply_t * 96 xcb_xinerama_query_version_reply (xcb_connection_t *c, 97 xcb_xinerama_query_version_cookie_t cookie /**< */, 98 xcb_generic_error_t **e) 99 { 100 return (xcb_xinerama_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 101 } 102 103 xcb_xinerama_get_state_cookie_t 104 xcb_xinerama_get_state (xcb_connection_t *c, 105 xcb_window_t window) 106 { 107 static const xcb_protocol_request_t xcb_req = { 108 .count = 2, 109 .ext = &xcb_xinerama_id, 110 .opcode = XCB_XINERAMA_GET_STATE, 111 .isvoid = 0 112 }; 113 114 struct iovec xcb_parts[4]; 115 xcb_xinerama_get_state_cookie_t xcb_ret; 116 xcb_xinerama_get_state_request_t xcb_out; 117 118 xcb_out.window = window; 119 120 xcb_parts[2].iov_base = (char *) &xcb_out; 121 xcb_parts[2].iov_len = sizeof(xcb_out); 122 xcb_parts[3].iov_base = 0; 123 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 124 125 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 126 return xcb_ret; 127 } 128 129 xcb_xinerama_get_state_cookie_t 130 xcb_xinerama_get_state_unchecked (xcb_connection_t *c, 131 xcb_window_t window) 132 { 133 static const xcb_protocol_request_t xcb_req = { 134 .count = 2, 135 .ext = &xcb_xinerama_id, 136 .opcode = XCB_XINERAMA_GET_STATE, 137 .isvoid = 0 138 }; 139 140 struct iovec xcb_parts[4]; 141 xcb_xinerama_get_state_cookie_t xcb_ret; 142 xcb_xinerama_get_state_request_t xcb_out; 143 144 xcb_out.window = window; 145 146 xcb_parts[2].iov_base = (char *) &xcb_out; 147 xcb_parts[2].iov_len = sizeof(xcb_out); 148 xcb_parts[3].iov_base = 0; 149 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 150 151 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 152 return xcb_ret; 153 } 154 155 xcb_xinerama_get_state_reply_t * 156 xcb_xinerama_get_state_reply (xcb_connection_t *c, 157 xcb_xinerama_get_state_cookie_t cookie /**< */, 158 xcb_generic_error_t **e) 159 { 160 return (xcb_xinerama_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 161 } 162 163 xcb_xinerama_get_screen_count_cookie_t 164 xcb_xinerama_get_screen_count (xcb_connection_t *c, 165 xcb_window_t window) 166 { 167 static const xcb_protocol_request_t xcb_req = { 168 .count = 2, 169 .ext = &xcb_xinerama_id, 170 .opcode = XCB_XINERAMA_GET_SCREEN_COUNT, 171 .isvoid = 0 172 }; 173 174 struct iovec xcb_parts[4]; 175 xcb_xinerama_get_screen_count_cookie_t xcb_ret; 176 xcb_xinerama_get_screen_count_request_t xcb_out; 177 178 xcb_out.window = window; 179 180 xcb_parts[2].iov_base = (char *) &xcb_out; 181 xcb_parts[2].iov_len = sizeof(xcb_out); 182 xcb_parts[3].iov_base = 0; 183 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 184 185 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 186 return xcb_ret; 187 } 188 189 xcb_xinerama_get_screen_count_cookie_t 190 xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c, 191 xcb_window_t window) 192 { 193 static const xcb_protocol_request_t xcb_req = { 194 .count = 2, 195 .ext = &xcb_xinerama_id, 196 .opcode = XCB_XINERAMA_GET_SCREEN_COUNT, 197 .isvoid = 0 198 }; 199 200 struct iovec xcb_parts[4]; 201 xcb_xinerama_get_screen_count_cookie_t xcb_ret; 202 xcb_xinerama_get_screen_count_request_t xcb_out; 203 204 xcb_out.window = window; 205 206 xcb_parts[2].iov_base = (char *) &xcb_out; 207 xcb_parts[2].iov_len = sizeof(xcb_out); 208 xcb_parts[3].iov_base = 0; 209 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 210 211 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 212 return xcb_ret; 213 } 214 215 xcb_xinerama_get_screen_count_reply_t * 216 xcb_xinerama_get_screen_count_reply (xcb_connection_t *c, 217 xcb_xinerama_get_screen_count_cookie_t cookie /**< */, 218 xcb_generic_error_t **e) 219 { 220 return (xcb_xinerama_get_screen_count_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 221 } 222 223 xcb_xinerama_get_screen_size_cookie_t 224 xcb_xinerama_get_screen_size (xcb_connection_t *c, 225 xcb_window_t window, 226 uint32_t screen) 227 { 228 static const xcb_protocol_request_t xcb_req = { 229 .count = 2, 230 .ext = &xcb_xinerama_id, 231 .opcode = XCB_XINERAMA_GET_SCREEN_SIZE, 232 .isvoid = 0 233 }; 234 235 struct iovec xcb_parts[4]; 236 xcb_xinerama_get_screen_size_cookie_t xcb_ret; 237 xcb_xinerama_get_screen_size_request_t xcb_out; 238 239 xcb_out.window = window; 240 xcb_out.screen = screen; 241 242 xcb_parts[2].iov_base = (char *) &xcb_out; 243 xcb_parts[2].iov_len = sizeof(xcb_out); 244 xcb_parts[3].iov_base = 0; 245 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 246 247 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 248 return xcb_ret; 249 } 250 251 xcb_xinerama_get_screen_size_cookie_t 252 xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c, 253 xcb_window_t window, 254 uint32_t screen) 255 { 256 static const xcb_protocol_request_t xcb_req = { 257 .count = 2, 258 .ext = &xcb_xinerama_id, 259 .opcode = XCB_XINERAMA_GET_SCREEN_SIZE, 260 .isvoid = 0 261 }; 262 263 struct iovec xcb_parts[4]; 264 xcb_xinerama_get_screen_size_cookie_t xcb_ret; 265 xcb_xinerama_get_screen_size_request_t xcb_out; 266 267 xcb_out.window = window; 268 xcb_out.screen = screen; 269 270 xcb_parts[2].iov_base = (char *) &xcb_out; 271 xcb_parts[2].iov_len = sizeof(xcb_out); 272 xcb_parts[3].iov_base = 0; 273 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 274 275 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 276 return xcb_ret; 277 } 278 279 xcb_xinerama_get_screen_size_reply_t * 280 xcb_xinerama_get_screen_size_reply (xcb_connection_t *c, 281 xcb_xinerama_get_screen_size_cookie_t cookie /**< */, 282 xcb_generic_error_t **e) 283 { 284 return (xcb_xinerama_get_screen_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 285 } 286 287 xcb_xinerama_is_active_cookie_t 288 xcb_xinerama_is_active (xcb_connection_t *c) 289 { 290 static const xcb_protocol_request_t xcb_req = { 291 .count = 2, 292 .ext = &xcb_xinerama_id, 293 .opcode = XCB_XINERAMA_IS_ACTIVE, 294 .isvoid = 0 295 }; 296 297 struct iovec xcb_parts[4]; 298 xcb_xinerama_is_active_cookie_t xcb_ret; 299 xcb_xinerama_is_active_request_t xcb_out; 300 301 302 xcb_parts[2].iov_base = (char *) &xcb_out; 303 xcb_parts[2].iov_len = sizeof(xcb_out); 304 xcb_parts[3].iov_base = 0; 305 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 306 307 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 308 return xcb_ret; 309 } 310 311 xcb_xinerama_is_active_cookie_t 312 xcb_xinerama_is_active_unchecked (xcb_connection_t *c) 313 { 314 static const xcb_protocol_request_t xcb_req = { 315 .count = 2, 316 .ext = &xcb_xinerama_id, 317 .opcode = XCB_XINERAMA_IS_ACTIVE, 318 .isvoid = 0 319 }; 320 321 struct iovec xcb_parts[4]; 322 xcb_xinerama_is_active_cookie_t xcb_ret; 323 xcb_xinerama_is_active_request_t xcb_out; 324 325 326 xcb_parts[2].iov_base = (char *) &xcb_out; 327 xcb_parts[2].iov_len = sizeof(xcb_out); 328 xcb_parts[3].iov_base = 0; 329 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 330 331 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 332 return xcb_ret; 333 } 334 335 xcb_xinerama_is_active_reply_t * 336 xcb_xinerama_is_active_reply (xcb_connection_t *c, 337 xcb_xinerama_is_active_cookie_t cookie /**< */, 338 xcb_generic_error_t **e) 339 { 340 return (xcb_xinerama_is_active_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 341 } 342 343 int 344 xcb_xinerama_query_screens_sizeof (const void *_buffer) 345 { 346 char *xcb_tmp = (char *)_buffer; 347 const xcb_xinerama_query_screens_reply_t *_aux = (xcb_xinerama_query_screens_reply_t *)_buffer; 348 unsigned int xcb_buffer_len = 0; 349 unsigned int xcb_block_len = 0; 350 unsigned int xcb_pad = 0; 351 unsigned int xcb_align_to = 0; 352 353 354 xcb_block_len += sizeof(xcb_xinerama_query_screens_reply_t); 355 xcb_tmp += xcb_block_len; 356 xcb_buffer_len += xcb_block_len; 357 xcb_block_len = 0; 358 /* screen_info */ 359 xcb_block_len += _aux->number * sizeof(xcb_xinerama_screen_info_t); 360 xcb_tmp += xcb_block_len; 361 xcb_align_to = ALIGNOF(xcb_xinerama_screen_info_t); 362 /* insert padding */ 363 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 364 xcb_buffer_len += xcb_block_len + xcb_pad; 365 if (0 != xcb_pad) { 366 xcb_tmp += xcb_pad; 367 xcb_pad = 0; 368 } 369 xcb_block_len = 0; 370 371 return xcb_buffer_len; 372 } 373 374 xcb_xinerama_query_screens_cookie_t 375 xcb_xinerama_query_screens (xcb_connection_t *c) 376 { 377 static const xcb_protocol_request_t xcb_req = { 378 .count = 2, 379 .ext = &xcb_xinerama_id, 380 .opcode = XCB_XINERAMA_QUERY_SCREENS, 381 .isvoid = 0 382 }; 383 384 struct iovec xcb_parts[4]; 385 xcb_xinerama_query_screens_cookie_t xcb_ret; 386 xcb_xinerama_query_screens_request_t xcb_out; 387 388 389 xcb_parts[2].iov_base = (char *) &xcb_out; 390 xcb_parts[2].iov_len = sizeof(xcb_out); 391 xcb_parts[3].iov_base = 0; 392 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 393 394 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 395 return xcb_ret; 396 } 397 398 xcb_xinerama_query_screens_cookie_t 399 xcb_xinerama_query_screens_unchecked (xcb_connection_t *c) 400 { 401 static const xcb_protocol_request_t xcb_req = { 402 .count = 2, 403 .ext = &xcb_xinerama_id, 404 .opcode = XCB_XINERAMA_QUERY_SCREENS, 405 .isvoid = 0 406 }; 407 408 struct iovec xcb_parts[4]; 409 xcb_xinerama_query_screens_cookie_t xcb_ret; 410 xcb_xinerama_query_screens_request_t xcb_out; 411 412 413 xcb_parts[2].iov_base = (char *) &xcb_out; 414 xcb_parts[2].iov_len = sizeof(xcb_out); 415 xcb_parts[3].iov_base = 0; 416 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 417 418 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 419 return xcb_ret; 420 } 421 422 xcb_xinerama_screen_info_t * 423 xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R) 424 { 425 return (xcb_xinerama_screen_info_t *) (R + 1); 426 } 427 428 int 429 xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R) 430 { 431 return R->number; 432 } 433 434 xcb_xinerama_screen_info_iterator_t 435 xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R) 436 { 437 xcb_xinerama_screen_info_iterator_t i; 438 i.data = (xcb_xinerama_screen_info_t *) (R + 1); 439 i.rem = R->number; 440 i.index = (char *) i.data - (char *) R; 441 return i; 442 } 443 444 xcb_xinerama_query_screens_reply_t * 445 xcb_xinerama_query_screens_reply (xcb_connection_t *c, 446 xcb_xinerama_query_screens_cookie_t cookie /**< */, 447 xcb_generic_error_t **e) 448 { 449 return (xcb_xinerama_query_screens_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 450 } 451 452