aboutsummaryrefslogtreecommitdiffstats
path: root/package/madwifi/extra/wprobe.spatch
diff options
context:
space:
mode:
Diffstat (limited to 'package/madwifi/extra/wprobe.spatch')
-rw-r--r--package/madwifi/extra/wprobe.spatch84
1 files changed, 84 insertions, 0 deletions
diff --git a/package/madwifi/extra/wprobe.spatch b/package/madwifi/extra/wprobe.spatch
new file mode 100644
index 0000000000..78718aa54c
--- /dev/null
+++ b/package/madwifi/extra/wprobe.spatch
@@ -0,0 +1,84 @@
+@@
+@@
+ #include "if_athioctl.h"
++#include "wprobe.h"
+
+@@
+@@
+ struct ath_vap {
+ ...
++ struct wprobe_iface av_wpif;
+ };
+
+@@
+@@
+ struct ath_node {
+ ...
++ struct wprobe_link an_wplink;
++ uint8_t an_wplink_active;
++ struct work_struct an_destroy;
+ u_int16_t an_decomp_index;
+ ...
+ };
+
+@@
+@@
+ ath_vap_create(...) {
+ <...
++ ath_init_wprobe_dev(avp);
+ return vap;
+ ...>
+ }
+
+@ rule5 @
+expression vap;
+@@
+ ath_vap_delete(...) {
+ <...
+ ieee80211_vap_detach(vap);
++ ath_remove_wprobe_dev(ATH_VAP(vap));
+ ...>
+ }
+
+@ rule6 @
+@@
+ static int xchanmode = -1;
++
++#include "ath_wprobe.c"
+
+
+@ rule7 @
+expression sc, ni;
+@@
+ <...
+ sc->sc_rc->ops->newassoc(sc, ATH_NODE(ni), isnew);
++ ath_wprobe_node_join(ni->ni_vap, ni);
+ ...>
+
+@ rule8 @
+expression ni;
+expression sc;
+@@
+ <...
+ sc->sc_rc->ops->node_cleanup(sc, ATH_NODE(ni));
++ ath_wprobe_node_leave(ni->ni_vap, ni);
+ ...>
+
+@ rule9 @
+expression ni;
+expression rs;
+@@
+ <...
+ ATH_RSSI_LPF(ATH_NODE(ni)->an_avgrssi, rs->rs_rssi);
++ ath_node_sample_rx(ni, rs);
+ ...>
+
+@ rule10 @
+expression an;
+expression ts;
+@@
+ <...
+ ATH_RSSI_LPF(an->an_halstats.ns_avgtxrssi, ts->ts_rssi);
++ ath_node_sample_tx(&an->an_node, ts, bf->bf_skb->len);
+ ...>
+