提交 571ecf67 编写于 作者: J Johannes Berg 提交者: David S. Miller

[MAC80211]: split RX handlers into own file

Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: NJiri Benc <jbenc@suse.cz>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 bbf25010
...@@ -255,4 +255,13 @@ enum ieee80211_radiotap_type { ...@@ -255,4 +255,13 @@ enum ieee80211_radiotap_type {
(((x) == 14) ? 2484 : ((x) * 5) + 2407) : \ (((x) == 14) ? 2484 : ((x) * 5) + 2407) : \
((x) + 1000) * 5) ((x) + 1000) * 5)
/* helpers */
static inline int ieee80211_get_radiotap_len(unsigned char *data)
{
struct ieee80211_radiotap_header *hdr =
(struct ieee80211_radiotap_header *)data;
return le16_to_cpu(hdr->it_len);
}
#endif /* IEEE80211_RADIOTAP_H */ #endif /* IEEE80211_RADIOTAP_H */
...@@ -18,4 +18,5 @@ mac80211-objs := \ ...@@ -18,4 +18,5 @@ mac80211-objs := \
aes_ccm.o \ aes_ccm.o \
wme.o \ wme.o \
ieee80211_cfg.o \ ieee80211_cfg.o \
rx.o \
$(mac80211-objs-y) $(mac80211-objs-y)
此差异已折叠。
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/etherdevice.h>
#include <net/wireless.h> #include <net/wireless.h>
#include "ieee80211_key.h" #include "ieee80211_key.h"
#include "sta_info.h" #include "sta_info.h"
...@@ -707,6 +708,13 @@ static inline int ieee80211_is_erp_rate(int phymode, int rate) ...@@ -707,6 +708,13 @@ static inline int ieee80211_is_erp_rate(int phymode, int rate)
return 0; return 0;
} }
static inline int ieee80211_bssid_match(const u8 *raddr, const u8 *addr)
{
return compare_ether_addr(raddr, addr) == 0 ||
is_broadcast_ether_addr(raddr);
}
/* ieee80211.c */ /* ieee80211.c */
int ieee80211_hw_config(struct ieee80211_local *local); int ieee80211_hw_config(struct ieee80211_local *local);
int ieee80211_if_config(struct net_device *dev); int ieee80211_if_config(struct net_device *dev);
...@@ -730,6 +738,16 @@ void ieee80211_if_mgmt_setup(struct net_device *dev); ...@@ -730,6 +738,16 @@ void ieee80211_if_mgmt_setup(struct net_device *dev);
int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local, int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
const char *name); const char *name);
struct net_device_stats *ieee80211_dev_stats(struct net_device *dev); struct net_device_stats *ieee80211_dev_stats(struct net_device *dev);
struct ieee80211_rate *ieee80211_get_rate(struct ieee80211_local *local,
int phymode, int hwrate);
void ieee80211_key_threshold_notify(struct net_device *dev,
struct ieee80211_key *key,
struct sta_info *sta);
u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len);
int ieee80211_is_eapol(const struct sk_buff *skb);
extern const unsigned char rfc1042_header[];
extern const unsigned char bridge_tunnel_header[];
/* ieee80211_ioctl.c */ /* ieee80211_ioctl.c */
extern const struct iw_handler_def ieee80211_iw_handler_def; extern const struct iw_handler_def ieee80211_iw_handler_def;
...@@ -801,6 +819,10 @@ void ieee80211_if_del_mgmt(struct ieee80211_local *local); ...@@ -801,6 +819,10 @@ void ieee80211_if_del_mgmt(struct ieee80211_local *local);
void ieee80211_regdomain_init(void); void ieee80211_regdomain_init(void);
void ieee80211_set_default_regdomain(struct ieee80211_hw_mode *mode); void ieee80211_set_default_regdomain(struct ieee80211_hw_mode *mode);
/* rx handling */
extern ieee80211_rx_handler ieee80211_rx_pre_handlers[];
extern ieee80211_rx_handler ieee80211_rx_handlers[];
/* for wiphy privid */ /* for wiphy privid */
extern void *mac80211_wiphy_privid; extern void *mac80211_wiphy_privid;
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册