diff --git a/bsp/apollo2/board/rtc.c b/bsp/apollo2/board/rtc.c index 1bc4779257..3d2e1c8e7a 100644 --- a/bsp/apollo2/board/rtc.c +++ b/bsp/apollo2/board/rtc.c @@ -25,6 +25,7 @@ #include #include #include "am_mcu_apollo.h" +#include #define XT 1 #define LFRC 2 @@ -78,7 +79,7 @@ static rt_err_t rt_rtc_control(rt_device_t dev, int cmd, void *args) /* Seconds 0-59 : the 0-59 range */ time_temp.tm_sec = hal_time.ui32Second; - *time = mktime(&time_temp); + *time = timegm(&time_temp); break; diff --git a/bsp/at32/Libraries/rt_drivers/drv_rtc.c b/bsp/at32/Libraries/rt_drivers/drv_rtc.c index 48c634cdf2..3ee2a61ec6 100644 --- a/bsp/at32/Libraries/rt_drivers/drv_rtc.c +++ b/bsp/at32/Libraries/rt_drivers/drv_rtc.c @@ -10,6 +10,7 @@ #include "board.h" #include +#include #ifdef BSP_USING_RTC @@ -42,7 +43,7 @@ static time_t get_rtc_timestamp(void) tm_new.tm_year = ERTC_DateStruct.ERTC_Year + 100; LOG_D("get rtc time."); - return mktime(&tm_new); + return timegm(&tm_new); #else return RTC_GetCounter(); #endif diff --git a/bsp/bluetrum/libraries/hal_drivers/drv_rtc.c b/bsp/bluetrum/libraries/hal_drivers/drv_rtc.c index 9e84490158..99483cb544 100644 --- a/bsp/bluetrum/libraries/hal_drivers/drv_rtc.c +++ b/bsp/bluetrum/libraries/hal_drivers/drv_rtc.c @@ -10,6 +10,7 @@ #include "board.h" #include +#include #ifdef BSP_USING_ONCHIP_RTC @@ -26,7 +27,7 @@ static struct rt_device rtc; uint8_t get_weekday(struct tm *const _tm) { uint8_t weekday; - time_t secs = mktime(_tm); + time_t secs = timegm(_tm); weekday = (secs / 86400 + 4) % 7; return weekday; @@ -115,7 +116,7 @@ void hal_rtc_init(void) tm_new.tm_mday = 29; tm_new.tm_mon = 1 - 1; tm_new.tm_year = 2021 - 1900; - sec = mktime(&tm_new); + sec = timegm(&tm_new); irtc_time_write(RTCCNT_CMD, sec); } diff --git a/bsp/essemi/es32f0271/drivers/drv_rtc.c b/bsp/essemi/es32f0271/drivers/drv_rtc.c index 23bab4dc16..fa1582cb0f 100644 --- a/bsp/essemi/es32f0271/drivers/drv_rtc.c +++ b/bsp/essemi/es32f0271/drivers/drv_rtc.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "board.h" #include "drv_rtc.h" @@ -96,7 +97,7 @@ static rt_err_t es32f0_rtc_control(rt_device_t dev, int cmd, void *args) time_temp.tm_mday = date->day; time_temp.tm_mon = date->month - 1; time_temp.tm_year = date->year - 1900 + 2000; - *((time_t *)args) = mktime(&time_temp); + *((time_t *)args) = timegm(&time_temp); break; } case RT_DEVICE_CTRL_RTC_SET_TIME: diff --git a/bsp/essemi/es32f0334/drivers/drv_rtc.c b/bsp/essemi/es32f0334/drivers/drv_rtc.c index 2ce6a408b1..9cde99c8c6 100644 --- a/bsp/essemi/es32f0334/drivers/drv_rtc.c +++ b/bsp/essemi/es32f0334/drivers/drv_rtc.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include "board.h" #include "drv_rtc.h" @@ -59,7 +60,7 @@ static rt_err_t es32f0_rtc_control(rt_device_t dev, int cmd, void *args) time_temp.tm_mday = date.day; time_temp.tm_mon = date.month - 1; time_temp.tm_year = date.year - 1900 + 2000; - *((time_t *)args) = mktime(&time_temp); + *((time_t *)args) = timegm(&time_temp); break; case RT_DEVICE_CTRL_RTC_SET_TIME: diff --git a/bsp/essemi/es32f0654/drivers/drv_rtc.c b/bsp/essemi/es32f0654/drivers/drv_rtc.c index 32a68c3011..54f0d3294e 100644 --- a/bsp/essemi/es32f0654/drivers/drv_rtc.c +++ b/bsp/essemi/es32f0654/drivers/drv_rtc.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include "board.h" #include "drv_rtc.h" @@ -59,7 +60,7 @@ static rt_err_t es32f0_rtc_control(rt_device_t dev, int cmd, void *args) time_temp.tm_mday = date.day; time_temp.tm_mon = date.month - 1; time_temp.tm_year = date.year - 1900 + 2000; - *((time_t *)args) = mktime(&time_temp); + *((time_t *)args) = timegm(&time_temp); break; case RT_DEVICE_CTRL_RTC_SET_TIME: diff --git a/bsp/essemi/es32f369x/drivers/drv_rtc.c b/bsp/essemi/es32f369x/drivers/drv_rtc.c index 32a68c3011..54f0d3294e 100644 --- a/bsp/essemi/es32f369x/drivers/drv_rtc.c +++ b/bsp/essemi/es32f369x/drivers/drv_rtc.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include "board.h" #include "drv_rtc.h" @@ -59,7 +60,7 @@ static rt_err_t es32f0_rtc_control(rt_device_t dev, int cmd, void *args) time_temp.tm_mday = date.day; time_temp.tm_mon = date.month - 1; time_temp.tm_year = date.year - 1900 + 2000; - *((time_t *)args) = mktime(&time_temp); + *((time_t *)args) = timegm(&time_temp); break; case RT_DEVICE_CTRL_RTC_SET_TIME: diff --git a/bsp/hc32f4a0/drivers/drv_rtc.c b/bsp/hc32f4a0/drivers/drv_rtc.c index 4ccaa46253..65d09fd559 100644 --- a/bsp/hc32f4a0/drivers/drv_rtc.c +++ b/bsp/hc32f4a0/drivers/drv_rtc.c @@ -8,8 +8,11 @@ * 2020-10-30 CDT first version */ -#include "board.h" +#include #include +#include +#include +#include #ifdef BSP_USING_RTC @@ -33,7 +36,7 @@ static time_t hc32_rtc_get_time_stamp(void) tm_new.tm_wday = stcRtcDate.u8Weekday; LOG_D("get rtc time."); - return mktime(&tm_new); + return timegm(&tm_new); } static rt_err_t hc32_rtc_set_time_stamp(time_t time_stamp) diff --git a/bsp/imxrt/libraries/drivers/drv_rtc.c b/bsp/imxrt/libraries/drivers/drv_rtc.c index 84e9e51074..22a39ac37d 100644 --- a/bsp/imxrt/libraries/drivers/drv_rtc.c +++ b/bsp/imxrt/libraries/drivers/drv_rtc.c @@ -10,6 +10,8 @@ * */ #include +#include +#include #ifdef BSP_USING_RTC @@ -39,7 +41,7 @@ static time_t get_timestamp(void) tm_new.tm_mon = rtcDate.month - 1; tm_new.tm_year = rtcDate.year - 1900; - return mktime(&tm_new); + return timegm(&tm_new); } static int set_timestamp(time_t timestamp) diff --git a/bsp/lpc55sxx/Libraries/drivers/drv_rtc.c b/bsp/lpc55sxx/Libraries/drivers/drv_rtc.c index 5e160bc471..00361a153a 100644 --- a/bsp/lpc55sxx/Libraries/drivers/drv_rtc.c +++ b/bsp/lpc55sxx/Libraries/drivers/drv_rtc.c @@ -8,12 +8,13 @@ * 2018-03-15 Liuguang the first version. * 2019-07-19 Magicoe The first version for LPC55S6x */ - + +#include +#include +#include #include "drv_rtc.h" - #include "fsl_common.h" #include "fsl_rtc.h" -#include #ifdef RT_USING_RTC @@ -37,7 +38,7 @@ static time_t get_timestamp(void) tm_new.tm_mon = rtcDate.month - 1; tm_new.tm_year = rtcDate.year - 1900; - return mktime(&tm_new); + return timegm(&tm_new); } static int set_timestamp(time_t timestamp) diff --git a/bsp/ls1cdev/drivers/drv_rtc.c b/bsp/ls1cdev/drivers/drv_rtc.c index 0569992c61..40153dc971 100644 --- a/bsp/ls1cdev/drivers/drv_rtc.c +++ b/bsp/ls1cdev/drivers/drv_rtc.c @@ -12,6 +12,7 @@ #include "board.h" #include "drv_rtc.h" #include +#include #include "../libraries/ls1c_regs.h" #include "../libraries/ls1c_rtc.h" @@ -44,7 +45,7 @@ static time_t get_timestamp(void) tm_new.tm_mon = rtcDate.Month- 1; tm_new.tm_year = rtcDate.Year + 2000 - 1900; - return mktime(&tm_new); + return timegm(&tm_new); } static int set_timestamp(time_t timestamp) diff --git a/bsp/ls2kdev/drivers/drv_rtc.c b/bsp/ls2kdev/drivers/drv_rtc.c index ef8dfcda82..06ae120f82 100644 --- a/bsp/ls2kdev/drivers/drv_rtc.c +++ b/bsp/ls2kdev/drivers/drv_rtc.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include "ls2k1000.h" #ifdef RT_USING_RTC @@ -137,29 +137,29 @@ static rt_err_t rt_rtc_ioctl(rt_device_t dev, int cmd, void *args) switch (cmd) { - case RT_DEVICE_CTRL_RTC_GET_TIME: - *t = mktime(&tmptime); - break; - case RT_DEVICE_CTRL_RTC_SET_TIME: - tmptime.tm_hour = time.tm_hour; - tmptime.tm_min = time.tm_min; - tmptime.tm_sec = time.tm_sec; + case RT_DEVICE_CTRL_RTC_GET_TIME: + *t = timegm(&tmptime); + break; + case RT_DEVICE_CTRL_RTC_SET_TIME: + tmptime.tm_hour = time.tm_hour; + tmptime.tm_min = time.tm_min; + tmptime.tm_sec = time.tm_sec; - tmptime.tm_year = time.tm_year; - tmptime.tm_mon = time.tm_mon; - tmptime.tm_mday = time.tm_mday; + tmptime.tm_year = time.tm_year; + tmptime.tm_mon = time.tm_mon; + tmptime.tm_mday = time.tm_mday; - rtctm = mkrtctime(&tmptime); - /* write to hw RTC */ - hw_rtc->sys_toywrite0 = rtctm.sys_toyread0; - hw_rtc->sys_toywrite1 = rtctm.sys_toyread1; - break; - case RT_DEVICE_CTRL_RTC_GET_ALARM: - break; - case RT_DEVICE_CTRL_RTC_SET_ALARM: - break; - default: - break; + rtctm = mkrtctime(&tmptime); + /* write to hw RTC */ + hw_rtc->sys_toywrite0 = rtctm.sys_toyread0; + hw_rtc->sys_toywrite1 = rtctm.sys_toyread1; + break; + case RT_DEVICE_CTRL_RTC_GET_ALARM: + break; + case RT_DEVICE_CTRL_RTC_SET_ALARM: + break; + default: + break; } return RT_EOK; diff --git a/bsp/nrf5x/libraries/drivers/drv_rtc.c b/bsp/nrf5x/libraries/drivers/drv_rtc.c index e7a7359523..ab65192395 100644 --- a/bsp/nrf5x/libraries/drivers/drv_rtc.c +++ b/bsp/nrf5x/libraries/drivers/drv_rtc.c @@ -11,7 +11,7 @@ #include "board.h" #include #include - +#include #include #include @@ -118,7 +118,7 @@ static rt_err_t rt_hw_rtc_register(rt_device_t device, const char *name, rt_uint RT_ASSERT(device != RT_NULL); - init_time = mktime(&time_new); + init_time = timegm(&time_new); if (rt_rtc_config(device) != RT_EOK) { return -RT_ERROR; diff --git a/bsp/nuvoton/libraries/m480/rtt_port/drv_rtc.c b/bsp/nuvoton/libraries/m480/rtt_port/drv_rtc.c index 804c0a0a0c..37459b6ad1 100644 --- a/bsp/nuvoton/libraries/m480/rtt_port/drv_rtc.c +++ b/bsp/nuvoton/libraries/m480/rtt_port/drv_rtc.c @@ -14,6 +14,7 @@ #if defined (BSP_USING_RTC) #include +#include #include /* Private define ---------------------------------------------------------------*/ @@ -183,8 +184,8 @@ static rt_err_t nu_rtc_is_date_valid(const time_t *const t) if (!initialised) { - t_upper = mktime((struct tm *)&tm_upper); - t_lower = mktime((struct tm *)&tm_lower); + t_upper = timegm((struct tm *)&tm_upper); + t_lower = timegm((struct tm *)&tm_lower); initialised = RT_TRUE; } @@ -225,7 +226,7 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args) tm_out.tm_hour = hw_time.u32Hour; tm_out.tm_min = hw_time.u32Minute; tm_out.tm_sec = hw_time.u32Second; - *time = mktime(&tm_out); + *time = timegm(&tm_out); break; case RT_DEVICE_CTRL_RTC_SET_TIME: diff --git a/bsp/nuvoton/libraries/nuc980/rtt_port/drv_rtc.c b/bsp/nuvoton/libraries/nuc980/rtt_port/drv_rtc.c index 98b3f1b228..49ad03e1b8 100644 --- a/bsp/nuvoton/libraries/nuc980/rtt_port/drv_rtc.c +++ b/bsp/nuvoton/libraries/nuc980/rtt_port/drv_rtc.c @@ -14,6 +14,7 @@ #if defined (BSP_USING_RTC) #include +#include #include #include @@ -184,8 +185,8 @@ static rt_err_t nu_rtc_is_date_valid(const time_t *const t) if (!initialised) { - t_upper = mktime((struct tm *)&tm_upper); - t_lower = mktime((struct tm *)&tm_lower); + t_upper = timegm((struct tm *)&tm_upper); + t_lower = timegm((struct tm *)&tm_lower); initialised = RT_TRUE; } @@ -226,7 +227,7 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args) tm_out.tm_hour = hw_time.u32Hour; tm_out.tm_min = hw_time.u32Minute; tm_out.tm_sec = hw_time.u32Second; - *time = mktime(&tm_out); + *time = timegm(&tm_out); break; case RT_DEVICE_CTRL_RTC_SET_TIME: diff --git a/bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c b/bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c index 8a33e2be64..f69788b318 100644 --- a/bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c +++ b/bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c @@ -8,12 +8,15 @@ * 2019-07-29 zdzn first version */ +#include +#include +#include #include "drv_rtc.h" #ifdef BSP_USING_RTC #define RTC_I2C_BUS_NAME "i2c0" -#define RTC_ADDR 0x68 +#define RTC_ADDR 0x68 static struct rt_device rtc_device; static struct rt_i2c_bus_device *i2c_bus = RT_NULL; @@ -185,7 +188,7 @@ static time_t raspi_get_timestamp(void) tm_new.tm_min = ((buf[1] & 0x7F) / 16 + 0x30) + (buf[1] & 0x7F) % 16+ 0x30; tm_new.tm_sec = ((buf[0] & 0x7F) / 16 + 0x30) + (buf[0] & 0x7F) % 16+ 0x30; - return mktime(&tm_new); + return timegm(&tm_new); } static int raspi_set_timestamp(time_t timestamp) diff --git a/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c b/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c index e38393bbd0..7383464513 100644 --- a/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c +++ b/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c @@ -8,7 +8,9 @@ * 2019-07-29 zdzn first version */ - +#include +#include +#include #include "drv_rtc.h" #ifdef BSP_USING_RTC @@ -33,7 +35,7 @@ static time_t raspi_get_timestamp(void) tm_new.tm_min = ((buf[1] & 0x7F) / 16 + 0x30) + (buf[1] & 0x7F) % 16+ 0x30; tm_new.tm_sec = ((buf[0] & 0x7F) / 16 + 0x30) + (buf[0] & 0x7F) % 16+ 0x30; - return mktime(&tm_new); + return timegm(&tm_new); } static int raspi_set_timestamp(time_t timestamp) diff --git a/bsp/swm320-lq100/drivers/drv_rtc.c b/bsp/swm320-lq100/drivers/drv_rtc.c index 51597ba73d..1ec7d02417 100644 --- a/bsp/swm320-lq100/drivers/drv_rtc.c +++ b/bsp/swm320-lq100/drivers/drv_rtc.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include /** * This function will get the weed day from a date. @@ -92,7 +92,7 @@ static rt_err_t swm320_rtc_control(rt_device_t dev, int cmd, void *args) time_temp.tm_mday = dateTime.Date; time_temp.tm_mon = dateTime.Month - 1; time_temp.tm_year = dateTime.Year - 1900; - *((time_t *)args) = mktime(&time_temp); + *((time_t *)args) = timegm(&time_temp); break; case RT_DEVICE_CTRL_RTC_SET_TIME: rt_enter_critical(); diff --git a/bsp/w60x/drivers/drv_rtc.c b/bsp/w60x/drivers/drv_rtc.c index fbf6060691..5fb87af355 100644 --- a/bsp/w60x/drivers/drv_rtc.c +++ b/bsp/w60x/drivers/drv_rtc.c @@ -11,7 +11,7 @@ #include #include -#include +#include #include "wm_regs.h" #include "wm_irq.h" #include "tls_common.h" @@ -42,7 +42,7 @@ static time_t wm_get_timestamp(void) tm_new.tm_min = (ctrl1 & 0x00003f00) >> 8; tm_new.tm_sec = ctrl1 & 0x0000003f; - return mktime(&tm_new); + return timegm(&tm_new); } static int wm_set_timestamp(time_t timestamp) diff --git a/components/dfs/filesystems/elmfat/dfs_elm.c b/components/dfs/filesystems/elmfat/dfs_elm.c index 82d04ae0cc..5f69b069bf 100644 --- a/components/dfs/filesystems/elmfat/dfs_elm.c +++ b/components/dfs/filesystems/elmfat/dfs_elm.c @@ -21,7 +21,7 @@ #include "ffconf.h" #include "ff.h" #include -#include +#include /* ELM FatFs provide a DIR struct */ #define HAVE_DIR_STRUCTURE @@ -800,7 +800,7 @@ int dfs_elm_stat(struct dfs_filesystem *fs, const char *path, struct stat *st) tm_file.tm_min = min; /* Minutes: 0-59 */ tm_file.tm_sec = sec; /* Seconds: 0-59 */ - st->st_mtime = mktime(&tm_file); + st->st_mtime = timegm(&tm_file); } /* get st_mtime. */ } diff --git a/components/drivers/rtc/alarm.c b/components/drivers/rtc/alarm.c index ea1b150e7a..d8e4e468a7 100644 --- a/components/drivers/rtc/alarm.c +++ b/components/drivers/rtc/alarm.c @@ -13,10 +13,7 @@ #include #include - -#ifndef _WIN32 #include -#endif #define RT_RTC_YEARS_MAX 137 #ifdef RT_USING_SOFT_RTC @@ -98,8 +95,8 @@ static void alarm_wakeup(struct rt_alarm *alarm, struct tm *now) { case RT_ALARM_ONESHOT: { - sec_alarm = mktime(&alarm->wktime); - sec_now = mktime(now); + sec_alarm = timegm(&alarm->wktime); + sec_now = timegm(now); if (((sec_now - sec_alarm) <= RT_ALARM_DELAY) && (sec_now >= sec_alarm)) { /* stop alarm */ diff --git a/components/drivers/rtc/soft_rtc.c b/components/drivers/rtc/soft_rtc.c index 6a04314675..240301f683 100644 --- a/components/drivers/rtc/soft_rtc.c +++ b/components/drivers/rtc/soft_rtc.c @@ -8,7 +8,7 @@ * 2018-01-30 armink the first version */ -#include +#include #include #include #include @@ -126,7 +126,7 @@ int rt_soft_rtc_init(void) #endif init_tick = rt_tick_get(); - init_time = mktime(&time_new); + init_time = timegm(&time_new); soft_rtc_dev.type = RT_Device_Class_RTC;