⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cyg_trac.h

📁 实现快速傅立叶变换算法,provides test framwork for FFT testing
💻 H
📖 第 1 页 / 共 5 页
字号:
    CYG_ASSERT( NULL == cyg_tracefunction_report_.exitmsg,              \
                "exitvoid used in typed function" );                    \
    CYG_ASSERT( 0 == cyg_tracefunction_report_.exitset,                 \
                "exitvoid used when arg already set" );                 \
    cyg_tracefunction_report_.lnum = __LINE__;                          \
    cyg_tracefunction_report_.exitset = 2;                              \
    if ( cyg_tracefunction_report_.cond )                               \
      cyg_tracemsg( cyg_trace_return,                                   \
                    cyg_tracefunction_report_.func,                     \
                    cyg_tracefunction_report_.file,                     \
                    cyg_tracefunction_report_.lnum,                     \
                    "return void" );                                    \
CYG_MACRO_END

#define CYG_REPORT_RETVAL( _value_ ) CYG_MACRO_START                    \
    CYG_ASSERT( 0 == cyg_tracefunction_report_.exitset,                 \
                "exitvalue used when arg already set" );                \
    cyg_tracefunction_report_.lnum = __LINE__;                          \
    cyg_tracefunction_report_.exitvalue = (CYG_ADDRWORD)(_value_);      \
    cyg_tracefunction_report_.exitset = 1;                              \
    if ( cyg_tracefunction_report_.cond )                               \
      cyg_tracemsg2( cyg_trace_return,                                  \
                     cyg_tracefunction_report_.func,                    \
                     cyg_tracefunction_report_.file,                    \
                     cyg_tracefunction_report_.lnum,                    \
                     cyg_tracefunction_report_.exitmsg ?                \
                        cyg_tracefunction_report_.exitmsg :             \
                        "return %08x",                                  \
                     cyg_tracefunction_report_.exitvalue, 0 );          \
CYG_MACRO_END

#else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE

#define CYG_REPORT_RETURN() CYG_MACRO_START                             \
    cyg_tracefunction_report_.lnum = __LINE__;                          \
    if ( cyg_tracefunction_report_.cond )                               \
      cyg_tracenomsg( cyg_tracefunction_report_.func,                   \
                      cyg_tracefunction_report_.file,                   \
                      cyg_tracefunction_report_.lnum );                 \
CYG_MACRO_END

#define CYG_REPORT_RETVAL( _value_ ) CYG_MACRO_START                    \
    CYG_REPORT_RETURN();                                                \
CYG_MACRO_END

#endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE

#endif // not __cplusplus

#ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE

#define CYG_REPORT_FUNCARGVOID() CYG_MACRO_START                        \
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg(  cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   "(void)"                                             \
                   );                                                   \
CYG_MACRO_END

#define CYG_REPORT_FUNCARG1( _format_, a ) CYG_MACRO_START              \
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg2( cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   (_format_),                                          \
                   (CYG_ADDRWORD)a      , 0                             \
                   );                                                   \
CYG_MACRO_END
    
#define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_MACRO_START            \
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg2( cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   (_format_),                                          \
                   (CYG_ADDRWORD)a, (CYG_ADDRWORD)b                     \
                   );                                                   \
CYG_MACRO_END

#define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_MACRO_START          \
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg4( cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   (_format_),                                          \
                   (CYG_ADDRWORD)a, (CYG_ADDRWORD)b,                    \
                   (CYG_ADDRWORD)c      , 0                             \
                   );                                                   \
CYG_MACRO_END

#define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_MACRO_START        \
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg4( cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   (_format_),                                          \
                   (CYG_ADDRWORD)a, (CYG_ADDRWORD)b,                    \
                   (CYG_ADDRWORD)c, (CYG_ADDRWORD)d                     \
                   );                                                   \
CYG_MACRO_END

#define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_MACRO_START      \
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg6( cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   (_format_),                                          \
                   (CYG_ADDRWORD)a, (CYG_ADDRWORD)b,                    \
                   (CYG_ADDRWORD)c, (CYG_ADDRWORD)d,                    \
                   (CYG_ADDRWORD)e      , 0                             \
                   );                                                   \
CYG_MACRO_END

#define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_MACRO_START    \
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg6( cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   (_format_),                                          \
                   (CYG_ADDRWORD)a, (CYG_ADDRWORD)b,                    \
                   (CYG_ADDRWORD)c, (CYG_ADDRWORD)d,                    \
                   (CYG_ADDRWORD)e, (CYG_ADDRWORD)f                     \
                   );                                                   \
CYG_MACRO_END

#define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_MACRO_START  \
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg8( cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   (_format_),                                          \
                   (CYG_ADDRWORD)a, (CYG_ADDRWORD)b,                    \
                   (CYG_ADDRWORD)c, (CYG_ADDRWORD)d,                    \
                   (CYG_ADDRWORD)e, (CYG_ADDRWORD)f,                    \
                   (CYG_ADDRWORD)g      , 0                             \
                   );                                                   \
CYG_MACRO_END

#define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_MACRO_START\
  if ( cyg_tracefunction_report_.cond )                                 \
    cyg_tracemsg8( cyg_trace_args,                                      \
                   cyg_tracefunction_report_.func,                      \
                   cyg_tracefunction_report_.file,                      \
                   cyg_tracefunction_report_.lnum,                      \
                   (_format_),                                          \
                   (CYG_ADDRWORD)a, (CYG_ADDRWORD)b,                    \
                   (CYG_ADDRWORD)c, (CYG_ADDRWORD)d,                    \
                   (CYG_ADDRWORD)e, (CYG_ADDRWORD)f,                    \
                   (CYG_ADDRWORD)g, (CYG_ADDRWORD)h                     \
                   );                                                   \
CYG_MACRO_END


#else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE

#define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT

#endif  // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE

#else   // no CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS

#define CYG_REPORT_FUNCTION()                           CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTYPE( _exitmsg_ )                CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAME( _name_ )                   CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_  )   CYG_EMPTY_STATEMENT

#define CYG_REPORT_FUNCTIONC()                          CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTYPEC( _exitmsg_ )               CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMEC( _name_ )                  CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_  )  CYG_EMPTY_STATEMENT

#define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT

#define CYG_REPORT_RETURN()                             CYG_EMPTY_STATEMENT
#define CYG_REPORT_RETVAL( _value_ )                    CYG_EMPTY_STATEMENT
    
#endif  // CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS
    
#else   // ! CYGDBG_USE_TRACING

// -------------------------------------------------------------------------
// No traces: we define empty statements for trace macros.

#define CYG_TRACE0( _bool_, _msg_  ) CYG_EMPTY_STATEMENT
#define CYG_TRACE1( _bool_, _msg_, a ) CYG_EMPTY_STATEMENT
#define CYG_TRACE2( _bool_, _msg_, a,b ) CYG_EMPTY_STATEMENT
#define CYG_TRACE3( _bool_, _msg_, a,b,c ) CYG_EMPTY_STATEMENT
#define CYG_TRACE4( _bool_, _msg_, a,b,c,d ) CYG_EMPTY_STATEMENT
#define CYG_TRACE5( _bool_, _msg_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
#define CYG_TRACE6( _bool_, _msg_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
#define CYG_TRACE7( _bool_, _msg_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
#define CYG_TRACE8( _bool_, _msg_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT

#define CYG_REPORT_FUNCTION()                           CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTYPE( _exitmsg_ )                CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAME( _name_ )                   CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_  )   CYG_EMPTY_STATEMENT

#define CYG_REPORT_FUNCTIONC()                          CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTYPEC( _exitmsg_ )               CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMEC( _name_ )                  CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_  )  CYG_EMPTY_STATEMENT

#define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT

#define CYG_REPORT_RETURN()                             CYG_EMPTY_STATEMENT
#define CYG_REPORT_RETVAL( _value_ )                    CYG_EMPTY_STATEMENT

#define CYG_TRACE_PRINT() CYG_EMPTY_STATEMENT
#define CYG_TRACE_DUMP()  CYG_EMPTY_STATEMENT

#endif // ! CYGDBG_USE_TRACING

// -------------------------------------------------------------------------
//
// CYG_TRACEn{[XDY]{V}}{B}
//
// Convenience macros: these fall into a few dimensions, with suffix letters:
// First option:
//     X: user need not supply a format string, %08x is used
//     D: ditto but signed decimal, %d
//     Y: ditto but just plain %x
// Second option, only meaningful with one of XDY:
//     V: "<var> = %..." is used, by stringifying the argument
// Third option:
//     B: user need not supply a bool; the symbol CYG_TRACE_USER_BOOL is
//        used (which we do not define, user must do this)

#define CYG_TRACE0B( _msg_  ) \
        CYG_TRACE0( CYG_TRACE_USER_BOOL, _msg_  ) 
#define CYG_TRACE1B( _msg_, a ) \
        CYG_TRACE1( CYG_TRACE_USER_BOOL, _msg_, a ) 
#define CYG_TRACE2B( _msg_, a,b ) \
        CYG_TRACE2( CYG_TRACE_USER_BOOL, _msg_, a,b ) 
#define CYG_TRACE3B( _msg_, a,b,c ) \
        CYG_TRACE3( CYG_TRACE_USER_BOOL, _msg_, a,b,c ) 
#define CYG_TRACE4B( _msg_, a,b,c,d ) \
        CYG_TRACE4( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d ) 
#define CYG_TRACE5B( _msg_, a,b,c,d,e ) \
        CYG_TRACE5( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e ) 
#define CYG_TRACE6B( _msg_, a,b,c,d,e,f ) \
        CYG_TRACE6( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f ) 
#define CYG_TRACE7B( _msg_, a,b,c,d,e,f,g ) \
        CYG_TRACE7( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f,g ) 
#define CYG_TRACE8B( _msg_, a,b,c,d,e,f,g,h ) \
        CYG_TRACE8( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f,g,h ) 

// long hex versions

#define CYG_TRACE1X( _bool_, a ) \
        CYG_TRACE1( _bool_, "%08x", a ) 
#define CYG_TRACE2X( _bool_, a,b ) \
        CYG_TRACE2( _bool_, "%08x %08x", a,b ) 
#define CYG_TRACE3X( _bool_, a,b,c ) \
        CYG_TRACE3( _bool_, "%08x %08x %08x", a,b,c ) 
#define CYG_TRACE4X( _bool_, a,b,c,d ) \
        CYG_TRACE4( _bool_, "%08x %08x %08x %08x", a,b,c,d ) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -