Re: [PATCH RFC v2 0/7] epoll: Introduce new syscalls, epoll_ctl_batch and epoll_pwait1
From: Andy Lutomirski <hidden>
Date: 2015-02-04 21:38:09
Also in:
linux-fsdevel, lkml
On Wed, Feb 4, 2015 at 2:36 AM, Fam Zheng [off-list ref] wrote:
2) epoll_pwait1
---------------
NAME
epoll_pwait1 - wait for an I/O event on an epoll file descriptor
SYNOPSIS
#include <sys/epoll.h>
int epoll_pwait1(int epfd, int flags,
struct epoll_event *events,
int maxevents,
struct timespec *timeout,
struct sigargs *sig);
DESCRIPTION
The epoll_pwait1 system call differs from epoll_pwait only in parameter
types. The first difference is timeout, a pointer to timespec structure
which allows nanosecond presicion; the second difference, which should
probably be wrapper by glibc and only expose a sigset_t pointer as in
pselect6.
If timeout is NULL, it's treated as if 0 is specified in epoll_pwait
(return immediately). Otherwise it's converted to nanosecond scalar,
again, with the same convention as epoll_pwait's timeout.Is the timeout absolute or relative? I'd kind of like the ability to set timeouts on multiple clocks at the same time, but I can live without that. --Andy
RETURN VALUE
The same as said in epoll_pwait(2).
ERRORS
The same as said in man epoll_pwait(2), plus:
EINVAL flags is not zero.
CONFORMING TO
epoll_pwait1() is Linux-specific.
SEE ALSO
epoll_create(2), epoll_ctl(2), epoll_wait(2), epoll_pwait(2), epoll(7)
Fam Zheng (7):
epoll: Extract epoll_wait_do and epoll_pwait_do
epoll: Specify clockid explicitly
epoll: Extract ep_ctl_do
epoll: Add implementation for epoll_ctl_batch
x86: Hook up epoll_ctl_batch syscall
epoll: Add implementation for epoll_pwait1
x86: Hook up epoll_pwait1 syscall
arch/x86/syscalls/syscall_32.tbl | 2 +
arch/x86/syscalls/syscall_64.tbl | 2 +
fs/eventpoll.c | 241 ++++++++++++++++++++++++++-------------
include/linux/syscalls.h | 9 ++
include/uapi/linux/eventpoll.h | 11 ++
5 files changed, 186 insertions(+), 79 deletions(-)
--
1.9.3-- Andy Lutomirski AMA Capital Management, LLC