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