summaryrefslogtreecommitdiffstats
path: root/sys/lib/libkern/libkern.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/lib/libkern/libkern.h')
-rw-r--r--sys/lib/libkern/libkern.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/lib/libkern/libkern.h b/sys/lib/libkern/libkern.h
index 4e53f92fbc2..d743920ea0b 100644
--- a/sys/lib/libkern/libkern.h
+++ b/sys/lib/libkern/libkern.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: libkern.h,v 1.33 2014/06/10 04:16:57 deraadt Exp $ */
+/* $OpenBSD: libkern.h,v 1.34 2014/07/13 23:49:40 uebayasi Exp $ */
/* $NetBSD: libkern.h,v 1.7 1996/03/14 18:52:08 christos Exp $ */
/*-
@@ -114,25 +114,41 @@ abs(int j)
#endif
#endif
+#define __KASSERTSTR "kernel %sassertion \"%s\" failed: file \"%s\", line %d"
+
#ifndef DIAGNOSTIC
+#define KASSERTMSG(e, msg, ...) ((void)0)
#define KASSERT(e) ((void)0)
#else
#ifdef __STDC__
+#define KASSERTMSG(e, msg, ...) ((e) ? (void)0 : \
+ panic(__KASSERTSTR " " msg, "diagnostic ", #e, \
+ __FILE__, __LINE__, ## __VA_ARGS__))
#define KASSERT(e) ((e) ? (void)0 : \
__assert("diagnostic ", __FILE__, __LINE__, #e))
#else
+#define KASSERTMSG(e, msg, ...) ((e) ? (void)0 : \
+ panic(__KASSERTSTR " " msg, "diagnostic ", "e", \
+ __FILE__, __LINE__, ## __VA_ARGS__))
#define KASSERT(e) ((e) ? (void)0 : \
__assert("diagnostic ", __FILE__, __LINE__, "e"))
#endif
#endif
#ifndef DEBUG
+#define KDASSERTMSG(e, msg, ...) ((void)0)
#define KDASSERT(e) ((void)0)
#else
#ifdef __STDC__
+#define KDASSERTMSG(e, msg, ...) ((e) ? (void)0 : \
+ panic(__KASSERTSTR " " msg, "debugging ", #e, \
+ __FILE__, __LINE__, ## __VA_ARGS__))
#define KDASSERT(e) ((e) ? (void)0 : \
__assert("debugging ", __FILE__, __LINE__, #e))
#else
+#define KDASSERTMSG(e, msg, ...) ((e) ? (void)0 : \
+ panic(__KASSERTSTR " " msg, "debugging ", "e", \
+ __FILE__, __LINE__, ## __VA_ARGS__))
#define KDASSERT(e) ((e) ? (void)0 : \
__assert("debugging ", __FILE__, __LINE__, "e"))
#endif