00001
00002
00003
00004
00005
00012 #ifndef __RES_H
00013 #define __RES_H
00014
00015 #include "xcb.h"
00016 #include "xproto.h"
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00022 #define XCB_RES_MAJOR_VERSION 1
00023 #define XCB_RES_MINOR_VERSION 2
00024
00025 extern xcb_extension_t xcb_res_id;
00026
00030 typedef struct xcb_res_client_t {
00031 uint32_t resource_base;
00032 uint32_t resource_mask;
00033 } xcb_res_client_t;
00034
00038 typedef struct xcb_res_client_iterator_t {
00039 xcb_res_client_t *data;
00040 int rem;
00041 int index;
00042 } xcb_res_client_iterator_t;
00043
00047 typedef struct xcb_res_type_t {
00048 xcb_atom_t resource_type;
00049 uint32_t count;
00050 } xcb_res_type_t;
00051
00055 typedef struct xcb_res_type_iterator_t {
00056 xcb_res_type_t *data;
00057 int rem;
00058 int index;
00059 } xcb_res_type_iterator_t;
00060
00061 typedef enum xcb_res_client_id_mask_t {
00062 XCB_RES_CLIENT_ID_MASK_CLIENT_XID = 1,
00063 XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID = 2
00064 } xcb_res_client_id_mask_t;
00065
00069 typedef struct xcb_res_client_id_spec_t {
00070 uint32_t client;
00071 uint32_t mask;
00072 } xcb_res_client_id_spec_t;
00073
00077 typedef struct xcb_res_client_id_spec_iterator_t {
00078 xcb_res_client_id_spec_t *data;
00079 int rem;
00080 int index;
00081 } xcb_res_client_id_spec_iterator_t;
00082
00086 typedef struct xcb_res_client_id_value_t {
00087 xcb_res_client_id_spec_t spec;
00088 uint32_t length;
00089 } xcb_res_client_id_value_t;
00090
00094 typedef struct xcb_res_client_id_value_iterator_t {
00095 xcb_res_client_id_value_t *data;
00096 int rem;
00097 int index;
00098 } xcb_res_client_id_value_iterator_t;
00099
00103 typedef struct xcb_res_resource_id_spec_t {
00104 uint32_t resource;
00105 uint32_t type;
00106 } xcb_res_resource_id_spec_t;
00107
00111 typedef struct xcb_res_resource_id_spec_iterator_t {
00112 xcb_res_resource_id_spec_t *data;
00113 int rem;
00114 int index;
00115 } xcb_res_resource_id_spec_iterator_t;
00116
00120 typedef struct xcb_res_resource_size_spec_t {
00121 xcb_res_resource_id_spec_t spec;
00122 uint32_t bytes;
00123 uint32_t ref_count;
00124 uint32_t use_count;
00125 } xcb_res_resource_size_spec_t;
00126
00130 typedef struct xcb_res_resource_size_spec_iterator_t {
00131 xcb_res_resource_size_spec_t *data;
00132 int rem;
00133 int index;
00134 } xcb_res_resource_size_spec_iterator_t;
00135
00139 typedef struct xcb_res_resource_size_value_t {
00140 xcb_res_resource_size_spec_t size;
00141 uint32_t num_cross_references;
00142 } xcb_res_resource_size_value_t;
00143
00147 typedef struct xcb_res_resource_size_value_iterator_t {
00148 xcb_res_resource_size_value_t *data;
00149 int rem;
00150 int index;
00151 } xcb_res_resource_size_value_iterator_t;
00152
00156 typedef struct xcb_res_query_version_cookie_t {
00157 unsigned int sequence;
00158 } xcb_res_query_version_cookie_t;
00159
00161 #define XCB_RES_QUERY_VERSION 0
00162
00166 typedef struct xcb_res_query_version_request_t {
00167 uint8_t major_opcode;
00168 uint8_t minor_opcode;
00169 uint16_t length;
00170 uint8_t client_major;
00171 uint8_t client_minor;
00172 } xcb_res_query_version_request_t;
00173
00177 typedef struct xcb_res_query_version_reply_t {
00178 uint8_t response_type;
00179 uint8_t pad0;
00180 uint16_t sequence;
00181 uint32_t length;
00182 uint16_t server_major;
00183 uint16_t server_minor;
00184 } xcb_res_query_version_reply_t;
00185
00189 typedef struct xcb_res_query_clients_cookie_t {
00190 unsigned int sequence;
00191 } xcb_res_query_clients_cookie_t;
00192
00194 #define XCB_RES_QUERY_CLIENTS 1
00195
00199 typedef struct xcb_res_query_clients_request_t {
00200 uint8_t major_opcode;
00201 uint8_t minor_opcode;
00202 uint16_t length;
00203 } xcb_res_query_clients_request_t;
00204
00208 typedef struct xcb_res_query_clients_reply_t {
00209 uint8_t response_type;
00210 uint8_t pad0;
00211 uint16_t sequence;
00212 uint32_t length;
00213 uint32_t num_clients;
00214 uint8_t pad1[20];
00215 } xcb_res_query_clients_reply_t;
00216
00220 typedef struct xcb_res_query_client_resources_cookie_t {
00221 unsigned int sequence;
00222 } xcb_res_query_client_resources_cookie_t;
00223
00225 #define XCB_RES_QUERY_CLIENT_RESOURCES 2
00226
00230 typedef struct xcb_res_query_client_resources_request_t {
00231 uint8_t major_opcode;
00232 uint8_t minor_opcode;
00233 uint16_t length;
00234 uint32_t xid;
00235 } xcb_res_query_client_resources_request_t;
00236
00240 typedef struct xcb_res_query_client_resources_reply_t {
00241 uint8_t response_type;
00242 uint8_t pad0;
00243 uint16_t sequence;
00244 uint32_t length;
00245 uint32_t num_types;
00246 uint8_t pad1[20];
00247 } xcb_res_query_client_resources_reply_t;
00248
00252 typedef struct xcb_res_query_client_pixmap_bytes_cookie_t {
00253 unsigned int sequence;
00254 } xcb_res_query_client_pixmap_bytes_cookie_t;
00255
00257 #define XCB_RES_QUERY_CLIENT_PIXMAP_BYTES 3
00258
00262 typedef struct xcb_res_query_client_pixmap_bytes_request_t {
00263 uint8_t major_opcode;
00264 uint8_t minor_opcode;
00265 uint16_t length;
00266 uint32_t xid;
00267 } xcb_res_query_client_pixmap_bytes_request_t;
00268
00272 typedef struct xcb_res_query_client_pixmap_bytes_reply_t {
00273 uint8_t response_type;
00274 uint8_t pad0;
00275 uint16_t sequence;
00276 uint32_t length;
00277 uint32_t bytes;
00278 uint32_t bytes_overflow;
00279 } xcb_res_query_client_pixmap_bytes_reply_t;
00280
00284 typedef struct xcb_res_query_client_ids_cookie_t {
00285 unsigned int sequence;
00286 } xcb_res_query_client_ids_cookie_t;
00287
00289 #define XCB_RES_QUERY_CLIENT_IDS 4
00290
00294 typedef struct xcb_res_query_client_ids_request_t {
00295 uint8_t major_opcode;
00296 uint8_t minor_opcode;
00297 uint16_t length;
00298 uint32_t num_specs;
00299 } xcb_res_query_client_ids_request_t;
00300
00304 typedef struct xcb_res_query_client_ids_reply_t {
00305 uint8_t response_type;
00306 uint8_t pad0;
00307 uint16_t sequence;
00308 uint32_t length;
00309 uint32_t num_ids;
00310 uint8_t pad1[20];
00311 } xcb_res_query_client_ids_reply_t;
00312
00316 typedef struct xcb_res_query_resource_bytes_cookie_t {
00317 unsigned int sequence;
00318 } xcb_res_query_resource_bytes_cookie_t;
00319
00321 #define XCB_RES_QUERY_RESOURCE_BYTES 5
00322
00326 typedef struct xcb_res_query_resource_bytes_request_t {
00327 uint8_t major_opcode;
00328 uint8_t minor_opcode;
00329 uint16_t length;
00330 uint32_t client;
00331 uint32_t num_specs;
00332 } xcb_res_query_resource_bytes_request_t;
00333
00337 typedef struct xcb_res_query_resource_bytes_reply_t {
00338 uint8_t response_type;
00339 uint8_t pad0;
00340 uint16_t sequence;
00341 uint32_t length;
00342 uint32_t num_sizes;
00343 uint8_t pad1[20];
00344 } xcb_res_query_resource_bytes_reply_t;
00345
00354 void
00355 xcb_res_client_next (xcb_res_client_iterator_t *i);
00356
00366 xcb_generic_iterator_t
00367 xcb_res_client_end (xcb_res_client_iterator_t i);
00368
00377 void
00378 xcb_res_type_next (xcb_res_type_iterator_t *i);
00379
00389 xcb_generic_iterator_t
00390 xcb_res_type_end (xcb_res_type_iterator_t i);
00391
00400 void
00401 xcb_res_client_id_spec_next (xcb_res_client_id_spec_iterator_t *i);
00402
00412 xcb_generic_iterator_t
00413 xcb_res_client_id_spec_end (xcb_res_client_id_spec_iterator_t i);
00414
00415 int
00416 xcb_res_client_id_value_sizeof (const void *_buffer);
00417
00418 uint32_t *
00419 xcb_res_client_id_value_value (const xcb_res_client_id_value_t *R);
00420
00421 int
00422 xcb_res_client_id_value_value_length (const xcb_res_client_id_value_t *R);
00423
00424 xcb_generic_iterator_t
00425 xcb_res_client_id_value_value_end (const xcb_res_client_id_value_t *R);
00426
00435 void
00436 xcb_res_client_id_value_next (xcb_res_client_id_value_iterator_t *i);
00437
00447 xcb_generic_iterator_t
00448 xcb_res_client_id_value_end (xcb_res_client_id_value_iterator_t i);
00449
00458 void
00459 xcb_res_resource_id_spec_next (xcb_res_resource_id_spec_iterator_t *i);
00460
00470 xcb_generic_iterator_t
00471 xcb_res_resource_id_spec_end (xcb_res_resource_id_spec_iterator_t i);
00472
00481 void
00482 xcb_res_resource_size_spec_next (xcb_res_resource_size_spec_iterator_t *i);
00483
00493 xcb_generic_iterator_t
00494 xcb_res_resource_size_spec_end (xcb_res_resource_size_spec_iterator_t i);
00495
00496 int
00497 xcb_res_resource_size_value_sizeof (const void *_buffer);
00498
00499 xcb_res_resource_size_spec_t *
00500 xcb_res_resource_size_value_cross_references (const xcb_res_resource_size_value_t *R);
00501
00502 int
00503 xcb_res_resource_size_value_cross_references_length (const xcb_res_resource_size_value_t *R);
00504
00505 xcb_res_resource_size_spec_iterator_t
00506 xcb_res_resource_size_value_cross_references_iterator (const xcb_res_resource_size_value_t *R);
00507
00516 void
00517 xcb_res_resource_size_value_next (xcb_res_resource_size_value_iterator_t *i);
00518
00528 xcb_generic_iterator_t
00529 xcb_res_resource_size_value_end (xcb_res_resource_size_value_iterator_t i);
00530
00539 xcb_res_query_version_cookie_t
00540 xcb_res_query_version (xcb_connection_t *c,
00541 uint8_t client_major,
00542 uint8_t client_minor);
00543
00555 xcb_res_query_version_cookie_t
00556 xcb_res_query_version_unchecked (xcb_connection_t *c,
00557 uint8_t client_major,
00558 uint8_t client_minor);
00559
00574 xcb_res_query_version_reply_t *
00575 xcb_res_query_version_reply (xcb_connection_t *c,
00576 xcb_res_query_version_cookie_t cookie ,
00577 xcb_generic_error_t **e);
00578
00579 int
00580 xcb_res_query_clients_sizeof (const void *_buffer);
00581
00590 xcb_res_query_clients_cookie_t
00591 xcb_res_query_clients (xcb_connection_t *c);
00592
00604 xcb_res_query_clients_cookie_t
00605 xcb_res_query_clients_unchecked (xcb_connection_t *c);
00606
00607 xcb_res_client_t *
00608 xcb_res_query_clients_clients (const xcb_res_query_clients_reply_t *R);
00609
00610 int
00611 xcb_res_query_clients_clients_length (const xcb_res_query_clients_reply_t *R);
00612
00613 xcb_res_client_iterator_t
00614 xcb_res_query_clients_clients_iterator (const xcb_res_query_clients_reply_t *R);
00615
00630 xcb_res_query_clients_reply_t *
00631 xcb_res_query_clients_reply (xcb_connection_t *c,
00632 xcb_res_query_clients_cookie_t cookie ,
00633 xcb_generic_error_t **e);
00634
00635 int
00636 xcb_res_query_client_resources_sizeof (const void *_buffer);
00637
00646 xcb_res_query_client_resources_cookie_t
00647 xcb_res_query_client_resources (xcb_connection_t *c,
00648 uint32_t xid);
00649
00661 xcb_res_query_client_resources_cookie_t
00662 xcb_res_query_client_resources_unchecked (xcb_connection_t *c,
00663 uint32_t xid);
00664
00665 xcb_res_type_t *
00666 xcb_res_query_client_resources_types (const xcb_res_query_client_resources_reply_t *R);
00667
00668 int
00669 xcb_res_query_client_resources_types_length (const xcb_res_query_client_resources_reply_t *R);
00670
00671 xcb_res_type_iterator_t
00672 xcb_res_query_client_resources_types_iterator (const xcb_res_query_client_resources_reply_t *R);
00673
00688 xcb_res_query_client_resources_reply_t *
00689 xcb_res_query_client_resources_reply (xcb_connection_t *c,
00690 xcb_res_query_client_resources_cookie_t cookie ,
00691 xcb_generic_error_t **e);
00692
00701 xcb_res_query_client_pixmap_bytes_cookie_t
00702 xcb_res_query_client_pixmap_bytes (xcb_connection_t *c,
00703 uint32_t xid);
00704
00716 xcb_res_query_client_pixmap_bytes_cookie_t
00717 xcb_res_query_client_pixmap_bytes_unchecked (xcb_connection_t *c,
00718 uint32_t xid);
00719
00734 xcb_res_query_client_pixmap_bytes_reply_t *
00735 xcb_res_query_client_pixmap_bytes_reply (xcb_connection_t *c,
00736 xcb_res_query_client_pixmap_bytes_cookie_t cookie ,
00737 xcb_generic_error_t **e);
00738
00739 int
00740 xcb_res_query_client_ids_sizeof (const void *_buffer);
00741
00750 xcb_res_query_client_ids_cookie_t
00751 xcb_res_query_client_ids (xcb_connection_t *c,
00752 uint32_t num_specs,
00753 const xcb_res_client_id_spec_t *specs);
00754
00766 xcb_res_query_client_ids_cookie_t
00767 xcb_res_query_client_ids_unchecked (xcb_connection_t *c,
00768 uint32_t num_specs,
00769 const xcb_res_client_id_spec_t *specs);
00770
00771 int
00772 xcb_res_query_client_ids_ids_length (const xcb_res_query_client_ids_reply_t *R);
00773
00774 xcb_res_client_id_value_iterator_t
00775 xcb_res_query_client_ids_ids_iterator (const xcb_res_query_client_ids_reply_t *R);
00776
00791 xcb_res_query_client_ids_reply_t *
00792 xcb_res_query_client_ids_reply (xcb_connection_t *c,
00793 xcb_res_query_client_ids_cookie_t cookie ,
00794 xcb_generic_error_t **e);
00795
00796 int
00797 xcb_res_query_resource_bytes_sizeof (const void *_buffer);
00798
00807 xcb_res_query_resource_bytes_cookie_t
00808 xcb_res_query_resource_bytes (xcb_connection_t *c,
00809 uint32_t client,
00810 uint32_t num_specs,
00811 const xcb_res_resource_id_spec_t *specs);
00812
00824 xcb_res_query_resource_bytes_cookie_t
00825 xcb_res_query_resource_bytes_unchecked (xcb_connection_t *c,
00826 uint32_t client,
00827 uint32_t num_specs,
00828 const xcb_res_resource_id_spec_t *specs);
00829
00830 int
00831 xcb_res_query_resource_bytes_sizes_length (const xcb_res_query_resource_bytes_reply_t *R);
00832
00833 xcb_res_resource_size_value_iterator_t
00834 xcb_res_query_resource_bytes_sizes_iterator (const xcb_res_query_resource_bytes_reply_t *R);
00835
00850 xcb_res_query_resource_bytes_reply_t *
00851 xcb_res_query_resource_bytes_reply (xcb_connection_t *c,
00852 xcb_res_query_resource_bytes_cookie_t cookie ,
00853 xcb_generic_error_t **e);
00854
00855
00856 #ifdef __cplusplus
00857 }
00858 #endif
00859
00860 #endif
00861