diff --git a/src/commonlib/bsd/include/commonlib/bsd/clamp.h b/src/commonlib/bsd/include/commonlib/bsd/clamp.h index 66513b0337..cdee4c8542 100644 --- a/src/commonlib/bsd/include/commonlib/bsd/clamp.h +++ b/src/commonlib/bsd/include/commonlib/bsd/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_BSD_CLAMP_H */