SylixOS时间变换介绍

1、概述

SylixOS中提供了时间变换相关接口,主要用于计算两个时间点之差以及根据入参时间timespec计算超时时间。

2、接口介绍

2.1 计算两个时间点之差

SylixOS中用于计算两个时间点之差的接口函数原型如下:

ULONG  __timespecToTickDiff (const struct timespec  *ptvS,
 							  const struct timespec  *ptvE);
INT64  __timespecToTickDiff64 (const struct timespec  *ptvS,
 							    const struct timespec  *ptvE);

函数原型分析:

 - 函数返回两个时间点之差,并转换为tick数;

 - 参数ptvS是开始时间;

 - 参数ptvE是结束时间。

以上两个函数接口入参定义相同,唯一的区别是返回值分别是32位和64位数值。 ##2.2 根据timespec计算超时时间 SylixOS中用于计算超时时间的接口函数原型如下:

ULONG  __timespecTimeoutTick (BOOL  bRel, const struct timespec  *ptv);
INT64  __timespecTimeoutTick64 (BOOL  bRel, const struct timespec  *ptv);

函数原型分析:

 - 函数返回超时时间(用tick数表示);

 - 参数bRel是判断相对时间还是绝对时间;

 - 若计算相对超时时间,参数ptv是当前时间与结束时间的间隔,需根据当前时间计算结束时间点;若计算绝对超时时间,则参数ptv即为结束时间点。

以上两个函数接口入参定义相同,唯一的区别是返回值分别是32位和64位数值。

3、 超时时间计算流程

根据上一章节可以看出计算超时时间分为相对时间和绝对时间,两者计算方法不同。现以__timespecTimeoutTick为例,分析其具体计算流程如下图所示。 这里写图片描述

由上图可以看出,当计算相对超时时间时,需根据入参时间计算结束时间,再根据结束时间和当前时间的差值计算超时时间;当计算绝对超时时间时,入参即为结束时间,可直接计算超时时间并返回。

转载于:https://my.oschina.net/u/3248430/blog/1609582

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值