X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Fcounter%2Fcounter-api.h;h=fbc65818858f6128559abbfb978b0f31c4b81863;hb=2b8161a4ae82a2438e553eef0828a94fb3e24ace;hp=827fb6f81bd2df1bc1e9ed6d2e24470eb8a41001;hpb=236233f79b01cd3d9f7717650a46bda8c0d7ab85;p=lttng-modules.git diff --git a/include/counter/counter-api.h b/include/counter/counter-api.h index 827fb6f8..fbc65818 100644 --- a/include/counter/counter-api.h +++ b/include/counter/counter-api.h @@ -20,7 +20,7 @@ /* * Using unsigned arithmetic because overflow is defined. */ -static inline int __lttng_counter_add(const struct lib_counter_config *config, +static __always_inline int __lttng_counter_add(const struct lib_counter_config *config, enum lib_counter_config_alloc alloc, enum lib_counter_config_sync sync, struct lib_counter *counter, @@ -80,10 +80,12 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, } while (old != res); break; } + default: + return -EINVAL; } if (v > 0 && (v >= U8_MAX || n < old)) overflow = true; - else if (v < 0 && (v <= -U8_MAX || n > old)) + else if (v < 0 && (v <= -(s64) U8_MAX || n > old)) underflow = true; break; } @@ -119,10 +121,12 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, } while (old != res); break; } + default: + return -EINVAL; } if (v > 0 && (v >= U16_MAX || n < old)) overflow = true; - else if (v < 0 && (v <= -U16_MAX || n > old)) + else if (v < 0 && (v <= -(s64) U16_MAX || n > old)) underflow = true; break; } @@ -158,10 +162,12 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, } while (old != res); break; } + default: + return -EINVAL; } if (v > 0 && (v >= U32_MAX || n < old)) overflow = true; - else if (v < 0 && (v <= -U32_MAX || n > old)) + else if (v < 0 && (v <= -(s64) U32_MAX || n > old)) underflow = true; break; } @@ -198,6 +204,8 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, } while (old != res); break; } + default: + return -EINVAL; } if (v > 0 && n < old) overflow = true; @@ -218,7 +226,7 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, return 0; } -static inline int __lttng_counter_add_percpu(const struct lib_counter_config *config, +static __always_inline int __lttng_counter_add_percpu(const struct lib_counter_config *config, struct lib_counter *counter, const size_t *dimension_indexes, int64_t v) { @@ -235,7 +243,7 @@ static inline int __lttng_counter_add_percpu(const struct lib_counter_config *co return 0; } -static inline int __lttng_counter_add_global(const struct lib_counter_config *config, +static __always_inline int __lttng_counter_add_global(const struct lib_counter_config *config, struct lib_counter *counter, const size_t *dimension_indexes, int64_t v) { @@ -243,7 +251,7 @@ static inline int __lttng_counter_add_global(const struct lib_counter_config *co dimension_indexes, v, NULL); } -static inline int lttng_counter_add(const struct lib_counter_config *config, +static __always_inline int lttng_counter_add(const struct lib_counter_config *config, struct lib_counter *counter, const size_t *dimension_indexes, int64_t v) { @@ -258,14 +266,14 @@ static inline int lttng_counter_add(const struct lib_counter_config *config, } } -static inline int lttng_counter_inc(const struct lib_counter_config *config, +static __always_inline int lttng_counter_inc(const struct lib_counter_config *config, struct lib_counter *counter, const size_t *dimension_indexes) { return lttng_counter_add(config, counter, dimension_indexes, 1); } -static inline int lttng_counter_dec(const struct lib_counter_config *config, +static __always_inline int lttng_counter_dec(const struct lib_counter_config *config, struct lib_counter *counter, const size_t *dimension_indexes) {