1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __MAC80211_DEBUG_H 3*4882a593Smuzhiyun #define __MAC80211_DEBUG_H 4*4882a593Smuzhiyun #include <net/cfg80211.h> 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_OCB_DEBUG 7*4882a593Smuzhiyun #define MAC80211_OCB_DEBUG 1 8*4882a593Smuzhiyun #else 9*4882a593Smuzhiyun #define MAC80211_OCB_DEBUG 0 10*4882a593Smuzhiyun #endif 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_IBSS_DEBUG 13*4882a593Smuzhiyun #define MAC80211_IBSS_DEBUG 1 14*4882a593Smuzhiyun #else 15*4882a593Smuzhiyun #define MAC80211_IBSS_DEBUG 0 16*4882a593Smuzhiyun #endif 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_PS_DEBUG 19*4882a593Smuzhiyun #define MAC80211_PS_DEBUG 1 20*4882a593Smuzhiyun #else 21*4882a593Smuzhiyun #define MAC80211_PS_DEBUG 0 22*4882a593Smuzhiyun #endif 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_HT_DEBUG 25*4882a593Smuzhiyun #define MAC80211_HT_DEBUG 1 26*4882a593Smuzhiyun #else 27*4882a593Smuzhiyun #define MAC80211_HT_DEBUG 0 28*4882a593Smuzhiyun #endif 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_MPL_DEBUG 31*4882a593Smuzhiyun #define MAC80211_MPL_DEBUG 1 32*4882a593Smuzhiyun #else 33*4882a593Smuzhiyun #define MAC80211_MPL_DEBUG 0 34*4882a593Smuzhiyun #endif 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_MPATH_DEBUG 37*4882a593Smuzhiyun #define MAC80211_MPATH_DEBUG 1 38*4882a593Smuzhiyun #else 39*4882a593Smuzhiyun #define MAC80211_MPATH_DEBUG 0 40*4882a593Smuzhiyun #endif 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_MHWMP_DEBUG 43*4882a593Smuzhiyun #define MAC80211_MHWMP_DEBUG 1 44*4882a593Smuzhiyun #else 45*4882a593Smuzhiyun #define MAC80211_MHWMP_DEBUG 0 46*4882a593Smuzhiyun #endif 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_MESH_SYNC_DEBUG 49*4882a593Smuzhiyun #define MAC80211_MESH_SYNC_DEBUG 1 50*4882a593Smuzhiyun #else 51*4882a593Smuzhiyun #define MAC80211_MESH_SYNC_DEBUG 0 52*4882a593Smuzhiyun #endif 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_MESH_CSA_DEBUG 55*4882a593Smuzhiyun #define MAC80211_MESH_CSA_DEBUG 1 56*4882a593Smuzhiyun #else 57*4882a593Smuzhiyun #define MAC80211_MESH_CSA_DEBUG 0 58*4882a593Smuzhiyun #endif 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_MESH_PS_DEBUG 61*4882a593Smuzhiyun #define MAC80211_MESH_PS_DEBUG 1 62*4882a593Smuzhiyun #else 63*4882a593Smuzhiyun #define MAC80211_MESH_PS_DEBUG 0 64*4882a593Smuzhiyun #endif 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_TDLS_DEBUG 67*4882a593Smuzhiyun #define MAC80211_TDLS_DEBUG 1 68*4882a593Smuzhiyun #else 69*4882a593Smuzhiyun #define MAC80211_TDLS_DEBUG 0 70*4882a593Smuzhiyun #endif 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_STA_DEBUG 73*4882a593Smuzhiyun #define MAC80211_STA_DEBUG 1 74*4882a593Smuzhiyun #else 75*4882a593Smuzhiyun #define MAC80211_STA_DEBUG 0 76*4882a593Smuzhiyun #endif 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_MLME_DEBUG 79*4882a593Smuzhiyun #define MAC80211_MLME_DEBUG 1 80*4882a593Smuzhiyun #else 81*4882a593Smuzhiyun #define MAC80211_MLME_DEBUG 0 82*4882a593Smuzhiyun #endif 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun #ifdef CONFIG_MAC80211_MESSAGE_TRACING 85*4882a593Smuzhiyun void __sdata_info(const char *fmt, ...) __printf(1, 2); 86*4882a593Smuzhiyun void __sdata_dbg(bool print, const char *fmt, ...) __printf(2, 3); 87*4882a593Smuzhiyun void __sdata_err(const char *fmt, ...) __printf(1, 2); 88*4882a593Smuzhiyun void __wiphy_dbg(struct wiphy *wiphy, bool print, const char *fmt, ...) 89*4882a593Smuzhiyun __printf(3, 4); 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun #define _sdata_info(sdata, fmt, ...) \ 92*4882a593Smuzhiyun __sdata_info("%s: " fmt, (sdata)->name, ##__VA_ARGS__) 93*4882a593Smuzhiyun #define _sdata_dbg(print, sdata, fmt, ...) \ 94*4882a593Smuzhiyun __sdata_dbg(print, "%s: " fmt, (sdata)->name, ##__VA_ARGS__) 95*4882a593Smuzhiyun #define _sdata_err(sdata, fmt, ...) \ 96*4882a593Smuzhiyun __sdata_err("%s: " fmt, (sdata)->name, ##__VA_ARGS__) 97*4882a593Smuzhiyun #define _wiphy_dbg(print, wiphy, fmt, ...) \ 98*4882a593Smuzhiyun __wiphy_dbg(wiphy, print, fmt, ##__VA_ARGS__) 99*4882a593Smuzhiyun #else 100*4882a593Smuzhiyun #define _sdata_info(sdata, fmt, ...) \ 101*4882a593Smuzhiyun do { \ 102*4882a593Smuzhiyun pr_info("%s: " fmt, \ 103*4882a593Smuzhiyun (sdata)->name, ##__VA_ARGS__); \ 104*4882a593Smuzhiyun } while (0) 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun #define _sdata_dbg(print, sdata, fmt, ...) \ 107*4882a593Smuzhiyun do { \ 108*4882a593Smuzhiyun if (print) \ 109*4882a593Smuzhiyun pr_debug("%s: " fmt, \ 110*4882a593Smuzhiyun (sdata)->name, ##__VA_ARGS__); \ 111*4882a593Smuzhiyun } while (0) 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun #define _sdata_err(sdata, fmt, ...) \ 114*4882a593Smuzhiyun do { \ 115*4882a593Smuzhiyun pr_err("%s: " fmt, \ 116*4882a593Smuzhiyun (sdata)->name, ##__VA_ARGS__); \ 117*4882a593Smuzhiyun } while (0) 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun #define _wiphy_dbg(print, wiphy, fmt, ...) \ 120*4882a593Smuzhiyun do { \ 121*4882a593Smuzhiyun if (print) \ 122*4882a593Smuzhiyun wiphy_dbg((wiphy), fmt, ##__VA_ARGS__); \ 123*4882a593Smuzhiyun } while (0) 124*4882a593Smuzhiyun #endif 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun #define sdata_info(sdata, fmt, ...) \ 127*4882a593Smuzhiyun _sdata_info(sdata, fmt, ##__VA_ARGS__) 128*4882a593Smuzhiyun #define sdata_err(sdata, fmt, ...) \ 129*4882a593Smuzhiyun _sdata_err(sdata, fmt, ##__VA_ARGS__) 130*4882a593Smuzhiyun #define sdata_dbg(sdata, fmt, ...) \ 131*4882a593Smuzhiyun _sdata_dbg(1, sdata, fmt, ##__VA_ARGS__) 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun #define ht_dbg(sdata, fmt, ...) \ 134*4882a593Smuzhiyun _sdata_dbg(MAC80211_HT_DEBUG, \ 135*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun #define ht_dbg_ratelimited(sdata, fmt, ...) \ 138*4882a593Smuzhiyun _sdata_dbg(MAC80211_HT_DEBUG && net_ratelimit(), \ 139*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun #define ocb_dbg(sdata, fmt, ...) \ 142*4882a593Smuzhiyun _sdata_dbg(MAC80211_OCB_DEBUG, \ 143*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun #define ibss_dbg(sdata, fmt, ...) \ 146*4882a593Smuzhiyun _sdata_dbg(MAC80211_IBSS_DEBUG, \ 147*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun #define ps_dbg(sdata, fmt, ...) \ 150*4882a593Smuzhiyun _sdata_dbg(MAC80211_PS_DEBUG, \ 151*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun #define ps_dbg_hw(hw, fmt, ...) \ 154*4882a593Smuzhiyun _wiphy_dbg(MAC80211_PS_DEBUG, \ 155*4882a593Smuzhiyun (hw)->wiphy, fmt, ##__VA_ARGS__) 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun #define ps_dbg_ratelimited(sdata, fmt, ...) \ 158*4882a593Smuzhiyun _sdata_dbg(MAC80211_PS_DEBUG && net_ratelimit(), \ 159*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun #define mpl_dbg(sdata, fmt, ...) \ 162*4882a593Smuzhiyun _sdata_dbg(MAC80211_MPL_DEBUG, \ 163*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun #define mpath_dbg(sdata, fmt, ...) \ 166*4882a593Smuzhiyun _sdata_dbg(MAC80211_MPATH_DEBUG, \ 167*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun #define mhwmp_dbg(sdata, fmt, ...) \ 170*4882a593Smuzhiyun _sdata_dbg(MAC80211_MHWMP_DEBUG, \ 171*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun #define msync_dbg(sdata, fmt, ...) \ 174*4882a593Smuzhiyun _sdata_dbg(MAC80211_MESH_SYNC_DEBUG, \ 175*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun #define mcsa_dbg(sdata, fmt, ...) \ 178*4882a593Smuzhiyun _sdata_dbg(MAC80211_MESH_CSA_DEBUG, \ 179*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun #define mps_dbg(sdata, fmt, ...) \ 182*4882a593Smuzhiyun _sdata_dbg(MAC80211_MESH_PS_DEBUG, \ 183*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun #define tdls_dbg(sdata, fmt, ...) \ 186*4882a593Smuzhiyun _sdata_dbg(MAC80211_TDLS_DEBUG, \ 187*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun #define sta_dbg(sdata, fmt, ...) \ 190*4882a593Smuzhiyun _sdata_dbg(MAC80211_STA_DEBUG, \ 191*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun #define mlme_dbg(sdata, fmt, ...) \ 194*4882a593Smuzhiyun _sdata_dbg(MAC80211_MLME_DEBUG, \ 195*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun #define mlme_dbg_ratelimited(sdata, fmt, ...) \ 198*4882a593Smuzhiyun _sdata_dbg(MAC80211_MLME_DEBUG && net_ratelimit(), \ 199*4882a593Smuzhiyun sdata, fmt, ##__VA_ARGS__) 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun #endif /* __MAC80211_DEBUG_H */ 202