Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / net / wireless / ath / ath5k / trace.h
diff --git a/kernel/drivers/net/wireless/ath/ath5k/trace.h b/kernel/drivers/net/wireless/ath/ath5k/trace.h
new file mode 100644 (file)
index 0000000..c6eef51
--- /dev/null
@@ -0,0 +1,106 @@
+#if !defined(__TRACE_ATH5K_H) || defined(TRACE_HEADER_MULTI_READ)
+#define __TRACE_ATH5K_H
+
+#include <linux/tracepoint.h>
+
+
+#if !defined(CONFIG_ATH5K_TRACER) || defined(__CHECKER__)
+#undef TRACE_EVENT
+#define TRACE_EVENT(name, proto, ...) \
+static inline void trace_ ## name(proto) {}
+#endif
+
+struct sk_buff;
+struct ath5k_txq;
+struct ath5k_tx_status;
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM ath5k
+
+TRACE_EVENT(ath5k_rx,
+       TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb),
+       TP_ARGS(priv, skb),
+       TP_STRUCT__entry(
+               __field(struct ath5k_hw *, priv)
+               __field(unsigned long, skbaddr)
+               __dynamic_array(u8, frame, skb->len)
+       ),
+       TP_fast_assign(
+               __entry->priv = priv;
+               __entry->skbaddr = (unsigned long) skb;
+               memcpy(__get_dynamic_array(frame), skb->data, skb->len);
+       ),
+       TP_printk(
+               "[%p] RX skb=%lx", __entry->priv, __entry->skbaddr
+       )
+);
+
+TRACE_EVENT(ath5k_tx,
+       TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,
+                struct ath5k_txq *q),
+
+       TP_ARGS(priv, skb, q),
+
+       TP_STRUCT__entry(
+               __field(struct ath5k_hw *, priv)
+               __field(unsigned long, skbaddr)
+               __field(u8, qnum)
+               __dynamic_array(u8, frame, skb->len)
+       ),
+
+       TP_fast_assign(
+               __entry->priv = priv;
+               __entry->skbaddr = (unsigned long) skb;
+               __entry->qnum = (u8) q->qnum;
+               memcpy(__get_dynamic_array(frame), skb->data, skb->len);
+       ),
+
+       TP_printk(
+               "[%p] TX skb=%lx q=%d", __entry->priv, __entry->skbaddr,
+               __entry->qnum
+       )
+);
+
+TRACE_EVENT(ath5k_tx_complete,
+       TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,
+                struct ath5k_txq *q, struct ath5k_tx_status *ts),
+
+       TP_ARGS(priv, skb, q, ts),
+
+       TP_STRUCT__entry(
+               __field(struct ath5k_hw *, priv)
+               __field(unsigned long, skbaddr)
+               __field(u8, qnum)
+               __field(u8, ts_status)
+               __field(s8, ts_rssi)
+               __field(u8, ts_antenna)
+       ),
+
+       TP_fast_assign(
+               __entry->priv = priv;
+               __entry->skbaddr = (unsigned long) skb;
+               __entry->qnum = (u8) q->qnum;
+               __entry->ts_status = ts->ts_status;
+               __entry->ts_rssi =  ts->ts_rssi;
+               __entry->ts_antenna = ts->ts_antenna;
+       ),
+
+       TP_printk(
+               "[%p] TX end skb=%lx q=%d stat=%x rssi=%d ant=%x",
+               __entry->priv, __entry->skbaddr, __entry->qnum,
+               __entry->ts_status, __entry->ts_rssi, __entry->ts_antenna
+       )
+);
+
+#endif /* __TRACE_ATH5K_H */
+
+#if defined(CONFIG_ATH5K_TRACER) && !defined(__CHECKER__)
+
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH .
+#undef TRACE_INCLUDE_FILE
+#define TRACE_INCLUDE_FILE trace
+
+#include <trace/define_trace.h>
+
+#endif