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