Print this page
3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero
@@ -21,10 +21,14 @@
/*
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
#ifndef _SYS_DEBUG_H
#define _SYS_DEBUG_H
@@ -112,18 +116,22 @@
_NOTE(CONSTCOND) } 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 VERIFY0(x) VERIFY3_IMPL(x, ==, 0, uintmax_t)
+
#if DEBUG
#define ASSERT3S(x, y, z) VERIFY3_IMPL(x, y, z, int64_t)
#define ASSERT3U(x, y, z) VERIFY3_IMPL(x, y, z, uint64_t)
#define ASSERT3P(x, y, z) VERIFY3_IMPL(x, y, z, uintptr_t)
+#define ASSERT0(x) VERIFY3_IMPL(x, ==, 0, uintmax_t)
#else
#define ASSERT3S(x, y, z) ((void)0)
#define ASSERT3U(x, y, z) ((void)0)
#define ASSERT3P(x, y, z) ((void)0)
+#define ASSERT0(x) ((void)0)
#endif
#ifdef _KERNEL
extern void abort_sequence_enter(char *);