LPOLLNVAL = EPOLLHUP,
LPOLLRDHUP = EPOLLRDHUP,
/* Close on exec feature of epoll */
-#if __GLIBC_PREREQ(2, 9)
+#if defined(HAVE_EPOLL_CREATE1) && defined(EPOLL_CLOEXEC)
LTTNG_CLOEXEC = EPOLL_CLOEXEC,
#else
/*
#define lttng_poll_create(events, size, flags) \
compat_epoll_create(events, size, flags)
-#if __GLIBC_PREREQ(2, 9)
+#if defined(HAVE_EPOLL_CREATE1) && defined(EPOLL_CLOEXEC)
static inline int compat_glibc_epoll_create(int size __attribute__((unused)),
int flags)
{
#define lttng_poll_del(events, fd) \
compat_epoll_del(events, fd)
+/*
+ * Modify an fd's events in the epoll set.
+ */
+extern int compat_epoll_mod(struct lttng_poll_event *events,
+ int fd, uint32_t req_events);
+#define lttng_poll_mod(events, fd, req_events) \
+ compat_epoll_add(events, fd, req_events)
+
/*
* Set up the poll set limits variable poll_max_size
*/
#if __linux__
LPOLLMSG = POLLMSG,
LPOLLRDHUP = POLLRDHUP,
-#elif (defined(__FreeBSD__) || defined(__CYGWIN__))
+#elif (defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__sun__) || defined(__APPLE__))
LPOLLMSG = 0,
LPOLLRDHUP = 0,
#else
#define lttng_poll_del(events, fd) \
compat_poll_del(events, fd)
+/*
+ * Modify an fd's events in the epoll set.
+ */
+extern int compat_poll_mod(struct lttng_poll_event *events,
+ int fd, uint32_t req_events);
+#define lttng_poll_mod(events, fd, req_events) \
+ compat_poll_add(events, fd, req_events)
+
/*
* Set up the poll set limits variable poll_max_size
*/