[SRP] fix/improve log issues
[mirror/winof/.git] / ulp / srp / kernel / srp_debug.h
1 /*\r
2  * Copyright (c) 2005 SilverStorm Technologies.  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 \r
33 \r
34 #ifndef _SRP_DEBUG_H_\r
35 #define _SRP_DEBUG_H_\r
36 \r
37 \r
38 #include <complib/cl_debug.h>\r
39 \r
40 \r
41 extern uint32_t         g_srp_dbg_level;\r
42 extern uint32_t         g_srp_dbg_flags;\r
43 \r
44 #if defined(EVENT_TRACING)\r
45 //\r
46 // Software Tracing Definitions \r
47 //\r
48 \r
49 \r
50 #define WPP_CONTROL_GUIDS \\r
51         WPP_DEFINE_CONTROL_GUID(SRPCtlGuid,(5AF07B3C,D119,4233,9C81,C07EF481CBE6),  \\r
52         WPP_DEFINE_BIT( SRP_DBG_ERROR) \\r
53         WPP_DEFINE_BIT( SRP_DBG_PNP) \\r
54         WPP_DEFINE_BIT( SRP_DBG_DATA) \\r
55         WPP_DEFINE_BIT( SRP_DBG_SESSION) \\r
56         WPP_DEFINE_BIT( SRP_DBG_DEBUG))\r
57 \r
58 \r
59 \r
60 #define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level  >= lvl)\r
61 #define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)\r
62 #define WPP_FLAG_ENABLED(flags)(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level  >= TRACE_LEVEL_VERBOSE)\r
63 #define WPP_FLAG_LOGGER(flags) WPP_LEVEL_LOGGER(flags)\r
64 \r
65 \r
66 // begin_wpp config\r
67 // SRP_ENTER(FLAG);\r
68 // SRP_EXIT(FLAG);\r
69 // USEPREFIX(SRP_PRINT, "%!STDPREFIX! [SRP] :%!FUNC!() :");\r
70 // USEPREFIX(SRP_PRINT_EXIT, "%!STDPREFIX! [SRP] :%!FUNC!() :");\r
71 // USESUFFIX(SRP_ENTER, " [SRP] :%!FUNC!():[");\r
72 // USESUFFIX(SRP_EXIT, " [SRP] :%!FUNC!():]");\r
73 // end_wpp\r
74 \r
75 \r
76 #else\r
77 \r
78 \r
79 #include <evntrace.h>\r
80 \r
81 /*\r
82  * Debug macros\r
83  */\r
84 \r
85 \r
86 #define SRP_DBG_ERR                     (1 << 0)\r
87 #define SRP_DBG_PNP                     (1 << 1)\r
88 #define SRP_DBG_DATA            (1 << 2)\r
89 #define SRP_DBG_SESSION (1 << 3)\r
90 #define SRP_DBG_DEBUG           (1 << 4)\r
91 \r
92 #define SRP_DBG_ERROR   (CL_DBG_ERROR | SRP_DBG_ERR)\r
93 #define SRP_DBG_ALL     CL_DBG_ALL\r
94 \r
95 #if DBG\r
96 \r
97 // assignment of _level_ is need to to overcome warning C4127\r
98 #define SRP_PRINT(_level_,_flag_,_msg_) \\r
99         { \\r
100                 if( g_srp_dbg_level >= (_level_) ) \\r
101                         CL_TRACE( _flag_, g_srp_dbg_flags, _msg_ ); \\r
102         }\r
103 \r
104 #define SRP_PRINT_EXIT(_level_,_flag_,_msg_) \\r
105         { \\r
106                 if( g_srp_dbg_level >= (_level_) ) \\r
107                         CL_TRACE( _flag_, g_srp_dbg_flags, _msg_ );\\r
108                 SRP_EXIT(_flag_);\\r
109         }\r
110 \r
111 #define SRP_ENTER(_flag_) \\r
112         { \\r
113                 if( g_srp_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
114                         CL_ENTER( _flag_, g_srp_dbg_flags ); \\r
115         }\r
116 \r
117 #define SRP_EXIT(_flag_)\\r
118         { \\r
119                 if( g_srp_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
120                         CL_EXIT( _flag_, g_srp_dbg_flags ); \\r
121         }\r
122 \r
123 \r
124 #else\r
125 \r
126 #define SRP_PRINT(lvl, flags, msg)\r
127 \r
128 #define SRP_PRINT_EXIT(_level_,_flag_,_msg_)\r
129 \r
130 #define SRP_ENTER(_flag_)\r
131 \r
132 #define SRP_EXIT(_flag_)\r
133 \r
134 \r
135 #endif\r
136 \r
137 \r
138 #endif //EVENT_TRACING\r
139 \r
140 extern char         g_srb_function_name[][32];\r
141 extern char         g_srb_status_name[][32];\r
142 extern char         g_srb_scsi_status_name[][32];\r
143 \r
144 #endif  /* _SRP_DEBUG_H_ */\r