Merge branch 'pm-cpufreq'
[linux-2.6-block.git] / drivers / staging / wilc1000 / host_interface.h
CommitLineData
c5c77ba1
JK
1/*!
2 * @file host_interface.h
3 * @brief File containg host interface APIs
4 * @author zsalah
5 * @sa host_interface.c
6 * @date 8 March 2012
7 * @version 1.0
8 */
9
10#ifndef HOST_INT_H
11#define HOST_INT_H
12
13#include "coreconfigurator.h"
c5c77ba1
JK
14/*****************************************************************************/
15/* Macros */
16/*****************************************************************************/
c5c77ba1
JK
17#define FAIL 0x0000
18#define SUCCESS 0x0001
19
20#define IP_ALEN 4
21
4e4467fd
CL
22#define BIT2 ((u32)(1 << 2))
23#define BIT1 ((u32)(1 << 1))
24#define BIT0 ((u32)(1 << 0))
c5c77ba1
JK
25
26#define AP_MODE 0x01
27#define STATION_MODE 0x02
28#define GO_MODE 0x03
29#define CLIENT_MODE 0x04
30
31
32#define MAX_NUM_STA 9
33#define ACTIVE_SCAN_TIME 10
34#define PASSIVE_SCAN_TIME 1200
35#define MIN_SCAN_TIME 10
36#define MAX_SCAN_TIME 1200
37#define DEFAULT_SCAN 0
38#define USER_SCAN BIT0
39#define OBSS_PERIODIC_SCAN BIT1
40#define OBSS_ONETIME_SCAN BIT2
41#define GTK_RX_KEY_BUFF_LEN 24
42#define ADDKEY 0x1
43#define REMOVEKEY 0x2
44#define DEFAULTKEY 0x4
45#define ADDKEY_AP 0x8
46#define MAX_NUM_SCANNED_NETWORKS 100 /* 30 // rachel */
47#define MAX_NUM_SCANNED_NETWORKS_SHADOW 130
48#define MAX_NUM_PROBED_SSID 10 /*One more than the number of scanned ssids*/
49#define CHANNEL_SCAN_TIME 250 /* 250 */
50
51#define TX_MIC_KEY_LEN 8
52#define RX_MIC_KEY_LEN 8
53#define PTK_KEY_LEN 16
54
55#define TX_MIC_KEY_MSG_LEN 26
56#define RX_MIC_KEY_MSG_LEN 48
57#define PTK_KEY_MSG_LEN 39
58
59#define PMKSA_KEY_LEN 22
60#define ETH_ALEN 6
61#define PMKID_LEN 16
62#define WILC_MAX_NUM_PMKIDS 16
63#define WILC_SUPP_MCS_SET_SIZE 16
64#define WILC_ADD_STA_LENGTH 40 /* Not including the rates field cause it has variable length*/
65#define SCAN_EVENT_DONE_ABORTED
66/*****************************************************************************/
67/* Data Types */
68/*****************************************************************************/
69/* typedef unsigned char uint8; */
70/* typedef signed char int8; */
71/* typedef unsigned short uint16; */
72/* typedef unsigned long uint32; */
73/* typedef uint32 Bool; */
74
c5c77ba1 75typedef struct {
d85f5326 76 u16 cfg_wid;
c5c77ba1 77 WID_TYPE_T cfg_type;
ca356ada 78 s8 *pu8Para;
c5c77ba1
JK
79} cfg_param_t;
80
81typedef struct _tstrStatistics {
63d03e47 82 u8 u8LinkSpeed;
ca356ada 83 s8 s8RSSI;
4e4467fd
CL
84 u32 u32TxCount;
85 u32 u32RxCount;
86 u32 u32TxFailureCount;
c5c77ba1
JK
87
88} tstrStatistics;
89
90
91typedef enum {
92 HOST_IF_IDLE = 0,
93 HOST_IF_SCANNING = 1,
94 HOST_IF_CONNECTING = 2,
95 HOST_IF_WAITING_CONN_RESP = 3,
96 HOST_IF_CONNECTED = 4,
97 HOST_IF_P2P_LISTEN = 5,
98 HOST_IF_FORCE_32BIT = 0xFFFFFFFF
99} tenuHostIFstate;
100
101typedef struct _tstrHostIFpmkid {
63d03e47
GKH
102 u8 bssid[ETH_ALEN];
103 u8 pmkid[PMKID_LEN];
c5c77ba1
JK
104} tstrHostIFpmkid;
105
106typedef struct _tstrHostIFpmkidAttr {
63d03e47 107 u8 numpmkid;
c5c77ba1
JK
108 tstrHostIFpmkid pmkidlist[WILC_MAX_NUM_PMKIDS];
109} tstrHostIFpmkidAttr;
61500fbd 110
c5c77ba1
JK
111typedef enum {
112 AUTORATE = 0,
113 MBPS_1 = 1,
114 MBPS_2 = 2,
115 MBPS_5_5 = 5,
116 MBPS_11 = 11,
117 MBPS_6 = 6,
118 MBPS_9 = 9,
119 MBPS_12 = 12,
120 MBPS_18 = 18,
121 MBPS_24 = 24,
122 MBPS_36 = 36,
123 MBPS_48 = 48,
124 MBPS_54 = 54
125} CURRENT_TX_RATE_T;
126
127typedef struct {
4e4467fd 128 u32 u32SetCfgFlag;
63d03e47
GKH
129 u8 ht_enable;
130 u8 bss_type;
131 u8 auth_type;
d85f5326 132 u16 auth_timeout;
63d03e47 133 u8 power_mgmt_mode;
d85f5326
CL
134 u16 short_retry_limit;
135 u16 long_retry_limit;
136 u16 frag_threshold;
137 u16 rts_threshold;
138 u16 preamble_type;
63d03e47
GKH
139 u8 short_slot_allowed;
140 u8 txop_prot_disabled;
d85f5326
CL
141 u16 beacon_interval;
142 u16 dtim_period;
c5c77ba1 143 SITE_SURVEY_T site_survey_enabled;
d85f5326 144 u16 site_survey_scan_time;
63d03e47 145 u8 scan_source;
d85f5326
CL
146 u16 active_scan_time;
147 u16 passive_scan_time;
c5c77ba1
JK
148 CURRENT_TX_RATE_T curr_tx_rate;
149
150} tstrCfgParamVal;
151
152typedef enum {
153 RETRY_SHORT = 1 << 0,
154 RETRY_LONG = 1 << 1,
155 FRAG_THRESHOLD = 1 << 2,
156 RTS_THRESHOLD = 1 << 3,
157 BSS_TYPE = 1 << 4,
158 AUTH_TYPE = 1 << 5,
159 AUTHEN_TIMEOUT = 1 << 6,
160 POWER_MANAGEMENT = 1 << 7,
161 PREAMBLE = 1 << 8,
162 SHORT_SLOT_ALLOWED = 1 << 9,
163 TXOP_PROT_DISABLE = 1 << 10,
164 BEACON_INTERVAL = 1 << 11,
165 DTIM_PERIOD = 1 << 12,
166 SITE_SURVEY = 1 << 13,
167 SITE_SURVEY_SCAN_TIME = 1 << 14,
168 ACTIVE_SCANTIME = 1 << 15,
169 PASSIVE_SCANTIME = 1 << 16,
170 CURRENT_TX_RATE = 1 << 17,
171 HT_ENABLE = 1 << 18,
172} tenuCfgParam;
173
174typedef struct {
63d03e47 175 u8 au8bssid[6];
ca356ada 176 s8 s8rssi;
c5c77ba1
JK
177} tstrFoundNetworkInfo;
178
179typedef enum {SCAN_EVENT_NETWORK_FOUND = 0,
180 SCAN_EVENT_DONE = 1,
181 SCAN_EVENT_ABORTED = 2,
182 SCAN_EVENT_FORCE_32BIT = 0xFFFFFFFF} tenuScanEvent;
183
184typedef enum {
185 CONN_DISCONN_EVENT_CONN_RESP = 0,
186 CONN_DISCONN_EVENT_DISCONN_NOTIF = 1,
187 CONN_DISCONN_EVENT_FORCE_32BIT = 0xFFFFFFFF
188} tenuConnDisconnEvent;
189
190typedef enum {
191 WEP,
192 WPARxGtk,
193 /* WPATxGtk, */
194 WPAPtk,
195 PMKSA,
196} tenuKeyType;
197
198
199/*Scan callBack function definition*/
200typedef void (*tWILCpfScanResult)(tenuScanEvent, tstrNetworkInfo *, void *, void *);
201
202/*Connect callBack function definition*/
203typedef void (*tWILCpfConnectResult)(tenuConnDisconnEvent,
204 tstrConnectInfo *,
63d03e47 205 u8,
c5c77ba1
JK
206 tstrDisconnectNotifInfo *,
207 void *);
208
209#ifdef WILC_P2P
4e4467fd 210typedef void (*tWILCpfRemainOnChanExpired)(void *, u32); /*Remain on channel expiration callback function*/
c5c77ba1
JK
211typedef void (*tWILCpfRemainOnChanReady)(void *); /*Remain on channel callback function*/
212#endif
213
4e4467fd 214/* typedef u32 WILC_WFIDrvHandle; */
c5c77ba1 215typedef struct {
fb4ec9ca 216 s32 s32Dummy;
c5c77ba1
JK
217} *WILC_WFIDrvHandle;
218
219/*!
220 * @struct tstrRcvdNetworkInfo
221 * @brief Structure to hold Received Asynchronous Network info
222 * @details
223 * @todo
224 * @sa
225 * @author Mostafa Abu Bakr
226 * @date 25 March 2012
227 * @version 1.0
228 */
229typedef struct _tstrRcvdNetworkInfo {
63d03e47 230 u8 *pu8Buffer;
4e4467fd 231 u32 u32Length;
c5c77ba1
JK
232} tstrRcvdNetworkInfo;
233
234/*BugID_4156*/
235typedef struct _tstrHiddenNetworkInfo {
63d03e47
GKH
236 u8 *pu8ssid;
237 u8 u8ssidlen;
c5c77ba1
JK
238
239} tstrHiddenNetworkInfo;
240
241typedef struct _tstrHiddenNetwork {
242 /* MAX_SSID_LEN */
243 tstrHiddenNetworkInfo *pstrHiddenNetworkInfo;
63d03e47 244 u8 u8ssidnum;
c5c77ba1
JK
245
246} tstrHiddenNetwork;
247
248typedef struct {
249 /* Scan user call back function */
250 tWILCpfScanResult pfUserScanResult;
251
252 /* User specific parameter to be delivered through the Scan User Callback function */
253 void *u32UserScanPvoid;
254
4e4467fd 255 u32 u32RcvdChCount;
c5c77ba1
JK
256 tstrFoundNetworkInfo astrFoundNetworkInfo[MAX_NUM_SCANNED_NETWORKS];
257} tstrWILC_UsrScanReq;
258
259typedef struct {
63d03e47
GKH
260 u8 *pu8bssid;
261 u8 *pu8ssid;
262 u8 u8security;
c5c77ba1
JK
263 AUTHTYPE_T tenuAuth_type;
264 size_t ssidLen;
63d03e47 265 u8 *pu8ConnReqIEs;
c5c77ba1
JK
266 size_t ConnReqIEsLen;
267 /* Connect user call back function */
268 tWILCpfConnectResult pfUserConnectResult;
72ed4dc7 269 bool IsHTCapable;
c5c77ba1
JK
270 /* User specific parameter to be delivered through the Connect User Callback function */
271 void *u32UserConnectPvoid;
272} tstrWILC_UsrConnReq;
273
274typedef struct {
4e4467fd 275 u32 u32Address;
c5c77ba1
JK
276} tstrHostIfSetDrvHandler;
277
278typedef struct {
4e4467fd 279 u32 u32Mode;
c5c77ba1
JK
280} tstrHostIfSetOperationMode;
281
282/*BugID_5077*/
283typedef struct {
63d03e47 284 u8 u8MacAddress[ETH_ALEN];
c5c77ba1
JK
285} tstrHostIfSetMacAddress;
286
287/*BugID_5213*/
288typedef struct {
63d03e47 289 u8 *u8MacAddress;
c5c77ba1
JK
290} tstrHostIfGetMacAddress;
291
292/*BugID_5222*/
293typedef struct {
63d03e47
GKH
294 u8 au8Bssid[ETH_ALEN];
295 u8 u8Ted;
d85f5326
CL
296 u16 u16BufferSize;
297 u16 u16SessionTimeout;
c5c77ba1
JK
298} tstrHostIfBASessionInfo;
299
300#ifdef WILC_P2P
301typedef struct {
d85f5326 302 u16 u16Channel;
4e4467fd 303 u32 u32duration;
c5c77ba1
JK
304 tWILCpfRemainOnChanExpired pRemainOnChanExpired;
305 tWILCpfRemainOnChanReady pRemainOnChanReady;
306 void *pVoid;
4e4467fd 307 u32 u32ListenSessionID;
c5c77ba1
JK
308} tstrHostIfRemainOnChan;
309
310typedef struct {
311
72ed4dc7 312 bool bReg;
d85f5326 313 u16 u16FrameType;
63d03e47 314 u8 u8Regid;
c5c77ba1
JK
315
316
317} tstrHostIfRegisterFrame;
318
319
320#define ACTION 0xD0
321#define PROBE_REQ 0x40
322#define PROBE_RESP 0x50
323#define ACTION_FRM_IDX 0
324#define PROBE_REQ_IDX 1
325
326
327enum p2p_listen_state {
328 P2P_IDLE,
329 P2P_LISTEN,
330 P2P_GRP_FORMATION
331};
332
333#endif
334typedef struct {
335 /* Scan user structure */
336 tstrWILC_UsrScanReq strWILC_UsrScanReq;
337
338 /* Connect User structure */
339 tstrWILC_UsrConnReq strWILC_UsrConnReq;
340
341 #ifdef WILC_P2P
342 /*Remain on channel struvture*/
343 tstrHostIfRemainOnChan strHostIfRemainOnChan;
63d03e47 344 u8 u8RemainOnChan_pendingreq;
57b298f5 345 u64 u64P2p_MgmtTimeout;
63d03e47 346 u8 u8P2PConnect;
c5c77ba1
JK
347 #endif
348
349 tenuHostIFstate enuHostIFstate;
350
72ed4dc7 351 /* bool bPendingConnRequest; */
c5c77ba1
JK
352
353 #ifndef CONNECT_DIRECT
4e4467fd 354 u32 u32SurveyResultsCount;
c5c77ba1
JK
355 wid_site_survey_reslts_s astrSurveyResults[MAX_NUM_SCANNED_NETWORKS];
356 #endif
357
63d03e47 358 u8 au8AssociatedBSSID[ETH_ALEN];
c5c77ba1
JK
359 tstrCfgParamVal strCfgValues;
360/* semaphores */
83383ea3
AB
361 struct semaphore gtOsCfgValuesSem;
362 struct semaphore hSemTestKeyBlock;
363
364 struct semaphore hSemTestDisconnectBlock;
365 struct semaphore hSemGetRSSI;
366 struct semaphore hSemGetLINKSPEED;
367 struct semaphore hSemGetCHNL;
368 struct semaphore hSemInactiveTime;
c5c77ba1 369/* timer handlers */
da711eb6
GKH
370 struct timer_list hScanTimer;
371 struct timer_list hConnectTimer;
c5c77ba1 372 #ifdef WILC_P2P
da711eb6 373 struct timer_list hRemainOnChannel;
c5c77ba1
JK
374 #endif
375
72ed4dc7 376 bool IFC_UP;
c5c77ba1
JK
377} tstrWILC_WFIDrv;
378
379/*!
380 * @enum tenuWILC_StaFlag
381 * @brief Used to decode the station flag set and mask in tstrWILC_AddStaParam
382 * @details
383 * @todo
384 * @sa tstrWILC_AddStaParam, enum nl80211_sta_flags
385 * @author Enumeraion's creator
386 * @date 12 July 2012
387 * @version 1.0 Description
388 */
389
390typedef enum {
391 WILC_STA_FLAG_INVALID = 0,
392 WILC_STA_FLAG_AUTHORIZED, /*!< station is authorized (802.1X)*/
393 WILC_STA_FLAG_SHORT_PREAMBLE, /*!< station is capable of receiving frames with short barker preamble*/
394 WILC_STA_FLAG_WME, /*!< station is WME/QoS capable*/
395 WILC_STA_FLAG_MFP, /*!< station uses management frame protection*/
396 WILC_STA_FLAG_AUTHENTICATED /*!< station is authenticated*/
397} tenuWILC_StaFlag;
398
399typedef struct {
63d03e47 400 u8 au8BSSID[ETH_ALEN];
d85f5326 401 u16 u16AssocID;
63d03e47 402 u8 u8NumRates;
057d1e97 403 const u8 *pu8Rates;
72ed4dc7 404 bool bIsHTSupported;
d85f5326 405 u16 u16HTCapInfo;
63d03e47
GKH
406 u8 u8AmpduParams;
407 u8 au8SuppMCsSet[16];
d85f5326 408 u16 u16HTExtParams;
4e4467fd 409 u32 u32TxBeamformingCap;
63d03e47 410 u8 u8ASELCap;
d85f5326
CL
411 u16 u16FlagsMask; /*<! Determines which of u16FlagsSet were changed>*/
412 u16 u16FlagsSet; /*<! Decoded according to tenuWILC_StaFlag */
c5c77ba1
JK
413} tstrWILC_AddStaParam;
414
d85f5326 415/* extern void CfgDisconnected(void* pUserVoid, u16 u16reason, u8 * ie, size_t ie_len); */
c5c77ba1
JK
416
417/*****************************************************************************/
418/* */
419/* Host Interface API */
420/* */
421/*****************************************************************************/
422
423/**
424 * @brief removes wpa/wpa2 keys
425 * @details only in BSS STA mode if External Supplicant support is enabled.
426 * removes all WPA/WPA2 station key entries from MAC hardware.
427 * @param[in,out] handle to the wifi driver
428 * @param[in] 6 bytes of Station Adress in the station entry table
429 * @return Error code indicating success/failure
430 * @note
431 * @author zsalah
432 * @date 8 March 2012
433 * @version 1.0
434 */
218dc407 435s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress);
c5c77ba1
JK
436/**
437 * @brief removes WEP key
438 * @details valid only in BSS STA mode if External Supplicant support is enabled.
439 * remove a WEP key entry from MAC HW.
440 * The BSS Station automatically finds the index of the entry using its
441 * BSS ID and removes that entry from the MAC hardware.
442 * @param[in,out] handle to the wifi driver
443 * @param[in] 6 bytes of Station Adress in the station entry table
444 * @return Error code indicating success/failure
445 * @note NO need for the STA add since it is not used for processing
446 * @author zsalah
447 * @date 8 March 2012
448 * @version 1.0
449 */
218dc407 450s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index);
c5c77ba1
JK
451/**
452 * @brief sets WEP deafault key
453 * @details Sets the index of the WEP encryption key in use,
454 * in the key table
455 * @param[in,out] handle to the wifi driver
456 * @param[in] key index ( 0, 1, 2, 3)
457 * @return Error code indicating success/failure
458 * @note
459 * @author zsalah
460 * @date 8 March 2012
461 * @version 1.0
462 */
218dc407 463s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index);
c5c77ba1
JK
464
465/**
466 * @brief sets WEP deafault key
467 * @details valid only in BSS STA mode if External Supplicant support is enabled.
468 * sets WEP key entry into MAC hardware when it receives the
469 * corresponding request from NDIS.
470 * @param[in,out] handle to the wifi driver
471 * @param[in] message containing WEP Key in the following format
472 *|---------------------------------------|
473 *|Key ID Value | Key Length | Key |
474 *|-------------|------------|------------|
475 | 1byte | 1byte | Key Length |
476 ||---------------------------------------|
477 |
478 * @return Error code indicating success/failure
479 * @note
480 * @author zsalah
481 * @date 8 March 2012
482 * @version 1.0
483 */
218dc407 484s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx);
c5c77ba1
JK
485/**
486 * @brief host_int_add_wep_key_bss_ap
487 * @details valid only in AP mode if External Supplicant support is enabled.
488 * sets WEP key entry into MAC hardware when it receives the
489 * corresponding request from NDIS.
490 * @param[in,out] handle to the wifi driver
491 *
492 *
493 * @return Error code indicating success/failure
494 * @note
495 * @author mdaftedar
496 * @date 28 Feb 2013
497 * @version 1.0
498 */
218dc407 499s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, AUTHTYPE_T tenuAuth_type);
c5c77ba1
JK
500
501/**
502 * @brief adds ptk Key
503 * @details
504 * @param[in,out] handle to the wifi driver
505 * @param[in] message containing PTK Key in the following format
506 *|-------------------------------------------------------------------------|
507 *|Sta Adress | Key Length | Temporal Key | Rx Michael Key |Tx Michael Key |
508 *|-----------|------------|---------------|----------------|---------------|
509 | 6 bytes | 1byte | 16 bytes | 8 bytes | 8 bytes |
510 ||-------------------------------------------------------------------------|
511 * @return Error code indicating success/failure
512 * @note
513 * @author zsalah
514 * @date 8 March 2012
515 * @version 1.0
516 */
218dc407 517s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen,
63d03e47 518 const u8 *mac_addr, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode, u8 u8Idx);
c5c77ba1
JK
519
520/**
521 * @brief host_int_get_inactive_time
522 * @details
523 * @param[in,out] handle to the wifi driver
524 * @param[in] message containing inactive time
525 *
526 * @return Error code indicating success/failure
527 * @note
528 * @author mdaftedar
529 * @date 15 April 2013
530 * @version 1.0
531 */
218dc407 532s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu32InactiveTime);
c5c77ba1
JK
533
534/**
535 * @brief adds Rx GTk Key
536 * @details
537 * @param[in,out] handle to the wifi driver
538 * @param[in] message containing Rx GTK Key in the following format
539 *|----------------------------------------------------------------------------|
540 *|Sta Address | Key RSC | KeyID | Key Length | Temporal Key | Rx Michael Key |
541 *|------------|---------|-------|------------|---------------|----------------|
542 | 6 bytes | 8 byte |1 byte | 1 byte | 16 bytes | 8 bytes |
543 ||----------------------------------------------------------------------------|
544 * @return Error code indicating success/failure
545 * @note
546 * @author zsalah
547 * @date 8 March 2012
548 * @version 1.0
549 */
218dc407 550s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKeylen,
4e4467fd 551 u8 u8KeyIdx, u32 u32KeyRSClen, const u8 *KeyRSC,
63d03e47 552 const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode);
c5c77ba1
JK
553
554
555/**
556 * @brief adds Tx GTk Key
557 * @details
558 * @param[in,out] handle to the wifi driver
559 * @param[in] message containing Tx GTK Key in the following format
560 *|----------------------------------------------------|
561 | KeyID | Key Length | Temporal Key | Tx Michael Key |
562 ||-------|------------|--------------|----------------|
563 ||1 byte | 1 byte | 16 bytes | 8 bytes |
564 ||----------------------------------------------------|
565 * @return Error code indicating success/failure
566 * @note
567 * @author zsalah
568 * @date 8 March 2012
569 * @version 1.0
570 */
218dc407 571s32 host_int_add_tx_gtk(tstrWILC_WFIDrv *hWFIDrv, u8 u8KeyLen, u8 *pu8TxGtk, u8 u8KeyIdx);
c5c77ba1
JK
572
573/**
574 * @brief caches the pmkid
575 * @details valid only in BSS STA mode if External Supplicant
576 * support is enabled. This Function sets the PMKID in firmware
577 * when host drivr receives the corresponding request from NDIS.
578 * The firmware then includes theset PMKID in the appropriate
579 * management frames
580 * @param[in,out] handle to the wifi driver
581 * @param[in] message containing PMKID Info in the following format
582 *|-----------------------------------------------------------------|
583 *|NumEntries | BSSID[1] | PMKID[1] | ... | BSSID[K] | PMKID[K] |
584 *|-----------|------------|----------|-------|----------|----------|
585 | 1 | 6 | 16 | ... | 6 | 16 |
586 ||-----------------------------------------------------------------|
587 * @return Error code indicating success/failure
588 * @note
589 * @author zsalah
590 * @date 8 March 2012
591 * @version 1.0
592 */
593
218dc407 594s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8PmkidInfoArray);
c5c77ba1
JK
595/**
596 * @brief gets the cached the pmkid info
597 * @details valid only in BSS STA mode if External Supplicant
598 * support is enabled. This Function sets the PMKID in firmware
599 * when host drivr receives the corresponding request from NDIS.
600 * The firmware then includes theset PMKID in the appropriate
601 * management frames
602 * @param[in,out] handle to the wifi driver,
603 *
604 * message containing PMKID Info in the following format
605 *|-----------------------------------------------------------------|
606 *|NumEntries | BSSID[1] | PMKID[1] | ... | BSSID[K] | PMKID[K] |
607 *|-----------|------------|----------|-------|----------|----------|
608 | 1 | 6 | 16 | ... | 6 | 16 |
609 ||-----------------------------------------------------------------|
610 * @param[in]
611 * @return Error code indicating success/failure
612 * @note
613 * @author zsalah
614 * @date 8 March 2012
615 * @version 1.0
616 */
617
218dc407 618s32 host_int_get_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PmkidInfoArray,
4e4467fd 619 u32 u32PmkidInfoLen);
c5c77ba1
JK
620
621/**
622 * @brief sets the pass phrase
623 * @details AP/STA mode. This function gives the pass phrase used to
624 * generate the Pre-Shared Key when WPA/WPA2 is enabled
625 * The length of the field can vary from 8 to 64 bytes,
626 * the lower layer should get the
627 * @param[in,out] handle to the wifi driver,
628 * @param[in] String containing PSK
629 * @return Error code indicating success/failure
630 * @note
631 * @author zsalah
632 * @date 8 March 2012
633 * @version 1.0
634 */
218dc407 635s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPhrase,
63d03e47 636 u8 u8Psklength);
c5c77ba1
JK
637/**
638 * @brief gets the pass phrase
639 * @details AP/STA mode. This function gets the pass phrase used to
640 * generate the Pre-Shared Key when WPA/WPA2 is enabled
641 * The length of the field can vary from 8 to 64 bytes,
642 * the lower layer should get the
643 * @param[in,out] handle to the wifi driver,
644 * String containing PSK
645 * @return Error code indicating success/failure
646 * @note
647 * @author zsalah
648 * @date 8 March 2012
649 * @version 1.0
650 */
218dc407 651s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv,
63d03e47 652 u8 *pu8PassPhrase, u8 u8Psklength);
c5c77ba1
JK
653
654/**
655 * @brief gets mac address
656 * @details
657 * @param[in,out] handle to the wifi driver,
658 *
659 * @return Error code indicating success/failure
660 * @note
661 * @author mdaftedar
662 * @date 19 April 2012
663 * @version 1.0
664 */
218dc407 665s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress);
c5c77ba1
JK
666
667/**
668 * @brief sets mac address
669 * @details
670 * @param[in,out] handle to the wifi driver,
671 *
672 * @return Error code indicating success/failure
673 * @note
674 * @author mabubakr
675 * @date 16 July 2012
676 * @version 1.0
677 */
218dc407 678s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress);
c5c77ba1
JK
679
680/**
681 * @brief wait until msg q is empty
682 * @details
683 * @param[in,out]
684 *
685 * @return Error code indicating success/failure
686 * @note
687 * @author asobhy
688 * @date 19 march 2014
689 * @version 1.0
690 */
fb4ec9ca 691s32 host_int_wait_msg_queue_idle(void);
c5c77ba1
JK
692
693/**
694 * @brief gets the site survey results
695 * @details
696 * @param[in,out] handle to the wifi driver,
697 * Message containing site survey results in the
698 * following formate
699 *|---------------------------------------------------|
700 | MsgLength | fragNo. | MsgBodyLength | MsgBody |
701 ||-----------|-----------|---------------|-----------|
702 | 1 | 1 | 1 | 1 |
703 | ----------------------------------------- | ----------------
704 |
705 ||---------------------------------------|
706 | Network1 | Netweork2 | ... | Network5 |
707 ||---------------------------------------|
708 | 44 | 44 | ... | 44 |
709 | -------------------------- | ---------------------------------------
710 |
711 ||---------------------------------------------------------------------|
712 | SSID | BSS Type | Channel | Security Status| BSSID | RSSI |Reserved |
713 ||------|----------|---------|----------------|-------|------|---------|
714 | 33 | 1 | 1 | 1 | 6 | 1 | 1 |
715 ||---------------------------------------------------------------------|
716 * @return Error code indicating success/failure
717 * @note
718 * @author zsalah
719 * @date 8 March 2012
720 * @version 1.0
721 */
722#ifndef CONNECT_DIRECT
218dc407 723s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv,
63d03e47 724 u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE],
4e4467fd 725 u32 u32MaxSiteSrvyFragLen);
c5c77ba1
JK
726#endif
727
728/**
729 * @brief sets a start scan request
730 * @details
731 * @param[in,out] handle to the wifi driver,
732 * @param[in] Scan Source one of the following values
733 * DEFAULT_SCAN 0
734 * USER_SCAN BIT0
735 * OBSS_PERIODIC_SCAN BIT1
736 * OBSS_ONETIME_SCAN BIT2
737 * @return Error code indicating success/failure
738 * @note
739 * @author zsalah
740 * @date 8 March 2012
741 * @version 1.0
742 */
743
218dc407 744s32 host_int_set_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 scanSource);
c5c77ba1
JK
745/**
746 * @brief gets scan source of the last scan
747 * @details
748 * @param[in,out] handle to the wifi driver,
749 * Scan Source one of the following values
750 * DEFAULT_SCAN 0
751 * USER_SCAN BIT0
752 * OBSS_PERIODIC_SCAN BIT1
753 * OBSS_ONETIME_SCAN BIT2
754 * @return Error code indicating success/failure
755 * @note
756 * @author zsalah
757 * @date 8 March 2012
758 * @version 1.0
759 */
218dc407 760s32 host_int_get_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ScanSource);
c5c77ba1
JK
761
762/**
763 * @brief sets a join request
764 * @details
765 * @param[in,out] handle to the wifi driver,
766 * @param[in] Index of the bss descriptor
767 * @return Error code indicating success/failure
768 * @note
769 * @author zsalah
770 * @date 8 March 2012
771 * @version 1.0
772 */
773
218dc407 774s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid,
057d1e97 775 const u8 *pu8ssid, size_t ssidLen,
63d03e47 776 const u8 *pu8IEs, size_t IEsLen,
c5c77ba1 777 tWILCpfConnectResult pfConnectResult, void *pvUserArg,
63d03e47
GKH
778 u8 u8security, AUTHTYPE_T tenuAuth_type,
779 u8 u8channel,
c5c77ba1
JK
780 void *pJoinParams);
781
782/**
783 * @brief Flush a join request parameters to FW, but actual connection
784 * @details The function is called in situation where WILC is connected to AP and
785 * required to switch to hybrid FW for P2P connection
786 * @param[in] handle to the wifi driver,
787 * @return Error code indicating success/failure
788 * @note
789 * @author Amr Abdel-Moghny
790 * @date 19 DEC 2013
791 * @version 8.0
792 */
793
218dc407 794s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv);
c5c77ba1
JK
795
796
797/**
798 * @brief disconnects from the currently associated network
799 * @details
800 * @param[in,out] handle to the wifi driver,
801 * @param[in] Reason Code of the Disconnection
802 * @return Error code indicating success/failure
803 * @note
804 * @author zsalah
805 * @date 8 March 2012
806 * @version 1.0
807 */
218dc407 808s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode);
c5c77ba1
JK
809
810/**
811 * @brief disconnects a sta
812 * @details
813 * @param[in,out] handle to the wifi driver,
814 * @param[in] Association Id of the station to be disconnected
815 * @return Error code indicating success/failure
816 * @note
817 * @author zsalah
818 * @date 8 March 2012
819 * @version 1.0
820 */
218dc407 821s32 host_int_disconnect_station(tstrWILC_WFIDrv *hWFIDrv, u8 assoc_id);
c5c77ba1
JK
822/**
823 * @brief gets a Association request info
824 * @details
825 * @param[in,out] handle to the wifi driver,
826 * Message containg assoc. req info in the following format
827 * ------------------------------------------------------------------------
828 | Management Frame Format |
829 ||-------------------------------------------------------------------|
830 ||Frame Control|Duration|DA|SA|BSSID|Sequence Control|Frame Body|FCS |
831 ||-------------|--------|--|--|-----|----------------|----------|----|
832 | 2 |2 |6 |6 |6 | 2 |0 - 2312 | 4 |
833 ||-------------------------------------------------------------------|
834 | |
835 | Association Request Frame - Frame Body |
836 ||-------------------------------------------------------------------|
837 | Capability Information | Listen Interval | SSID | Supported Rates |
838 ||------------------------|-----------------|------|-----------------|
839 | 2 | 2 | 2-34 | 3-10 |
840 | ---------------------------------------------------------------------
841 * @return Error code indicating success/failure
842 * @note
843 * @author zsalah
844 * @date 8 March 2012
845 * @version 1.0
846 */
847
218dc407 848s32 host_int_get_assoc_req_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocReqInfo,
4e4467fd 849 u32 u32AssocReqInfoLen);
c5c77ba1
JK
850/**
851 * @brief gets a Association Response info
852 * @details
853 * @param[in,out] handle to the wifi driver,
854 * Message containg assoc. resp info
855 * @return Error code indicating success/failure
856 * @note
857 * @author zsalah
858 * @date 8 March 2012
859 * @version 1.0
860 */
861
218dc407 862s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo,
4e4467fd 863 u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen);
c5c77ba1
JK
864/**
865 * @brief gets a Association Response info
866 * @details Valid only in STA mode. This function gives the RSSI
867 * values observed in all the channels at the time of scanning.
868 * The length of the field is 1 greater that the total number of
869 * channels supported. Byte 0 contains the number of channels while
870 * each of Byte N contains the observed RSSI value for the channel index N.
871 * @param[in,out] handle to the wifi driver,
872 * array of scanned channels' RSSI
873 * @return Error code indicating success/failure
874 * @note
875 * @author zsalah
876 * @date 8 March 2012
877 * @version 1.0
878 */
218dc407 879s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel,
4e4467fd 880 u32 u32RxPowerLevelLen);
c5c77ba1
JK
881
882/**
883 * @brief sets a channel
884 * @details
885 * @param[in,out] handle to the wifi driver,
886 * @param[in] Index of the channel to be set
887 *|-------------------------------------------------------------------|
888 | CHANNEL1 CHANNEL2 .... CHANNEL14 |
889 | Input: 1 2 14 |
890 ||-------------------------------------------------------------------|
891 * @return Error code indicating success/failure
892 * @note
893 * @author zsalah
894 * @date 8 March 2012
895 * @version 1.0
896 */
218dc407 897s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum);
c5c77ba1
JK
898
899/**
900 * @brief gets the current channel index
901 * @details
902 * @param[in,out] handle to the wifi driver,
903 * current channel index
904 *|-----------------------------------------------------------------------|
905 | CHANNEL1 CHANNEL2 .... CHANNEL14 |
906 | Input: 1 2 14 |
907 ||-----------------------------------------------------------------------|
908 * @return Error code indicating success/failure
909 * @note
910 * @author zsalah
911 * @date 8 March 2012
912 * @version 1.0
913 */
218dc407 914s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo);
c5c77ba1
JK
915/**
916 * @brief gets the sta rssi
917 * @details gets the currently maintained RSSI value for the station.
918 * The received signal strength value in dB.
919 * The range of valid values is -128 to 0.
920 * @param[in,out] handle to the wifi driver,
921 * rssi value in dB
922 * @return Error code indicating success/failure
923 * @note
924 * @author zsalah
925 * @date 8 March 2012
926 * @version 1.0
927 */
218dc407
JK
928s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi);
929s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd);
c5c77ba1
JK
930/**
931 * @brief scans a set of channels
932 * @details
933 * @param[in,out] handle to the wifi driver,
934 * @param[in] Scan source
935 * Scan Type PASSIVE_SCAN = 0,
936 * ACTIVE_SCAN = 1
937 * Channels Array
938 * Channels Array length
939 * Scan Callback function
940 * User Argument to be delivered back through the Scan Cllback function
941 * @return Error code indicating success/failure
942 * @note
943 * @author zsalah
944 * @date 8 March 2012
945 * @version 1.0
946 */
218dc407 947s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource,
63d03e47
GKH
948 u8 u8ScanType, u8 *pu8ChnlFreqList,
949 u8 u8ChnlListLen, const u8 *pu8IEs,
c5c77ba1
JK
950 size_t IEsLen, tWILCpfScanResult ScanResult,
951 void *pvUserArg, tstrHiddenNetwork *pstrHiddenNetwork);
952/**
953 * @brief sets configuration wids values
954 * @details
955 * @param[in,out] handle to the wifi driver,
956 * @param[in] WID, WID value
957 * @return Error code indicating success/failure
958 * @note
959 * @author zsalah
960 * @date 8 March 2012
961 * @version 1.0
962 */
218dc407 963s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal);
c5c77ba1
JK
964
965/**
966 * @brief gets configuration wids values
967 * @details
968 * @param[in,out] handle to the wifi driver,
969 * WID value
970 * @param[in] WID,
971 * @return Error code indicating success/failure
972 * @note
973 * @author zsalah
974 * @date 8 March 2012
975 * @version 1.0
976 */
218dc407 977s32 hif_get_cfg(tstrWILC_WFIDrv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value);
c5c77ba1
JK
978/*****************************************************************************/
979/* Notification Functions */
980/*****************************************************************************/
981/**
982 * @brief notifies host with join and leave requests
983 * @details This function prepares an Information frame having the
984 * information about a joining/leaving station.
985 * @param[in,out] handle to the wifi driver,
986 * @param[in] 6 byte Sta Adress
987 * Join or leave flag:
988 * Join = 1,
989 * Leave =0
990 * @return Error code indicating success/failure
991 * @note
992 * @author zsalah
993 * @date 8 March 2012
994 * @version 1.0
995 */
996void host_int_send_join_leave_info_to_host
72ed4dc7 997 (u16 assocId, u8 *stationAddr, bool joining);
c5c77ba1
JK
998
999/**
1000 * @brief notifies host with stations found in scan
1001 * @details sends the beacon/probe response from scan
1002 * @param[in,out] handle to the wifi driver,
1003 * @param[in] Sta Address,
1004 * Frame length,
1005 * Rssi of the Station found
1006 * @return Error code indicating success/failure
1007 * @note
1008 * @author zsalah
1009 * @date 8 March 2012
1010 * @version 1.0
1011 */
1012void host_int_send_network_info_to_host
ca356ada 1013 (u8 *macStartAddress, u16 u16RxFrameLen, s8 s8Rssi);
c5c77ba1
JK
1014
1015/**
1016 * @brief host interface initialization function
1017 * @details
1018 * @param[in,out] handle to the wifi driver,
1019 * @note
1020 * @author zsalah
1021 * @date 8 March 2012
1022 * @version 1.0
1023 */
218dc407 1024s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv);
c5c77ba1
JK
1025
1026/**
1027 * @brief host interface initialization function
1028 * @details
1029 * @param[in,out] handle to the wifi driver,
1030 * @note
1031 * @author zsalah
1032 * @date 8 March 2012
1033 * @version 1.0
1034 */
218dc407 1035s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv);
c5c77ba1
JK
1036
1037
1038/*!
fb4ec9ca 1039 * @fn s32 host_int_add_beacon(WILC_WFIDrvHandle hWFIDrv,u8 u8Index)
c5c77ba1
JK
1040 * @brief Sends a beacon to the firmware to be transmitted over the air
1041 * @details
1042 * @param[in,out] hWFIDrv handle to the wifi driver
1043 * @param[in] u32Interval Beacon Interval. Period between two successive beacons on air
1044 * @param[in] u32DTIMPeriod DTIM Period. Indicates how many Beacon frames
1045 * (including the current frame) appear before the next DTIM
1046 * @param[in] u32Headlen Length of the head buffer in bytes
1047 * @param[in] pu8Head Pointer to the beacon's head buffer. Beacon's head
1048 * is the part from the beacon's start till the TIM element, NOT including the TIM
1049 * @param[in] u32Taillen Length of the tail buffer in bytes
1050 * @param[in] pu8Tail Pointer to the beacon's tail buffer. Beacon's tail
1051 * starts just after the TIM inormation element
1052 * @return 0 for Success, error otherwise
1053 * @todo
1054 * @sa
1055 * @author Adham Abozaeid
1056 * @date 10 Julys 2012
1057 * @version 1.0 Description
1058 *
1059 */
218dc407 1060s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval,
4e4467fd
CL
1061 u32 u32DTIMPeriod,
1062 u32 u32HeadLen, u8 *pu8Head,
1063 u32 u32TailLen, u8 *pu8tail);
c5c77ba1
JK
1064
1065
1066/*!
fb4ec9ca 1067 * @fn s32 host_int_del_beacon(WILC_WFIDrvHandle hWFIDrv)
c5c77ba1
JK
1068 * @brief Removes the beacon and stops trawilctting it over the air
1069 * @details
1070 * @param[in,out] hWFIDrv handle to the wifi driver
1071 * @return 0 for Success, error otherwise
1072 * @todo
1073 * @sa
1074 * @author Adham Abozaeid
1075 * @date 10 Julys 2012
1076 * @version 1.0 Description
1077 */
218dc407 1078s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv);
c5c77ba1
JK
1079
1080/*!
fb4ec9ca 1081 * @fn s32 host_int_add_station(WILC_WFIDrvHandle hWFIDrv, tstrWILC_AddStaParam strStaParams)
c5c77ba1
JK
1082 * @brief Notifies the firmware with a new associated stations
1083 * @details
1084 * @param[in,out] hWFIDrv handle to the wifi driver
1085 * @param[in] pstrStaParams Station's parameters
1086 * @return 0 for Success, error otherwise
1087 * @todo
1088 * @sa
1089 * @author Adham Abozaeid
1090 * @date 12 July 2012
1091 * @version 1.0 Description
1092 */
218dc407 1093s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrStaParams);
c5c77ba1
JK
1094
1095/*!
fb4ec9ca 1096 * @fn s32 host_int_del_allstation(WILC_WFIDrvHandle hWFIDrv, const u8* pu8MacAddr)
c5c77ba1
JK
1097 * @brief Deauthenticates clients when group is terminating
1098 * @details
1099 * @param[in,out] hWFIDrv handle to the wifi driver
1100 * @param[in] pu8MacAddr Station's mac address
1101 * @return 0 for Success, error otherwise
1102 * @todo
1103 * @sa
1104 * @author Mai Daftedar
1105 * @date 09 April 2014
1106 * @version 1.0 Description
1107 */
218dc407 1108s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]);
c5c77ba1
JK
1109
1110/*!
fb4ec9ca 1111 * @fn s32 host_int_del_station(WILC_WFIDrvHandle hWFIDrv, u8* pu8MacAddr)
c5c77ba1
JK
1112 * @brief Notifies the firmware with a new deleted station
1113 * @details
1114 * @param[in,out] hWFIDrv handle to the wifi driver
1115 * @param[in] pu8MacAddr Station's mac address
1116 * @return 0 for Success, error otherwise
1117 * @todo
1118 * @sa
1119 * @author Adham Abozaeid
1120 * @date 15 July 2012
1121 * @version 1.0 Description
1122 */
218dc407 1123s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr);
c5c77ba1
JK
1124
1125/*!
fb4ec9ca 1126 * @fn s32 host_int_edit_station(WILC_WFIDrvHandle hWFIDrv, tstrWILC_AddStaParam strStaParams)
c5c77ba1
JK
1127 * @brief Notifies the firmware with new parameters of an already associated station
1128 * @details
1129 * @param[in,out] hWFIDrv handle to the wifi driver
1130 * @param[in] pstrStaParams Station's parameters
1131 * @return 0 for Success, error otherwise
1132 * @todo
1133 * @sa
1134 * @author Adham Abozaeid
1135 * @date 15 July 2012
1136 * @version 1.0 Description
1137 */
218dc407 1138s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrStaParams);
c5c77ba1
JK
1139
1140/*!
72ed4dc7 1141 * @fn s32 host_int_set_power_mgmt(WILC_WFIDrvHandle hWFIDrv, bool bIsEnabled, u32 u32Timeout)
c5c77ba1
JK
1142 * @brief Set the power management mode to enabled or disabled
1143 * @details
1144 * @param[in,out] hWFIDrv handle to the wifi driver
1145 * @param[in] bIsEnabled TRUE if enabled, FALSE otherwise
1146 * @param[in] u32Timeout A timeout value of -1 allows the driver to adjust
1147 * the dynamic ps timeout value
1148 * @return 0 for Success, error otherwise
1149 * @todo
1150 * @sa
1151 * @author Adham Abozaeid
1152 * @date 24 November 2012
1153 * @version 1.0 Description
1154 */
218dc407 1155s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Timeout);
c5c77ba1
JK
1156/* @param[in,out] hWFIDrv handle to the wifi driver
1157 * @param[in] bIsEnabled TRUE if enabled, FALSE otherwise
1158 * @param[in] u8count count of mac address entries in the filter table
1159 *
1160 * @return 0 for Success, error otherwise
1161 * @todo
1162 * @sa
1163 * @author Adham Abozaeid
1164 * @date 24 November 2012
1165 * @version 1.0 Description
1166 */
218dc407 1167s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32count);
c5c77ba1
JK
1168/**
1169 * @brief host_int_setup_ipaddress
1170 * @details set IP address on firmware
1171 * @param[in]
1172 * @return Error code.
1173 * @author Abdelrahman Sobhy
1174 * @date
1175 * @version 1.0
1176 */
218dc407 1177s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx);
c5c77ba1
JK
1178
1179
1180/**
1181 * @brief host_int_delBASession
1182 * @details Delete single Rx BA session
1183 * @param[in]
1184 * @return Error code.
1185 * @author Abdelrahman Sobhy
1186 * @date
1187 * @version 1.0
1188 */
218dc407 1189s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID);
c5c77ba1
JK
1190
1191/**
1192 * @brief host_int_delBASession
1193 * @details Delete all Rx BA session
1194 * @param[in]
1195 * @return Error code.
1196 * @author Abdelrahman Sobhy
1197 * @date
1198 * @version 1.0
1199 */
218dc407 1200s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID);
c5c77ba1
JK
1201
1202
1203/**
1204 * @brief host_int_get_ipaddress
1205 * @details get IP address on firmware
1206 * @param[in]
1207 * @return Error code.
1208 * @author Abdelrahman Sobhy
1209 * @date
1210 * @version 1.0
1211 */
218dc407 1212s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx);
c5c77ba1
JK
1213
1214#ifdef WILC_P2P
1215/**
1216 * @brief host_int_remain_on_channel
1217 * @details
1218 * @param[in]
1219 * @return Error code.
1220 * @author
1221 * @date
1222 * @version 1.0
1223 */
218dc407 1224s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, tWILCpfRemainOnChanExpired RemainOnChanExpired, tWILCpfRemainOnChanReady RemainOnChanReady, void *pvUserArg);
c5c77ba1
JK
1225
1226/**
1227 * @brief host_int_ListenStateExpired
1228 * @details
1229 * @param[in] Handle to wifi driver
1230 * Duration to remain on channel
1231 * Channel to remain on
1232 * Pointer to fn to be called on receive frames in listen state
1233 * Pointer to remain-on-channel expired fn
1234 * Priv
1235 * @return Error code.
1236 * @author
1237 * @date
1238 * @version 1.0
1239 */
218dc407 1240s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID);
c5c77ba1
JK
1241
1242/**
1243 * @brief host_int_frame_register
1244 * @details
1245 * @param[in]
1246 * @return Error code.
1247 * @author
1248 * @date
1249 * @version 1.0
1250 */
218dc407 1251s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bReg);
c5c77ba1
JK
1252#endif
1253/**
1254 * @brief host_int_set_wfi_drv_handler
1255 * @details
1256 * @param[in]
1257 * @return Error code.
1258 * @author
1259 * @date
1260 * @version 1.0
1261 */
218dc407
JK
1262s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address);
1263s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode);
c5c77ba1 1264
2b05df55 1265static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent);
c5c77ba1 1266
2b05df55 1267static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID, short int BufferSize,
c5c77ba1
JK
1268 short int SessionTimeout, void *drvHandler);
1269
1270
1271void host_int_freeJoinParams(void *pJoinParams);
1272
218dc407 1273s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics);
c5c77ba1
JK
1274
1275/*****************************************************************************/
1276/* */
1277/* EOF */
1278/* */
1279/*****************************************************************************/
1280#endif