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