832b37d4f68cb8f49a14d7bb4ad33cae4aa44059
[profile/mobile/platform/kernel/linux-3.10-sc7730.git] / drivers / net / wireless / sc2331 / wlan_cfg80211.h
1 #ifndef __WLAN_CFG80211_H__
2 #define __WLAN_CFG80211_H__
3
4 #define WIFI_DIRECT_SUPPORT
5 #define WLAN_11R_SUPPORT
6
7 #define IP_TYPE           0x0800
8 /* auth type */
9 #define ITM_AUTH_OPEN   0
10 #define ITM_AUTH_SHARED 1
11 /*cipher type*/
12 #define NONE            0
13 #define WEP40           1
14 #define WEP104          2
15 #define TKIP            3
16 #define CCMP            4
17 #define AP_TKIP         5
18 #define AP_CCMP         6
19 #define WAPI            7
20 /*AKM suite*/
21 #define AKM_SUITE_PSK       (1)
22 #define AKM_SUITE_8021X     (2)
23 #define AKM_SUITE_FT_8021X  (3)
24 #define AKM_SUITE_FT_PSK    (4)
25 #define AKM_SUITE_WAPI_PSK (4)
26 #define AKM_SUITE_WAPI_CERT (12)
27
28 #define P2P_IE_ID                   221
29 #define WLAN_AKM_SUITE_FT_8021X         0x000FAC03
30 #define WLAN_AKM_SUITE_FT_PSK           0x000FAC04
31 #define WLAN_11R_MD_IE_ID   0x36
32 #define WLAN_11R_FT_IE_ID   0x37
33 #define P2P_IE_OUI_BYTE0 0x50
34 #define P2P_IE_OUI_BYTE1 0x6F
35 #define P2P_IE_OUI_BYTE2 0x9A
36 #define P2P_IE_OUI_TYPE  0x09
37 /*FIXME: determine the actual values for the macros below*/
38 #define SCAN_IE_LEN_MAX                 2304
39 #define MAX_NUM_PMKIDS                  4
40 #define MAX_SITES_FOR_SCAN              12
41 #define WLAN_MAX_SSID_SIZE              32
42 #define WLAN_MAX_KEY_INDEX              3
43 #define ITM_SCAN_TIMER_INTERVAL_MS      8000
44 /* parise or group key type */
45 #define GROUP                           0
46 #define PAIRWISE                        1
47 #define HOSTAP_CONF_FILE_NAME "/data/misc/wifi/hostapd.conf"
48 #ifdef CONFIG_MACH_SAMSUNG
49 #define ENG_MAC_ADDR_PATH     "/csa/.mac.info"
50 #define ENG_MAC_ADDR_INFO_PATH     "/opt/etc/.mac.info"
51 #else /* CONFIG_MACH_SAMSUNG */
52 #define ENG_MAC_ADDR_PATH     "/data/misc/wifi/wifimac.txt"
53 #endif /* CONFIG_MACH_SAMSUNG */
54 #define WIFI_VERSION_FILE     "/opt/etc/.wifiver.info"
55
56 #define MAX_SCAN_FRAME_BUF_NUM       (150)
57 #define LTE_CONCUR_REQ               (100)
58
59 #define wlan_2GHZ_CH01_11       REG_RULE(2412-10, 2462+10, 20, 0, 20, 0)
60 #define wlan_2GHZ_CH12_13       REG_RULE(2467-10, 2472+10, 20, 0, 20, 0)
61
62 #define MACLIST_MODE_DISABLED   0
63 #define MACLIST_MODE_BLACKLIST  1
64 #define MACLIST_MODE_WHITELIST  2
65 #define MAX_NUM_MAC_FILT        8
66 enum wlan_mode {
67         ITM_NONE_MODE,
68         ITM_STATION_MODE,
69         ITM_AP_MODE,
70         ITM_NPI_MODE,
71         ITM_P2P_CLIENT_MODE,
72         ITM_P2P_GO_MODE,
73 };
74
75 enum WPS_TYPE {
76         WPS_REQ_IE = 1,
77         WPS_ASSOC_IE,
78         P2P_ASSOC_IE,
79         P2P_BEACON_IE,
80         P2P_PROBERESP_IE,
81         P2P_ASSOCRESP_IE,
82         P2P_BEACON_IE_HEAD,
83         P2P_BEACON_IE_TAIL
84 };
85
86 enum wlan_state {
87         ITM_UNKOWN = 0,
88         ITM_SCANNING,
89         ITM_SCAN_ABORTING,
90         ITM_DISCONNECTED,
91         ITM_CONNECTING,
92         ITM_CONNECTED
93 };
94
95 struct hostap_conf {
96         char wpa_psk[128];
97         unsigned int len;
98 };
99
100 typedef struct android_wifi_priv_cmd {
101         char *buf;
102         int used_len;
103         int total_len;
104 } android_wifi_priv_cmd;
105
106 typedef struct {
107         unsigned char live;
108         unsigned char keep;
109         unsigned short channel;
110         signed short signal;
111         unsigned short msa_len;
112         unsigned char ssid[33];
113         unsigned char bssid[6];
114         unsigned char msa[1024];
115 } buf_scan_frame_t;
116
117 typedef struct {
118         unsigned int size;
119 } lte_concur_data_t;
120
121 typedef struct {
122         u32 n_reg_rules;
123         char alpha2[2];
124         struct ieee80211_reg_rule reg_rules[];
125 } wlan_ieee80211_regdomain;
126
127 extern void cfg80211_report_connect_result(unsigned char vif_id,
128                                            unsigned char *pData, int len);
129 extern void cfg80211_report_disconnect_done(unsigned char vif_id,
130                                             unsigned char *pData, int len);
131 extern void cfg80211_report_scan_done(unsigned char vif_id,
132                                       unsigned char *pData, int len,
133                                       bool aborted);
134 extern void cfg80211_report_mgmt_deauth(unsigned char vif_id,
135                                         unsigned char *data,
136                                         unsigned short len);
137 extern void cfg80211_report_mgmt_disassoc(unsigned char vif_id,
138                                           unsigned char *data,
139                                           unsigned short len);
140 extern void cfg80211_report_remain_on_channel_expired(unsigned char vif_id,
141                                                       unsigned char *data,
142                                                       unsigned short len);
143 extern void cfg80211_report_station(unsigned char vif_id, unsigned char *data,
144                                     unsigned short len);
145 extern void cfg80211_report_frame(unsigned char vif_id, unsigned char *data,
146                                   unsigned short len);
147 extern void cfg80211_report_scan_frame(unsigned char vif_id,
148                                        unsigned char *pData, int len);
149 extern void cfg80211_report_mic_failure(unsigned char vif_id,
150                                         unsigned char *pdata, int len);
151 extern int lte_concur_proc_open(struct inode *inode, struct file *filp);
152 extern int lte_concur_proc_release(struct inode *inode, struct file *filp);
153 extern ssize_t lte_concur_proc_ioctl(struct file *filp, unsigned int cmd,
154                                      unsigned long arg);
155 extern void cfg80211_report_cqm_low(unsigned char vif_id, unsigned char *pdata,
156                                     int len);
157 extern void cfg80211_report_cqm_high(unsigned char vif_id, unsigned char *pdata,
158                                      int len);
159 extern void cfg80211_report_cqm_beacon_loss(unsigned char vif_id,
160                                             unsigned char *pdata, int len);
161 extern void cfg80211_report_version(unsigned char vif_id,
162                                     unsigned char *pdata, int len);
163 extern void cfg80211_report_mlme_tx_status(unsigned char vif_id,
164                                            unsigned char *pdata, int len);
165 #endif