From b32aa9ebc57b8db5052e3b97dc5a3349cd91636b Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Wed, 19 Dec 2018 20:03:16 +0900 Subject: [PATCH] linux/kernel.h: import DIV_ROUND_CLOSEST_ULL from Linux Copied from Linux v4.20-rc7. Signed-off-by: Masahiro Yamada --- include/linux/kernel.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/linux/kernel.h b/include/linux/kernel.h index bd88483b9f..a85c15d8dc 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.39.5