Changeset 5170


Ignore:
Timestamp:
Feb 28, 2010, 7:13:09 PM (5 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.