00001
00002
00003
00004
00005
00012 #ifndef __RECORD_H
00013 #define __RECORD_H
00014
00015 #include "xcb.h"
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00021 #define XCB_RECORD_MAJOR_VERSION 1
00022 #define XCB_RECORD_MINOR_VERSION 13
00023
00024 extern xcb_extension_t xcb_record_id;
00025
00026 typedef uint32_t xcb_record_context_t;
00027
00031 typedef struct xcb_record_context_iterator_t {
00032 xcb_record_context_t *data;
00033 int rem;
00034 int index;
00035 } xcb_record_context_iterator_t;
00036
00040 typedef struct xcb_record_range_8_t {
00041 uint8_t first;
00042 uint8_t last;
00043 } xcb_record_range_8_t;
00044
00048 typedef struct xcb_record_range_8_iterator_t {
00049 xcb_record_range_8_t *data;
00050 int rem;
00051 int index;
00052 } xcb_record_range_8_iterator_t;
00053
00057 typedef struct xcb_record_range_16_t {
00058 uint16_t first;
00059 uint16_t last;
00060 } xcb_record_range_16_t;
00061
00065 typedef struct xcb_record_range_16_iterator_t {
00066 xcb_record_range_16_t *data;
00067 int rem;
00068 int index;
00069 } xcb_record_range_16_iterator_t;
00070
00074 typedef struct xcb_record_ext_range_t {
00075 xcb_record_range_8_t major;
00076 xcb_record_range_16_t minor;
00077 } xcb_record_ext_range_t;
00078
00082 typedef struct xcb_record_ext_range_iterator_t {
00083 xcb_record_ext_range_t *data;
00084 int rem;
00085 int index;
00086 } xcb_record_ext_range_iterator_t;
00087
00091 typedef struct xcb_record_range_t {
00092 xcb_record_range_8_t core_requests;
00093 xcb_record_range_8_t core_replies;
00094 xcb_record_ext_range_t ext_requests;
00095 xcb_record_ext_range_t ext_replies;
00096 xcb_record_range_8_t delivered_events;
00097 xcb_record_range_8_t device_events;
00098 xcb_record_range_8_t errors;
00099 uint8_t client_started;
00100 uint8_t client_died;
00101 } xcb_record_range_t;
00102
00106 typedef struct xcb_record_range_iterator_t {
00107 xcb_record_range_t *data;
00108 int rem;
00109 int index;
00110 } xcb_record_range_iterator_t;
00111
00112 typedef uint8_t xcb_record_element_header_t;
00113
00117 typedef struct xcb_record_element_header_iterator_t {
00118 xcb_record_element_header_t *data;
00119 int rem;
00120 int index;
00121 } xcb_record_element_header_iterator_t;
00122
00123 typedef enum xcb_record_h_type_t {
00124 XCB_RECORD_H_TYPE_FROM_SERVER_TIME = 1,
00125 XCB_RECORD_H_TYPE_FROM_CLIENT_TIME = 2,
00126 XCB_RECORD_H_TYPE_FROM_CLIENT_SEQUENCE = 4
00127 } xcb_record_h_type_t;
00128
00129 typedef uint32_t xcb_record_client_spec_t;
00130
00134 typedef struct xcb_record_client_spec_iterator_t {
00135 xcb_record_client_spec_t *data;
00136 int rem;
00137 int index;
00138 } xcb_record_client_spec_iterator_t;
00139
00140 typedef enum xcb_record_cs_t {
00141 XCB_RECORD_CS_CURRENT_CLIENTS = 1,
00142 XCB_RECORD_CS_FUTURE_CLIENTS = 2,
00143 XCB_RECORD_CS_ALL_CLIENTS = 3
00144 } xcb_record_cs_t;
00145
00149 typedef struct xcb_record_client_info_t {
00150 xcb_record_client_spec_t client_resource;
00151 uint32_t num_ranges;
00152 } xcb_record_client_info_t;
00153
00157 typedef struct xcb_record_client_info_iterator_t {
00158 xcb_record_client_info_t *data;
00159 int rem;
00160 int index;
00161 } xcb_record_client_info_iterator_t;
00162
00164 #define XCB_RECORD_BAD_CONTEXT 0
00165
00169 typedef struct xcb_record_bad_context_error_t {
00170 uint8_t response_type;
00171 uint8_t error_code;
00172 uint16_t sequence;
00173 uint32_t invalid_record;
00174 } xcb_record_bad_context_error_t;
00175
00179 typedef struct xcb_record_query_version_cookie_t {
00180 unsigned int sequence;
00181 } xcb_record_query_version_cookie_t;
00182
00184 #define XCB_RECORD_QUERY_VERSION 0
00185
00189 typedef struct xcb_record_query_version_request_t {
00190 uint8_t major_opcode;
00191 uint8_t minor_opcode;
00192 uint16_t length;
00193 uint16_t major_version;
00194 uint16_t minor_version;
00195 } xcb_record_query_version_request_t;
00196
00200 typedef struct xcb_record_query_version_reply_t {
00201 uint8_t response_type;
00202 uint8_t pad0;
00203 uint16_t sequence;
00204 uint32_t length;
00205 uint16_t major_version;
00206 uint16_t minor_version;
00207 } xcb_record_query_version_reply_t;
00208
00210 #define XCB_RECORD_CREATE_CONTEXT 1
00211
00215 typedef struct xcb_record_create_context_request_t {
00216 uint8_t major_opcode;
00217 uint8_t minor_opcode;
00218 uint16_t length;
00219 xcb_record_context_t context;
00220 xcb_record_element_header_t element_header;
00221 uint8_t pad0[3];
00222 uint32_t num_client_specs;
00223 uint32_t num_ranges;
00224 } xcb_record_create_context_request_t;
00225
00227 #define XCB_RECORD_REGISTER_CLIENTS 2
00228
00232 typedef struct xcb_record_register_clients_request_t {
00233 uint8_t major_opcode;
00234 uint8_t minor_opcode;
00235 uint16_t length;
00236 xcb_record_context_t context;
00237 xcb_record_element_header_t element_header;
00238 uint8_t pad0[3];
00239 uint32_t num_client_specs;
00240 uint32_t num_ranges;
00241 } xcb_record_register_clients_request_t;
00242
00244 #define XCB_RECORD_UNREGISTER_CLIENTS 3
00245
00249 typedef struct xcb_record_unregister_clients_request_t {
00250 uint8_t major_opcode;
00251 uint8_t minor_opcode;
00252 uint16_t length;
00253 xcb_record_context_t context;
00254 uint32_t num_client_specs;
00255 } xcb_record_unregister_clients_request_t;
00256
00260 typedef struct xcb_record_get_context_cookie_t {
00261 unsigned int sequence;
00262 } xcb_record_get_context_cookie_t;
00263
00265 #define XCB_RECORD_GET_CONTEXT 4
00266
00270 typedef struct xcb_record_get_context_request_t {
00271 uint8_t major_opcode;
00272 uint8_t minor_opcode;
00273 uint16_t length;
00274 xcb_record_context_t context;
00275 } xcb_record_get_context_request_t;
00276
00280 typedef struct xcb_record_get_context_reply_t {
00281 uint8_t response_type;
00282 uint8_t enabled;
00283 uint16_t sequence;
00284 uint32_t length;
00285 xcb_record_element_header_t element_header;
00286 uint8_t pad0[3];
00287 uint32_t num_intercepted_clients;
00288 uint8_t pad1[16];
00289 } xcb_record_get_context_reply_t;
00290
00294 typedef struct xcb_record_enable_context_cookie_t {
00295 unsigned int sequence;
00296 } xcb_record_enable_context_cookie_t;
00297
00299 #define XCB_RECORD_ENABLE_CONTEXT 5
00300
00304 typedef struct xcb_record_enable_context_request_t {
00305 uint8_t major_opcode;
00306 uint8_t minor_opcode;
00307 uint16_t length;
00308 xcb_record_context_t context;
00309 } xcb_record_enable_context_request_t;
00310
00314 typedef struct xcb_record_enable_context_reply_t {
00315 uint8_t response_type;
00316 uint8_t category;
00317 uint16_t sequence;
00318 uint32_t length;
00319 xcb_record_element_header_t element_header;
00320 uint8_t client_swapped;
00321 uint8_t pad0[2];
00322 uint32_t xid_base;
00323 uint32_t server_time;
00324 uint32_t rec_sequence_num;
00325 uint8_t pad1[8];
00326 } xcb_record_enable_context_reply_t;
00327
00329 #define XCB_RECORD_DISABLE_CONTEXT 6
00330
00334 typedef struct xcb_record_disable_context_request_t {
00335 uint8_t major_opcode;
00336 uint8_t minor_opcode;
00337 uint16_t length;
00338 xcb_record_context_t context;
00339 } xcb_record_disable_context_request_t;
00340
00342 #define XCB_RECORD_FREE_CONTEXT 7
00343
00347 typedef struct xcb_record_free_context_request_t {
00348 uint8_t major_opcode;
00349 uint8_t minor_opcode;
00350 uint16_t length;
00351 xcb_record_context_t context;
00352 } xcb_record_free_context_request_t;
00353
00362 void
00363 xcb_record_context_next (xcb_record_context_iterator_t *i);
00364
00374 xcb_generic_iterator_t
00375 xcb_record_context_end (xcb_record_context_iterator_t i);
00376
00385 void
00386 xcb_record_range_8_next (xcb_record_range_8_iterator_t *i);
00387
00397 xcb_generic_iterator_t
00398 xcb_record_range_8_end (xcb_record_range_8_iterator_t i);
00399
00408 void
00409 xcb_record_range_16_next (xcb_record_range_16_iterator_t *i);
00410
00420 xcb_generic_iterator_t
00421 xcb_record_range_16_end (xcb_record_range_16_iterator_t i);
00422
00431 void
00432 xcb_record_ext_range_next (xcb_record_ext_range_iterator_t *i);
00433
00443 xcb_generic_iterator_t
00444 xcb_record_ext_range_end (xcb_record_ext_range_iterator_t i);
00445
00454 void
00455 xcb_record_range_next (xcb_record_range_iterator_t *i);
00456
00466 xcb_generic_iterator_t
00467 xcb_record_range_end (xcb_record_range_iterator_t i);
00468
00477 void
00478 xcb_record_element_header_next (xcb_record_element_header_iterator_t *i);
00479
00489 xcb_generic_iterator_t
00490 xcb_record_element_header_end (xcb_record_element_header_iterator_t i);
00491
00500 void
00501 xcb_record_client_spec_next (xcb_record_client_spec_iterator_t *i);
00502
00512 xcb_generic_iterator_t
00513 xcb_record_client_spec_end (xcb_record_client_spec_iterator_t i);
00514
00515 int
00516 xcb_record_client_info_sizeof (const void *_buffer);
00517
00518 xcb_record_range_t *
00519 xcb_record_client_info_ranges (const xcb_record_client_info_t *R);
00520
00521 int
00522 xcb_record_client_info_ranges_length (const xcb_record_client_info_t *R);
00523
00524 xcb_record_range_iterator_t
00525 xcb_record_client_info_ranges_iterator (const xcb_record_client_info_t *R);
00526
00535 void
00536 xcb_record_client_info_next (xcb_record_client_info_iterator_t *i);
00537
00547 xcb_generic_iterator_t
00548 xcb_record_client_info_end (xcb_record_client_info_iterator_t i);
00549
00558 xcb_record_query_version_cookie_t
00559 xcb_record_query_version (xcb_connection_t *c,
00560 uint16_t major_version,
00561 uint16_t minor_version);
00562
00574 xcb_record_query_version_cookie_t
00575 xcb_record_query_version_unchecked (xcb_connection_t *c,
00576 uint16_t major_version,
00577 uint16_t minor_version);
00578
00593 xcb_record_query_version_reply_t *
00594 xcb_record_query_version_reply (xcb_connection_t *c,
00595 xcb_record_query_version_cookie_t cookie ,
00596 xcb_generic_error_t **e);
00597
00598 int
00599 xcb_record_create_context_sizeof (const void *_buffer);
00600
00612 xcb_void_cookie_t
00613 xcb_record_create_context_checked (xcb_connection_t *c,
00614 xcb_record_context_t context,
00615 xcb_record_element_header_t element_header,
00616 uint32_t num_client_specs,
00617 uint32_t num_ranges,
00618 const xcb_record_client_spec_t *client_specs,
00619 const xcb_record_range_t *ranges);
00620
00629 xcb_void_cookie_t
00630 xcb_record_create_context (xcb_connection_t *c,
00631 xcb_record_context_t context,
00632 xcb_record_element_header_t element_header,
00633 uint32_t num_client_specs,
00634 uint32_t num_ranges,
00635 const xcb_record_client_spec_t *client_specs,
00636 const xcb_record_range_t *ranges);
00637
00638 xcb_record_client_spec_t *
00639 xcb_record_create_context_client_specs (const xcb_record_create_context_request_t *R);
00640
00641 int
00642 xcb_record_create_context_client_specs_length (const xcb_record_create_context_request_t *R);
00643
00644 xcb_generic_iterator_t
00645 xcb_record_create_context_client_specs_end (const xcb_record_create_context_request_t *R);
00646
00647 xcb_record_range_t *
00648 xcb_record_create_context_ranges (const xcb_record_create_context_request_t *R);
00649
00650 int
00651 xcb_record_create_context_ranges_length (const xcb_record_create_context_request_t *R);
00652
00653 xcb_record_range_iterator_t
00654 xcb_record_create_context_ranges_iterator (const xcb_record_create_context_request_t *R);
00655
00656 int
00657 xcb_record_register_clients_sizeof (const void *_buffer);
00658
00670 xcb_void_cookie_t
00671 xcb_record_register_clients_checked (xcb_connection_t *c,
00672 xcb_record_context_t context,
00673 xcb_record_element_header_t element_header,
00674 uint32_t num_client_specs,
00675 uint32_t num_ranges,
00676 const xcb_record_client_spec_t *client_specs,
00677 const xcb_record_range_t *ranges);
00678
00687 xcb_void_cookie_t
00688 xcb_record_register_clients (xcb_connection_t *c,
00689 xcb_record_context_t context,
00690 xcb_record_element_header_t element_header,
00691 uint32_t num_client_specs,
00692 uint32_t num_ranges,
00693 const xcb_record_client_spec_t *client_specs,
00694 const xcb_record_range_t *ranges);
00695
00696 xcb_record_client_spec_t *
00697 xcb_record_register_clients_client_specs (const xcb_record_register_clients_request_t *R);
00698
00699 int
00700 xcb_record_register_clients_client_specs_length (const xcb_record_register_clients_request_t *R);
00701
00702 xcb_generic_iterator_t
00703 xcb_record_register_clients_client_specs_end (const xcb_record_register_clients_request_t *R);
00704
00705 xcb_record_range_t *
00706 xcb_record_register_clients_ranges (const xcb_record_register_clients_request_t *R);
00707
00708 int
00709 xcb_record_register_clients_ranges_length (const xcb_record_register_clients_request_t *R);
00710
00711 xcb_record_range_iterator_t
00712 xcb_record_register_clients_ranges_iterator (const xcb_record_register_clients_request_t *R);
00713
00714 int
00715 xcb_record_unregister_clients_sizeof (const void *_buffer);
00716
00728 xcb_void_cookie_t
00729 xcb_record_unregister_clients_checked (xcb_connection_t *c,
00730 xcb_record_context_t context,
00731 uint32_t num_client_specs,
00732 const xcb_record_client_spec_t *client_specs);
00733
00742 xcb_void_cookie_t
00743 xcb_record_unregister_clients (xcb_connection_t *c,
00744 xcb_record_context_t context,
00745 uint32_t num_client_specs,
00746 const xcb_record_client_spec_t *client_specs);
00747
00748 xcb_record_client_spec_t *
00749 xcb_record_unregister_clients_client_specs (const xcb_record_unregister_clients_request_t *R);
00750
00751 int
00752 xcb_record_unregister_clients_client_specs_length (const xcb_record_unregister_clients_request_t *R);
00753
00754 xcb_generic_iterator_t
00755 xcb_record_unregister_clients_client_specs_end (const xcb_record_unregister_clients_request_t *R);
00756
00757 int
00758 xcb_record_get_context_sizeof (const void *_buffer);
00759
00768 xcb_record_get_context_cookie_t
00769 xcb_record_get_context (xcb_connection_t *c,
00770 xcb_record_context_t context);
00771
00783 xcb_record_get_context_cookie_t
00784 xcb_record_get_context_unchecked (xcb_connection_t *c,
00785 xcb_record_context_t context);
00786
00787 int
00788 xcb_record_get_context_intercepted_clients_length (const xcb_record_get_context_reply_t *R);
00789
00790 xcb_record_client_info_iterator_t
00791 xcb_record_get_context_intercepted_clients_iterator (const xcb_record_get_context_reply_t *R);
00792
00807 xcb_record_get_context_reply_t *
00808 xcb_record_get_context_reply (xcb_connection_t *c,
00809 xcb_record_get_context_cookie_t cookie ,
00810 xcb_generic_error_t **e);
00811
00812 int
00813 xcb_record_enable_context_sizeof (const void *_buffer);
00814
00823 xcb_record_enable_context_cookie_t
00824 xcb_record_enable_context (xcb_connection_t *c,
00825 xcb_record_context_t context);
00826
00838 xcb_record_enable_context_cookie_t
00839 xcb_record_enable_context_unchecked (xcb_connection_t *c,
00840 xcb_record_context_t context);
00841
00842 uint8_t *
00843 xcb_record_enable_context_data (const xcb_record_enable_context_reply_t *R);
00844
00845 int
00846 xcb_record_enable_context_data_length (const xcb_record_enable_context_reply_t *R);
00847
00848 xcb_generic_iterator_t
00849 xcb_record_enable_context_data_end (const xcb_record_enable_context_reply_t *R);
00850
00865 xcb_record_enable_context_reply_t *
00866 xcb_record_enable_context_reply (xcb_connection_t *c,
00867 xcb_record_enable_context_cookie_t cookie ,
00868 xcb_generic_error_t **e);
00869
00881 xcb_void_cookie_t
00882 xcb_record_disable_context_checked (xcb_connection_t *c,
00883 xcb_record_context_t context);
00884
00893 xcb_void_cookie_t
00894 xcb_record_disable_context (xcb_connection_t *c,
00895 xcb_record_context_t context);
00896
00908 xcb_void_cookie_t
00909 xcb_record_free_context_checked (xcb_connection_t *c,
00910 xcb_record_context_t context);
00911
00920 xcb_void_cookie_t
00921 xcb_record_free_context (xcb_connection_t *c,
00922 xcb_record_context_t context);
00923
00924
00925 #ifdef __cplusplus
00926 }
00927 #endif
00928
00929 #endif
00930