/* SPDX-License-Identifier: GPL-2.0 *//* * Portions * Copyright (C) 2022 - 2023 Intel Corporation */#ifndef __MAC80211_DEBUG_H#define __MAC80211_DEBUG_H#include <net/cfg80211.h> #ifdef CONFIG_MAC80211_OCB_DEBUG#define MAC80211_OCB_DEBUG 1#else#define MAC80211_OCB_DEBUG 0#endif #ifdef CONFIG_MAC80211_IBSS_DEBUG#define MAC80211_IBSS_DEBUG 1#else#define MAC80211_IBSS_DEBUG 0#endif #ifdef CONFIG_MAC80211_PS_DEBUG#define MAC80211_PS_DEBUG 1#else#define MAC80211_PS_DEBUG 0#endif #ifdef CONFIG_MAC80211_HT_DEBUG#define MAC80211_HT_DEBUG 1#else#define MAC80211_HT_DEBUG 0#endif #ifdef CONFIG_MAC80211_MPL_DEBUG#define MAC80211_MPL_DEBUG 1#else#define MAC80211_MPL_DEBUG 0#endif #ifdef CONFIG_MAC80211_MPATH_DEBUG#define MAC80211_MPATH_DEBUG 1#else#define MAC80211_MPATH_DEBUG 0#endif #ifdef CONFIG_MAC80211_MHWMP_DEBUG#define MAC80211_MHWMP_DEBUG 1#else#define MAC80211_MHWMP_DEBUG 0#endif #ifdef CONFIG_MAC80211_MESH_SYNC_DEBUG#define MAC80211_MESH_SYNC_DEBUG 1#else#define MAC80211_MESH_SYNC_DEBUG 0#endif #ifdef CONFIG_MAC80211_MESH_CSA_DEBUG#define MAC80211_MESH_CSA_DEBUG 1#else#define MAC80211_MESH_CSA_DEBUG 0#endif #ifdef CONFIG_MAC80211_MESH_PS_DEBUG#define MAC80211_MESH_PS_DEBUG 1#else#define MAC80211_MESH_PS_DEBUG 0#endif #ifdef CONFIG_MAC80211_TDLS_DEBUG#define MAC80211_TDLS_DEBUG 1#else#define MAC80211_TDLS_DEBUG 0#endif #ifdef CONFIG_MAC80211_STA_DEBUG#define MAC80211_STA_DEBUG 1#else#define MAC80211_STA_DEBUG 0#endif #ifdef CONFIG_MAC80211_MLME_DEBUG#define MAC80211_MLME_DEBUG 1#else#define MAC80211_MLME_DEBUG 0#endif #ifdef CONFIG_MAC80211_MESSAGE_TRACINGvoid __sdata_info(const char *fmt, ...) __printf(1, 2);void __sdata_dbg(bool print, const char *fmt, ...) __printf(2, 3);void __sdata_err(const char *fmt, ...) __printf(1, 2);void __wiphy_dbg(struct wiphy *wiphy, bool print, const char *fmt, ...) __printf(3, 4); #define _sdata_info(sdata, fmt, ...) \ __sdata_info("%s: " fmt, (sdata)->name, ##__VA_ARGS__)#define _sdata_dbg(print, sdata, fmt, ...) \ __sdata_dbg(print, "%s: " fmt, (sdata)->name, ##__VA_ARGS__)#define _sdata_err(sdata, fmt, ...) \ __sdata_err("%s: " fmt, (sdata)->name, ##__VA_ARGS__)#define _wiphy_dbg(print, wiphy, fmt, ...) \ __wiphy_dbg(wiphy, print, fmt, ##__VA_ARGS__)#else#define _sdata_info(sdata, fmt, ...) \do { \ pr_info("%s: " fmt, \ (sdata)->name, ##__VA_ARGS__); \} while (0) #define _sdata_dbg(print, sdata, fmt, ...) \do { \ if (print) \ pr_debug("%s: " fmt, \ (sdata)->name, ##__VA_ARGS__); \} while (0) #define _sdata_err(sdata, fmt, ...) \do { \ pr_err("%s: " fmt, \ (sdata)->name, ##__VA_ARGS__); \} while (0) #define _wiphy_dbg(print, wiphy, fmt, ...) \do { \ if (print) \ wiphy_dbg((wiphy), fmt, ##__VA_ARGS__); \} while (0)#endif #define sdata_info(sdata, fmt, ...) \ _sdata_info(sdata, fmt, ##__VA_ARGS__)#define sdata_err(sdata, fmt, ...) \ _sdata_err(sdata, fmt, ##__VA_ARGS__)#define sdata_dbg(sdata, fmt, ...) \ _sdata_dbg(1, sdata, fmt, ##__VA_ARGS__) #define link_info(link, fmt, ...) \ do { \ if (ieee80211_vif_is_mld(&(link)->sdata->vif)) \ _sdata_info((link)->sdata, "[link %d] " fmt, \ (link)->link_id, \ ##__VA_ARGS__); \ else \ _sdata_info((link)->sdata, fmt, ##__VA_ARGS__); \ } while (0)#define link_err(link, fmt, ...) \ do { \ if (ieee80211_vif_is_mld(&(link)->sdata->vif)) \ _sdata_err((link)->sdata, "[link %d] " fmt, \ (link)->link_id, \ ##__VA_ARGS__); \ else \ _sdata_err((link)->sdata, fmt, ##__VA_ARGS__); \ } while (0)#define _link_id_dbg(print, sdata, link_id, fmt, ...) \ do { \ if (ieee80211_vif_is_mld(&(sdata)->vif)) \ _sdata_dbg(print, sdata, "[link %d] " fmt, \ link_id, ##__VA_ARGS__); \ else \ _sdata_dbg(print, sdata, fmt, ##__VA_ARGS__); \ } while (0)#define link_dbg(link, fmt, ...) \ _link_id_dbg(1, (link)->sdata, (link)->link_id, \ fmt, ##__VA_ARGS__) #define ht_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_HT_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define ht_dbg_ratelimited(sdata, fmt, ...) \ _sdata_dbg(MAC80211_HT_DEBUG && net_ratelimit(), \ sdata, fmt, ##__VA_ARGS__) #define ocb_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_OCB_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define ibss_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_IBSS_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define ps_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_PS_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define ps_dbg_hw(hw, fmt, ...) \ _wiphy_dbg(MAC80211_PS_DEBUG, \ (hw)->wiphy, fmt, ##__VA_ARGS__) #define ps_dbg_ratelimited(sdata, fmt, ...) \ _sdata_dbg(MAC80211_PS_DEBUG && net_ratelimit(), \ sdata, fmt, ##__VA_ARGS__) #define mpl_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MPL_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mpath_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MPATH_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mhwmp_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MHWMP_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define msync_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MESH_SYNC_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mcsa_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MESH_CSA_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mps_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MESH_PS_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define tdls_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_TDLS_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define sta_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_STA_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mlme_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MLME_DEBUG, \ sdata, fmt, ##__VA_ARGS__)#define mlme_link_id_dbg(sdata, link_id, fmt, ...) \ _link_id_dbg(MAC80211_MLME_DEBUG, sdata, link_id, \ fmt, ##__VA_ARGS__) #define mlme_dbg_ratelimited(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MLME_DEBUG && net_ratelimit(), \ sdata, fmt, ##__VA_ARGS__) #endif /* __MAC80211_DEBUG_H */
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Portions
* Copyright (C) 2022 - 2023 Intel Corporation
*/
#ifndef __MAC80211_DEBUG_H
#define __MAC80211_DEBUG_H
#include <net/cfg80211.h>
#ifdef CONFIG_MAC80211_OCB_DEBUG
#define MAC80211_OCB_DEBUG 1
#else
#define MAC80211_OCB_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_IBSS_DEBUG
#define MAC80211_IBSS_DEBUG 1
#else
#define MAC80211_IBSS_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_PS_DEBUG
#define MAC80211_PS_DEBUG 1
#else
#define MAC80211_PS_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_HT_DEBUG
#define MAC80211_HT_DEBUG 1
#else
#define MAC80211_HT_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_MPL_DEBUG
#define MAC80211_MPL_DEBUG 1
#else
#define MAC80211_MPL_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_MPATH_DEBUG
#define MAC80211_MPATH_DEBUG 1
#else
#define MAC80211_MPATH_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_MHWMP_DEBUG
#define MAC80211_MHWMP_DEBUG 1
#else
#define MAC80211_MHWMP_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_MESH_SYNC_DEBUG
#define MAC80211_MESH_SYNC_DEBUG 1
#else
#define MAC80211_MESH_SYNC_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_MESH_CSA_DEBUG
#define MAC80211_MESH_CSA_DEBUG 1
#else
#define MAC80211_MESH_CSA_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_MESH_PS_DEBUG
#define MAC80211_MESH_PS_DEBUG 1
#else
#define MAC80211_MESH_PS_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_TDLS_DEBUG
#define MAC80211_TDLS_DEBUG 1
#else
#define MAC80211_TDLS_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_STA_DEBUG
#define MAC80211_STA_DEBUG 1
#else
#define MAC80211_STA_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_MLME_DEBUG
#define MAC80211_MLME_DEBUG 1
#else
#define MAC80211_MLME_DEBUG 0
#endif
#ifdef CONFIG_MAC80211_MESSAGE_TRACING
void __sdata_info(const char *fmt, ...) __printf(1, 2);
void __sdata_dbg(bool print, const char *fmt, ...) __printf(2, 3);
void __sdata_err(const char *fmt, ...) __printf(1, 2);
void __wiphy_dbg(struct wiphy *wiphy, bool print, const char *fmt, ...)
__printf(3, 4);
#define _sdata_info(sdata, fmt, ...) \
__sdata_info("%s: " fmt, (sdata)->name, ##__VA_ARGS__)
#define _sdata_dbg(print, sdata, fmt, ...) \
__sdata_dbg(print, "%s: " fmt, (sdata)->name, ##__VA_ARGS__)
#define _sdata_err(sdata, fmt, ...) \
__sdata_err("%s: " fmt, (sdata)->name, ##__VA_ARGS__)
#define _wiphy_dbg(print, wiphy, fmt, ...) \
__wiphy_dbg(wiphy, print, fmt, ##__VA_ARGS__)
#else
#define _sdata_info(sdata, fmt, ...) \
do { \
pr_info("%s: " fmt, \
(sdata)->name, ##__VA_ARGS__); \
} while (0)
#define _sdata_dbg(print, sdata, fmt, ...) \
do { \
if (print) \
pr_debug("%s: " fmt, \
(sdata)->name, ##__VA_ARGS__); \
} while (0)
#define _sdata_err(sdata, fmt, ...) \
do { \
pr_err("%s: " fmt, \
(sdata)->name, ##__VA_ARGS__); \
} while (0)
#define _wiphy_dbg(print, wiphy, fmt, ...) \
do { \
if (print) \
wiphy_dbg((wiphy), fmt, ##__VA_ARGS__); \
} while (0)
#endif
#define sdata_info(sdata, fmt, ...) \
_sdata_info(sdata, fmt, ##__VA_ARGS__)
#define sdata_err(sdata, fmt, ...) \
_sdata_err(sdata, fmt, ##__VA_ARGS__)
#define sdata_dbg(sdata, fmt, ...) \
_sdata_dbg(1, sdata, fmt, ##__VA_ARGS__)
#define link_info(link, fmt, ...) \
do { \
if (ieee80211_vif_is_mld(&(link)->sdata->vif)) \
_sdata_info((link)->sdata, "[link %d] " fmt, \
(link)->link_id, \
##__VA_ARGS__); \
else \
_sdata_info((link)->sdata, fmt, ##__VA_ARGS__); \
} while (0)
#define link_err(link, fmt, ...) \
do { \
if (ieee80211_vif_is_mld(&(link)->sdata->vif)) \
_sdata_err((link)->sdata, "[link %d] " fmt, \
(link)->link_id, \
##__VA_ARGS__); \
else \
_sdata_err((link)->sdata, fmt, ##__VA_ARGS__); \
} while (0)
#define _link_id_dbg(print, sdata, link_id, fmt, ...) \
do { \
if (ieee80211_vif_is_mld(&(sdata)->vif)) \
_sdata_dbg(print, sdata, "[link %d] " fmt, \
link_id, ##__VA_ARGS__); \
else \
_sdata_dbg(print, sdata, fmt, ##__VA_ARGS__); \
} while (0)
#define link_dbg(link, fmt, ...) \
_link_id_dbg(1, (link)->sdata, (link)->link_id, \
fmt, ##__VA_ARGS__)
#define ht_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_HT_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define ht_dbg_ratelimited(sdata, fmt, ...) \
_sdata_dbg(MAC80211_HT_DEBUG && net_ratelimit(), \
sdata, fmt, ##__VA_ARGS__)
#define ocb_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_OCB_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define ibss_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_IBSS_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define ps_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_PS_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define ps_dbg_hw(hw, fmt, ...) \
_wiphy_dbg(MAC80211_PS_DEBUG, \
(hw)->wiphy, fmt, ##__VA_ARGS__)
#define ps_dbg_ratelimited(sdata, fmt, ...) \
_sdata_dbg(MAC80211_PS_DEBUG && net_ratelimit(), \
sdata, fmt, ##__VA_ARGS__)
#define mpl_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_MPL_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define mpath_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_MPATH_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define mhwmp_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_MHWMP_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define msync_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_MESH_SYNC_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define mcsa_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_MESH_CSA_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define mps_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_MESH_PS_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define tdls_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_TDLS_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define sta_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_STA_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define mlme_dbg(sdata, fmt, ...) \
_sdata_dbg(MAC80211_MLME_DEBUG, \
sdata, fmt, ##__VA_ARGS__)
#define mlme_link_id_dbg(sdata, link_id, fmt, ...) \
_link_id_dbg(MAC80211_MLME_DEBUG, sdata, link_id, \
fmt, ##__VA_ARGS__)
#define mlme_dbg_ratelimited(sdata, fmt, ...) \
_sdata_dbg(MAC80211_MLME_DEBUG && net_ratelimit(), \
sdata, fmt, ##__VA_ARGS__)
#endif /* __MAC80211_DEBUG_H */