#if !defined(__TRACE_ATH5K_H) || defined(TRACE_HEADER_MULTI_READ) #define __TRACE_ATH5K_H #include <linux/tracepoint.h> #if !defined(CONFIG_ATH5K_TRACER) || defined(__CHECKER__) #undef TRACE_EVENT #define TRACE_EVENT(name, proto, ...) \ static inline void trace_ ## name(proto) {} #endif struct sk_buff; struct ath5k_txq; struct ath5k_tx_status; #undef TRACE_SYSTEM #define TRACE_SYSTEM ath5k TRACE_EVENT(ath5k_rx, TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb), TP_ARGS(priv, skb), TP_STRUCT__entry( __field(struct ath5k_hw *, priv) __field(unsigned long, skbaddr) __dynamic_array(u8, frame, skb->len) ), TP_fast_assign( __entry->priv = priv; __entry->skbaddr = (unsigned long) skb; memcpy(__get_dynamic_array(frame), skb->data, skb->len); ), TP_printk( "[%p] RX skb=%lx", __entry->priv, __entry->skbaddr ) ); TRACE_EVENT(ath5k_tx, TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb, struct ath5k_txq *q), TP_ARGS(priv, skb, q), TP_STRUCT__entry( __field(struct ath5k_hw *, priv) __field(unsigned long, skbaddr) __field(u8, qnum) __dynamic_array(u8, frame, skb->len) ), TP_fast_assign( __entry->priv = priv; __entry->skbaddr = (unsigned long) skb; __entry->qnum = (u8) q->qnum; memcpy(__get_dynamic_array(frame), skb->data, skb->len); ), TP_printk( "[%p] TX skb=%lx q=%d", __entry->priv, __entry->skbaddr, __entry->qnum ) ); TRACE_EVENT(ath5k_tx_complete, TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb, struct ath5k_txq *q, struct ath5k_tx_status *ts), TP_ARGS(priv, skb, q, ts), TP_STRUCT__entry( __field(struct ath5k_hw *, priv) __field(unsigned long, skbaddr) __field(u8, qnum) __field(u8, ts_status) __field(s8, ts_rssi) __field(u8, ts_antenna) ), TP_fast_assign( __entry->priv = priv; __entry->skbaddr = (unsigned long) skb; __entry->qnum = (u8) q->qnum; __entry->ts_status = ts->ts_status; __entry->ts_rssi = ts->ts_rssi; __entry->ts_antenna = ts->ts_antenna; ), TP_printk( "[%p] TX end skb=%lx q=%d stat=%x rssi=%d ant=%x", __entry->priv, __entry->skbaddr, __entry->qnum, __entry->ts_status, __entry->ts_rssi, __entry->ts_antenna ) ); #endif /* __TRACE_ATH5K_H */ #if defined(CONFIG_ATH5K_TRACER) && !defined(__CHECKER__) #undef TRACE_INCLUDE_PATH #define TRACE_INCLUDE_PATH . #undef TRACE_INCLUDE_FILE #define TRACE_INCLUDE_FILE trace #include <trace/define_trace.h> #endif