From: Andy Shevchenko Date: Wed, 26 Jan 2022 13:53:50 +0000 (+0200) Subject: math.h: Introduce data types for fractional numbers X-Git-Tag: v6.1-rc5~1693^2~55^2~188 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e820a33748b5e22cecafddf919a7d8679949deb1;p=platform%2Fkernel%2Flinux-starfive.git math.h: Introduce data types for fractional numbers Introduce a macro to produce data types like struct TYPE_fract { __TYPE numerator; __TYPE denominator; }; to be used in the code wherever it's needed. In the following changes convert some users to it. Signed-off-by: Andy Shevchenko Link: https://lore.kernel.org/r/20220126135353.24007-1-andriy.shevchenko@linux.intel.com Signed-off-by: Jonathan Cameron --- diff --git a/include/linux/math.h b/include/linux/math.h index 53674a3..439b8f0 100644 --- a/include/linux/math.h +++ b/include/linux/math.h @@ -2,6 +2,7 @@ #ifndef _LINUX_MATH_H #define _LINUX_MATH_H +#include #include #include @@ -106,6 +107,17 @@ } \ ) +#define __STRUCT_FRACT(type) \ +struct type##_fract { \ + __##type numerator; \ + __##type denominator; \ +}; +__STRUCT_FRACT(s16) +__STRUCT_FRACT(u16) +__STRUCT_FRACT(s32) +__STRUCT_FRACT(u32) +#undef __STRUCT_FRACT + /* * Multiplies an integer by a fraction, while avoiding unnecessary * overflow or loss of precision.