]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
y2038: Introduce struct __ntptimeval64 - new internal glibc type
authorLukasz Majewski <lukma@denx.de>
Tue, 21 Apr 2020 23:01:21 +0000 (01:01 +0200)
committerLukasz Majewski <lukma@denx.de>
Tue, 19 May 2020 23:03:27 +0000 (01:03 +0200)
This type is a glibc's "internal" type to get time parameters data from
Linux kernel (NTP daemon interface). It stores time in struct __timeval64
rather than struct timeval, which makes it Y2038-proof.

Build tests:
./src/scripts/build-many-glibcs.py glibcs

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
sysdeps/unix/sysv/linux/include/sys/timex.h

index cf3059f63ca9ae4b3862d5e4ce25827c27ce33cb..8c536b9a95a0ee119d334b480d0cfa2a1a267251 100644 (file)
@@ -32,6 +32,7 @@ libc_hidden_proto (__adjtimex)
 #   define __timex64 timex
 #   define __clock_adjtime64 __clock_adjtime
 #   define ___adjtimex64 ___adjtimex
+#   define __ntptimeval64 ntptimeval
 #  else
 
 struct __timex64
@@ -77,6 +78,19 @@ extern int __clock_adjtime64 (const clockid_t clock_id, struct __timex64 *tx64);
 libc_hidden_proto (__clock_adjtime64);
 extern int ___adjtimex64 (struct __timex64 *tx64);
 libc_hidden_proto (___adjtimex64)
+
+struct __ntptimeval64
+{
+  struct __timeval64 time;     /* current time (ro) */
+  long int maxerror;   /* maximum error (us) (ro) */
+  long int esterror;   /* estimated error (us) (ro) */
+  long int tai;                /* TAI offset (ro) */
+
+  long int __glibc_reserved1;
+  long int __glibc_reserved2;
+  long int __glibc_reserved3;
+  long int __glibc_reserved4;
+};
 #  endif
 
 /* Convert a known valid struct timex into a struct __timex64.  */