Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
rt-thread
提交
125195c8
R
rt-thread
项目概览
BaiXuePrincess
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
未验证
提交
125195c8
编写于
10月 27, 2018
作者:
B
Bernard Xiong
提交者:
GitHub
10月 27, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1925 from qgyhd1234/gmtime_r
[kernel][kservice] add rt_gmtime_r api
上级
5d9a27d1
920d6ece
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
102 addition
and
0 deletion
+102
-0
components/libc/compilers/armlibc/sys/time.h
components/libc/compilers/armlibc/sys/time.h
+1
-0
components/libc/compilers/common/SConscript
components/libc/compilers/common/SConscript
+12
-0
components/libc/compilers/common/gmtime_r.c
components/libc/compilers/common/gmtime_r.c
+88
-0
components/libc/compilers/dlib/sys/time.h
components/libc/compilers/dlib/sys/time.h
+1
-0
未找到文件。
components/libc/compilers/armlibc/sys/time.h
浏览文件 @
125195c8
...
...
@@ -45,6 +45,7 @@ struct timezone {
};
int
gettimeofday
(
struct
timeval
*
tp
,
void
*
ignore
);
struct
tm
*
gmtime_r
(
const
time_t
*
timep
,
struct
tm
*
r
);
#ifdef __cplusplus
}
...
...
components/libc/compilers/common/SConscript
0 → 100644
浏览文件 @
125195c8
from
building
import
*
Import
(
'rtconfig'
)
src
=
Glob
(
'*.c'
)
cwd
=
GetCurrentDir
()
group
=
[]
CPPPATH
=
[
cwd
]
group
=
DefineGroup
(
'libc'
,
src
,
depend
=
[
'RT_USING_LIBC'
],
CPPPATH
=
CPPPATH
)
Return
(
'group'
)
components/libc/compilers/common/gmtime_r.c
0 → 100644
浏览文件 @
125195c8
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2018-10-26 zylx first version
*/
#if defined(__CC_ARM) || defined(__CLANG_ARM) || defined (__IAR_SYSTEMS_ICC__)
#include <sys/time.h>
/* seconds per day */
#define SPD 24*60*60
/* days per month -- nonleap! */
const
short
__spm
[
13
]
=
{
0
,
(
31
),
(
31
+
28
),
(
31
+
28
+
31
),
(
31
+
28
+
31
+
30
),
(
31
+
28
+
31
+
30
+
31
),
(
31
+
28
+
31
+
30
+
31
+
30
),
(
31
+
28
+
31
+
30
+
31
+
30
+
31
),
(
31
+
28
+
31
+
30
+
31
+
30
+
31
+
31
),
(
31
+
28
+
31
+
30
+
31
+
30
+
31
+
31
+
30
),
(
31
+
28
+
31
+
30
+
31
+
30
+
31
+
31
+
30
+
31
),
(
31
+
28
+
31
+
30
+
31
+
30
+
31
+
31
+
30
+
31
+
30
),
(
31
+
28
+
31
+
30
+
31
+
30
+
31
+
31
+
30
+
31
+
30
+
31
),
};
int
__isleap
(
int
year
)
{
/* every fourth year is a leap year except for century years that are
* not divisible by 400. */
/* return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); */
return
(
!
(
year
%
4
)
&&
((
year
%
100
)
||
!
(
year
%
400
)));
}
/**
* This function will convert Time (Restartable)
*
* @param timep the timestamp
* @param the structure to stores information
*
* @return the structure to stores information
*
*/
struct
tm
*
gmtime_r
(
const
time_t
*
timep
,
struct
tm
*
r
)
{
time_t
i
;
register
time_t
work
=
*
timep
%
(
SPD
);
r
->
tm_sec
=
work
%
60
;
work
/=
60
;
r
->
tm_min
=
work
%
60
;
r
->
tm_hour
=
work
/
60
;
work
=
*
timep
/
(
SPD
);
r
->
tm_wday
=
(
4
+
work
)
%
7
;
for
(
i
=
1970
;;
++
i
)
{
register
time_t
k
=
__isleap
(
i
)
?
366
:
365
;
if
(
work
>=
k
)
work
-=
k
;
else
break
;
}
r
->
tm_year
=
i
-
1900
;
r
->
tm_yday
=
work
;
r
->
tm_mday
=
1
;
if
(
__isleap
(
i
)
&&
(
work
>
58
))
{
if
(
work
==
59
)
r
->
tm_mday
=
2
;
/* 29.2. */
work
-=
1
;
}
for
(
i
=
11
;
i
&&
(
__spm
[
i
]
>
work
);
--
i
)
;
r
->
tm_mon
=
i
;
r
->
tm_mday
+=
work
-
__spm
[
i
];
return
r
;
}
#endif
/* end of __CC_ARM or __CLANG_ARM or __IAR_SYSTEMS_ICC__ */
components/libc/compilers/dlib/sys/time.h
浏览文件 @
125195c8
...
...
@@ -52,6 +52,7 @@ struct timezone {
};
int
gettimeofday
(
struct
timeval
*
tp
,
void
*
ignore
);
struct
tm
*
gmtime_r
(
const
time_t
*
timep
,
struct
tm
*
r
);
#ifdef __cplusplus
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录