00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __XCB_H__
00029 #define __XCB_H__
00030 #include <sys/types.h>
00031
00032 #if defined(__solaris__)
00033 #include <inttypes.h>
00034 #else
00035 #include <stdint.h>
00036 #endif
00037
00038 #ifndef _WIN32
00039 #include <sys/uio.h>
00040 #else
00041 #include "xcb_windefs.h"
00042 #endif
00043 #include <pthread.h>
00044
00045
00046 #ifdef __cplusplus
00047 extern "C" {
00048 #endif
00049
00061
00062
00064 #define X_PROTOCOL 11
00065
00067 #define X_PROTOCOL_REVISION 0
00068
00070 #define X_TCP_PORT 6000
00071
00073 #define XCB_CONN_ERROR 1
00074
00076 #define XCB_CONN_CLOSED_EXT_NOTSUPPORTED 2
00077
00079 #define XCB_CONN_CLOSED_MEM_INSUFFICIENT 3
00080
00082 #define XCB_CONN_CLOSED_REQ_LEN_EXCEED 4
00083
00085 #define XCB_CONN_CLOSED_PARSE_ERR 5
00086
00087 #define XCB_TYPE_PAD(T,I) (-(I) & (sizeof(T) > 4 ? 3 : sizeof(T) - 1))
00088
00089
00090
00096 typedef struct xcb_connection_t xcb_connection_t;
00099
00100
00106 typedef struct {
00107 void *data;
00108 int rem;
00109 int index;
00110 } xcb_generic_iterator_t;
00111
00117 typedef struct {
00118 uint8_t response_type;
00119 uint8_t pad0;
00120 uint16_t sequence;
00121 uint32_t length;
00122 } xcb_generic_reply_t;
00123
00129 typedef struct {
00130 uint8_t response_type;
00131 uint8_t pad0;
00132 uint16_t sequence;
00133 uint32_t pad[7];
00134 uint32_t full_sequence;
00135 } xcb_generic_event_t;
00136
00143 typedef struct {
00144 uint8_t response_type;
00145 uint8_t pad0;
00146 uint16_t sequence;
00147 uint32_t length;
00148 uint16_t event_type;
00149 uint16_t pad1;
00150 uint32_t pad[5];
00151 uint32_t full_sequence;
00152 } xcb_ge_event_t;
00153
00159 typedef struct {
00160 uint8_t response_type;
00161 uint8_t error_code;
00162 uint16_t sequence;
00163 uint32_t resource_id;
00164 uint16_t minor_code;
00165 uint8_t major_code;
00166 uint8_t pad0;
00167 uint32_t pad[5];
00168 uint32_t full_sequence;
00169 } xcb_generic_error_t;
00170
00176 typedef struct {
00177 unsigned int sequence;
00178 } xcb_void_cookie_t;
00179
00180
00181
00182 #include "xproto.h"
00183
00184
00186 #define XCB_NONE 0L
00187
00189 #define XCB_COPY_FROM_PARENT 0L
00190
00192 #define XCB_CURRENT_TIME 0L
00193
00195 #define XCB_NO_SYMBOL 0L
00196
00197
00198
00199
00205 typedef struct xcb_auth_info_t {
00206 int namelen;
00207 char *name;
00208 int datalen;
00209 char *data;
00210 } xcb_auth_info_t;
00211
00212
00213
00214
00223 int xcb_flush(xcb_connection_t *c);
00224
00240 uint32_t xcb_get_maximum_request_length(xcb_connection_t *c);
00241
00259 void xcb_prefetch_maximum_request_length(xcb_connection_t *c);
00260
00261
00262
00263
00273 xcb_generic_event_t *xcb_wait_for_event(xcb_connection_t *c);
00274
00287 xcb_generic_event_t *xcb_poll_for_event(xcb_connection_t *c);
00288
00303 xcb_generic_event_t *xcb_poll_for_queued_event(xcb_connection_t *c);
00304
00321 xcb_generic_error_t *xcb_request_check(xcb_connection_t *c, xcb_void_cookie_t cookie);
00322
00337 void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence);
00338
00339
00340
00341
00345 typedef struct xcb_extension_t xcb_extension_t;
00363 const xcb_query_extension_reply_t *xcb_get_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
00364
00376 void xcb_prefetch_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
00377
00378
00379
00380
00399 const xcb_setup_t *xcb_get_setup(xcb_connection_t *c);
00400
00409 int xcb_get_file_descriptor(xcb_connection_t *c);
00410
00427 int xcb_connection_has_error(xcb_connection_t *c);
00428
00441 xcb_connection_t *xcb_connect_to_fd(int fd, xcb_auth_info_t *auth_info);
00442
00450 void xcb_disconnect(xcb_connection_t *c);
00451
00452
00453
00454
00472 int xcb_parse_display(const char *name, char **host, int *display, int *screen);
00473
00486 xcb_connection_t *xcb_connect(const char *displayname, int *screenp);
00487
00500 xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *display, xcb_auth_info_t *auth, int *screen);
00501
00502
00503
00504
00513 uint32_t xcb_generate_id(xcb_connection_t *c);
00514
00515
00520 #ifdef __cplusplus
00521 }
00522 #endif
00523
00524
00525 #endif