Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
fda27673
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
11 个月 前同步成功
通知
8
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fda27673
编写于
8月 03, 2016
作者:
R
Richard Levitte
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
VSI submisson: make better use of item lists in o_time.c
Reviewed-by:
N
Rich Salz
<
rsalz@openssl.org
>
上级
262ee9a2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
55 addition
and
18 deletion
+55
-18
crypto/o_time.c
crypto/o_time.c
+55
-18
未找到文件。
crypto/o_time.c
100644 → 100755
浏览文件 @
fda27673
...
...
@@ -24,7 +24,28 @@
# include <descrip.h>
# include <stdlib.h>
# endif
/* ndef VMS_GMTIME_OK */
#endif
/*
* Needed to pick up the correct definitions and declarations in some of the
* DEC C Header Files (*.H).
*/
# define __NEW_STARLET 1
# if (defined(__alpha) || defined(__ia64))
# include <iledef.h>
# else
/* VAX */
typedef
struct
_ile3
{
/* Copied from ILEDEF.H for Alpha */
# pragma __nomember_alignment
unsigned
short
int
ile3
$
w_length
;
/* Length of buffer in bytes */
unsigned
short
int
ile3
$
w_code
;
/* Item code value */
void
*
ile3
$
ps_bufaddr
;
/* Buffer address */
unsigned
short
int
*
ile3
$
ps_retlen_addr
;
/* Address of word for returned length */
}
ILE3
;
# endif
/* alpha || ia64 */
#endif
/* OPENSSL_SYS_VMS */
struct
tm
*
OPENSSL_gmtime
(
const
time_t
*
timer
,
struct
tm
*
result
)
{
...
...
@@ -51,26 +72,42 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
static
$
DESCRIPTOR
(
lognam
,
"SYS$TIMEZONE_DIFFERENTIAL"
);
char
logvalue
[
256
];
unsigned
int
reslen
=
0
;
struct
{
short
buflen
;
short
code
;
void
*
bufaddr
;
unsigned
int
*
reslen
;
}
itemlist
[]
=
{
{
0
,
LNM
$
_STRING
,
0
,
0
},
{
0
,
0
,
0
,
0
},
};
# if __INITIAL_POINTER_SIZE == 64
ILEB_64
itemlist
[
2
],
*
pitem
;
# else
ILE3
itemlist
[
2
],
*
pitem
;
# endif
int
status
;
time_t
t
;
/*
* Setup an itemlist for the call to $TRNLNM - Translate Logical Name.
*/
pitem
=
itemlist
;
# if __INITIAL_POINTER_SIZE == 64
pitem
->
ileb_64
$
w_mbo
=
1
;
pitem
->
ileb_64
$
w_code
=
LNM
$
_STRING
;
pitem
->
ileb_64
$
l_mbmo
=
-
1
;
pitem
->
ileb_64
$
q_length
=
sizeof
(
logvalue
);
pitem
->
ileb_64
$
pq_bufaddr
=
logvalue
;
pitem
->
ileb_64
$
pq_retlen_addr
=
(
unsigned
__int64
*
)
&
reslen
;
pitem
++
;
/* Last item of the item list is null terminated */
pitem
->
ileb_64
$
q_length
=
pitem
->
ileb_64
$
w_code
=
0
;
# else
pitem
->
ile3
$
w_length
=
sizeof
(
logvalue
);
pitem
->
ile3
$
w_code
=
LNM
$
_STRING
;
pitem
->
ile3
$
ps_bufaddr
=
logvalue
;
pitem
->
ile3
$
ps_retlen_addr
=
(
unsigned
short
int
*
)
&
reslen
;
pitem
++
;
/* Last item of the item list is null terminated */
pitem
->
ile3
$
w_length
=
pitem
->
ile3
$
w_code
=
0
;
# endif
/* Get the value for SYS$TIMEZONE_DIFFERENTIAL */
itemlist
[
0
].
buflen
=
sizeof
(
logvalue
);
itemlist
[
0
].
bufaddr
=
logvalue
;
itemlist
[
0
].
reslen
=
&
reslen
;
status
=
sys
$
trnlnm
(
0
,
&
tabnam
,
&
lognam
,
0
,
itemlist
);
if
(
!
(
status
&
1
))
return
NULL
;
...
...
@@ -78,7 +115,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
t
=
*
timer
;
/* The following is extracted from the DEC C header time.h */
/* The following is extracted from the DEC C header time.h */
/*
** Beginning in OpenVMS Version 7.0 mktime, time, ctime, strftime
** have two implementations. One implementation is provided
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录