1
2
3
4#ifndef __IOCTL_CFG80211_H__
5#define __IOCTL_CFG80211_H__
6
7struct rtw_wdev_invit_info {
8 u8 token;
9 u8 flags;
10 u8 status;
11 u8 req_op_ch;
12 u8 rsp_op_ch;
13};
14
15#define rtw_wdev_invit_info_init(invit_info) \
16 do { \
17 (invit_info)->token = 0; \
18 (invit_info)->flags = 0x00; \
19 (invit_info)->status = 0xff; \
20 (invit_info)->req_op_ch = 0; \
21 (invit_info)->rsp_op_ch = 0; \
22 } while (0)
23
24struct rtw_wdev_priv {
25 struct wireless_dev *rtw_wdev;
26
27 struct adapter *padapter;
28
29 struct cfg80211_scan_request *scan_request;
30 spinlock_t scan_req_lock;
31
32 struct net_device *pmon_ndev;
33 char ifname_mon[IFNAMSIZ + 1];
34
35 u8 p2p_enabled;
36
37 u8 provdisc_req_issued;
38
39 struct rtw_wdev_invit_info invit_info;
40
41 u8 bandroid_scan;
42 bool block;
43 bool power_mgmt;
44};
45
46#define wdev_to_priv(w) ((struct rtw_wdev_priv *)(wdev_priv(w)))
47
48#define wiphy_to_wdev(x) \
49((struct wireless_dev *)(((struct rtw_wdev_priv *)wiphy_priv(x))->rtw_wdev))
50
51int rtw_wdev_alloc(struct adapter *padapter, struct device *dev);
52void rtw_wdev_free(struct wireless_dev *wdev);
53void rtw_wdev_unregister(struct wireless_dev *wdev);
54
55void rtw_cfg80211_init_wiphy(struct adapter *padapter);
56
57void rtw_cfg80211_surveydone_event_callback(struct adapter *padapter);
58
59void rtw_cfg80211_indicate_connect(struct adapter *padapter);
60void rtw_cfg80211_indicate_disconnect(struct adapter *padapter);
61void rtw_cfg80211_indicate_scan_done(struct rtw_wdev_priv *pwdev_priv,
62 bool aborted);
63
64void rtw_cfg80211_indicate_sta_assoc(struct adapter *padapter,
65 u8 *pmgmt_frame, uint frame_len);
66void rtw_cfg80211_indicate_sta_disassoc(struct adapter *padapter,
67 unsigned char *da,
68 unsigned short reason);
69
70void rtw_cfg80211_issue_p2p_provision_request(struct adapter *padapter,
71 const u8 *buf, size_t len);
72void rtw_cfg80211_rx_p2p_action_public(struct adapter *padapter,
73 u8 *pmgmt_frame, uint frame_len);
74void rtw_cfg80211_rx_action_p2p(struct adapter *padapter, u8 *pmgmt_frame,
75 uint frame_len);
76void rtw_cfg80211_rx_action(struct adapter *adapter, u8 *frame,
77 uint frame_len, const char *msg);
78
79int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net,
80 char *buf, int len, int type);
81
82bool rtw_cfg80211_pwr_mgmt(struct adapter *adapter);
83
84#define rtw_cfg80211_rx_mgmt(dev, freq, sig_dbm, buf, len, gfp) \
85 cfg80211_rx_mgmt(dev, freq, sig_dbm, buf, len, gfp)
86#define rtw_cfg80211_send_rx_assoc(dev, bss, buf, len) \
87 cfg80211_send_rx_assoc(dev, bss, buf, len)
88
89#endif
90