|
Packit Service |
dc579d |
/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett
|
|
Packit Service |
dc579d |
* This file is licensed under the MIT license. See the file COPYING. */
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
#ifndef XXCBINT_H
|
|
Packit Service |
dc579d |
#define XXCBINT_H
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
#include <assert.h>
|
|
Packit Service |
dc579d |
#include <stdint.h>
|
|
Packit Service |
dc579d |
#include <X11/Xlibint.h>
|
|
Packit Service |
dc579d |
#ifdef WIN32
|
|
Packit Service |
dc579d |
#include <X11/Xwindows.h>
|
|
Packit Service |
dc579d |
#endif
|
|
Packit Service |
dc579d |
#include <X11/Xlib-xcb.h>
|
|
Packit Service |
dc579d |
#include "locking.h"
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
#define XLIB_SEQUENCE_COMPARE(a,op,b) (((int64_t) (a) - (int64_t) (b)) op 0)
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
typedef struct PendingRequest PendingRequest;
|
|
Packit Service |
dc579d |
struct PendingRequest {
|
|
Packit Service |
dc579d |
PendingRequest *next;
|
|
Packit Service |
dc579d |
uint64_t sequence;
|
|
Packit Service |
dc579d |
unsigned reply_waiter;
|
|
Packit Service |
dc579d |
};
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
typedef struct _X11XCBPrivate {
|
|
Packit Service |
dc579d |
xcb_connection_t *connection;
|
|
Packit Service |
dc579d |
PendingRequest *pending_requests;
|
|
Packit Service |
dc579d |
PendingRequest *pending_requests_tail;
|
|
Packit Service |
dc579d |
xcb_generic_event_t *next_event;
|
|
Packit Service |
dc579d |
char *real_bufmax;
|
|
Packit Service |
dc579d |
char *reply_data;
|
|
Packit Service |
dc579d |
int reply_length;
|
|
Packit Service |
dc579d |
int reply_consumed;
|
|
Packit Service |
dc579d |
uint64_t last_flushed;
|
|
Packit Service |
dc579d |
enum XEventQueueOwner event_owner;
|
|
Packit Service |
dc579d |
XID next_xid;
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
/* handle simultaneous threads waiting for responses */
|
|
Packit Service |
dc579d |
xcondition_t event_notify;
|
|
Packit Service |
dc579d |
int event_waiter;
|
|
Packit Service |
dc579d |
xcondition_t reply_notify;
|
|
Packit Service |
dc579d |
} _X11XCBPrivate;
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
/* xcb_disp.c */
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
int _XConnectXCB(Display *dpy, _Xconst char *display, int *screenp);
|
|
Packit Service |
dc579d |
void _XFreeX11XCBStructure(Display *dpy);
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
_X_HIDDEN
|
|
Packit Service |
dc579d |
unsigned long _XNextRequest(Display *dpy);
|
|
Packit Service |
dc579d |
|
|
Packit Service |
dc579d |
#endif /* XXCBINT_H */
|