windows-nt/Source/XPSP1/NT/net/tcpip/tpipv6/6to4svc/trace.h
2020-09-26 16:20:57 +08:00

176 lines
6.6 KiB
C

//----------------------------------------------------------------------------
// constants used for g_dwLoggingLevel
//----------------------------------------------------------------------------
#define IPA_LOGGING_NONE 0
#define IPA_LOGGING_ERROR 1
#define IPA_LOGGING_WARN 2
#define IPA_LOGGING_INFO 3
// constants and macros used for tracing
//
#define IPA_TRACE_ANY ((DWORD)0xFFFF0000 | TRACE_USE_MASK)
#define IPA_TRACE_ERR ((DWORD)0x00010000 | TRACE_USE_MASK)
#define IPA_TRACE_ENTER ((DWORD)0x00020000 | TRACE_USE_MASK)
#define IPA_TRACE_LEAVE ((DWORD)0x00020000 | TRACE_USE_MASK)
#define IPA_TRACE_START ((DWORD)0x00020000 | TRACE_USE_MASK)
#define IPA_TRACE_STOP ((DWORD)0x00020000 | TRACE_USE_MASK)
#define IPA_TRACE_MSG ((DWORD)0x00040000 | TRACE_USE_MASK)
#define IPA_TRACE_SOCKET ((DWORD)0x00080000 | TRACE_USE_MASK)
#define IPA_TRACE_FSM ((DWORD)0x00100000 | TRACE_USE_MASK)
#define IPA_TRACE_REF ((DWORD)0x10000000 | TRACE_USE_MASK)
#define IPA_TRACE_TIMER ((DWORD)0x20000000 | TRACE_USE_MASK)
#define IPA_TRACE_CS ((DWORD)0x40000000 | TRACE_USE_MASK)
#define IPA_TRACE_CS1 ((DWORD)0x80000000 | TRACE_USE_MASK)
#ifdef LOCK_DBG
#define ENTER_CRITICAL_SECTION(pcs, type, proc) \
Trace0(CS,_T("----To enter ") _T(type) _T(" in ") _T(proc)); \
EnterCriticalSection(pcs); \
Trace0(CS,_T("----Entered ") _T(type) _T(" in ") _T(proc));
//#define ENTER_CRITICAL_SECTION(pcs, type, proc) \
// Trace2(CS,_T("----To enter %s in %s"), type, proc); \
// EnterCriticalSection(pcs); \
// Trace2(CS1,_T("----Entered %s in %s"), type, proc)
#define LEAVE_CRITICAL_SECTION(pcs, type, proc) \
Trace0(CS,_T("----Left ") _T(type) _T(" in ") _T(proc)); \
LeaveCriticalSection(pcs)
//#define LEAVE_CRITICAL_SECTION(pcs, type, proc) \
// Trace2(CS1,_T("----Left %s in %s"), type, proc); \
// LeaveCriticalSection(pcs)
#define WAIT_FOR_SINGLE_OBJECT( event, time, type, proc) \
Trace2(EVENT, _T("++++To wait for singleObj %s in %s"), type, proc); \
WaitForSingleObject(event, time); \
Trace2(EVENT, _T("++++WaitForSingleObj returned %s in %s"), type, proc)
#define SET_EVENT(event, type, proc) \
Trace2(EVENT, _T("++++SetEvent %s in %s"), type, proc); \
SetEvent(event)
#else
#define ENTER_CRITICAL_SECTION(pcs, type, proc) \
EnterCriticalSection(pcs)
#define LEAVE_CRITICAL_SECTION(pcs, type, proc) \
LeaveCriticalSection(pcs)
#define WAIT_FOR_SINGLE_OBJECT( event, time, type, proc) \
WaitForSingleObject(event, time)
#define SET_EVENT(event, type, proc) \
SetEvent(event)
#endif // LOCK_DBG
#define TRACEID g_TraceId
#define Trace0(l,a) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a)
#define Trace1(l,a,b) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b)
#define Trace2(l,a,b,c) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b, c)
#define Trace3(l,a,b,c,d) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b, c, d)
#define Trace4(l,a,b,c,d,e) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b, c, d, e)
#define Trace5(l,a,b,c,d,e,f) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b, c, d, e, f)
#define Trace6(l,a,b,c,d,e,f,g) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b, c, d, e, f,g)
#define Trace7(l,a,b,c,d,e,f,g,h) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b, c, d, e, f,g,h)
#define Trace8(l,a,b,c,d,e,f,g,h,i) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b, c, d, e, f,g,h,i)
#define Trace9(l,a,b,c,d,e,f,g,h,i,j) \
TracePrintfEx(TRACEID, IPA_TRACE_ ## l, a, b, c, d, e, f,g,h,i,j)
#define TRACEDUMP(l,a,b,c) \
TraceDumpEx(TRACEID,l,a,b,c,TRUE)
#ifdef ENTER_DBG
#define TraceEnter(X) TracePrintfEx(TRACEID, IPA_TRACE_ENTER, \
_T("Entered: ")_T(X))
#define TraceLeave(X) TracePrintfEx(TRACEID, IPA_TRACE_ENTER, \
_T("Leaving: ")_T(X))
#else
#define TraceEnter(X)
#define TraceLeave(X)
#endif // ENTER_DBG
#define LOGLEVEL g_dwLoggingLevel
#define LOGHANDLE g_LogHandle
#define LOGERR RouterLogError
// Error logging
#define Logerr0(msg,err) \
if (LOGLEVEL >= IPA_LOGGING_ERROR) \
LOGERR(LOGHANDLE,IPALOG_ ## msg,0,NULL,(err))
#define Logerr1(msg,a,err) \
if (LOGLEVEL >= IPA_LOGGING_ERROR) \
LOGERR(LOGHANDLE,IPALOG_ ## msg,1,&(a),(err))
#define Logerr2(msg,a,b,err) \
if (LOGLEVEL >= IPA_LOGGING_ERROR) { \
LPSTR _asz[2] = { (a), (b) }; \
LOGERR(LOGHANDLE,IPALOG_ ## msg,2,_asz,(err)); \
}
#define Logerr3(msg,a,b,c,err) \
if (LOGLEVEL >= IPA_LOGGING_ERROR) { \
LPSTR _asz[3] = { (a), (b), (c) }; \
LOGERR(LOGHANDLE,IPALOG_ ## msg,3,_asz,(err)); \
}
#define Logerr4(msg,a,b,c,d,err) \
if (LOGLEVEL >= IPA_LOGGING_ERROR) { \
LPSTR _asz[4] = { (a), (b), (c), (d) }; \
LOGERR(LOGHANDLE,IPALOG_ ## msg,4,_asz,(err)); \
}
//-----------------------------------------------------------------------------
// INITIALIZE_TRACING_LOGGING
//-----------------------------------------------------------------------------
//
// also set the default logging level. It will be reset during
// StartProtocol(), when logging level is set as part of global config
//
#define INITIALIZE_TRACING_LOGGING() { \
TRACEID = TraceRegister(_T("6to4")); \
LOGHANDLE = RouterLogRegister(_T("6to4")); \
LOGLEVEL = IPA_LOGGING_WARN; \
}
//-----------------------------------------------------------------------------
// UNINITIALIZE_TRACING_LOGGING
//-----------------------------------------------------------------------------
#define UNINITIALIZE_TRACING_LOGGING() { \
if (TRACEID != INVALID_TRACEID) { \
TraceDeregister(TRACEID); \
TRACEID = INVALID_TRACEID; \
} \
\
if (LOGHANDLE != NULL) { \
RouterLogDeregister(LOGHANDLE); \
LOGHANDLE = NULL; \
} \
}