From dd58f5e9108bc596c93071705d2b53233d13ade6 Mon Sep 17 00:00:00 2001 From: Angel Pons Date: Sat, 7 May 2022 20:36:10 +0200 Subject: [PATCH 01/26] commonlib/clamp.h: Add more clamping functions Add more clamping functions that work with different types. Change-Id: I14cf335d5a54f769f8fd9184450957e876affd6b Signed-off-by: Angel Pons --- src/commonlib/include/commonlib/clamp.h | 26 +++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/commonlib/include/commonlib/clamp.h b/src/commonlib/include/commonlib/clamp.h index e01a107ed4..526185195c 100644 --- a/src/commonlib/include/commonlib/clamp.h +++ b/src/commonlib/include/commonlib/clamp.h @@ -8,15 +8,25 @@ /* * Clamp a value, so that it is between a lower and an upper bound. */ -static inline u32 clamp_u32(const u32 min, const u32 val, const u32 max) -{ - if (val > max) - return max; +#define __MAKE_CLAMP_FUNC(type) \ + static inline type clamp_##type(const type min, const type val, const type max) \ + { \ + if (val > max) \ + return max; \ + if (val < min) \ + return min; \ + return val; \ + } \ - if (val < min) - return min; +__MAKE_CLAMP_FUNC(s8) /* clamp_s8 */ +__MAKE_CLAMP_FUNC(u8) /* clamp_u8 */ +__MAKE_CLAMP_FUNC(s16) /* clamp_s16 */ +__MAKE_CLAMP_FUNC(u16) /* clamp_u16 */ +__MAKE_CLAMP_FUNC(s32) /* clamp_s32 */ +__MAKE_CLAMP_FUNC(u32) /* clamp_u32 */ +__MAKE_CLAMP_FUNC(s64) /* clamp_s64 */ +__MAKE_CLAMP_FUNC(u64) /* clamp_u64 */ - return val; -} +#undef __MAKE_CLAMP_FUNC #endif /* COMMONLIB_CLAMP_H */ -- 2.39.2