mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 05:31:15 +00: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:
parent
213451076b
commit
47a3616348
2 changed files with 39 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue