staging: wilc1000: rename ParseNetworkInfo
[firefly-linux-kernel-4.4.55.git] / drivers / staging / wilc1000 / coreconfigurator.h
1
2 /*!
3  *  @file       coreconfigurator.h
4  *  @brief
5  *  @author
6  *  @sa         coreconfigurator.c
7  *  @date       1 Mar 2012
8  *  @version    1.0
9  */
10
11 #ifndef CORECONFIGURATOR_H
12 #define CORECONFIGURATOR_H
13
14 #include "wilc_wlan_if.h"
15
16 #define NUM_BASIC_SWITCHES      45
17 #define NUM_FHSS_SWITCHES       0
18
19 #define NUM_RSSI                5
20
21 #ifdef MAC_802_11N
22 #define NUM_11N_BASIC_SWITCHES  25
23 #define NUM_11N_HUT_SWITCHES    47
24 #else
25 #define NUM_11N_BASIC_SWITCHES  0
26 #define NUM_11N_HUT_SWITCHES    0
27 #endif
28
29 #define MAC_HDR_LEN             24
30 #define MAX_SSID_LEN            33
31 #define FCS_LEN                 4
32 #define TIME_STAMP_LEN          8
33 #define BEACON_INTERVAL_LEN     2
34 #define CAP_INFO_LEN            2
35 #define STATUS_CODE_LEN         2
36 #define AID_LEN                 2
37 #define IE_HDR_LEN              2
38
39 #define SET_CFG              0
40 #define GET_CFG              1
41
42 #define MAX_STRING_LEN               256
43 #define MAX_SURVEY_RESULT_FRAG_SIZE  MAX_STRING_LEN
44 #define SURVEY_RESULT_LENGTH         44
45 #define MAX_ASSOC_RESP_FRAME_SIZE    MAX_STRING_LEN
46
47 #define MAC_CONNECTED                1
48 #define MAC_DISCONNECTED             0
49
50 #define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb))
51 #define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw))
52
53 typedef enum {
54         SUCCESSFUL_STATUSCODE    = 0,
55         UNSPEC_FAIL              = 1,
56         UNSUP_CAP                = 10,
57         REASOC_NO_ASOC           = 11,
58         FAIL_OTHER               = 12,
59         UNSUPT_ALG               = 13,
60         AUTH_SEQ_FAIL            = 14,
61         CHLNG_FAIL               = 15,
62         AUTH_TIMEOUT             = 16,
63         AP_FULL                  = 17,
64         UNSUP_RATE               = 18,
65         SHORT_PREAMBLE_UNSUP     = 19,
66         PBCC_UNSUP               = 20,
67         CHANNEL_AGIL_UNSUP       = 21,
68         SHORT_SLOT_UNSUP         = 25,
69         OFDM_DSSS_UNSUP          = 26,
70         CONNECT_STS_FORCE_16_BIT = 0xFFFF
71 } tenuConnectSts;
72
73 typedef struct {
74         u16 u16WIDid;
75         tenuWIDtype enuWIDtype;
76         s32 s32ValueSize;
77         s8      *ps8WidVal;
78
79 } tstrWID;
80
81 typedef struct {
82         u8 u8Full;
83         u8 u8Index;
84         s8 as8RSSI[NUM_RSSI];
85 } tstrRSSI;
86
87 typedef struct {
88         s8 s8rssi;
89         u16 u16CapInfo;
90         u8 au8ssid[MAX_SSID_LEN];
91         u8 u8SsidLen;
92         u8 au8bssid[6];
93         u16 u16BeaconPeriod;
94         u8 u8DtimPeriod;
95         u8 u8channel;
96         unsigned long u32TimeRcvdInScanCached;
97         unsigned long u32TimeRcvdInScan;
98         bool bNewNetwork;
99 #ifdef AGING_ALG
100         u8 u8Found;
101 #endif
102         u32 u32Tsf;
103         u8 *pu8IEs;
104         u16 u16IEsLen;
105         void *pJoinParams;
106         tstrRSSI strRssi;
107         u64 u64Tsf;
108 } tstrNetworkInfo;
109
110 typedef struct {
111         u16 u16capability;
112         u16 u16ConnectStatus;
113         u16 u16AssocID;
114         u8 *pu8RespIEs;
115         u16 u16RespIEsLen;
116 } tstrConnectRespInfo;
117
118 typedef struct {
119         u8 au8bssid[6];
120         u8 *pu8ReqIEs;
121         size_t ReqIEsLen;
122         u8 *pu8RespIEs;
123         u16 u16RespIEsLen;
124         u16 u16ConnectStatus;
125 } tstrConnectInfo;
126
127 typedef struct {
128         u16 u16reason;
129         u8 *ie;
130         size_t ie_len;
131 } tstrDisconnectNotifInfo;
132
133 #ifndef CONNECT_DIRECT
134 typedef struct wid_site_survey_reslts {
135         char SSID[MAX_SSID_LEN];
136         u8 BssType;
137         u8 Channel;
138         u8 SecurityStatus;
139         u8 BSSID[6];
140         char RxPower;
141         u8 Reserved;
142
143 } wid_site_survey_reslts_s;
144 #endif
145
146 s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs,
147                     u32 u32WIDsCount, bool bRespRequired, u32 drvHandler);
148 s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo);
149 s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo);
150
151 s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
152                        tstrConnectRespInfo **ppstrConnectRespInfo);
153 s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo);
154
155 #ifndef CONNECT_DIRECT
156 s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE],
157                        wid_site_survey_reslts_s **ppstrSurveyResults,
158                        u32 *pu32SurveyResultsCount);
159 s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults);
160 #endif
161
162 void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length);
163 void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length);
164 void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length);
165
166 #endif