diff options
author | Keith Packard <keithp@keithp.com> | 2013-01-14 11:23:00 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2013-11-07 13:32:20 -0800 |
commit | aa6ac19ff407834f0a57fca501602273ced2f714 (patch) | |
tree | 627e8a0c5d6ceffb05d1400e3d194044e5257790 /src/xcbint.h | |
parent | 9aa5b192ba7d4544c9dcf6d7687aa4730b7b9c2e (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 | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/xcbint.h b/src/xcbint.h index f9e5a52..aaf6685 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 @@ -79,6 +83,18 @@ void *_xcb_map_remove(_xcb_map *q, unsigned int key); /* xcb_out.c */ +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; @@ -100,6 +116,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); |