diff --git a/headers/private/kernel/arch/m68k/arch_platform.h b/headers/private/kernel/arch/m68k/arch_platform.h index 2abb472553..a0acce0570 100644 --- a/headers/private/kernel/arch/m68k/arch_platform.h +++ b/headers/private/kernel/arch/m68k/arch_platform.h @@ -50,7 +50,7 @@ public: // mimic the PC CMOS virtual uint8 ReadRTCReg(uint8 reg) = 0; virtual void WriteRTCReg(uint8 reg, uint8 val) = 0; - virtual void SetHardwareRTC(uint32 seconds) = 0; + virtual void SetHardwareRTC(uint64 seconds) = 0; virtual uint32 GetHardwareRTC() = 0; virtual void SetHardwareTimer(bigtime_t timeout) = 0; diff --git a/headers/private/kernel/arch/mipsel/arch_platform.h b/headers/private/kernel/arch/mipsel/arch_platform.h index db15b3b30c..01d4e456a1 100644 --- a/headers/private/kernel/arch/mipsel/arch_platform.h +++ b/headers/private/kernel/arch/mipsel/arch_platform.h @@ -35,7 +35,7 @@ public: virtual char SerialDebugGetChar() = 0; virtual void SerialDebugPutChar(char c) = 0; - virtual void SetHardwareRTC(uint32 seconds) = 0; + virtual void SetHardwareRTC(uint64 seconds) = 0; virtual uint32 GetHardwareRTC() = 0; virtual void ShutDown(bool reboot) = 0; diff --git a/headers/private/kernel/arch/ppc/arch_platform.h b/headers/private/kernel/arch/ppc/arch_platform.h index 30d5ff132a..192835796d 100644 --- a/headers/private/kernel/arch/ppc/arch_platform.h +++ b/headers/private/kernel/arch/ppc/arch_platform.h @@ -34,7 +34,7 @@ public: virtual char SerialDebugGetChar() = 0; virtual void SerialDebugPutChar(char c) = 0; - virtual void SetHardwareRTC(uint32 seconds) = 0; + virtual void SetHardwareRTC(uint64 seconds) = 0; virtual uint32 GetHardwareRTC() = 0; virtual void ShutDown(bool reboot) = 0; diff --git a/headers/private/kernel/arch/real_time_clock.h b/headers/private/kernel/arch/real_time_clock.h index 0a226303e3..9b91492f67 100644 --- a/headers/private/kernel/arch/real_time_clock.h +++ b/headers/private/kernel/arch/real_time_clock.h @@ -20,9 +20,9 @@ extern "C" { status_t arch_rtc_init(struct kernel_args *args, struct real_time_data *data); -void arch_rtc_set_hw_time(uint32 seconds); +void arch_rtc_set_hw_time(uint64 seconds); // Set HW clock to 'seconds' since 1/1/1970 -uint32 arch_rtc_get_hw_time(void); +uint64 arch_rtc_get_hw_time(void); // Returns number of seconds since 1/1/1970 as stored in HW void arch_rtc_set_system_time_offset(struct real_time_data *data, diff --git a/headers/private/kernel/arch/sparc/arch_platform.h b/headers/private/kernel/arch/sparc/arch_platform.h index edee3859c2..2a0d864f30 100644 --- a/headers/private/kernel/arch/sparc/arch_platform.h +++ b/headers/private/kernel/arch/sparc/arch_platform.h @@ -33,7 +33,7 @@ public: virtual char SerialDebugGetChar() = 0; virtual void SerialDebugPutChar(char c) = 0; - virtual void SetHardwareRTC(uint32 seconds) = 0; + virtual void SetHardwareRTC(uint64 seconds) = 0; virtual uint32 GetHardwareRTC() = 0; virtual void ShutDown(bool reboot) = 0; diff --git a/headers/private/kernel/real_time_clock.h b/headers/private/kernel/real_time_clock.h index ccfd1177a0..6e380d31f9 100644 --- a/headers/private/kernel/real_time_clock.h +++ b/headers/private/kernel/real_time_clock.h @@ -30,8 +30,8 @@ bigtime_t rtc_boot_time(void); // Both functions use the passed struct tm only partially // (no tm_wday, tm_yday, tm_isdst). -uint32 rtc_tm_to_secs(const struct tm *t); -void rtc_secs_to_tm(uint32 seconds, struct tm *t); +uint64 rtc_tm_to_secs(const struct tm *t); +void rtc_secs_to_tm(uint64 seconds, struct tm *t); uint32 get_timezone_offset(void); diff --git a/src/system/kernel/arch/arm/arch_real_time_clock.cpp b/src/system/kernel/arch/arm/arch_real_time_clock.cpp index 4d686c614a..58cbea9172 100644 --- a/src/system/kernel/arch/arm/arch_real_time_clock.cpp +++ b/src/system/kernel/arch/arm/arch_real_time_clock.cpp @@ -22,7 +22,7 @@ arch_rtc_init(kernel_args *args, struct real_time_data *data) } -uint32 +uint64 arch_rtc_get_hw_time(void) { return 0; @@ -30,7 +30,7 @@ arch_rtc_get_hw_time(void) void -arch_rtc_set_hw_time(uint32 seconds) +arch_rtc_set_hw_time(uint64 seconds) { } diff --git a/src/system/kernel/arch/arm64/arch_real_time_clock.cpp b/src/system/kernel/arch/arm64/arch_real_time_clock.cpp index 17f729a3e4..f7ce4a2216 100644 --- a/src/system/kernel/arch/arm64/arch_real_time_clock.cpp +++ b/src/system/kernel/arch/arm64/arch_real_time_clock.cpp @@ -16,7 +16,7 @@ arch_rtc_init(kernel_args *args, struct real_time_data *data) } -uint32 +uint64 arch_rtc_get_hw_time(void) { return 0; @@ -24,7 +24,7 @@ arch_rtc_get_hw_time(void) void -arch_rtc_set_hw_time(uint32 seconds) +arch_rtc_set_hw_time(uint64 seconds) { } diff --git a/src/system/kernel/arch/m68k/arch_real_time_clock.cpp b/src/system/kernel/arch/m68k/arch_real_time_clock.cpp index e508a09e9e..9d3e707a84 100644 --- a/src/system/kernel/arch/m68k/arch_real_time_clock.cpp +++ b/src/system/kernel/arch/m68k/arch_real_time_clock.cpp @@ -140,7 +140,7 @@ cmos_to_secs(const cmos_time *cmos) static void -secs_to_cmos(uint32 seconds, cmos_time *cmos) +secs_to_cmos(uint64 seconds, cmos_time *cmos) { int wholeYear; @@ -193,7 +193,7 @@ arch_rtc_init(kernel_args *args, struct real_time_data *data) } -uint32 +uint64 arch_rtc_get_hw_time(void) { return M68KPlatform::Default()->GetHardwareRTC(); @@ -201,7 +201,7 @@ arch_rtc_get_hw_time(void) void -arch_rtc_set_hw_time(uint32 seconds) +arch_rtc_set_hw_time(uint64 seconds) { M68KPlatform::Default()->SetHardwareRTC(seconds); } diff --git a/src/system/kernel/arch/ppc/arch_platform.cpp b/src/system/kernel/arch/ppc/arch_platform.cpp index c20efe5040..56a44b194d 100644 --- a/src/system/kernel/arch/ppc/arch_platform.cpp +++ b/src/system/kernel/arch/ppc/arch_platform.cpp @@ -57,7 +57,7 @@ public: virtual char SerialDebugGetChar(); virtual void SerialDebugPutChar(char c); - virtual void SetHardwareRTC(uint32 seconds); + virtual void SetHardwareRTC(uint64 seconds); virtual uint32 GetHardwareRTC(); virtual void ShutDown(bool reboot); @@ -183,7 +183,7 @@ PPCOpenFirmware::SerialDebugPutChar(char c) void -PPCOpenFirmware::SetHardwareRTC(uint32 seconds) +PPCOpenFirmware::SetHardwareRTC(uint64 seconds) { struct tm t; rtc_secs_to_tm(seconds, &t); @@ -246,7 +246,7 @@ public: virtual char SerialDebugGetChar(); virtual void SerialDebugPutChar(char c); - virtual void SetHardwareRTC(uint32 seconds); + virtual void SetHardwareRTC(uint64 seconds); virtual uint32 GetHardwareRTC(); virtual void ShutDown(bool reboot); @@ -331,7 +331,7 @@ PPCUBoot::SerialDebugPutChar(char c) void -PPCUBoot::SetHardwareRTC(uint32 seconds) +PPCUBoot::SetHardwareRTC(uint64 seconds) { } diff --git a/src/system/kernel/arch/ppc/arch_real_time_clock.cpp b/src/system/kernel/arch/ppc/arch_real_time_clock.cpp index a0f82dcf08..a982f65a5b 100644 --- a/src/system/kernel/arch/ppc/arch_real_time_clock.cpp +++ b/src/system/kernel/arch/ppc/arch_real_time_clock.cpp @@ -41,7 +41,7 @@ arch_rtc_init(kernel_args *args, struct real_time_data *data) } -uint32 +uint64 arch_rtc_get_hw_time(void) { return PPCPlatform::Default()->GetHardwareRTC(); @@ -49,7 +49,7 @@ arch_rtc_get_hw_time(void) void -arch_rtc_set_hw_time(uint32 seconds) +arch_rtc_set_hw_time(uint64 seconds) { PPCPlatform::Default()->SetHardwareRTC(seconds); } diff --git a/src/system/kernel/arch/riscv64/arch_real_time_clock.cpp b/src/system/kernel/arch/riscv64/arch_real_time_clock.cpp index 6e773d86bb..857b69568f 100644 --- a/src/system/kernel/arch/riscv64/arch_real_time_clock.cpp +++ b/src/system/kernel/arch/riscv64/arch_real_time_clock.cpp @@ -25,15 +25,15 @@ arch_rtc_init(kernel_args *args, struct real_time_data *data) } -uint32 +uint64 arch_rtc_get_hw_time(void) { - return (uint32)(HtifCmd(2, 0, 0) / 1000000); + return (HtifCmd(2, 0, 0) / 1000000); } void -arch_rtc_set_hw_time(uint32 seconds) +arch_rtc_set_hw_time(uint64 seconds) { } diff --git a/src/system/kernel/arch/sparc/arch_platform.cpp b/src/system/kernel/arch/sparc/arch_platform.cpp index 88c380dbd0..e838336057 100644 --- a/src/system/kernel/arch/sparc/arch_platform.cpp +++ b/src/system/kernel/arch/sparc/arch_platform.cpp @@ -58,7 +58,7 @@ public: virtual char SerialDebugGetChar(); virtual void SerialDebugPutChar(char c); - virtual void SetHardwareRTC(uint32 seconds); + virtual void SetHardwareRTC(uint64 seconds); virtual uint32 GetHardwareRTC(); virtual void ShutDown(bool reboot); @@ -183,7 +183,7 @@ SparcOpenFirmware::SerialDebugPutChar(char c) // SetHardwareRTC void -SparcOpenFirmware::SetHardwareRTC(uint32 seconds) +SparcOpenFirmware::SetHardwareRTC(uint64 seconds) { struct tm t; rtc_secs_to_tm(seconds, &t); diff --git a/src/system/kernel/arch/sparc/arch_real_time_clock.cpp b/src/system/kernel/arch/sparc/arch_real_time_clock.cpp index 937b58d595..c610a6e1eb 100644 --- a/src/system/kernel/arch/sparc/arch_real_time_clock.cpp +++ b/src/system/kernel/arch/sparc/arch_real_time_clock.cpp @@ -11,7 +11,7 @@ arch_rtc_init(kernel_args *args, struct real_time_data *data) } -uint32 +uint64 arch_rtc_get_hw_time(void) { return 0; @@ -19,7 +19,7 @@ arch_rtc_get_hw_time(void) void -arch_rtc_set_hw_time(uint32 seconds) +arch_rtc_set_hw_time(uint64 seconds) { } diff --git a/src/system/kernel/arch/x86/arch_real_time_clock.cpp b/src/system/kernel/arch/x86/arch_real_time_clock.cpp index 24a02f5f39..1689866fc8 100644 --- a/src/system/kernel/arch/x86/arch_real_time_clock.cpp +++ b/src/system/kernel/arch/x86/arch_real_time_clock.cpp @@ -154,7 +154,7 @@ cmos_to_secs(const cmos_time *cmos) static void -secs_to_cmos(uint32 seconds, cmos_time *cmos) +secs_to_cmos(uint64 seconds, cmos_time *cmos) { int wholeYear; @@ -185,7 +185,7 @@ arch_rtc_init(struct kernel_args *args, struct real_time_data *data) } -uint32 +uint64 arch_rtc_get_hw_time(void) { int waitTime; @@ -209,7 +209,7 @@ arch_rtc_get_hw_time(void) void -arch_rtc_set_hw_time(uint32 seconds) +arch_rtc_set_hw_time(uint64 seconds) { cmos_time cmos; diff --git a/src/system/kernel/platform/atari_m68k/platform.cpp b/src/system/kernel/platform/atari_m68k/platform.cpp index a6ee318cfe..0885b1d886 100644 --- a/src/system/kernel/platform/atari_m68k/platform.cpp +++ b/src/system/kernel/platform/atari_m68k/platform.cpp @@ -155,7 +155,7 @@ public: virtual uint8 ReadRTCReg(uint8 reg); virtual void WriteRTCReg(uint8 reg, uint8 val); - virtual void SetHardwareRTC(uint32 seconds); + virtual void SetHardwareRTC(uint64 seconds); virtual uint32 GetHardwareRTC(); virtual void SetHardwareTimer(bigtime_t timeout); @@ -617,7 +617,7 @@ M68KAtari::WriteRTCReg(uint8 reg, uint8 val) } void -M68KAtari::SetHardwareRTC(uint32 seconds) +M68KAtari::SetHardwareRTC(uint64 seconds) { #warning M68K: WRITEME } diff --git a/src/system/kernel/real_time_clock.cpp b/src/system/kernel/real_time_clock.cpp index 6b0eeb39a7..63aff11f53 100644 --- a/src/system/kernel/real_time_clock.cpp +++ b/src/system/kernel/real_time_clock.cpp @@ -53,7 +53,7 @@ real_time_clock_changed() static void rtc_system_to_hw(void) { - uint32 seconds; + uint64 seconds; seconds = (arch_rtc_get_system_time_offset(sRealTimeData) + system_time() + (sIsGMT ? 0 : sTimezoneOffset)) / 1000000; @@ -66,7 +66,7 @@ rtc_system_to_hw(void) static void rtc_hw_to_system(void) { - uint32 current_time; + uint64 current_time; current_time = arch_rtc_get_hw_time(); set_real_time_clock(current_time + (sIsGMT ? 0 : sTimezoneOffset)); @@ -175,7 +175,7 @@ get_timezone_offset(void) /*! Converts the \a tm data to seconds. Note that the base year is not 1900 as in POSIX, but 1970. */ -uint32 +uint64 rtc_tm_to_secs(const struct tm *tm) { uint32 days; @@ -191,13 +191,13 @@ rtc_tm_to_secs(const struct tm *tm) + 367 * (month - 2 - 12 * ((month - 14) / 12)) / 12 - 3 * ((year + 4900 + (month - 14) / 12) / 100) / 4; - return days * RTC_SECONDS_DAY + tm->tm_hour * 3600 + tm->tm_min * 60 + return (uint64)days * RTC_SECONDS_DAY + tm->tm_hour * 3600 + tm->tm_min * 60 + tm->tm_sec; } void -rtc_secs_to_tm(uint32 seconds, struct tm *t) +rtc_secs_to_tm(uint64 seconds, struct tm *t) { uint32 year, month, day, l, n;