diff options
Diffstat (limited to 'net/wireless/core.h')
-rw-r--r-- | net/wireless/core.h | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/net/wireless/core.h b/net/wireless/core.h index 68b321997d4c..d52da913145a 100644 --- a/net/wireless/core.h +++ b/net/wireless/core.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Wireless configuration interface internals. | 2 | * Wireless configuration interface internals. |
3 | * | 3 | * |
4 | * Copyright 2006-2009 Johannes Berg <johannes@sipsolutions.net> | 4 | * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net> |
5 | */ | 5 | */ |
6 | #ifndef __NET_WIRELESS_CORE_H | 6 | #ifndef __NET_WIRELESS_CORE_H |
7 | #define __NET_WIRELESS_CORE_H | 7 | #define __NET_WIRELESS_CORE_H |
@@ -48,6 +48,7 @@ struct cfg80211_registered_device { | |||
48 | 48 | ||
49 | /* associate netdev list */ | 49 | /* associate netdev list */ |
50 | struct mutex devlist_mtx; | 50 | struct mutex devlist_mtx; |
51 | /* protected by devlist_mtx or RCU */ | ||
51 | struct list_head netdev_list; | 52 | struct list_head netdev_list; |
52 | int devlist_generation; | 53 | int devlist_generation; |
53 | int opencount; /* also protected by devlist_mtx */ | 54 | int opencount; /* also protected by devlist_mtx */ |
@@ -72,17 +73,6 @@ struct cfg80211_registered_device { | |||
72 | /* current channel */ | 73 | /* current channel */ |
73 | struct ieee80211_channel *channel; | 74 | struct ieee80211_channel *channel; |
74 | 75 | ||
75 | #ifdef CONFIG_CFG80211_DEBUGFS | ||
76 | /* Debugfs entries */ | ||
77 | struct wiphy_debugfsdentries { | ||
78 | struct dentry *rts_threshold; | ||
79 | struct dentry *fragmentation_threshold; | ||
80 | struct dentry *short_retry_limit; | ||
81 | struct dentry *long_retry_limit; | ||
82 | struct dentry *ht40allow_map; | ||
83 | } debugfs; | ||
84 | #endif | ||
85 | |||
86 | /* must be last because of the way we do wiphy_priv(), | 76 | /* must be last because of the way we do wiphy_priv(), |
87 | * and it should at least be aligned to NETDEV_ALIGN */ | 77 | * and it should at least be aligned to NETDEV_ALIGN */ |
88 | struct wiphy wiphy __attribute__((__aligned__(NETDEV_ALIGN))); | 78 | struct wiphy wiphy __attribute__((__aligned__(NETDEV_ALIGN))); |
@@ -102,6 +92,8 @@ bool wiphy_idx_valid(int wiphy_idx) | |||
102 | return (wiphy_idx >= 0); | 92 | return (wiphy_idx >= 0); |
103 | } | 93 | } |
104 | 94 | ||
95 | |||
96 | extern struct workqueue_struct *cfg80211_wq; | ||
105 | extern struct mutex cfg80211_mutex; | 97 | extern struct mutex cfg80211_mutex; |
106 | extern struct list_head cfg80211_rdev_list; | 98 | extern struct list_head cfg80211_rdev_list; |
107 | extern int cfg80211_rdev_list_generation; | 99 | extern int cfg80211_rdev_list_generation; |
@@ -120,7 +112,8 @@ struct cfg80211_internal_bss { | |||
120 | unsigned long ts; | 112 | unsigned long ts; |
121 | struct kref ref; | 113 | struct kref ref; |
122 | atomic_t hold; | 114 | atomic_t hold; |
123 | bool ies_allocated; | 115 | bool beacon_ies_allocated; |
116 | bool proberesp_ies_allocated; | ||
124 | 117 | ||
125 | /* must be last because of priv member */ | 118 | /* must be last because of priv member */ |
126 | struct cfg80211_bss pub; | 119 | struct cfg80211_bss pub; |
@@ -284,6 +277,8 @@ int cfg80211_join_ibss(struct cfg80211_registered_device *rdev, | |||
284 | struct cfg80211_ibss_params *params, | 277 | struct cfg80211_ibss_params *params, |
285 | struct cfg80211_cached_keys *connkeys); | 278 | struct cfg80211_cached_keys *connkeys); |
286 | void cfg80211_clear_ibss(struct net_device *dev, bool nowext); | 279 | void cfg80211_clear_ibss(struct net_device *dev, bool nowext); |
280 | int __cfg80211_leave_ibss(struct cfg80211_registered_device *rdev, | ||
281 | struct net_device *dev, bool nowext); | ||
287 | int cfg80211_leave_ibss(struct cfg80211_registered_device *rdev, | 282 | int cfg80211_leave_ibss(struct cfg80211_registered_device *rdev, |
288 | struct net_device *dev, bool nowext); | 283 | struct net_device *dev, bool nowext); |
289 | void __cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid); | 284 | void __cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid); |
@@ -334,6 +329,15 @@ void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, | |||
334 | const u8 *resp_ie, size_t resp_ie_len, | 329 | const u8 *resp_ie, size_t resp_ie_len, |
335 | u16 status, bool wextev, | 330 | u16 status, bool wextev, |
336 | struct cfg80211_bss *bss); | 331 | struct cfg80211_bss *bss); |
332 | int cfg80211_mlme_register_action(struct wireless_dev *wdev, u32 snd_pid, | ||
333 | const u8 *match_data, int match_len); | ||
334 | void cfg80211_mlme_unregister_actions(struct wireless_dev *wdev, u32 nlpid); | ||
335 | void cfg80211_mlme_purge_actions(struct wireless_dev *wdev); | ||
336 | int cfg80211_mlme_action(struct cfg80211_registered_device *rdev, | ||
337 | struct net_device *dev, | ||
338 | struct ieee80211_channel *chan, | ||
339 | enum nl80211_channel_type channel_type, | ||
340 | const u8 *buf, size_t len, u64 *cookie); | ||
337 | 341 | ||
338 | /* SME */ | 342 | /* SME */ |
339 | int __cfg80211_connect(struct cfg80211_registered_device *rdev, | 343 | int __cfg80211_connect(struct cfg80211_registered_device *rdev, |
@@ -381,10 +385,15 @@ void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev); | |||
381 | struct ieee80211_channel * | 385 | struct ieee80211_channel * |
382 | rdev_fixed_channel(struct cfg80211_registered_device *rdev, | 386 | rdev_fixed_channel(struct cfg80211_registered_device *rdev, |
383 | struct wireless_dev *for_wdev); | 387 | struct wireless_dev *for_wdev); |
388 | struct ieee80211_channel * | ||
389 | rdev_freq_to_chan(struct cfg80211_registered_device *rdev, | ||
390 | int freq, enum nl80211_channel_type channel_type); | ||
384 | int rdev_set_freq(struct cfg80211_registered_device *rdev, | 391 | int rdev_set_freq(struct cfg80211_registered_device *rdev, |
385 | struct wireless_dev *for_wdev, | 392 | struct wireless_dev *for_wdev, |
386 | int freq, enum nl80211_channel_type channel_type); | 393 | int freq, enum nl80211_channel_type channel_type); |
387 | 394 | ||
395 | u16 cfg80211_calculate_bitrate(struct rate_info *rate); | ||
396 | |||
388 | #ifdef CONFIG_CFG80211_DEVELOPER_WARNINGS | 397 | #ifdef CONFIG_CFG80211_DEVELOPER_WARNINGS |
389 | #define CFG80211_DEV_WARN_ON(cond) WARN_ON(cond) | 398 | #define CFG80211_DEV_WARN_ON(cond) WARN_ON(cond) |
390 | #else | 399 | #else |