From 8c7be52d10a1e9a4745249a4a94540df13d847a3 Mon Sep 17 00:00:00 2001 From: Thomas Graf Date: Mon, 15 Dec 2014 14:10:38 +0100 Subject: [PATCH] lib: Expose SAT_MUT as OVS_SAT_MUL in Insted of exposing the full sat-math.h API, only the macros used in headers is exposed through Signed-off-by: Thomas Graf Acked-by: Ben Pfaff --- include/openvswitch/util.h | 6 ++++++ lib/sat-math.h | 8 ++------ lib/vlog.h | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/openvswitch/util.h b/include/openvswitch/util.h index b0b9935ef..683f76ba3 100644 --- a/include/openvswitch/util.h +++ b/include/openvswitch/util.h @@ -40,6 +40,12 @@ const char *ovs_get_program_version(void); #define OVS_STRINGIZE(ARG) OVS_STRINGIZE2(ARG) #define OVS_STRINGIZE2(ARG) #ARG +/* Saturating multiplication of "unsigned int"s: overflow yields UINT_MAX. */ +#define OVS_SAT_MUL(X, Y) \ + ((Y) == 0 ? 0 \ + : (X) <= UINT_MAX / (Y) ? (unsigned int) (X) * (unsigned int) (Y) \ + : UINT_MAX) + #ifdef __cplusplus } #endif diff --git a/lib/sat-math.h b/lib/sat-math.h index 3d1c50bdc..beeff8b2b 100644 --- a/lib/sat-math.h +++ b/lib/sat-math.h @@ -18,6 +18,7 @@ #define SAT_MATH_H 1 #include +#include "openvswitch/util.h" /* Saturating addition: overflow yields UINT_MAX. */ static inline unsigned int @@ -33,15 +34,10 @@ sat_sub(unsigned int x, unsigned int y) return x >= y ? x - y : 0; } -/* Saturating multiplication of "unsigned int"s: overflow yields UINT_MAX. */ -#define SAT_MUL(X, Y) \ - ((Y) == 0 ? 0 \ - : (X) <= UINT_MAX / (Y) ? (unsigned int) (X) * (unsigned int) (Y) \ - : UINT_MAX) static inline unsigned int sat_mul(unsigned int x, unsigned int y) { - return SAT_MUL(x, y); + return OVS_SAT_MUL(x, y); } #endif /* sat-math.h */ diff --git a/lib/vlog.h b/lib/vlog.h index 67d37eb9f..8190a44b7 100644 --- a/lib/vlog.h +++ b/lib/vlog.h @@ -116,7 +116,7 @@ struct vlog_rate_limit { * messages per minute and a maximum burst size of BURST messages. */ #define VLOG_RATE_LIMIT_INIT(RATE, BURST) \ { \ - TOKEN_BUCKET_INIT(RATE, SAT_MUL(BURST, VLOG_MSG_TOKENS)), \ + TOKEN_BUCKET_INIT(RATE, OVS_SAT_MUL(BURST, VLOG_MSG_TOKENS)),\ 0, /* first_dropped */ \ 0, /* last_dropped */ \ 0, /* n_dropped */ \ -- 2.20.1