Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/64175 )
Change subject: commonlib/clamp.h: Add more clamping functions ......................................................................
commonlib/clamp.h: Add more clamping functions
Add more clamping functions that work with different types.
Change-Id: I14cf335d5a54f769f8fd9184450957e876affd6b Signed-off-by: Angel Pons th3fanbus@gmail.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/64175 Reviewed-by: Arthur Heymans arthur@aheymans.xyz Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/commonlib/bsd/include/commonlib/bsd/clamp.h 1 file changed, 33 insertions(+), 8 deletions(-)
Approvals: build bot (Jenkins): Verified Arthur Heymans: Looks good to me, approved
diff --git a/src/commonlib/bsd/include/commonlib/bsd/clamp.h b/src/commonlib/bsd/include/commonlib/bsd/clamp.h index 66513b0..cdee4c8 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 */