[libc][time] 修复数据类型报警
This commit is contained in:
parent
163c0597b8
commit
71f48266ff
|
@ -12,7 +12,8 @@
|
||||||
#define __SYS_TIME_H__
|
#define __SYS_TIME_H__
|
||||||
|
|
||||||
#include <rtconfig.h>
|
#include <rtconfig.h>
|
||||||
#include <rtdef.h>
|
#include <sys/types.h>
|
||||||
|
#include <stdint.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -32,22 +33,19 @@ extern "C" {
|
||||||
#define DST_TUR 9 /* Turkey */
|
#define DST_TUR 9 /* Turkey */
|
||||||
#define DST_AUSTALT 10 /* Australian style with shift in 1986 */
|
#define DST_AUSTALT 10 /* Australian style with shift in 1986 */
|
||||||
|
|
||||||
struct timezone {
|
struct timezone
|
||||||
int tz_minuteswest; /* minutes west of Greenwich */
|
{
|
||||||
int tz_dsttime; /* type of dst correction */
|
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,
|
* Structure returned by gettimeofday(2) system call,
|
||||||
* and used in other calls.
|
* and used in other calls.
|
||||||
*/
|
*/
|
||||||
#ifndef _TIMEVAL_DEFINED
|
#ifndef _TIMEVAL_DEFINED
|
||||||
#define _TIMEVAL_DEFINED
|
#define _TIMEVAL_DEFINED
|
||||||
#if !(defined(_WIN32))
|
#if !defined(_WIN32)
|
||||||
struct timeval
|
struct timeval
|
||||||
{
|
{
|
||||||
time_t tv_sec; /* seconds */
|
time_t tv_sec; /* seconds */
|
||||||
|
@ -56,6 +54,16 @@ struct timeval
|
||||||
#endif
|
#endif
|
||||||
#endif /* _TIMEVAL_DEFINED */
|
#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);
|
int stime(const time_t *t);
|
||||||
time_t timegm(struct tm * const t);
|
time_t timegm(struct tm * const t);
|
||||||
int gettimeofday(struct timeval *tv, struct timezone *tz);
|
int gettimeofday(struct timeval *tv, struct timezone *tz);
|
||||||
|
@ -65,15 +73,6 @@ struct tm *gmtime_r(const time_t *timep, struct tm *r);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RT_USING_POSIX
|
#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 */
|
/* POSIX clock and timer */
|
||||||
#define MILLISECOND_PER_SECOND 1000UL
|
#define MILLISECOND_PER_SECOND 1000UL
|
||||||
#define MICROSECOND_PER_SECOND 1000000UL
|
#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);
|
int rt_timespec_to_tick(const struct timespec *time);
|
||||||
#endif /* RT_USING_POSIX */
|
#endif /* RT_USING_POSIX */
|
||||||
|
|
||||||
|
void tz_set(int8_t tz);
|
||||||
|
int8_t tz_get(void);
|
||||||
|
int8_t tz_is_dst(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -199,7 +199,7 @@ struct tm *gmtime_r(const time_t *timep, struct tm *r)
|
||||||
r->tm_mon = i;
|
r->tm_mon = i;
|
||||||
r->tm_mday += work - __spm[i];
|
r->tm_mday += work - __spm[i];
|
||||||
|
|
||||||
r->tm_isdst = rt_tz_is_dst();
|
r->tm_isdst = tz_is_dst();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
RTM_EXPORT(gmtime_r);
|
RTM_EXPORT(gmtime_r);
|
||||||
|
@ -215,7 +215,7 @@ struct tm* localtime_r(const time_t* t, struct tm* r)
|
||||||
{
|
{
|
||||||
time_t local_tz;
|
time_t local_tz;
|
||||||
|
|
||||||
local_tz = *t + rt_tz_get() * 3600;
|
local_tz = *t + tz_get() * 3600;
|
||||||
return gmtime_r(&local_tz, r);
|
return gmtime_r(&local_tz, r);
|
||||||
}
|
}
|
||||||
RTM_EXPORT(localtime_r);
|
RTM_EXPORT(localtime_r);
|
||||||
|
@ -232,7 +232,7 @@ time_t mktime(struct tm * const t)
|
||||||
time_t timestamp;
|
time_t timestamp;
|
||||||
|
|
||||||
timestamp = timegm(t);
|
timestamp = timegm(t);
|
||||||
timestamp = timestamp - 3600 * rt_tz_get();
|
timestamp = timestamp - 3600 * tz_get();
|
||||||
return timestamp;
|
return timestamp;
|
||||||
}
|
}
|
||||||
RTM_EXPORT(mktime);
|
RTM_EXPORT(mktime);
|
||||||
|
@ -423,7 +423,7 @@ int gettimeofday(struct timeval *tv, struct timezone *tz)
|
||||||
if(tz != RT_NULL)
|
if(tz != RT_NULL)
|
||||||
{
|
{
|
||||||
tz->tz_dsttime = DST_NONE;
|
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)
|
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.
|
* Thus, the following is purely of historic interest.
|
||||||
*/
|
*/
|
||||||
if (tv != RT_NULL
|
if (tv != RT_NULL
|
||||||
&& tv->tv_sec >= 0
|
|
||||||
&& tv->tv_usec >= 0
|
&& tv->tv_usec >= 0
|
||||||
&& set_timeval((struct timeval *)tv) == RT_EOK)
|
&& set_timeval((struct timeval *)tv) == RT_EOK)
|
||||||
{
|
{
|
||||||
|
@ -676,22 +675,22 @@ RTM_EXPORT(rt_timespec_to_tick);
|
||||||
#define RT_LIBC_DEFAULT_TIMEZONE 8
|
#define RT_LIBC_DEFAULT_TIMEZONE 8
|
||||||
#endif
|
#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;
|
register rt_base_t level;
|
||||||
level = rt_hw_interrupt_disable();
|
level = rt_hw_interrupt_disable();
|
||||||
rt_current_timezone = tz;
|
_current_timezone = tz;
|
||||||
rt_hw_interrupt_enable(level);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue