diff options
author | Christoph Hellwig <hch@lst.de> | 2018-05-02 19:51:00 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2018-05-02 19:57:24 +0200 |
commit | 7a074e96dee62586c935c80cecd931431bfdd0be (patch) | |
tree | a1a29dad896070e82827d7447cfcc9a064e5a63d /include/uapi/asm-generic/unistd.h | |
parent | a3c0d439e4d92411c2b4b21a526a4de720d0806b (diff) | |
download | linux-7a074e96dee62586c935c80cecd931431bfdd0be.tar.gz linux-7a074e96dee62586c935c80cecd931431bfdd0be.tar.bz2 linux-7a074e96dee62586c935c80cecd931431bfdd0be.zip |
aio: implement io_pgetevents
This is the io_getevents equivalent of ppoll/pselect and allows to
properly mix signals and aio completions (especially with IOCB_CMD_POLL)
and atomically executes the following sequence:
sigset_t origmask;
pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);
ret = io_getevents(ctx, min_nr, nr, events, timeout);
pthread_sigmask(SIG_SETMASK, &origmask, NULL);
Note that unlike many other signal related calls we do not pass a sigmask
size, as that would get us to 7 arguments, which aren't easily supported
by the syscall infrastructure. It seems a lot less painful to just add a
new syscall variant in the unlikely case we're going to increase the
sigset size.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'include/uapi/asm-generic/unistd.h')
-rw-r--r-- | include/uapi/asm-generic/unistd.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 8bcb186c6f67..42990676a55e 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -732,9 +732,11 @@ __SYSCALL(__NR_pkey_alloc, sys_pkey_alloc) __SYSCALL(__NR_pkey_free, sys_pkey_free) #define __NR_statx 291 __SYSCALL(__NR_statx, sys_statx) +#define __NR_io_pgetevents 292 +__SC_COMP(__NR_io_pgetevents, sys_io_pgetevents, compat_sys_io_pgetevents) #undef __NR_syscalls -#define __NR_syscalls 292 +#define __NR_syscalls 293 /* * 32 bit systems traditionally used different |