xref: /OK3568_Linux_fs/external/rkwifibt/drivers/infineon/wl_dbg.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Minimal debug/trace/assert driver definitions for
3*4882a593Smuzhiyun  * Broadcom 802.11 Networking Adapter.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Portions of this code are copyright (c) 2021 Cypress Semiconductor Corporation
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * Copyright (C) 1999-2017, Broadcom Corporation
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  *      Unless you and Broadcom execute a separate written software license
10*4882a593Smuzhiyun  * agreement governing use of this software, this software is licensed to you
11*4882a593Smuzhiyun  * under the terms of the GNU General Public License version 2 (the "GPL"),
12*4882a593Smuzhiyun  * available at http://www.broadcom.com/licenses/GPLv2.php, with the
13*4882a593Smuzhiyun  * following added to such license:
14*4882a593Smuzhiyun  *
15*4882a593Smuzhiyun  *      As a special exception, the copyright holders of this software give you
16*4882a593Smuzhiyun  * permission to link this software with independent modules, and to copy and
17*4882a593Smuzhiyun  * distribute the resulting executable under terms of your choice, provided that
18*4882a593Smuzhiyun  * you also meet, for each linked independent module, the terms and conditions of
19*4882a593Smuzhiyun  * the license of that module.  An independent module is a module which is not
20*4882a593Smuzhiyun  * derived from this software.  The special exception does not apply to any
21*4882a593Smuzhiyun  * modifications of the software.
22*4882a593Smuzhiyun  *
23*4882a593Smuzhiyun  *      Notwithstanding the above, under no circumstances may you combine this
24*4882a593Smuzhiyun  * software in any way with any other Broadcom software provided under a license
25*4882a593Smuzhiyun  * other than the GPL, without Broadcom's express prior written consent.
26*4882a593Smuzhiyun  *
27*4882a593Smuzhiyun  *
28*4882a593Smuzhiyun  * <<Broadcom-WL-IPTag/Open:>>
29*4882a593Smuzhiyun  *
30*4882a593Smuzhiyun  * $Id: wl_dbg.h 697380 2017-05-03 11:34:25Z $
31*4882a593Smuzhiyun  */
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun #ifndef _wl_dbg_h_
34*4882a593Smuzhiyun #define _wl_dbg_h_
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun #if defined(EVENT_LOG_COMPILE)
37*4882a593Smuzhiyun #include <event_log.h>
38*4882a593Smuzhiyun #endif // endif
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun /* wl_msg_level is a bit vector with defs in wlioctl.h */
41*4882a593Smuzhiyun extern uint32 wl_msg_level;
42*4882a593Smuzhiyun extern uint32 wl_msg_level2;
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun #define WL_TIMESTAMP()
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun #ifdef ENABLE_CORECAPTURE
47*4882a593Smuzhiyun #define MAX_BACKTRACE_DEPTH 32
48*4882a593Smuzhiyun extern int wl_print_backtrace(const char * prefix, void * i_backtrace, int i_backtrace_depth);
49*4882a593Smuzhiyun #else
50*4882a593Smuzhiyun #define wl_print_backtrace(a, b, c)
51*4882a593Smuzhiyun #endif /* ENABLE_CORECAPTURE */
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun #define WIFICC_CAPTURE(_reason)
54*4882a593Smuzhiyun #define WIFICC_LOGDEBUGIF(_flags, _args)
55*4882a593Smuzhiyun #define WIFICC_LOGDEBUG(_args)
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun #define WL_PRINT(args)		do { WL_TIMESTAMP(); printf args; } while (0)
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun #if defined(EVENT_LOG_COMPILE) && defined(WLMSG_SRSCAN)
60*4882a593Smuzhiyun #define _WL_SRSCAN(fmt, ...)	EVENT_LOG(EVENT_LOG_TAG_SRSCAN, fmt, ##__VA_ARGS__)
61*4882a593Smuzhiyun #define WL_SRSCAN(args)		_WL_SRSCAN args
62*4882a593Smuzhiyun #else
63*4882a593Smuzhiyun #define WL_SRSCAN(args)
64*4882a593Smuzhiyun #endif // endif
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun #if defined(BCMCONDITIONAL_LOGGING)
67*4882a593Smuzhiyun 
68*4882a593Smuzhiyun /* Ideally this should be some include file that vendors can include to conditionalize logging */
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun /* DBGONLY() macro to reduce ifdefs in code for statements that are only needed when
71*4882a593Smuzhiyun  * BCMDBG is defined.
72*4882a593Smuzhiyun  */
73*4882a593Smuzhiyun #define DBGONLY(x) x
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun /* To disable a message completely ... until you need it again */
76*4882a593Smuzhiyun #define WL_NONE(args)
77*4882a593Smuzhiyun #define WL_ERROR(args)		do {if (wl_msg_level & WL_ERROR_VAL) WL_PRINT(args); \
78*4882a593Smuzhiyun 					else WIFICC_LOGDEBUG(args); } while (0)
79*4882a593Smuzhiyun #define	WL_SCAN_ERROR(args)
80*4882a593Smuzhiyun #define	WL_IE_ERROR(args)
81*4882a593Smuzhiyun #define	WL_AMSDU_ERROR(args)
82*4882a593Smuzhiyun #define	WL_ASSOC_ERROR(args)
83*4882a593Smuzhiyun #define	KM_ERR(args)
84*4882a593Smuzhiyun 
85*4882a593Smuzhiyun #define WL_TRACE(args)
86*4882a593Smuzhiyun #define WL_PRHDRS_MSG(args)
87*4882a593Smuzhiyun #define WL_PRHDRS(i, p, f, t, r, l)
88*4882a593Smuzhiyun #define WL_PRPKT(m, b, n)
89*4882a593Smuzhiyun #define WL_INFORM(args)
90*4882a593Smuzhiyun #define WL_TMP(args)
91*4882a593Smuzhiyun #define WL_OID(args)
92*4882a593Smuzhiyun #define WL_RATE(args)		do {if (wl_msg_level & WL_RATE_VAL) WL_PRINT(args);} while (0)
93*4882a593Smuzhiyun #define WL_ASSOC(args)		do {if (wl_msg_level & WL_ASSOC_VAL) WL_PRINT(args); \
94*4882a593Smuzhiyun 					else WIFICC_LOGDEBUG(args);} while (0)
95*4882a593Smuzhiyun #define WL_PRUSR(m, b, n)
96*4882a593Smuzhiyun #define WL_PS(args)		do {if (wl_msg_level & WL_PS_VAL) WL_PRINT(args);} while (0)
97*4882a593Smuzhiyun 
98*4882a593Smuzhiyun #define WL_PORT(args)
99*4882a593Smuzhiyun #define WL_DUAL(args)
100*4882a593Smuzhiyun #define WL_REGULATORY(args)	do {if (wl_msg_level & WL_REGULATORY_VAL) WL_PRINT(args); \
101*4882a593Smuzhiyun 					else WIFICC_LOGDEBUG(args);} while (0)
102*4882a593Smuzhiyun 
103*4882a593Smuzhiyun #define WL_MPC(args)
104*4882a593Smuzhiyun #define WL_APSTA(args)
105*4882a593Smuzhiyun #define WL_APSTA_BCN(args)
106*4882a593Smuzhiyun #define WL_APSTA_TX(args)
107*4882a593Smuzhiyun #define WL_APSTA_TSF(args)
108*4882a593Smuzhiyun #define WL_APSTA_BSSID(args)
109*4882a593Smuzhiyun #define WL_BA(args)
110*4882a593Smuzhiyun #define WL_MBSS(args)
111*4882a593Smuzhiyun #define WL_MODE_SWITCH(args)
112*4882a593Smuzhiyun #define WL_PROTO(args)
113*4882a593Smuzhiyun 
114*4882a593Smuzhiyun #define	WL_CAC(args)		do {if (wl_msg_level & WL_CAC_VAL) WL_PRINT(args);} while (0)
115*4882a593Smuzhiyun #define WL_AMSDU(args)
116*4882a593Smuzhiyun #define WL_AMPDU(args)
117*4882a593Smuzhiyun #define WL_FFPLD(args)
118*4882a593Smuzhiyun #define WL_MCHAN(args)
119*4882a593Smuzhiyun 
120*4882a593Smuzhiyun #define WL_DFS(args)
121*4882a593Smuzhiyun #define WL_WOWL(args)
122*4882a593Smuzhiyun #define WL_DPT(args)
123*4882a593Smuzhiyun #define WL_ASSOC_OR_DPT(args)
124*4882a593Smuzhiyun #define WL_SCAN(args)		do {if (wl_msg_level2 & WL_SCAN_VAL) WL_PRINT(args);} while (0)
125*4882a593Smuzhiyun #define WL_COEX(args)
126*4882a593Smuzhiyun #define WL_RTDC(w, s, i, j)
127*4882a593Smuzhiyun #define WL_RTDC2(w, s, i, j)
128*4882a593Smuzhiyun #define WL_CHANINT(args)
129*4882a593Smuzhiyun #define WL_BTA(args)
130*4882a593Smuzhiyun #define WL_P2P(args)
131*4882a593Smuzhiyun #define WL_ITFR(args)
132*4882a593Smuzhiyun #define WL_TDLS(args)
133*4882a593Smuzhiyun #define WL_MCNX(args)
134*4882a593Smuzhiyun #define WL_PROT(args)
135*4882a593Smuzhiyun #define WL_PSTA(args)
136*4882a593Smuzhiyun #define WL_WFDS(m, b, n)
137*4882a593Smuzhiyun #define WL_TRF_MGMT(args)
138*4882a593Smuzhiyun #define WL_L2FILTER(args)
139*4882a593Smuzhiyun #define WL_MQ(args)
140*4882a593Smuzhiyun #define WL_TXBF(args)
141*4882a593Smuzhiyun #define WL_MUMIMO(args)
142*4882a593Smuzhiyun #define WL_P2PO(args)
143*4882a593Smuzhiyun #define WL_ROAM(args)
144*4882a593Smuzhiyun #define WL_WNM(args)
145*4882a593Smuzhiyun #define WL_NAT(args)
146*4882a593Smuzhiyun 
147*4882a593Smuzhiyun #ifdef WLMSG_MESH
148*4882a593Smuzhiyun #define WL_MESH(args)       WL_PRINT(args)
149*4882a593Smuzhiyun #define WL_MESH_AMPE(args)  WL_PRINT(args)
150*4882a593Smuzhiyun #define WL_MESH_ROUTE(args) WL_PRINT(args)
151*4882a593Smuzhiyun #define WL_MESH_BCN(args)
152*4882a593Smuzhiyun #else
153*4882a593Smuzhiyun #define WL_MESH(args)
154*4882a593Smuzhiyun #define WL_MESH_AMPE(args)
155*4882a593Smuzhiyun #define WL_MESH_ROUTE(args)
156*4882a593Smuzhiyun #define WL_MESH_BCN(args)
157*4882a593Smuzhiyun #endif // endif
158*4882a593Smuzhiyun #ifdef WLMSG_NATOE
159*4882a593Smuzhiyun #define WL_NAT(args)           do {if (wl_msg_level2 & WL_NATOE_VAL) WL_PRINT(args);} while (0)
160*4882a593Smuzhiyun #else
161*4882a593Smuzhiyun #define WL_NAT(args)
162*4882a593Smuzhiyun #endif // endif
163*4882a593Smuzhiyun 
164*4882a593Smuzhiyun #define WL_PFN_ERROR(args)
165*4882a593Smuzhiyun 
166*4882a593Smuzhiyun #define WL_AMPDU_UPDN(args)
167*4882a593Smuzhiyun #define WL_AMPDU_RX(args)
168*4882a593Smuzhiyun #define WL_AMPDU_ERR(args)
169*4882a593Smuzhiyun #define WL_AMPDU_TX(args)
170*4882a593Smuzhiyun #define WL_AMPDU_CTL(args)
171*4882a593Smuzhiyun #define WL_AMPDU_HW(args)
172*4882a593Smuzhiyun #define WL_AMPDU_HWTXS(args)
173*4882a593Smuzhiyun #define WL_AMPDU_HWDBG(args)
174*4882a593Smuzhiyun #define WL_AMPDU_STAT(args)
175*4882a593Smuzhiyun #define WL_AMPDU_ERR_ON()       0
176*4882a593Smuzhiyun #define WL_AMPDU_HW_ON()        0
177*4882a593Smuzhiyun #define WL_AMPDU_HWTXS_ON()     0
178*4882a593Smuzhiyun 
179*4882a593Smuzhiyun #define WL_APSTA_UPDN(args)
180*4882a593Smuzhiyun #define WL_APSTA_RX(args)
181*4882a593Smuzhiyun #define WL_WSEC(args)
182*4882a593Smuzhiyun #define WL_WSEC_DUMP(args)
183*4882a593Smuzhiyun #define WL_PCIE(args)
184*4882a593Smuzhiyun #define WL_TSLOG(w, s, i, j)
185*4882a593Smuzhiyun #define WL_FBT(args)
186*4882a593Smuzhiyun #define WL_MBO_DBG(args)
187*4882a593Smuzhiyun #define WL_RANDMAC_DBG(args)
188*4882a593Smuzhiyun #define WL_BAM_ERR(args)
189*4882a593Smuzhiyun #define WL_ADPS(args)
190*4882a593Smuzhiyun #define WL_OCE_DBG(args)
191*4882a593Smuzhiyun 
192*4882a593Smuzhiyun #define WL_ERROR_ON()		(wl_msg_level & WL_ERROR_VAL)
193*4882a593Smuzhiyun #define WL_TRACE_ON()		0
194*4882a593Smuzhiyun #define WL_PRHDRS_ON()		0
195*4882a593Smuzhiyun #define WL_PRPKT_ON()		0
196*4882a593Smuzhiyun #define WL_INFORM_ON()		0
197*4882a593Smuzhiyun #define WL_TMP_ON()		0
198*4882a593Smuzhiyun #define WL_OID_ON()		0
199*4882a593Smuzhiyun #define WL_RATE_ON()		(wl_msg_level & WL_RATE_VAL)
200*4882a593Smuzhiyun #define WL_ASSOC_ON()		(wl_msg_level & WL_ASSOC_VAL)
201*4882a593Smuzhiyun #define WL_PRUSR_ON()		0
202*4882a593Smuzhiyun #define WL_PS_ON()		(wl_msg_level & WL_PS_VAL)
203*4882a593Smuzhiyun #define WL_PORT_ON()		0
204*4882a593Smuzhiyun #define WL_WSEC_ON()		0
205*4882a593Smuzhiyun #define WL_WSEC_DUMP_ON()	0
206*4882a593Smuzhiyun #define WL_MPC_ON()		0
207*4882a593Smuzhiyun #define WL_REGULATORY_ON()	(wl_msg_level & WL_REGULATORY_VAL)
208*4882a593Smuzhiyun #define WL_APSTA_ON()		0
209*4882a593Smuzhiyun #define WL_DFS_ON()		0
210*4882a593Smuzhiyun #define WL_MBSS_ON()		0
211*4882a593Smuzhiyun #define WL_CAC_ON()		(wl_msg_level & WL_CAC_VAL)
212*4882a593Smuzhiyun #define WL_AMPDU_ON()		0
213*4882a593Smuzhiyun #define WL_DPT_ON()		0
214*4882a593Smuzhiyun #define WL_WOWL_ON()		0
215*4882a593Smuzhiyun #define WL_SCAN_ON()		(wl_msg_level2 & WL_SCAN_VAL)
216*4882a593Smuzhiyun #define WL_BTA_ON()		0
217*4882a593Smuzhiyun #define WL_P2P_ON()		0
218*4882a593Smuzhiyun #define WL_ITFR_ON()		0
219*4882a593Smuzhiyun #define WL_MCHAN_ON()		0
220*4882a593Smuzhiyun #define WL_TDLS_ON()		0
221*4882a593Smuzhiyun #define WL_MCNX_ON()		0
222*4882a593Smuzhiyun #define WL_PROT_ON()		0
223*4882a593Smuzhiyun #define WL_PSTA_ON()		0
224*4882a593Smuzhiyun #define WL_TRF_MGMT_ON()	0
225*4882a593Smuzhiyun #define WL_LPC_ON()		0
226*4882a593Smuzhiyun #define WL_L2FILTER_ON()	0
227*4882a593Smuzhiyun #define WL_TXBF_ON()		0
228*4882a593Smuzhiyun #define WL_P2PO_ON()		0
229*4882a593Smuzhiyun #define WL_TSLOG_ON()		0
230*4882a593Smuzhiyun #define WL_WNM_ON()		0
231*4882a593Smuzhiyun #define WL_PCIE_ON()		0
232*4882a593Smuzhiyun #define WL_MUMIMO_ON()		0
233*4882a593Smuzhiyun #define WL_MESH_ON()		0
234*4882a593Smuzhiyun #define WL_MBO_DBG_ON()		0
235*4882a593Smuzhiyun #define WL_RANDMAC_DBG_ON()        0
236*4882a593Smuzhiyun #define WL_ADPS_ON()            0
237*4882a593Smuzhiyun #define WL_OCE_DBG_ON()		0
238*4882a593Smuzhiyun 
239*4882a593Smuzhiyun #else /* !BCMDBG */
240*4882a593Smuzhiyun 
241*4882a593Smuzhiyun /* DBGONLY() macro to reduce ifdefs in code for statements that are only needed when
242*4882a593Smuzhiyun  * BCMDBG is defined.
243*4882a593Smuzhiyun  */
244*4882a593Smuzhiyun #define DBGONLY(x)
245*4882a593Smuzhiyun 
246*4882a593Smuzhiyun /* To disable a message completely ... until you need it again */
247*4882a593Smuzhiyun #define WL_NONE(args)
248*4882a593Smuzhiyun 
249*4882a593Smuzhiyun #define	WL_ERROR(args)
250*4882a593Smuzhiyun 
251*4882a593Smuzhiyun #define  KM_ERR(args)
252*4882a593Smuzhiyun 
253*4882a593Smuzhiyun #define	WL_AMPDU_ERR(args)
254*4882a593Smuzhiyun 
255*4882a593Smuzhiyun #define	WL_TRACE(args)
256*4882a593Smuzhiyun #define WL_APSTA_UPDN(args)
257*4882a593Smuzhiyun #define WL_APSTA_RX(args)
258*4882a593Smuzhiyun 
259*4882a593Smuzhiyun #ifdef WLMSG_WSEC
260*4882a593Smuzhiyun #if defined(EVENT_LOG_COMPILE) && defined(EVENT_LOG_COMPILE)
261*4882a593Smuzhiyun #if defined(USE_EVENT_LOG_RA)
262*4882a593Smuzhiyun #define   WL_WSEC(args)	EVENT_LOG_RA(EVENT_LOG_TAG_WL_WSEC_LOG, args)
263*4882a593Smuzhiyun #define   WL_WSEC_DUMP(args)	EVENT_LOG_RA(EVENT_LOG_TAG_WL_WSEC_DUMP, args)
264*4882a593Smuzhiyun #else
265*4882a593Smuzhiyun #define   WL_WSEC(args)   EVENT_LOG_FAST_CAST_PAREN_ARGS(EVENT_LOG_TAG_WL_WSEC_LOG, args)
266*4882a593Smuzhiyun #define   WL_WSEC_DUMP(args)   EVENT_LOG_FAST_CAST_PAREN_ARGS(EVENT_LOG_TAG_WL_WSEC_DUMP, args)
267*4882a593Smuzhiyun #endif /* USE_EVENT_LOG_RA */
268*4882a593Smuzhiyun #else
269*4882a593Smuzhiyun #define WL_WSEC(args)		WL_PRINT(args)
270*4882a593Smuzhiyun #define WL_WSEC_DUMP(args)	WL_PRINT(args)
271*4882a593Smuzhiyun #endif /* EVENT_LOG_COMPILE */
272*4882a593Smuzhiyun #else
273*4882a593Smuzhiyun #define WL_WSEC(args)
274*4882a593Smuzhiyun #define WL_WSEC_DUMP(args)
275*4882a593Smuzhiyun #endif /* WLMSG_WSEC */
276*4882a593Smuzhiyun 
277*4882a593Smuzhiyun #ifdef WLMSG_MBO
278*4882a593Smuzhiyun #if defined(EVENT_LOG_COMPILE) && defined(EVENT_LOG_COMPILE)
279*4882a593Smuzhiyun #if defined(USE_EVENT_LOG_RA)
280*4882a593Smuzhiyun #define   WL_MBO_DBG(args)		EVENT_LOG_RA(EVENT_LOG_TAG_MBO_DBG, args)
281*4882a593Smuzhiyun #define   WL_MBO_INFO(args)	EVENT_LOG_RA(EVENT_LOG_TAG_MBO_INFO, args)
282*4882a593Smuzhiyun #else
283*4882a593Smuzhiyun #define   WL_MBO_DBG(args)	 \
284*4882a593Smuzhiyun 			EVENT_LOG_COMPACT_CAST_PAREN_ARGS(EVENT_LOG_TAG_MBO_DBG, args)
285*4882a593Smuzhiyun #define   WL_MBO_INFO(args)	 \
286*4882a593Smuzhiyun 			EVENT_LOG_COMPACT_CAST_PAREN_ARGS(EVENT_LOG_TAG_MBO_INFO, args)
287*4882a593Smuzhiyun #endif /* USE_EVENT_LOG_RA */
288*4882a593Smuzhiyun #else
289*4882a593Smuzhiyun #define   WL_MBO_DBG(args)		   WL_PRINT(args)
290*4882a593Smuzhiyun #define   WL_MBO_INFO(args)		WL_PRINT(args)
291*4882a593Smuzhiyun #endif /* EVENT_LOG_COMPILE */
292*4882a593Smuzhiyun #else
293*4882a593Smuzhiyun #define	  WL_MBO_DBG(args)
294*4882a593Smuzhiyun #define	  WL_MBO_INFO(args)
295*4882a593Smuzhiyun #endif /* WLMSG_MBO */
296*4882a593Smuzhiyun 
297*4882a593Smuzhiyun #define   WL_MBO_ERR(args)		WL_PRINT(args)
298*4882a593Smuzhiyun 
299*4882a593Smuzhiyun #ifdef WLMSG_RANDMAC
300*4882a593Smuzhiyun #if defined(EVENT_LOG_COMPILE) && defined(EVENT_LOG_COMPILE)
301*4882a593Smuzhiyun #if defined(USE_EVENT_LOG_RA)
302*4882a593Smuzhiyun #define   WL_RANDMAC_DBG(args)              EVENT_LOG_RA(EVENT_LOG_TAG_RANDMAC_DBG, args)
303*4882a593Smuzhiyun #define   WL_RANDMAC_INFO(args)     EVENT_LOG_RA(EVENT_LOG_TAG_RANDMAC_INFO, args)
304*4882a593Smuzhiyun #else
305*4882a593Smuzhiyun #define   WL_RANDMAC_DBG(args)       \
306*4882a593Smuzhiyun 			EVENT_LOG_COMPACT_CAST_PAREN_ARGS(EVENT_LOG_TAG_RANDMAC_DBG, args)
307*4882a593Smuzhiyun #define   WL_RANDMAC_INFO(args)      \
308*4882a593Smuzhiyun 			EVENT_LOG_COMPACT_CAST_PAREN_ARGS(EVENT_LOG_TAG_RANDMAC_INFO, args)
309*4882a593Smuzhiyun #endif /* USE_EVENT_LOG_RA */
310*4882a593Smuzhiyun #else
311*4882a593Smuzhiyun #define   WL_RANDMAC_DBG(args)                 WL_PRINT(args)
312*4882a593Smuzhiyun #define   WL_RANDMAC_INFO(args)             WL_PRINT(args)
313*4882a593Smuzhiyun #endif /* EVENT_LOG_COMPILE */
314*4882a593Smuzhiyun #else
315*4882a593Smuzhiyun #define   WL_RANDMAC_DBG(args)
316*4882a593Smuzhiyun #define   WL_RANDMAC_INFO(args)
317*4882a593Smuzhiyun #endif /* WLMSG_RANDMAC */
318*4882a593Smuzhiyun 
319*4882a593Smuzhiyun #define   WL_RANDMAC_ERR(args)              WL_PRINT(args)
320*4882a593Smuzhiyun 
321*4882a593Smuzhiyun #ifdef WLMSG_OCE
322*4882a593Smuzhiyun #if defined(EVENT_LOG_COMPILE)
323*4882a593Smuzhiyun #if defined(USE_EVENT_LOG_RA)
324*4882a593Smuzhiyun #define   WL_OCE_DBG(args)		EVENT_LOG_RA(EVENT_LOG_TAG_OCE_DBG, args)
325*4882a593Smuzhiyun #define   WL_OCE_INFO(args)	EVENT_LOG_RA(EVENT_LOG_TAG_OCE_INFO, args)
326*4882a593Smuzhiyun #else
327*4882a593Smuzhiyun #define   WL_OCE_DBG(args)	 \
328*4882a593Smuzhiyun 		EVENT_LOG_COMPACT_CAST_PAREN_ARGS(EVENT_LOG_TAG_OCE_DBG, args)
329*4882a593Smuzhiyun #define   WL_OCE_INFO(args)	 \
330*4882a593Smuzhiyun 			EVENT_LOG_COMPACT_CAST_PAREN_ARGS(EVENT_LOG_TAG_OCE_INFO, args)
331*4882a593Smuzhiyun #endif /* USE_EVENT_LOG_RA */
332*4882a593Smuzhiyun #else
333*4882a593Smuzhiyun #define   WL_OCE_DBG(args)		WL_PRINT(args)
334*4882a593Smuzhiyun #define   WL_OCE_INFO(args)		WL_PRINT(args)
335*4882a593Smuzhiyun #endif /* EVENT_LOG_COMPILE */
336*4882a593Smuzhiyun #else
337*4882a593Smuzhiyun #define	  WL_OCE_DBG(args)
338*4882a593Smuzhiyun #define	  WL_OCE_INFO(args)
339*4882a593Smuzhiyun #endif /* WLMSG_OCE */
340*4882a593Smuzhiyun 
341*4882a593Smuzhiyun #define   WL_OCE_ERR(args)		WL_PRINT(args)
342*4882a593Smuzhiyun 
343*4882a593Smuzhiyun #define WL_PCIE(args)		do {if (wl_msg_level2 & WL_PCIE_VAL) WL_PRINT(args);} while (0)
344*4882a593Smuzhiyun #define WL_PCIE_ON()		(wl_msg_level2 & WL_PCIE_VAL)
345*4882a593Smuzhiyun #define WL_PFN(args)      do {if (wl_msg_level & WL_PFN_VAL) WL_PRINT(args);} while (0)
346*4882a593Smuzhiyun #define WL_PFN_ON()		(wl_msg_level & WL_PFN_VAL)
347*4882a593Smuzhiyun #endif // endif
348*4882a593Smuzhiyun 
349*4882a593Smuzhiyun #ifdef WLMSG_BAM
350*4882a593Smuzhiyun #if defined(EVENT_LOG_COMPILE)
351*4882a593Smuzhiyun #ifdef USE_EVENT_LOG_RA
352*4882a593Smuzhiyun #define WL_BAM_ERR(args)	EVENT_LOG_RA(EVENT_LOG_TAG_BAM, args)
353*4882a593Smuzhiyun #else
354*4882a593Smuzhiyun #define WL_BAM_ERR(args)	EVENT_LOG_COMPACT_CAST_PAREN_ARGS(EVENT_LOG_TAG_BAM, args)
355*4882a593Smuzhiyun #endif /* USE_EVENT_LOG_RA */
356*4882a593Smuzhiyun #else
357*4882a593Smuzhiyun #define WL_BAM_ERR(args)	WL_PRINT(args)
358*4882a593Smuzhiyun #endif /* EVENT_LOG_COMPILE */
359*4882a593Smuzhiyun #endif /* WLMSG_BAM */
360*4882a593Smuzhiyun 
361*4882a593Smuzhiyun #ifdef WLMSG_WNM_BSSTRANS
362*4882a593Smuzhiyun #if defined(EVENT_LOG_COMPILE)
363*4882a593Smuzhiyun #if defined(USE_EVENT_LOG_RA)
364*4882a593Smuzhiyun #define   WL_BSSTRANS_INFO(args)		EVENT_LOG_RA(EVENT_LOG_TAG_WNM_BSSTRANS_INFO, args)
365*4882a593Smuzhiyun #else
366*4882a593Smuzhiyun #define   WL_BSSTRANS_INFO(args)	 \
367*4882a593Smuzhiyun 			EVENT_LOG_COMPACT_CAST_PAREN_ARGS(EVENT_LOG_TAG_WNM_BSSTRANS_INFO, args)
368*4882a593Smuzhiyun #endif /* USE_EVENT_LOG_RA */
369*4882a593Smuzhiyun #else
370*4882a593Smuzhiyun #define   WL_BSSTRANS_INFO(args)		WL_PRINT(args)
371*4882a593Smuzhiyun #endif /* EVENT_LOG_COMPILE */
372*4882a593Smuzhiyun #else
373*4882a593Smuzhiyun #define	  WL_BSSTRANS_INFO(args)
374*4882a593Smuzhiyun #endif /* WLMSG_WNM_BSSTRANS */
375*4882a593Smuzhiyun 
376*4882a593Smuzhiyun #define   WL_BSSTRANS_ERR(args)      WL_PRINT(args)
377*4882a593Smuzhiyun 
378*4882a593Smuzhiyun #define DBGERRONLY(x)
379*4882a593Smuzhiyun 
380*4882a593Smuzhiyun extern uint32 wl_msg_level;
381*4882a593Smuzhiyun extern uint32 wl_msg_level2;
382*4882a593Smuzhiyun #endif /* _wl_dbg_h_ */
383