summaryrefslogtreecommitdiff
path: root/kern/assert.h
diff options
context:
space:
mode:
authorThomas Bushnell <thomas@gnu.org>1997-02-25 21:28:37 +0000
committerThomas Bushnell <thomas@gnu.org>1997-02-25 21:28:37 +0000
commitf07a4c844da9f0ecae5bbee1ab94be56505f26f7 (patch)
tree12b07c7e578fc1a5f53dbfde2632408491ff2a70 /kern/assert.h
Initial source
Diffstat (limited to 'kern/assert.h')
-rw-r--r--kern/assert.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/kern/assert.h b/kern/assert.h
new file mode 100644
index 0000000..f98662b
--- /dev/null
+++ b/kern/assert.h
@@ -0,0 +1,58 @@
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
+ * School of Computer Science
+ * Carnegie Mellon University
+ * Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+#ifndef _KERN_ASSERT_H_
+#define _KERN_ASSERT_H_
+
+/* assert.h 4.2 85/01/21 */
+
+#include <kern/macro_help.h>
+
+#ifdef DEBUG
+#define MACH_ASSERT 1
+#endif
+
+#if MACH_ASSERT
+extern void Assert(char *exp, char *filename, int line);
+
+#define assert(ex) \
+MACRO_BEGIN \
+ if (!(ex)) \
+ Assert(#ex, __FILE__, __LINE__); \
+MACRO_END
+
+#ifdef lint
+#define assert_static(x)
+#else lint
+#define assert_static(x) assert(x)
+#endif lint
+
+#else MACH_ASSERT
+#define assert(ex)
+#define assert_static(ex)
+#endif MACH_ASSERT
+
+#endif _KERN_ASSERT_H_