Remove stale HPC Pack 2008 Beta 1 objects
[mirror/winof/.git] / ulp / nd / user / nddebug.h
1 /*\r
2  * Copyright (c) 2008 Microsoft Corporation.  All rights reserved.\r
3  *\r
4  * This software is available to you under the OpenIB.org BSD license\r
5  * below:\r
6  *\r
7  *     Redistribution and use in source and binary forms, with or\r
8  *     without modification, are permitted provided that the following\r
9  *     conditions are met:\r
10  *\r
11  *      - Redistributions of source code must retain the above\r
12  *        copyright notice, this list of conditions and the following\r
13  *        disclaimer.\r
14  *\r
15  *      - Redistributions in binary form must reproduce the above\r
16  *        copyright notice, this list of conditions and the following\r
17  *        disclaimer in the documentation and/or other materials\r
18  *        provided with the distribution.\r
19  *\r
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
21  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
22  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
23  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
24  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
25  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
26  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
27  * SOFTWARE.\r
28  *\r
29  * $Id:$\r
30  */\r
31 \r
32 #pragma once\r
33 \r
34 #ifdef __MODULE__\r
35 #undef __MODULE__\r
36 #endif\r
37 #define __MODULE__      "[ND]"\r
38 \r
39 \r
40 #include <complib/cl_debug.h>\r
41 \r
42 extern uint32_t                 g_nd_dbg_level;\r
43 extern uint32_t                 g_nd_dbg_flags;\r
44 \r
45 #if defined(EVENT_TRACING)\r
46 //\r
47 // Software Tracing Definitions \r
48 //\r
49 \r
50 \r
51 #define WPP_CONTROL_GUIDS \\r
52         WPP_DEFINE_CONTROL_GUID(NDCtlGuid1,(1463B4CE,7A66,47a4,ABDB,09EE7AD9E698),  \\r
53         WPP_DEFINE_BIT( ND_DBG_ERROR)\\r
54         WPP_DEFINE_BIT( ND_DBG_NDI))\r
55         \r
56 \r
57 \r
58 #define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level  >= lvl)\r
59 #define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)\r
60 #define WPP_FLAG_ENABLED(flags)(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level  >= TRACE_LEVEL_VERBOSE)\r
61 #define WPP_FLAG_LOGGER(flags) WPP_LEVEL_LOGGER(flags)\r
62 \r
63 \r
64 // begin_wpp config\r
65 // ND_ENTER( FLAG );\r
66 // ND_EXIT( FLAG );\r
67 // USEPREFIX(ND_PRINT, "%!STDPREFIX! [ND] :%!FUNC!() :");\r
68 // USESUFFIX(ND_ENTER, " [ND] :%!FUNC!():[");\r
69 // USESUFFIX(ND_EXIT, " [ND] :%!FUNC!():]");\r
70 // end_wpp\r
71 \r
72 \r
73 \r
74 #else\r
75 \r
76 #include <wmistr.h>\r
77 #include <evntrace.h>\r
78 \r
79 /*\r
80  * Debug macros\r
81  */\r
82 \r
83 \r
84 /* Debug message source */\r
85 #define ND_DBG_ERR      (1 << 0)\r
86 #define ND_DBG_NDI      (1 << 1)\r
87 \r
88 #define ND_DBG_ERROR    (CL_DBG_ERROR | ND_DBG_ERR)\r
89 \r
90 #if DBG\r
91 \r
92 // assignment of _level_ is need to to overcome warning C4127\r
93 #define ND_PRINT( _level_,_flag_,_msg_)  \\r
94         { \\r
95                 if( g_nd_dbg_level >= (_level_) ) \\r
96                         CL_TRACE( _flag_, g_nd_dbg_flags, _msg_ ); \\r
97         }\r
98 \r
99 \r
100 #define ND_PRINT_EXIT( _level_,_flag_,_msg_) \\r
101         { \\r
102                 if( g_nd_dbg_level >= (_level_) ) \\r
103                         CL_TRACE( _flag_, g_nd_dbg_flags, _msg_ );\\r
104                 ND_EXIT( _flag_ );\\r
105         }\r
106 \r
107 #define ND_ENTER( _flag_) \\r
108         { \\r
109                 if( g_nd_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
110                         CL_ENTER( _flag_, g_nd_dbg_flags ); \\r
111         }\r
112 \r
113 #define ND_EXIT( _flag_)\\r
114         { \\r
115                 if( g_nd_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
116                         CL_EXIT( _flag_, g_nd_dbg_flags ); \\r
117         }\r
118 \r
119 \r
120 #else\r
121 \r
122 #define ND_PRINT( lvl, flags, msg)\r
123 \r
124 #define ND_PRINT_EXIT( _level_,_flag_,_msg_)\r
125 \r
126 #define ND_ENTER( _flag_)\r
127 \r
128 #define ND_EXIT( _flag_)\r
129 \r
130 \r
131 #endif\r
132 \r
133 #endif //EVENT_TRACING\r
134 \r
135 \r
136 #if DBG\r
137 struct dbg_data\r
138 {       \r
139         int64_t rcv_cnt;\r
140         int64_t rcv_pkts;\r
141         int64_t rcv_bytes;\r
142         int64_t rcv_pkts_err;\r
143         int64_t rcv_pkts_zero;\r
144         int64_t snd_cnt;\r
145         int64_t snd_pkts;\r
146         int64_t snd_bytes;\r
147         int64_t snd_pkts_err;\r
148         int64_t snd_pkts_zero;\r
149         int64_t c_cnt;\r
150         int64_t c_rcv_pkts;\r
151         int64_t c_rcv_bytes;\r
152         int64_t c_rcv_pkts_err;\r
153         int64_t c_snd_pkts;\r
154         int64_t c_snd_bytes;\r
155         int64_t c_snd_pkts_err;\r
156 };\r
157 \r
158 extern dbg_data g;\r
159 \r
160 #endif\r