#ifndef __XCBINT_H
#define __XCBINT_H
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
enum workarounds {
WORKAROUND_NONE,
WORKAROUND_GLX_GET_FB_CONFIGS_BUG
};
+#define XCB_PAD(i) (-(i) & 3)
+
/* xcb_list.c */
typedef struct _xcb_list _xcb_list;
void *_xcb_map_remove(_xcb_map *q, unsigned int key);
-/* xcb_util.c */
-
-/* Index of nearest 4-byte boundary following E. */
-#define XCB_CEIL(E) (((E)+3)&~3)
-
-#define XCB_PAD(i) ((4 - (i & 3)) & 3)
-
-int _xcb_set_fd_flags(const int fd);
-int _xcb_read_block(const int fd, void *buf, const size_t len);
-
-
/* xcb_out.c */
typedef struct _xcb_out {
_xcb_queue *current_reply;
_xcb_map *replies;
- _xcb_queue *events;
+ struct event_list *events;
+ struct event_list **events_tail;
_xcb_list *readers;
- _xcb_queue *pending_replies;
+ struct pending_reply *pending_replies;
+ struct pending_reply **pending_replies_tail;
} _xcb_in;
int _xcb_in_init(_xcb_in *in);
void _xcb_in_destroy(_xcb_in *in);
-int _xcb_in_expect_reply(XCBConnection *c, unsigned int request, enum workarounds workaround);
+int _xcb_in_expect_reply(XCBConnection *c, unsigned int request, enum workarounds workaround, int flags);
int _xcb_in_read(XCBConnection *c);
int _xcb_in_read_block(XCBConnection *c, void *buf, int nread);
typedef struct _xcb_ext {
pthread_mutex_t lock;
- _xcb_map *extensions;
+ struct lazyreply *extensions;
+ int extensions_size;
} _xcb_ext;
int _xcb_ext_init(XCBConnection *c);