about summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorLukasz Majewski <lukma@denx.de>2019-12-06 16:20:33 +0100
committerLukasz Majewski <lukma@denx.de>2020-02-02 11:23:23 +0100
commiteae22432723b877354291aca4dbbfde5891dad59 (patch)
tree2934b365f8ea18f6e0af56b42223022aae3e654e /include
parent0f6e6b97647891ae569018f9d6923dc5eee694c9 (diff)
downloadglibc-eae22432723b877354291aca4dbbfde5891dad59.tar.gz
glibc-eae22432723b877354291aca4dbbfde5891dad59.tar.xz
glibc-eae22432723b877354291aca4dbbfde5891dad59.zip
y2038: linux: Provide __timerfd_settime64 implementation
This patch replaces auto generated wrapper (as described in
sysdeps/unix/sysv/linux/syscalls.list) for timerfd_settime with one which
adds extra support for reading and writing from Linux kernel 64 bit time
values on machines with __TIMESIZE != 64.
There is no functional change for archs already supporting 64 bit time ABI.

This patch is conceptually identical to timer_settime conversion already
done in sysdeps/unix/sysv/linux/timer_settime.c.
Please refer to corresponding commit message for detailed description of
introduced functions and the testing procedure.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

---
Changes for v4:
- Update date from 2019 to 2020

Changes for v3:
- Add missing libc_hidden_def()

Changes for v2:
- Remove "Contributed by" from the file header
- Remove early check for (fd < 0) in __timerfd_settime64 as the fd
  correctness check is already done in Linux kernel
- Add single descriptive comment line to provide concise explanation
  of the code
Diffstat (limited to 'include')
-rw-r--r--include/time.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/time.h b/include/time.h
index eb5082b4d7..f23bfea737 100644
--- a/include/time.h
+++ b/include/time.h
@@ -191,11 +191,16 @@ libc_hidden_proto (__timerfd_gettime64);
 
 #if __TIMESIZE == 64
 # define __timer_settime64 __timer_settime
+# define __timerfd_settime64 __timerfd_settime
 #else
 extern int __timer_settime64 (timer_t timerid, int flags,
                               const struct __itimerspec64 *value,
                               struct __itimerspec64 *ovalue);
+extern int __timerfd_settime64 (int fd, int flags,
+                                const struct __itimerspec64 *value,
+                                struct __itimerspec64 *ovalue);
 libc_hidden_proto (__timer_settime64);
+libc_hidden_proto (__timerfd_settime64);
 #endif
 
 /* Compute the `struct tm' representation of T,