Message ID | 20200713171025.3661832-8-adhemerval.zanella@linaro.org |
---|---|
State | New |
Headers | show |
Series | [01/23] linux: Simplify clock_adjtime | expand |
On Mon, 13 Jul 2020 14:10:10 -0300 Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org> wrote: > With arch-syscall.h it can now assumes the existance of either > __NR_sched_rr_get_interval or __NR_sched_rr_get_interval_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). > --- > sysdeps/unix/sysv/linux/sched_rr_gi.c | 20 ++++++++------------ > 1 file changed, 8 insertions(+), 12 deletions(-) > > diff --git a/sysdeps/unix/sysv/linux/sched_rr_gi.c > b/sysdeps/unix/sysv/linux/sched_rr_gi.c index 3d7b484591..997562159f > 100644 --- a/sysdeps/unix/sysv/linux/sched_rr_gi.c > +++ b/sysdeps/unix/sysv/linux/sched_rr_gi.c > @@ -25,24 +25,20 @@ > int > __sched_rr_get_interval64 (pid_t pid, struct __timespec64 *tp) > { > -#ifdef __ASSUME_TIME64_SYSCALLS > -# ifndef __NR_sched_rr_get_interval_time64 > -# define __NR_sched_rr_get_interval_time64 > __NR_sched_rr_get_interval -# endif > - return INLINE_SYSCALL_CALL (sched_rr_get_interval_time64, pid, tp); > -#else > -# ifdef __NR_sched_rr_get_interval_time64 > +#ifndef __NR_sched_rr_get_interval_time64 > +# define __NR_sched_rr_get_interval_time64 __NR_sched_rr_get_interval > +#endif > int ret = INLINE_SYSCALL_CALL (sched_rr_get_interval_time64, pid, > tp); +#ifndef __ASSUME_TIME64_SYSCALLS > if (ret == 0 || errno != ENOSYS) > return ret; > -# endif > + > struct timespec tp32; > - int retval = INLINE_SYSCALL_CALL (sched_rr_get_interval, pid, > &tp32); > - if (retval == 0) > + ret = INLINE_SYSCALL_CALL (sched_rr_get_interval, pid, &tp32); > + if (ret == 0) > *tp = valid_timespec_to_timespec64 (tp32); > - > - return retval; > #endif > + return ret; > } > > #if __TIMESIZE != 64 Reviewed-by: Lukasz Majewski <lukma@denx.de> Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
diff --git a/sysdeps/unix/sysv/linux/sched_rr_gi.c b/sysdeps/unix/sysv/linux/sched_rr_gi.c index 3d7b484591..997562159f 100644 --- a/sysdeps/unix/sysv/linux/sched_rr_gi.c +++ b/sysdeps/unix/sysv/linux/sched_rr_gi.c @@ -25,24 +25,20 @@ int __sched_rr_get_interval64 (pid_t pid, struct __timespec64 *tp) { -#ifdef __ASSUME_TIME64_SYSCALLS -# ifndef __NR_sched_rr_get_interval_time64 -# define __NR_sched_rr_get_interval_time64 __NR_sched_rr_get_interval -# endif - return INLINE_SYSCALL_CALL (sched_rr_get_interval_time64, pid, tp); -#else -# ifdef __NR_sched_rr_get_interval_time64 +#ifndef __NR_sched_rr_get_interval_time64 +# define __NR_sched_rr_get_interval_time64 __NR_sched_rr_get_interval +#endif int ret = INLINE_SYSCALL_CALL (sched_rr_get_interval_time64, pid, tp); +#ifndef __ASSUME_TIME64_SYSCALLS if (ret == 0 || errno != ENOSYS) return ret; -# endif + struct timespec tp32; - int retval = INLINE_SYSCALL_CALL (sched_rr_get_interval, pid, &tp32); - if (retval == 0) + ret = INLINE_SYSCALL_CALL (sched_rr_get_interval, pid, &tp32); + if (ret == 0) *tp = valid_timespec_to_timespec64 (tp32); - - return retval; #endif + return ret; } #if __TIMESIZE != 64