Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* __TRACE_ATH5K_H */
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