xref: /netbsd-src/external/mit/xorg/lib/libxcb/files/xc_misc.c (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
1 /*
2  * This file generated automatically from xc_misc.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 "xc_misc.h"
15 
16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
17 
18 xcb_extension_t xcb_xc_misc_id = { "XC-MISC", 0 };
19 
20 
21 /*****************************************************************************
22  **
23  ** xcb_xc_misc_get_version_cookie_t xcb_xc_misc_get_version
24  **
25  ** @param xcb_connection_t *c
26  ** @param uint16_t          client_major_version
27  ** @param uint16_t          client_minor_version
28  ** @returns xcb_xc_misc_get_version_cookie_t
29  **
30  *****************************************************************************/
31 
32 xcb_xc_misc_get_version_cookie_t
33 xcb_xc_misc_get_version (xcb_connection_t *c  /**< */,
34                          uint16_t          client_major_version  /**< */,
35                          uint16_t          client_minor_version  /**< */)
36 {
37     static const xcb_protocol_request_t xcb_req = {
38         /* count */ 2,
39         /* ext */ &xcb_xc_misc_id,
40         /* opcode */ XCB_XC_MISC_GET_VERSION,
41         /* isvoid */ 0
42     };
43 
44     struct iovec xcb_parts[4];
45     xcb_xc_misc_get_version_cookie_t xcb_ret;
46     xcb_xc_misc_get_version_request_t xcb_out;
47 
48     xcb_out.client_major_version = client_major_version;
49     xcb_out.client_minor_version = client_minor_version;
50 
51     xcb_parts[2].iov_base = (char *) &xcb_out;
52     xcb_parts[2].iov_len = sizeof(xcb_out);
53     xcb_parts[3].iov_base = 0;
54     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
55 
56     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
57     return xcb_ret;
58 }
59 
60 
61 /*****************************************************************************
62  **
63  ** xcb_xc_misc_get_version_cookie_t xcb_xc_misc_get_version_unchecked
64  **
65  ** @param xcb_connection_t *c
66  ** @param uint16_t          client_major_version
67  ** @param uint16_t          client_minor_version
68  ** @returns xcb_xc_misc_get_version_cookie_t
69  **
70  *****************************************************************************/
71 
72 xcb_xc_misc_get_version_cookie_t
73 xcb_xc_misc_get_version_unchecked (xcb_connection_t *c  /**< */,
74                                    uint16_t          client_major_version  /**< */,
75                                    uint16_t          client_minor_version  /**< */)
76 {
77     static const xcb_protocol_request_t xcb_req = {
78         /* count */ 2,
79         /* ext */ &xcb_xc_misc_id,
80         /* opcode */ XCB_XC_MISC_GET_VERSION,
81         /* isvoid */ 0
82     };
83 
84     struct iovec xcb_parts[4];
85     xcb_xc_misc_get_version_cookie_t xcb_ret;
86     xcb_xc_misc_get_version_request_t xcb_out;
87 
88     xcb_out.client_major_version = client_major_version;
89     xcb_out.client_minor_version = client_minor_version;
90 
91     xcb_parts[2].iov_base = (char *) &xcb_out;
92     xcb_parts[2].iov_len = sizeof(xcb_out);
93     xcb_parts[3].iov_base = 0;
94     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
95 
96     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
97     return xcb_ret;
98 }
99 
100 
101 /*****************************************************************************
102  **
103  ** xcb_xc_misc_get_version_reply_t * xcb_xc_misc_get_version_reply
104  **
105  ** @param xcb_connection_t                  *c
106  ** @param xcb_xc_misc_get_version_cookie_t   cookie
107  ** @param xcb_generic_error_t              **e
108  ** @returns xcb_xc_misc_get_version_reply_t *
109  **
110  *****************************************************************************/
111 
112 xcb_xc_misc_get_version_reply_t *
113 xcb_xc_misc_get_version_reply (xcb_connection_t                  *c  /**< */,
114                                xcb_xc_misc_get_version_cookie_t   cookie  /**< */,
115                                xcb_generic_error_t              **e  /**< */)
116 {
117     return (xcb_xc_misc_get_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
118 }
119 
120 
121 /*****************************************************************************
122  **
123  ** xcb_xc_misc_get_xid_range_cookie_t xcb_xc_misc_get_xid_range
124  **
125  ** @param xcb_connection_t *c
126  ** @returns xcb_xc_misc_get_xid_range_cookie_t
127  **
128  *****************************************************************************/
129 
130 xcb_xc_misc_get_xid_range_cookie_t
131 xcb_xc_misc_get_xid_range (xcb_connection_t *c  /**< */)
132 {
133     static const xcb_protocol_request_t xcb_req = {
134         /* count */ 2,
135         /* ext */ &xcb_xc_misc_id,
136         /* opcode */ XCB_XC_MISC_GET_XID_RANGE,
137         /* isvoid */ 0
138     };
139 
140     struct iovec xcb_parts[4];
141     xcb_xc_misc_get_xid_range_cookie_t xcb_ret;
142     xcb_xc_misc_get_xid_range_request_t xcb_out;
143 
144 
145     xcb_parts[2].iov_base = (char *) &xcb_out;
146     xcb_parts[2].iov_len = sizeof(xcb_out);
147     xcb_parts[3].iov_base = 0;
148     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
149 
150     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
151     return xcb_ret;
152 }
153 
154 
155 /*****************************************************************************
156  **
157  ** xcb_xc_misc_get_xid_range_cookie_t xcb_xc_misc_get_xid_range_unchecked
158  **
159  ** @param xcb_connection_t *c
160  ** @returns xcb_xc_misc_get_xid_range_cookie_t
161  **
162  *****************************************************************************/
163 
164 xcb_xc_misc_get_xid_range_cookie_t
165 xcb_xc_misc_get_xid_range_unchecked (xcb_connection_t *c  /**< */)
166 {
167     static const xcb_protocol_request_t xcb_req = {
168         /* count */ 2,
169         /* ext */ &xcb_xc_misc_id,
170         /* opcode */ XCB_XC_MISC_GET_XID_RANGE,
171         /* isvoid */ 0
172     };
173 
174     struct iovec xcb_parts[4];
175     xcb_xc_misc_get_xid_range_cookie_t xcb_ret;
176     xcb_xc_misc_get_xid_range_request_t xcb_out;
177 
178 
179     xcb_parts[2].iov_base = (char *) &xcb_out;
180     xcb_parts[2].iov_len = sizeof(xcb_out);
181     xcb_parts[3].iov_base = 0;
182     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
183 
184     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
185     return xcb_ret;
186 }
187 
188 
189 /*****************************************************************************
190  **
191  ** xcb_xc_misc_get_xid_range_reply_t * xcb_xc_misc_get_xid_range_reply
192  **
193  ** @param xcb_connection_t                    *c
194  ** @param xcb_xc_misc_get_xid_range_cookie_t   cookie
195  ** @param xcb_generic_error_t                **e
196  ** @returns xcb_xc_misc_get_xid_range_reply_t *
197  **
198  *****************************************************************************/
199 
200 xcb_xc_misc_get_xid_range_reply_t *
201 xcb_xc_misc_get_xid_range_reply (xcb_connection_t                    *c  /**< */,
202                                  xcb_xc_misc_get_xid_range_cookie_t   cookie  /**< */,
203                                  xcb_generic_error_t                **e  /**< */)
204 {
205     return (xcb_xc_misc_get_xid_range_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
206 }
207 
208 int
209 xcb_xc_misc_get_xid_list_sizeof (const void  *_buffer  /**< */)
210 {
211     char *xcb_tmp = (char *)_buffer;
212     const xcb_xc_misc_get_xid_list_reply_t *_aux = (xcb_xc_misc_get_xid_list_reply_t *)_buffer;
213     unsigned int xcb_buffer_len = 0;
214     unsigned int xcb_block_len = 0;
215     unsigned int xcb_pad = 0;
216     unsigned int xcb_align_to = 0;
217 
218 
219     xcb_block_len += sizeof(xcb_xc_misc_get_xid_list_reply_t);
220     xcb_tmp += xcb_block_len;
221     xcb_buffer_len += xcb_block_len;
222     xcb_block_len = 0;
223     /* ids */
224     xcb_block_len += _aux->ids_len * sizeof(uint32_t);
225     xcb_tmp += xcb_block_len;
226     xcb_align_to = ALIGNOF(uint32_t);
227     /* insert padding */
228     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
229     xcb_buffer_len += xcb_block_len + xcb_pad;
230     if (0 != xcb_pad) {
231         xcb_tmp += xcb_pad;
232         xcb_pad = 0;
233     }
234     xcb_block_len = 0;
235 
236     return xcb_buffer_len;
237 }
238 
239 
240 /*****************************************************************************
241  **
242  ** xcb_xc_misc_get_xid_list_cookie_t xcb_xc_misc_get_xid_list
243  **
244  ** @param xcb_connection_t *c
245  ** @param uint32_t          count
246  ** @returns xcb_xc_misc_get_xid_list_cookie_t
247  **
248  *****************************************************************************/
249 
250 xcb_xc_misc_get_xid_list_cookie_t
251 xcb_xc_misc_get_xid_list (xcb_connection_t *c  /**< */,
252                           uint32_t          count  /**< */)
253 {
254     static const xcb_protocol_request_t xcb_req = {
255         /* count */ 2,
256         /* ext */ &xcb_xc_misc_id,
257         /* opcode */ XCB_XC_MISC_GET_XID_LIST,
258         /* isvoid */ 0
259     };
260 
261     struct iovec xcb_parts[4];
262     xcb_xc_misc_get_xid_list_cookie_t xcb_ret;
263     xcb_xc_misc_get_xid_list_request_t xcb_out;
264 
265     xcb_out.count = count;
266 
267     xcb_parts[2].iov_base = (char *) &xcb_out;
268     xcb_parts[2].iov_len = sizeof(xcb_out);
269     xcb_parts[3].iov_base = 0;
270     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
271 
272     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
273     return xcb_ret;
274 }
275 
276 
277 /*****************************************************************************
278  **
279  ** xcb_xc_misc_get_xid_list_cookie_t xcb_xc_misc_get_xid_list_unchecked
280  **
281  ** @param xcb_connection_t *c
282  ** @param uint32_t          count
283  ** @returns xcb_xc_misc_get_xid_list_cookie_t
284  **
285  *****************************************************************************/
286 
287 xcb_xc_misc_get_xid_list_cookie_t
288 xcb_xc_misc_get_xid_list_unchecked (xcb_connection_t *c  /**< */,
289                                     uint32_t          count  /**< */)
290 {
291     static const xcb_protocol_request_t xcb_req = {
292         /* count */ 2,
293         /* ext */ &xcb_xc_misc_id,
294         /* opcode */ XCB_XC_MISC_GET_XID_LIST,
295         /* isvoid */ 0
296     };
297 
298     struct iovec xcb_parts[4];
299     xcb_xc_misc_get_xid_list_cookie_t xcb_ret;
300     xcb_xc_misc_get_xid_list_request_t xcb_out;
301 
302     xcb_out.count = count;
303 
304     xcb_parts[2].iov_base = (char *) &xcb_out;
305     xcb_parts[2].iov_len = sizeof(xcb_out);
306     xcb_parts[3].iov_base = 0;
307     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
308 
309     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
310     return xcb_ret;
311 }
312 
313 
314 /*****************************************************************************
315  **
316  ** uint32_t * xcb_xc_misc_get_xid_list_ids
317  **
318  ** @param const xcb_xc_misc_get_xid_list_reply_t *R
319  ** @returns uint32_t *
320  **
321  *****************************************************************************/
322 
323 uint32_t *
324 xcb_xc_misc_get_xid_list_ids (const xcb_xc_misc_get_xid_list_reply_t *R  /**< */)
325 {
326     return (uint32_t *) (R + 1);
327 }
328 
329 
330 /*****************************************************************************
331  **
332  ** int xcb_xc_misc_get_xid_list_ids_length
333  **
334  ** @param const xcb_xc_misc_get_xid_list_reply_t *R
335  ** @returns int
336  **
337  *****************************************************************************/
338 
339 int
340 xcb_xc_misc_get_xid_list_ids_length (const xcb_xc_misc_get_xid_list_reply_t *R  /**< */)
341 {
342     return R->ids_len;
343 }
344 
345 
346 /*****************************************************************************
347  **
348  ** xcb_generic_iterator_t xcb_xc_misc_get_xid_list_ids_end
349  **
350  ** @param const xcb_xc_misc_get_xid_list_reply_t *R
351  ** @returns xcb_generic_iterator_t
352  **
353  *****************************************************************************/
354 
355 xcb_generic_iterator_t
356 xcb_xc_misc_get_xid_list_ids_end (const xcb_xc_misc_get_xid_list_reply_t *R  /**< */)
357 {
358     xcb_generic_iterator_t i;
359     i.data = ((uint32_t *) (R + 1)) + (R->ids_len);
360     i.rem = 0;
361     i.index = (char *) i.data - (char *) R;
362     return i;
363 }
364 
365 
366 /*****************************************************************************
367  **
368  ** xcb_xc_misc_get_xid_list_reply_t * xcb_xc_misc_get_xid_list_reply
369  **
370  ** @param xcb_connection_t                   *c
371  ** @param xcb_xc_misc_get_xid_list_cookie_t   cookie
372  ** @param xcb_generic_error_t               **e
373  ** @returns xcb_xc_misc_get_xid_list_reply_t *
374  **
375  *****************************************************************************/
376 
377 xcb_xc_misc_get_xid_list_reply_t *
378 xcb_xc_misc_get_xid_list_reply (xcb_connection_t                   *c  /**< */,
379                                 xcb_xc_misc_get_xid_list_cookie_t   cookie  /**< */,
380                                 xcb_generic_error_t               **e  /**< */)
381 {
382     return (xcb_xc_misc_get_xid_list_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
383 }
384 
385