projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
epoll/poll compat: expose interruptible API
[lttng-tools.git]
/
src
/
common
/
compat
/
poll.h
diff --git
a/src/common/compat/poll.h
b/src/common/compat/poll.h
index d4bd87f589213fbace764f2f2d3d152551d5ab5a..0b3cb324341a225ab6ab33c588a170e6d9cc23c4 100644
(file)
--- 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)
#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) \
extern int compat_epoll_create(struct lttng_poll_event *events,
int size, int flags);
#define lttng_poll_create(events, size, flags) \
@@
-152,9
+150,12
@@
static inline int compat_glibc_epoll_create(int size, int flags)
* Wait on epoll set with the number of fd registered to the lttng_poll_event
* data structure (events).
*/
* Wait on epoll set with the number of fd registered to the lttng_poll_event
* data structure (events).
*/
-extern int compat_epoll_wait(struct lttng_poll_event *events, int timeout);
+extern int compat_epoll_wait(struct lttng_poll_event *events, int timeout,
+ bool interruptible);
#define lttng_poll_wait(events, timeout) \
#define lttng_poll_wait(events, timeout) \
- compat_epoll_wait(events, timeout)
+ compat_epoll_wait(events, timeout, false)
+#define lttng_poll_wait_interruptible(events, timeout) \
+ compat_epoll_wait(events, timeout, true)
/*
* Add a fd to the epoll set and resize the epoll_event structure if needed.
/*
* Add a fd to the epoll set and resize the epoll_event structure if needed.
@@
-177,7
+178,7
@@
extern int compat_epoll_del(struct lttng_poll_event *events, int fd);
extern int compat_epoll_mod(struct lttng_poll_event *events,
int fd, uint32_t req_events);
#define lttng_poll_mod(events, fd, req_events) \
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_
ad
d(events, fd, req_events)
+ compat_epoll_
mo
d(events, fd, req_events)
/*
* Set up the poll set limits variable poll_max_size
/*
* Set up the poll set limits variable poll_max_size
@@
-315,10
+316,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.
/*
* 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_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)->
wai
t.nb_fd
+#define LTTNG_POLL_GETNB(e) LTTNG_REF(e)->
curren
t.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)
#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)
@@
-334,9
+337,12
@@
extern int compat_poll_create(struct lttng_poll_event *events, int size);
* Wait on poll(2) event with nb_fd registered to the lttng_poll_event data
* structure.
*/
* Wait on poll(2) event with nb_fd registered to the lttng_poll_event data
* structure.
*/
-extern int compat_poll_wait(struct lttng_poll_event *events, int timeout);
+extern int compat_poll_wait(struct lttng_poll_event *events, int timeout,
+ bool interruptible);
#define lttng_poll_wait(events, timeout) \
#define lttng_poll_wait(events, timeout) \
- compat_poll_wait(events, timeout)
+ compat_poll_wait(events, timeout, false)
+#define lttng_poll_wait_interruptible(events, timeout) \
+ compat_poll_wait(events, timeout, true)
/*
* Add the fd to the pollfd structure. Resize if needed.
/*
* Add the fd to the pollfd structure. Resize if needed.
@@
-356,12
+362,12
@@
extern int compat_poll_del(struct lttng_poll_event *events, int fd);
compat_poll_del(events, fd)
/*
compat_poll_del(events, fd)
/*
- * Modify an fd's events in the
e
poll set.
+ * 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) \
*/
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_
ad
d(events, fd, req_events)
+ compat_poll_
mo
d(events, fd, req_events)
/*
* Set up the poll set limits variable poll_max_size
/*
* Set up the poll set limits variable poll_max_size
This page took
0.024229 seconds
and
4
git commands to generate.