| /* |
| * Copyright © 2012 Collabora, Ltd. |
| * |
| * Permission to use, copy, modify, distribute, and sell this software and its |
| * documentation for any purpose is hereby granted without fee, provided that |
| * the above copyright notice appear in all copies and that both that copyright |
| * notice and this permission notice appear in supporting documentation, and |
| * that the name of the copyright holders not be used in advertising or |
| * publicity pertaining to distribution of the software without specific, |
| * written prior permission. The copyright holders make no representations |
| * about the suitability of this software for any purpose. It is provided "as |
| * is" without express or implied warranty. |
| * |
| * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, |
| * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO |
| * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR |
| * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, |
| * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE |
| * OF THIS SOFTWARE. |
| */ |
| |
| #ifndef WAYLAND_OS_H |
| #define WAYLAND_OS_H |
| |
| int |
| wl_os_socket_cloexec(int domain, int type, int protocol); |
| |
| int |
| wl_os_dupfd_cloexec(int fd, long minfd); |
| |
| ssize_t |
| wl_os_recvmsg_cloexec(int sockfd, struct msghdr *msg, int flags); |
| |
| int |
| wl_os_epoll_create_cloexec(void); |
| |
| int |
| wl_os_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen); |
| |
| |
| /* |
| * The following are for wayland-os.c and the unit tests. |
| * Do not use them elsewhere. |
| */ |
| |
| #ifdef __linux__ |
| |
| #ifndef SOCK_CLOEXEC |
| #define SOCK_CLOEXEC 02000000 |
| #endif |
| |
| #ifndef F_DUPFD_CLOEXEC |
| #define F_DUPFD_CLOEXEC 1030 |
| #endif |
| |
| #ifndef MSG_CMSG_CLOEXEC |
| #define MSG_CMSG_CLOEXEC 0x40000000 |
| #endif |
| |
| #endif /* __linux__ */ |
| |
| #endif |