WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
osal_math.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2021-2022. All rights reserved.
3 * Description: OS Abstract Layer.
4 */
5
9#ifndef __OSAL_MATH_H__
10#define __OSAL_MATH_H__
11
12#ifdef __cplusplus
13#if __cplusplus
14extern "C" {
15#endif
16#endif
17
35unsigned long long osal_div_u64(unsigned long long dividend, unsigned int divisor);
36
54long long osal_div_s64(long long dividend, int divisor);
55
73unsigned long long osal_div64_u64(unsigned long long dividend, unsigned long long divisor);
74
92long long osal_div64_s64(long long dividend, long long divisor);
93
111unsigned long long osal_div_u64_rem(unsigned long long dividend, unsigned int divisor);
112
130long long osal_div_s64_rem(long long dividend, int divisor);
131
149unsigned long long osal_div64_u64_rem(unsigned long long dividend, unsigned long long divisor);
150
163unsigned int osal_get_random_int(void);
164
165#define osal_max(x, y) \
166 ({ \
167 __typeof__(x)_max1 = (x); \
168 __typeof__(y)_max2 = (y); \
169 (void)(&_max1 == &_max2); \
170 _max1 > _max2 ? _max1 : _max2; \
171 })
172
173#define osal_min(x, y) \
174 ({ \
175 __typeof__(x)_min1 = (x); \
176 __typeof__(y)_min2 = (y); \
177 (void)(&_min1 == &_min2); \
178 _min1 < _min2 ? _min1 : _min2; \
179 })
180
181#define osal_abs(x) \
182 ({ \
183 long ret; \
184 if (sizeof(x) == sizeof(long)) { \
185 long __x = (x); \
186 ret = (__x < 0) ? (-__x) : (__x); \
187 } else { \
188 int __x = (x); \
189 ret = (__x < 0) ? (-__x) : (__x); \
190 } \
191 ret; \
192 })
193
194#ifdef __cplusplus
195#if __cplusplus
196}
197#endif
198#endif
199#endif /* __OSAL_MATH_H__ */
unsigned int osal_get_random_int(void)
Random number generator.
Definition osal_math.c:65
unsigned long long osal_div_u64_rem(unsigned long long dividend, unsigned int divisor)
Unsigned 64bit divide with 32bit divisor with remainder.
Definition osal_math.c:37
long long osal_div64_s64(long long dividend, long long divisor)
Signed 64bit divide with 64bit divisor.
Definition osal_math.c:31
long long osal_div_s64_rem(long long dividend, int divisor)
Signed 64bit divide with 32bit divisor with remainder.
Definition osal_math.c:47
long long osal_div_s64(long long dividend, int divisor)
Signed 64bit divide with 32bit divisor.
Definition osal_math.c:19
unsigned long long osal_div_u64(unsigned long long dividend, unsigned int divisor)
Unsigned 64bit divide with 32bit divisor.
Definition osal_math.c:13
unsigned long long osal_div64_u64(unsigned long long dividend, unsigned long long divisor)
Unsigned 64bit divide with Unsigned 64bit divisor.
Definition osal_math.c:25
unsigned long long osal_div64_u64_rem(unsigned long long dividend, unsigned long long divisor)
Unsigned 64bit divide with unsigned 64bit divisor with remainder.
Definition osal_math.c:57