mac80211.h (0ead2510f8cec11ce96308d79a1b4ee272fb5238) mac80211.h (ef044763a3ca6b9e0bb65a9ce0cb38c0eca62756)
1/*
2 * mac80211 <-> driver interface
3 *
4 * Copyright 2002-2005, Devicescape Software, Inc.
5 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
6 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>
7 * Copyright 2013-2014 Intel Mobile Communications GmbH
8 * Copyright (C) 2015 Intel Deutschland GmbH

--- 4904 unchanged lines hidden (view full) ---

4913 void (*iter)(struct ieee80211_hw *hw,
4914 struct ieee80211_vif *vif,
4915 struct ieee80211_sta *sta,
4916 struct ieee80211_key_conf *key,
4917 void *data),
4918 void *iter_data);
4919
4920/**
1/*
2 * mac80211 <-> driver interface
3 *
4 * Copyright 2002-2005, Devicescape Software, Inc.
5 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
6 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>
7 * Copyright 2013-2014 Intel Mobile Communications GmbH
8 * Copyright (C) 2015 Intel Deutschland GmbH

--- 4904 unchanged lines hidden (view full) ---

4913 void (*iter)(struct ieee80211_hw *hw,
4914 struct ieee80211_vif *vif,
4915 struct ieee80211_sta *sta,
4916 struct ieee80211_key_conf *key,
4917 void *data),
4918 void *iter_data);
4919
4920/**
4921 * ieee80211_iter_keys_rcu - iterate keys programmed into the device
4922 * @hw: pointer obtained from ieee80211_alloc_hw()
4923 * @vif: virtual interface to iterate, may be %NULL for all
4924 * @iter: iterator function that will be called for each key
4925 * @iter_data: custom data to pass to the iterator function
4926 *
4927 * This function can be used to iterate all the keys known to
4928 * mac80211, even those that weren't previously programmed into
4929 * the device. Note that due to locking reasons, keys of station
4930 * in removal process will be skipped.
4931 *
4932 * This function requires being called in an RCU critical section,
4933 * and thus iter must be atomic.
4934 */
4935void ieee80211_iter_keys_rcu(struct ieee80211_hw *hw,
4936 struct ieee80211_vif *vif,
4937 void (*iter)(struct ieee80211_hw *hw,
4938 struct ieee80211_vif *vif,
4939 struct ieee80211_sta *sta,
4940 struct ieee80211_key_conf *key,
4941 void *data),
4942 void *iter_data);
4943
4944/**
4921 * ieee80211_iter_chan_contexts_atomic - iterate channel contexts
4922 * @hw: pointre obtained from ieee80211_alloc_hw().
4923 * @iter: iterator function
4924 * @iter_data: data passed to iterator function
4925 *
4926 * Iterate all active channel contexts. This function is atomic and
4927 * doesn't acquire any locks internally that might be held in other
4928 * places while calling into the driver.

--- 570 unchanged lines hidden ---
4945 * ieee80211_iter_chan_contexts_atomic - iterate channel contexts
4946 * @hw: pointre obtained from ieee80211_alloc_hw().
4947 * @iter: iterator function
4948 * @iter_data: data passed to iterator function
4949 *
4950 * Iterate all active channel contexts. This function is atomic and
4951 * doesn't acquire any locks internally that might be held in other
4952 * places while calling into the driver.

--- 570 unchanged lines hidden ---