Xxcbint.h revision d4a3aaf4
1/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett 2 * This file is licensed under the MIT license. See the file COPYING. */ 3 4#ifndef XXCBINT_H 5#define XXCBINT_H 6 7#include <assert.h> 8#include <stdint.h> 9#include <X11/Xlibint.h> 10#ifdef WIN32 11#include <X11/Xwindows.h> 12#endif 13#include <X11/Xlib-xcb.h> 14#include "locking.h" 15 16#define XLIB_SEQUENCE_COMPARE(a,op,b) (((int64_t) (a) - (int64_t) (b)) op 0) 17 18typedef struct PendingRequest PendingRequest; 19struct PendingRequest { 20 PendingRequest *next; 21 uint64_t sequence; 22 unsigned reply_waiter; 23}; 24 25typedef struct _X11XCBPrivate { 26 xcb_connection_t *connection; 27 PendingRequest *pending_requests; 28 PendingRequest *pending_requests_tail; 29 xcb_generic_event_t *next_event; 30 void *next_response; 31 char *real_bufmax; 32 char *reply_data; 33 int reply_length; 34 int reply_consumed; 35 uint64_t last_flushed; 36 enum XEventQueueOwner event_owner; 37 XID next_xid; 38 39 /* handle simultaneous threads waiting for responses */ 40 xcondition_t event_notify; 41 int event_waiter; 42 xcondition_t reply_notify; 43} _X11XCBPrivate; 44 45/* xcb_disp.c */ 46 47int _XConnectXCB(Display *dpy, _Xconst char *display, int *screenp); 48void _XFreeX11XCBStructure(Display *dpy); 49 50_X_HIDDEN 51unsigned long _XNextRequest(Display *dpy); 52 53#endif /* XXCBINT_H */ 54