Commit 9fe06081ef145d6582c39e18203b5fffe6f3abc2
Committed by
Linus Torvalds
1 parent
3007967742
Exists in
master
and in
39 other branches
Create a DIV_ROUND_CLOSEST macro to do division with rounding
Create a helper macro to divide two numbers and round the result to the nearest whole number. This is a helper macro for hwmon drivers that want to convert incoming sysfs values per standard hwmon practice, though the macro itself can be used by anyone. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 6 additions and 0 deletions Side-by-side Diff
include/linux/kernel.h
... | ... | @@ -48,6 +48,12 @@ |
48 | 48 | #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f)) |
49 | 49 | #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) |
50 | 50 | #define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) |
51 | +#define DIV_ROUND_CLOSEST(x, divisor)( \ | |
52 | +{ \ | |
53 | + typeof(divisor) __divisor = divisor; \ | |
54 | + (((x) + ((__divisor) / 2)) / (__divisor)); \ | |
55 | +} \ | |
56 | +) | |
51 | 57 | |
52 | 58 | #define _RET_IP_ (unsigned long)__builtin_return_address(0) |
53 | 59 | #define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; }) |