X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fcompat%2Fpoll.h;h=4b2fc5036843c5863047125a8c1d79085405b34f;hb=5a12931eca4ae292cc659222d5da12b9b7480808;hp=77c46a1d08d60ac8bca806628f368fc46fc915c2;hpb=a97dd6ce0d6f658c50b7cca73724fd8e1d5a36a1;p=lttng-tools.git diff --git a/src/common/compat/poll.h b/src/common/compat/poll.h index 77c46a1d0..4b2fc5036 100644 --- a/src/common/compat/poll.h +++ b/src/common/compat/poll.h @@ -119,9 +119,7 @@ static inline int __lttng_epoll_get_prev_fd(struct lttng_poll_event *events, #define LTTNG_POLL_GET_PREV_FD(e, i, nb_fd) \ __lttng_epoll_get_prev_fd(LTTNG_REF(e), i, nb_fd) -/* - * Create the epoll set. No memory allocation is done here. - */ +/* Create the epoll set. */ extern int compat_epoll_create(struct lttng_poll_event *events, int size, int flags); #define lttng_poll_create(events, size, flags) \ @@ -171,6 +169,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 */ @@ -307,10 +313,12 @@ static inline int __lttng_poll_get_prev_fd(struct lttng_poll_event *events, /* * For the following calls, consider 'e' to be a lttng_poll_event pointer and i * being the index of the events array. + * LTTNG_POLL_GETNB is always used after lttng_poll_wait, thus we can use the + * current list for test compatibility purposes. */ #define LTTNG_POLL_GETFD(e, i) LTTNG_REF(e)->wait.events[i].fd #define LTTNG_POLL_GETEV(e, i) LTTNG_REF(e)->wait.events[i].revents -#define LTTNG_POLL_GETNB(e) LTTNG_REF(e)->wait.nb_fd +#define LTTNG_POLL_GETNB(e) LTTNG_REF(e)->current.nb_fd #define LTTNG_POLL_GETSZ(e) LTTNG_REF(e)->wait.events_size #define LTTNG_POLL_GET_PREV_FD(e, i, nb_fd) \ __lttng_poll_get_prev_fd(LTTNG_REF(e), i, nb_fd) @@ -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 poll 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 */