On Thu, May 15, 2014 at 06:39:49PM +0900, Dongsheng Yang wrote:
This patch introduce a new macro to return a
value clamped to a given range.
Signed-off-by: Dongsheng Yang <yangds.fnst(a)cn.fujitsu.com>
---
src/util/virutil.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/util/virutil.h b/src/util/virutil.h
index 2bb74e2..e8536d8 100644
--- a/src/util/virutil.h
+++ b/src/util/virutil.h
@@ -37,6 +37,12 @@
# ifndef MAX
# define MAX(a, b) ((a) > (b) ? (a) : (b))
# endif
+# ifndef CLAMP
+# define CLAMP(v, min, max) ({ \
+ typeof(v) _v = v; \
+ _v = _v < min ? min: _v; \
+ _v > max ? max: _v; })
+# endif
It's just my subjective impression, but wouldn't the following be a
bit more readable and less obfuscated?
#define CLAMP(v, min, max) MAX(MIN(v, max), min)
Martin.