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