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