[CMAKE]
[reactos.git] / drivers / network / dd / ne2000 / include / debug.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Novell Eagle 2000 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_MEMORY 0x00000100
19 #define DEBUG_ULTRA 0xFFFFFFFF
20
21 #if DBG
22
23 extern ULONG DebugTraceLevel;
24
25 #ifdef _MSC_VER
26
27 #define NDIS_DbgPrint(_t_, _x_) \
28 if (((DebugTraceLevel & NORMAL_MASK) >= _t_) || \
29 ((DebugTraceLevel & _t_) > NORMAL_MASK)) { \
30 DbgPrint("(%s:%d) ", __FILE__, __LINE__); \
31 DbgPrint _x_ ; \
32 }
33
34 #else /* _MSC_VER */
35
36 #define NDIS_DbgPrint(_t_, _x_) \
37 if (((DebugTraceLevel & NORMAL_MASK) >= _t_) || \
38 ((DebugTraceLevel & _t_) > NORMAL_MASK)) { \
39 DbgPrint("(%s:%d)(%s) ", __FILE__, __LINE__, __FUNCTION__); \
40 DbgPrint _x_ ; \
41 }
42
43 #endif /* _MSC_VER */
44
45
46 #define ASSERT_IRQL(x) ASSERT(KeGetCurrentIrql() <= (x))
47 #define ASSERT_IRQL_EQUAL(x) ASSERT(KeGetCurrentIrql() == (x))
48
49 #else /* DBG */
50
51 #define NDIS_DbgPrint(_t_, _x_)
52
53 #define ASSERT_IRQL(x)
54 #define ASSERT_IRQL_EQUAL(x)
55 /* #define ASSERT(x) */ /* ndis.h */
56
57 #endif /* DBG */
58
59
60 #define assert(x) ASSERT(x)
61 #define assert_irql(x) ASSERT_IRQL(x)
62
63
64 #ifdef _MSC_VER
65
66 #define UNIMPLEMENTED \
67 NDIS_DbgPrint(MIN_TRACE, ("The function at %s:%d is unimplemented, \
68 but come back another day.\n", __FILE__, __LINE__));
69
70 #else /* _MSC_VER */
71
72 #define UNIMPLEMENTED \
73 NDIS_DbgPrint(MIN_TRACE, ("%s at %s:%d is unimplemented, \
74 but come back another day.\n", __FUNCTION__, __FILE__, __LINE__));
75
76 #endif /* _MSC_VER */
77
78
79 #define CHECKPOINT \
80 do { NDIS_DbgPrint(MIN_TRACE, ("%s:%d\n", __FILE__, __LINE__)); } while(0);
81
82 /* EOF */