• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/staging/wlags49_h2/
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 *
25 * Copyright (c) 2003 Agere Systems Inc.
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 *
46 * THIS SOFTWARE IS PROVIDED �AS IS� AND ANY EXPRESS OR IMPLIED WARRANTIES,
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
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
73#endif /* DBG */
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,
86							   original value of 5 yields DBG_TRACE_ON and DBG_VERBOSE_ON */
87#endif  /*  DBG_LVL*/
88
89
90#define DBG_ERROR_ON        0x00000001L
91#define DBG_WARNING_ON      0x00000002L
92#define DBG_NOTICE_ON       0x00000004L
93#define DBG_TRACE_ON        0x00000008L
94#define DBG_VERBOSE_ON      0x00000010L
95#define DBG_PARAM_ON        0x00000020L
96#define DBG_BREAK_ON        0x00000040L
97#define DBG_RX_ON           0x00000100L
98#define DBG_TX_ON           0x00000200L
99#define DBG_DS_ON           0x00000400L
100
101#define DBG_DEFAULTS        (DBG_ERROR_ON | DBG_WARNING_ON | DBG_BREAK_ON)
102
103#define DBG_FLAGS(A)        ((A)->DebugFlag)
104#define DBG_NAME(A)         ((A)->dbgName)
105#define DBG_LEVEL(A)        ((A)->dbgLevel)
106
107
108#ifndef PRINTK
109#   define PRINTK(S...)     printk(S)
110#endif /* PRINTK */
111
112
113#ifndef DBG_PRINT
114#   define DBG_PRINT(S...)  PRINTK(KERN_DEBUG S)
115#endif /* DBG_PRINT */
116
117
118#ifndef DBG_PRINTC
119#   define DBG_PRINTC(S...) PRINTK(S)
120#endif /* DBG_PRINTC */
121
122
123#ifndef DBG_TRAP
124#   define DBG_TRAP         {}
125#endif /* DBG_TRAP */
126
127
128#define _ENTER_STR          ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
129#define _LEAVE_STR          "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
130
131
132#define _DBG_ENTER(A)       DBG_PRINT("%s:%.*s:%s\n", DBG_NAME(A), ++DBG_LEVEL(A), _ENTER_STR, __FUNC__)
133#define _DBG_LEAVE(A)       DBG_PRINT("%s:%.*s:%s\n", DBG_NAME(A), DBG_LEVEL(A)--, _LEAVE_STR, __FUNC__)
134
135
136#define DBG_FUNC(F)         static const char *__FUNC__ = F;
137
138#define DBG_ENTER(A)        {if (DBG_FLAGS(A) & DBG_TRACE_ON) \
139				_DBG_ENTER(A); }
140
141#define DBG_LEAVE(A)        {if (DBG_FLAGS(A) & DBG_TRACE_ON) \
142				 _DBG_LEAVE(A); }
143
144#define DBG_PARAM(A, N, F, S...)   {if (DBG_FLAGS(A) & DBG_PARAM_ON) \
145				DBG_PRINT("  %s -- "F"\n", N, S); }
146
147
148#define DBG_ERROR(A, S...)   {if (DBG_FLAGS(A) & DBG_ERROR_ON) {\
149				DBG_PRINT("%s:ERROR:%s ", DBG_NAME(A), __FUNC__);\
150				DBG_PRINTC(S); \
151				DBG_TRAP; \
152				} \
153				}
154
155
156#define DBG_WARNING(A, S...) {if (DBG_FLAGS(A) & DBG_WARNING_ON) {\
157				DBG_PRINT("%s:WARNING:%s ", DBG_NAME(A), __FUNC__);\
158				DBG_PRINTC(S); } }
159
160
161#define DBG_NOTICE(A, S...)  {if (DBG_FLAGS(A) & DBG_NOTICE_ON) {\
162				DBG_PRINT("%s:NOTICE:%s ", DBG_NAME(A), __FUNC__);\
163				DBG_PRINTC(S); \
164				} \
165				}
166
167
168#define DBG_TRACE(A, S...)   do {if (DBG_FLAGS(A) & DBG_TRACE_ON) {\
169				DBG_PRINT("%s:%s ", DBG_NAME(A), __FUNC__);\
170				DBG_PRINTC(S); } } while (0)
171
172
173#define DBG_RX(A, S...)      {if (DBG_FLAGS(A) & DBG_RX_ON) {\
174				DBG_PRINT(S); } }
175
176
177#define DBG_TX(A, S...)      {if (DBG_FLAGS(A) & DBG_TX_ON) {\
178				DBG_PRINT(S); } }
179
180#define DBG_DS(A, S...)      {if (DBG_FLAGS(A) & DBG_DS_ON) {\
181				DBG_PRINT(S); } }
182
183
184#define DBG_ASSERT(C)		{ \
185				if (!(C)) {\
186					DBG_PRINT("ASSERT(%s) -- %s#%d (%s)\n", \
187					#C, __FILE__, __LINE__, __FUNC__); \
188					DBG_TRAP; \
189					} \
190					}
191
192typedef struct {
193    char           *dbgName;
194    int             dbgLevel;
195    unsigned long   DebugFlag;
196} dbg_info_t;
197
198
199/****************************************************************************/
200#else /* DBG */
201/****************************************************************************/
202
203#define DBG_DEFN
204#define DBG_TRAP
205#define DBG_FUNC(F)
206#define DBG_PRINT(S...)
207#define DBG_ENTER(A)
208#define DBG_LEAVE(A)
209#define DBG_PARAM(A, N, F, S...)
210#define DBG_ERROR(A, S...)
211#define DBG_WARNING(A, S...)
212#define DBG_NOTICE(A, S...)
213#define DBG_TRACE(A, S...)
214#define DBG_RX(A, S...)
215#define DBG_TX(A, S...)
216#define DBG_DS(A, S...)
217#define DBG_ASSERT(C)
218
219#endif /* DBG */
220/****************************************************************************/
221
222
223
224
225#endif /* _DEBUG_H */
226