108 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#if !defined(__TRACE_ATH5K_H) || defined(TRACE_HEADER_MULTI_READ)3#define __TRACE_ATH5K_H4 5#include <linux/tracepoint.h>6 7 8#if !defined(CONFIG_ATH5K_TRACER) || defined(__CHECKER__)9#undef TRACE_EVENT10#define TRACE_EVENT(name, proto, ...) \11static inline void trace_ ## name(proto) {}12#endif13 14struct sk_buff;15struct ath5k_txq;16struct ath5k_tx_status;17 18#undef TRACE_SYSTEM19#define TRACE_SYSTEM ath5k20 21TRACE_EVENT(ath5k_rx,22 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb),23 TP_ARGS(priv, skb),24 TP_STRUCT__entry(25 __field(struct ath5k_hw *, priv)26 __field(unsigned long, skbaddr)27 __dynamic_array(u8, frame, skb->len)28 ),29 TP_fast_assign(30 __entry->priv = priv;31 __entry->skbaddr = (unsigned long) skb;32 memcpy(__get_dynamic_array(frame), skb->data, skb->len);33 ),34 TP_printk(35 "[%p] RX skb=%lx", __entry->priv, __entry->skbaddr36 )37);38 39TRACE_EVENT(ath5k_tx,40 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,41 struct ath5k_txq *q),42 43 TP_ARGS(priv, skb, q),44 45 TP_STRUCT__entry(46 __field(struct ath5k_hw *, priv)47 __field(unsigned long, skbaddr)48 __field(u8, qnum)49 __dynamic_array(u8, frame, skb->len)50 ),51 52 TP_fast_assign(53 __entry->priv = priv;54 __entry->skbaddr = (unsigned long) skb;55 __entry->qnum = (u8) q->qnum;56 memcpy(__get_dynamic_array(frame), skb->data, skb->len);57 ),58 59 TP_printk(60 "[%p] TX skb=%lx q=%d", __entry->priv, __entry->skbaddr,61 __entry->qnum62 )63);64 65TRACE_EVENT(ath5k_tx_complete,66 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,67 struct ath5k_txq *q, struct ath5k_tx_status *ts),68 69 TP_ARGS(priv, skb, q, ts),70 71 TP_STRUCT__entry(72 __field(struct ath5k_hw *, priv)73 __field(unsigned long, skbaddr)74 __field(u8, qnum)75 __field(u8, ts_status)76 __field(s8, ts_rssi)77 __field(u8, ts_antenna)78 ),79 80 TP_fast_assign(81 __entry->priv = priv;82 __entry->skbaddr = (unsigned long) skb;83 __entry->qnum = (u8) q->qnum;84 __entry->ts_status = ts->ts_status;85 __entry->ts_rssi = ts->ts_rssi;86 __entry->ts_antenna = ts->ts_antenna;87 ),88 89 TP_printk(90 "[%p] TX end skb=%lx q=%d stat=%x rssi=%d ant=%x",91 __entry->priv, __entry->skbaddr, __entry->qnum,92 __entry->ts_status, __entry->ts_rssi, __entry->ts_antenna93 )94);95 96#endif /* __TRACE_ATH5K_H */97 98#if defined(CONFIG_ATH5K_TRACER) && !defined(__CHECKER__)99 100#undef TRACE_INCLUDE_PATH101#define TRACE_INCLUDE_PATH .102#undef TRACE_INCLUDE_FILE103#define TRACE_INCLUDE_FILE trace104 105#include <trace/define_trace.h>106 107#endif108