Loading include/asm-generic/div64.h +14 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,20 @@ #if BITS_PER_LONG == 64 /** * do_div - returns 2 values: calculate remainder and update new dividend * @n: pointer to uint64_t dividend (will be updated) * @base: uint32_t divisor * * Summary: * ``uint32_t remainder = *n % base;`` * ``*n = *n / base;`` * * Return: (uint32_t)remainder * * NOTE: macro parameter @n is evaluated multiple times, * beware of side effects! */ # define do_div(n,base) ({ \ uint32_t __base = (base); \ uint32_t __rem; \ Loading lib/div64.c +6 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,12 @@ uint32_t __attribute__((weak)) __div64_32(uint64_t *n, uint32_t base) EXPORT_SYMBOL(__div64_32); #endif /** * div_s64_rem - signed 64bit divide with 64bit divisor and remainder * @dividend: 64bit dividend * @divisor: 64bit divisor * @remainder: 64bit remainder */ #ifndef div_s64_rem s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder) { Loading Loading
include/asm-generic/div64.h +14 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,20 @@ #if BITS_PER_LONG == 64 /** * do_div - returns 2 values: calculate remainder and update new dividend * @n: pointer to uint64_t dividend (will be updated) * @base: uint32_t divisor * * Summary: * ``uint32_t remainder = *n % base;`` * ``*n = *n / base;`` * * Return: (uint32_t)remainder * * NOTE: macro parameter @n is evaluated multiple times, * beware of side effects! */ # define do_div(n,base) ({ \ uint32_t __base = (base); \ uint32_t __rem; \ Loading
lib/div64.c +6 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,12 @@ uint32_t __attribute__((weak)) __div64_32(uint64_t *n, uint32_t base) EXPORT_SYMBOL(__div64_32); #endif /** * div_s64_rem - signed 64bit divide with 64bit divisor and remainder * @dividend: 64bit dividend * @divisor: 64bit divisor * @remainder: 64bit remainder */ #ifndef div_s64_rem s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder) { Loading