[U-Boot] [PATCH 4/9] linux/kernel.h: import DIV_ROUND_CLOSEST_ULL from Linux

Masahiro Yamada yamada.masahiro at socionext.com
Wed Dec 19 11:03:16 UTC 2018


Copied from Linux v4.20-rc7.

Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
---

 include/linux/kernel.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index bd88483..a85c15d 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -102,6 +102,18 @@
 		(((__x) - ((__d) / 2)) / (__d));	\
 }							\
 )
+/*
+ * Same as above but for u64 dividends. divisor must be a 32-bit
+ * number.
+ */
+#define DIV_ROUND_CLOSEST_ULL(x, divisor)(		\
+{							\
+	typeof(divisor) __d = divisor;			\
+	unsigned long long _tmp = (x) + (__d) / 2;	\
+	do_div(_tmp, __d);				\
+	_tmp;						\
+}							\
+)
 
 /*
  * Multiplies an integer by a fraction, while avoiding unnecessary
-- 
2.7.4



More information about the U-Boot mailing list