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
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 int
00656 xcb_record_client_info_sizeof (const void *_buffer );
00657
00658
00659
00660
00661
00662
00663
00664
00665
00666
00667
00668 xcb_record_range_t *
00669 xcb_record_client_info_ranges (const xcb_record_client_info_t *R );
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681 int
00682 xcb_record_client_info_ranges_length (const xcb_record_client_info_t *R );
00683
00684
00685
00686
00687
00688
00689
00690
00691
00692
00693
00694 xcb_record_range_iterator_t
00695 xcb_record_client_info_ranges_iterator (const xcb_record_client_info_t *R );
00696
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715 void
00716 xcb_record_client_info_next (xcb_record_client_info_iterator_t *i );
00717
00728
00729
00730
00731
00732
00733
00734
00735
00736
00737 xcb_generic_iterator_t
00738 xcb_record_client_info_end (xcb_record_client_info_iterator_t i );
00739
00749
00750
00751
00752
00753
00754
00755
00756
00757
00758
00759
00760 xcb_record_query_version_cookie_t
00761 xcb_record_query_version (xcb_connection_t *c ,
00762 uint16_t major_version ,
00763 uint16_t minor_version );
00764
00777
00778
00779
00780
00781
00782
00783
00784
00785
00786
00787
00788 xcb_record_query_version_cookie_t
00789 xcb_record_query_version_unchecked (xcb_connection_t *c ,
00790 uint16_t major_version ,
00791 uint16_t minor_version );
00792
00808
00809
00810
00811
00812
00813
00814
00815
00816
00817
00818
00819 xcb_record_query_version_reply_t *
00820 xcb_record_query_version_reply (xcb_connection_t *c ,
00821 xcb_record_query_version_cookie_t cookie ,
00822 xcb_generic_error_t **e );
00823
00824 int
00825 xcb_record_create_context_sizeof (const void *_buffer );
00826
00839
00840
00841
00842
00843
00844
00845
00846
00847
00848
00849
00850
00851
00852
00853
00854 xcb_void_cookie_t
00855 xcb_record_create_context_checked (xcb_connection_t *c ,
00856 xcb_record_context_t context ,
00857 xcb_record_element_header_t element_header ,
00858 uint32_t num_client_specs ,
00859 uint32_t num_ranges ,
00860 const xcb_record_client_spec_t *client_specs ,
00861 const xcb_record_range_t *ranges );
00862
00872
00873
00874
00875
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887 xcb_void_cookie_t
00888 xcb_record_create_context (xcb_connection_t *c ,
00889 xcb_record_context_t context ,
00890 xcb_record_element_header_t element_header ,
00891 uint32_t num_client_specs ,
00892 uint32_t num_ranges ,
00893 const xcb_record_client_spec_t *client_specs ,
00894 const xcb_record_range_t *ranges );
00895
00896 int
00897 xcb_record_register_clients_sizeof (const void *_buffer );
00898
00911
00912
00913
00914
00915
00916
00917
00918
00919
00920
00921
00922
00923
00924
00925
00926 xcb_void_cookie_t
00927 xcb_record_register_clients_checked (xcb_connection_t *c ,
00928 xcb_record_context_t context ,
00929 xcb_record_element_header_t element_header ,
00930 uint32_t num_client_specs ,
00931 uint32_t num_ranges ,
00932 const xcb_record_client_spec_t *client_specs ,
00933 const xcb_record_range_t *ranges );
00934
00944
00945
00946
00947
00948
00949
00950
00951
00952
00953
00954
00955
00956
00957
00958
00959 xcb_void_cookie_t
00960 xcb_record_register_clients (xcb_connection_t *c ,
00961 xcb_record_context_t context ,
00962 xcb_record_element_header_t element_header ,
00963 uint32_t num_client_specs ,
00964 uint32_t num_ranges ,
00965 const xcb_record_client_spec_t *client_specs ,
00966 const xcb_record_range_t *ranges );
00967
00968 int
00969 xcb_record_unregister_clients_sizeof (const void *_buffer );
00970
00983
00984
00985
00986
00987
00988
00989
00990
00991
00992
00993
00994
00995 xcb_void_cookie_t
00996 xcb_record_unregister_clients_checked (xcb_connection_t *c ,
00997 xcb_record_context_t context ,
00998 uint32_t num_client_specs ,
00999 const xcb_record_client_spec_t *client_specs );
01000
01010
01011
01012
01013
01014
01015
01016
01017
01018
01019
01020
01021
01022 xcb_void_cookie_t
01023 xcb_record_unregister_clients (xcb_connection_t *c ,
01024 xcb_record_context_t context ,
01025 uint32_t num_client_specs ,
01026 const xcb_record_client_spec_t *client_specs );
01027
01028 int
01029 xcb_record_get_context_sizeof (const void *_buffer );
01030
01040
01041
01042
01043
01044
01045
01046
01047
01048
01049
01050 xcb_record_get_context_cookie_t
01051 xcb_record_get_context (xcb_connection_t *c ,
01052 xcb_record_context_t context );
01053
01066
01067
01068
01069
01070
01071
01072
01073
01074
01075
01076 xcb_record_get_context_cookie_t
01077 xcb_record_get_context_unchecked (xcb_connection_t *c ,
01078 xcb_record_context_t context );
01079
01080
01081
01082
01083
01084
01085
01086
01087
01088
01089
01090 int
01091 xcb_record_get_context_intercepted_clients_length (const xcb_record_get_context_reply_t *R );
01092
01093
01094
01095
01096
01097
01098
01099
01100
01101
01102
01103 xcb_record_client_info_iterator_t
01104 xcb_record_get_context_intercepted_clients_iterator (const xcb_record_get_context_reply_t *R );
01105
01121
01122
01123
01124
01125
01126
01127
01128
01129
01130
01131
01132 xcb_record_get_context_reply_t *
01133 xcb_record_get_context_reply (xcb_connection_t *c ,
01134 xcb_record_get_context_cookie_t cookie ,
01135 xcb_generic_error_t **e );
01136
01137 int
01138 xcb_record_enable_context_sizeof (const void *_buffer );
01139
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158
01159 xcb_record_enable_context_cookie_t
01160 xcb_record_enable_context (xcb_connection_t *c ,
01161 xcb_record_context_t context );
01162
01175
01176
01177
01178
01179
01180
01181
01182
01183
01184
01185 xcb_record_enable_context_cookie_t
01186 xcb_record_enable_context_unchecked (xcb_connection_t *c ,
01187 xcb_record_context_t context );
01188
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198
01199 uint8_t *
01200 xcb_record_enable_context_data (const xcb_record_enable_context_reply_t *R );
01201
01202
01203
01204
01205
01206
01207
01208
01209
01210
01211
01212 int
01213 xcb_record_enable_context_data_length (const xcb_record_enable_context_reply_t *R );
01214
01215
01216
01217
01218
01219
01220
01221
01222
01223
01224
01225 xcb_generic_iterator_t
01226 xcb_record_enable_context_data_end (const xcb_record_enable_context_reply_t *R );
01227
01243
01244
01245
01246
01247
01248
01249
01250
01251
01252
01253
01254 xcb_record_enable_context_reply_t *
01255 xcb_record_enable_context_reply (xcb_connection_t *c ,
01256 xcb_record_enable_context_cookie_t cookie ,
01257 xcb_generic_error_t **e );
01258
01271
01272
01273
01274
01275
01276
01277
01278
01279
01280
01281 xcb_void_cookie_t
01282 xcb_record_disable_context_checked (xcb_connection_t *c ,
01283 xcb_record_context_t context );
01284
01294
01295
01296
01297
01298
01299
01300
01301
01302
01303
01304 xcb_void_cookie_t
01305 xcb_record_disable_context (xcb_connection_t *c ,
01306 xcb_record_context_t context );
01307
01320
01321
01322
01323
01324
01325
01326
01327
01328
01329
01330 xcb_void_cookie_t
01331 xcb_record_free_context_checked (xcb_connection_t *c ,
01332 xcb_record_context_t context );
01333
01343
01344
01345
01346
01347
01348
01349
01350
01351
01352
01353 xcb_void_cookie_t
01354 xcb_record_free_context (xcb_connection_t *c ,
01355 xcb_record_context_t context );
01356
01357
01358 #ifdef __cplusplus
01359 }
01360 #endif
01361
01362 #endif
01363