]> git.sur5r.net Git - u-boot/commitdiff
Add a do_div() wrapper macro, lldiv().
authorSergei Poselenov <sposelenov@emcraft.com>
Tue, 4 Nov 2008 12:51:18 +0000 (13:51 +0100)
committerWolfgang Denk <wd@denx.de>
Fri, 23 Jan 2009 23:23:09 +0000 (00:23 +0100)
Add 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>
include/div64.h

index c495aefb01480068487dae545a99e45412e45b3f..d83314435d860d59ffb9d5a14284d70a3c3a4453 100644 (file)
@@ -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 */