Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/net/mac80211/debug.h
26285 views
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
90
void __sdata_info(const char *fmt, ...) __printf(1, 2);
91
void __sdata_dbg(bool print, const char *fmt, ...) __printf(2, 3);
92
void __sdata_err(const char *fmt, ...) __printf(1, 2);
93
void __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, ...) \
106
do { \
107
pr_info("%s: " fmt, \
108
(sdata)->name, ##__VA_ARGS__); \
109
} while (0)
110
111
#define _sdata_dbg(print, sdata, fmt, ...) \
112
do { \
113
if (print) \
114
pr_debug("%s: " fmt, \
115
(sdata)->name, ##__VA_ARGS__); \
116
} while (0)
117
118
#define _sdata_err(sdata, fmt, ...) \
119
do { \
120
pr_err("%s: " fmt, \
121
(sdata)->name, ##__VA_ARGS__); \
122
} while (0)
123
124
#define _wiphy_dbg(print, wiphy, fmt, ...) \
125
do { \
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 */
250
251