diff options
author | Keith Packard <keithp@keithp.com> | 2013-01-14 11:23:00 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2013-11-07 14:02:35 -0800 |
commit | 7b53fb0f9bddae77b3ab8823743db57faee4e99b (patch) | |
tree | 48cd3517a30bd2905a3a13aae941831e7b36fb1e /src/xcbint.h | |
parent | 98c227a2222fb5c7ca7e8101b1ed2bc096a33048 (diff) |
Add xcb_send_fd API
This uses sendmsg to transmit file descriptors from the application to
the X server
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-By: Uli Schlachter <psychon@znc.in>
Diffstat (limited to 'src/xcbint.h')
-rw-r--r-- | src/xcbint.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/xcbint.h b/src/xcbint.h index 7f9ab28..391a4e1 100644 --- a/src/xcbint.h +++ b/src/xcbint.h @@ -34,6 +34,10 @@ #include "config.h" #endif +#if HAVE_SENDMSG +#include <sys/socket.h> +#endif + #ifdef GCC_HAS_VISIBILITY #pragma GCC visibility push(hidden) #endif @@ -81,6 +85,16 @@ void *_xcb_map_remove(_xcb_map *q, unsigned int key); typedef void (*xcb_return_socket_func_t)(void *closure); +#if HAVE_SENDMSG +#define XCB_MAX_PASS_FD 16 + +typedef struct _xcb_fd { + struct cmsghdr cmsghdr; + int fd[XCB_MAX_PASS_FD]; + int nfd; +} _xcb_fd; +#endif + typedef struct _xcb_out { pthread_cond_t cond; int writing; @@ -101,6 +115,9 @@ typedef struct _xcb_out { xcb_big_requests_enable_cookie_t cookie; uint32_t value; } maximum_request_length; +#if HAVE_SENDMSG + _xcb_fd out_fd; +#endif } _xcb_out; int _xcb_out_init(_xcb_out *out); |