1364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger/****************************************************************************** 2364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * 3364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * 5364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * This program is free software; you can redistribute it and/or modify it 6364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * under the terms of version 2 of the GNU General Public License as 7364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * published by the Free Software Foundation. 8364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * 9364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * This program is distributed in the hope that it will be useful, but WITHOUT 10364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * more details. 13364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger * 14364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger ******************************************************************************/ 15364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger#ifndef __IOCTL_CFG80211_H__ 16364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger#define __IOCTL_CFG80211_H__ 17364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 18364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingerstruct rtw_wdev_priv { 19364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger struct wireless_dev *rtw_wdev; 20364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 21364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger struct rtw_adapter *padapter; 22364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 23364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger struct cfg80211_scan_request *scan_request; 24364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger spinlock_t scan_req_lock; 25364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 26364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger struct net_device *pmon_ndev;/* for monitor interface */ 27364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger char ifname_mon[IFNAMSIZ + 1]; /* name for monitor interface */ 28364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 29364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger u8 p2p_enabled; 30364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 31364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger bool power_mgmt; 32364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger}; 33364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 34364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger#define wdev_to_priv(w) ((struct rtw_wdev_priv *)(wdev_priv(w))) 35364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 36364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger#define wiphy_to_adapter(x) \ 37364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger (struct rtw_adapter *)(((struct rtw_wdev_priv *) \ 38364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger wiphy_priv(x))->padapter) 39364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 40364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger#define wiphy_to_wdev(x) \ 41364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger (struct wireless_dev *)(((struct rtw_wdev_priv *) \ 42364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger wiphy_priv(x))->rtw_wdev) 43364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 44364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingerint rtw_wdev_alloc(struct rtw_adapter *padapter, struct device *dev); 45364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_wdev_free(struct wireless_dev *wdev); 46364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_wdev_unregister(struct wireless_dev *wdev); 47364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 48364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_cfg80211_init_wiphy(struct rtw_adapter *padapter); 49364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 50364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_cfg80211_surveydone_event_callback(struct rtw_adapter *padapter); 51364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 52364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_cfg80211_indicate_connect(struct rtw_adapter *padapter); 53364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_cfg80211_indicate_disconnect(struct rtw_adapter *padapter); 54364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_cfg80211_indicate_scan_done(struct rtw_wdev_priv *pwdev_priv, 55364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger bool aborted); 56364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 57364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger#ifdef CONFIG_8723AU_AP_MODE 58364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_cfg80211_indicate_sta_assoc(struct rtw_adapter *padapter, 59364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger u8 *pmgmt_frame, uint frame_len); 60364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingervoid rtw_cfg80211_indicate_sta_disassoc(struct rtw_adapter *padapter, 61364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger unsigned char *da, unsigned short reason); 62364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger#endif /* CONFIG_8723AU_AP_MODE */ 63364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 64364e30ebd2dbaccba430c603da03e68746eb932aLarry Fingerbool rtw_cfg80211_pwr_mgmt(struct rtw_adapter *adapter); 65364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger 66364e30ebd2dbaccba430c603da03e68746eb932aLarry Finger#endif /* __IOCTL_CFG80211_H__ */ 67