summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2010-02-28 18:13:09 +0000
committerStefan Reinauer <stepan@openbios.org>2010-02-28 18:13:09 +0000
commit55259bd73ba89ec648d9bfc29aa9583fb089903f (patch)
treec30a7bc3a359666a1e53712dc83444cb1219008c
parent2b7fd32c33eb688c1c1c1a74f5015d94edac6b16 (diff)
assert.h: have the same information on asserts in romcc and non-romcc code.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Ronald G. Minnich <rminnich@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5170 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/include/assert.h81
1 files changed, 46 insertions, 35 deletions
diff --git a/src/include/assert.h b/src/include/assert.h
index 6d65ffdbdf..1c60eaa287 100644
--- a/src/include/assert.h
+++ b/src/include/assert.h
@@ -1,12 +1,12 @@
/*
* This file is part of the coreboot project.
+ *
+ * Copyright (C) 2010 coresystems GmbH
*
- * Copyright (C) 2005 Digital Design Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,41 +15,52 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
*/
-/*
- * assert.h: Debugging macros
- */
+#ifndef __ASSERT_H__
+#define __ASSERT_H__
-#ifndef __ASSERT_H_DEFINED
-#define __ASSERT_H_DEFINED
+#if defined(__PRE_RAM__) && !CONFIG_USE_PRINTK_IN_CAR
-// ROMCC doesn't support __FILE__ or __LINE__ :^{
+/* ROMCC versions */
+#define ASSERT(x) { \
+ if(!(x)) { \
+ print_emerg("ASSERTION FAILED: file '"); \
+ print_emerg(__FILE__); \
+ print_emerg("', line 0x"); \
+ print_debug_hex32(__LINE__); \
+ print_emerg("\r\n"); \
+ /* die(""); */ \
+ } \
+}
-#if CONFIG_DEBUG
-#ifdef __PRE_RAM__
-#define ASSERT(x) { if (!(x)) die("ASSERT failure!\r\n"); }
-#else
-#define ASSERT(x) { \
- if (!(x)) \
- { \
- printk_emerg("ASSERT failure: file '%s', line %d\n", __FILE__, __LINE__); \
- die(""); \
- } \
- }
-#endif // __ROMCC__
-#else // !CONFIG_DEBUG
-#define ASSERT(x) { }
-#endif
+#define BUG() { \
+ print_emerg("BUG ENCOUNTERED: SYSTEM HALTED at file '");\
+ print_emerg(__FILE__); \
+ print_emerg("', line 0x"); \
+ print_debug_hex32(__LINE__); \
+ print_emerg("\r\n"); \
+ /* die(""); */ \
+}
-#ifdef __PRE_RAM__
-#define BUG() { die("BUG encountered: system halted\r\n"); }
#else
-#define BUG() { \
- printk_emerg("BUG: file '%s', line %d\n", __FILE__, __LINE__); \
- die(""); \
- }
+
+/* GCC and CAR versions */
+#define ASSERT(x) { \
+ if (!(x)) { \
+ printk_emerg("ASSERTION FAILED: file '%s', " \
+ " line %d\n", __FILE__, __LINE__); \
+ /* die(""); */ \
+ } \
+}
+#define BUG() { \
+ printk_emerg("BUG ENCOUNTERED: SYSTEM HALTED at file '%s', " \
+ " line %d\n", __FILE__, __LINE__); \
+ /* die(""); */ \
+}
+
#endif
-#endif // __ASSERT_H_DEFINED
+#endif // __ASSERT_H__