X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fcompat%2Fpoll.h;h=fde54ddb91331c46a28ce75c590b060d338ef845;hp=699901848dc14bc52abd22d778b2f55cb189ee57;hb=2a85be8e0e679da996b48252b1d9aebb9bb29126;hpb=dbe23f452a025e8f42bdbb41e30a4a6257aa821c diff --git a/src/common/compat/poll.h b/src/common/compat/poll.h index 699901848..fde54ddb9 100644 --- a/src/common/compat/poll.h +++ b/src/common/compat/poll.h @@ -73,7 +73,7 @@ enum { 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 /* @@ -127,7 +127,7 @@ extern int compat_epoll_create(struct lttng_poll_event *events, #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) { @@ -171,6 +171,14 @@ extern int compat_epoll_del(struct lttng_poll_event *events, int fd); #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_mod(events, fd, req_events) + /* * Set up the poll set limits variable poll_max_size */ @@ -254,7 +262,7 @@ enum { #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 @@ -347,6 +355,14 @@ extern int compat_poll_del(struct lttng_poll_event *events, int fd); #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_mod(events, fd, req_events) + /* * Set up the poll set limits variable poll_max_size */