[PATCH] Added a do_div() wrapper macro, lldiv(). The new macro 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))"

Sergei Poselenov psl at pollux.denx.de
Wed Oct 29 13:04:16 CET 2008


Signed-off-by: Sergei Poselenov <sposelenov at emcraft.com>
---
 include/div64.h |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/include/div64.h b/include/div64.h
index c495aef..df3f73b 100644
--- a/include/div64.h
+++ b/include/div64.h
@@ -36,4 +36,12 @@ extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
 	__rem;						\
  })
 
+/* Wrapper for do_div()
+ */
+# define lldiv(a,b) ({					\
+	uint64_t __temp = (a);				\
+	do_div(__temp, (b));				\
+	__temp;						\
+ })
+
 #endif /* _ASM_GENERIC_DIV64_H */
-- 
1.5.6.1



More information about the U-Boot mailing list