diff --git a/components/libc/compilers/common/sys/time.h b/components/libc/compilers/common/sys/time.h index ecf6e85ac6f3ed531f55e2b6b8a3f9e0ac73351f..d14905ebfba6ee088b54f950814c6e89a3257860 100644 --- a/components/libc/compilers/common/sys/time.h +++ b/components/libc/compilers/common/sys/time.h @@ -12,7 +12,8 @@ #define __SYS_TIME_H__ #include -#include +#include +#include #include #ifdef __cplusplus @@ -32,22 +33,19 @@ extern "C" { #define DST_TUR 9 /* Turkey */ #define DST_AUSTALT 10 /* Australian style with shift in 1986 */ -struct timezone { - int tz_minuteswest; /* minutes west of Greenwich */ - int tz_dsttime; /* type of dst correction */ +struct timezone +{ + int tz_minuteswest; /* minutes west of Greenwich */ + int tz_dsttime; /* type of dst correction */ }; -void rt_tz_set(rt_int8_t tz); -rt_int8_t rt_tz_get(void); -rt_int8_t rt_tz_is_dst(void); - /* * Structure returned by gettimeofday(2) system call, * and used in other calls. */ #ifndef _TIMEVAL_DEFINED #define _TIMEVAL_DEFINED -#if !(defined(_WIN32)) +#if !defined(_WIN32) struct timeval { time_t tv_sec; /* seconds */ @@ -56,6 +54,16 @@ struct timeval #endif #endif /* _TIMEVAL_DEFINED */ +#if !(defined(__GNUC__) && !defined(__ARMCC_VERSION)/*GCC*/) && \ + !(defined(__ICCARM__) && (__VER__ >= 8010001)) && \ + !defined(_WIN32) +struct timespec +{ + time_t tv_sec; /* seconds */ + long tv_nsec; /* and nanoseconds */ +}; +#endif + int stime(const time_t *t); time_t timegm(struct tm * const t); int gettimeofday(struct timeval *tv, struct timezone *tz); @@ -65,15 +73,6 @@ struct tm *gmtime_r(const time_t *timep, struct tm *r); #endif #ifdef RT_USING_POSIX -#include - -#if !(defined(__GNUC__) && !defined(__ARMCC_VERSION)/*GCC*/) && !(defined(__ICCARM__) && (__VER__ >= 8010001)) && !defined(_WIN32) -struct timespec { - time_t tv_sec; /* seconds */ - long tv_nsec; /* and nanoseconds */ -}; -#endif - /* POSIX clock and timer */ #define MILLISECOND_PER_SECOND 1000UL #define MICROSECOND_PER_SECOND 1000000UL @@ -106,6 +105,10 @@ int clock_settime (clockid_t clockid, const struct timespec *tp); int rt_timespec_to_tick(const struct timespec *time); #endif /* RT_USING_POSIX */ +void tz_set(int8_t tz); +int8_t tz_get(void); +int8_t tz_is_dst(void); + #ifdef __cplusplus } #endif diff --git a/components/libc/compilers/common/time.c b/components/libc/compilers/common/time.c index 50f6d4c71e9adb702cb39b144576f284df05161b..7aa8d9300bf9158669728c5d250602d2c66a7275 100644 --- a/components/libc/compilers/common/time.c +++ b/components/libc/compilers/common/time.c @@ -199,7 +199,7 @@ struct tm *gmtime_r(const time_t *timep, struct tm *r) r->tm_mon = i; r->tm_mday += work - __spm[i]; - r->tm_isdst = rt_tz_is_dst(); + r->tm_isdst = tz_is_dst(); return r; } RTM_EXPORT(gmtime_r); @@ -215,7 +215,7 @@ struct tm* localtime_r(const time_t* t, struct tm* r) { time_t local_tz; - local_tz = *t + rt_tz_get() * 3600; + local_tz = *t + tz_get() * 3600; return gmtime_r(&local_tz, r); } RTM_EXPORT(localtime_r); @@ -232,7 +232,7 @@ time_t mktime(struct tm * const t) time_t timestamp; timestamp = timegm(t); - timestamp = timestamp - 3600 * rt_tz_get(); + timestamp = timestamp - 3600 * tz_get(); return timestamp; } RTM_EXPORT(mktime); @@ -423,7 +423,7 @@ int gettimeofday(struct timeval *tv, struct timezone *tz) if(tz != RT_NULL) { tz->tz_dsttime = DST_NONE; - tz->tz_minuteswest = -(rt_tz_get() * 60); + tz->tz_minuteswest = -(tz_get() * 60); } if (tv != RT_NULL && get_timeval(tv) == RT_EOK) @@ -446,7 +446,6 @@ int settimeofday(const struct timeval *tv, const struct timezone *tz) * Thus, the following is purely of historic interest. */ if (tv != RT_NULL - && tv->tv_sec >= 0 && tv->tv_usec >= 0 && set_timeval((struct timeval *)tv) == RT_EOK) { @@ -676,22 +675,22 @@ RTM_EXPORT(rt_timespec_to_tick); #define RT_LIBC_DEFAULT_TIMEZONE 8 #endif -static volatile rt_int8_t rt_current_timezone = RT_LIBC_DEFAULT_TIMEZONE; +static volatile int8_t _current_timezone = RT_LIBC_DEFAULT_TIMEZONE; -void rt_tz_set(rt_int8_t tz) +void tz_set(int8_t tz) { register rt_base_t level; level = rt_hw_interrupt_disable(); - rt_current_timezone = tz; + _current_timezone = tz; rt_hw_interrupt_enable(level); } -rt_int8_t rt_tz_get(void) +int8_t tz_get(void) { - return rt_current_timezone; + return _current_timezone; } -rt_int8_t rt_tz_is_dst(void) +int8_t tz_is_dst(void) { return 0; }