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