diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/assert.h | 81 |
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__ |