1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS TCP/IP protocol driver 4 * FILE: include/debug.h 5 * PURPOSE: Debugging support macros 6 * DEFINES: DBG - Enable debug output 7 * NASSERT - Disable assertions 8 */ 9 10 #pragma once 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_CHECK 0x00000100 19 #define DEBUG_MEMORY 0x00000200 20 #define DEBUG_PBUFFER 0x00000400 21 #define DEBUG_IRP 0x00000800 22 #define DEBUG_REFCOUNT 0x00001000 23 #define DEBUG_ADDRFILE 0x00002000 24 #define DEBUG_DATALINK 0x00004000 25 #define DEBUG_ARP 0x00008000 26 #define DEBUG_IP 0x00010000 27 #define DEBUG_UDP 0x00020000 28 #define DEBUG_TCP 0x00040000 29 #define DEBUG_ICMP 0x00080000 30 #define DEBUG_ROUTER 0x00100000 31 #define DEBUG_RCACHE 0x00200000 32 #define DEBUG_NCACHE 0x00400000 33 #define DEBUG_CPOINT 0x00800000 34 #define DEBUG_ULTRA 0xFFFFFFFF 35 36 #if DBG 37 38 extern DWORD DebugTraceLevel; 39 40 #ifdef _MSC_VER 41 42 #define LA_DbgPrint(_t_, _x_) \ 43 if ((_t_ > NORMAL_MASK) \ 44 ? (DebugTraceLevel & _t_) > NORMAL_MASK \ 45 : (DebugTraceLevel & NORMAL_MASK) >= _t_) { \ 46 DbgPrint("(%s:%d) ", __FILE__, __LINE__); \ 47 DbgPrint _x_ ; \ 48 } 49 50 #else /* _MSC_VER */ 51 52 #define LA_DbgPrint(_t_, _x_) \ 53 if ((_t_ > NORMAL_MASK) \ 54 ? (DebugTraceLevel & _t_) > NORMAL_MASK \ 55 : (DebugTraceLevel & NORMAL_MASK) >= _t_) { \ 56 DbgPrint("(%s:%d)(%s) ", __FILE__, __LINE__, __FUNCTION__); \ 57 DbgPrint _x_ ; \ 58 } 59 60 #endif /* _MSC_VER */ 61 62 #define ASSERT_IRQL(x) ASSERT(KeGetCurrentIrql() <= (x)) 63 64 #else /* DBG */ 65 66 #define LA_DbgPrint(_t_, _x_) 67 68 #if 0 69 #define ASSERT_IRQL(x) 70 #define ASSERT(x) 71 #endif 72 73 #endif /* DBG */ 74 75 76 #define assert(x) ASSERT(x) 77 #define assert_irql(x) ASSERT_IRQL(x) 78 79 80 #ifdef _MSC_VER 81 82 #define UNIMPLEMENTED \ 83 LA_DbgPrint(MIN_TRACE, ("The function at %s:%d is unimplemented, \ 84 but come back another day.\n", __FILE__, __LINE__)); 85 86 #else /* _MSC_VER */ 87 88 #define UNIMPLEMENTED \ 89 LA_DbgPrint(MIN_TRACE, ("(%s:%d)(%s) is unimplemented, \ 90 but come back another day.\n", __FILE__, __LINE__, __FUNCTION__)); 91 92 #endif /* _MSC_VER */ 93 94 95 #define CHECKPOINT \ 96 do { LA_DbgPrint(DEBUG_CHECK, ("(%s:%d)\n", __FILE__, __LINE__)); } while(0); 97 98 #define CP CHECKPOINT 99 100 #include <memtrack.h> 101