Author: stepan Date: Sun Feb 28 19:13:09 2010 New Revision: 5170 URL: http://tracker.coreboot.org/trac/coreboot/changeset/5170
Log: 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
Modified: trunk/src/include/assert.h
Modified: trunk/src/include/assert.h ============================================================================== --- trunk/src/include/assert.h Sat Feb 27 14:11:34 2010 (r5169) +++ trunk/src/include/assert.h Sun Feb 28 19:13:09 2010 (r5170) @@ -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__