Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/debug.h

    r0843f02 rf651e80  
    3737
    3838#include <panic.h>
    39 #include <symtab.h>
     39#include <arch/debug.h>
    4040
    41 #define CALLER  ((uintptr_t) __builtin_return_address(0))
     41#define CALLER ((uintptr_t) __builtin_return_address(0))
    4242
    43 #ifdef CONFIG_DEBUG
     43#ifndef HERE
     44/** Current Instruction Pointer address */
     45#       define HERE ((uintptr_t *) 0)
     46#endif
    4447
    4548/** Debugging ASSERT macro
     
    5255 *
    5356 */
    54 #define ASSERT(expr) \
    55         do { \
    56                 if (!(expr)) \
    57                         panic_assert("%s() at %s:%u:\n%s", \
    58                             __func__, __FILE__, __LINE__, #expr); \
    59         } while (0)
    60 
    61 /** Debugging verbose ASSERT macro
    62  *
    63  * If CONFIG_DEBUG is set, the ASSERT() macro
    64  * evaluates expr and if it is false raises
    65  * kernel panic. The panic message contains also
    66  * the supplied message.
    67  *
    68  * @param expr Expression which is expected to be true.
    69  * @param msg  Additional message to show (string).
    70  *
    71  */
    72 #define ASSERT_VERBOSE(expr, msg) \
    73         do { \
    74                 if (!(expr)) \
    75                         panic_assert("%s() at %s:%u:\n%s, %s", \
    76                             __func__, __FILE__, __LINE__, #expr, msg); \
    77         } while (0)
    78 
    79 #else /* CONFIG_DEBUG */
    80 
    81 #define ASSERT(expr)
    82 #define ASSERT_VERBOSE(expr, msg)
    83 
    84 #endif /* CONFIG_DEBUG */
    85 
    86 #ifdef CONFIG_LOG
     57#ifdef CONFIG_DEBUG
     58#       define ASSERT(expr) \
     59                if (!(expr)) { \
     60                        panic("Assertion failed (%s), caller=%p.", #expr, CALLER); \
     61                }
     62#else
     63#       define ASSERT(expr)
     64#endif
    8765
    8866/** Extensive logging output macro
     
    9371 *
    9472 */
    95 #define LOG(format, ...) \
    96         do { \
    97                 printf("%s() from %s at %s:%u: " format "\n", __func__, \
    98                     symtab_fmt_name_lookup(CALLER), __FILE__, __LINE__, \
    99                     ##__VA_ARGS__); \
    100         } while (0)
    10173
    102 #else /* CONFIG_LOG */
     74#ifdef CONFIG_LOG
     75#       define LOG(format, ...) \
     76                printf("%s() at %s:%u: " format "\n", __func__, __FILE__, \
     77                        __LINE__, ##__VA_ARGS__);
     78#else
     79#       define LOG(format, ...)
     80#endif
    10381
    104 #define LOG(format, ...)
     82/** Extensive logging execute macro
     83 *
     84 * If CONFIG_LOG is set, the LOG_EXEC() macro
     85 * will print an information about calling a given
     86 * function and call it.
     87 *
     88 */
    10589
    106 #endif /* CONFIG_LOG */
     90#ifdef CONFIG_LOG
     91#       define LOG_EXEC(fnc) \
     92                { \
     93                        printf("%s() at %s:%u: " #fnc "\n", __func__, __FILE__, \
     94                        __LINE__); \
     95                        fnc; \
     96                }
     97#else
     98#       define LOG_EXEC(fnc) fnc
     99#endif
    107100
    108 #ifdef CONFIG_TRACE
    109 
    110 extern void __cyg_profile_func_enter(void *, void *);
    111 extern void __cyg_profile_func_exit(void *, void *);
    112 
    113 #endif /* CONFIG_TRACE */
    114101
    115102#endif
Note: See TracChangeset for help on using the changeset viewer.