aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix
diff options
context:
space:
mode:
authorAlbert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>2017-09-08 00:41:38 +0200
committerAlbert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>2018-10-24 12:53:27 +0200
commite4625075c84988c2a196b381909e676ccf01338f (patch)
treeb0cd47e5cf03d22b9a6d20431c94d9fd9e99ef2a /sysdeps/unix
parentc0195aeb0591bd575abcbf9382d28d4f2b2956c7 (diff)
downloadglibc-e4625075c84988c2a196b381909e676ccf01338f.tar
glibc-e4625075c84988c2a196b381909e676ccf01338f.tar.gz
glibc-e4625075c84988c2a196b381909e676ccf01338f.tar.bz2
glibc-e4625075c84988c2a196b381909e676ccf01338f.zip
Y2038: add function __timespec_get64
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/sysv/linux/timespec_get.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c
index b14a302ee9..4cc534af3a 100644
--- a/sysdeps/unix/sysv/linux/timespec_get.c
+++ b/sysdeps/unix/sysv/linux/timespec_get.c
@@ -44,3 +44,24 @@ timespec_get (struct timespec *ts, int base)
return base;
}
+
+/* 64-bit time version */
+
+/* We don't have a 64-bit-time syscall yet, so just convert arguments
+ * between 64-bit and 32-bit time, and use the 32-bit implementation.
+ *
+ * We could do the reverse and make the 32-bit time implementation a
+ * wrapper around the 64-bit-time implementation, but then 32-bit-time
+ * uses would incur two conversions instead of zero right now.
+ */
+int
+__timespec_get64 (struct __timespec64 *ts, int base)
+{
+ struct timespec ts32;
+ int res = timespec_get (&ts32, base);
+ if (res != base)
+ {
+ timespec_to_timespec64(&ts32, ts);
+ }
+ return res;
+}