From 115959290f01f6c0674e16e0de5d8a16f79d19de Mon Sep 17 00:00:00 2001 From: Lukasz Majewski Date: Tue, 5 Nov 2019 12:18:24 +0100 Subject: timer: Decouple x86_64 specific timer_gettime from generic Linux implementation The x86_64 specific timer_gettime implementation (from ./linux/x86_64/timer_gettime.c) reused the Linux generic one (from ./linux/timer_gettime.c) to implement handling some compatible timers (previously defined in librt, now in libc). As the generic implementation now is going to also support new (available from Linux 5.1+) timer_gettime64 syscall, those two implementations have been decoupled for easier conversion. The original INLINE_SYSCALL() macro has been replaced with INLINE_SYSCALL_CALL() to avoid explicit passing the number of arguments. Reviewed-by: Adhemerval Zanella --- sysdeps/unix/sysv/linux/timer_gettime.c | 7 ------- sysdeps/unix/sysv/linux/x86_64/timer_gettime.c | 12 ++++++++---- 2 files changed, 8 insertions(+), 11 deletions(-) (limited to 'sysdeps/unix/sysv/linux') diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c index 799e2c935e..8d9bef9196 100644 --- a/sysdeps/unix/sysv/linux/timer_gettime.c +++ b/sysdeps/unix/sysv/linux/timer_gettime.c @@ -22,16 +22,9 @@ #include #include "kernel-posix-timers.h" - -#ifdef timer_gettime_alias -# define timer_gettime timer_gettime_alias -#endif - - int timer_gettime (timer_t timerid, struct itimerspec *value) { -#undef timer_gettime struct timer *kt = (struct timer *) timerid; /* Delete the kernel timer object. */ diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c index 54daee2f4c..0122deec14 100644 --- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c +++ b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c @@ -17,13 +17,17 @@ not, see . */ #include +#include +#include "kernel-posix-timers.h" #include "compat-timer.h" +int +__timer_gettime_new (timer_t timerid, struct itimerspec *value) +{ + struct timer *kt = (struct timer *) timerid; -#define timer_gettime_alias __timer_gettime_new -#include - -#undef timer_gettime + return INLINE_SYSCALL_CALL (timer_gettime, kt->ktimerid, value); +} versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3); -- cgit 1.4.1