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 #include <sys/uio.h>
00039 #include <pthread.h>
00040
00041
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045
00057
00058
00060 #define X_PROTOCOL 11
00061
00063 #define X_PROTOCOL_REVISION 0
00064
00066 #define X_TCP_PORT 6000
00067
00068 #define XCB_TYPE_PAD(T,I) (-(I) & (sizeof(T) > 4 ? 3 : sizeof(T) - 1))
00069
00070
00071
00077 typedef struct xcb_connection_t xcb_connection_t;
00080
00081
00087 typedef struct {
00088 void *data;
00089 int rem;
00090 int index;
00091 } xcb_generic_iterator_t;
00092
00098 typedef struct {
00099 uint8_t response_type;
00100 uint8_t pad0;
00101 uint16_t sequence;
00102 uint32_t length;
00103 } xcb_generic_reply_t;
00104
00110 typedef struct {
00111 uint8_t response_type;
00112 uint8_t pad0;
00113 uint16_t sequence;
00114 uint32_t pad[7];
00115 uint32_t full_sequence;
00116 } xcb_generic_event_t;
00117
00123 typedef struct {
00124 uint8_t response_type;
00125 uint8_t error_code;
00126 uint16_t sequence;
00127 uint32_t pad[7];
00128 uint32_t full_sequence;
00129 } xcb_generic_error_t;
00130
00136 typedef struct {
00137 unsigned int sequence;
00138 } xcb_void_cookie_t;
00139
00140
00141
00142 #include "xproto.h"
00143
00144
00146 #define XCB_NONE 0L
00147
00149 #define XCB_COPY_FROM_PARENT 0L
00150
00152 #define XCB_CURRENT_TIME 0L
00153
00155 #define XCB_NO_SYMBOL 0L
00156
00157
00158
00159
00165 typedef struct xcb_auth_info_t {
00166 int namelen;
00167 char *name;
00168 int datalen;
00169 char *data;
00170 } xcb_auth_info_t;
00171
00172
00173
00174
00183 int xcb_flush(xcb_connection_t *c);
00184
00200 uint32_t xcb_get_maximum_request_length(xcb_connection_t *c);
00201
00219 void xcb_prefetch_maximum_request_length(xcb_connection_t *c);
00220
00221
00222
00223
00233 xcb_generic_event_t *xcb_wait_for_event(xcb_connection_t *c);
00234
00247 xcb_generic_event_t *xcb_poll_for_event(xcb_connection_t *c);
00248
00265 xcb_generic_error_t *xcb_request_check(xcb_connection_t *c, xcb_void_cookie_t cookie);
00266
00267
00268
00269
00273 typedef struct xcb_extension_t xcb_extension_t;
00291 const xcb_query_extension_reply_t *xcb_get_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
00292
00304 void xcb_prefetch_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
00305
00306
00307
00308
00327 const xcb_setup_t *xcb_get_setup(xcb_connection_t *c);
00328
00337 int xcb_get_file_descriptor(xcb_connection_t *c);
00338
00352 int xcb_connection_has_error(xcb_connection_t *c);
00353
00366 xcb_connection_t *xcb_connect_to_fd(int fd, xcb_auth_info_t *auth_info);
00367
00375 void xcb_disconnect(xcb_connection_t *c);
00376
00377
00378
00379
00397 int xcb_parse_display(const char *name, char **host, int *display, int *screen);
00398
00411 xcb_connection_t *xcb_connect(const char *displayname, int *screenp);
00412
00425 xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *display, xcb_auth_info_t *auth, int *screen);
00426
00427
00428
00429
00438 uint32_t xcb_generate_id(xcb_connection_t *c);
00439
00440
00445 #ifdef __cplusplus
00446 }
00447 #endif
00448
00449
00450 #endif