mac80211: Add ieee80211_hw pointer to get_expected_throughput
[cascardo/linux.git] / include / net / mac80211.h
index a8683ae..cca510a 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/skbuff.h>
 #include <linux/ieee80211.h>
 #include <net/cfg80211.h>
+#include <net/codel.h>
 #include <asm/unaligned.h>
 
 /**
@@ -895,7 +896,18 @@ struct ieee80211_tx_info {
                                unsigned long jiffies;
                        };
                        /* NB: vif can be NULL for injected frames */
-                       struct ieee80211_vif *vif;
+                       union {
+                               /* NB: vif can be NULL for injected frames */
+                               struct ieee80211_vif *vif;
+
+                               /* When packets are enqueued on txq it's easy
+                                * to re-construct the vif pointer. There's no
+                                * more space in tx_info so it can be used to
+                                * store the necessary enqueue time for packet
+                                * sojourn time computation.
+                                */
+                               codel_time_t enqueue_time;
+                       };
                        struct ieee80211_key_conf *hw_key;
                        u32 flags;
                        /* 4 bytes free */
@@ -3608,7 +3620,8 @@ struct ieee80211_ops {
 
        int (*join_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
        void (*leave_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
-       u32 (*get_expected_throughput)(struct ieee80211_sta *sta);
+       u32 (*get_expected_throughput)(struct ieee80211_hw *hw,
+                                      struct ieee80211_sta *sta);
        int (*get_txpower)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                           int *dbm);
 
@@ -4685,9 +4698,10 @@ void ieee80211_wake_queues(struct ieee80211_hw *hw);
  * any context, including hardirq context.
  *
  * @hw: the hardware that finished the scan
- * @aborted: set to true if scan was aborted
+ * @info: information about the completed scan
  */
-void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted);
+void ieee80211_scan_completed(struct ieee80211_hw *hw,
+                             struct cfg80211_scan_info *info);
 
 /**
  * ieee80211_sched_scan_results - got results from scheduled scan