From e160c3eba138d22b25b95df46fdc0e7b9865d902 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Mon, 21 Oct 2013 12:15:20 +0800 Subject: lib/util: Implement min & max macros Standard type-safe min & max implementations. Signed-off-by: Jeremy Kerr --- lib/util/util.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'lib/util') diff --git a/lib/util/util.h b/lib/util/util.h index 30b472d..8c08dc5 100644 --- a/lib/util/util.h +++ b/lib/util/util.h @@ -30,5 +30,19 @@ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +#define min(a,b) ({ \ + typeof(a) _min_a = (a); \ + typeof(b) _min_b = (b); \ + (void)(&_min_a == &_min_b); \ + _min_a < _min_b ? _min_a : _min_b; \ + }) + +#define max(a,b) ({ \ + typeof(a) _max_a = (a); \ + typeof(b) _max_b = (b); \ + (void)(&_max_a == &_max_b); \ + _max_a > _max_b ? _max_a : _max_b; \ + }) + #endif /* UTIL_H */ -- cgit v1.2.1