WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
oal_time.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2019-2019. All rights reserved.
3 * Description: oal_time.h 的头文件
4 * Create: 2019-12-01
5 */
6
7#ifndef __OAL_TIME_H__
8#define __OAL_TIME_H__
9
10/*****************************************************************************
11 1 其他头文件包含
12*****************************************************************************/
13#include "oal_types.h"
14#include "oal_timer.h"
15
16#ifdef __cplusplus
17#if __cplusplus
18extern "C" {
19#endif
20#endif
21
22/*****************************************************************************
23 2 宏定义
24*****************************************************************************/
25
26/* 获取毫秒级时间戳 */
27#define oal_time_get_stamp_ms() oal_get_ms()
28
29#define OAL_TIME_JIFFY osal_adapt_get_jiffies()
30#define oal_msecs_to_jiffies(_msecs) osal_msecs_to_jiffies(_msecs)
31#define oal_jiffies_to_msecs(_jiffies) osal_adapt_jiffies_to_msecs(_jiffies)
32
33/*****************************************************************************
34 3 枚举定义
35*****************************************************************************/
36/*****************************************************************************
37 4 全局变量声明
38*****************************************************************************/
39/*****************************************************************************
40 5 消息头定义
41*****************************************************************************/
42/*****************************************************************************
43 6 消息定义
44*****************************************************************************/
45/*****************************************************************************
46 7 STRUCT定义
47*****************************************************************************/
48typedef struct {
49 osal_slong i_sec;
50 osal_slong i_usec;
52
53// 与内核struct rtc_time 保持一致
54typedef struct _oal_time_stru {
55 osal_s32 tm_sec; /* seconds */
56 osal_s32 tm_min; /* minutes */
57 osal_s32 tm_hour; /* hours */
58 osal_s32 tm_mday; /* day of the month */
59 osal_s32 tm_mon; /* month */
60 osal_s32 tm_year; /* year */
61 osal_s32 tm_wday; /* day of the week */
62 osal_s32 tm_yday; /* day in the year */
63 osal_s32 tm_isdst; /* daylight saving time */
65
66/*****************************************************************************
67 8 UNION定义
68*****************************************************************************/
69/*****************************************************************************
70 9 OTHERS定义
71*****************************************************************************/
72/*****************************************************************************
73 10 函数声明
74*****************************************************************************/
75/*****************************************************************************
76 功能描述 : 获取微妙精度级的时间戳
77 输入参数 : usec: 时间结构体指针
78*****************************************************************************/
80{
81 osal_timeval tv;
83 return (osal_u32)tv.tv_sec;
84}
85
86static inline osal_u64 oal_get_ms(osal_void)
87{
88 osal_timeval tv;
90 /* ms 单位1000 */
91 return (osal_u64)(tv.tv_sec * 1000 + tv.tv_usec / 1000);
92}
93
94static inline osal_u64 oal_get_us(oal_time_us_stru *usec)
95{
96 osal_timeval tv;
98 usec->i_sec = tv.tv_sec;
99 usec->i_usec = tv.tv_usec;
100 /* us 单位1000000 */
101 return (osal_u64)(tv.tv_sec * 1000000 + tv.tv_usec);
102}
103
104/*****************************************************************************
105 功能描述 : 判断时间戳time_a是否在time_b之后:
106 输入参数 : hi_u64 time
107 返 回 值 : Return: 1 time_a在time_b之后; 否则 Return: 0
108*****************************************************************************/
109static inline td_u32 oal_time_after(osal_u64 time_a, osal_u64 time_b)
110{
111 return (td_u32)((osal_s64)((osal_s64)(time_b) - (osal_s64)(time_a)) < 0);
112}
113
114/*****************************************************************************
115 功能描述 : 判断ul_time是否比当前时间早
116 若早,表示超时时间已过;若不早,表明还未超时
117*****************************************************************************/
118static inline td_u32 oal_time_is_before(osal_u64 time)
119{
120 return oal_time_after(OAL_TIME_JIFFY, time);
121}
122
123static inline td_u32 oal_time_before(td_u32 time_a, td_u32 time_b)
124{
125 return (td_u32)((osal_s64)((osal_s64)(time_a) - (osal_s64)(time_b)) < 0);
126}
127
128static inline td_void oal_get_real_time(oal_time_stru* pst_tm)
129{
130 unref_param(pst_tm);
131 return;
132}
133
134#ifdef __cplusplus
135#if __cplusplus
136}
137#endif
138#endif
139
140#endif /* end of oal_time.h */
141
#define unref_param(P)
Definition dmac_misc_type.h:33
void osal_gettimeofday(osal_timeval *tv)
Obtaining the Current System Kernel Time.
Definition osal_timer.c:197
OAL_STATIC OAL_INLINE osal_u64 oal_get_us(oal_time_us_stru *usec)
Definition oal_time.h:94
OAL_STATIC OAL_INLINE osal_u32 oal_get_seconds(osal_void)
Definition oal_time.h:79
OAL_STATIC OAL_INLINE osal_u32 oal_time_is_before(osal_ulong time)
Definition oal_time.h:137
struct _oal_time_stru oal_time_stru
#define oal_get_real_time(_pst_tm)
Definition oal_time.h:40
OAL_STATIC OAL_INLINE osal_u32 oal_time_after(osal_ulong time_a, osal_ulong time_b)
Definition oal_time.h:127
OAL_STATIC OAL_INLINE osal_u64 oal_get_ms(osal_void)
Definition oal_time.h:86
#define OAL_TIME_JIFFY
Definition oal_time.h:29
int osal_s32
Definition osal_types.h:19
long osal_slong
Definition osal_types.h:21
unsigned long long osal_u64
Definition osal_types.h:14
long long osal_s64
Definition osal_types.h:20
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
Definition oal_time.h:46
osal_s32 tm_isdst
Definition oal_time.h:55
osal_s32 tm_hour
Definition oal_time.h:49
osal_s32 tm_sec
Definition oal_time.h:47
osal_s32 tm_yday
Definition oal_time.h:54
osal_s32 tm_min
Definition oal_time.h:48
osal_s32 tm_mon
Definition oal_time.h:51
osal_s32 tm_year
Definition oal_time.h:52
osal_s32 tm_wday
Definition oal_time.h:53
osal_s32 tm_mday
Definition oal_time.h:50
Definition oal_time.h:58
osal_slong i_usec
Definition oal_time.h:60
osal_slong i_sec
Definition oal_time.h:59
Definition osal_timer.h:25
long tv_sec
Definition osal_timer.h:26
long tv_usec
Definition osal_timer.h:27
void td_void
Definition td_type.h:49
unsigned int td_u32
Definition td_type.h:38