- Thinko fix to the SPL module interface

- 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
This commit is contained in:
behlendo 2008-03-27 22:06:59 +00:00
parent 8ac547ec4c
commit d429b03d85
2 changed files with 15 additions and 12 deletions

View File

@ -161,7 +161,7 @@ static __inline__ void ddi_prop_remove_all(dev_info_t *dip) { }
static __inline__ major_t static __inline__ major_t
ddi_driver_major(dev_info_t *di) ddi_driver_major(dev_info_t *di)
{ {
return getminor(di->di_dev); return getmajor(di->di_dev);
} }
static __inline__ int static __inline__ int

View File

@ -76,20 +76,23 @@ extern "C" {
#define ASSERT(x) BUG_ON(!(x)) #define ASSERT(x) BUG_ON(!(x))
#define VERIFY(x) ASSERT(x) #define VERIFY(x) ASSERT(x)
#define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE) do { \ #define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE, FMT, CAST) do { \
const TYPE __left = (TYPE)(LEFT); \ const TYPE __left = (TYPE)(LEFT); \
const TYPE __right = (TYPE)(RIGHT); \ const TYPE __right = (TYPE)(RIGHT); \
if (!(__left OP __right)) \ if (!(__left OP __right)) { \
BUG(); \ printk("Failed VERIFY3(" FMT " " #OP " " FMT ")\n", \
CAST __left, CAST __right); \
BUG(); \
} \
} while (0) } while (0)
#define VERIFY3S(x, y, z) VERIFY3_IMPL(x, y, z, int64_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) #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) #define VERIFY3P(x, y, z) VERIFY3_IMPL(x, y, z, uintptr_t, "%p", (void *))
#define ASSERT3S(x, y, z) VERIFY3S(x, y, z) #define ASSERT3S(x, y, z) VERIFY3S(x, y, z)
#define ASSERT3U(x, y, z) VERIFY3U(x, y, z) #define ASSERT3U(x, y, z) VERIFY3U(x, y, z)
#define ASSERT3P(x, y, z) VERIFY3P(x, y, z) #define ASSERT3P(x, y, z) VERIFY3P(x, y, z)
/* Dtrace probes do not exist in the linux kernel */ /* Dtrace probes do not exist in the linux kernel */