Fix: counter-api: always inline counter add function
[lttng-modules.git] / include / counter / counter-api.h
index 827fb6f81bd2df1bc1e9ed6d2e24470eb8a41001..fbc65818858f6128559abbfb978b0f31c4b81863 100644 (file)
@@ -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)
 {
This page took 0.025263 seconds and 4 git commands to generate.