e663518bd5704c7273dd4197a08d2b91d1bc5042
[linux-3.10.git] / drivers / net / wireless / hostap / hostap.h
1 #ifndef HOSTAP_H
2 #define HOSTAP_H
3
4 #include <linux/ethtool.h>
5
6 #include "hostap_wlan.h"
7 #include "hostap_ap.h"
8
9 static const long freq_list[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442,
10                                   2447, 2452, 2457, 2462, 2467, 2472, 2484 };
11 #define FREQ_COUNT (sizeof(freq_list) / sizeof(freq_list[0]))
12
13 /* hostap.c */
14
15 extern struct proc_dir_entry *hostap_proc;
16
17 u16 hostap_tx_callback_register(local_info_t *local,
18                                 void (*func)(struct sk_buff *, int ok, void *),
19                                 void *data);
20 int hostap_tx_callback_unregister(local_info_t *local, u16 idx);
21 int hostap_set_word(struct net_device *dev, int rid, u16 val);
22 int hostap_set_string(struct net_device *dev, int rid, const char *val);
23 u16 hostap_get_porttype(local_info_t *local);
24 int hostap_set_encryption(local_info_t *local);
25 int hostap_set_antsel(local_info_t *local);
26 int hostap_set_roaming(local_info_t *local);
27 int hostap_set_auth_algs(local_info_t *local);
28 void hostap_dump_rx_header(const char *name,
29                            const struct hfa384x_rx_frame *rx);
30 void hostap_dump_tx_header(const char *name,
31                            const struct hfa384x_tx_frame *tx);
32 int hostap_80211_header_parse(struct sk_buff *skb, unsigned char *haddr);
33 int hostap_80211_prism_header_parse(struct sk_buff *skb, unsigned char *haddr);
34 int hostap_80211_get_hdrlen(u16 fc);
35 struct net_device_stats *hostap_get_stats(struct net_device *dev);
36 void hostap_setup_dev(struct net_device *dev, local_info_t *local,
37                       int main_dev);
38 void hostap_set_multicast_list_queue(void *data);
39 int hostap_set_hostapd(local_info_t *local, int val, int rtnl_locked);
40 int hostap_set_hostapd_sta(local_info_t *local, int val, int rtnl_locked);
41 void hostap_cleanup(local_info_t *local);
42 void hostap_cleanup_handler(void *data);
43 struct net_device * hostap_add_interface(struct local_info *local,
44                                          int type, int rtnl_locked,
45                                          const char *prefix, const char *name);
46 void hostap_remove_interface(struct net_device *dev, int rtnl_locked,
47                              int remove_from_list);
48 int prism2_update_comms_qual(struct net_device *dev);
49 int prism2_sta_send_mgmt(local_info_t *local, u8 *dst, u16 stype,
50                          u8 *body, size_t bodylen);
51 int prism2_sta_deauth(local_info_t *local, u16 reason);
52 int prism2_wds_add(local_info_t *local, u8 *remote_addr,
53                    int rtnl_locked);
54 int prism2_wds_del(local_info_t *local, u8 *remote_addr,
55                    int rtnl_locked, int do_not_remove);
56
57
58 /* hostap_ap.c */
59
60 int ap_control_add_mac(struct mac_restrictions *mac_restrictions, u8 *mac);
61 int ap_control_del_mac(struct mac_restrictions *mac_restrictions, u8 *mac);
62 void ap_control_flush_macs(struct mac_restrictions *mac_restrictions);
63 int ap_control_kick_mac(struct ap_data *ap, struct net_device *dev, u8 *mac);
64 void ap_control_kickall(struct ap_data *ap);
65 void * ap_crypt_get_ptrs(struct ap_data *ap, u8 *addr, int permanent,
66                          struct ieee80211_crypt_data ***crypt);
67 int prism2_ap_get_sta_qual(local_info_t *local, struct sockaddr addr[],
68                            struct iw_quality qual[], int buf_size,
69                            int aplist);
70 int prism2_ap_translate_scan(struct net_device *dev, char *buffer);
71 int prism2_hostapd(struct ap_data *ap, struct prism2_hostapd_param *param);
72
73
74 /* hostap_proc.c */
75
76 void hostap_init_proc(local_info_t *local);
77 void hostap_remove_proc(local_info_t *local);
78
79
80 /* hostap_info.c */
81
82 void hostap_info_init(local_info_t *local);
83 void hostap_info_process(local_info_t *local, struct sk_buff *skb);
84
85
86 /* hostap_ioctl.c */
87
88 extern const struct iw_handler_def hostap_iw_handler_def;
89 extern const struct ethtool_ops prism2_ethtool_ops;
90
91 int hostap_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
92
93
94 #endif /* HOSTAP_H */