[libc][time] 修复数据类型报警
This commit is contained in:
parent
163c0597b8
commit
71f48266ff
|
@ -12,7 +12,8 @@
|
|||
#define __SYS_TIME_H__
|
||||
|
||||
#include <rtconfig.h>
|
||||
#include <rtdef.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
#include <time.h>
|
||||
|
||||
#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 <sys/types.h>
|
||||
|
||||
#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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue