From 4e546b2e7cba337c5de86c621506e7b327b62ac6 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 30 Apr 2020 12:04:22 -0700 Subject: [PATCH] scoutfs-utils: generate end_size_add_cpu() We had manually implemented a few of the functions to add values to specific endian types. Make a macro to generate the function and generate them for all the endian types we use. Signed-off-by: Zach Brown --- utils/src/sparse.h | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/utils/src/sparse.h b/utils/src/sparse.h index 6cd08345..567eaf2f 100644 --- a/utils/src/sparse.h +++ b/utils/src/sparse.h @@ -105,19 +105,17 @@ __gen_functions(cast, be) #error "machine is neither BIG_ENDIAN nor LITTLE_ENDIAN" #endif -static inline void le32_add_cpu(__le32 *val, u32 delta) -{ - *val = cpu_to_le32(le32_to_cpu(*val) + delta); +#define __gen_add_funcs(end, size) \ +static inline void end##size##_add_cpu(__##end##size *val, u##size delta) \ +{ \ + *val = cpu_to_##end##size(end##size##_to_cpu(*val) + delta); \ } -static inline void le64_add_cpu(__le64 *val, u64 delta) -{ - *val = cpu_to_le64(le64_to_cpu(*val) + delta); -} - -static inline void be64_add_cpu(__be64 *val, u64 delta) -{ - *val = cpu_to_be64(be64_to_cpu(*val) + delta); -} +__gen_add_funcs(le, 16) +__gen_add_funcs(le, 32) +__gen_add_funcs(le, 64) +__gen_add_funcs(be, 16) +__gen_add_funcs(be, 32) +__gen_add_funcs(be, 64) #endif