summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJohannes Berg2007-11-09 01:57:29 +0100
committerDavid S. Miller2008-01-28 23:54:37 +0100
commitdabeb344f54ab780d152714c18f1cb6b21c471a1 (patch)
treeb93be2a461b00882491bc8b7d3780476ca71bf7e /include/net
parent[NET]: Compact sk_stream_mem_schedule() code (diff)
downloadkernel-qcow2-linux-dabeb344f54ab780d152714c18f1cb6b21c471a1.tar.gz
kernel-qcow2-linux-dabeb344f54ab780d152714c18f1cb6b21c471a1.tar.xz
kernel-qcow2-linux-dabeb344f54ab780d152714c18f1cb6b21c471a1.zip
mac80211: provide interface iterator for drivers
Sometimes drivers need to know which interfaces are associated with their hardware. Rather than forcing those drivers to keep track of the interfaces that were added, this adds an iteration function to mac80211. As it is intended to be used from the interface add/remove callbacks, the iteration function may currently only be called under RTNL. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 17b60391fcd6..1470e1b886f0 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1406,4 +1406,20 @@ void ieee80211_wake_queues(struct ieee80211_hw *hw);
*/
void ieee80211_scan_completed(struct ieee80211_hw *hw);
+/**
+ * ieee80211_iterate_active_interfaces - iterate active interfaces
+ *
+ * This function iterates over the interfaces associated with a given
+ * hardware that are currently active and calls the callback for them.
+ * Must be called under RTNL.
+ *
+ * @hw: the hardware struct of which the interfaces should be iterated over
+ * @iterator: the iterator function to call
+ * @data: first argument of the iterator function
+ */
+void ieee80211_iterate_active_interfaces(struct ieee80211_hw *hw,
+ void (*iterator)(void *data, u8 *mac,
+ int if_id),
+ void *data);
+
#endif /* MAC80211_H */