10d429e5bSmrg /*
20d429e5bSmrg * This file generated automatically from xtest.xml by c_client.py.
30d429e5bSmrg * Edit at your peril.
40d429e5bSmrg */
50d429e5bSmrg
6ed2038faSmrg #ifdef HAVE_CONFIG_H
7ed2038faSmrg #include "config.h"
8ed2038faSmrg #endif
9ed2038faSmrg #include <stdlib.h>
100d429e5bSmrg #include <string.h>
110d429e5bSmrg #include <assert.h>
12ed2038faSmrg #include <stddef.h> /* for offsetof() */
130d429e5bSmrg #include "xcbext.h"
140d429e5bSmrg #include "xtest.h"
15ed2038faSmrg
16ed2038faSmrg #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
170d429e5bSmrg #include "xproto.h"
180d429e5bSmrg
190d429e5bSmrg xcb_extension_t xcb_test_id = { "XTEST", 0 };
200d429e5bSmrg
210d429e5bSmrg xcb_test_get_version_cookie_t
xcb_test_get_version(xcb_connection_t * c,uint8_t major_version,uint16_t minor_version)22*ba6321feSmrg xcb_test_get_version (xcb_connection_t *c,
23*ba6321feSmrg uint8_t major_version,
24*ba6321feSmrg uint16_t minor_version)
250d429e5bSmrg {
260d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
27*ba6321feSmrg .count = 2,
28*ba6321feSmrg .ext = &xcb_test_id,
29*ba6321feSmrg .opcode = XCB_TEST_GET_VERSION,
30*ba6321feSmrg .isvoid = 0
310d429e5bSmrg };
320d429e5bSmrg
330d429e5bSmrg struct iovec xcb_parts[4];
340d429e5bSmrg xcb_test_get_version_cookie_t xcb_ret;
350d429e5bSmrg xcb_test_get_version_request_t xcb_out;
360d429e5bSmrg
370d429e5bSmrg xcb_out.major_version = major_version;
380d429e5bSmrg xcb_out.pad0 = 0;
390d429e5bSmrg xcb_out.minor_version = minor_version;
400d429e5bSmrg
410d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
420d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
430d429e5bSmrg xcb_parts[3].iov_base = 0;
440d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
45ed2038faSmrg
460d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
470d429e5bSmrg return xcb_ret;
480d429e5bSmrg }
490d429e5bSmrg
500d429e5bSmrg xcb_test_get_version_cookie_t
xcb_test_get_version_unchecked(xcb_connection_t * c,uint8_t major_version,uint16_t minor_version)51*ba6321feSmrg xcb_test_get_version_unchecked (xcb_connection_t *c,
52*ba6321feSmrg uint8_t major_version,
53*ba6321feSmrg uint16_t minor_version)
540d429e5bSmrg {
550d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
56*ba6321feSmrg .count = 2,
57*ba6321feSmrg .ext = &xcb_test_id,
58*ba6321feSmrg .opcode = XCB_TEST_GET_VERSION,
59*ba6321feSmrg .isvoid = 0
600d429e5bSmrg };
610d429e5bSmrg
620d429e5bSmrg struct iovec xcb_parts[4];
630d429e5bSmrg xcb_test_get_version_cookie_t xcb_ret;
640d429e5bSmrg xcb_test_get_version_request_t xcb_out;
650d429e5bSmrg
660d429e5bSmrg xcb_out.major_version = major_version;
670d429e5bSmrg xcb_out.pad0 = 0;
680d429e5bSmrg xcb_out.minor_version = minor_version;
690d429e5bSmrg
700d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
710d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
720d429e5bSmrg xcb_parts[3].iov_base = 0;
730d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
74ed2038faSmrg
750d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
760d429e5bSmrg return xcb_ret;
770d429e5bSmrg }
780d429e5bSmrg
790d429e5bSmrg xcb_test_get_version_reply_t *
xcb_test_get_version_reply(xcb_connection_t * c,xcb_test_get_version_cookie_t cookie,xcb_generic_error_t ** e)80*ba6321feSmrg xcb_test_get_version_reply (xcb_connection_t *c,
810d429e5bSmrg xcb_test_get_version_cookie_t cookie /**< */,
82*ba6321feSmrg xcb_generic_error_t **e)
830d429e5bSmrg {
840d429e5bSmrg return (xcb_test_get_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
850d429e5bSmrg }
860d429e5bSmrg
870d429e5bSmrg xcb_test_compare_cursor_cookie_t
xcb_test_compare_cursor(xcb_connection_t * c,xcb_window_t window,xcb_cursor_t cursor)88*ba6321feSmrg xcb_test_compare_cursor (xcb_connection_t *c,
89*ba6321feSmrg xcb_window_t window,
90*ba6321feSmrg xcb_cursor_t cursor)
910d429e5bSmrg {
920d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
93*ba6321feSmrg .count = 2,
94*ba6321feSmrg .ext = &xcb_test_id,
95*ba6321feSmrg .opcode = XCB_TEST_COMPARE_CURSOR,
96*ba6321feSmrg .isvoid = 0
970d429e5bSmrg };
980d429e5bSmrg
990d429e5bSmrg struct iovec xcb_parts[4];
1000d429e5bSmrg xcb_test_compare_cursor_cookie_t xcb_ret;
1010d429e5bSmrg xcb_test_compare_cursor_request_t xcb_out;
1020d429e5bSmrg
1030d429e5bSmrg xcb_out.window = window;
1040d429e5bSmrg xcb_out.cursor = cursor;
1050d429e5bSmrg
1060d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
1070d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
1080d429e5bSmrg xcb_parts[3].iov_base = 0;
1090d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
110ed2038faSmrg
1110d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1120d429e5bSmrg return xcb_ret;
1130d429e5bSmrg }
1140d429e5bSmrg
1150d429e5bSmrg xcb_test_compare_cursor_cookie_t
xcb_test_compare_cursor_unchecked(xcb_connection_t * c,xcb_window_t window,xcb_cursor_t cursor)116*ba6321feSmrg xcb_test_compare_cursor_unchecked (xcb_connection_t *c,
117*ba6321feSmrg xcb_window_t window,
118*ba6321feSmrg xcb_cursor_t cursor)
1190d429e5bSmrg {
1200d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
121*ba6321feSmrg .count = 2,
122*ba6321feSmrg .ext = &xcb_test_id,
123*ba6321feSmrg .opcode = XCB_TEST_COMPARE_CURSOR,
124*ba6321feSmrg .isvoid = 0
1250d429e5bSmrg };
1260d429e5bSmrg
1270d429e5bSmrg struct iovec xcb_parts[4];
1280d429e5bSmrg xcb_test_compare_cursor_cookie_t xcb_ret;
1290d429e5bSmrg xcb_test_compare_cursor_request_t xcb_out;
1300d429e5bSmrg
1310d429e5bSmrg xcb_out.window = window;
1320d429e5bSmrg xcb_out.cursor = cursor;
1330d429e5bSmrg
1340d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
1350d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
1360d429e5bSmrg xcb_parts[3].iov_base = 0;
1370d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
138ed2038faSmrg
1390d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1400d429e5bSmrg return xcb_ret;
1410d429e5bSmrg }
1420d429e5bSmrg
1430d429e5bSmrg xcb_test_compare_cursor_reply_t *
xcb_test_compare_cursor_reply(xcb_connection_t * c,xcb_test_compare_cursor_cookie_t cookie,xcb_generic_error_t ** e)144*ba6321feSmrg xcb_test_compare_cursor_reply (xcb_connection_t *c,
1450d429e5bSmrg xcb_test_compare_cursor_cookie_t cookie /**< */,
146*ba6321feSmrg xcb_generic_error_t **e)
1470d429e5bSmrg {
1480d429e5bSmrg return (xcb_test_compare_cursor_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1490d429e5bSmrg }
1500d429e5bSmrg
1510d429e5bSmrg xcb_void_cookie_t
xcb_test_fake_input_checked(xcb_connection_t * c,uint8_t type,uint8_t detail,uint32_t time,xcb_window_t root,int16_t rootX,int16_t rootY,uint8_t deviceid)152*ba6321feSmrg xcb_test_fake_input_checked (xcb_connection_t *c,
153*ba6321feSmrg uint8_t type,
154*ba6321feSmrg uint8_t detail,
155*ba6321feSmrg uint32_t time,
156*ba6321feSmrg xcb_window_t root,
157*ba6321feSmrg int16_t rootX,
158*ba6321feSmrg int16_t rootY,
159*ba6321feSmrg uint8_t deviceid)
1600d429e5bSmrg {
1610d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
162*ba6321feSmrg .count = 2,
163*ba6321feSmrg .ext = &xcb_test_id,
164*ba6321feSmrg .opcode = XCB_TEST_FAKE_INPUT,
165*ba6321feSmrg .isvoid = 1
1660d429e5bSmrg };
1670d429e5bSmrg
1680d429e5bSmrg struct iovec xcb_parts[4];
1690d429e5bSmrg xcb_void_cookie_t xcb_ret;
1700d429e5bSmrg xcb_test_fake_input_request_t xcb_out;
1710d429e5bSmrg
1720d429e5bSmrg xcb_out.type = type;
1730d429e5bSmrg xcb_out.detail = detail;
1740d429e5bSmrg memset(xcb_out.pad0, 0, 2);
1750d429e5bSmrg xcb_out.time = time;
1760d429e5bSmrg xcb_out.root = root;
1770d429e5bSmrg memset(xcb_out.pad1, 0, 8);
1780d429e5bSmrg xcb_out.rootX = rootX;
1790d429e5bSmrg xcb_out.rootY = rootY;
1800d429e5bSmrg memset(xcb_out.pad2, 0, 7);
1810d429e5bSmrg xcb_out.deviceid = deviceid;
1820d429e5bSmrg
1830d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
1840d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
1850d429e5bSmrg xcb_parts[3].iov_base = 0;
1860d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
187ed2038faSmrg
1880d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1890d429e5bSmrg return xcb_ret;
1900d429e5bSmrg }
1910d429e5bSmrg
1920d429e5bSmrg xcb_void_cookie_t
xcb_test_fake_input(xcb_connection_t * c,uint8_t type,uint8_t detail,uint32_t time,xcb_window_t root,int16_t rootX,int16_t rootY,uint8_t deviceid)193*ba6321feSmrg xcb_test_fake_input (xcb_connection_t *c,
194*ba6321feSmrg uint8_t type,
195*ba6321feSmrg uint8_t detail,
196*ba6321feSmrg uint32_t time,
197*ba6321feSmrg xcb_window_t root,
198*ba6321feSmrg int16_t rootX,
199*ba6321feSmrg int16_t rootY,
200*ba6321feSmrg uint8_t deviceid)
2010d429e5bSmrg {
2020d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
203*ba6321feSmrg .count = 2,
204*ba6321feSmrg .ext = &xcb_test_id,
205*ba6321feSmrg .opcode = XCB_TEST_FAKE_INPUT,
206*ba6321feSmrg .isvoid = 1
2070d429e5bSmrg };
2080d429e5bSmrg
2090d429e5bSmrg struct iovec xcb_parts[4];
2100d429e5bSmrg xcb_void_cookie_t xcb_ret;
2110d429e5bSmrg xcb_test_fake_input_request_t xcb_out;
2120d429e5bSmrg
2130d429e5bSmrg xcb_out.type = type;
2140d429e5bSmrg xcb_out.detail = detail;
2150d429e5bSmrg memset(xcb_out.pad0, 0, 2);
2160d429e5bSmrg xcb_out.time = time;
2170d429e5bSmrg xcb_out.root = root;
2180d429e5bSmrg memset(xcb_out.pad1, 0, 8);
2190d429e5bSmrg xcb_out.rootX = rootX;
2200d429e5bSmrg xcb_out.rootY = rootY;
2210d429e5bSmrg memset(xcb_out.pad2, 0, 7);
2220d429e5bSmrg xcb_out.deviceid = deviceid;
2230d429e5bSmrg
2240d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
2250d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
2260d429e5bSmrg xcb_parts[3].iov_base = 0;
2270d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
228ed2038faSmrg
2290d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2300d429e5bSmrg return xcb_ret;
2310d429e5bSmrg }
2320d429e5bSmrg
2330d429e5bSmrg xcb_void_cookie_t
xcb_test_grab_control_checked(xcb_connection_t * c,uint8_t impervious)234*ba6321feSmrg xcb_test_grab_control_checked (xcb_connection_t *c,
235*ba6321feSmrg uint8_t impervious)
2360d429e5bSmrg {
2370d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
238*ba6321feSmrg .count = 2,
239*ba6321feSmrg .ext = &xcb_test_id,
240*ba6321feSmrg .opcode = XCB_TEST_GRAB_CONTROL,
241*ba6321feSmrg .isvoid = 1
2420d429e5bSmrg };
2430d429e5bSmrg
2440d429e5bSmrg struct iovec xcb_parts[4];
2450d429e5bSmrg xcb_void_cookie_t xcb_ret;
2460d429e5bSmrg xcb_test_grab_control_request_t xcb_out;
2470d429e5bSmrg
2480d429e5bSmrg xcb_out.impervious = impervious;
2490d429e5bSmrg memset(xcb_out.pad0, 0, 3);
2500d429e5bSmrg
2510d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
2520d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
2530d429e5bSmrg xcb_parts[3].iov_base = 0;
2540d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
255ed2038faSmrg
2560d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2570d429e5bSmrg return xcb_ret;
2580d429e5bSmrg }
2590d429e5bSmrg
2600d429e5bSmrg xcb_void_cookie_t
xcb_test_grab_control(xcb_connection_t * c,uint8_t impervious)261*ba6321feSmrg xcb_test_grab_control (xcb_connection_t *c,
262*ba6321feSmrg uint8_t impervious)
2630d429e5bSmrg {
2640d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
265*ba6321feSmrg .count = 2,
266*ba6321feSmrg .ext = &xcb_test_id,
267*ba6321feSmrg .opcode = XCB_TEST_GRAB_CONTROL,
268*ba6321feSmrg .isvoid = 1
2690d429e5bSmrg };
2700d429e5bSmrg
2710d429e5bSmrg struct iovec xcb_parts[4];
2720d429e5bSmrg xcb_void_cookie_t xcb_ret;
2730d429e5bSmrg xcb_test_grab_control_request_t xcb_out;
2740d429e5bSmrg
2750d429e5bSmrg xcb_out.impervious = impervious;
2760d429e5bSmrg memset(xcb_out.pad0, 0, 3);
2770d429e5bSmrg
2780d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
2790d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
2800d429e5bSmrg xcb_parts[3].iov_base = 0;
2810d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
282ed2038faSmrg
2830d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2840d429e5bSmrg return xcb_ret;
2850d429e5bSmrg }
2860d429e5bSmrg
287