@@ -33,6 +33,7 @@ libc_hidden_proto (__adjtimex)
# define __clock_adjtime64 __clock_adjtime
# define ___adjtimex64 ___adjtimex
# define __ntptimeval64 ntptimeval
+# define __ntp_gettime64 __ntp_gettime
# else
struct __timex64
@@ -83,6 +84,9 @@ struct __ntptimeval64
long int __glibc_reserved3;
long int __glibc_reserved4;
};
+extern int __ntp_gettime64 (struct __ntptimeval64 *ntv);
+libc_hidden_proto (__ntp_gettime64)
+
# endif
/* Convert a known valid struct timex into a struct __timex64. */
@@ -17,6 +17,7 @@
#define ntp_gettime ntp_gettime_redirect
+#include <time.h>
#include <sys/timex.h>
#undef ntp_gettime
@@ -27,15 +28,32 @@
int
-ntp_gettime (struct ntptimeval *ntv)
+__ntp_gettime64 (struct __ntptimeval64 *ntv)
{
- struct timex tntx;
+ struct __timex64 tntx;
int result;
tntx.modes = 0;
- result = __adjtimex (&tntx);
+ result = __clock_adjtime64 (CLOCK_REALTIME, &tntx);
ntv->time = tntx.time;
ntv->maxerror = tntx.maxerror;
ntv->esterror = tntx.esterror;
return result;
}
+
+#if __TIMESIZE != 64
+libc_hidden_def (__ntp_gettime64)
+
+int
+__ntp_gettime (struct ntptimeval *ntv)
+{
+ struct __ntptimeval64 ntv64;
+ int result;
+
+ result = __ntp_gettime64 (&ntv64);
+ *ntv = valid_ntptimeval64_to_ntptimeval (ntv64);
+
+ return result;
+}
+#endif
+strong_alias (__ntp_gettime, ntp_gettime)