]> granicus.if.org Git - zfs/commitdiff
- Thinko fix to the SPL module interface
authorbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Thu, 27 Mar 2008 22:06:59 +0000 (22:06 +0000)
committerbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Thu, 27 Mar 2008 22:06:59 +0000 (22:06 +0000)
- Enhanse the VERIFY() support to output the values which
  failed to compare as expected before crashing.  This make
  debugging much much much easier.

git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@55 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c

include/sys/sunddi.h
include/sys/sysmacros.h

index 888b844518b30106ea17f4a0e552c2a0256cd91f..59f98061a18f0b65b872268de67cc7f7e37296ef 100644 (file)
@@ -161,7 +161,7 @@ static __inline__ void ddi_prop_remove_all(dev_info_t *dip) { }
 static __inline__ major_t
 ddi_driver_major(dev_info_t *di)
 {
-       return getminor(di->di_dev);
+       return getmajor(di->di_dev);
 }
 
 static __inline__ int
index 83e421b6a33ad3dbf26e9f36d6cc95a31823be58..a64950d10aa08af0f8e9db4ca887d90b067c3f9b 100644 (file)
@@ -76,20 +76,23 @@ extern "C" {
 #define ASSERT(x)                       BUG_ON(!(x))
 #define VERIFY(x)                      ASSERT(x)
 
-#define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE) do { \
-       const TYPE __left = (TYPE)(LEFT);        \
-       const TYPE __right = (TYPE)(RIGHT);      \
-       if (!(__left OP __right))                \
-               BUG();                           \
+#define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE, FMT, CAST) do {         \
+       const TYPE __left = (TYPE)(LEFT);                           \
+       const TYPE __right = (TYPE)(RIGHT);                         \
+       if (!(__left OP __right)) {                                 \
+               printk("Failed VERIFY3(" FMT " " #OP " " FMT ")\n", \
+                       CAST __left,  CAST __right);                \
+               BUG();                                              \
+       }                                                           \
 } while (0)
 
-#define VERIFY3S(x, y, z)       VERIFY3_IMPL(x, y, z, int64_t)
-#define VERIFY3U(x, y, z)       VERIFY3_IMPL(x, y, z, uint64_t)
-#define VERIFY3P(x, y, z)       VERIFY3_IMPL(x, y, z, uintptr_t)
+#define VERIFY3S(x, y, z)   VERIFY3_IMPL(x, y, z, int64_t, "%ld", (long))
+#define VERIFY3U(x, y, z)   VERIFY3_IMPL(x, y, z, uint64_t, "%lu", (unsigned long))
+#define VERIFY3P(x, y, z)   VERIFY3_IMPL(x, y, z, uintptr_t, "%p", (void *))
 
-#define ASSERT3S(x, y, z)       VERIFY3S(x, y, z)
-#define ASSERT3U(x, y, z)       VERIFY3U(x, y, z)
-#define ASSERT3P(x, y, z)       VERIFY3P(x, y, z)
+#define ASSERT3S(x, y, z)   VERIFY3S(x, y, z)
+#define ASSERT3U(x, y, z)   VERIFY3U(x, y, z)
+#define ASSERT3P(x, y, z)   VERIFY3P(x, y, z)
 
 /* Dtrace probes do not exist in the linux kernel */