Re: [U-Boot] [PATCH] Added a do_div() wrapper macro, lldiv().

Hello all, Modified the previous version, as suggested by Wolfgang.
Regards, Sergei
Description:
Added a do_div() wrapper, lldiv(). The new inline function doesn't modify the dividend and returns the result of division, so it is useful in complex expressions, i.e. "return(a/b)" -> "return(lldiv(a,b))"
Signed-off-by: Sergei Poselenov sposelenov@emcraft.com
diff --git a/include/div64.h b/include/div64.h index c495aef..d833144 100644 --- a/include/div64.h +++ b/include/div64.h @@ -36,4 +36,14 @@ extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); __rem; \ })
+/* Wrapper for do_div(). Doesn't modify dividend and returns + * the result, not reminder. + */ +static inline uint64_t lldiv(uint64_t dividend, uint32_t divisor) +{ + uint64_t __res = dividend; + do_div(__res, divisor); + return(__res); +} + #endif /* _ASM_GENERIC_DIV64_H */

Dear Sergei Poselenov,
In message 20081104125118.20E907023AB@pollux.denx.de you wrote:
Hello all, Modified the previous version, as suggested by Wolfgang.
Regards, Sergei
Description:
Added a do_div() wrapper, lldiv(). The new inline function doesn't modify the dividend and returns the result of division, so it is useful in complex expressions, i.e. "return(a/b)" -> "return(lldiv(a,b))"
Signed-off-by: Sergei Poselenov sposelenov@emcraft.com
Applied, thanks.
Best regards,
Wolfgang Denk
participants (2)
-
sposelenov@emcraft.com
-
Wolfgang Denk