]> git.proxmox.com Git - mirror_spl.git/commitdiff
Add IMPLY() and EQUIV() macros
authorBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 24 Jun 2015 21:44:47 +0000 (14:44 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 24 Jun 2015 21:44:47 +0000 (14:44 -0700)
Added for upstream compatibility, they are of the form:

* IMPLY(a, b) - if (a) then (b)
* EQUIV(a, b) - if (a) then (b) *AND* if (b) then (a)

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
include/sys/debug.h

index cae2d49e44c41b52a007b410cb1494e50c7809f3..a37740036446a26776e08f679c60cb5f945e36db 100644 (file)
@@ -92,6 +92,8 @@ void spl_dumpstack(void);
 #define        ASSERT3U(x,y,z)         ((void)0)
 #define        ASSERT3P(x,y,z)         ((void)0)
 #define        ASSERT0(x)              ((void)0)
+#define        IMPLY(A, B)             ((void)0)
+#define        EQUIV(A, B)             ((void)0)
 
 /*
  * Debugging enabled (--enable-debug)
@@ -105,6 +107,14 @@ void spl_dumpstack(void);
 #define        ASSERT3U(x,y,z)         VERIFY3U(x, y, z)
 #define        ASSERT3P(x,y,z)         VERIFY3P(x, y, z)
 #define        ASSERT0(x)              VERIFY0(x)
+#define        IMPLY(A, B) \
+       ((void)(((!(A)) || (B)) || \
+           spl_panic(__FILE__, __FUNCTION__, __LINE__, \
+           "(" #A ") implies (" #B ")")))
+#define        EQUIV(A, B) \
+       ((void)((!!(A) == !!(B)) || \
+           spl_panic(__FILE__, __FUNCTION__, __LINE__, \
+           "(" #A ") is equivalent to (" #B ")")))
 
 #endif /* NDEBUG */