diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-07-10 13:33:40 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-08-24 15:04:31 -0300 |
commit | 3feb53bab07c29f5390420379b3988f71b19e32c (patch) | |
tree | 2d58227e94bce9659ee90fca502df141916d2d04 | |
parent | 85077eaa54fa489c676535b1dad8b617a6485cd0 (diff) | |
download | glibc-3feb53bab07c29f5390420379b3988f71b19e32c.tar.gz glibc-3feb53bab07c29f5390420379b3988f71b19e32c.tar.xz glibc-3feb53bab07c29f5390420379b3988f71b19e32c.zip |
linux: Simplify ppoll
With arch-syscall.h it can now assumes the existance of either __NR_ppoll or __NR_ppoll_time64. The 32-bit time_t support is now only build for !__ASSUME_TIME64_SYSCALLS. Checked on x86_64-linux-gnu and i686-linux-gnu (on 5.4 and on 4.15 kernel). Reviewed-by: Lukasz Majewski <lukma@denx.de>
-rw-r--r-- | sysdeps/unix/sysv/linux/ppoll.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c index 0f15636cce..dd2167fc55 100644 --- a/sysdeps/unix/sysv/linux/ppoll.c +++ b/sysdeps/unix/sysv/linux/ppoll.c @@ -37,19 +37,16 @@ __ppoll64 (struct pollfd *fds, nfds_t nfds, const struct __timespec64 *timeout, timeout = &tval; } -#ifdef __ASSUME_TIME64_SYSCALLS -# ifndef __NR_ppoll_time64 -# define __NR_ppoll_time64 __NR_ppoll -# endif - return SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask, - __NSIG_BYTES); -#else -# ifdef __NR_ppoll_time64 +#ifndef __NR_ppoll_time64 +# define __NR_ppoll_time64 __NR_ppoll +#endif int ret = SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask, __NSIG_BYTES); + +#ifndef __ASSUME_TIME64_SYSCALLS if (ret >= 0 || errno != ENOSYS) return ret; -# endif + struct timespec ts32; if (timeout) { @@ -62,9 +59,11 @@ __ppoll64 (struct pollfd *fds, nfds_t nfds, const struct __timespec64 *timeout, ts32 = valid_timespec64_to_timespec (*timeout); } - return SYSCALL_CANCEL (ppoll, fds, nfds, timeout ? &ts32 : NULL, sigmask, - __NSIG_BYTES); + ret = SYSCALL_CANCEL (ppoll, fds, nfds, timeout ? &ts32 : NULL, sigmask, + __NSIG_BYTES); #endif + + return ret; } #if __TIMESIZE != 64 |