aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-08-06 15:57:18 -0400
committerDavid S. Miller <davem@davemloft.net>2009-08-06 15:57:18 -0400
commitbfe34ebbaa125f00da309f59cc9d30febe1e3115 (patch)
tree505b43fc81be09ec5b42f82a3e64f300a5e838d5 /include/net
parent3d7ddd540b4c2d24c6a3e7a52c083a0c31e6151c (diff)
parent6b4f645a491ac29c7dced415d034eea7736155a6 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include/net')
-rw-r--r--include/net/cfg80211.h14
-rw-r--r--include/net/mac80211.h58
2 files changed, 48 insertions, 24 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index e1b92358242b..fa729979de88 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1514,20 +1514,6 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb);
1514extern int regulatory_hint(struct wiphy *wiphy, const char *alpha2); 1514extern int regulatory_hint(struct wiphy *wiphy, const char *alpha2);
1515 1515
1516/** 1516/**
1517 * regulatory_hint_11d - hints a country IE as a regulatory domain
1518 * @wiphy: the wireless device giving the hint (used only for reporting
1519 * conflicts)
1520 * @country_ie: pointer to the country IE
1521 * @country_ie_len: length of the country IE
1522 *
1523 * We will intersect the rd with the what CRDA tells us should apply
1524 * for the alpha2 this country IE belongs to, this prevents APs from
1525 * sending us incorrect or outdated information against a country.
1526 */
1527extern void regulatory_hint_11d(struct wiphy *wiphy,
1528 u8 *country_ie,
1529 u8 country_ie_len);
1530/**
1531 * wiphy_apply_custom_regulatory - apply a custom driver regulatory domain 1517 * wiphy_apply_custom_regulatory - apply a custom driver regulatory domain
1532 * @wiphy: the wireless device we want to process the regulatory domain on 1518 * @wiphy: the wireless device we want to process the regulatory domain on
1533 * @regd: the custom regulatory domain to use for this wiphy 1519 * @regd: the custom regulatory domain to use for this wiphy
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index d4e09a06b4a2..e2fb5767e1fa 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -73,6 +73,21 @@
73 */ 73 */
74 74
75/** 75/**
76 * DOC: mac80211 workqueue
77 *
78 * mac80211 provides its own workqueue for drivers and internal mac80211 use.
79 * The workqueue is a single threaded workqueue and can only be accessed by
80 * helpers for sanity checking. Drivers must ensure all work added onto the
81 * mac80211 workqueue should be cancelled on the driver stop() callback.
82 *
83 * mac80211 will flushed the workqueue upon interface removal and during
84 * suspend.
85 *
86 * All work performed on the mac80211 workqueue must not acquire the RTNL lock.
87 *
88 */
89
90/**
76 * enum ieee80211_max_queues - maximum number of queues 91 * enum ieee80211_max_queues - maximum number of queues
77 * 92 *
78 * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues. 93 * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues.
@@ -913,12 +928,6 @@ enum ieee80211_hw_flags {
913 * 928 *
914 * @conf: &struct ieee80211_conf, device configuration, don't use. 929 * @conf: &struct ieee80211_conf, device configuration, don't use.
915 * 930 *
916 * @workqueue: single threaded workqueue available for driver use,
917 * allocated by mac80211 on registration and flushed when an
918 * interface is removed.
919 * NOTICE: All work performed on this workqueue must not
920 * acquire the RTNL lock.
921 *
922 * @priv: pointer to private area that was allocated for driver use 931 * @priv: pointer to private area that was allocated for driver use
923 * along with this structure. 932 * along with this structure.
924 * 933 *
@@ -954,7 +963,6 @@ enum ieee80211_hw_flags {
954struct ieee80211_hw { 963struct ieee80211_hw {
955 struct ieee80211_conf conf; 964 struct ieee80211_conf conf;
956 struct wiphy *wiphy; 965 struct wiphy *wiphy;
957 struct workqueue_struct *workqueue;
958 const char *rate_control_algorithm; 966 const char *rate_control_algorithm;
959 void *priv; 967 void *priv;
960 u32 flags; 968 u32 flags;
@@ -1236,10 +1244,13 @@ ieee80211_get_alt_retry_rate(const struct ieee80211_hw *hw,
1236 * mac80211 needs to do and the amount of CPU wakeups, so you should 1244 * mac80211 needs to do and the amount of CPU wakeups, so you should
1237 * honour this flag if possible. 1245 * honour this flag if possible.
1238 * 1246 *
1239 * @FIF_CONTROL: pass control frames, if PROMISC_IN_BSS is not set then 1247 * @FIF_CONTROL: pass control frames (except for PS Poll), if PROMISC_IN_BSS
1240 * only those addressed to this station 1248 * is not set then only those addressed to this station.
1241 * 1249 *
1242 * @FIF_OTHER_BSS: pass frames destined to other BSSes 1250 * @FIF_OTHER_BSS: pass frames destined to other BSSes
1251 *
1252 * @FIF_PSPOLL: pass PS Poll frames, if PROMISC_IN_BSS is not set then only
1253 * those addressed to this station.
1243 */ 1254 */
1244enum ieee80211_filter_flags { 1255enum ieee80211_filter_flags {
1245 FIF_PROMISC_IN_BSS = 1<<0, 1256 FIF_PROMISC_IN_BSS = 1<<0,
@@ -1249,6 +1260,7 @@ enum ieee80211_filter_flags {
1249 FIF_BCN_PRBRESP_PROMISC = 1<<4, 1260 FIF_BCN_PRBRESP_PROMISC = 1<<4,
1250 FIF_CONTROL = 1<<5, 1261 FIF_CONTROL = 1<<5,
1251 FIF_OTHER_BSS = 1<<6, 1262 FIF_OTHER_BSS = 1<<6,
1263 FIF_PSPOLL = 1<<7,
1252}; 1264};
1253 1265
1254/** 1266/**
@@ -1301,7 +1313,8 @@ enum ieee80211_ampdu_mlme_action {
1301 * is disabled. This should turn off the hardware (at least 1313 * is disabled. This should turn off the hardware (at least
1302 * it must turn off frame reception.) 1314 * it must turn off frame reception.)
1303 * May be called right after add_interface if that rejects 1315 * May be called right after add_interface if that rejects
1304 * an interface. 1316 * an interface. If you added any work onto the mac80211 workqueue
1317 * you should ensure to cancel it on this callback.
1305 * Must be implemented. 1318 * Must be implemented.
1306 * 1319 *
1307 * @add_interface: Called when a netdevice attached to the hardware is 1320 * @add_interface: Called when a netdevice attached to the hardware is
@@ -1928,6 +1941,31 @@ void ieee80211_iterate_active_interfaces_atomic(struct ieee80211_hw *hw,
1928 void *data); 1941 void *data);
1929 1942
1930/** 1943/**
1944 * ieee80211_queue_work - add work onto the mac80211 workqueue
1945 *
1946 * Drivers and mac80211 use this to add work onto the mac80211 workqueue.
1947 * This helper ensures drivers are not queueing work when they should not be.
1948 *
1949 * @hw: the hardware struct for the interface we are adding work for
1950 * @work: the work we want to add onto the mac80211 workqueue
1951 */
1952void ieee80211_queue_work(struct ieee80211_hw *hw, struct work_struct *work);
1953
1954/**
1955 * ieee80211_queue_delayed_work - add work onto the mac80211 workqueue
1956 *
1957 * Drivers and mac80211 use this to queue delayed work onto the mac80211
1958 * workqueue.
1959 *
1960 * @hw: the hardware struct for the interface we are adding work for
1961 * @dwork: delayable work to queue onto the mac80211 workqueue
1962 * @delay: number of jiffies to wait before queueing
1963 */
1964void ieee80211_queue_delayed_work(struct ieee80211_hw *hw,
1965 struct delayed_work *dwork,
1966 unsigned long delay);
1967
1968/**
1931 * ieee80211_start_tx_ba_session - Start a tx Block Ack session. 1969 * ieee80211_start_tx_ba_session - Start a tx Block Ack session.
1932 * @hw: pointer as obtained from ieee80211_alloc_hw(). 1970 * @hw: pointer as obtained from ieee80211_alloc_hw().
1933 * @ra: receiver address of the BA session recipient 1971 * @ra: receiver address of the BA session recipient