Changeset 5170


Ignore:
Timestamp:
Feb 28, 2010 7:13:09 PM (3 years ago)
Author:
stepan
Message:

assert.h: have the same information on asserts in romcc and non-romcc code.

Signed-off-by: Stefan Reinauer <stepan@…>
Acked-by: Ronald G. Minnich <rminnich@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/include/assert.h

    r5127 r5170  
    11/* 
    22 * This file is part of the coreboot project. 
     3 *  
     4 * Copyright (C) 2010 coresystems GmbH 
    35 * 
    4  * Copyright (C) 2005 Digital Design Corporation 
    5  * 
    6  * This program is free software; you can redistribute it and/or modify 
    7  * it under the terms of the GNU General Public License as published by 
    8  * the Free Software Foundation; either version 2 of the License, or 
    9  * (at your option) any later version. 
     6 * This program is free software; you can redistribute it and/or 
     7 * modify it under the terms of the GNU General Public License as 
     8 * published by the Free Software Foundation; version 2 of 
     9 * the License. 
    1010 * 
    1111 * This program is distributed in the hope that it will be useful, 
     
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
     18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, 
     19 * MA 02110-1301 USA 
    1920 */ 
    2021 
    21 /* 
    22  * assert.h: Debugging macros 
    23  */ 
     22#ifndef __ASSERT_H__ 
     23#define __ASSERT_H__ 
    2424 
    25 #ifndef __ASSERT_H_DEFINED 
    26 #define __ASSERT_H_DEFINED 
     25#if defined(__PRE_RAM__) && !CONFIG_USE_PRINTK_IN_CAR 
    2726 
    28 // ROMCC doesn't support __FILE__ or __LINE__  :^{ 
     27/* ROMCC versions */ 
     28#define ASSERT(x) {                                             \ 
     29        if(!(x)) {                                              \ 
     30                print_emerg("ASSERTION FAILED: file '");        \ 
     31                print_emerg(__FILE__);                          \ 
     32                print_emerg("', line 0x");                      \ 
     33                print_debug_hex32(__LINE__);                    \ 
     34                print_emerg("\r\n");                            \ 
     35                /* die(""); */                                  \ 
     36        }                                                       \ 
     37} 
    2938 
    30 #if CONFIG_DEBUG 
    31 #ifdef __PRE_RAM__ 
    32 #define ASSERT(x)       { if (!(x)) die("ASSERT failure!\r\n"); } 
     39#define BUG() {                                                 \ 
     40        print_emerg("BUG ENCOUNTERED: SYSTEM HALTED at file '");\ 
     41        print_emerg(__FILE__);                                  \ 
     42        print_emerg("', line 0x");                              \ 
     43        print_debug_hex32(__LINE__);                            \ 
     44        print_emerg("\r\n");                                    \ 
     45        /* die(""); */                                          \ 
     46} 
     47 
    3348#else 
    34 #define ASSERT(x)       {                               \ 
    35                                                 if (!(x))       \ 
    36                                                 {                       \ 
    37                                                         printk_emerg("ASSERT failure: file '%s', line %d\n", __FILE__, __LINE__); \ 
    38                                                         die(""); \ 
    39                                                 }                       \ 
    40                                         } 
    41 #endif          // __ROMCC__ 
    42 #else           // !CONFIG_DEBUG 
    43 #define ASSERT(x)       { } 
    44 #endif 
    4549 
    46 #ifdef __PRE_RAM__ 
    47 #define BUG()           {       die("BUG encountered: system halted\r\n");  } 
    48 #else 
    49 #define BUG()           {                               \ 
    50                                                 printk_emerg("BUG: file '%s', line %d\n", __FILE__, __LINE__); \ 
    51                                                 die(""); \ 
    52                                         } 
     50/* GCC and CAR versions */ 
     51#define ASSERT(x) {                                             \ 
     52        if (!(x)) {                                             \ 
     53                printk_emerg("ASSERTION FAILED: file '%s', "    \ 
     54                        " line %d\n", __FILE__, __LINE__);      \ 
     55                /* die(""); */                                  \ 
     56        }                                                       \ 
     57} 
     58#define BUG() {                                                 \ 
     59        printk_emerg("BUG ENCOUNTERED: SYSTEM HALTED at file '%s', "    \ 
     60                " line %d\n", __FILE__, __LINE__);              \ 
     61        /* die(""); */                                          \ 
     62} 
     63 
    5364#endif 
    5465                                         
    55 #endif  // __ASSERT_H_DEFINED 
     66#endif  // __ASSERT_H__ 
Note: See TracChangeset for help on using the changeset viewer.