]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blob - net/ieee802154/trace.h
KVM: arm64: Enable GICv3 Group-0 sysreg trapping via command-line
[mirror_ubuntu-zesty-kernel.git] / net / ieee802154 / trace.h
1 /* Based on net/wireless/trace.h */
2
3 #undef TRACE_SYSTEM
4 #define TRACE_SYSTEM cfg802154
5
6 #if !defined(__RDEV_CFG802154_OPS_TRACE) || defined(TRACE_HEADER_MULTI_READ)
7 #define __RDEV_CFG802154_OPS_TRACE
8
9 #include <linux/tracepoint.h>
10
11 #include <net/cfg802154.h>
12
13 #define MAXNAME 32
14 #define WPAN_PHY_ENTRY __array(char, wpan_phy_name, MAXNAME)
15 #define WPAN_PHY_ASSIGN strlcpy(__entry->wpan_phy_name, \
16 wpan_phy_name(wpan_phy), \
17 MAXNAME)
18 #define WPAN_PHY_PR_FMT "%s"
19 #define WPAN_PHY_PR_ARG __entry->wpan_phy_name
20
21 #define WPAN_DEV_ENTRY __field(u32, identifier)
22 #define WPAN_DEV_ASSIGN (__entry->identifier) = (!IS_ERR_OR_NULL(wpan_dev) \
23 ? wpan_dev->identifier : 0)
24 #define WPAN_DEV_PR_FMT "wpan_dev(%u)"
25 #define WPAN_DEV_PR_ARG (__entry->identifier)
26
27 #define WPAN_CCA_ENTRY __field(enum nl802154_cca_modes, cca_mode) \
28 __field(enum nl802154_cca_opts, cca_opt)
29 #define WPAN_CCA_ASSIGN \
30 do { \
31 (__entry->cca_mode) = cca->mode; \
32 (__entry->cca_opt) = cca->opt; \
33 } while (0)
34 #define WPAN_CCA_PR_FMT "cca_mode: %d, cca_opt: %d"
35 #define WPAN_CCA_PR_ARG __entry->cca_mode, __entry->cca_opt
36
37 #define BOOL_TO_STR(bo) (bo) ? "true" : "false"
38
39 /*************************************************************
40 * rdev->ops traces *
41 *************************************************************/
42
43 DECLARE_EVENT_CLASS(wpan_phy_only_evt,
44 TP_PROTO(struct wpan_phy *wpan_phy),
45 TP_ARGS(wpan_phy),
46 TP_STRUCT__entry(
47 WPAN_PHY_ENTRY
48 ),
49 TP_fast_assign(
50 WPAN_PHY_ASSIGN;
51 ),
52 TP_printk(WPAN_PHY_PR_FMT, WPAN_PHY_PR_ARG)
53 );
54
55 DEFINE_EVENT(wpan_phy_only_evt, 802154_rdev_suspend,
56 TP_PROTO(struct wpan_phy *wpan_phy),
57 TP_ARGS(wpan_phy)
58 );
59
60 DEFINE_EVENT(wpan_phy_only_evt, 802154_rdev_resume,
61 TP_PROTO(struct wpan_phy *wpan_phy),
62 TP_ARGS(wpan_phy)
63 );
64
65 TRACE_EVENT(802154_rdev_add_virtual_intf,
66 TP_PROTO(struct wpan_phy *wpan_phy, char *name,
67 enum nl802154_iftype type, __le64 extended_addr),
68 TP_ARGS(wpan_phy, name, type, extended_addr),
69 TP_STRUCT__entry(
70 WPAN_PHY_ENTRY
71 __string(vir_intf_name, name ? name : "<noname>")
72 __field(enum nl802154_iftype, type)
73 __field(__le64, extended_addr)
74 ),
75 TP_fast_assign(
76 WPAN_PHY_ASSIGN;
77 __assign_str(vir_intf_name, name ? name : "<noname>");
78 __entry->type = type;
79 __entry->extended_addr = extended_addr;
80 ),
81 TP_printk(WPAN_PHY_PR_FMT ", virtual intf name: %s, type: %d, extended addr: 0x%llx",
82 WPAN_PHY_PR_ARG, __get_str(vir_intf_name), __entry->type,
83 __le64_to_cpu(__entry->extended_addr))
84 );
85
86 TRACE_EVENT(802154_rdev_del_virtual_intf,
87 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev),
88 TP_ARGS(wpan_phy, wpan_dev),
89 TP_STRUCT__entry(
90 WPAN_PHY_ENTRY
91 WPAN_DEV_ENTRY
92 ),
93 TP_fast_assign(
94 WPAN_PHY_ASSIGN;
95 WPAN_DEV_ASSIGN;
96 ),
97 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT, WPAN_PHY_PR_ARG,
98 WPAN_DEV_PR_ARG)
99 );
100
101 TRACE_EVENT(802154_rdev_set_channel,
102 TP_PROTO(struct wpan_phy *wpan_phy, u8 page, u8 channel),
103 TP_ARGS(wpan_phy, page, channel),
104 TP_STRUCT__entry(
105 WPAN_PHY_ENTRY
106 __field(u8, page)
107 __field(u8, channel)
108 ),
109 TP_fast_assign(
110 WPAN_PHY_ASSIGN;
111 __entry->page = page;
112 __entry->channel = channel;
113 ),
114 TP_printk(WPAN_PHY_PR_FMT ", page: %d, channel: %d", WPAN_PHY_PR_ARG,
115 __entry->page, __entry->channel)
116 );
117
118 TRACE_EVENT(802154_rdev_set_tx_power,
119 TP_PROTO(struct wpan_phy *wpan_phy, s32 power),
120 TP_ARGS(wpan_phy, power),
121 TP_STRUCT__entry(
122 WPAN_PHY_ENTRY
123 __field(s32, power)
124 ),
125 TP_fast_assign(
126 WPAN_PHY_ASSIGN;
127 __entry->power = power;
128 ),
129 TP_printk(WPAN_PHY_PR_FMT ", mbm: %d", WPAN_PHY_PR_ARG,
130 __entry->power)
131 );
132
133 TRACE_EVENT(802154_rdev_set_cca_mode,
134 TP_PROTO(struct wpan_phy *wpan_phy, const struct wpan_phy_cca *cca),
135 TP_ARGS(wpan_phy, cca),
136 TP_STRUCT__entry(
137 WPAN_PHY_ENTRY
138 WPAN_CCA_ENTRY
139 ),
140 TP_fast_assign(
141 WPAN_PHY_ASSIGN;
142 WPAN_CCA_ASSIGN;
143 ),
144 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_CCA_PR_FMT, WPAN_PHY_PR_ARG,
145 WPAN_CCA_PR_ARG)
146 );
147
148 TRACE_EVENT(802154_rdev_set_cca_ed_level,
149 TP_PROTO(struct wpan_phy *wpan_phy, s32 ed_level),
150 TP_ARGS(wpan_phy, ed_level),
151 TP_STRUCT__entry(
152 WPAN_PHY_ENTRY
153 __field(s32, ed_level)
154 ),
155 TP_fast_assign(
156 WPAN_PHY_ASSIGN;
157 __entry->ed_level = ed_level;
158 ),
159 TP_printk(WPAN_PHY_PR_FMT ", ed level: %d", WPAN_PHY_PR_ARG,
160 __entry->ed_level)
161 );
162
163 DECLARE_EVENT_CLASS(802154_le16_template,
164 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
165 __le16 le16arg),
166 TP_ARGS(wpan_phy, wpan_dev, le16arg),
167 TP_STRUCT__entry(
168 WPAN_PHY_ENTRY
169 WPAN_DEV_ENTRY
170 __field(__le16, le16arg)
171 ),
172 TP_fast_assign(
173 WPAN_PHY_ASSIGN;
174 WPAN_DEV_ASSIGN;
175 __entry->le16arg = le16arg;
176 ),
177 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT ", pan id: 0x%04x",
178 WPAN_PHY_PR_ARG, WPAN_DEV_PR_ARG,
179 __le16_to_cpu(__entry->le16arg))
180 );
181
182 DEFINE_EVENT(802154_le16_template, 802154_rdev_set_pan_id,
183 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
184 __le16 le16arg),
185 TP_ARGS(wpan_phy, wpan_dev, le16arg)
186 );
187
188 DEFINE_EVENT_PRINT(802154_le16_template, 802154_rdev_set_short_addr,
189 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
190 __le16 le16arg),
191 TP_ARGS(wpan_phy, wpan_dev, le16arg),
192 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT ", short addr: 0x%04x",
193 WPAN_PHY_PR_ARG, WPAN_DEV_PR_ARG,
194 __le16_to_cpu(__entry->le16arg))
195 );
196
197 TRACE_EVENT(802154_rdev_set_backoff_exponent,
198 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
199 u8 min_be, u8 max_be),
200 TP_ARGS(wpan_phy, wpan_dev, min_be, max_be),
201 TP_STRUCT__entry(
202 WPAN_PHY_ENTRY
203 WPAN_DEV_ENTRY
204 __field(u8, min_be)
205 __field(u8, max_be)
206 ),
207 TP_fast_assign(
208 WPAN_PHY_ASSIGN;
209 WPAN_DEV_ASSIGN;
210 __entry->min_be = min_be;
211 __entry->max_be = max_be;
212 ),
213
214 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
215 ", min be: %d, max be: %d", WPAN_PHY_PR_ARG,
216 WPAN_DEV_PR_ARG, __entry->min_be, __entry->max_be)
217 );
218
219 TRACE_EVENT(802154_rdev_set_csma_backoffs,
220 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
221 u8 max_csma_backoffs),
222 TP_ARGS(wpan_phy, wpan_dev, max_csma_backoffs),
223 TP_STRUCT__entry(
224 WPAN_PHY_ENTRY
225 WPAN_DEV_ENTRY
226 __field(u8, max_csma_backoffs)
227 ),
228 TP_fast_assign(
229 WPAN_PHY_ASSIGN;
230 WPAN_DEV_ASSIGN;
231 __entry->max_csma_backoffs = max_csma_backoffs;
232 ),
233
234 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
235 ", max csma backoffs: %d", WPAN_PHY_PR_ARG,
236 WPAN_DEV_PR_ARG, __entry->max_csma_backoffs)
237 );
238
239 TRACE_EVENT(802154_rdev_set_max_frame_retries,
240 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
241 s8 max_frame_retries),
242 TP_ARGS(wpan_phy, wpan_dev, max_frame_retries),
243 TP_STRUCT__entry(
244 WPAN_PHY_ENTRY
245 WPAN_DEV_ENTRY
246 __field(s8, max_frame_retries)
247 ),
248 TP_fast_assign(
249 WPAN_PHY_ASSIGN;
250 WPAN_DEV_ASSIGN;
251 __entry->max_frame_retries = max_frame_retries;
252 ),
253
254 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
255 ", max frame retries: %d", WPAN_PHY_PR_ARG,
256 WPAN_DEV_PR_ARG, __entry->max_frame_retries)
257 );
258
259 TRACE_EVENT(802154_rdev_set_lbt_mode,
260 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
261 bool mode),
262 TP_ARGS(wpan_phy, wpan_dev, mode),
263 TP_STRUCT__entry(
264 WPAN_PHY_ENTRY
265 WPAN_DEV_ENTRY
266 __field(bool, mode)
267 ),
268 TP_fast_assign(
269 WPAN_PHY_ASSIGN;
270 WPAN_DEV_ASSIGN;
271 __entry->mode = mode;
272 ),
273 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
274 ", lbt mode: %s", WPAN_PHY_PR_ARG,
275 WPAN_DEV_PR_ARG, BOOL_TO_STR(__entry->mode))
276 );
277
278 TRACE_EVENT(802154_rdev_set_ackreq_default,
279 TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
280 bool ackreq),
281 TP_ARGS(wpan_phy, wpan_dev, ackreq),
282 TP_STRUCT__entry(
283 WPAN_PHY_ENTRY
284 WPAN_DEV_ENTRY
285 __field(bool, ackreq)
286 ),
287 TP_fast_assign(
288 WPAN_PHY_ASSIGN;
289 WPAN_DEV_ASSIGN;
290 __entry->ackreq = ackreq;
291 ),
292 TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
293 ", ackreq default: %s", WPAN_PHY_PR_ARG,
294 WPAN_DEV_PR_ARG, BOOL_TO_STR(__entry->ackreq))
295 );
296
297 TRACE_EVENT(802154_rdev_return_int,
298 TP_PROTO(struct wpan_phy *wpan_phy, int ret),
299 TP_ARGS(wpan_phy, ret),
300 TP_STRUCT__entry(
301 WPAN_PHY_ENTRY
302 __field(int, ret)
303 ),
304 TP_fast_assign(
305 WPAN_PHY_ASSIGN;
306 __entry->ret = ret;
307 ),
308 TP_printk(WPAN_PHY_PR_FMT ", returned: %d", WPAN_PHY_PR_ARG,
309 __entry->ret)
310 );
311
312 #endif /* !__RDEV_CFG802154_OPS_TRACE || TRACE_HEADER_MULTI_READ */
313
314 #undef TRACE_INCLUDE_PATH
315 #define TRACE_INCLUDE_PATH .
316 #undef TRACE_INCLUDE_FILE
317 #define TRACE_INCLUDE_FILE trace
318 #include <trace/define_trace.h>