File Index
Files and directories
Sign in
FILE

debug.h

File preview with syntax highlighting.

linux-6.19.14/net/mac80211/debug.h C
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/*
  3 * Portions
  4 * Copyright (C) 2022 - 2025 Intel Corporation
  5 */
  6#ifndef __MAC80211_DEBUG_H
  7#define __MAC80211_DEBUG_H
  8#include <linux/once_lite.h>
  9#include <net/cfg80211.h>
 10
 11#ifdef CONFIG_MAC80211_OCB_DEBUG
 12#define MAC80211_OCB_DEBUG 1
 13#else
 14#define MAC80211_OCB_DEBUG 0
 15#endif
 16
 17#ifdef CONFIG_MAC80211_IBSS_DEBUG
 18#define MAC80211_IBSS_DEBUG 1
 19#else
 20#define MAC80211_IBSS_DEBUG 0
 21#endif
 22
 23#ifdef CONFIG_MAC80211_PS_DEBUG
 24#define MAC80211_PS_DEBUG 1
 25#else
 26#define MAC80211_PS_DEBUG 0
 27#endif
 28
 29#ifdef CONFIG_MAC80211_HT_DEBUG
 30#define MAC80211_HT_DEBUG 1
 31#else
 32#define MAC80211_HT_DEBUG 0
 33#endif
 34
 35#ifdef CONFIG_MAC80211_MPL_DEBUG
 36#define MAC80211_MPL_DEBUG 1
 37#else
 38#define MAC80211_MPL_DEBUG 0
 39#endif
 40
 41#ifdef CONFIG_MAC80211_MPATH_DEBUG
 42#define MAC80211_MPATH_DEBUG 1
 43#else
 44#define MAC80211_MPATH_DEBUG 0
 45#endif
 46
 47#ifdef CONFIG_MAC80211_MHWMP_DEBUG
 48#define MAC80211_MHWMP_DEBUG 1
 49#else
 50#define MAC80211_MHWMP_DEBUG 0
 51#endif
 52
 53#ifdef CONFIG_MAC80211_MESH_SYNC_DEBUG
 54#define MAC80211_MESH_SYNC_DEBUG 1
 55#else
 56#define MAC80211_MESH_SYNC_DEBUG 0
 57#endif
 58
 59#ifdef CONFIG_MAC80211_MESH_CSA_DEBUG
 60#define MAC80211_MESH_CSA_DEBUG 1
 61#else
 62#define MAC80211_MESH_CSA_DEBUG 0
 63#endif
 64
 65#ifdef CONFIG_MAC80211_MESH_PS_DEBUG
 66#define MAC80211_MESH_PS_DEBUG 1
 67#else
 68#define MAC80211_MESH_PS_DEBUG 0
 69#endif
 70
 71#ifdef CONFIG_MAC80211_TDLS_DEBUG
 72#define MAC80211_TDLS_DEBUG 1
 73#else
 74#define MAC80211_TDLS_DEBUG 0
 75#endif
 76
 77#ifdef CONFIG_MAC80211_STA_DEBUG
 78#define MAC80211_STA_DEBUG 1
 79#else
 80#define MAC80211_STA_DEBUG 0
 81#endif
 82
 83#ifdef CONFIG_MAC80211_MLME_DEBUG
 84#define MAC80211_MLME_DEBUG 1
 85#else
 86#define MAC80211_MLME_DEBUG 0
 87#endif
 88
 89#ifdef CONFIG_MAC80211_MESSAGE_TRACING
 90void __sdata_info(const char *fmt, ...) __printf(1, 2);
 91void __sdata_dbg(bool print, const char *fmt, ...) __printf(2, 3);
 92void __sdata_err(const char *fmt, ...) __printf(1, 2);
 93void __wiphy_dbg(struct wiphy *wiphy, bool print, const char *fmt, ...)
 94	__printf(3, 4);
 95
 96#define _sdata_info(sdata, fmt, ...)					\
 97	__sdata_info("%s: " fmt, (sdata)->name, ##__VA_ARGS__)
 98#define _sdata_dbg(print, sdata, fmt, ...)				\
 99	__sdata_dbg(print, "%s: " fmt, (sdata)->name, ##__VA_ARGS__)
100#define _sdata_err(sdata, fmt, ...)					\
101	__sdata_err("%s: " fmt, (sdata)->name, ##__VA_ARGS__)
102#define _wiphy_dbg(print, wiphy, fmt, ...)				\
103	__wiphy_dbg(wiphy, print, fmt, ##__VA_ARGS__)
104#else
105#define _sdata_info(sdata, fmt, ...)					\
106do {									\
107	pr_info("%s: " fmt,						\
108		(sdata)->name, ##__VA_ARGS__);				\
109} while (0)
110
111#define _sdata_dbg(print, sdata, fmt, ...)				\
112do {									\
113	if (print)							\
114		pr_debug("%s: " fmt,					\
115			 (sdata)->name, ##__VA_ARGS__);			\
116} while (0)
117
118#define _sdata_err(sdata, fmt, ...)					\
119do {									\
120	pr_err("%s: " fmt,						\
121	       (sdata)->name, ##__VA_ARGS__);				\
122} while (0)
123
124#define _wiphy_dbg(print, wiphy, fmt, ...)				\
125do {									\
126	if (print)							\
127		wiphy_dbg((wiphy), fmt, ##__VA_ARGS__);			\
128} while (0)
129#endif
130
131#define sdata_info(sdata, fmt, ...)					\
132	_sdata_info(sdata, fmt, ##__VA_ARGS__)
133#define sdata_err(sdata, fmt, ...)					\
134	_sdata_err(sdata, fmt, ##__VA_ARGS__)
135#define sdata_dbg(sdata, fmt, ...)					\
136	_sdata_dbg(1, sdata, fmt, ##__VA_ARGS__)
137
138#define link_info(link, fmt, ...)					\
139	do {								\
140		if (ieee80211_vif_is_mld(&(link)->sdata->vif))          \
141			_sdata_info((link)->sdata, "[link %d] " fmt,	\
142				    (link)->link_id,			\
143				    ##__VA_ARGS__);			\
144		else							\
145			_sdata_info((link)->sdata, fmt, ##__VA_ARGS__);	\
146	} while (0)
147#define link_err(link, fmt, ...)					\
148	do {								\
149		if (ieee80211_vif_is_mld(&(link)->sdata->vif))          \
150			_sdata_err((link)->sdata, "[link %d] " fmt,	\
151				   (link)->link_id,			\
152				   ##__VA_ARGS__);			\
153		else							\
154			_sdata_err((link)->sdata, fmt, ##__VA_ARGS__);	\
155	} while (0)
156#define link_err_once(link, fmt, ...)					\
157	DO_ONCE_LITE(link_err, link, fmt, ##__VA_ARGS__)
158#define link_id_info(sdata, link_id, fmt, ...)				\
159	do {								\
160		if (ieee80211_vif_is_mld(&sdata->vif))			\
161			_sdata_info(sdata, "[link %d] " fmt, link_id,	\
162				    ##__VA_ARGS__);			\
163		else							\
164			_sdata_info(sdata, fmt, ##__VA_ARGS__);		\
165	} while (0)
166#define _link_id_dbg(print, sdata, link_id, fmt, ...)			\
167	do {								\
168		if (ieee80211_vif_is_mld(&(sdata)->vif))		\
169			_sdata_dbg(print, sdata, "[link %d] " fmt,	\
170				   link_id, ##__VA_ARGS__);		\
171		else							\
172			_sdata_dbg(print, sdata, fmt, ##__VA_ARGS__);	\
173	} while (0)
174#define link_dbg(link, fmt, ...)					\
175	_link_id_dbg(1, (link)->sdata, (link)->link_id,			\
176		     fmt, ##__VA_ARGS__)
177
178#define ht_dbg(sdata, fmt, ...)						\
179	_sdata_dbg(MAC80211_HT_DEBUG,					\
180		   sdata, fmt, ##__VA_ARGS__)
181
182#define ht_dbg_ratelimited(sdata, fmt, ...)				\
183	_sdata_dbg(MAC80211_HT_DEBUG && net_ratelimit(),		\
184		   sdata, fmt, ##__VA_ARGS__)
185
186#define ocb_dbg(sdata, fmt, ...)					\
187	_sdata_dbg(MAC80211_OCB_DEBUG,					\
188		   sdata, fmt, ##__VA_ARGS__)
189
190#define ibss_dbg(sdata, fmt, ...)					\
191	_sdata_dbg(MAC80211_IBSS_DEBUG,					\
192		   sdata, fmt, ##__VA_ARGS__)
193
194#define ps_dbg(sdata, fmt, ...)						\
195	_sdata_dbg(MAC80211_PS_DEBUG,					\
196		   sdata, fmt, ##__VA_ARGS__)
197
198#define ps_dbg_hw(hw, fmt, ...)						\
199	_wiphy_dbg(MAC80211_PS_DEBUG,					\
200		   (hw)->wiphy, fmt, ##__VA_ARGS__)
201
202#define ps_dbg_ratelimited(sdata, fmt, ...)				\
203	_sdata_dbg(MAC80211_PS_DEBUG && net_ratelimit(),		\
204		   sdata, fmt, ##__VA_ARGS__)
205
206#define mpl_dbg(sdata, fmt, ...)					\
207	_sdata_dbg(MAC80211_MPL_DEBUG,					\
208		   sdata, fmt, ##__VA_ARGS__)
209
210#define mpath_dbg(sdata, fmt, ...)					\
211	_sdata_dbg(MAC80211_MPATH_DEBUG,				\
212		   sdata, fmt, ##__VA_ARGS__)
213
214#define mhwmp_dbg(sdata, fmt, ...)					\
215	_sdata_dbg(MAC80211_MHWMP_DEBUG,				\
216		   sdata, fmt, ##__VA_ARGS__)
217
218#define msync_dbg(sdata, fmt, ...)					\
219	_sdata_dbg(MAC80211_MESH_SYNC_DEBUG,				\
220		   sdata, fmt, ##__VA_ARGS__)
221
222#define mcsa_dbg(sdata, fmt, ...)					\
223	_sdata_dbg(MAC80211_MESH_CSA_DEBUG,				\
224		   sdata, fmt, ##__VA_ARGS__)
225
226#define mps_dbg(sdata, fmt, ...)					\
227	_sdata_dbg(MAC80211_MESH_PS_DEBUG,				\
228		   sdata, fmt, ##__VA_ARGS__)
229
230#define tdls_dbg(sdata, fmt, ...)					\
231	_sdata_dbg(MAC80211_TDLS_DEBUG,					\
232		   sdata, fmt, ##__VA_ARGS__)
233
234#define sta_dbg(sdata, fmt, ...)					\
235	_sdata_dbg(MAC80211_STA_DEBUG,					\
236		   sdata, fmt, ##__VA_ARGS__)
237
238#define mlme_dbg(sdata, fmt, ...)					\
239	_sdata_dbg(MAC80211_MLME_DEBUG,					\
240		   sdata, fmt, ##__VA_ARGS__)
241#define mlme_link_id_dbg(sdata, link_id, fmt, ...)			\
242	_link_id_dbg(MAC80211_MLME_DEBUG, sdata, link_id,		\
243		     fmt, ##__VA_ARGS__)
244
245#define mlme_dbg_ratelimited(sdata, fmt, ...)				\
246	_sdata_dbg(MAC80211_MLME_DEBUG && net_ratelimit(),		\
247		   sdata, fmt, ##__VA_ARGS__)
248
249#endif /* __MAC80211_DEBUG_H */
~/ Read-only file preview.