__trace.h

来自「一个最简单的SCSI miniport」· C头文件 代码 · 共 87 行

H
87
字号
#ifndef TRACE_H_
#define TRACE_H_

#include <assert.h>
#ifndef ASSERT
#define ASSERT  assert
#endif

#ifdef  TRACE

    #ifndef TRACE_BUFFSIZE
    #define TRACE_BUFFSIZE  260
    #endif

    #ifdef  __cplusplus
    extern "C"
    {
    #endif

    const char * __TRACE_szLogFile();
    #define  TRACE_LOGFILENAME( name )   const char * __TRACE_szLogFile(){ return name; }
    
    #ifdef   TRACE_LOGFILE

    void __LOGFILE_printf(LPCSTR szFmt, ...);
    #define  TRACE_printf    __LOGFILE_printf

    #elif   defined(WDM)

    #define  TRACE_printf    DbgPrint

    #else

    void __DEBUG_printf(LPCSTR szFmt, ...);
    #define  TRACE_printf    __DEBUG_printf

    #endif

    #ifdef  __cplusplus
    }
    #endif

	#define	TRACE_PRINTF( expr )	TRACE_printf expr

    #define TRACE_PRINT(sz)                                 TRACE_printf( (sz) )
    #define TRACE_PRINT1(szFmt, var)                        TRACE_printf( (szFmt), (var) )
    #define TRACE_PRINT2(szFmt, var1, var2)                 \
                TRACE_printf( (szFmt), (var1), (var2) )
    #define TRACE_PRINT3(szFmt, var1, var2, var3)           \
                TRACE_printf( (szFmt), (var1), (var2), (var3) )
    #define TRACE_PRINT4(szFmt, var1, var2, var3, var4)     \
                TRACE_printf( (szFmt), (var1), (var2), (var3), (var4) )

	#define	TRACE_PRINTF_IF( condition, expr )	(void)( (condition)?(TRACE_printf expr ),1):0 )

    #define TRACE_PRINT_IF(condition, sz)                                \
                (void)( (condition)?(TRACE_printf( (sz) ),1):0 )
    #define TRACE_PRINT1_IF(condition, szFmt, var)                       \
                (void)( (condition)?(TRACE_printf( (szFmt), (var) ),1):0 )
    #define TRACE_PRINT2_IF(condition, szFmt, var1, var2)                \
                (void)( (condition)?(TRACE_printf( (szFmt), (var1), (var2) ),1):0 )
    #define TRACE_PRINT3_IF(condition, szFmt, var1, var2, var3)          \
                (void)( (condition)?(TRACE_printf( (szFmt), (var1), (var2), (var3) ),1):0 )
    #define TRACE_PRINT4_IF(condition, szFmt, var1, var2, var3, var4)    \
                (void)( (condition)?(TRACE_printf( (szFmt), (var1), (var2), (var3), (var4) ),1):0 )

#else

    #define  TRACE_LOGFILENAME( name )   

	#define	TRACE_PRINTF( expr )                        ((void)0)

    #define TRACE_PRINT(sz)                             ((void)0)
    #define TRACE_PRINT1(szFmt, var)                    ((void)0)
    #define TRACE_PRINT2(szFmt, var1, var2)             ((void)0)
    #define TRACE_PRINT3(szFmt, var1, var2, var3)       ((void)0)
    #define TRACE_PRINT4(szFmt, var1, var2, var3, var4) ((void)0)

    #define TRACE_PRINT_IF(condition, sz)                              ((void)0)
    #define TRACE_PRINT1_IF(condition, szFmt, var)                     ((void)0)
    #define TRACE_PRINT2_IF(condition, szFmt, var1, var2)              ((void)0)
    #define TRACE_PRINT3_IF(condition, szFmt, var1, var2, var3)        ((void)0)
    #define TRACE_PRINT4_IF(condition, szFmt, var1, var2, var3, var4)  ((void)0)

#endif  //  #ifdef  TRACE

#endif

⌨️ 快捷键说明

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