1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 20e472252SBob Copeland #if !defined(__TRACE_ATH5K_H) || defined(TRACE_HEADER_MULTI_READ) 30e472252SBob Copeland #define __TRACE_ATH5K_H 40e472252SBob Copeland 50e472252SBob Copeland #include <linux/tracepoint.h> 60e472252SBob Copeland 776ff9a61SLuis R. Rodriguez 876ff9a61SLuis R. Rodriguez #if !defined(CONFIG_ATH5K_TRACER) || defined(__CHECKER__) 90e472252SBob Copeland #undef TRACE_EVENT 100e472252SBob Copeland #define TRACE_EVENT(name, proto, ...) \ 110e472252SBob Copeland static inline void trace_ ## name(proto) {} 120e472252SBob Copeland #endif 130e472252SBob Copeland 140e472252SBob Copeland struct sk_buff; 15931be260SPavel Roskin struct ath5k_txq; 16931be260SPavel Roskin struct ath5k_tx_status; 170e472252SBob Copeland 180e472252SBob Copeland #undef TRACE_SYSTEM 190e472252SBob Copeland #define TRACE_SYSTEM ath5k 200e472252SBob Copeland 210e472252SBob Copeland TRACE_EVENT(ath5k_rx, 22e0d687bdSPavel Roskin TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb), 230e472252SBob Copeland TP_ARGS(priv, skb), 240e472252SBob Copeland TP_STRUCT__entry( 25e0d687bdSPavel Roskin __field(struct ath5k_hw *, priv) 260e472252SBob Copeland __field(unsigned long, skbaddr) 270e472252SBob Copeland __dynamic_array(u8, frame, skb->len) 280e472252SBob Copeland ), 290e472252SBob Copeland TP_fast_assign( 30b988a887SPavel Roskin __entry->priv = priv; 310e472252SBob Copeland __entry->skbaddr = (unsigned long) skb; 320e472252SBob Copeland memcpy(__get_dynamic_array(frame), skb->data, skb->len); 330e472252SBob Copeland ), 340e472252SBob Copeland TP_printk( 350e472252SBob Copeland "[%p] RX skb=%lx", __entry->priv, __entry->skbaddr 360e472252SBob Copeland ) 370e472252SBob Copeland ); 380e472252SBob Copeland 390e472252SBob Copeland TRACE_EVENT(ath5k_tx, 40e0d687bdSPavel Roskin TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb, 410e472252SBob Copeland struct ath5k_txq *q), 420e472252SBob Copeland 430e472252SBob Copeland TP_ARGS(priv, skb, q), 440e472252SBob Copeland 450e472252SBob Copeland TP_STRUCT__entry( 46e0d687bdSPavel Roskin __field(struct ath5k_hw *, priv) 470e472252SBob Copeland __field(unsigned long, skbaddr) 480e472252SBob Copeland __field(u8, qnum) 490e472252SBob Copeland __dynamic_array(u8, frame, skb->len) 500e472252SBob Copeland ), 510e472252SBob Copeland 520e472252SBob Copeland TP_fast_assign( 53b988a887SPavel Roskin __entry->priv = priv; 540e472252SBob Copeland __entry->skbaddr = (unsigned long) skb; 550e472252SBob Copeland __entry->qnum = (u8) q->qnum; 560e472252SBob Copeland memcpy(__get_dynamic_array(frame), skb->data, skb->len); 570e472252SBob Copeland ), 580e472252SBob Copeland 590e472252SBob Copeland TP_printk( 600e472252SBob Copeland "[%p] TX skb=%lx q=%d", __entry->priv, __entry->skbaddr, 610e472252SBob Copeland __entry->qnum 620e472252SBob Copeland ) 630e472252SBob Copeland ); 640e472252SBob Copeland 650e472252SBob Copeland TRACE_EVENT(ath5k_tx_complete, 66e0d687bdSPavel Roskin TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb, 670e472252SBob Copeland struct ath5k_txq *q, struct ath5k_tx_status *ts), 680e472252SBob Copeland 690e472252SBob Copeland TP_ARGS(priv, skb, q, ts), 700e472252SBob Copeland 710e472252SBob Copeland TP_STRUCT__entry( 72e0d687bdSPavel Roskin __field(struct ath5k_hw *, priv) 730e472252SBob Copeland __field(unsigned long, skbaddr) 740e472252SBob Copeland __field(u8, qnum) 750e472252SBob Copeland __field(u8, ts_status) 760e472252SBob Copeland __field(s8, ts_rssi) 770e472252SBob Copeland __field(u8, ts_antenna) 780e472252SBob Copeland ), 790e472252SBob Copeland 800e472252SBob Copeland TP_fast_assign( 81b988a887SPavel Roskin __entry->priv = priv; 820e472252SBob Copeland __entry->skbaddr = (unsigned long) skb; 830e472252SBob Copeland __entry->qnum = (u8) q->qnum; 840e472252SBob Copeland __entry->ts_status = ts->ts_status; 850e472252SBob Copeland __entry->ts_rssi = ts->ts_rssi; 860e472252SBob Copeland __entry->ts_antenna = ts->ts_antenna; 870e472252SBob Copeland ), 880e472252SBob Copeland 890e472252SBob Copeland TP_printk( 900e472252SBob Copeland "[%p] TX end skb=%lx q=%d stat=%x rssi=%d ant=%x", 910e472252SBob Copeland __entry->priv, __entry->skbaddr, __entry->qnum, 920e472252SBob Copeland __entry->ts_status, __entry->ts_rssi, __entry->ts_antenna 930e472252SBob Copeland ) 940e472252SBob Copeland ); 950e472252SBob Copeland 960e472252SBob Copeland #endif /* __TRACE_ATH5K_H */ 970e472252SBob Copeland 9876ff9a61SLuis R. Rodriguez #if defined(CONFIG_ATH5K_TRACER) && !defined(__CHECKER__) 990e472252SBob Copeland 1000e472252SBob Copeland #undef TRACE_INCLUDE_PATH 101cc5569f6SJohannes Berg #define TRACE_INCLUDE_PATH . 1020e472252SBob Copeland #undef TRACE_INCLUDE_FILE 1030e472252SBob Copeland #define TRACE_INCLUDE_FILE trace 1040e472252SBob Copeland 1050e472252SBob Copeland #include <trace/define_trace.h> 1060e472252SBob Copeland 1070e472252SBob Copeland #endif 108