diff options
author | 2022-01-26 15:53:50 +0200 | |
---|---|---|
committer | 2022-01-30 12:21:25 +0000 | |
commit | e820a33748b5e22cecafddf919a7d8679949deb1 (patch) | |
tree | a49692232b07f06e9c169aa3e24b2ccb33339903 /include/linux/math.h | |
parent | dt-bindings: iio/adc: qcom,spmi-iadc: Fix 'reg' property in example (diff) | |
download | linux-e820a33748b5e22cecafddf919a7d8679949deb1.tar.gz linux-e820a33748b5e22cecafddf919a7d8679949deb1.tar.bz2 linux-e820a33748b5e22cecafddf919a7d8679949deb1.zip |
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 <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220126135353.24007-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'include/linux/math.h')
-rw-r--r-- | include/linux/math.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/math.h b/include/linux/math.h index 53674a327e39..439b8f0b9ebd 100644 --- a/include/linux/math.h +++ b/include/linux/math.h @@ -2,6 +2,7 @@ #ifndef _LINUX_MATH_H #define _LINUX_MATH_H +#include <linux/types.h> #include <asm/div64.h> #include <uapi/linux/kernel.h> @@ -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. |