tty: Remove tty_wait_until_sent_from_close()
[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 /* Constants                                                                 */
17 /*****************************************************************************/
18 /* Number of WID Options Supported */
19 #define NUM_BASIC_SWITCHES      45
20 #define NUM_FHSS_SWITCHES       0
21
22 #define NUM_RSSI                5
23
24 #ifdef MAC_802_11N
25 #define NUM_11N_BASIC_SWITCHES  25
26 #define NUM_11N_HUT_SWITCHES    47
27 #else /* MAC_802_11N */
28 #define NUM_11N_BASIC_SWITCHES  0
29 #define NUM_11N_HUT_SWITCHES    0
30 #endif /* MAC_802_11N */
31
32 extern u16 g_num_total_switches;
33
34 #define MAC_HDR_LEN             24          /* No Address4 - non-ESS         */
35 #define MAX_SSID_LEN            33
36 #define FCS_LEN                 4
37 #define TIME_STAMP_LEN          8
38 #define BEACON_INTERVAL_LEN     2
39 #define CAP_INFO_LEN            2
40 #define STATUS_CODE_LEN         2
41 #define AID_LEN                 2
42 #define IE_HDR_LEN              2
43
44 /* Operating Mode: SET */
45 #define SET_CFG              0
46 /* Operating Mode: GET */
47 #define GET_CFG              1
48
49 #define MAX_PACKET_BUFF_SIZE 1596
50
51 #define MAX_STRING_LEN               256
52 #define MAX_SURVEY_RESULT_FRAG_SIZE  MAX_STRING_LEN
53 #define SURVEY_RESULT_LENGTH         44
54 #define MAX_ASSOC_RESP_FRAME_SIZE    MAX_STRING_LEN
55
56 #define STATUS_MSG_LEN               12
57 #define MAC_CONNECTED                1
58 #define MAC_DISCONNECTED             0
59
60 /*****************************************************************************/
61 /* Function Macros                                                           */
62 /*****************************************************************************/
63 #define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb))
64 #define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw))
65
66 /*****************************************************************************/
67 /* Type Definitions                                                                                                                       */
68 /*****************************************************************************/
69 /* Status Codes for Authentication and Association Frames */
70 typedef enum {
71         SUCCESSFUL_STATUSCODE    = 0,
72         UNSPEC_FAIL              = 1,
73         UNSUP_CAP                = 10,
74         REASOC_NO_ASOC           = 11,
75         FAIL_OTHER               = 12,
76         UNSUPT_ALG               = 13,
77         AUTH_SEQ_FAIL            = 14,
78         CHLNG_FAIL               = 15,
79         AUTH_TIMEOUT             = 16,
80         AP_FULL                  = 17,
81         UNSUP_RATE               = 18,
82         SHORT_PREAMBLE_UNSUP     = 19,
83         PBCC_UNSUP               = 20,
84         CHANNEL_AGIL_UNSUP       = 21,
85         SHORT_SLOT_UNSUP         = 25,
86         OFDM_DSSS_UNSUP          = 26,
87         CONNECT_STS_FORCE_16_BIT = 0xFFFF
88 } tenuConnectSts;
89
90 typedef struct {
91         u16 u16WIDid;
92         tenuWIDtype enuWIDtype;
93         s32 s32ValueSize;
94         s8      *ps8WidVal;
95
96 } tstrWID;
97
98 typedef struct {
99         u8 u8Full;
100         u8 u8Index;
101         s8 as8RSSI[NUM_RSSI];
102 } tstrRSSI;
103 /* This structure is used to support parsing of the received 'N' message */
104 typedef struct {
105         s8 s8rssi;
106         u16 u16CapInfo;
107         u8 au8ssid[MAX_SSID_LEN];
108         u8 u8SsidLen;
109         u8 au8bssid[6];
110         u16 u16BeaconPeriod;
111         u8 u8DtimPeriod;
112         u8 u8channel;
113         unsigned long u32TimeRcvdInScanCached; /* of type unsigned long to be accepted by the linux kernel macro time_after() */
114         unsigned long u32TimeRcvdInScan;
115         bool bNewNetwork;
116 #ifdef AGING_ALG
117         u8 u8Found;
118 #endif
119 #ifdef WILC_P2P
120         u32 u32Tsf; /* time-stamp [Low only 32 bit] */
121 #endif
122         u8 *pu8IEs;
123         u16 u16IEsLen;
124         void *pJoinParams;
125         tstrRSSI strRssi;
126         u64 u64Tsf; /* time-stamp [Low and High 64 bit] */
127 } tstrNetworkInfo;
128
129 /* This structure is used to support parsing of the received Association Response frame */
130 typedef struct {
131         u16 u16capability;
132         u16 u16ConnectStatus;
133         u16 u16AssocID;
134         u8 *pu8RespIEs;
135         u16 u16RespIEsLen;
136 } tstrConnectRespInfo;
137
138 typedef struct {
139         u8 au8bssid[6];
140         u8 *pu8ReqIEs;
141         size_t ReqIEsLen;
142         u8 *pu8RespIEs;
143         u16 u16RespIEsLen;
144         u16 u16ConnectStatus;
145 } tstrConnectInfo;
146
147 typedef struct {
148         u16 u16reason;
149         u8 *ie;
150         size_t ie_len;
151 } tstrDisconnectNotifInfo;
152
153 #ifndef CONNECT_DIRECT
154 typedef struct wid_site_survey_reslts {
155         char SSID[MAX_SSID_LEN];
156         u8 BssType;
157         u8 Channel;
158         u8 SecurityStatus;
159         u8 BSSID[6];
160         char RxPower;
161         u8 Reserved;
162
163 } wid_site_survey_reslts_s;
164 #endif
165
166 s32 CoreConfiguratorInit(void);
167 s32 CoreConfiguratorDeInit(void);
168
169 s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs,
170                   u32 u32WIDsCount, bool bRespRequired, u32 drvHandler);
171 s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo);
172 s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo);
173
174 s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
175                        tstrConnectRespInfo **ppstrConnectRespInfo);
176 s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo);
177
178 #ifndef CONNECT_DIRECT
179 s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE],
180                        wid_site_survey_reslts_s **ppstrSurveyResults,
181                        u32 *pu32SurveyResultsCount);
182 s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults);
183 #endif
184
185 s32 SendRawPacket(s8 *pspacket, s32 s32PacketLen);
186 void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length);
187 void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length);
188 void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length);
189
190 #endif