WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
oal_time.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2022. All rights reserved.
3 * Description: time adpt head file.
4 */
5
6#ifndef __OAL_TIME_H__
7#define __OAL_TIME_H__
8
9/*****************************************************************************
10 1 其他头文件包含
11*****************************************************************************/
12#include <linux/jiffies.h>
13#include <linux/time.h>
14#include <linux/ktime.h>
15#include <linux/rtc.h>
16#include "oal_util.h"
17#include "oal_mm.h"
18
19#ifdef __cplusplus
20#if __cplusplus
21extern "C" {
22#endif
23#endif
24
25/*****************************************************************************
26 2 宏定义
27*****************************************************************************/
28
29/* 获取毫秒级时间戳 */
30#define oal_time_get_stamp_ms() osal_jiffies_to_msecs(osal_get_jiffies())
31
32#define OAL_TIME_JIFFY osal_get_jiffies()
33
34#define OAL_TIME_HZ HZ
35
36#define oal_msecs_to_jiffies(_msecs) osal_msecs_to_jiffies(_msecs)
37
38#define oal_jiffies_to_msecs(_jiffies) osal_jiffies_to_msecs(_jiffies)
39
40#define oal_get_real_time(_pst_tm) oal_get_real_time(_pst_tm)
41
42/*****************************************************************************
43 STRUCT定义
44*****************************************************************************/
45/* 与内核struct rtc_time 保持一致 */
46typedef struct _oal_time_stru {
47 osal_s32 tm_sec; /* seconds */
48 osal_s32 tm_min; /* minutes */
49 osal_s32 tm_hour; /* hours */
50 osal_s32 tm_mday; /* day of the month */
51 osal_s32 tm_mon; /* month */
52 osal_s32 tm_year; /* year */
53 osal_s32 tm_wday; /* day of the week */
54 osal_s32 tm_yday; /* day in the year */
55 osal_s32 tm_isdst; /* daylight saving time */
57
62
63typedef ktime_t oal_time_t_stru;
64/*****************************************************************************
65 函数声明
66*****************************************************************************/
67/*****************************************************************************
68 功能描述 : 获取微妙精度级的时间戳
69 输入参数 : usec: 时间结构体指针
70*****************************************************************************/
78
85
87{
88 osal_timeval tv;
90 /* ms 单位1000 */
91 return tv.tv_sec * 1000 + tv.tv_usec / 1000;
92}
93
95{
96 osal_timeval tv;
98 usec->i_sec = tv.tv_sec;
99 usec->i_usec = tv.tv_usec;
100 /* us 单位1000000 */
101 return (tv.tv_sec * 1000000 + tv.tv_usec);
102}
103
104/*****************************************************************************
105 功能描述 : 调用内核函数获取当前时间戳
106 输入参数 : osal_void
107*****************************************************************************/
112
113/*****************************************************************************
114 功能描述 : 调用内核函数获取时间差值
115 输入参数 : const oal_time_t_stru lhs,
116 const oal_time_t_stru rhs
117*****************************************************************************/
119{
120 return ktime_sub(lhs, rhs);
121}
122
123/*****************************************************************************
124 功能描述 : 判断时间戳ul_time_a是否在ul_time_b之后:
125 输入参数 : osal_ulong time
126*****************************************************************************/
128{
129 return (osal_u32)time_after(time_a, time_b);
130}
131
132/*****************************************************************************
133 功能描述 : 判断ul_time是否比当前时间早
134 若早,表示超时时间已过;若不早,表明还未超时
135 输入参数 : osal_ulong time
136*****************************************************************************/
138{
139 return (osal_u32)time_is_before_jiffies(time);
140}
141
142OAL_INLINE static char* oal_get_current_task_name(osal_void)
143{
144 return current->comm;
145}
146
147#ifdef __cplusplus
148#if __cplusplus
149}
150#endif
151#endif
152
153#endif /* end of oal_time.h */
154
#define OAL_INLINE
Definition driver_soc_common.h:47
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_void oal_time_get_stamp_us(oal_time_us_stru *usec)
Definition oal_time.h:71
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
OAL_STATIC OAL_INLINE oal_time_t_stru oal_ktime_sub(const oal_time_t_stru lhs, const oal_time_t_stru rhs)
Definition oal_time.h:118
struct _oal_time_stru oal_time_stru
OAL_STATIC OAL_INLINE oal_time_t_stru oal_ktime_get(osal_void)
Definition oal_time.h:108
OAL_STATIC OAL_INLINE osal_u32 oal_time_after(osal_ulong time_a, osal_ulong time_b)
Definition oal_time.h:127
ktime_t oal_time_t_stru
Definition oal_time.h:63
OAL_STATIC OAL_INLINE osal_u64 oal_get_ms(osal_void)
Definition oal_time.h:86
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
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned long osal_ulong
Definition osal_types.h:15
#define OAL_STATIC
Definition soc_wifi_service_api.c:30
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