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