码迷,mamicode.com
首页 > 其他好文 > 详细

SylixOS时间变换介绍

时间:2018-01-19 14:12:40      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:表示   方法   技术   区别   out   ==   根据   超时   转换   

[TOC]

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为例,分析其具体计算流程如下图所示。
技术分享图片

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

SylixOS时间变换介绍

标签:表示   方法   技术   区别   out   ==   根据   超时   转换   

原文地址:http://blog.51cto.com/11178899/2062793

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!