[MAC80211]: split RX handlers into own file

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Jiri Benc <jbenc@suse.cz>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Johannes Berg 2007-07-27 15:43:22 +02:00 committed by David S. Miller
parent bbf25010f1
commit 571ecf676d
5 changed files with 1400 additions and 1365 deletions

View File

@ -255,4 +255,13 @@ enum ieee80211_radiotap_type {
(((x) == 14) ? 2484 : ((x) * 5) + 2407) : \
((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 */

View File

@ -18,4 +18,5 @@ mac80211-objs := \
aes_ccm.o \
wme.o \
ieee80211_cfg.o \
rx.o \
$(mac80211-objs-y)

File diff suppressed because it is too large Load Diff

View File

@ -21,6 +21,7 @@
#include <linux/workqueue.h>
#include <linux/types.h>
#include <linux/spinlock.h>
#include <linux/etherdevice.h>
#include <net/wireless.h>
#include "ieee80211_key.h"
#include "sta_info.h"
@ -707,6 +708,13 @@ static inline int ieee80211_is_erp_rate(int phymode, int rate)
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 */
int ieee80211_hw_config(struct ieee80211_local *local);
int ieee80211_if_config(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,
const char *name);
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 */
extern const struct iw_handler_def ieee80211_iw_handler_def;
@ -801,6 +819,10 @@ void ieee80211_if_del_mgmt(struct ieee80211_local *local);
void ieee80211_regdomain_init(void);
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 */
extern void *mac80211_wiphy_privid;

1360
net/mac80211/rx.c Normal file

File diff suppressed because it is too large Load Diff