From: Jeremy Kerr Date: Mon, 21 Oct 2013 04:15:20 +0000 (+0800) Subject: lib/util: Implement min & max macros X-Git-Tag: v1.0.0~361 X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=e160c3eba138d22b25b95df46fdc0e7b9865d902 lib/util: Implement min & max macros Standard type-safe min & max implementations. Signed-off-by: Jeremy Kerr --- 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 */