mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-24 05:01:03 +02:00
lib: Add strongly typed 64bit int_sqrt
There is no option to perform 64bit integer sqrt on 32bit platform. Added stronger typed int_sqrt64 enables the 64bit calculations to be performed on 32bit platforms. Using same algorithm as int_sqrt() with strong typing provides enough precision also on 32bit platforms, but it sacrifices some performance. In case values are smaller than ULONG_MAX the standard int_sqrt is used for calculation to maximize the performance due to more native calculations. Signed-off-by: Crt Mori <cmo@melexis.com> Acked-by: Joe Perches <joe@perches.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
committed by
Jonathan Cameron
parent
213451076b
commit
47a3616348
@@ -479,6 +479,15 @@ extern int func_ptr_is_kernel_text(void *ptr);
|
||||
|
||||
unsigned long int_sqrt(unsigned long);
|
||||
|
||||
#if BITS_PER_LONG < 64
|
||||
u32 int_sqrt64(u64 x);
|
||||
#else
|
||||
static inline u32 int_sqrt64(u64 x)
|
||||
{
|
||||
return (u32)int_sqrt(x);
|
||||
}
|
||||
#endif
|
||||
|
||||
extern void bust_spinlocks(int yes);
|
||||
extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */
|
||||
extern int panic_timeout;
|
||||
|
Reference in New Issue
Block a user