chiark / gitweb /
util.h: Provide MIN and MAX macros
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 21 Apr 2014 23:15:50 +0000 (00:15 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 24 Apr 2014 01:10:00 +0000 (02:10 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
util.h

diff --git a/util.h b/util.h
index 816c056..1f43c5e 100644 (file)
--- a/util.h
+++ b/util.h
@@ -51,4 +51,12 @@ extern void send_nak(const struct comm_addr *dest, uint32_t our_index,
 
 extern int consttime_memeq(const void *s1, const void *s2, size_t n);
 
+#define MINMAX(ae,be,op) ({                    \
+       typeof((ae)) a=(ae);                    \
+       typeof((be)) b=(be);                    \
+       a op b ? a : b;                         \
+    })
+#define MAX(a,b) MINMAX((a),(b),>)
+#define MIN(a,b) MINMAX((a),(b),<)
+
 #endif /* util_h */