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