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 << 0),
00125 XCB_RECORD_H_TYPE_FROM_CLIENT_TIME = (1 << 1),
00126 XCB_RECORD_H_TYPE_FROM_CLIENT_SEQUENCE = (1 << 2)
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
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372 void
00373 xcb_record_context_next (xcb_record_context_iterator_t *i );
00374
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394 xcb_generic_iterator_t
00395 xcb_record_context_end (xcb_record_context_iterator_t i );
00396
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415 void
00416 xcb_record_range_8_next (xcb_record_range_8_iterator_t *i );
00417
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437 xcb_generic_iterator_t
00438 xcb_record_range_8_end (xcb_record_range_8_iterator_t i );
00439
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458 void
00459 xcb_record_range_16_next (xcb_record_range_16_iterator_t *i );
00460
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480 xcb_generic_iterator_t
00481 xcb_record_range_16_end (xcb_record_range_16_iterator_t i );
00482
00492
00493
00494
00495
00496
00497
00498
00499
00500
00501 void
00502 xcb_record_ext_range_next (xcb_record_ext_range_iterator_t *i );
00503
00514
00515
00516
00517
00518
00519
00520
00521
00522
00523 xcb_generic_iterator_t
00524 xcb_record_ext_range_end (xcb_record_ext_range_iterator_t i );
00525
00535
00536
00537
00538
00539
00540
00541
00542
00543
00544 void
00545 xcb_record_range_next (xcb_record_range_iterator_t *i );
00546
00557
00558
00559
00560
00561
00562
00563
00564
00565
00566 xcb_generic_iterator_t
00567 xcb_record_range_end (xcb_record_range_iterator_t i );
00568
00578
00579
00580
00581
00582
00583
00584
00585
00586
00587 void
00588 xcb_record_element_header_next (xcb_record_element_header_iterator_t *i );
00589
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609 xcb_generic_iterator_t
00610 xcb_record_element_header_end (xcb_record_element_header_iterator_t i );
00611
00621
00622
00623
00624
00625
00626
00627
00628
00629
00630 void
00631 xcb_record_client_spec_next (xcb_record_client_spec_iterator_t *i );
00632
00643
00644
00645
00646
00647
00648
00649
00650
00651
00652 xcb_generic_iterator_t
00653 xcb_record_client_spec_end (xcb_record_client_spec_iterator_t i );
00654
00655
00656
00657
00658
00659
00660
00661
00662
00663
00664
00665 xcb_record_range_t *
00666 xcb_record_client_info_ranges (const xcb_record_client_info_t *R );
00667
00668
00669
00670
00671
00672
00673
00674
00675
00676
00677
00678 int
00679 xcb_record_client_info_ranges_length (const xcb_record_client_info_t *R );
00680
00681
00682
00683
00684
00685
00686
00687
00688
00689
00690
00691 xcb_record_range_iterator_t
00692 xcb_record_client_info_ranges_iterator (const xcb_record_client_info_t *R );
00693
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712 void
00713 xcb_record_client_info_next (xcb_record_client_info_iterator_t *i );
00714
00725
00726
00727
00728
00729
00730
00731
00732
00733
00734 xcb_generic_iterator_t
00735 xcb_record_client_info_end (xcb_record_client_info_iterator_t i );
00736
00746
00747
00748
00749
00750
00751
00752
00753
00754
00755
00756
00757 xcb_record_query_version_cookie_t
00758 xcb_record_query_version (xcb_connection_t *c ,
00759 uint16_t major_version ,
00760 uint16_t minor_version );
00761
00774
00775
00776
00777
00778
00779
00780
00781
00782
00783
00784
00785 xcb_record_query_version_cookie_t
00786 xcb_record_query_version_unchecked (xcb_connection_t *c ,
00787 uint16_t major_version ,
00788 uint16_t minor_version );
00789
00805
00806
00807
00808
00809
00810
00811
00812
00813
00814
00815
00816 xcb_record_query_version_reply_t *
00817 xcb_record_query_version_reply (xcb_connection_t *c ,
00818 xcb_record_query_version_cookie_t cookie ,
00819 xcb_generic_error_t **e );
00820
00833
00834
00835
00836
00837
00838
00839
00840
00841
00842
00843
00844
00845
00846
00847
00848 xcb_void_cookie_t
00849 xcb_record_create_context_checked (xcb_connection_t *c ,
00850 xcb_record_context_t context ,
00851 xcb_record_element_header_t element_header ,
00852 uint32_t num_client_specs ,
00853 uint32_t num_ranges ,
00854 const xcb_record_client_spec_t *client_specs ,
00855 const xcb_record_range_t *ranges );
00856
00866
00867
00868
00869
00870
00871
00872
00873
00874
00875
00876
00877
00878
00879
00880
00881 xcb_void_cookie_t
00882 xcb_record_create_context (xcb_connection_t *c ,
00883 xcb_record_context_t context ,
00884 xcb_record_element_header_t element_header ,
00885 uint32_t num_client_specs ,
00886 uint32_t num_ranges ,
00887 const xcb_record_client_spec_t *client_specs ,
00888 const xcb_record_range_t *ranges );
00889
00902
00903
00904
00905
00906
00907
00908
00909
00910
00911
00912
00913
00914
00915
00916
00917 xcb_void_cookie_t
00918 xcb_record_register_clients_checked (xcb_connection_t *c ,
00919 xcb_record_context_t context ,
00920 xcb_record_element_header_t element_header ,
00921 uint32_t num_client_specs ,
00922 uint32_t num_ranges ,
00923 const xcb_record_client_spec_t *client_specs ,
00924 const xcb_record_range_t *ranges );
00925
00935
00936
00937
00938
00939
00940
00941
00942
00943
00944
00945
00946
00947
00948
00949
00950 xcb_void_cookie_t
00951 xcb_record_register_clients (xcb_connection_t *c ,
00952 xcb_record_context_t context ,
00953 xcb_record_element_header_t element_header ,
00954 uint32_t num_client_specs ,
00955 uint32_t num_ranges ,
00956 const xcb_record_client_spec_t *client_specs ,
00957 const xcb_record_range_t *ranges );
00958
00971
00972
00973
00974
00975
00976
00977
00978
00979
00980
00981
00982
00983 xcb_void_cookie_t
00984 xcb_record_unregister_clients_checked (xcb_connection_t *c ,
00985 xcb_record_context_t context ,
00986 uint32_t num_client_specs ,
00987 const xcb_record_client_spec_t *client_specs );
00988
00998
00999
01000
01001
01002
01003
01004
01005
01006
01007
01008
01009
01010 xcb_void_cookie_t
01011 xcb_record_unregister_clients (xcb_connection_t *c ,
01012 xcb_record_context_t context ,
01013 uint32_t num_client_specs ,
01014 const xcb_record_client_spec_t *client_specs );
01015
01025
01026
01027
01028
01029
01030
01031
01032
01033
01034
01035 xcb_record_get_context_cookie_t
01036 xcb_record_get_context (xcb_connection_t *c ,
01037 xcb_record_context_t context );
01038
01051
01052
01053
01054
01055
01056
01057
01058
01059
01060
01061 xcb_record_get_context_cookie_t
01062 xcb_record_get_context_unchecked (xcb_connection_t *c ,
01063 xcb_record_context_t context );
01064
01065
01066
01067
01068
01069
01070
01071
01072
01073
01074
01075 int
01076 xcb_record_get_context_intercepted_clients_length (const xcb_record_get_context_reply_t *R );
01077
01078
01079
01080
01081
01082
01083
01084
01085
01086
01087
01088 xcb_record_client_info_iterator_t
01089 xcb_record_get_context_intercepted_clients_iterator (const xcb_record_get_context_reply_t *R );
01090
01106
01107
01108
01109
01110
01111
01112
01113
01114
01115
01116
01117 xcb_record_get_context_reply_t *
01118 xcb_record_get_context_reply (xcb_connection_t *c ,
01119 xcb_record_get_context_cookie_t cookie ,
01120 xcb_generic_error_t **e );
01121
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141 xcb_record_enable_context_cookie_t
01142 xcb_record_enable_context (xcb_connection_t *c ,
01143 xcb_record_context_t context );
01144
01157
01158
01159
01160
01161
01162
01163
01164
01165
01166
01167 xcb_record_enable_context_cookie_t
01168 xcb_record_enable_context_unchecked (xcb_connection_t *c ,
01169 xcb_record_context_t context );
01170
01171
01172
01173
01174
01175
01176
01177
01178
01179
01180
01181 uint8_t *
01182 xcb_record_enable_context_data (const xcb_record_enable_context_reply_t *R );
01183
01184
01185
01186
01187
01188
01189
01190
01191
01192
01193
01194 int
01195 xcb_record_enable_context_data_length (const xcb_record_enable_context_reply_t *R );
01196
01197
01198
01199
01200
01201
01202
01203
01204
01205
01206
01207 xcb_generic_iterator_t
01208 xcb_record_enable_context_data_end (const xcb_record_enable_context_reply_t *R );
01209
01225
01226
01227
01228
01229
01230
01231
01232
01233
01234
01235
01236 xcb_record_enable_context_reply_t *
01237 xcb_record_enable_context_reply (xcb_connection_t *c ,
01238 xcb_record_enable_context_cookie_t cookie ,
01239 xcb_generic_error_t **e );
01240
01253
01254
01255
01256
01257
01258
01259
01260
01261
01262
01263 xcb_void_cookie_t
01264 xcb_record_disable_context_checked (xcb_connection_t *c ,
01265 xcb_record_context_t context );
01266
01276
01277
01278
01279
01280
01281
01282
01283
01284
01285
01286 xcb_void_cookie_t
01287 xcb_record_disable_context (xcb_connection_t *c ,
01288 xcb_record_context_t context );
01289
01302
01303
01304
01305
01306
01307
01308
01309
01310
01311
01312 xcb_void_cookie_t
01313 xcb_record_free_context_checked (xcb_connection_t *c ,
01314 xcb_record_context_t context );
01315
01325
01326
01327
01328
01329
01330
01331
01332
01333
01334
01335 xcb_void_cookie_t
01336 xcb_record_free_context (xcb_connection_t *c ,
01337 xcb_record_context_t context );
01338
01339
01340 #ifdef __cplusplus
01341 }
01342 #endif
01343
01344 #endif
01345