From 970e7cd16afb136b256479e2ca0723d74e8bb6e1 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 9 Mar 2020 22:01:33 +0100 Subject: Set readtodc parameter 64bit In order to fix year 2038 limit. * i386/i386at/rtc.h (readtodc): Make tp parameter uint64_t *. * i386/i386at/rtc.c (readtodc): Likewise. * xen/time.c (readtodc): Likewise. * i386/i386at/model_dep.c (inittodr): Pass uint64_t pointer to readtodc. --- i386/i386at/model_dep.c | 6 +++--- i386/i386at/rtc.c | 2 +- i386/i386at/rtc.h | 2 +- xen/time.c | 7 ++----- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c index 04660a6d..61ed4748 100644 --- a/i386/i386at/model_dep.c +++ b/i386/i386at/model_dep.c @@ -669,12 +669,12 @@ void inittodr(void) { time_value_t new_time; + uint64_t newsecs; - new_time.seconds = 0; + (void) readtodc(&newsecs); + new_time.seconds = newsecs; new_time.microseconds = 0; - (void) readtodc((u_int *)&new_time.seconds); - { spl_t s = splhigh(); time = new_time; diff --git a/i386/i386at/rtc.c b/i386/i386at/rtc.c index 6e5cdeb3..4187cbf5 100644 --- a/i386/i386at/rtc.c +++ b/i386/i386at/rtc.c @@ -146,7 +146,7 @@ dectohexdec(int n) } int -readtodc(u_int *tp) +readtodc(uint64_t *tp) { struct rtc_st rtclk; time_t n; diff --git a/i386/i386at/rtc.h b/i386/i386at/rtc.h index 97eabe95..53797221 100644 --- a/i386/i386at/rtc.h +++ b/i386/i386at/rtc.h @@ -137,7 +137,7 @@ struct rtc_st { } \ } -extern int readtodc(u_int *tp); +extern int readtodc(uint64_t *tp); extern int writetodc(void); #endif /* _RTC_H_ */ diff --git a/xen/time.c b/xen/time.c index d483405a..f2707a82 100644 --- a/xen/time.c +++ b/xen/time.c @@ -110,14 +110,11 @@ static void hypclock_intr(int unit, int old_ipl, void *ret_addr, struct i386_int #endif } -extern struct timeval time; - int -readtodc(tp) - u_int *tp; +readtodc(uint64_t *tp) { uint64_t t = hyp_get_time(); - u_int n = t / 1000000000; + uint64_t n = t / 1000000000; *tp = n; -- cgit v1.2.3