Files
hisi_SS524V100_SDK/osal/linux/osal_math.c
T

70 lines
1.6 KiB
C

/*
Copyright (c), 2001-2022, Shenshu Tech. Co., Ltd.
*/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/random.h>
#include <linux/version.h>
#include "ot_osal.h"
/* the result of u64/u32. */
unsigned long long osal_div_u64(unsigned long long dividend, unsigned int divisor)
{
return div_u64(dividend, divisor);
}
EXPORT_SYMBOL(osal_div_u64);
/* the result of s64/s32. */
long long osal_div_s64(long long dividend, int divisor)
{
return div_s64(dividend, divisor);
}
EXPORT_SYMBOL(osal_div_s64);
/* the result of u64/u64. */
unsigned long long osal_div64_u64(unsigned long long dividend, unsigned long long divisor)
{
return div64_u64(dividend, divisor);
}
EXPORT_SYMBOL(osal_div64_u64);
/* the result of s64/s64. */
long long osal_div64_s64(long long dividend, long long divisor)
{
return div64_s64(dividend, divisor);
}
EXPORT_SYMBOL(osal_div64_s64);
/* the remainder of u64/u32. */
unsigned long long osal_div_u64_rem(unsigned long long dividend, unsigned int divisor)
{
unsigned int remainder;
div_u64_rem(dividend, divisor, &remainder);
return remainder;
}
EXPORT_SYMBOL(osal_div_u64_rem);
/* the remainder of u64/u64. */
unsigned long long osal_div64_u64_rem(unsigned long long dividend, unsigned long long divisor)
{
unsigned long long remainder;
div64_u64_rem(dividend, divisor, &remainder);
return remainder;
}
EXPORT_SYMBOL(osal_div64_u64_rem);
unsigned int osal_random(void)
{
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0)
return random32();
#else
return get_random_int();
#endif
}
EXPORT_SYMBOL(osal_random);