1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifdef CONFIG_MAC80211_MESSAGE_TRACING
3 
4 #if !defined(__MAC80211_MSG_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ)
5 #define __MAC80211_MSG_DRIVER_TRACE
6 
7 #include <linux/tracepoint.h>
8 #include <net/mac80211.h>
9 #include "ieee80211_i.h"
10 
11 #undef TRACE_SYSTEM
12 #define TRACE_SYSTEM mac80211_msg
13 
14 #define MAX_MSG_LEN	100
15 
16 DECLARE_EVENT_CLASS(mac80211_msg_event,
17 	TP_PROTO(struct va_format *vaf),
18 
19 	TP_ARGS(vaf),
20 
21 	TP_STRUCT__entry(
22 		__dynamic_array(char, msg, MAX_MSG_LEN)
23 	),
24 
25 	TP_fast_assign(
26 		WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg),
27 				       MAX_MSG_LEN, vaf->fmt,
28 				       *vaf->va) >= MAX_MSG_LEN);
29 	),
30 
31 	TP_printk("%s", __get_str(msg))
32 );
33 
34 DEFINE_EVENT(mac80211_msg_event, mac80211_info,
35 	TP_PROTO(struct va_format *vaf),
36 	TP_ARGS(vaf)
37 );
38 DEFINE_EVENT(mac80211_msg_event, mac80211_dbg,
39 	TP_PROTO(struct va_format *vaf),
40 	TP_ARGS(vaf)
41 );
42 DEFINE_EVENT(mac80211_msg_event, mac80211_err,
43 	TP_PROTO(struct va_format *vaf),
44 	TP_ARGS(vaf)
45 );
46 #endif /* !__MAC80211_MSG_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */
47 
48 #undef TRACE_INCLUDE_PATH
49 #define TRACE_INCLUDE_PATH .
50 #undef TRACE_INCLUDE_FILE
51 #define TRACE_INCLUDE_FILE trace_msg
52 #include <trace/define_trace.h>
53 
54 #endif
55