etc/protocols - sync with NetBSD-8
[minix.git] / external / mit / xorg / lib / libxcb / files / shm.h
blob459236733c425dbc1c0d3ce087cdc15c294440c1
1 /*
2 * This file generated automatically from shm.xml by c_client.py.
3 * Edit at your peril.
4 */
6 /**
7 * @defgroup XCB_Shm_API XCB Shm API
8 * @brief Shm XCB Protocol Implementation.
9 * @{
10 **/
12 #ifndef __SHM_H
13 #define __SHM_H
15 #include "xcb.h"
16 #include "xproto.h"
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
22 #define XCB_SHM_MAJOR_VERSION 1
23 #define XCB_SHM_MINOR_VERSION 2
25 extern xcb_extension_t xcb_shm_id;
27 typedef uint32_t xcb_shm_seg_t;
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;
38 /** Opcode for xcb_shm_completion. */
39 #define XCB_SHM_COMPLETION 0
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;
56 /** Opcode for xcb_shm_bad_seg. */
57 #define XCB_SHM_BAD_SEG 0
59 typedef xcb_value_error_t xcb_shm_bad_seg_error_t;
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;
68 /** Opcode for xcb_shm_query_version. */
69 #define XCB_SHM_QUERY_VERSION 0
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;
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;
96 /** Opcode for xcb_shm_attach. */
97 #define XCB_SHM_ATTACH 1
99 /**
100 * @brief xcb_shm_attach_request_t
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;
112 /** Opcode for xcb_shm_detach. */
113 #define XCB_SHM_DETACH 2
116 * @brief xcb_shm_detach_request_t
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;
125 /** Opcode for xcb_shm_put_image. */
126 #define XCB_SHM_PUT_IMAGE 3
129 * @brief xcb_shm_put_image_request_t
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;
154 * @brief xcb_shm_get_image_cookie_t
156 typedef struct xcb_shm_get_image_cookie_t {
157 unsigned int sequence; /**< */
158 } xcb_shm_get_image_cookie_t;
160 /** Opcode for xcb_shm_get_image. */
161 #define XCB_SHM_GET_IMAGE 4
164 * @brief xcb_shm_get_image_request_t
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;
183 * @brief xcb_shm_get_image_reply_t
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;
194 /** Opcode for xcb_shm_create_pixmap. */
195 #define XCB_SHM_CREATE_PIXMAP 5
198 * @brief xcb_shm_create_pixmap_request_t
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;
214 /** Opcode for xcb_shm_attach_fd. */
215 #define XCB_SHM_ATTACH_FD 6
218 * @brief xcb_shm_attach_fd_request_t
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;
230 * @brief xcb_shm_create_segment_cookie_t
232 typedef struct xcb_shm_create_segment_cookie_t {
233 unsigned int sequence; /**< */
234 } xcb_shm_create_segment_cookie_t;
236 /** Opcode for xcb_shm_create_segment. */
237 #define XCB_SHM_CREATE_SEGMENT 7
240 * @brief xcb_shm_create_segment_request_t
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;
253 * @brief xcb_shm_create_segment_reply_t
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;
264 * Get the next element of the iterator
265 * @param i Pointer to a xcb_shm_seg_iterator_t
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)
271 void
272 xcb_shm_seg_next (xcb_shm_seg_iterator_t *i /**< */);
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
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.
283 xcb_generic_iterator_t
284 xcb_shm_seg_end (xcb_shm_seg_iterator_t i /**< */);
288 * @param c The connection
289 * @return A cookie
291 * Delivers a request to the X server.
294 xcb_shm_query_version_cookie_t
295 xcb_shm_query_version (xcb_connection_t *c /**< */);
299 * @param c The connection
300 * @return A cookie
302 * Delivers a request to the X server.
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.
308 xcb_shm_query_version_cookie_t
309 xcb_shm_query_version_unchecked (xcb_connection_t *c /**< */);
312 * Return the reply
313 * @param c The connection
314 * @param cookie The cookie
315 * @param e The xcb_generic_error_t supplied
317 * Returns the reply of the request asked by
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.
323 * The returned value must be freed by the caller using free().
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 /**< */);
332 * @param c The connection
333 * @return A cookie
335 * Delivers a request to the X server.
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().
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 /**< */);
349 * @param c The connection
350 * @return A cookie
352 * Delivers a request to the X server.
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 /**< */);
363 * @param c The connection
364 * @return A cookie
366 * Delivers a request to the X server.
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().
372 xcb_void_cookie_t
373 xcb_shm_detach_checked (xcb_connection_t *c /**< */,
374 xcb_shm_seg_t shmseg /**< */);
378 * @param c The connection
379 * @return A cookie
381 * Delivers a request to the X server.
384 xcb_void_cookie_t
385 xcb_shm_detach (xcb_connection_t *c /**< */,
386 xcb_shm_seg_t shmseg /**< */);
390 * @param c The connection
391 * @return A cookie
393 * Delivers a request to the X server.
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().
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 /**< */);
419 * @param c The connection
420 * @return A cookie
422 * Delivers a request to the X server.
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 /**< */);
445 * @param c The connection
446 * @return A cookie
448 * Delivers a request to the X server.
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 /**< */);
465 * @param c The connection
466 * @return A cookie
468 * Delivers a request to the X server.
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.
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 /**< */);
487 * Return the reply
488 * @param c The connection
489 * @param cookie The cookie
490 * @param e The xcb_generic_error_t supplied
492 * Returns the reply of the request asked by
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.
498 * The returned value must be freed by the caller using free().
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 /**< */);
507 * @param c The connection
508 * @return A cookie
510 * Delivers a request to the X server.
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().
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 /**< */);
528 * @param c The connection
529 * @return A cookie
531 * Delivers a request to the X server.
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 /**< */);
546 * @param c The connection
547 * @return A cookie
549 * Delivers a request to the X server.
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().
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 /**< */);
563 * @param c The connection
564 * @return A cookie
566 * Delivers a request to the X server.
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 /**< */);
577 * @param c The connection
578 * @return A cookie
580 * Delivers a request to the X server.
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 /**< */);
591 * @param c The connection
592 * @return A cookie
594 * Delivers a request to the X server.
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.
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 /**< */);
607 * Return the reply
608 * @param c The connection
609 * @param cookie The cookie
610 * @param e The xcb_generic_error_t supplied
612 * Returns the reply of the request asked by
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.
618 * The returned value must be freed by the caller using free().
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 /**< */);
626 * Return the reply fds
627 * @param c The connection
628 * @param reply The reply
630 * Returns the array of reply fds of the request asked by
632 * The returned value must be freed by the caller using free().
634 int *
635 xcb_shm_create_segment_reply_fds (xcb_connection_t *c /**< */,
636 xcb_shm_create_segment_reply_t *reply /**< */);
639 #ifdef __cplusplus
641 #endif
643 #endif
646 * @}