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