Print this page
3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero
        
*** 34,44 ****
  
  #define _SYS_MUTEX_H
  #define _SYS_RWLOCK_H
  #define _SYS_CONDVAR_H
  #define _SYS_SYSTM_H
- #define _SYS_DEBUG_H
  #define _SYS_T_LOCK_H
  #define _SYS_VNODE_H
  #define _SYS_VFS_H
  #define _SYS_SUNDDI_H
  #define _SYS_CALLB_H
--- 34,43 ----
*** 76,85 ****
--- 75,85 ----
  #include <sys/kstat.h>
  #include <sys/u8_textprep.h>
  #include <sys/sysevent/eventdefs.h>
  #include <sys/sysevent/dev.h>
  #include <sys/sunddi.h>
+ #include <sys/debug.h>
  
  /*
   * Debugging
   */
  
*** 108,171 ****
  
  #define fm_panic        panic
  
  extern int aok;
  
- /* This definition is copied from assert.h. */
- #if defined(__STDC__)
- #if __STDC_VERSION__ - 0 >= 199901L
- #define zverify(EX) (void)((EX) || (aok) || \
-         (__assert_c99(#EX, __FILE__, __LINE__, __func__), 0))
- #else
- #define zverify(EX) (void)((EX) || (aok) || \
-         (__assert(#EX, __FILE__, __LINE__), 0))
- #endif /* __STDC_VERSION__ - 0 >= 199901L */
- #else
- #define zverify(EX) (void)((EX) || (aok) || \
-         (_assert("EX", __FILE__, __LINE__), 0))
- #endif  /* __STDC__ */
- 
- 
- #define VERIFY  zverify
- #define ASSERT  zverify
- #undef  assert
- #define assert  zverify
- 
- extern void __assert(const char *, const char *, int);
- 
- #ifdef lint
- #define VERIFY3_IMPL(x, y, z, t)        if (x == z) ((void)0)
- #else
- /* BEGIN CSTYLED */
- #define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE) do { \
-         const TYPE __left = (TYPE)(LEFT); \
-         const TYPE __right = (TYPE)(RIGHT); \
-         if (!(__left OP __right) && (!aok)) { \
-                 char *__buf = alloca(256); \
-                 (void) snprintf(__buf, 256, "%s %s %s (0x%llx %s 0x%llx)", \
-                         #LEFT, #OP, #RIGHT, \
-                         (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
-                 __assert(__buf, __FILE__, __LINE__); \
-         } \
- _NOTE(CONSTCOND) } while (0)
- /* END CSTYLED */
- #endif /* lint */
- 
- #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)
- 
- #ifdef NDEBUG
- #define ASSERT3S(x, y, z)       ((void)0)
- #define ASSERT3U(x, y, z)       ((void)0)
- #define ASSERT3P(x, y, z)       ((void)0)
- #else
- #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)
- #endif
- 
  /*
   * DTrace SDT probes have different signatures in userland than they do in
   * kernel.  If they're being used in kernel code, re-define them out of
   * existence for their counterparts in libzpool.
   */
--- 108,117 ----