aboutsummaryrefslogtreecommitdiff
path: root/include/xcb
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-11-08 16:53:17 +0100
committermarha <marha@users.sourceforge.net>2013-11-08 16:53:17 +0100
commit3ef320ddf5d23b4e69cc7d44a17f902e245f6426 (patch)
tree93613bf53ec448c47fade975f70c4ec6b0051cb6 /include/xcb
parentf707ea3ce065f0ce40f586c40283fab42059b485 (diff)
downloadvcxsrv-3ef320ddf5d23b4e69cc7d44a17f902e245f6426.tar.gz
vcxsrv-3ef320ddf5d23b4e69cc7d44a17f902e245f6426.tar.bz2
vcxsrv-3ef320ddf5d23b4e69cc7d44a17f902e245f6426.zip
Solved compilation and run-time problems after latest merge
Diffstat (limited to 'include/xcb')
-rw-r--r--include/xcb/xcb.h41
-rw-r--r--include/xcb/xcbext.h6
2 files changed, 41 insertions, 6 deletions
diff --git a/include/xcb/xcb.h b/include/xcb/xcb.h
index f4ba1de13..8cdba0550 100644
--- a/include/xcb/xcb.h
+++ b/include/xcb/xcb.h
@@ -88,6 +88,9 @@ extern "C" {
/** Connection closed because the server does not have a screen matching the display. */
#define XCB_CONN_CLOSED_INVALID_SCREEN 6
+/** Connection closed because some FD passing operation failed */
+#define XCB_CONN_CLOSED_FDPASSING_FAILED 7
+
#define XCB_TYPE_PAD(T,I) (-(I) & (sizeof(T) > 4 ? 3 : sizeof(T) - 1))
/* Opaque structures */
@@ -288,6 +291,39 @@ xcb_generic_event_t *xcb_poll_for_event(xcb_connection_t *c);
*/
xcb_generic_event_t *xcb_poll_for_queued_event(xcb_connection_t *c);
+typedef struct xcb_special_event xcb_special_event_t;
+
+/**
+ * @brief Returns the next event from a special queue
+ */
+xcb_generic_event_t *xcb_poll_for_special_event(xcb_connection_t *c,
+ xcb_special_event_t *se);
+
+/**
+ * @brief Returns the next event from a special queue, blocking until one arrives
+ */
+xcb_generic_event_t *xcb_wait_for_special_event(xcb_connection_t *c,
+ xcb_special_event_t *se);
+/**
+ * @typedef typedef struct xcb_extension_t xcb_extension_t
+ */
+typedef struct xcb_extension_t xcb_extension_t; /**< Opaque structure used as key for xcb_get_extension_data_t. */
+
+
+/**
+ * @brief Listen for a special event
+ */
+xcb_special_event_t *xcb_register_for_special_xge(xcb_connection_t *c,
+ xcb_extension_t *ext,
+ uint32_t eid,
+ uint32_t *stamp);
+
+/**
+ * @brief Stop listening for a special event
+ */
+void xcb_unregister_for_special_event(xcb_connection_t *c,
+ xcb_special_event_t *se);
+
/**
* @brief Return the error for a request, or NULL if none can ever arrive.
* @param c: The connection to the X server.
@@ -326,11 +362,6 @@ void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence);
/* xcb_ext.c */
/**
- * @typedef typedef struct xcb_extension_t xcb_extension_t
- */
-typedef struct xcb_extension_t xcb_extension_t; /**< Opaque structure used as key for xcb_get_extension_data_t. */
-
-/**
* @brief Caches reply information from QueryExtension requests.
* @param c: The connection.
* @param ext: The extension data.
diff --git a/include/xcb/xcbext.h b/include/xcb/xcbext.h
index 4e1f2f73d..1eb1be77f 100644
--- a/include/xcb/xcbext.h
+++ b/include/xcb/xcbext.h
@@ -54,11 +54,14 @@ typedef struct {
enum xcb_send_request_flags_t {
XCB_REQUEST_CHECKED = 1 << 0,
XCB_REQUEST_RAW = 1 << 1,
- XCB_REQUEST_DISCARD_REPLY = 1 << 2
+ XCB_REQUEST_DISCARD_REPLY = 1 << 2,
+ XCB_REQUEST_REPLY_FDS = 1 << 3
};
unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
+void xcb_send_fd(xcb_connection_t *c, int fd);
+
/* xcb_take_socket allows external code to ask XCB for permission to
* take over the write side of the socket and send raw data with
* xcb_writev. xcb_take_socket provides the sequence number of the last
@@ -89,6 +92,7 @@ int xcb_writev(xcb_connection_t *c, struct iovec *vector, int count, uint64_t re
void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_error_t **e);
int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply, xcb_generic_error_t **error);
+int *xcb_get_reply_fds(xcb_connection_t *c, void *reply, size_t replylen);
/* xcb_util.c */