1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS WinSock 2 Helper DLL for TCP/IP 4 * FILE: include/debug.h 5 * PURPOSE: Debugging support macros 6 * DEFINES: DBG - Enable debug output 7 * NASSERT - Disable assertions 8 */ 9 #ifndef __DEBUG_H 10 #define __DEBUG_H 11 12 #define NORMAL_MASK 0x000000FF 13 #define SPECIAL_MASK 0xFFFFFF00 14 #define MIN_TRACE 0x00000001 15 #define MID_TRACE 0x00000002 16 #define MAX_TRACE 0x00000003 17 18 #define DEBUG_ULTRA 0xFFFFFFFF 19 20 #if DBG 21 22 extern DWORD DebugTraceLevel; 23 24 #define WSH_DbgPrint(_t_, _x_) \ 25 if ((_t_ > NORMAL_MASK) \ 26 ? (DebugTraceLevel & _t_) > NORMAL_MASK \ 27 : (DebugTraceLevel & NORMAL_MASK) >= _t_) { \ 28 DbgPrint("(%hS:%d)(%hS) ", __FILE__, __LINE__, __FUNCTION__); \ 29 DbgPrint _x_; \ 30 } 31 32 #ifdef ASSERT 33 #undef ASSERT 34 #endif 35 36 #ifdef NASSERT 37 #define ASSERT(x) 38 #else /* NASSERT */ 39 #define ASSERT(x) if (!(x)) { WSH_DbgPrint(MIN_TRACE, ("Assertion "#x" failed at %s:%d\n", __FILE__, __LINE__)); ExitProcess(0); } 40 #endif /* NASSERT */ 41 42 #else /* DBG */ 43 44 #define WSH_DbgPrint(_t_, _x_) 45 46 #undef ASSERT 47 #define ASSERT(x) 48 49 #endif /* DBG */ 50 51 52 #undef assert 53 #define assert(x) ASSERT(x) 54 #define assert_irql(x) ASSERT_IRQL(x) 55 56 57 #define UNIMPLEMENTED \ 58 WSH_DbgPrint(MIN_TRACE, ("(%s:%d)(%s) is unimplemented, \ 59 please try again later.\n", __FILE__, __LINE__, __FUNCTION__)); 60 61 #define CHECKPOINT \ 62 WSH_DbgPrint(MIN_TRACE, ("\n")); 63 64 #define CP CHECKPOINT 65 66 #endif /* __DEBUG_H */ 67 68 /* EOF */ 69