diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2010-04-21 21:02:48 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2010-04-21 21:02:48 +0000 |
commit | 62c96c6cf46d83ac9608e1a0be3f32b0cba89466 (patch) | |
tree | d162276d562904bedc32f77df93cced1f52a47e3 | |
parent | 3a6c3f70ccba017c1fb037d499db12391127122d (diff) |
Clean up the awful _EVENT_* poo in the libevent headers, and don't
install event-config.h.
Pointed out by deraadt.
-rw-r--r-- | lib/libevent/Makefile | 5 | ||||
-rw-r--r-- | lib/libevent/event-config.h | 269 | ||||
-rw-r--r-- | lib/libevent/event.c | 4 | ||||
-rw-r--r-- | lib/libevent/event.h | 38 | ||||
-rw-r--r-- | lib/libevent/evutil.c | 10 | ||||
-rw-r--r-- | lib/libevent/evutil.h | 114 | ||||
-rw-r--r-- | lib/libevent/select.c | 4 |
7 files changed, 23 insertions, 421 deletions
diff --git a/lib/libevent/Makefile b/lib/libevent/Makefile index c3de4ef7aac..e9c0241b029 100644 --- a/lib/libevent/Makefile +++ b/lib/libevent/Makefile @@ -1,10 +1,10 @@ -# $OpenBSD: Makefile,v 1.29 2010/04/21 20:02:40 nicm Exp $ +# $OpenBSD: Makefile,v 1.30 2010/04/21 21:02:46 nicm Exp $ LIB= event WANTLINT= SRCS= buffer.c evbuffer.c event.c event_tagging.c evutil.c kqueue.c \ log.c poll.c select.c signal.c -HDRS= event.h event-config.h evutil.h +HDRS= event.h evutil.h MAN= event.3 MLINKS= event.3 bufferevent_base_set.3 \ event.3 bufferevent_disable.3 \ @@ -66,6 +66,7 @@ CFLAGS+= -I${.CURDIR} -DNDEBUG \ -DHAVE_GETEGID \ -DHAVE_GETEUID \ -DHAVE_GETNAMEINFO \ + -DHAVE_GETTIMEOFDAY \ -DHAVE_INTTYPES_H \ -DHAVE_ISSETUGID \ -DHAVE_POLL \ diff --git a/lib/libevent/event-config.h b/lib/libevent/event-config.h deleted file mode 100644 index 9fee7ce9a17..00000000000 --- a/lib/libevent/event-config.h +++ /dev/null @@ -1,269 +0,0 @@ -/* $OpenBSD: event-config.h,v 1.1 2010/04/21 20:02:40 nicm Exp $ */ - -#ifndef _EVENT_CONFIG_H_ -#define _EVENT_CONFIG_H_ - -/* Define if clock_gettime is available in libc */ -#define _EVENT_DNS_USE_CPU_CLOCK_FOR_ID 1 - -/* Define is no secure id variant is available */ -/* #undef _EVENT_DNS_USE_GETTIMEOFDAY_FOR_ID */ - -/* Define to 1 if you have the `clock_gettime' function. */ -#define _EVENT_HAVE_CLOCK_GETTIME 1 - -/* Define if /dev/poll is available */ -/* #undef _EVENT_HAVE_DEVPOLL */ - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#define _EVENT_HAVE_DLFCN_H 1 - -/* Define if your system supports the epoll system calls */ -/* #undef _EVENT_HAVE_EPOLL */ - -/* Define to 1 if you have the `epoll_ctl' function. */ -/* #undef _EVENT_HAVE_EPOLL_CTL */ - -/* Define if your system supports event ports */ -/* #undef _EVENT_HAVE_EVENT_PORTS */ - -/* Define to 1 if you have the `fcntl' function. */ -#define _EVENT_HAVE_FCNTL 1 - -/* Define to 1 if you have the <fcntl.h> header file. */ -#define _EVENT_HAVE_FCNTL_H 1 - -/* Define to 1 if the system has the type `fd_mask'. */ -#define _EVENT_HAVE_FD_MASK 1 - -/* Define to 1 if you have the `getaddrinfo' function. */ -#define _EVENT_HAVE_GETADDRINFO 1 - -/* Define to 1 if you have the `getegid' function. */ -#define _EVENT_HAVE_GETEGID 1 - -/* Define to 1 if you have the `geteuid' function. */ -#define _EVENT_HAVE_GETEUID 1 - -/* Define to 1 if you have the `getnameinfo' function. */ -#define _EVENT_HAVE_GETNAMEINFO 1 - -/* Define to 1 if you have the `gettimeofday' function. */ -#define _EVENT_HAVE_GETTIMEOFDAY 1 - -/* Define to 1 if you have the `inet_ntop' function. */ -#define _EVENT_HAVE_INET_NTOP 1 - -/* Define to 1 if you have the <inttypes.h> header file. */ -#define _EVENT_HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the `issetugid' function. */ -#define _EVENT_HAVE_ISSETUGID 1 - -/* Define to 1 if you have the `kqueue' function. */ -#define _EVENT_HAVE_KQUEUE 1 - -/* Define to 1 if you have the `nsl' library (-lnsl). */ -/* #undef _EVENT_HAVE_LIBNSL */ - -/* Define to 1 if you have the `resolv' library (-lresolv). */ -/* #undef _EVENT_HAVE_LIBRESOLV */ - -/* Define to 1 if you have the `rt' library (-lrt). */ -/* #undef _EVENT_HAVE_LIBRT */ - -/* Define to 1 if you have the `socket' library (-lsocket). */ -/* #undef _EVENT_HAVE_LIBSOCKET */ - -/* Define to 1 if you have the <memory.h> header file. */ -#define _EVENT_HAVE_MEMORY_H 1 - -/* Define to 1 if you have the <netinet/in6.h> header file. */ -/* #undef _EVENT_HAVE_NETINET_IN6_H */ - -/* Define to 1 if you have the `poll' function. */ -#define _EVENT_HAVE_POLL 1 - -/* Define to 1 if you have the <poll.h> header file. */ -#define _EVENT_HAVE_POLL_H 1 - -/* Define to 1 if you have the `port_create' function. */ -/* #undef _EVENT_HAVE_PORT_CREATE */ - -/* Define to 1 if you have the <port.h> header file. */ -/* #undef _EVENT_HAVE_PORT_H */ - -/* Define to 1 if you have the `select' function. */ -#define _EVENT_HAVE_SELECT 1 - -/* Define if F_SETFD is defined in <fcntl.h> */ -#define _EVENT_HAVE_SETFD 1 - -/* Define to 1 if you have the `sigaction' function. */ -#define _EVENT_HAVE_SIGACTION 1 - -/* Define to 1 if you have the `signal' function. */ -#define _EVENT_HAVE_SIGNAL 1 - -/* Define to 1 if you have the <signal.h> header file. */ -#define _EVENT_HAVE_SIGNAL_H 1 - -/* Define to 1 if you have the <stdarg.h> header file. */ -#define _EVENT_HAVE_STDARG_H 1 - -/* Define to 1 if you have the <stdint.h> header file. */ -#define _EVENT_HAVE_STDINT_H 1 - -/* Define to 1 if you have the <stdlib.h> header file. */ -#define _EVENT_HAVE_STDLIB_H 1 - -/* Define to 1 if you have the <strings.h> header file. */ -#define _EVENT_HAVE_STRINGS_H 1 - -/* Define to 1 if you have the <string.h> header file. */ -#define _EVENT_HAVE_STRING_H 1 - -/* Define to 1 if you have the `strlcpy' function. */ -#define _EVENT_HAVE_STRLCPY 1 - -/* Define to 1 if you have the `strsep' function. */ -#define _EVENT_HAVE_STRSEP 1 - -/* Define to 1 if you have the `strtok_r' function. */ -#define _EVENT_HAVE_STRTOK_R 1 - -/* Define to 1 if you have the `strtoll' function. */ -#define _EVENT_HAVE_STRTOLL 1 - -/* Define to 1 if the system has the type `struct in6_addr'. */ -#define _EVENT_HAVE_STRUCT_IN6_ADDR 1 - -/* Define to 1 if you have the <sys/devpoll.h> header file. */ -/* #undef _EVENT_HAVE_SYS_DEVPOLL_H */ - -/* Define to 1 if you have the <sys/epoll.h> header file. */ -/* #undef _EVENT_HAVE_SYS_EPOLL_H */ - -/* Define to 1 if you have the <sys/event.h> header file. */ -#define _EVENT_HAVE_SYS_EVENT_H 1 - -/* Define to 1 if you have the <sys/ioctl.h> header file. */ -#define _EVENT_HAVE_SYS_IOCTL_H 1 - -/* Define to 1 if you have the <sys/param.h> header file. */ -#define _EVENT_HAVE_SYS_PARAM_H 1 - -/* Define to 1 if you have the <sys/queue.h> header file. */ -#define _EVENT_HAVE_SYS_QUEUE_H 1 - -/* Define to 1 if you have the <sys/select.h> header file. */ -#define _EVENT_HAVE_SYS_SELECT_H 1 - -/* Define to 1 if you have the <sys/socket.h> header file. */ -#define _EVENT_HAVE_SYS_SOCKET_H 1 - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#define _EVENT_HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the <sys/time.h> header file. */ -#define _EVENT_HAVE_SYS_TIME_H 1 - -/* Define to 1 if you have the <sys/types.h> header file. */ -#define _EVENT_HAVE_SYS_TYPES_H 1 - -/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */ -#define _EVENT_HAVE_TAILQFOREACH 1 - -/* Define if timeradd is defined in <sys/time.h> */ -#define _EVENT_HAVE_TIMERADD 1 - -/* Define if timerclear is defined in <sys/time.h> */ -#define _EVENT_HAVE_TIMERCLEAR 1 - -/* Define if timercmp is defined in <sys/time.h> */ -#define _EVENT_HAVE_TIMERCMP 1 - -/* Define if timerisset is defined in <sys/time.h> */ -#define _EVENT_HAVE_TIMERISSET 1 - -/* Define to 1 if the system has the type `uint16_t'. */ -#define _EVENT_HAVE_UINT16_T 1 - -/* Define to 1 if the system has the type `uint32_t'. */ -#define _EVENT_HAVE_UINT32_T 1 - -/* Define to 1 if the system has the type `uint64_t'. */ -#define _EVENT_HAVE_UINT64_T 1 - -/* Define to 1 if the system has the type `uint8_t'. */ -#define _EVENT_HAVE_UINT8_T 1 - -/* Define to 1 if you have the <unistd.h> header file. */ -#define _EVENT_HAVE_UNISTD_H 1 - -/* Define to 1 if you have the `vasprintf' function. */ -#define _EVENT_HAVE_VASPRINTF 1 - -/* Define if kqueue works correctly with pipes */ -#define _EVENT_HAVE_WORKING_KQUEUE 1 - -/* Name of package */ -#define _EVENT_PACKAGE "libevent" - -/* Define to the address where bug reports for this package should be sent. */ -#define _EVENT_PACKAGE_BUGREPORT "" - -/* Define to the full name of this package. */ -#define _EVENT_PACKAGE_NAME "" - -/* Define to the full name and version of this package. */ -#define _EVENT_PACKAGE_STRING "" - -/* Define to the one symbol short name of this package. */ -#define _EVENT_PACKAGE_TARNAME "" - -/* Define to the version of this package. */ -#define _EVENT_PACKAGE_VERSION "" - -/* The size of `int', as computed by sizeof. */ -#define _EVENT_SIZEOF_INT 4 - -/* The size of `long', as computed by sizeof. */ -#define _EVENT_SIZEOF_LONG 8 - -/* The size of `long long', as computed by sizeof. */ -#define _EVENT_SIZEOF_LONG_LONG 8 - -/* The size of `short', as computed by sizeof. */ -#define _EVENT_SIZEOF_SHORT 2 - -/* Define to 1 if you have the ANSI C header files. */ -#define _EVENT_STDC_HEADERS 1 - -/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ -#define _EVENT_TIME_WITH_SYS_TIME 1 - -/* Version number of package */ -#define _EVENT_VERSION "1.4.13-stable" - -/* Define to appropriate substitue if compiler doesnt have __func__ */ -/* #undef _EVENT___func__ */ - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef _EVENT_const */ - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef _EVENT___cplusplus -/* #undef _EVENT_inline */ -#endif - -/* Define to `int' if <sys/types.h> does not define. */ -/* #undef _EVENT_pid_t */ - -/* Define to `unsigned int' if <sys/types.h> does not define. */ -/* #undef _EVENT_size_t */ - -/* Define to unsigned int if you dont have it */ -/* #undef _EVENT_socklen_t */ -#endif diff --git a/lib/libevent/event.c b/lib/libevent/event.c index 133ffb5f7e7..c02da41af94 100644 --- a/lib/libevent/event.c +++ b/lib/libevent/event.c @@ -1,4 +1,4 @@ -/* $OpenBSD: event.c,v 1.22 2010/04/21 20:02:40 nicm Exp $ */ +/* $OpenBSD: event.c,v 1.23 2010/04/21 21:02:46 nicm Exp $ */ /* * Copyright (c) 2000-2004 Niels Provos <provos@citi.umich.edu> @@ -993,7 +993,7 @@ event_queue_insert(struct event_base *base, struct event *ev, int queue) const char * event_get_version(void) { - return (_EVENT_VERSION); + return ("1.4.13-stable"); } /* diff --git a/lib/libevent/event.h b/lib/libevent/event.h index 9e1e233fecd..54bdc1a008c 100644 --- a/lib/libevent/event.h +++ b/lib/libevent/event.h @@ -1,4 +1,4 @@ -/* $OpenBSD: event.h,v 1.21 2010/04/21 20:02:40 nicm Exp $ */ +/* $OpenBSD: event.h,v 1.22 2010/04/21 21:02:47 nicm Exp $ */ /* * Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu> @@ -161,29 +161,16 @@ extern "C" { #endif -#include <event-config.h> -#ifdef _EVENT_HAVE_SYS_TYPES_H #include <sys/types.h> -#endif -#ifdef _EVENT_HAVE_SYS_TIME_H #include <sys/time.h> -#endif -#ifdef _EVENT_HAVE_STDINT_H -#include <stdint.h> -#endif +#include <sys/queue.h> + #include <stdarg.h> +#include <stdint.h> /* For int types. */ #include <evutil.h> -#ifdef WIN32 -#define WIN32_LEAN_AND_MEAN -#include <windows.h> -#undef WIN32_LEAN_AND_MEAN -typedef unsigned char u_char; -typedef unsigned short u_short; -#endif - #define EVLIST_TIMEOUT 0x01 #define EVLIST_INSERTED 0x02 #define EVLIST_SIGNAL 0x04 @@ -200,16 +187,6 @@ typedef unsigned short u_short; #define EV_SIGNAL 0x08 #define EV_PERSIST 0x10 /* Persistant event */ -/* Fix so that ppl dont have to run with <sys/queue.h> */ -#ifndef TAILQ_ENTRY -#define _EVENT_DEFINED_TQENTRY -#define TAILQ_ENTRY(type) \ -struct { \ - struct type *tqe_next; /* next element */ \ - struct type **tqe_prev; /* address of previous next element */ \ -} -#endif /* !TAILQ_ENTRY */ - struct event_base; #ifndef EVENT_NO_STRUCT struct event { @@ -253,15 +230,8 @@ struct evkeyval { char *value; }; -#ifdef _EVENT_DEFINED_TQENTRY -#undef TAILQ_ENTRY -struct event_list; -struct evkeyvalq; -#undef _EVENT_DEFINED_TQENTRY -#else TAILQ_HEAD (event_list, event); TAILQ_HEAD (evkeyvalq, evkeyval); -#endif /* _EVENT_DEFINED_TQENTRY */ /** Initialize the event API. diff --git a/lib/libevent/evutil.c b/lib/libevent/evutil.c index 62286bb812e..940467ab8e4 100644 --- a/lib/libevent/evutil.c +++ b/lib/libevent/evutil.c @@ -1,4 +1,4 @@ -/* $OpenBSD: evutil.c,v 1.1 2010/04/21 20:02:40 nicm Exp $ */ +/* $OpenBSD: evutil.c,v 1.2 2010/04/21 21:02:47 nicm Exp $ */ /* * Copyright (c) 2007 Niels Provos <provos@citi.umich.edu> @@ -206,7 +206,7 @@ evutil_strtoll(const char *s, char **endptr, int base) #endif } -#ifndef _EVENT_HAVE_GETTIMEOFDAY +#ifndef HAVE_GETTIMEOFDAY int evutil_gettimeofday(struct timeval *tv, struct timezone *tz) { @@ -253,15 +253,15 @@ evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap) static int evutil_issetugid(void) { -#ifdef _EVENT_HAVE_ISSETUGID +#ifdef HAVE_ISSETUGID return issetugid(); #else -#ifdef _EVENT_HAVE_GETEUID +#ifdef HAVE_GETEUID if (getuid() != geteuid()) return 1; #endif -#ifdef _EVENT_HAVE_GETEGID +#ifdef HAVE_GETEGID if (getgid() != getegid()) return 1; #endif diff --git a/lib/libevent/evutil.h b/lib/libevent/evutil.h index c0e1a5d292d..1a7b6864d04 100644 --- a/lib/libevent/evutil.h +++ b/lib/libevent/evutil.h @@ -1,4 +1,4 @@ -/* $OpenBSD: evutil.h,v 1.1 2010/04/21 20:02:40 nicm Exp $ */ +/* $OpenBSD: evutil.h,v 1.2 2010/04/21 21:02:47 nicm Exp $ */ /* * Copyright (c) 2007 Niels Provos <provos@citi.umich.edu> @@ -26,6 +26,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + #ifndef _EVUTIL_H_ #define _EVUTIL_H_ @@ -40,139 +41,38 @@ extern "C" { #endif -#include <event-config.h> -#ifdef _EVENT_HAVE_SYS_TIME_H +#include <sys/types.h> #include <sys/time.h> -#endif -#ifdef _EVENT_HAVE_STDINT_H -#include <stdint.h> -#elif defined(_EVENT_HAVE_INTTYPES_H) + #include <inttypes.h> -#endif -#ifdef _EVENT_HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif #include <stdarg.h> +#include <stdint.h> -#ifdef _EVENT_HAVE_UINT64_T #define ev_uint64_t uint64_t #define ev_int64_t int64_t -#elif defined(WIN32) -#define ev_uint64_t unsigned __int64 -#define ev_int64_t signed __int64 -#elif _EVENT_SIZEOF_LONG_LONG == 8 -#define ev_uint64_t unsigned long long -#define ev_int64_t long long -#elif _EVENT_SIZEOF_LONG == 8 -#define ev_uint64_t unsigned long -#define ev_int64_t long -#else -#error "No way to define ev_uint64_t" -#endif - -#ifdef _EVENT_HAVE_UINT32_T #define ev_uint32_t uint32_t -#elif defined(WIN32) -#define ev_uint32_t unsigned int -#elif _EVENT_SIZEOF_LONG == 4 -#define ev_uint32_t unsigned long -#elif _EVENT_SIZEOF_INT == 4 -#define ev_uint32_t unsigned int -#else -#error "No way to define ev_uint32_t" -#endif - -#ifdef _EVENT_HAVE_UINT16_T #define ev_uint16_t uint16_t -#elif defined(WIN32) -#define ev_uint16_t unsigned short -#elif _EVENT_SIZEOF_INT == 2 -#define ev_uint16_t unsigned int -#elif _EVENT_SIZEOF_SHORT == 2 -#define ev_uint16_t unsigned short -#else -#error "No way to define ev_uint16_t" -#endif - -#ifdef _EVENT_HAVE_UINT8_T #define ev_uint8_t uint8_t -#else -#define ev_uint8_t unsigned char -#endif int evutil_socketpair(int d, int type, int protocol, int sv[2]); int evutil_make_socket_nonblocking(int sock); -#ifdef WIN32 -#define EVUTIL_CLOSESOCKET(s) closesocket(s) -#else -#define EVUTIL_CLOSESOCKET(s) close(s) -#endif -#ifdef WIN32 -#define EVUTIL_SOCKET_ERROR() WSAGetLastError() -#define EVUTIL_SET_SOCKET_ERROR(errcode) \ - do { WSASetLastError(errcode); } while (0) -#else +#define EVUTIL_CLOSESOCKET(s) close(s) #define EVUTIL_SOCKET_ERROR() (errno) -#define EVUTIL_SET_SOCKET_ERROR(errcode) \ - do { errno = (errcode); } while (0) -#endif /* * Manipulation functions for struct timeval */ -#ifdef _EVENT_HAVE_TIMERADD #define evutil_timeradd(tvp, uvp, vvp) timeradd((tvp), (uvp), (vvp)) #define evutil_timersub(tvp, uvp, vvp) timersub((tvp), (uvp), (vvp)) -#else -#define evutil_timeradd(tvp, uvp, vvp) \ - do { \ - (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ - (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ - if ((vvp)->tv_usec >= 1000000) { \ - (vvp)->tv_sec++; \ - (vvp)->tv_usec -= 1000000; \ - } \ - } while (0) -#define evutil_timersub(tvp, uvp, vvp) \ - do { \ - (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ - (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ - if ((vvp)->tv_usec < 0) { \ - (vvp)->tv_sec--; \ - (vvp)->tv_usec += 1000000; \ - } \ - } while (0) -#endif /* !_EVENT_HAVE_HAVE_TIMERADD */ - -#ifdef _EVENT_HAVE_TIMERCLEAR #define evutil_timerclear(tvp) timerclear(tvp) -#else -#define evutil_timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 -#endif - -#define evutil_timercmp(tvp, uvp, cmp) \ - (((tvp)->tv_sec == (uvp)->tv_sec) ? \ - ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ - ((tvp)->tv_sec cmp (uvp)->tv_sec)) - -#ifdef _EVENT_HAVE_TIMERISSET +#define evutil_timercmp(tvp, uvp, cmp) timercmp((tvp), (uvp), cmp) #define evutil_timerisset(tvp) timerisset(tvp) -#else -#define evutil_timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) -#endif - /* big-int related functions */ ev_int64_t evutil_strtoll(const char *s, char **endptr, int base); - -#ifdef _EVENT_HAVE_GETTIMEOFDAY #define evutil_gettimeofday(tv, tz) gettimeofday((tv), (tz)) -#else -struct timezone; -int evutil_gettimeofday(struct timeval *tv, struct timezone *tz); -#endif int evutil_snprintf(char *buf, size_t buflen, const char *format, ...) #ifdef __GNUC__ diff --git a/lib/libevent/select.c b/lib/libevent/select.c index 709c794387f..4e0c2b2a2b2 100644 --- a/lib/libevent/select.c +++ b/lib/libevent/select.c @@ -1,4 +1,4 @@ -/* $OpenBSD: select.c,v 1.15 2010/04/21 20:02:40 nicm Exp $ */ +/* $OpenBSD: select.c,v 1.16 2010/04/21 21:02:47 nicm Exp $ */ /* * Copyright 2000-2002 Niels Provos <provos@citi.umich.edu> @@ -60,7 +60,7 @@ #define howmany(x, y) (((x)+((y)-1))/(y)) #endif -#ifndef _EVENT_HAVE_FD_MASK +#ifndef HAVE_FD_MASK /* This type is mandatory, but Android doesn't define it. */ #undef NFDBITS #define NFDBITS (sizeof(long)*8) |