1d331a739SSven Eckelmann /* SPDX-License-Identifier: GPL-2.0 */ 2cfa55c6dSSven Eckelmann /* Copyright (C) B.A.T.M.A.N. contributors: 3d331a739SSven Eckelmann * 4d331a739SSven Eckelmann * Sven Eckelmann 5d331a739SSven Eckelmann */ 6d331a739SSven Eckelmann 7d331a739SSven Eckelmann #if !defined(_NET_BATMAN_ADV_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 8d331a739SSven Eckelmann #define _NET_BATMAN_ADV_TRACE_H_ 9d331a739SSven Eckelmann 10d331a739SSven Eckelmann #include "main.h" 11d331a739SSven Eckelmann 1295d8f85cSSven Eckelmann #include <linux/netdevice.h> 1395d8f85cSSven Eckelmann #include <linux/percpu.h> 1495d8f85cSSven Eckelmann #include <linux/printk.h> 15d331a739SSven Eckelmann #include <linux/tracepoint.h> 16d331a739SSven Eckelmann 17d331a739SSven Eckelmann #undef TRACE_SYSTEM 18d331a739SSven Eckelmann #define TRACE_SYSTEM batadv 19d331a739SSven Eckelmann 20d331a739SSven Eckelmann /* provide dummy function when tracing is disabled */ 21d331a739SSven Eckelmann #if !defined(CONFIG_BATMAN_ADV_TRACING) 22d331a739SSven Eckelmann 23d331a739SSven Eckelmann #undef TRACE_EVENT 24d331a739SSven Eckelmann #define TRACE_EVENT(name, proto, ...) \ 25d331a739SSven Eckelmann static inline void trace_ ## name(proto) {} 26d331a739SSven Eckelmann 27d331a739SSven Eckelmann #endif /* CONFIG_BATMAN_ADV_TRACING */ 28d331a739SSven Eckelmann 29d331a739SSven Eckelmann TRACE_EVENT(batadv_dbg, 30d331a739SSven Eckelmann 31d331a739SSven Eckelmann TP_PROTO(struct batadv_priv *bat_priv, 32d331a739SSven Eckelmann struct va_format *vaf), 33d331a739SSven Eckelmann 34d331a739SSven Eckelmann TP_ARGS(bat_priv, vaf), 35d331a739SSven Eckelmann 36d331a739SSven Eckelmann TP_STRUCT__entry( 37d331a739SSven Eckelmann __string(device, bat_priv->soft_iface->name) 38d331a739SSven Eckelmann __string(driver, KBUILD_MODNAME) 39*9abc2918SSteven Rostedt (Google) __vstring(msg, vaf->fmt, vaf->va) 40d331a739SSven Eckelmann ), 41d331a739SSven Eckelmann 42d331a739SSven Eckelmann TP_fast_assign( 43d331a739SSven Eckelmann __assign_str(device, bat_priv->soft_iface->name); 44d331a739SSven Eckelmann __assign_str(driver, KBUILD_MODNAME); 45*9abc2918SSteven Rostedt (Google) __assign_vstr(msg, vaf->fmt, vaf->va); 46d331a739SSven Eckelmann ), 47d331a739SSven Eckelmann 48d331a739SSven Eckelmann TP_printk( 49d331a739SSven Eckelmann "%s %s %s", 50d331a739SSven Eckelmann __get_str(driver), 51d331a739SSven Eckelmann __get_str(device), 52d331a739SSven Eckelmann __get_str(msg) 53d331a739SSven Eckelmann ) 54d331a739SSven Eckelmann ); 55d331a739SSven Eckelmann 56d331a739SSven Eckelmann #endif /* _NET_BATMAN_ADV_TRACE_H_ || TRACE_HEADER_MULTI_READ */ 57d331a739SSven Eckelmann 58d331a739SSven Eckelmann #undef TRACE_INCLUDE_PATH 59d331a739SSven Eckelmann #define TRACE_INCLUDE_PATH . 60d331a739SSven Eckelmann #undef TRACE_INCLUDE_FILE 61d331a739SSven Eckelmann #define TRACE_INCLUDE_FILE trace 62d331a739SSven Eckelmann 63d331a739SSven Eckelmann /* This part must be outside protection */ 64d331a739SSven Eckelmann #include <trace/define_trace.h> 65