- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

# /space/home/slher/rel/Beken/v6_4_5/macsw/modules/dbg/src/dbg_assert.h

Go to the documentation of this file.

    00001
    00013 #ifndef _DBG_ASSERT_H_
    00014 #define _DBG_ASSERT_H_
    00015
    00025 /*
    00026  * INCLUDE FILES
    00027  ****************************************************************************************
    00028  */
    00029 #include "rwnx_config.h"
    00030 #include "compiler.h"
    00031
    00032 /*
    00033  * DEFINES
    00034  ****************************************************************************************
    00035  */
    00036 #if NX_TRACE
    00038 #define LINE_NB ((TRACE_FILE_ID << 20) + (__LINE__ & 0xfffff))
    00039 #else
    00041 #define LINE_NB __LINE__
    00042 #endif
    00043
    00044 /*
    00045  * ASSERTION CHECK
    00046  ****************************************************************************************
    00047  */
    00056 void dbg_force_trigger(const char *msg);
    00057
    00067 void dbg_assert_rec(const char *condition, const char * file, int line);
    00068
    00078 void dbg_assert_err(const char *condition, const char * file, int line);
    00079
    00089 void dbg_assert_warn(const char *condition, const char * file, int line);
    00090
    00092 #if (NX_DEBUG > 1)
    00093 #define ASSERT(type, cond) dbg_assert_##type(cond, __MODULE__, LINE_NB)
    00094 #elif (NX_DEBUG > 0)
    00095 #define ASSERT(type, cond) dbg_assert_##type("", __MODULE__, LINE_NB)
    00096 #else
    00097 #define ASSERT(type, cond) dbg_assert_##type("", "", 0)
    00098 #endif
    00099
    00100 #if NX_DEBUG
    00102 #define ASSERT_ERR(cond)                                                                 \
    00103     do {                                                                                 \
    00104         if (!(cond)) {                                                                   \
    00105             ASSERT(err, #cond);                                                          \
    00106         }                                                                                \
    00107     } while(0)
    00108
    00110 #define ASSERT_ERR2(cond, param0, param1) ASSERT_ERR(cond)
    00111
    00113 #define ASSERT_WARN(cond)                                                                \
    00114     do {                                                                                 \
    00115         if (!(cond)) {                                                                   \
    00116             ASSERT(warn, #cond);                                                         \
    00117         }                                                                                \
    00118     } while(0)
    00119 #else
    00121 #define ASSERT_ERR(cond)
    00123 #define ASSERT_ERR2(cond, param0, param1)
    00125 #define ASSERT_WARN(cond)
    00126 #endif
    00127
    00128 #if NX_RECOVERY
    00130 #define ASSERT_REC(cond)                                                                 \
    00131     ({                                                                                   \
    00132         if (!(cond)) {                                                                   \
    00133             ASSERT(rec, #cond);                                                          \
    00134             return;                                                                      \
    00135         }                                                                                \
    00136     })
    00137
    00139 #define ASSERT_REC_VAL(cond, ret)                                                        \
    00140     ({                                                                                   \
    00141         if (!(cond)) {                                                                   \
    00142             ASSERT(rec, #cond);                                                          \
    00143             return (ret);                                                                \
    00144         }                                                                                \
    00145     })
    00146
    00148 #define ASSERT_REC_NO_RET(cond)                                                          \
    00149     ({                                                                                   \
    00150         if (!(cond)) {                                                                   \
    00151             ASSERT(rec, #cond);                                                          \
    00152         }                                                                                \
    00153     })
    00154 #else
    00156 #define ASSERT_REC(cond)             ASSERT_ERR(cond)
    00157
    00159 #define ASSERT_REC_VAL(cond, ret)    ASSERT_ERR(cond)
    00160
    00162 #define ASSERT_REC_NO_RET(cond)      ASSERT_ERR(cond)
    00163 #endif
    00164
    00165
    00167
    00168 #endif // _DBG_ASSERT_H_