Commit e820a337 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Jonathan Cameron

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: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220126135353.24007-1-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent de645b27
......@@ -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.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment