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