aboutsummaryrefslogtreecommitdiff
path: root/include/xcb/xcbext.h
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-07-25 12:32:25 +0000
committermarha <marha@users.sourceforge.net>2009-07-25 12:32:25 +0000
commit213d71f78d6f9e35b23c00e35f9919efc9670b1e (patch)
tree0fcbee658860a7c57a6432ba54143bc3bc59d4b1 /include/xcb/xcbext.h
parent307fb760da68b26eb694895df5b7081dffe80b3c (diff)
downloadvcxsrv-213d71f78d6f9e35b23c00e35f9919efc9670b1e.tar.gz
vcxsrv-213d71f78d6f9e35b23c00e35f9919efc9670b1e.tar.bz2
vcxsrv-213d71f78d6f9e35b23c00e35f9919efc9670b1e.zip
Resynced include/xcb zith libxcb/src
Diffstat (limited to 'include/xcb/xcbext.h')
-rw-r--r--include/xcb/xcbext.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/xcb/xcbext.h b/include/xcb/xcbext.h
index 01dd59015..ea5a2d355 100644
--- a/include/xcb/xcbext.h
+++ b/include/xcb/xcbext.h
@@ -28,6 +28,8 @@
#ifndef __XCBEXT_H
#define __XCBEXT_H
+#include <unistd.h>
+
#include "xcb.h"
#ifdef __cplusplus
@@ -59,6 +61,23 @@ enum xcb_send_request_flags_t {
unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
+/* 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
+ * request XCB sent. The caller of xcb_take_socket must supply a
+ * callback which XCB can call when it wants the write side of the
+ * socket back to make a request. This callback synchronizes with the
+ * external socket owner, flushes any output queues if appropriate, and
+ * then returns the sequence number of the last request sent over the
+ * socket. */
+int xcb_take_socket(xcb_connection_t *c, void (*return_socket)(void *closure), void *closure, int flags, uint64_t *sent);
+
+/* You must own the write-side of the socket (you've called
+ * xcb_take_socket, and haven't returned from return_socket yet) to call
+ * xcb_writev. Also, the iovec must have at least 1 byte of data in it.
+ * */
+int xcb_writev(xcb_connection_t *c, struct iovec *vector, int count, uint64_t requests);
+
/* xcb_in.c */