1 | /* |
2 | * This file generated automatically from shm.xml by c_client.py. |
3 | * Edit at your peril. |
4 | */ |
5 | |
6 | /** |
7 | * @defgroup XCB_Shm_API XCB Shm API |
8 | * @brief Shm XCB Protocol Implementation. |
9 | * @{ |
10 | **/ |
11 | |
12 | #ifndef __SHM_H |
13 | #define __SHM_H |
14 | |
15 | #include "xcb.h" |
16 | #include "xproto.h" |
17 | |
18 | #ifdef __cplusplus |
19 | extern "C" { |
20 | #endif |
21 | |
22 | #define XCB_SHM_MAJOR_VERSION 1 |
23 | #define XCB_SHM_MINOR_VERSION 2 |
24 | |
25 | extern xcb_extension_t xcb_shm_id; |
26 | |
27 | typedef uint32_t xcb_shm_seg_t; |
28 | |
29 | /** |
30 | * @brief xcb_shm_seg_iterator_t |
31 | **/ |
32 | typedef struct xcb_shm_seg_iterator_t { |
33 | xcb_shm_seg_t *data; |
34 | int rem; |
35 | int index; |
36 | } xcb_shm_seg_iterator_t; |
37 | |
38 | /** Opcode for xcb_shm_completion. */ |
39 | #define XCB_SHM_COMPLETION 0 |
40 | |
41 | /** |
42 | * @brief xcb_shm_completion_event_t |
43 | **/ |
44 | typedef struct xcb_shm_completion_event_t { |
45 | uint8_t response_type; |
46 | uint8_t pad0; |
47 | uint16_t sequence; |
48 | xcb_drawable_t drawable; |
49 | uint16_t minor_event; |
50 | uint8_t major_event; |
51 | uint8_t pad1; |
52 | xcb_shm_seg_t shmseg; |
53 | uint32_t offset; |
54 | } xcb_shm_completion_event_t; |
55 | |
56 | /** Opcode for xcb_shm_bad_seg. */ |
57 | #define XCB_SHM_BAD_SEG 0 |
58 | |
59 | typedef xcb_value_error_t xcb_shm_bad_seg_error_t; |
60 | |
61 | /** |
62 | * @brief xcb_shm_query_version_cookie_t |
63 | **/ |
64 | typedef struct xcb_shm_query_version_cookie_t { |
65 | unsigned int sequence; |
66 | } xcb_shm_query_version_cookie_t; |
67 | |
68 | /** Opcode for xcb_shm_query_version. */ |
69 | #define XCB_SHM_QUERY_VERSION 0 |
70 | |
71 | /** |
72 | * @brief xcb_shm_query_version_request_t |
73 | **/ |
74 | typedef struct xcb_shm_query_version_request_t { |
75 | uint8_t major_opcode; |
76 | uint8_t minor_opcode; |
77 | uint16_t length; |
78 | } xcb_shm_query_version_request_t; |
79 | |
80 | /** |
81 | * @brief xcb_shm_query_version_reply_t |
82 | **/ |
83 | typedef struct xcb_shm_query_version_reply_t { |
84 | uint8_t response_type; |
85 | uint8_t shared_pixmaps; |
86 | uint16_t sequence; |
87 | uint32_t length; |
88 | uint16_t major_version; |
89 | uint16_t minor_version; |
90 | uint16_t uid; |
91 | uint16_t gid; |
92 | uint8_t pixmap_format; |
93 | uint8_t pad0[15]; |
94 | } xcb_shm_query_version_reply_t; |
95 | |
96 | /** Opcode for xcb_shm_attach. */ |
97 | #define XCB_SHM_ATTACH 1 |
98 | |
99 | /** |
100 | * @brief xcb_shm_attach_request_t |
101 | **/ |
102 | typedef struct xcb_shm_attach_request_t { |
103 | uint8_t major_opcode; |
104 | uint8_t minor_opcode; |
105 | uint16_t length; |
106 | xcb_shm_seg_t shmseg; |
107 | uint32_t shmid; |
108 | uint8_t read_only; |
109 | uint8_t pad0[3]; |
110 | } xcb_shm_attach_request_t; |
111 | |
112 | /** Opcode for xcb_shm_detach. */ |
113 | #define XCB_SHM_DETACH 2 |
114 | |
115 | /** |
116 | * @brief xcb_shm_detach_request_t |
117 | **/ |
118 | typedef struct xcb_shm_detach_request_t { |
119 | uint8_t major_opcode; |
120 | uint8_t minor_opcode; |
121 | uint16_t length; |
122 | xcb_shm_seg_t shmseg; |
123 | } xcb_shm_detach_request_t; |
124 | |
125 | /** Opcode for xcb_shm_put_image. */ |
126 | #define XCB_SHM_PUT_IMAGE 3 |
127 | |
128 | /** |
129 | * @brief xcb_shm_put_image_request_t |
130 | **/ |
131 | typedef struct xcb_shm_put_image_request_t { |
132 | uint8_t major_opcode; |
133 | uint8_t minor_opcode; |
134 | uint16_t length; |
135 | xcb_drawable_t drawable; |
136 | xcb_gcontext_t gc; |
137 | uint16_t total_width; |
138 | uint16_t total_height; |
139 | uint16_t src_x; |
140 | uint16_t src_y; |
141 | uint16_t src_width; |
142 | uint16_t src_height; |
143 | int16_t dst_x; |
144 | int16_t dst_y; |
145 | uint8_t depth; |
146 | uint8_t format; |
147 | uint8_t send_event; |
148 | uint8_t pad0; |
149 | xcb_shm_seg_t shmseg; |
150 | uint32_t offset; |
151 | } xcb_shm_put_image_request_t; |
152 | |
153 | /** |
154 | * @brief xcb_shm_get_image_cookie_t |
155 | **/ |
156 | typedef struct xcb_shm_get_image_cookie_t { |
157 | unsigned int sequence; |
158 | } xcb_shm_get_image_cookie_t; |
159 | |
160 | /** Opcode for xcb_shm_get_image. */ |
161 | #define XCB_SHM_GET_IMAGE 4 |
162 | |
163 | /** |
164 | * @brief xcb_shm_get_image_request_t |
165 | **/ |
166 | typedef struct xcb_shm_get_image_request_t { |
167 | uint8_t major_opcode; |
168 | uint8_t minor_opcode; |
169 | uint16_t length; |
170 | xcb_drawable_t drawable; |
171 | int16_t x; |
172 | int16_t y; |
173 | uint16_t width; |
174 | uint16_t height; |
175 | uint32_t plane_mask; |
176 | uint8_t format; |
177 | uint8_t pad0[3]; |
178 | xcb_shm_seg_t shmseg; |
179 | uint32_t offset; |
180 | } xcb_shm_get_image_request_t; |
181 | |
182 | /** |
183 | * @brief xcb_shm_get_image_reply_t |
184 | **/ |
185 | typedef struct xcb_shm_get_image_reply_t { |
186 | uint8_t response_type; |
187 | uint8_t depth; |
188 | uint16_t sequence; |
189 | uint32_t length; |
190 | xcb_visualid_t visual; |
191 | uint32_t size; |
192 | } xcb_shm_get_image_reply_t; |
193 | |
194 | /** Opcode for xcb_shm_create_pixmap. */ |
195 | #define XCB_SHM_CREATE_PIXMAP 5 |
196 | |
197 | /** |
198 | * @brief xcb_shm_create_pixmap_request_t |
199 | **/ |
200 | typedef struct xcb_shm_create_pixmap_request_t { |
201 | uint8_t major_opcode; |
202 | uint8_t minor_opcode; |
203 | uint16_t length; |
204 | xcb_pixmap_t pid; |
205 | xcb_drawable_t drawable; |
206 | uint16_t width; |
207 | uint16_t height; |
208 | uint8_t depth; |
209 | uint8_t pad0[3]; |
210 | xcb_shm_seg_t shmseg; |
211 | uint32_t offset; |
212 | } xcb_shm_create_pixmap_request_t; |
213 | |
214 | /** Opcode for xcb_shm_attach_fd. */ |
215 | #define XCB_SHM_ATTACH_FD 6 |
216 | |
217 | /** |
218 | * @brief xcb_shm_attach_fd_request_t |
219 | **/ |
220 | typedef struct xcb_shm_attach_fd_request_t { |
221 | uint8_t major_opcode; |
222 | uint8_t minor_opcode; |
223 | uint16_t length; |
224 | xcb_shm_seg_t shmseg; |
225 | uint8_t read_only; |
226 | uint8_t pad0[3]; |
227 | } xcb_shm_attach_fd_request_t; |
228 | |
229 | /** |
230 | * @brief xcb_shm_create_segment_cookie_t |
231 | **/ |
232 | typedef struct xcb_shm_create_segment_cookie_t { |
233 | unsigned int sequence; |
234 | } xcb_shm_create_segment_cookie_t; |
235 | |
236 | /** Opcode for xcb_shm_create_segment. */ |
237 | #define XCB_SHM_CREATE_SEGMENT 7 |
238 | |
239 | /** |
240 | * @brief xcb_shm_create_segment_request_t |
241 | **/ |
242 | typedef struct xcb_shm_create_segment_request_t { |
243 | uint8_t major_opcode; |
244 | uint8_t minor_opcode; |
245 | uint16_t length; |
246 | xcb_shm_seg_t shmseg; |
247 | uint32_t size; |
248 | uint8_t read_only; |
249 | uint8_t pad0[3]; |
250 | } xcb_shm_create_segment_request_t; |
251 | |
252 | /** |
253 | * @brief xcb_shm_create_segment_reply_t |
254 | **/ |
255 | typedef struct xcb_shm_create_segment_reply_t { |
256 | uint8_t response_type; |
257 | uint8_t nfd; |
258 | uint16_t sequence; |
259 | uint32_t length; |
260 | uint8_t pad0[24]; |
261 | } xcb_shm_create_segment_reply_t; |
262 | |
263 | /** |
264 | * Get the next element of the iterator |
265 | * @param i Pointer to a xcb_shm_seg_iterator_t |
266 | * |
267 | * Get the next element in the iterator. The member rem is |
268 | * decreased by one. The member data points to the next |
269 | * element. The member index is increased by sizeof(xcb_shm_seg_t) |
270 | */ |
271 | void |
272 | xcb_shm_seg_next (xcb_shm_seg_iterator_t *i); |
273 | |
274 | /** |
275 | * Return the iterator pointing to the last element |
276 | * @param i An xcb_shm_seg_iterator_t |
277 | * @return The iterator pointing to the last element |
278 | * |
279 | * Set the current element in the iterator to the last element. |
280 | * The member rem is set to 0. The member data points to the |
281 | * last element. |
282 | */ |
283 | xcb_generic_iterator_t |
284 | xcb_shm_seg_end (xcb_shm_seg_iterator_t i); |
285 | |
286 | /** |
287 | * |
288 | * @param c The connection |
289 | * @return A cookie |
290 | * |
291 | * Delivers a request to the X server. |
292 | * |
293 | */ |
294 | xcb_shm_query_version_cookie_t |
295 | xcb_shm_query_version (xcb_connection_t *c); |
296 | |
297 | /** |
298 | * |
299 | * @param c The connection |
300 | * @return A cookie |
301 | * |
302 | * Delivers a request to the X server. |
303 | * |
304 | * This form can be used only if the request will cause |
305 | * a reply to be generated. Any returned error will be |
306 | * placed in the event queue. |
307 | */ |
308 | xcb_shm_query_version_cookie_t |
309 | xcb_shm_query_version_unchecked (xcb_connection_t *c); |
310 | |
311 | /** |
312 | * Return the reply |
313 | * @param c The connection |
314 | * @param cookie The cookie |
315 | * @param e The xcb_generic_error_t supplied |
316 | * |
317 | * Returns the reply of the request asked by |
318 | * |
319 | * The parameter @p e supplied to this function must be NULL if |
320 | * xcb_shm_query_version_unchecked(). is used. |
321 | * Otherwise, it stores the error if any. |
322 | * |
323 | * The returned value must be freed by the caller using free(). |
324 | */ |
325 | xcb_shm_query_version_reply_t * |
326 | xcb_shm_query_version_reply (xcb_connection_t *c, |
327 | xcb_shm_query_version_cookie_t cookie /**< */, |
328 | xcb_generic_error_t **e); |
329 | |
330 | /** |
331 | * |
332 | * @param c The connection |
333 | * @return A cookie |
334 | * |
335 | * Delivers a request to the X server. |
336 | * |
337 | * This form can be used only if the request will not cause |
338 | * a reply to be generated. Any returned error will be |
339 | * saved for handling by xcb_request_check(). |
340 | */ |
341 | xcb_void_cookie_t |
342 | xcb_shm_attach_checked (xcb_connection_t *c, |
343 | xcb_shm_seg_t shmseg, |
344 | uint32_t shmid, |
345 | uint8_t read_only); |
346 | |
347 | /** |
348 | * |
349 | * @param c The connection |
350 | * @return A cookie |
351 | * |
352 | * Delivers a request to the X server. |
353 | * |
354 | */ |
355 | xcb_void_cookie_t |
356 | xcb_shm_attach (xcb_connection_t *c, |
357 | xcb_shm_seg_t shmseg, |
358 | uint32_t shmid, |
359 | uint8_t read_only); |
360 | |
361 | /** |
362 | * |
363 | * @param c The connection |
364 | * @return A cookie |
365 | * |
366 | * Delivers a request to the X server. |
367 | * |
368 | * This form can be used only if the request will not cause |
369 | * a reply to be generated. Any returned error will be |
370 | * saved for handling by xcb_request_check(). |
371 | */ |
372 | xcb_void_cookie_t |
373 | xcb_shm_detach_checked (xcb_connection_t *c, |
374 | xcb_shm_seg_t shmseg); |
375 | |
376 | /** |
377 | * |
378 | * @param c The connection |
379 | * @return A cookie |
380 | * |
381 | * Delivers a request to the X server. |
382 | * |
383 | */ |
384 | xcb_void_cookie_t |
385 | xcb_shm_detach (xcb_connection_t *c, |
386 | xcb_shm_seg_t shmseg); |
387 | |
388 | /** |
389 | * |
390 | * @param c The connection |
391 | * @return A cookie |
392 | * |
393 | * Delivers a request to the X server. |
394 | * |
395 | * This form can be used only if the request will not cause |
396 | * a reply to be generated. Any returned error will be |
397 | * saved for handling by xcb_request_check(). |
398 | */ |
399 | xcb_void_cookie_t |
400 | xcb_shm_put_image_checked (xcb_connection_t *c, |
401 | xcb_drawable_t drawable, |
402 | xcb_gcontext_t gc, |
403 | uint16_t total_width, |
404 | uint16_t total_height, |
405 | uint16_t src_x, |
406 | uint16_t src_y, |
407 | uint16_t src_width, |
408 | uint16_t src_height, |
409 | int16_t dst_x, |
410 | int16_t dst_y, |
411 | uint8_t depth, |
412 | uint8_t format, |
413 | uint8_t send_event, |
414 | xcb_shm_seg_t shmseg, |
415 | uint32_t offset); |
416 | |
417 | /** |
418 | * |
419 | * @param c The connection |
420 | * @return A cookie |
421 | * |
422 | * Delivers a request to the X server. |
423 | * |
424 | */ |
425 | xcb_void_cookie_t |
426 | xcb_shm_put_image (xcb_connection_t *c, |
427 | xcb_drawable_t drawable, |
428 | xcb_gcontext_t gc, |
429 | uint16_t total_width, |
430 | uint16_t total_height, |
431 | uint16_t src_x, |
432 | uint16_t src_y, |
433 | uint16_t src_width, |
434 | uint16_t src_height, |
435 | int16_t dst_x, |
436 | int16_t dst_y, |
437 | uint8_t depth, |
438 | uint8_t format, |
439 | uint8_t send_event, |
440 | xcb_shm_seg_t shmseg, |
441 | uint32_t offset); |
442 | |
443 | /** |
444 | * |
445 | * @param c The connection |
446 | * @return A cookie |
447 | * |
448 | * Delivers a request to the X server. |
449 | * |
450 | */ |
451 | xcb_shm_get_image_cookie_t |
452 | xcb_shm_get_image (xcb_connection_t *c, |
453 | xcb_drawable_t drawable, |
454 | int16_t x, |
455 | int16_t y, |
456 | uint16_t width, |
457 | uint16_t height, |
458 | uint32_t plane_mask, |
459 | uint8_t format, |
460 | xcb_shm_seg_t shmseg, |
461 | uint32_t offset); |
462 | |
463 | /** |
464 | * |
465 | * @param c The connection |
466 | * @return A cookie |
467 | * |
468 | * Delivers a request to the X server. |
469 | * |
470 | * This form can be used only if the request will cause |
471 | * a reply to be generated. Any returned error will be |
472 | * placed in the event queue. |
473 | */ |
474 | xcb_shm_get_image_cookie_t |
475 | xcb_shm_get_image_unchecked (xcb_connection_t *c, |
476 | xcb_drawable_t drawable, |
477 | int16_t x, |
478 | int16_t y, |
479 | uint16_t width, |
480 | uint16_t height, |
481 | uint32_t plane_mask, |
482 | uint8_t format, |
483 | xcb_shm_seg_t shmseg, |
484 | uint32_t offset); |
485 | |
486 | /** |
487 | * Return the reply |
488 | * @param c The connection |
489 | * @param cookie The cookie |
490 | * @param e The xcb_generic_error_t supplied |
491 | * |
492 | * Returns the reply of the request asked by |
493 | * |
494 | * The parameter @p e supplied to this function must be NULL if |
495 | * xcb_shm_get_image_unchecked(). is used. |
496 | * Otherwise, it stores the error if any. |
497 | * |
498 | * The returned value must be freed by the caller using free(). |
499 | */ |
500 | xcb_shm_get_image_reply_t * |
501 | xcb_shm_get_image_reply (xcb_connection_t *c, |
502 | xcb_shm_get_image_cookie_t cookie /**< */, |
503 | xcb_generic_error_t **e); |
504 | |
505 | /** |
506 | * |
507 | * @param c The connection |
508 | * @return A cookie |
509 | * |
510 | * Delivers a request to the X server. |
511 | * |
512 | * This form can be used only if the request will not cause |
513 | * a reply to be generated. Any returned error will be |
514 | * saved for handling by xcb_request_check(). |
515 | */ |
516 | xcb_void_cookie_t |
517 | xcb_shm_create_pixmap_checked (xcb_connection_t *c, |
518 | xcb_pixmap_t pid, |
519 | xcb_drawable_t drawable, |
520 | uint16_t width, |
521 | uint16_t height, |
522 | uint8_t depth, |
523 | xcb_shm_seg_t shmseg, |
524 | uint32_t offset); |
525 | |
526 | /** |
527 | * |
528 | * @param c The connection |
529 | * @return A cookie |
530 | * |
531 | * Delivers a request to the X server. |
532 | * |
533 | */ |
534 | xcb_void_cookie_t |
535 | xcb_shm_create_pixmap (xcb_connection_t *c, |
536 | xcb_pixmap_t pid, |
537 | xcb_drawable_t drawable, |
538 | uint16_t width, |
539 | uint16_t height, |
540 | uint8_t depth, |
541 | xcb_shm_seg_t shmseg, |
542 | uint32_t offset); |
543 | |
544 | /** |
545 | * |
546 | * @param c The connection |
547 | * @return A cookie |
548 | * |
549 | * Delivers a request to the X server. |
550 | * |
551 | * This form can be used only if the request will not cause |
552 | * a reply to be generated. Any returned error will be |
553 | * saved for handling by xcb_request_check(). |
554 | */ |
555 | xcb_void_cookie_t |
556 | xcb_shm_attach_fd_checked (xcb_connection_t *c, |
557 | xcb_shm_seg_t shmseg, |
558 | int32_t shm_fd, |
559 | uint8_t read_only); |
560 | |
561 | /** |
562 | * |
563 | * @param c The connection |
564 | * @return A cookie |
565 | * |
566 | * Delivers a request to the X server. |
567 | * |
568 | */ |
569 | xcb_void_cookie_t |
570 | xcb_shm_attach_fd (xcb_connection_t *c, |
571 | xcb_shm_seg_t shmseg, |
572 | int32_t shm_fd, |
573 | uint8_t read_only); |
574 | |
575 | /** |
576 | * |
577 | * @param c The connection |
578 | * @return A cookie |
579 | * |
580 | * Delivers a request to the X server. |
581 | * |
582 | */ |
583 | xcb_shm_create_segment_cookie_t |
584 | xcb_shm_create_segment (xcb_connection_t *c, |
585 | xcb_shm_seg_t shmseg, |
586 | uint32_t size, |
587 | uint8_t read_only); |
588 | |
589 | /** |
590 | * |
591 | * @param c The connection |
592 | * @return A cookie |
593 | * |
594 | * Delivers a request to the X server. |
595 | * |
596 | * This form can be used only if the request will cause |
597 | * a reply to be generated. Any returned error will be |
598 | * placed in the event queue. |
599 | */ |
600 | xcb_shm_create_segment_cookie_t |
601 | xcb_shm_create_segment_unchecked (xcb_connection_t *c, |
602 | xcb_shm_seg_t shmseg, |
603 | uint32_t size, |
604 | uint8_t read_only); |
605 | |
606 | /** |
607 | * Return the reply |
608 | * @param c The connection |
609 | * @param cookie The cookie |
610 | * @param e The xcb_generic_error_t supplied |
611 | * |
612 | * Returns the reply of the request asked by |
613 | * |
614 | * The parameter @p e supplied to this function must be NULL if |
615 | * xcb_shm_create_segment_unchecked(). is used. |
616 | * Otherwise, it stores the error if any. |
617 | * |
618 | * The returned value must be freed by the caller using free(). |
619 | */ |
620 | xcb_shm_create_segment_reply_t * |
621 | xcb_shm_create_segment_reply (xcb_connection_t *c, |
622 | xcb_shm_create_segment_cookie_t cookie /**< */, |
623 | xcb_generic_error_t **e); |
624 | |
625 | /** |
626 | * Return the reply fds |
627 | * @param c The connection |
628 | * @param reply The reply |
629 | * |
630 | * Returns the array of reply fds of the request asked by |
631 | * |
632 | * The returned value must be freed by the caller using free(). |
633 | */ |
634 | int * |
635 | xcb_shm_create_segment_reply_fds (xcb_connection_t *c /**< */, |
636 | xcb_shm_create_segment_reply_t *reply); |
637 | |
638 | |
639 | #ifdef __cplusplus |
640 | } |
641 | #endif |
642 | |
643 | #endif |
644 | |
645 | /** |
646 | * @} |
647 | */ |
648 | |