0001
0002 #if !defined(__TRACE_ATH5K_H) || defined(TRACE_HEADER_MULTI_READ)
0003 #define __TRACE_ATH5K_H
0004
0005 #include <linux/tracepoint.h>
0006
0007
0008 #if !defined(CONFIG_ATH5K_TRACER) || defined(__CHECKER__)
0009 #undef TRACE_EVENT
0010 #define TRACE_EVENT(name, proto, ...) \
0011 static inline void trace_ ## name(proto) {}
0012 #endif
0013
0014 struct sk_buff;
0015 struct ath5k_txq;
0016 struct ath5k_tx_status;
0017
0018 #undef TRACE_SYSTEM
0019 #define TRACE_SYSTEM ath5k
0020
0021 TRACE_EVENT(ath5k_rx,
0022 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb),
0023 TP_ARGS(priv, skb),
0024 TP_STRUCT__entry(
0025 __field(struct ath5k_hw *, priv)
0026 __field(unsigned long, skbaddr)
0027 __dynamic_array(u8, frame, skb->len)
0028 ),
0029 TP_fast_assign(
0030 __entry->priv = priv;
0031 __entry->skbaddr = (unsigned long) skb;
0032 memcpy(__get_dynamic_array(frame), skb->data, skb->len);
0033 ),
0034 TP_printk(
0035 "[%p] RX skb=%lx", __entry->priv, __entry->skbaddr
0036 )
0037 );
0038
0039 TRACE_EVENT(ath5k_tx,
0040 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,
0041 struct ath5k_txq *q),
0042
0043 TP_ARGS(priv, skb, q),
0044
0045 TP_STRUCT__entry(
0046 __field(struct ath5k_hw *, priv)
0047 __field(unsigned long, skbaddr)
0048 __field(u8, qnum)
0049 __dynamic_array(u8, frame, skb->len)
0050 ),
0051
0052 TP_fast_assign(
0053 __entry->priv = priv;
0054 __entry->skbaddr = (unsigned long) skb;
0055 __entry->qnum = (u8) q->qnum;
0056 memcpy(__get_dynamic_array(frame), skb->data, skb->len);
0057 ),
0058
0059 TP_printk(
0060 "[%p] TX skb=%lx q=%d", __entry->priv, __entry->skbaddr,
0061 __entry->qnum
0062 )
0063 );
0064
0065 TRACE_EVENT(ath5k_tx_complete,
0066 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,
0067 struct ath5k_txq *q, struct ath5k_tx_status *ts),
0068
0069 TP_ARGS(priv, skb, q, ts),
0070
0071 TP_STRUCT__entry(
0072 __field(struct ath5k_hw *, priv)
0073 __field(unsigned long, skbaddr)
0074 __field(u8, qnum)
0075 __field(u8, ts_status)
0076 __field(s8, ts_rssi)
0077 __field(u8, ts_antenna)
0078 ),
0079
0080 TP_fast_assign(
0081 __entry->priv = priv;
0082 __entry->skbaddr = (unsigned long) skb;
0083 __entry->qnum = (u8) q->qnum;
0084 __entry->ts_status = ts->ts_status;
0085 __entry->ts_rssi = ts->ts_rssi;
0086 __entry->ts_antenna = ts->ts_antenna;
0087 ),
0088
0089 TP_printk(
0090 "[%p] TX end skb=%lx q=%d stat=%x rssi=%d ant=%x",
0091 __entry->priv, __entry->skbaddr, __entry->qnum,
0092 __entry->ts_status, __entry->ts_rssi, __entry->ts_antenna
0093 )
0094 );
0095
0096 #endif
0097
0098 #if defined(CONFIG_ATH5K_TRACER) && !defined(__CHECKER__)
0099
0100 #undef TRACE_INCLUDE_PATH
0101 #define TRACE_INCLUDE_PATH .
0102 #undef TRACE_INCLUDE_FILE
0103 #define TRACE_INCLUDE_FILE trace
0104
0105 #include <trace/define_trace.h>
0106
0107 #endif