Commit | Line | Data |
---|---|---|
68c0bdff HG |
1 | /******************************************************************************* |
2 | * Agere Systems Inc. | |
3 | * Wireless device driver for Linux (wlags49). | |
4 | * | |
5 | * Copyright (c) 1998-2003 Agere Systems Inc. | |
6 | * All rights reserved. | |
7 | * http://www.agere.com | |
8 | * | |
9 | * Initially developed by TriplePoint, Inc. | |
10 | * http://www.triplepoint.com | |
11 | * | |
12 | *------------------------------------------------------------------------------ | |
13 | * | |
14 | * This file contains definitions and macros for debugging. | |
15 | * | |
16 | *------------------------------------------------------------------------------ | |
17 | * | |
18 | * SOFTWARE LICENSE | |
19 | * | |
20 | * This software is provided subject to the following terms and conditions, | |
21 | * which you should read carefully before using the software. Using this | |
22 | * software indicates your acceptance of these terms and conditions. If you do | |
23 | * not agree with these terms and conditions, do not use the software. | |
24 | * | |
b93634c4 | 25 | * Copyright (c) 2003 Agere Systems Inc. |
68c0bdff HG |
26 | * All rights reserved. |
27 | * | |
28 | * Redistribution and use in source or binary forms, with or without | |
29 | * modifications, are permitted provided that the following conditions are met: | |
30 | * | |
31 | * . Redistributions of source code must retain the above copyright notice, this | |
32 | * list of conditions and the following Disclaimer as comments in the code as | |
33 | * well as in the documentation and/or other materials provided with the | |
34 | * distribution. | |
35 | * | |
36 | * . Redistributions in binary form must reproduce the above copyright notice, | |
37 | * this list of conditions and the following Disclaimer in the documentation | |
38 | * and/or other materials provided with the distribution. | |
39 | * | |
40 | * . Neither the name of Agere Systems Inc. nor the names of the contributors | |
41 | * may be used to endorse or promote products derived from this software | |
42 | * without specific prior written permission. | |
43 | * | |
44 | * Disclaimer | |
45 | * | |
d36b6910 | 46 | * THIS SOFTWARE IS PROVIDED \93AS IS\94 AND ANY EXPRESS OR IMPLIED WARRANTIES, |
68c0bdff HG |
47 | * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF |
48 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY | |
49 | * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN | |
50 | * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY | |
51 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
52 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
53 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |
54 | * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT | |
55 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |
56 | * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | |
57 | * DAMAGE. | |
58 | * | |
59 | ******************************************************************************/ | |
60 | ||
68c0bdff HG |
61 | #ifndef _DEBUG_H |
62 | #define _DEBUG_H | |
63 | ||
64 | ||
65 | ||
66 | ||
67 | /* Turn on debugging here if not done with a preprocessor define */ | |
68 | #ifndef DBG | |
69 | #define DBG 0 | |
70 | #else | |
71 | #undef DBG | |
72 | #define DBG 1 | |
b93634c4 | 73 | #endif /* DBG */ |
68c0bdff HG |
74 | |
75 | ||
76 | ||
77 | ||
78 | #if DBG | |
79 | /****************************************************************************/ | |
80 | ||
81 | /* Set the level of debugging if not done with a preprocessor define. See | |
82 | wl_main.c, init_module() for how the debug level translates into the | |
83 | the types of messages displayed */ | |
84 | #ifndef DBG_LVL | |
85 | #define DBG_LVL 5 /* yields nothing via init_module, | |
3e1eb789 GKH |
86 | original value of 5 yields |
87 | DBG_TRACE_ON and DBG_VERBOSE_ON */ | |
b93634c4 | 88 | #endif /* DBG_LVL*/ |
68c0bdff HG |
89 | |
90 | ||
91 | #define DBG_ERROR_ON 0x00000001L | |
92 | #define DBG_WARNING_ON 0x00000002L | |
93 | #define DBG_NOTICE_ON 0x00000004L | |
94 | #define DBG_TRACE_ON 0x00000008L | |
95 | #define DBG_VERBOSE_ON 0x00000010L | |
96 | #define DBG_PARAM_ON 0x00000020L | |
97 | #define DBG_BREAK_ON 0x00000040L | |
98 | #define DBG_RX_ON 0x00000100L | |
99 | #define DBG_TX_ON 0x00000200L | |
100 | #define DBG_DS_ON 0x00000400L | |
101 | ||
102 | #define DBG_DEFAULTS (DBG_ERROR_ON | DBG_WARNING_ON | DBG_BREAK_ON) | |
103 | ||
b93634c4 RP |
104 | #define DBG_FLAGS(A) ((A)->DebugFlag) |
105 | #define DBG_NAME(A) ((A)->dbgName) | |
106 | #define DBG_LEVEL(A) ((A)->dbgLevel) | |
68c0bdff HG |
107 | |
108 | ||
68c0bdff | 109 | #ifndef DBG_PRINT |
da61fde7 | 110 | # define DBG_PRINT(S...) printk(KERN_DEBUG S) |
b93634c4 | 111 | #endif /* DBG_PRINT */ |
68c0bdff HG |
112 | |
113 | ||
114 | #ifndef DBG_PRINTC | |
da61fde7 | 115 | # define DBG_PRINTC(S...) printk(S) |
b93634c4 | 116 | #endif /* DBG_PRINTC */ |
68c0bdff HG |
117 | |
118 | ||
b93634c4 RP |
119 | #define DBG_PARAM(A, N, F, S...) {if (DBG_FLAGS(A) & DBG_PARAM_ON) \ |
120 | DBG_PRINT(" %s -- "F"\n", N, S); } | |
68c0bdff HG |
121 | |
122 | ||
8bf90539 DK |
123 | #define DBG_ERROR(A, S...) do { \ |
124 | if (DBG_FLAGS(A) & DBG_ERROR_ON) { \ | |
125 | DBG_PRINT("%s:ERROR:%s ", DBG_NAME(A), __func__); \ | |
126 | DBG_PRINTC(S); \ | |
8bf90539 | 127 | } } while (0) |
68c0bdff HG |
128 | |
129 | ||
8bf90539 DK |
130 | #define DBG_WARNING(A, S...) do { \ |
131 | if (DBG_FLAGS(A) & DBG_WARNING_ON) { \ | |
132 | DBG_PRINT("%s:WARNING:%s ", DBG_NAME(A), __func__); \ | |
133 | DBG_PRINTC(S); \ | |
134 | } } while (0) | |
68c0bdff HG |
135 | |
136 | ||
8bf90539 DK |
137 | #define DBG_NOTICE(A, S...) do { \ |
138 | if (DBG_FLAGS(A) & DBG_NOTICE_ON) { \ | |
139 | DBG_PRINT("%s:NOTICE:%s ", DBG_NAME(A), __func__); \ | |
140 | DBG_PRINTC(S); \ | |
141 | } } while (0) | |
68c0bdff HG |
142 | |
143 | ||
8bf90539 DK |
144 | #define DBG_TRACE(A, S...) do { \ |
145 | if (DBG_FLAGS(A) & DBG_TRACE_ON) { \ | |
146 | DBG_PRINT("%s:%s ", DBG_NAME(A), __func__); \ | |
147 | DBG_PRINTC(S); \ | |
148 | } } while (0) | |
68c0bdff HG |
149 | |
150 | ||
b93634c4 RP |
151 | #define DBG_RX(A, S...) {if (DBG_FLAGS(A) & DBG_RX_ON) {\ |
152 | DBG_PRINT(S); } } | |
68c0bdff HG |
153 | |
154 | ||
b93634c4 RP |
155 | #define DBG_TX(A, S...) {if (DBG_FLAGS(A) & DBG_TX_ON) {\ |
156 | DBG_PRINT(S); } } | |
68c0bdff | 157 | |
b93634c4 RP |
158 | #define DBG_DS(A, S...) {if (DBG_FLAGS(A) & DBG_DS_ON) {\ |
159 | DBG_PRINT(S); } } | |
68c0bdff HG |
160 | |
161 | ||
8bf90539 DK |
162 | #define DBG_ASSERT(C) do { \ |
163 | if (!(C)) { \ | |
164 | DBG_PRINT("ASSERT(%s) -- %s#%d (%s)\n", \ | |
165 | #C, __FILE__, __LINE__, __func__); \ | |
8bf90539 | 166 | } } while (0) |
68c0bdff | 167 | |
76f9a428 | 168 | struct dbg_info { |
3e1eb789 GKH |
169 | char *dbgName; |
170 | int dbgLevel; | |
171 | unsigned long DebugFlag; | |
76f9a428 GKH |
172 | }; |
173 | ||
174 | extern struct dbg_info *DbgInfo; | |
68c0bdff HG |
175 | |
176 | ||
177 | /****************************************************************************/ | |
b93634c4 | 178 | #else /* DBG */ |
68c0bdff HG |
179 | /****************************************************************************/ |
180 | ||
68c0bdff | 181 | #define DBG_PRINT(S...) |
b93634c4 RP |
182 | #define DBG_PARAM(A, N, F, S...) |
183 | #define DBG_ERROR(A, S...) | |
184 | #define DBG_WARNING(A, S...) | |
185 | #define DBG_NOTICE(A, S...) | |
186 | #define DBG_TRACE(A, S...) | |
187 | #define DBG_RX(A, S...) | |
188 | #define DBG_TX(A, S...) | |
189 | #define DBG_DS(A, S...) | |
68c0bdff HG |
190 | #define DBG_ASSERT(C) |
191 | ||
b93634c4 | 192 | #endif /* DBG */ |
68c0bdff HG |
193 | /****************************************************************************/ |
194 | ||
195 | ||
196 | ||
197 | ||
b93634c4 | 198 | #endif /* _DEBUG_H */ |
68c0bdff | 199 |