drivers/net/wireless/hostap/hostap_main.c shouldn't #include C files
Subsystems (3)
RFC PATCH 1/1 drivers/net/wireless/hostap/hostap_main.c shouldn't #include C files
This patch contains an attempt to properly build hostap.o without #incude'ing C files.
---
drivers/net/wireless/hostap/Makefile | 3 drivers/net/wireless/hostap/hostap.h | 37 +++++++++++ drivers/net/wireless/hostap/hostap_80211.h | 3 drivers/net/wireless/hostap/hostap_80211_rx.c | 11 +++ drivers/net/wireless/hostap/hostap_80211_tx.c | 15 ++++ drivers/net/wireless/hostap/hostap_ap.c | 36 ++++++---- drivers/net/wireless/hostap/hostap_ap.h | 2 drivers/net/wireless/hostap/hostap_common.h | 3 drivers/net/wireless/hostap/hostap_info.c | 3 drivers/net/wireless/hostap/hostap_ioctl.c | 12 ++- drivers/net/wireless/hostap/hostap_main.c | 60 +----------------- drivers/net/wireless/hostap/hostap_proc.c | 7 ++ drivers/net/wireless/hostap/hostap_wlan.h | 4 + include/net/ieee80211_crypt.h | 1 14 files changed, 120 insertions(+), 77 deletions(-)
drivers/net/wireless/hostap/Makefile renamed from drivers/net/wireless/hostap/Makefile.old +2 -1
@@ -1,4 +1,5 @@ -hostap-y := hostap_main.o +hostap-y := hostap_80211_rx.o hostap_80211_tx.o hostap_ap.o hostap_info.o \ + hostap_ioctl.o hostap_main.o hostap_proc.o obj-$(CONFIG_HOSTAP) += hostap.o obj-$(CONFIG_HOSTAP_CS) += hostap_cs.o
drivers/net/wireless/hostap/hostap.h renamed from drivers/net/wireless/hostap/hostap.h.old +37 -0
@@ -1,6 +1,15 @@#ifndef HOSTAP_H #define HOSTAP_H +#include <linux/ethtool.h> + +#include "hostap_wlan.h" +#include "hostap_ap.h" + +static const long freq_list[] = {2412 ,2417 ,2422 ,2427 ,2432 ,2437 ,2442 , +2447 ,2452 ,2457 ,2462 ,2467 ,2472 ,2484 }; +#define FREQ_COUNT (sizeof(freq_list) / sizeof(freq_list[0])) +/* hostap.c */ extern struct proc_dir_entry *hostap_proc;
@@ -40,6 +49,26 @@int prism2_sta_send_mgmt (local_info_t *local,u8 *dst,u16 stype,u8 *body,size_t bodylen);int prism2_sta_deauth (local_info_t *local,u16 reason); +int prism2_wds_add (local_info_t *local,u8 *remote_addr, +int rtnl_locked); +int prism2_wds_del (local_info_t *local,u8 *remote_addr, +int rtnl_locked,int do_not_remove); + + +/* hostap_ap.c */ + +int ap_control_add_mac (struct mac_restrictions *mac_restrictions,u8 *mac); +int ap_control_del_mac (struct mac_restrictions *mac_restrictions,u8 *mac); +void ap_control_flush_macs (struct mac_restrictions *mac_restrictions); +int ap_control_kick_mac (struct ap_data *ap,struct net_device *dev,u8 *mac); +void ap_control_kickall (struct ap_data *ap); +void *ap_crypt_get_ptrs (struct ap_data *ap,u8 *addr,int permanent, +struct ieee80211_crypt_data ***crypt); +int prism2_ap_get_sta_qual (local_info_t *local,struct sockaddr addr[], +struct iw_quality qual[],int buf_size, +int aplist); +int prism2_ap_translate_scan (struct net_device *dev,char *buffer); +int prism2_hostapd (struct ap_data *ap,struct prism2_hostapd_param *param);/* hostap_proc.c */
@@ -54,4 +83,12 @@void hostap_info_process (local_info_t *local,struct sk_buff *skb); +/* hostap_ioctl.c */ + +extern const struct iw_handler_def hostap_iw_handler_def; +extern struct ethtool_ops prism2_ethtool_ops; + +int hostap_ioctl (struct net_device *dev,struct ifreq *ifr,int cmd); + +#endif /* HOSTAP_H */
drivers/net/wireless/hostap/hostap_common.h renamed from drivers/net/wireless/hostap/hostap_common.h.old +3 -0
@@ -1,6 +1,9 @@#ifndef HOSTAP_COMMON_H #define HOSTAP_COMMON_H +#include <linux/types.h> +#include <linux/if_ether.h> +#define BIT (x) (1 << (x))#define MAC2STR (a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
drivers/net/wireless/hostap/hostap_wlan.h renamed from drivers/net/wireless/hostap/hostap_wlan.h.old +4 -0
@@ -1,6 +1,10 @@#ifndef HOSTAP_WLAN_H #define HOSTAP_WLAN_H +#include <linux/wireless.h> +#include <linux/netdevice.h> +#include <net/iw_handler.h> +#include "hostap_config.h" #include "hostap_common.h"
drivers/net/wireless/hostap/hostap_ap.h renamed from drivers/net/wireless/hostap/hostap_ap.h.old +2 -0
@@ -1,6 +1,8 @@#ifndef HOSTAP_AP_H #define HOSTAP_AP_H +#include "hostap_80211.h" +/* AP data structures for STAs */ /* maximum number of frames to buffer per STA */
drivers/net/wireless/hostap/hostap_80211.h renamed from drivers/net/wireless/hostap/hostap_80211.h.old +3 -0
@@ -1,6 +1,9 @@ #ifndef HOSTAP_80211_H #define HOSTAP_80211_H +#include <linux/types.h> +#include <net/ieee80211_crypt.h> + struct hostap_ieee80211_mgmt { u16 frame_control; u16 duration;
include/net/ieee80211_crypt.h renamed from include/net/ieee80211_crypt.h.old +1 -0
@@ -24,6 +24,7 @@#define IEEE80211_CRYPT_H #include <linux/skbuff.h> +#include <net/ieee80211.h> enum {IEEE80211_CRYPTO_TKIP_COUNTERMEASURES = (1 <<0 ),
drivers/net/wireless/hostap/hostap_main.c renamed from drivers/net/wireless/hostap/hostap_main.c.old +5 -55
84 lines not on this page · raw message
drivers/net/wireless/hostap/hostap_80211_rx.c renamed from drivers/net/wireless/hostap/hostap_80211_rx.c.old +11 -0
@@ -1,7 +1,18 @@#include <linux/etherdevice.h> +#include <net/ieee80211_crypt.h> #include "hostap_80211.h" #include "hostap.h" +#include "hostap_ap.h" + +/* See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation */ +/* Ethernet-II snap header (RFC1042 for most EtherTypes) */ +static unsigned char rfc1042_header[] = +{0xaa ,0xaa ,0x03 ,0x00 ,0x00 ,0x00 }; +/* Bridge-Tunnel header (for EtherTypes ETH_P_AARP and ETH_P_IPX) */ +static unsigned char bridge_tunnel_header[] = +{0xaa ,0xaa ,0x03 ,0x00 ,0x00 ,0xf8 }; +/* No encapsulation header if EtherType < 0x600 (=length) */ void hostap_dump_rx_80211 (const char *name,struct sk_buff *skb,struct hostap_80211_rx_status *rx_stats)
drivers/net/wireless/hostap/hostap_80211_tx.c renamed from drivers/net/wireless/hostap/hostap_80211_tx.c.old +15 -0
@@ -1,3 +1,18 @@ +#include "hostap_80211.h" +#include "hostap_common.h" +#include "hostap_wlan.h" +#include "hostap.h" +#include "hostap_ap.h" + +/* See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation */ +/* Ethernet-II snap header (RFC1042 for most EtherTypes) */ +static unsigned char rfc1042_header[] = +{0xaa ,0xaa ,0x03 ,0x00 ,0x00 ,0x00 }; +/* Bridge-Tunnel header (for EtherTypes ETH_P_AARP and ETH_P_IPX) */ +static unsigned char bridge_tunnel_header[] = +{0xaa ,0xaa ,0x03 ,0x00 ,0x00 ,0xf8 }; +/* No encapsulation header if EtherType < 0x600 (=length) */ +void hostap_dump_tx_80211 (const char *name,struct sk_buff *skb) {struct ieee80211_hdr_4addr *hdr;
drivers/net/wireless/hostap/hostap_ap.c renamed from drivers/net/wireless/hostap/hostap_ap.c.old +20 -16
@@ -16,6 +16,14 @@* (8802.11: 5.5) */ +#include <linux/proc_fs.h> +#include <linux/delay.h> +#include <linux/random.h> + +#include "hostap_wlan.h" +#include "hostap.h" +#include "hostap_ap.h" +static int other_ap_policy[MAX_PARM_DEVICES ] = {AP_OTHER_AP_SKIP_ALL ,DEF_INTS };module_param_array (other_ap_policy, int,NULL ,0444 );
@@ -360,8 +368,7 @@ } -static int ap_control_add_mac (struct mac_restrictions *mac_restrictions, -u8 *mac) +int ap_control_add_mac (struct mac_restrictions *mac_restrictions,u8 *mac) {struct mac_entry *entry;
@@ -380,8 +387,7 @@ } -static int ap_control_del_mac (struct mac_restrictions *mac_restrictions, -u8 *mac) +int ap_control_del_mac (struct mac_restrictions *mac_restrictions,u8 *mac) {struct list_head *ptr;struct mac_entry *entry;
@@ -433,7 +439,7 @@ } -static void ap_control_flush_macs (struct mac_restrictions *mac_restrictions) +void ap_control_flush_macs (struct mac_restrictions *mac_restrictions) {struct list_head *ptr, *n;struct mac_entry *entry;
@@ -454,8 +460,7 @@ } -static int ap_control_kick_mac (struct ap_data *ap,struct net_device *dev, -u8 *mac) +int ap_control_kick_mac (struct ap_data *ap,struct net_device *dev,u8 *mac) {struct sta_info *sta;u16 resp;
@@ -486,7 +491,7 @@#endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */ -static void ap_control_kickall (struct ap_data *ap) +void ap_control_kickall (struct ap_data *ap) {struct list_head *ptr, *n;struct sta_info *sta;
@@ -2321,9 +2326,9 @@ } -static int prism2_ap_get_sta_qual (local_info_t *local,struct sockaddr addr[], -struct iw_quality qual[],int buf_size, -int aplist) +int prism2_ap_get_sta_qual (local_info_t *local,struct sockaddr addr[], +struct iw_quality qual[],int buf_size, +int aplist) {struct ap_data *ap = local->ap;struct list_head *ptr;
@@ -2363,7 +2368,7 @@/* Translate our list of Access Points & Stations to a card independant * format that the Wireless Tools will understand - Jean II */ -static int prism2_ap_translate_scan (struct net_device *dev,char *buffer) +int prism2_ap_translate_scan (struct net_device *dev,char *buffer) {struct hostap_interface *iface;local_info_t *local;
@@ -2608,8 +2613,7 @@ } -static int prism2_hostapd (struct ap_data *ap, -struct prism2_hostapd_param *param) +int prism2_hostapd (struct ap_data *ap,struct prism2_hostapd_param *param) {switch (param->cmd) {case PRISM2_HOSTAPD_FLUSH :
@@ -3207,8 +3211,8 @@ } -static void *ap_crypt_get_ptrs (struct ap_data *ap,u8 *addr,int permanent, -struct ieee80211_crypt_data ***crypt) +void *ap_crypt_get_ptrs (struct ap_data *ap,u8 *addr,int permanent, +struct ieee80211_crypt_data ***crypt) {struct sta_info *sta;
drivers/net/wireless/hostap/hostap_info.c renamed from drivers/net/wireless/hostap/hostap_info.c.old +3 -0
@@ -1,5 +1,8 @@/* Host AP driver Info Frame processing (part of hostap.o module) */ +#include "hostap_wlan.h" +#include "hostap.h" +#include "hostap_ap.h" /* Called only as a tasklet (software IRQ) */ static void prism2_info_commtallies16(local_info_t *local, unsigned char *buf,
drivers/net/wireless/hostap/hostap_ioctl.c renamed from drivers/net/wireless/hostap/hostap_ioctl.c.old +7 -5
@@ -1,11 +1,13 @@/* ioctl() (mostly Linux Wireless Extensions) routines for Host AP driver */ -#ifdef in_atomic -/* Get kernel_locked() for in_atomic() */ +#include <linux/types.h> #include <linux/smp_lock.h> -#endif #include <linux/ethtool.h> +#include <net/ieee80211_crypt.h> +#include "hostap_wlan.h" +#include "hostap.h" +#include "hostap_ap.h" static struct iw_statistics *hostap_get_wireless_stats (struct net_device *dev) {
@@ -3910,7 +3912,7 @@ local->sta_fw_ver & 0xff); } -static struct ethtool_ops prism2_ethtool_ops = { +struct ethtool_ops prism2_ethtool_ops = { .get_drvinfo = prism2_get_drvinfo };
@@ -3985,7 +3987,7 @@ (iw_handler) prism2_ioctl_priv_readmif, /* 3 */ }; -static const struct iw_handler_def hostap_iw_handler_def = +const struct iw_handler_def hostap_iw_handler_def = { .num_standard =sizeof (prism2_handler) /sizeof (iw_handler), .num_private =sizeof (prism2_private_handler) /sizeof (iw_handler),
drivers/net/wireless/hostap/hostap_proc.c renamed from drivers/net/wireless/hostap/hostap_proc.c.old +7 -0
@@ -1,5 +1,12 @@/* /proc routines for Host AP driver */ +#include <linux/types.h> +#include <linux/proc_fs.h> +#include <net/ieee80211_crypt.h> + +#include "hostap_wlan.h" +#include "hostap.h" +#define PROC_LIMIT (PAGE_SIZE - 80)
Quoted 2 lines · Adrian Bunk
This patch contains an attempt to properly build hostap.o without #incude'ing C files.
Looks good. However, I did not test this now since this did not apply to netdev-2.6 (it does not have hostap_main.c). Did the hostap.c to hostap_main.c rename go only to -mm? I would prefer to do this kind of changes in a single place and I thought netdev-2.6 would be that. I'm not following -mm tree at all and it would be easier to go through patches if they are against netdev-2.6 upstream branch.
Signature · 1 line
Jouni Malinen PGP id EFC895FA
Quoted 10 lines · Jouni Malinen
Quoted 2 lines · Adrian Bunk
This patch contains an attempt to properly build hostap.o without #incude'ing C files.
Looks good. However, I did not test this now since this did not apply to netdev-2.6 (it does not have
hostap_main.c). Did thehostap.ctohostap_main.crename go only to -mm? I would prefer to do this kind of changes in a single place and I thought netdev-2.6 would be that. I'm not following -mm tree at all and it would be easier to go through patches if they are against netdev-2.6 upstream branch.
The hostap_main.c rename is in the git-netdev-all tree that gets pulled into -mm. I don't know the exact setup of Jeff's (Cc'ed) git trees.
Quoted 1 line
Jouni Malinen
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed