blob: c741c871f4e9a3cc18786585c5fb1001529a8924 [file] [log] [blame]
Bob Copeland0e472252011-01-24 23:32:55 -05001#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, ...) \
10static inline void trace_ ## name(proto) {}
11#endif
12
13struct sk_buff;
14
Bob Copeland0e472252011-01-24 23:32:55 -050015#undef TRACE_SYSTEM
16#define TRACE_SYSTEM ath5k
17
18TRACE_EVENT(ath5k_rx,
Pavel Roskine0d687b2011-07-14 20:21:55 -040019 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb),
Bob Copeland0e472252011-01-24 23:32:55 -050020 TP_ARGS(priv, skb),
21 TP_STRUCT__entry(
Pavel Roskine0d687b2011-07-14 20:21:55 -040022 __field(struct ath5k_hw *, priv)
Bob Copeland0e472252011-01-24 23:32:55 -050023 __field(unsigned long, skbaddr)
24 __dynamic_array(u8, frame, skb->len)
25 ),
26 TP_fast_assign(
Pavel Roskinb988a882011-07-07 18:13:17 -040027 __entry->priv = priv;
Bob Copeland0e472252011-01-24 23:32:55 -050028 __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
36TRACE_EVENT(ath5k_tx,
Pavel Roskine0d687b2011-07-14 20:21:55 -040037 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,
Bob Copeland0e472252011-01-24 23:32:55 -050038 struct ath5k_txq *q),
39
40 TP_ARGS(priv, skb, q),
41
42 TP_STRUCT__entry(
Pavel Roskine0d687b2011-07-14 20:21:55 -040043 __field(struct ath5k_hw *, priv)
Bob Copeland0e472252011-01-24 23:32:55 -050044 __field(unsigned long, skbaddr)
45 __field(u8, qnum)
46 __dynamic_array(u8, frame, skb->len)
47 ),
48
49 TP_fast_assign(
Pavel Roskinb988a882011-07-07 18:13:17 -040050 __entry->priv = priv;
Bob Copeland0e472252011-01-24 23:32:55 -050051 __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
62TRACE_EVENT(ath5k_tx_complete,
Pavel Roskine0d687b2011-07-14 20:21:55 -040063 TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,
Bob Copeland0e472252011-01-24 23:32:55 -050064 struct ath5k_txq *q, struct ath5k_tx_status *ts),
65
66 TP_ARGS(priv, skb, q, ts),
67
68 TP_STRUCT__entry(
Pavel Roskine0d687b2011-07-14 20:21:55 -040069 __field(struct ath5k_hw *, priv)
Bob Copeland0e472252011-01-24 23:32:55 -050070 __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(
Pavel Roskinb988a882011-07-07 18:13:17 -040078 __entry->priv = priv;
Bob Copeland0e472252011-01-24 23:32:55 -050079 __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