aboutsummaryrefslogtreecommitdiffstats
path: root/package/madwifi/extra/wprobe.spatch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-03-26 20:56:58 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-03-26 20:56:58 +0000
commitc6ba35a9442047f7b54b42455a84c87bb1b4261f (patch)
treeb442deaf73e56fac72335e42933112c6923fc37e /package/madwifi/extra/wprobe.spatch
parent548478cdb24d4f588659b4e64b062aabccd76047 (diff)
downloadupstream-c6ba35a9442047f7b54b42455a84c87bb1b4261f.tar.gz
upstream-c6ba35a9442047f7b54b42455a84c87bb1b4261f.tar.bz2
upstream-c6ba35a9442047f7b54b42455a84c87bb1b4261f.zip
implement support for wprobe in madwifi
SVN-Revision: 15051
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);
+ ...>
+