WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
frw_util.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2021-2021. All rights reserved.
3 * Description: oal util interface
4 * Author:
5 * Create: 2021-08-06
6 */
7#ifndef __FRW_UTIL_H__
8#define __FRW_UTIL_H__
9
10#include "oal_plat_type.h"
11#include "osal_adapt.h"
12#include "securec.h"
13#include "frw_util_common.h"
14
15#undef osal_max
16#define osal_max(a, b) (((a) > (b)) ? (a) : (b))
17
18#undef osal_min
19#define osal_min(a, b) (((a) < (b)) ? (a) : (b))
20
21#define EXT_TIME_US_MAX_LEN_U64 (0xFFFFFFFFFFFFFFFF)
22
23#define frw_debug(fmt, arg...) wifi_printf("[FRW] "fmt, ##arg)
24
25static INLINE__ osal_u64 osal_get_timeofday_us(osal_void)
26{
27 osal_timeval tv;
29 return (((osal_u64)tv.tv_sec) * 1000000 + tv.tv_usec);
30}
31
32/* 获取毫秒级时间戳 */
33static INLINE__ osal_u64 osal_get_time_stamp_ms(osal_void)
34{
35 return (osal_get_timeofday_us() >> 10); /* 用1024换算ms */
36}
37
38/* 获取31.25微秒级时间戳 */
39static INLINE__ osal_u64 osal_get_time_stamp_ts(osal_void)
40{
41 return osal_get_timeofday_us();
42}
43
44static INLINE__ osal_u64 osal_get_runtime_u64(osal_u64 _start, osal_u64 _end)
45{
46 return ((_start > _end) ? (EXT_TIME_US_MAX_LEN_U64 - _start + _end + 1) : (_end - _start));
47}
48
49/* 需要osal层统一提供mb()函数 */
50static INLINE__ void osal_bus_idle(void)
51{
52#ifndef LOSCFG_PLATFORM_BSP_RISCV_PLIC
53#ifndef BUILD_UT
54 __asm ("dsb\n");
55#endif
56#endif
57}
58
59static INLINE__ osal_u32 osal_get_trng_bytes(osal_u8 *data, osal_u32 size)
60{
61 osal_u32 ret = 0;
62#if defined(_PRE_OS_VERSION) && defined(_PRE_OS_VERSION_LITEOS) && (_PRE_OS_VERSION == _PRE_OS_VERSION_LITEOS)
63#if !defined(_PRE_WLAN_FEATURE_WS73) || defined(_PRE_LITEOS_SDK_) // 等待CFBB适配
64 // not implemented
65#else
67#endif
68#endif
70 unref_param(size);
71 return ret;
72}
73#endif /* end of frw_util.h */
#define unref_param(P)
Definition dmac_misc_type.h:33
#define EXT_TIME_US_MAX_LEN_U64
Definition frw_util.h:21
errcode_t uapi_drv_cipher_trng_get_random_bytes(uint8_t *randnum, uint32_t size)
获取指定大小的硬件随机数
Definition trng.c:23
void osal_gettimeofday(osal_timeval *tv)
Obtaining the Current System Kernel Time.
Definition osal_timer.c:197
#define INLINE__
Definition osal_list.h:25
unsigned char osal_u8
Definition osal_types.h:11
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
Definition osal_timer.h:25
long tv_sec
Definition osal_timer.h:26
long tv_usec
Definition osal_timer.h:27
Definition hal_uart_v151_regs_def.h:38