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