blob: 798fc4aeec42e4ec343c8d0f1d0b15f66659a788 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Kiet Lam0fb93dd2014-02-19 00:32:59 -08002 * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
Kiet Lama7f454d2014-07-24 12:04:06 -070023 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
Kiet Lam0fb93dd2014-02-19 00:32:59 -080026 */
27
Jeff Johnson295189b2012-06-20 16:38:30 -070028
Kiet Lama7f454d2014-07-24 12:04:06 -070029
30
Jeff Johnson295189b2012-06-20 16:38:30 -070031#if !defined( __SME_API_H )
32#define __SME_API_H
33
34
35/**=========================================================================
36
37 \file smeApi.h
38
39 \brief prototype for SME APIs
40
41 Copyright 2008 (c) Qualcomm, Incorporated. All Rights Reserved.
42
43 Qualcomm Confidential and Proprietary.
44
45 ========================================================================*/
46
47/* $Header$ */
48
49/*--------------------------------------------------------------------------
50 Include Files
51 ------------------------------------------------------------------------*/
52#include "ccmApi.h"
53#include "csrApi.h"
54#include "pmcApi.h"
55#include "vos_mq.h"
56#include "vos_lock.h"
57#include "halTypes.h"
58#include "sirApi.h"
59#include "btcApi.h"
60#include "vos_nvitem.h"
61#include "p2p_Api.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070062
Jeff Johnsone7245742012-09-05 17:12:55 -070063#ifdef FEATURE_OEM_DATA_SUPPORT
64#include "oemDataApi.h"
65#endif
Jeff Johnson295189b2012-06-20 16:38:30 -070066
67#if defined WLAN_FEATURE_VOWIFI
68#include "smeRrmInternal.h"
69#endif
70
71/*--------------------------------------------------------------------------
72 Preprocessor definitions and constants
73 ------------------------------------------------------------------------*/
74
75#define SME_SUMMARY_STATS 1
76#define SME_GLOBAL_CLASSA_STATS 2
77#define SME_GLOBAL_CLASSB_STATS 4
78#define SME_GLOBAL_CLASSC_STATS 8
79#define SME_GLOBAL_CLASSD_STATS 16
80#define SME_PER_STA_STATS 32
81
82#define SME_INVALID_COUNTRY_CODE "XX"
83
Sudhir Sattayappa Kohalli37620692013-08-05 14:02:26 -070084//Macro to disable split scan
85#define SME_DISABLE_SPLIT_SCAN 255
Jeff Johnson295189b2012-06-20 16:38:30 -070086/*--------------------------------------------------------------------------
87 Type declarations
88 ------------------------------------------------------------------------*/
89typedef struct _smeConfigParams
90{
91 tCsrConfigParam csrConfig;
92#if defined WLAN_FEATURE_VOWIFI
93 tRrmConfigParam rrmConfig;
94#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -070095#if defined FEATURE_WLAN_LFR
96 tANI_U8 isFastRoamIniFeatureEnabled;
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -080097 tANI_U8 MAWCEnabled;
Jeff Johnson04dd8a82012-06-29 20:41:40 -070098#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080099#if defined FEATURE_WLAN_ESE
100 tANI_U8 isEseIniFeatureEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -0700101#endif
102#if defined WLAN_FEATURE_P2P_INTERNAL
103 tP2PConfigParam p2pConfig;
104#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800105#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Srinivas Girigowda100eb322013-03-15 16:48:20 -0700106 tANI_U8 isFastTransitionEnabled;
107 tANI_U8 RoamRssiDiff;
Srinivas Girigowdaad34ca92013-10-22 10:54:29 -0700108 tANI_BOOLEAN isWESModeEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -0700109#endif
Gopichand Nakkala86e42662013-06-11 17:44:11 +0530110 tANI_BOOLEAN fScanOffload;
krunal soni5afa96c2013-09-06 22:19:02 -0700111 tANI_U8 isAmsduSupportInAMPDU;
Tushnim Bhattacharyyaed4d0c22014-01-30 11:56:44 -0800112 tANI_U32 fEnableDebugLog;
Rashmi Ramanna68b309c2014-05-20 11:52:22 +0530113 tANI_U32 fDeferIMPSTime;
Jeff Johnson295189b2012-06-20 16:38:30 -0700114} tSmeConfigParams, *tpSmeConfigParams;
115
Sunil Duttc69bccb2014-05-26 21:30:20 +0530116#ifdef WLAN_FEATURE_LINK_LAYER_STATS
117
118/* ---------------------------------------------------------------------------
119 \fn sme_LLStatsSetReq
120 \brief API to set link layer stats request to FW
121 \param hHal - The handle returned by macOpen.
122
123 \Param pStatsReq - a pointer to a caller allocated object of
124 typedef struct tSirLLStatsSetReq, signifying the parameters to link layer
125 stats set.
126
127 \return eHalStatus
128 ---------------------------------------------------------------------------*/
129eHalStatus sme_LLStatsSetReq(tHalHandle hHal, tSirLLStatsSetReq *pStatsReq);
130
131/* ---------------------------------------------------------------------------
132 \fn sme_LLStatsGetReq
133 \brief API to get link layer stats request to FW
134 \param hHal - The handle returned by macOpen.
135
136 \Param pStatsReq - a pointer to a caller allocated object of
137 typedef struct tSirLLStatsGetReq, signifying the parameters to link layer
138 stats get.
139
140 \return eHalStatus
141 ---------------------------------------------------------------------------*/
142eHalStatus sme_LLStatsGetReq(tHalHandle hHal, tSirLLStatsGetReq *pStatsReq);
143
144/* ---------------------------------------------------------------------------
145 \fn sme_LLStatsClearReq
146 \brief API to clear link layer stats request to FW
147 \param hHal - The handle returned by macOpen.
148
149 \Param pStatsReq - a pointer to a caller allocated object of
150 typedef struct tSirLLStatsClearReq, signifying the parameters to link layer
151 stats clear.
152
153 \return eHalStatus
154 ---------------------------------------------------------------------------*/
155eHalStatus sme_LLStatsClearReq(tHalHandle hHal, tSirLLStatsClearReq *pStatsReq);
156
157/* ---------------------------------------------------------------------------
158 \fn sme_SetLinkLayerStatsIndCB
159 \brief API to trigger Link Layer stats result indications from from FW
160 \param hHal - The handle returned by macOpen.
Sunil Duttc69bccb2014-05-26 21:30:20 +0530161 \param callbackRoutine - HDD callback which needs to be invoked after
162 getting get Link Layer Statistics results from FW
Sunil Duttc69bccb2014-05-26 21:30:20 +0530163 \return eHalStatus
164 ---------------------------------------------------------------------------*/
165eHalStatus
166sme_SetLinkLayerStatsIndCB
167(
Dino Mycled3d50022014-07-07 12:58:25 +0530168 tHalHandle hHal,
169 void (*callbackRoutine) (void *callbackCtx, int indType, void *pRsp,
170 tANI_U8 *macAddr)
Sunil Duttc69bccb2014-05-26 21:30:20 +0530171);
172
173
174#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
175
Dino Mycle2c198072014-06-10 10:15:52 +0530176#ifdef WLAN_FEATURE_EXTSCAN
177/* ---------------------------------------------------------------------------
178 \fn sme_GetValidChannelsByBand
179 \brief SME API to fetch all valid channel filtered by band
180 \param hHal
181 \param wifiBand: RF band information
182 \param aValidChannels: Array to store channel info
183 \param len: number of channels
184 \- return eHalStatus
185 -------------------------------------------------------------------------*/
186eHalStatus sme_GetValidChannelsByBand (tHalHandle hHal, tANI_U8 wifiBand,
187 tANI_U32 *aValidChannels, tANI_U8 *pNumChannels);
188
189/* ---------------------------------------------------------------------------
190 \fn sme_EXTScanGetCapabilities
191 \brief SME API to fetch Extented Scan capabilities
192 \param hHal
193 \param pReq: Extented Scan capabilities structure
194 \- return eHalStatus
195 -------------------------------------------------------------------------*/
196eHalStatus sme_EXTScanGetCapabilities (tHalHandle hHal,
197 tSirGetEXTScanCapabilitiesReqParams *pReq);
198
199/* ---------------------------------------------------------------------------
200 \fn sme_EXTScanStart
201 \brief SME API to issue Extented Scan start
202 \param hHal
203 \param pStartCmd: Extented Scan start structure
204 \- return eHalStatus
205 -------------------------------------------------------------------------*/
206eHalStatus sme_EXTScanStart (tHalHandle hHal,
207 tSirEXTScanStartReqParams *pStartCmd);
208
209/* ---------------------------------------------------------------------------
210 \fn sme_EXTScanStop
211 \brief SME API to issue Extented Scan stop
212 \param hHal
213 \param pStopReq: Extented Scan stop structure
214 \- return eHalStatus
215 -------------------------------------------------------------------------*/
216eHalStatus sme_EXTScanStop(tHalHandle hHal, tSirEXTScanStopReqParams *pStopReq);
217
218/* ---------------------------------------------------------------------------
219 \fn sme_SetBssHotlist
220 \brief SME API to set BSSID hotlist
221 \param hHal
222 \param pSetHotListReq: Extented Scan set hotlist structure
223 \- return eHalStatus
224 -------------------------------------------------------------------------*/
225eHalStatus sme_SetBssHotlist (tHalHandle hHal,
226 tSirEXTScanSetBssidHotListReqParams *pSetHotListReq);
227
228/* ---------------------------------------------------------------------------
229 \fn sme_ResetBssHotlist
230 \brief SME API to reset BSSID hotlist
231 \param hHal
232 \param pSetHotListReq: Extented Scan set hotlist structure
233 \- return eHalStatus
234 -------------------------------------------------------------------------*/
235eHalStatus sme_ResetBssHotlist (tHalHandle hHal,
236 tSirEXTScanResetBssidHotlistReqParams *pResetReq);
237
238/* ---------------------------------------------------------------------------
239 \fn sme_SetSignificantChange
240 \brief SME API to set significant change
241 \param hHal
242 \param pSetSignificantChangeReq: Extented Scan set significant
243 change structure
244 \- return eHalStatus
245 -------------------------------------------------------------------------*/
246eHalStatus sme_SetSignificantChange (tHalHandle hHal,
247 tSirEXTScanSetSignificantChangeReqParams* pSetSignificantChangeReq);
248
249/* ---------------------------------------------------------------------------
250 \fn sme_ResetSignificantChange
251 \brief SME API to reset significant change
252 \param hHal
253 \param pResetReq: Extented Scan reset significant change structure
254 \- return eHalStatus
255 -------------------------------------------------------------------------*/
256eHalStatus sme_ResetSignificantChange (tHalHandle hHal,
257 tSirEXTScanResetSignificantChangeReqParams *pResetReq);
258
259/* ---------------------------------------------------------------------------
260 \fn sme_getCachedResults
261 \brief SME API to get cached results
262 \param hHal
263 \param pCachedResultsReq: Extented Scan get cached results structure
264 \- return eHalStatus
265 -------------------------------------------------------------------------*/
266eHalStatus sme_getCachedResults (tHalHandle hHal,
267 tSirEXTScanGetCachedResultsReqParams *pCachedResultsReq);
268
269/* ---------------------------------------------------------------------------
270 \fn sme_EXTScanRegisterCallback
271 \brief SME API to register Extented Scan notification callback
272 \param pEXTScanIndCb
273 \- return void
274 -------------------------------------------------------------------------*/
275eHalStatus sme_EXTScanRegisterCallback (tHalHandle hHal,
276 void (*pEXTScanIndCb)(void *, const tANI_U16, void *),
277 void *);
278
279#endif /* WLAN_FEATURE_EXTSCAN */
280
Madan Mohan Koyyalamudi48101412013-09-11 23:09:37 +0530281typedef enum
282{
283 eSME_ROAM_TRIGGER_NONE = 0,
284 eSME_ROAM_TRIGGER_SCAN = 1,
285 eSME_ROAM_TRIGGER_FAST_ROAM = 2,
286 eSME_ROAM_TRIGGER_MAX
287} tSmeFastRoamTrigger;
Jeff Johnson295189b2012-06-20 16:38:30 -0700288
289/*-------------------------------------------------------------------------
Sushant Kaushike0d2cce2014-04-10 14:36:07 +0530290 Function declarations and documentation.
Jeff Johnson295189b2012-06-20 16:38:30 -0700291 ------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -0700292/*--------------------------------------------------------------------------
293
294 \brief sme_Open() - Initialze all SME modules and put them at idle state
295
296 The function initializes each module inside SME, PMC, CCM, CSR, etc. . Upon
297 successfully return, all modules are at idle state ready to start.
298
299 smeOpen must be called before any other SME APIs can be involved.
300 smeOpen must be called after macOpen.
301
302 \param hHal - The handle returned by macOpen.
303
304 \return eHAL_STATUS_SUCCESS - SME is successfully initialized.
305
306 Other status means SME is failed to be initialized
307 \sa
308
309 --------------------------------------------------------------------------*/
310eHalStatus sme_Open(tHalHandle hHal);
311
312/*--------------------------------------------------------------------------
313
314 \brief sme_Close() - Release all SME modules and their resources.
315
316 The function release each module in SME, PMC, CCM, CSR, etc. . Upon
317 return, all modules are at closed state.
318
319 No SME APIs can be involved after sme_Close except sme_Open.
320 sme_Close must be called before macClose.
321
322 \param hHal - The handle returned by macOpen.
323
324 \return eHAL_STATUS_SUCCESS - SME is successfully close.
325
326 Other status means SME is failed to be closed but caller still cannot
327 call any other SME functions except smeOpen.
328 \sa
329
330 --------------------------------------------------------------------------*/
331eHalStatus sme_Close(tHalHandle hHal);
332
333/*--------------------------------------------------------------------------
334
335 \brief sme_Start() - Put all SME modules at ready state.
336
337 The function starts each module in SME, PMC, CCM, CSR, etc. . Upon
338 successfully return, all modules are ready to run.
339
340 \param hHal - The handle returned by macOpen.
341
342 \return eHAL_STATUS_SUCCESS - SME is ready.
343
344 Other status means SME is failed to start.
345 \sa
346
347 --------------------------------------------------------------------------*/
348eHalStatus sme_Start(tHalHandle hHal);
349
350/*--------------------------------------------------------------------------
351
352 \brief sme_Stop() - Stop all SME modules and put them at idle state
353
354 The function stops each module in SME, PMC, CCM, CSR, etc. . Upon
355 return, all modules are at idle state ready to start.
356
357
358 \param hHal - The handle returned by macOpen.
359
Kiet Lama72a2322013-11-15 11:18:11 +0530360 \param tHalStopType - reason for stopping
Jeff Johnson295189b2012-06-20 16:38:30 -0700361
362 \return eHAL_STATUS_SUCCESS - SME is stopped.
363
364 Other status means SME is failed to stop but caller should still consider
365 SME is stopped.
366 \sa
367
368 --------------------------------------------------------------------------*/
Kiet Lama72a2322013-11-15 11:18:11 +0530369eHalStatus sme_Stop(tHalHandle hHal, tHalStopType stopType);
Jeff Johnson295189b2012-06-20 16:38:30 -0700370
371
372/*--------------------------------------------------------------------------
373
374 \brief sme_OpenSession() - Open a session for scan/roam operation.
375
376 This is a synchronous API.
377
378
379 \param hHal - The handle returned by macOpen.
380 \param callback - A pointer to the function caller specifies for roam/connect status indication
381 \param pContext - The context passed with callback
382 \param pSelfMacAddr - Caller allocated memory filled with self MAC address (6 bytes)
383 \param pbSessionId - pointer to a caller allocated buffer for returned session ID
384
385 \return eHAL_STATUS_SUCCESS - session is opened. sessionId returned.
386
387 Other status means SME is failed to open the session.
388 eHAL_STATUS_RESOURCES - no more session available.
389 \sa
390
391 --------------------------------------------------------------------------*/
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -0700392eHalStatus sme_OpenSession(tHalHandle hHal, csrRoamCompleteCallback callback,
393 void *pContext, tANI_U8 *pSelfMacAddr,
394 tANI_U8 *pbSessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700395
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -0700396/*--------------------------------------------------------------------------
397
398 \brief sme_SetCurrDeviceMode() - Sets the current operating device mode.
399 \param hHal - The handle returned by macOpen.
400 \param currDeviceMode - Current operating device mode.
401 --------------------------------------------------------------------------*/
402
403void sme_SetCurrDeviceMode (tHalHandle hHal, tVOS_CON_MODE currDeviceMode);
Jeff Johnson295189b2012-06-20 16:38:30 -0700404
405/*--------------------------------------------------------------------------
406
407 \brief sme_CloseSession() - Open a session for scan/roam operation.
408
409 This is a synchronous API.
410
411
412 \param hHal - The handle returned by macOpen.
413
414 \param sessionId - A previous opened session's ID.
415
416 \return eHAL_STATUS_SUCCESS - session is closed.
417
418 Other status means SME is failed to open the session.
419 eHAL_STATUS_INVALID_PARAMETER - session is not opened.
420 \sa
421
422 --------------------------------------------------------------------------*/
423eHalStatus sme_CloseSession(tHalHandle hHal, tANI_U8 sessionId,
424 csrRoamSessionCloseCallback callback, void *pContext);
425
426
427
428/*--------------------------------------------------------------------------
429
430 \brief sme_UpdateConfig() - Change configurations for all SME moduels
431
432 The function updates some configuration for modules in SME, CCM, CSR, etc
433 during SMEs close -> open sequence.
434
435 Modules inside SME apply the new configuration at the next transaction.
436
437
438 \param hHal - The handle returned by macOpen.
439 \Param pSmeConfigParams - a pointer to a caller allocated object of
440 typedef struct _smeConfigParams.
441
442 \return eHAL_STATUS_SUCCESS - SME update the config parameters successfully.
443
444 Other status means SME is failed to update the config parameters.
445 \sa
446
447 --------------------------------------------------------------------------*/
448eHalStatus sme_UpdateConfig(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
449
450#ifdef FEATURE_WLAN_SCAN_PNO
451/*--------------------------------------------------------------------------
452
453 \brief sme_UpdateChannelConfig() - Update channel configuration in RIVA.
454
455 It is used at driver start up to inform RIVA of the default channel
456 configuration.
457
458 This is a synchronuous call
459
460 \param hHal - The handle returned by macOpen.
461
462 \return eHAL_STATUS_SUCCESS - SME update the channel config successfully.
463
464 Other status means SME is failed to update the channel config.
465 \sa
466
467 --------------------------------------------------------------------------*/
468eHalStatus sme_UpdateChannelConfig(tHalHandle hHal);
469
470#endif // FEATURE_WLAN_SCAN_PNLO
Jeff Johnson295189b2012-06-20 16:38:30 -0700471/*--------------------------------------------------------------------------
472
473 \brief sme_set11dinfo() - Set the 11d information about valid channels
474 and there power using information from nvRAM
475 This function is called only for AP.
476
477 This is a synchronuous call
478
479 \param hHal - The handle returned by macOpen.
480 \Param pSmeConfigParams - a pointer to a caller allocated object of
481 typedef struct _smeConfigParams.
482
483 \return eHAL_STATUS_SUCCESS - SME update the config parameters successfully.
484
485 Other status means SME is failed to update the config parameters.
486 \sa
487--------------------------------------------------------------------------*/
488
489eHalStatus sme_set11dinfo(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
490
491/*--------------------------------------------------------------------------
492
493 \brief sme_getSoftApDomain() - Get the current regulatory domain of softAp.
494
495 This is a synchronuous call
496
497 \param hHal - The handle returned by HostapdAdapter.
498 \Param v_REGDOMAIN_t - The current Regulatory Domain requested for SoftAp.
499
500 \return eHAL_STATUS_SUCCESS - SME successfully completed the request.
501
502 Other status means, failed to get the current regulatory domain.
503 \sa
504--------------------------------------------------------------------------*/
505
506eHalStatus sme_getSoftApDomain(tHalHandle hHal, v_REGDOMAIN_t *domainIdSoftAp);
507
508eHalStatus sme_setRegInfo(tHalHandle hHal, tANI_U8 *apCntryCode);
509
Jeff Johnson295189b2012-06-20 16:38:30 -0700510
511/* ---------------------------------------------------------------------------
512 \fn sme_ChangeConfigParams
513 \brief The SME API exposed for HDD to provide config params to SME during
514 SMEs stop -> start sequence.
515
516 If HDD changed the domain that will cause a reset. This function will
517 provide the new set of 11d information for the new domain. Currrently this
518 API provides info regarding 11d only at reset but we can extend this for
519 other params (PMC, QoS) which needs to be initialized again at reset.
520
521 This is a synchronuous call
522
523 \param hHal - The handle returned by macOpen.
524
525 \Param
526 pUpdateConfigParam - a pointer to a structure (tCsrUpdateConfigParam) that
527 currently provides 11d related information like Country code,
528 Regulatory domain, valid channel list, Tx power per channel, a
529 list with active/passive scan allowed per valid channel.
530
531 \return eHalStatus
532 ---------------------------------------------------------------------------*/
533eHalStatus sme_ChangeConfigParams(tHalHandle hHal,
534 tCsrUpdateConfigParam *pUpdateConfigParam);
535
536/*--------------------------------------------------------------------------
537
538 \brief sme_HDDReadyInd() - SME sends eWNI_SME_SYS_READY_IND to PE to inform that the NIC
539 is ready tio run.
540
541 The function is called by HDD at the end of initialization stage so PE/HAL can enable the NIC
542 to running state.
543
544
545 \param hHal - The handle returned by macOpen.
546
547 \return eHAL_STATUS_SUCCESS - eWNI_SME_SYS_READY_IND is sent to PE successfully.
548
549 Other status means SME failed to send the message to PE.
550 \sa
551
552 --------------------------------------------------------------------------*/
553eHalStatus sme_HDDReadyInd(tHalHandle hHal);
554
555
556/*--------------------------------------------------------------------------
557
558 \brief sme_ProcessMsg() - The main message processor for SME.
559
560 The function is called by a message dispatcher when to process a message
561 targeted for SME.
562
563
564 \param hHal - The handle returned by macOpen.
565 \param pMsg - A pointer to a caller allocated object of tSirMsgQ.
566
567 \return eHAL_STATUS_SUCCESS - SME successfully process the message.
568
569 Other status means SME failed to process the message.
570 \sa
571
572 --------------------------------------------------------------------------*/
573eHalStatus sme_ProcessMsg(tHalHandle hHal, vos_msg_t* pMsg);
574
575v_VOID_t sme_FreeMsg( tHalHandle hHal, vos_msg_t* pMsg );
576
577/* ---------------------------------------------------------------------------
578 \fn sme_ScanRequest
579 \brief a wrapper function to Request a 11d or full scan from CSR.
580 \param pScanRequestID - pointer to an object to get back the request ID
581 \param callback - a callback function that scan calls upon finish, will not
582 be called if csrScanRequest returns error
583 \param pContext - a pointer passed in for the callback
584 \return eHalStatus
585 ---------------------------------------------------------------------------*/
586eHalStatus sme_ScanRequest(tHalHandle hHal, tANI_U8 sessionId, tCsrScanRequest *,
587 tANI_U32 *pScanRequestID,
588 csrScanCompleteCallback callback, void *pContext);
589
590
591/* ---------------------------------------------------------------------------
592 \fn sme_ScanSetBGScanparams
593 \brief a wrapper function to request CSR to set BG scan params in PE
594 \param pScanReq - BG scan request structure
595 \return eHalStatus
596 ---------------------------------------------------------------------------*/
597eHalStatus sme_ScanSetBGScanparams(tHalHandle hHal, tANI_U8 sessionId, tCsrBGScanRequest *pScanReq);
598
599
600/* ---------------------------------------------------------------------------
601 \fn sme_ScanGetResult
602 \brief a wrapper function to request scan results from CSR.
603 \param pFilter - If pFilter is NULL, all cached results are returned
604 \param phResult - an object for the result.
605 \return eHalStatus
606 ---------------------------------------------------------------------------*/
607eHalStatus sme_ScanGetResult(tHalHandle hHal, tANI_U8 sessionId, tCsrScanResultFilter *pFilter,
608 tScanResultHandle *phResult);
609
610
611/* ---------------------------------------------------------------------------
612 \fn sme_ScanFlushResult
613 \brief a wrapper function to request CSR to clear scan results.
614 \return eHalStatus
615 ---------------------------------------------------------------------------*/
616eHalStatus sme_ScanFlushResult(tHalHandle hHal, tANI_U8 sessionId);
Srinivas, Dasari42bf7702014-02-07 11:29:53 +0530617
618/*
619 * ---------------------------------------------------------------------------
620 * \fn sme_FilterScanResults
621 * \brief a wrapper function to request CSR to filter the scan results based
622 * on valid chennel list.
623 * \return eHalStatus
624 *---------------------------------------------------------------------------
625 */
626eHalStatus sme_FilterScanResults(tHalHandle hHal, tANI_U8 sessionId);
627
Madan Mohan Koyyalamudia3fcf142012-10-18 15:01:20 -0700628eHalStatus sme_ScanFlushP2PResult(tHalHandle hHal, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700629
630/* ---------------------------------------------------------------------------
631 \fn sme_ScanResultGetFirst
632 \brief a wrapper function to request CSR to returns the first element of
633 scan result.
634 \param hScanResult - returned from csrScanGetResult
635 \return tCsrScanResultInfo * - NULL if no result
636 ---------------------------------------------------------------------------*/
637tCsrScanResultInfo *sme_ScanResultGetFirst(tHalHandle,
638 tScanResultHandle hScanResult);
639
640/* ---------------------------------------------------------------------------
641 \fn sme_ScanResultGetNext
642 \brief a wrapper function to request CSR to returns the next element of
643 scan result. It can be called without calling csrScanResultGetFirst
644 first
645 \param hScanResult - returned from csrScanGetResult
646 \return Null if no result or reach the end
647 ---------------------------------------------------------------------------*/
648tCsrScanResultInfo *sme_ScanResultGetNext(tHalHandle,
649 tScanResultHandle hScanResult);
650
651/* ---------------------------------------------------------------------------
652 \fn sme_ScanResultPurge
653 \brief a wrapper function to request CSR to remove all items(tCsrScanResult)
654 in the list and free memory for each item
655 \param hScanResult - returned from csrScanGetResult. hScanResult is
656 considered gone by
657 calling this function and even before this function reutrns.
658 \return eHalStatus
659 ---------------------------------------------------------------------------*/
660eHalStatus sme_ScanResultPurge(tHalHandle hHal, tScanResultHandle hScanResult);
661
662/* ---------------------------------------------------------------------------
663 \fn sme_ScanGetPMKIDCandidateList
664 \brief a wrapper function to return the PMKID candidate list
665 \param pPmkidList - caller allocated buffer point to an array of
666 tPmkidCandidateInfo
667 \param pNumItems - pointer to a variable that has the number of
668 tPmkidCandidateInfo allocated when retruning, this is
669 either the number needed or number of items put into
670 pPmkidList
671 \return eHalStatus - when fail, it usually means the buffer allocated is not
672 big enough and pNumItems
673 has the number of tPmkidCandidateInfo.
674 \Note: pNumItems is a number of tPmkidCandidateInfo,
675 not sizeof(tPmkidCandidateInfo) * something
676 ---------------------------------------------------------------------------*/
677eHalStatus sme_ScanGetPMKIDCandidateList(tHalHandle hHal, tANI_U8 sessionId,
678 tPmkidCandidateInfo *pPmkidList,
679 tANI_U32 *pNumItems );
680
681
682/*----------------------------------------------------------------------------
683 \fn sme_RoamRegisterLinkQualityIndCallback
684
685 \brief
686 a wrapper function to allow HDD to register a callback handler with CSR for
687 link quality indications.
688
689 Only one callback may be registered at any time.
690 In order to deregister the callback, a NULL cback may be provided.
691
692 Registration happens in the task context of the caller.
693
694 \param callback - Call back being registered
695 \param pContext - user data
696
697 DEPENDENCIES: After CSR open
698
699 \return eHalStatus
700-----------------------------------------------------------------------------*/
701eHalStatus sme_RoamRegisterLinkQualityIndCallback(tHalHandle hHal, tANI_U8 sessionId,
702 csrRoamLinkQualityIndCallback callback,
703 void *pContext);
704
705
706/* ---------------------------------------------------------------------------
707 \fn sme_RoamConnect
708 \brief a wrapper function to request CSR to inititiate an association
709 \param sessionId - the sessionId returned by sme_OpenSession.
710 \param pProfile - can be NULL to join to any open ones
711 \param pRoamId - to get back the request ID
712 \return eHalStatus
713 ---------------------------------------------------------------------------*/
714eHalStatus sme_RoamConnect(tHalHandle hHal, tANI_U8 sessionId, tCsrRoamProfile *pProfile,
715 tANI_U32 *pRoamId);
716
717/* ---------------------------------------------------------------------------
718 \fn sme_RoamReassoc
719 \brief a wrapper function to request CSR to inititiate a re-association
720 \param pProfile - can be NULL to join the currently connected AP. In that
721 case modProfileFields should carry the modified field(s) which could trigger
722 reassoc
723 \param modProfileFields - fields which are part of tCsrRoamConnectedProfile
724 that might need modification dynamically once STA is up & running and this
725 could trigger a reassoc
726 \param pRoamId - to get back the request ID
727 \return eHalStatus
728 -------------------------------------------------------------------------------*/
729eHalStatus sme_RoamReassoc(tHalHandle hHal, tANI_U8 sessionId, tCsrRoamProfile *pProfile,
730 tCsrRoamModifyProfileFields modProfileFields,
Madan Mohan Koyyalamudiea22cdc2012-10-18 21:02:23 -0700731 tANI_U32 *pRoamId, v_BOOL_t fForce);
Jeff Johnson295189b2012-06-20 16:38:30 -0700732
733/* ---------------------------------------------------------------------------
734 \fn sme_RoamConnectToLastProfile
735 \brief a wrapper function to request CSR to disconnect and reconnect with
736 the same profile
737 \return eHalStatus. It returns fail if currently connected
738 ---------------------------------------------------------------------------*/
739eHalStatus sme_RoamConnectToLastProfile(tHalHandle hHal, tANI_U8 sessionId);
740
741/* ---------------------------------------------------------------------------
742 \fn sme_RoamDisconnect
743 \brief a wrapper function to request CSR to disconnect from a network
744 \param reason -- To indicate the reason for disconnecting. Currently, only
745 eCSR_DISCONNECT_REASON_MIC_ERROR is meanful.
746 \return eHalStatus
747 ---------------------------------------------------------------------------*/
748eHalStatus sme_RoamDisconnect(tHalHandle hHal, tANI_U8 sessionId, eCsrRoamDisconnectReason reason);
749
Jeff Johnson295189b2012-06-20 16:38:30 -0700750/* ---------------------------------------------------------------------------
751 \fn sme_RoamStopBss
752 \brief a wrapper function to request CSR to stop bss
753 \param sessionId - sessionId of SoftAP
754 \return eHalStatus
755 ---------------------------------------------------------------------------*/
756eHalStatus sme_RoamStopBss(tHalHandle hHal, tANI_U8 sessionId);
757
758/* ---------------------------------------------------------------------------
759 \fn sme_RoamGetAssociatedStas
760 \brief To probe the list of associated stations from various modules of CORE stack.
761 \This is an asynchronous API.
762 \param sessionId - sessionId of SoftAP
763 \param modId - Module from whom list of associtated stations is to be probed.
764 If an invalid module is passed then by default VOS_MODULE_ID_PE will be probed
765 \param pUsrContext - Opaque HDD context
766 \param pfnSapEventCallback - Sap event callback in HDD
767 \param pAssocBuf - Caller allocated memory to be filled with associatd stations info
768 \return eHalStatus
769 -------------------------------------------------------------------------------*/
770eHalStatus sme_RoamGetAssociatedStas(tHalHandle hHal, tANI_U8 sessionId,
771 VOS_MODULE_ID modId, void *pUsrContext,
772 void *pfnSapEventCallback, tANI_U8 *pAssocStasBuf);
773
774/* ---------------------------------------------------------------------------
775 \fn sme_RoamDisconnectSta
776 \brief To disassociate a station. This is an asynchronous API.
777 \param pPeerMacAddr - Caller allocated memory filled with peer MAC address (6 bytes)
778 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
779 -------------------------------------------------------------------------------*/
780eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId, tANI_U8 *pPeerMacAddr);
781
782/* ---------------------------------------------------------------------------
783 \fn sme_RoamDeauthSta
784 \brief To disassociate a station. This is an asynchronous API.
785 \param hHal - Global structure
786 \param sessionId - sessionId of SoftAP
787 \param pPeerMacAddr - Caller allocated memory filled with peer MAC address (6 bytes)
788 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
789 -------------------------------------------------------------------------------*/
790eHalStatus sme_RoamDeauthSta(tHalHandle hHal, tANI_U8 sessionId,
791 tANI_U8 *pPeerMacAddr);
792
793/* ---------------------------------------------------------------------------
794 \fn sme_RoamTKIPCounterMeasures
795 \brief To start or stop TKIP counter measures. This is an asynchronous API.
796 \param sessionId - sessionId of SoftAP
797 \param bEnable - Flag to start/stop TKIP countermeasures
798 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
799 -------------------------------------------------------------------------------*/
800eHalStatus sme_RoamTKIPCounterMeasures(tHalHandle hHal, tANI_U8 sessionId, tANI_BOOLEAN bEnable);
801
802/* ---------------------------------------------------------------------------
803 \fn sme_RoamGetWpsSessionOverlap
804 \brief To get the WPS PBC session overlap information.
805 \This is an asynchronous API.
806 \param sessionId - sessionId of SoftAP
807 \param pUsrContext - Opaque HDD context
808 \param pfnSapEventCallback - Sap event callback in HDD
809 \return eHalStatus
810 -------------------------------------------------------------------------------*/
811eHalStatus sme_RoamGetWpsSessionOverlap(tHalHandle hHal, tANI_U8 sessionId,
812 void *pUsrContext, void *pfnSapEventCallback,
813 v_MACADDR_t pRemoveMac);
Jeff Johnson295189b2012-06-20 16:38:30 -0700814
815/* ---------------------------------------------------------------------------
816 \fn sme_RoamGetConnectState
817 \brief a wrapper function to request CSR to return the current connect state
818 of Roaming
819 \return eHalStatus
820 ---------------------------------------------------------------------------*/
821eHalStatus sme_RoamGetConnectState(tHalHandle hHal, tANI_U8 sessionId, eCsrConnectState *pState);
822
823/* ---------------------------------------------------------------------------
824 \fn sme_RoamGetConnectProfile
825 \brief a wrapper function to request CSR to return the current connect
826 profile. Caller must call csrRoamFreeConnectProfile after it is done
827 and before reuse for another csrRoamGetConnectProfile call.
828 \param pProfile - pointer to a caller allocated structure
829 tCsrRoamConnectedProfile
830 \return eHalStatus. Failure if not connected
831 ---------------------------------------------------------------------------*/
832eHalStatus sme_RoamGetConnectProfile(tHalHandle hHal, tANI_U8 sessionId,
833 tCsrRoamConnectedProfile *pProfile);
834
835/* ---------------------------------------------------------------------------
836 \fn sme_RoamFreeConnectProfile
837 \brief a wrapper function to request CSR to free and reinitialize the
838 profile returned previously by csrRoamGetConnectProfile.
839 \param pProfile - pointer to a caller allocated structure
840 tCsrRoamConnectedProfile
841 \return eHalStatus.
842 ---------------------------------------------------------------------------*/
843eHalStatus sme_RoamFreeConnectProfile(tHalHandle hHal,
844 tCsrRoamConnectedProfile *pProfile);
845
846/* ---------------------------------------------------------------------------
847 \fn sme_RoamSetPMKIDCache
848 \brief a wrapper function to request CSR to return the PMKID candidate list
849 \param pPMKIDCache - caller allocated buffer point to an array of
850 tPmkidCacheInfo
851 \param numItems - a variable that has the number of tPmkidCacheInfo
852 allocated when retruning, this is either the number needed
853 or number of items put into pPMKIDCache
854 \return eHalStatus - when fail, it usually means the buffer allocated is not
855 big enough and pNumItems has the number of
856 tPmkidCacheInfo.
857 \Note: pNumItems is a number of tPmkidCacheInfo,
858 not sizeof(tPmkidCacheInfo) * something
859 ---------------------------------------------------------------------------*/
860eHalStatus sme_RoamSetPMKIDCache( tHalHandle hHal, tANI_U8 sessionId, tPmkidCacheInfo *pPMKIDCache,
861 tANI_U32 numItems );
862
863/* ---------------------------------------------------------------------------
864 \fn sme_RoamGetSecurityReqIE
865 \brief a wrapper function to request CSR to return the WPA or RSN or WAPI IE CSR
866 passes to PE to JOIN request or START_BSS request
867 This is a synchronuous call.
868 \param sessionId - returned by sme_OpenSession.
869 \param pLen - caller allocated memory that has the length of pBuf as input.
870 Upon returned, *pLen has the needed or IE length in pBuf.
871 \param pBuf - Caller allocated memory that contain the IE field, if any,
872 upon return
873 \param secType - Specifies whether looking for WPA/WPA2/WAPI IE
874 \return eHalStatus - when fail, it usually means the buffer allocated is not
875 big enough
876 ---------------------------------------------------------------------------*/
877eHalStatus sme_RoamGetSecurityReqIE(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pLen,
878 tANI_U8 *pBuf, eCsrSecurityType secType);
879
880/* ---------------------------------------------------------------------------
881 \fn sme_RoamGetSecurityRspIE
882 \brief a wrapper function to request CSR to return the WPA or RSN or WAPI IE from
883 the beacon or probe rsp if connected
884 \param sessionId - returned by sme_OpenSession.
885 \param pLen - caller allocated memory that has the length of pBuf as input.
886 Upon returned, *pLen has the needed or IE length in pBuf.
887 \param pBuf - Caller allocated memory that contain the IE field, if any,
888 upon return
889 \param secType - Specifies whether looking for WPA/WPA2/WAPI IE
890 \return eHalStatus - when fail, it usually means the buffer allocated is not
891 big enough
892 ---------------------------------------------------------------------------*/
893eHalStatus sme_RoamGetSecurityRspIE(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pLen,
894 tANI_U8 *pBuf, eCsrSecurityType secType);
895
896
897/* ---------------------------------------------------------------------------
898 \fn sme_RoamGetNumPMKIDCache
899 \brief a wrapper function to request CSR to return number of PMKID cache
900 entries
901 \return tANI_U32 - the number of PMKID cache entries
902 ---------------------------------------------------------------------------*/
903tANI_U32 sme_RoamGetNumPMKIDCache(tHalHandle hHal, tANI_U8 sessionId);
904
905/* ---------------------------------------------------------------------------
906 \fn sme_RoamGetPMKIDCache
907 \brief a wrapper function to request CSR to return PMKID cache from CSR
908 \param pNum - caller allocated memory that has the space of the number of
909 pBuf tPmkidCacheInfo as input. Upon returned, *pNum has the
910 needed or actually number in tPmkidCacheInfo.
911 \param pPmkidCache - Caller allocated memory that contains PMKID cache, if
912 any, upon return
913 \return eHalStatus - when fail, it usually means the buffer allocated is not
914 big enough
915 ---------------------------------------------------------------------------*/
916eHalStatus sme_RoamGetPMKIDCache(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pNum,
917 tPmkidCacheInfo *pPmkidCache);
918
919/* ---------------------------------------------------------------------------
920 \fn sme_GetConfigParam
921 \brief a wrapper function that HDD calls to get the global settings
922 currently maintained by CSR.
923 \param pParam - caller allocated memory
924 \return eHalStatus
925 ---------------------------------------------------------------------------*/
926eHalStatus sme_GetConfigParam(tHalHandle hHal, tSmeConfigParams *pParam);
927
928/* ---------------------------------------------------------------------------
929 \fn sme_GetStatistics
930 \brief a wrapper function that client calls to register a callback to get
931 different PHY level statistics from CSR.
932
933 \param requesterId - different client requesting for statistics, HDD, UMA/GAN etc
934 \param statsMask - The different category/categories of stats requester is looking for
935 The order in which you set the bits in the statsMask for requesting
936 different type of stats is:
937
938 eCsrSummaryStats = bit 0
939 eCsrGlobalClassAStats = bit 1
940 eCsrGlobalClassBStats = bit 2
941 eCsrGlobalClassCStats = bit 3
942 eCsrGlobalClassDStats = bit 4
943 eCsrPerStaStats = bit 5
944
945 \param callback - SME sends back the requested stats using the callback
946 \param periodicity - If requester needs periodic update, 0 means it's an one
947 time request
948 \param cache - If requester is happy with cached stats
949 \param staId - The station ID for which the stats is requested for
950 \param pContext - user context to be passed back along with the callback
951 \return eHalStatus
952 ---------------------------------------------------------------------------*/
953eHalStatus sme_GetStatistics(tHalHandle hHal, eCsrStatsRequesterType requesterId,
954 tANI_U32 statsMask,
955 tCsrStatsCallback callback,
956 tANI_U32 periodicity, tANI_BOOLEAN cache,
957 tANI_U8 staId, void *pContext);
958
Madan Mohan Koyyalamudi8af9b402013-07-11 14:59:10 +0530959/* ---------------------------------------------------------------------------
960 \fn smeGetTLSTAState
961 \helper function to get teh TL STA State whenever the function is called.
962
963 \param staId - The staID to be passed to the TL
964 to get the relevant TL STA State
965 \return the state as tANI_U16
966 ---------------------------------------------------------------------------*/
967tANI_U16 smeGetTLSTAState(tHalHandle hHal, tANI_U8 staId);
968
Jeff Johnson295189b2012-06-20 16:38:30 -0700969eHalStatus sme_GetRssi(tHalHandle hHal,
970 tCsrRssiCallback callback,
971 tANI_U8 staId, tCsrBssid bssId, void *pContext, void* pVosContext);
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +0530972
973/* ---------------------------------------------------------------------------
974 \fn sme_GetSnr
975 \brief a wrapper function that client calls to register a callback to get
976 SNR from FW
977
978 \param callback - SME sends back the requested stats using the callback
979 \param staId - The station ID for which the stats is requested for
980 \param bssid - The bssid of the connected session
981 \param pContext - user context to be passed back along with the callback
982 ---------------------------------------------------------------------------*/
983eHalStatus sme_GetSnr(tHalHandle hHal,
984 tCsrSnrCallback callback,
985 tANI_U8 staId, tCsrBssid bssId,
986 void *pContext);
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800987#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -0800988eHalStatus sme_GetRoamRssi(tHalHandle hHal,
989 tCsrRssiCallback callback,
990 tANI_U8 staId,
991 tCsrBssid bssId,
992 void *pContext,
993 void* pVosContext);
994#endif
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700995
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800996#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700997/* ---------------------------------------------------------------------------
998 \fn sme_GetTsmStats
999 \brief a wrapper function that client calls to register a callback to get TSM Stats
1000
1001 \param callback - SME sends back the requested stats using the callback
1002 \param staId - The station ID for which the stats is requested for
1003 \param pContext - user context to be passed back along with the callback
1004 \param pVosContext - vos context
1005 \return eHalStatus
1006 ---------------------------------------------------------------------------*/
1007eHalStatus sme_GetTsmStats(tHalHandle hHal,
1008 tCsrTsmStatsCallback callback,
1009 tANI_U8 staId, tCsrBssid bssId,
1010 void *pContext, void* pVosContext, tANI_U8 tid);
1011
1012/* ---------------------------------------------------------------------------
1013 \fn sme_SetCCKMIe
1014 \brief function to store the CCKM IE passed from supplicant and use it while packing
1015 reassociation request
1016 \param hHal - HAL handle for device
1017 \param pCckmIe - pointer to CCKM IE data
1018 \param pCckmIeLen - length of the CCKM IE
1019 \- return Success or failure
1020 -------------------------------------------------------------------------*/
1021eHalStatus sme_SetCCKMIe(tHalHandle hHal, tANI_U8 sessionId, tANI_U8 *pCckmIe, tANI_U8 cckmIeLen);
1022
1023
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001024/* ---------------------------------------------------------------------------
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001025 \fn sme_SetEseBeaconRequest
1026 \brief function to set ESE beacon request parameters
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001027 \param hHal - HAL handle for device
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001028 \param pESEBcnReq - pointer to ESE beacon request
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001029 \- return Success or failure
1030 -------------------------------------------------------------------------*/
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001031eHalStatus sme_SetEseBeaconRequest(tHalHandle hHal, const tANI_U8 sessionId,
1032 const tCsrEseBeaconReq* pEseBcnReq);
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001033
1034
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001035#endif /*FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -07001036/* ---------------------------------------------------------------------------
1037 \fn sme_CfgSetInt
1038 \brief a wrapper function that HDD calls to set parameters in CFG.
1039 \param cfgId - Configuration Parameter ID (type) for STA.
1040 \param ccmValue - The information related to Configuration Parameter ID
1041 which needs to be saved in CFG
1042 \param callback - To be registered by CSR with CCM. Once the CFG done with
1043 saving the information in the database, it notifies CCM &
1044 then the callback will be invoked to notify.
1045 \param toBeSaved - To save the request for future reference
1046 \return eHalStatus
1047 ---------------------------------------------------------------------------*/
1048eHalStatus sme_CfgSetInt(tHalHandle hHal, tANI_U32 cfgId, tANI_U32 ccmValue,
1049 tCcmCfgSetCallback callback, eAniBoolean toBeSaved) ;
1050
1051/* ---------------------------------------------------------------------------
1052 \fn sme_CfgSetStr
1053 \brief a wrapper function that HDD calls to set parameters in CFG.
1054 \param cfgId - Configuration Parameter ID (type) for STA.
1055 \param pStr - Pointer to the byte array which carries the information needs
1056 to be saved in CFG
1057 \param length - Length of the data to be saved
1058 \param callback - To be registered by CSR with CCM. Once the CFG done with
1059 saving the information in the database, it notifies CCM &
1060 then the callback will be invoked to notify.
1061 \param toBeSaved - To save the request for future reference
1062 \return eHalStatus
1063 ---------------------------------------------------------------------------*/
1064eHalStatus sme_CfgSetStr(tHalHandle hHal, tANI_U32 cfgId, tANI_U8 *pStr,
1065 tANI_U32 length, tCcmCfgSetCallback callback,
1066 eAniBoolean toBeSaved) ;
Sandeep Puligillaa3e76952014-06-23 15:53:11 +05301067/* ---------------------------------------------------------------------------
1068 \fn sme_GetModifyProfileFields
1069 \brief HDD or SME - QOS calls this function to get the current values of
1070 connected profile fields, changing which can cause reassoc.
1071 This function must be called after CFG is downloaded and STA is in connected
1072 state. Also, make sure to call this function to get the current profile
1073 fields before calling the reassoc. So that pModifyProfileFields will have
1074 all the latest values plus the one(s) has been updated as part of reassoc
1075 request.
1076 \param pModifyProfileFields - pointer to the connected profile fields
1077 changing which can cause reassoc
Jeff Johnson295189b2012-06-20 16:38:30 -07001078
Sandeep Puligillaa3e76952014-06-23 15:53:11 +05301079 \return eHalStatus
1080 -------------------------------------------------------------------------------*/
1081eHalStatus sme_GetModifyProfileFields(tHalHandle hHal, tANI_U8 sessionId,
1082 tCsrRoamModifyProfileFields * pModifyProfileFields);
Sandeep Puligilla332ea912014-02-04 00:16:24 +05301083/* ---------------------------------------------------------------------------
1084 \fn sme_HT40StopOBSSScan
1085 \brief HDD or SME - Command to stop the OBSS scan
1086 THis is implemented only for debugging purpose.
1087 As per spec while operating in 2.4GHz OBSS scan shouldnt be stopped.
1088 \param sessionId - sessionId
1089 changing which can cause reassoc
1090
1091 \return eHalStatus
1092 -------------------------------------------------------------------------------*/
1093eHalStatus sme_HT40StopOBSSScan(tHalHandle hHal, tANI_U8 sessionId );
Jeff Johnson295189b2012-06-20 16:38:30 -07001094
1095/*--------------------------------------------------------------------------
1096 \fn sme_SetConfigPowerSave
1097 \brief Wrapper fn to change power save configuration in SME (PMC) module.
1098 For BMPS related configuration, this function also updates the CFG
1099 and sends a message to FW to pick up the new values. Note: Calling
1100 this function only updates the configuration and does not enable
1101 the specified power save mode.
1102 \param hHal - The handle returned by macOpen.
1103 \param psMode - Power Saving mode being modified
1104 \param pConfigParams - a pointer to a caller allocated object of type
1105 tPmcSmpsConfigParams or tPmcBmpsConfigParams or tPmcImpsConfigParams
1106 \return eHalStatus
1107 --------------------------------------------------------------------------*/
1108eHalStatus sme_SetConfigPowerSave(tHalHandle hHal, tPmcPowerSavingMode psMode,
1109 void *pConfigParams);
1110
1111/*--------------------------------------------------------------------------
1112 \fn sme_GetConfigPowerSave
1113 \brief Wrapper fn to retireve power save configuration in SME (PMC) module
1114 \param hHal - The handle returned by macOpen.
1115 \param psMode - Power Saving mode
1116 \param pConfigParams - a pointer to a caller allocated object of type
1117 tPmcSmpsConfigParams or tPmcBmpsConfigParams or tPmcImpsConfigParams
1118 \return eHalStatus
1119 --------------------------------------------------------------------------*/
1120eHalStatus sme_GetConfigPowerSave(tHalHandle hHal, tPmcPowerSavingMode psMode,
1121 void *pConfigParams);
1122
1123/* ---------------------------------------------------------------------------
1124 \fn sme_SignalPowerEvent
1125 \brief Signals to PMC that a power event has occurred. Used for putting
1126 the chip into deep sleep mode.
1127 \param hHal - The handle returned by macOpen.
1128 \param event - the event that has occurred
1129 \return eHalStatus
1130 ---------------------------------------------------------------------------*/
1131extern eHalStatus sme_SignalPowerEvent (
1132 tHalHandle hHal,
1133 tPmcPowerEvent event);
1134
1135/* ---------------------------------------------------------------------------
1136 \fn sme_EnablePowerSave
1137 \brief Enables one of the power saving modes. This API does not cause a
1138 device state change. This is purely a configuration API.
1139 \param hHal - The handle returned by macOpen.
1140 \param psMode - The power saving mode to enable.
1141 \return eHalStatus
1142 ---------------------------------------------------------------------------*/
1143extern eHalStatus sme_EnablePowerSave (
1144 tHalHandle hHal,
1145 tPmcPowerSavingMode psMode);
1146
1147/* ---------------------------------------------------------------------------
1148 \fn sme_DisablePowerSave
1149 \brief Disables one of the power saving modes.Disabling does not imply
1150 that device will be brought out of the current PS mode. This is
1151 purely a configuration API.
1152 \param hHal - The handle returned by macOpen.
1153 \param psMode - The power saving mode to disable.
1154 \return eHalStatus
1155 ---------------------------------------------------------------------------*/
1156extern eHalStatus sme_DisablePowerSave (
1157 tHalHandle hHal,
1158 tPmcPowerSavingMode psMode);
1159
Madan Mohan Koyyalamudi69b34182013-01-16 08:51:40 +05301160 /* ---------------------------------------------------------------------------
1161 \fn sme_SetHostPowerSave
1162 \brief The BMPS logic is controlled by the User level Apps
1163 \param hHal - The handle returned by macOpen.
1164 \param psMode - The power saving mode to enable.
1165 \return eHalStatus
1166 ---------------------------------------------------------------------------*/
1167extern eHalStatus sme_SetHostPowerSave (
1168 tHalHandle hHal,
1169 v_BOOL_t psMode);
1170
Jeff Johnson295189b2012-06-20 16:38:30 -07001171/* ---------------------------------------------------------------------------
1172 \fn sme_StartAutoBmpsTimer
1173 \brief Starts a timer that periodically polls all the registered
1174 module for entry into Bmps mode. This timer is started only if BMPS is
1175 enabled and whenever the device is in full power.
1176 \param hHal - The handle returned by macOpen.
1177 \return eHalStatus
1178 ---------------------------------------------------------------------------*/
1179extern eHalStatus sme_StartAutoBmpsTimer ( tHalHandle hHal);
1180
1181/* ---------------------------------------------------------------------------
1182 \fn sme_StopAutoBmpsTimer
1183 \brief Stops the Auto BMPS Timer that was started using sme_startAutoBmpsTimer
1184 Stopping the timer does not cause a device state change. Only the timer
1185 is stopped. If "Full Power" is desired, use the sme_RequestFullPower API
1186 \param hHal - The handle returned by macOpen.
1187 \return eHalStatus
1188 ---------------------------------------------------------------------------*/
1189extern eHalStatus sme_StopAutoBmpsTimer ( tHalHandle hHal);
1190
1191/* ---------------------------------------------------------------------------
1192 \fn sme_QueryPowerState
1193 \brief Returns the current power state of the device.
1194 \param hHal - The handle returned by macOpen.
1195 \param pPowerState - pointer to location to return power state
1196 \param pSwWlanSwitchState - ptr to location to return SW WLAN Switch state
1197 \return eHalStatus
1198 ---------------------------------------------------------------------------*/
1199extern eHalStatus sme_QueryPowerState (
1200 tHalHandle hHal,
1201 tPmcPowerState *pPowerState,
1202 tPmcSwitchState *pSwWlanSwitchState);
1203
1204/* ---------------------------------------------------------------------------
1205 \fn sme_IsPowerSaveEnabled
1206 \brief Checks if the device is able to enter a particular power save mode
1207 This does not imply that the device is in a particular PS mode
1208 \param hHal - The handle returned by macOpen.
1209 \param psMode - the power saving mode
1210 \return eHalStatus
1211 ---------------------------------------------------------------------------*/
1212extern tANI_BOOLEAN sme_IsPowerSaveEnabled(
1213 tHalHandle hHal,
1214 tPmcPowerSavingMode psMode);
1215
1216/* ---------------------------------------------------------------------------
1217 \fn sme_RequestFullPower
1218 \brief Request that the device be brought to full power state.
1219 Note 1: If "fullPowerReason" specificied in this API is set to
1220 eSME_FULL_PWR_NEEDED_BY_HDD, PMC will clear any "buffered wowl" requests
1221 and also clear any "buffered BMPS requests by HDD". Assumption is that since
1222 HDD is requesting full power, we need to undo any previous HDD requests for
1223 BMPS (using sme_RequestBmps) or WoWL (using sme_EnterWoWL). If the reason is
1224 specified anything other than above, the buffered requests for BMPS and WoWL
1225 will not be cleared.
1226 Note 2: Requesting full power (no matter what the fullPowerReason is) doesn't
1227 disable the "auto bmps timer" (if it is enabled) or clear any "buffered uapsd
1228 request".
1229 Note 3: When the device finally enters Full Power PMC will start a timer
1230 if any of the following holds true:
1231 - Auto BMPS mode is enabled
1232 - Uapsd request is pending
1233 - HDD's request for BMPS is pending
1234 - HDD's request for WoWL is pending
1235 On timer expiry PMC will attempt to put the device in BMPS mode if following
1236 (in addition to those listed above) holds true:
1237 - Polling of all modules through the Power Save Check routine passes
1238 - STA is associated to an access point
1239 \param hHal - The handle returned by macOpen.
1240 \param - callbackRoutine Callback routine invoked in case of success/failure
1241 \param - callbackContext - Cookie to be passed back during callback
1242 \param - fullPowerReason - Reason why this API is being invoked. SME needs to
1243 distinguish between BAP and HDD requests
1244 \return eHalStatus - status
1245 eHAL_STATUS_SUCCESS - device brought to full power state
1246 eHAL_STATUS_FAILURE - device cannot be brought to full power state
1247 eHAL_STATUS_PMC_PENDING - device is being brought to full power state,
1248 ---------------------------------------------------------------------------*/
1249extern eHalStatus sme_RequestFullPower (
1250 tHalHandle hHal,
1251 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1252 void *callbackContext,
1253 tRequestFullPowerReason fullPowerReason);
1254
1255/* ---------------------------------------------------------------------------
1256 \fn sme_RequestBmps
1257 \brief Request that the device be put in BMPS state. Request will be
1258 accepted only if BMPS mode is enabled and power save check routine
1259 passes. Only HDD should invoke this API.
1260 \param hHal - The handle returned by macOpen.
1261 \param - callbackRoutine Callback routine invoked in case of success/failure
1262 \param - callbackContext - Cookie to be passed back during callback
1263 \return eHalStatus
1264 eHAL_STATUS_SUCCESS - device is in BMPS state
1265 eHAL_STATUS_FAILURE - device cannot be brought to BMPS state
1266 eHAL_STATUS_PMC_PENDING - device is being brought to BMPS state
1267 ---------------------------------------------------------------------------*/
1268extern eHalStatus sme_RequestBmps (
1269 tHalHandle hHal,
1270 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1271 void *callbackContext);
1272
1273/* ---------------------------------------------------------------------------
1274 \fn sme_SetDHCPTillPowerActiveFlag
1275 \brief Sets/Clears DHCP related flag in PMC to disable/enable auto BMPS
1276 entry by PMC
1277 \param hHal - The handle returned by macOpen.
1278 ---------------------------------------------------------------------------*/
1279void sme_SetDHCPTillPowerActiveFlag(tHalHandle hHal, tANI_U8 flag);
1280
1281
1282/* ---------------------------------------------------------------------------
1283 \fn sme_StartUapsd
1284 \brief Request that the device be put in UAPSD state. If the device is in
1285 Full Power it will be put in BMPS mode first and then into UAPSD
1286 mode.
1287 \param hHal - The handle returned by macOpen.
1288 \param - callbackRoutine Callback routine invoked in case of success/failure
1289 \param - callbackContext - Cookie to be passed back during callback
1290 eHAL_STATUS_SUCCESS - device is in UAPSD state
1291 eHAL_STATUS_FAILURE - device cannot be brought to UAPSD state
1292 eHAL_STATUS_PMC_PENDING - device is being brought to UAPSD state
1293 eHAL_STATUS_PMC_DISABLED - UAPSD is disabled or BMPS mode is disabled
1294 \return eHalStatus
1295 ---------------------------------------------------------------------------*/
1296extern eHalStatus sme_StartUapsd (
1297 tHalHandle hHal,
1298 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1299 void *callbackContext);
1300
1301/* ---------------------------------------------------------------------------
1302 \fn sme_StopUapsd
1303 \brief Request that the device be put out of UAPSD state. Device will be
1304 put in in BMPS state after stop UAPSD completes. Buffered requests for
1305 UAPSD will be cleared after this.
1306 \param hHal - The handle returned by macOpen.
1307 \return eHalStatus
1308 eHAL_STATUS_SUCCESS - device is put out of UAPSD and back in BMPS state
1309 eHAL_STATUS_FAILURE - device cannot be brought out of UAPSD state
1310 ---------------------------------------------------------------------------*/
1311extern eHalStatus sme_StopUapsd (tHalHandle hHal);
1312
1313/* ---------------------------------------------------------------------------
1314 \fn sme_RequestStandby
1315 \brief Request that the device be put in standby. It is HDD's responsibility
1316 to bring the chip to full power and do a discconnect before calling
1317 this API. Request for standby will be rejected if STA is associated
1318 to an AP.
1319 \param hHal - The handle returned by macOpen.
1320 \param - callbackRoutine Callback routine invoked in case of success/failure
1321 \param - callbackContext - Cookie to be passed back during callback
1322 \return eHalStatus
1323 eHAL_STATUS_SUCCESS - device is in Standby mode
1324 eHAL_STATUS_FAILURE - device cannot be put in standby mode
1325 eHAL_STATUS_PMC_PENDING - device is being put in standby mode
1326 ---------------------------------------------------------------------------*/
1327extern eHalStatus sme_RequestStandby (
1328 tHalHandle hHal,
1329 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1330 void *callbackContext);
1331
1332/* ---------------------------------------------------------------------------
1333 \fn sme_RegisterPowerSaveCheck
1334 \brief Register a power save check routine that is called whenever
1335 the device is about to enter one of the power save modes.
1336 \param hHal - The handle returned by macOpen.
1337 \param checkRoutine - Power save check routine to be registered
1338 \param callbackContext - Cookie to be passed back during callback
1339 \return eHalStatus
1340 eHAL_STATUS_SUCCESS - successfully registered
1341 eHAL_STATUS_FAILURE - not successfully registered
1342 ---------------------------------------------------------------------------*/
1343extern eHalStatus sme_RegisterPowerSaveCheck (
1344 tHalHandle hHal,
1345 tANI_BOOLEAN (*checkRoutine) (void *checkContext), void *checkContext);
1346
1347/* ---------------------------------------------------------------------------
Mihir Shetefc7ff5b2014-01-27 11:30:05 +05301348 \fn sme_Register11dScanDoneCallback
1349 \brief Register a routine of type csrScanCompleteCallback which is
1350 called whenever an 11d scan is done
1351 \param hHal - The handle returned by macOpen.
1352 \param callback - 11d scan complete routine to be registered
1353 \return eHalStatus
1354 ---------------------------------------------------------------------------*/
1355extern eHalStatus sme_Register11dScanDoneCallback (
1356 tHalHandle hHal,
1357 csrScanCompleteCallback);
1358
1359/* ---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07001360 \fn sme_DeregisterPowerSaveCheck
1361 \brief Deregister a power save check routine
1362 \param hHal - The handle returned by macOpen.
1363 \param checkRoutine - Power save check routine to be deregistered
1364 \return eHalStatus
1365 eHAL_STATUS_SUCCESS - successfully deregistered
1366 eHAL_STATUS_FAILURE - not successfully deregistered
1367 ---------------------------------------------------------------------------*/
1368extern eHalStatus sme_DeregisterPowerSaveCheck (
1369 tHalHandle hHal,
1370 tANI_BOOLEAN (*checkRoutine) (void *checkContext));
1371
1372/* ---------------------------------------------------------------------------
1373 \fn sme_RegisterDeviceStateUpdateInd
1374 \brief Register a callback routine that is called whenever
1375 the device enters a new device state (Full Power, BMPS, UAPSD)
1376 \param hHal - The handle returned by macOpen.
1377 \param callbackRoutine - Callback routine to be registered
1378 \param callbackContext - Cookie to be passed back during callback
1379 \return eHalStatus
1380 eHAL_STATUS_SUCCESS - successfully registered
1381 eHAL_STATUS_FAILURE - not successfully registered
1382 ---------------------------------------------------------------------------*/
1383extern eHalStatus sme_RegisterDeviceStateUpdateInd (
1384 tHalHandle hHal,
1385 void (*callbackRoutine) (void *callbackContext, tPmcState pmcState),
1386 void *callbackContext);
1387
1388/* ---------------------------------------------------------------------------
1389 \fn sme_DeregisterDeviceStateUpdateInd
1390 \brief Deregister a routine that was registered for device state changes
1391 \param hHal - The handle returned by macOpen.
1392 \param callbackRoutine - Callback routine to be deregistered
1393 \return eHalStatus
1394 eHAL_STATUS_SUCCESS - successfully deregistered
1395 eHAL_STATUS_FAILURE - not successfully deregistered
1396 ---------------------------------------------------------------------------*/
1397extern eHalStatus sme_DeregisterDeviceStateUpdateInd (
1398 tHalHandle hHal,
1399 void (*callbackRoutine) (void *callbackContext, tPmcState pmcState));
1400
1401/* ---------------------------------------------------------------------------
1402 \fn sme_WowlAddBcastPattern
1403 \brief Add a pattern for Pattern Byte Matching in Wowl mode. Firmware will
1404 do a pattern match on these patterns when Wowl is enabled during BMPS
1405 mode.
1406 \param hHal - The handle returned by macOpen.
1407 \param pattern - Pattern to be added
1408 \return eHalStatus
1409 eHAL_STATUS_FAILURE Cannot add pattern
1410 eHAL_STATUS_SUCCESS Request accepted.
1411 ---------------------------------------------------------------------------*/
1412extern eHalStatus sme_WowlAddBcastPattern (
1413 tHalHandle hHal,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001414 tpSirWowlAddBcastPtrn pattern,
1415 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001416
1417/* ---------------------------------------------------------------------------
1418 \fn sme_WowlDelBcastPattern
1419 \brief Delete a pattern that was added for Pattern Byte Matching.
1420 \param hHal - The handle returned by macOpen.
1421 \param pattern - Pattern to be deleted
1422 \return eHalStatus
1423 eHAL_STATUS_FAILURE Cannot delete pattern
1424 eHAL_STATUS_SUCCESS Request accepted.
1425 ---------------------------------------------------------------------------*/
1426extern eHalStatus sme_WowlDelBcastPattern (
1427 tHalHandle hHal,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001428 tpSirWowlDelBcastPtrn pattern,
1429 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001430
1431/* ---------------------------------------------------------------------------
1432 \fn sme_EnterWowl
1433 \brief This is the API to request entry into WOWL mode.
1434 WoWLAN works on top of BMPS mode. If the device is not in BMPS mode,
1435 SME will will cache the information that WOWL has been requested and
1436 attempt to put the device in BMPS first. On entry into BMPS, SME will
1437 enter the WOWL mode.
1438 Note 1: After WoWL request is accepted, If module other than HDD requests
1439 full power BEFORE WoWL request is completed, PMC will buffer the WoWL request
1440 and attempt to put the chip into BMPS+WOWL based on a timer.
1441 Note 2: Buffered request for WoWL will be cleared immedisately AFTER "enter Wowl"
1442 completes or if HDD requests full power or if sme_ExitWoWL API is invoked.
1443 Note 3: Both UAPSD and WOWL work on top of BMPS. On entry into BMPS, SME
1444 will give priority to UAPSD and enable only UAPSD if both UAPSD and WOWL
1445 are required. Currently there is no requirement or use case to support UAPSD
1446 and WOWL at the same time.
1447 Note 4. Request for WoWL is rejected if there is a pending UAPSD request.
1448 Note 5. Request for WoWL is rejected if BMPS is disabled.
1449
1450 \param hHal - The handle returned by macOpen.
1451 \param enterWowlCallbackRoutine - Callback routine provided by HDD.
1452 Used for success/failure notification by SME
1453 \param enterWowlCallbackContext - A cookie passed by HDD, that is passed back to HDD
1454 at the time of callback.
1455 \param wakeReasonIndCB - Callback routine provided by HDD.
1456 Used for Wake Reason Indication by SME
1457 \param wakeReasonIndCBContext - A cookie passed by HDD, that is passed back to HDD
1458 at the time of callback.
1459 \return eHalStatus
1460 eHAL_STATUS_SUCCESS Device is already in WoWLAN mode
1461 eHAL_STATUS_FAILURE Device cannot enter WoWLAN mode.
1462 eHAL_STATUS_PMC_PENDING Request accepted. SME will enable WOWL when BMPS
1463 mode is entered.
1464 ---------------------------------------------------------------------------*/
1465extern eHalStatus sme_EnterWowl (
1466 tHalHandle hHal,
1467 void (*enterWowlCallbackRoutine) (void *callbackContext, eHalStatus status),
1468 void *enterWowlCallbackContext,
1469#ifdef WLAN_WAKEUP_EVENTS
1470 void (*wakeReasonIndCB) (void *callbackContext, tpSirWakeReasonInd pWakeReasonInd),
1471 void *wakeReasonIndCBContext,
1472#endif // WLAN_WAKEUP_EVENTS
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001473 tpSirSmeWowlEnterParams wowlEnterParams, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001474
1475/* ---------------------------------------------------------------------------
1476 \fn sme_ExitWowl
1477 \brief This is the SME API exposed to HDD to request exit from WoWLAN mode.
1478 SME will initiate exit from WoWLAN mode and device will be put in BMPS
1479 mode. Any Buffered request for WoWL will be cleared after this API.
1480 \param hHal - The handle returned by macOpen.
1481 \return eHalStatus
1482 eHAL_STATUS_FAILURE Device cannot exit WoWLAN mode. This can happen
1483 only if the previous "Enter WOWL" transaction has
1484 not even completed.
1485 eHAL_STATUS_SUCCESS Request accepted to exit WoWLAN mode.
1486 ---------------------------------------------------------------------------*/
1487extern eHalStatus sme_ExitWowl (tHalHandle hHal);
1488
1489/* ---------------------------------------------------------------------------
1490
1491 \fn sme_RoamSetKey
1492
1493 \brief To set encryption key. This function should be called only when connected
1494 This is an asynchronous API.
1495
1496 \param pSetKeyInfo - pointer to a caller allocated object of tCsrSetContextInfo
1497
1498 \param pRoamId Upon success return, this is the id caller can use to identify the request in roamcallback
1499
1500 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
1501
1502 FAILURE or RESOURCES The API finished and failed.
1503
1504 -------------------------------------------------------------------------------*/
1505eHalStatus sme_RoamSetKey(tHalHandle, tANI_U8 sessionId, tCsrRoamSetKey *pSetKey, tANI_U32 *pRoamId);
1506
1507/* ---------------------------------------------------------------------------
1508
1509 \fn sme_RoamRemoveKey
1510
1511 \brief To set encryption key. This is an asynchronous API.
1512
1513 \param pRemoveKey - pointer to a caller allocated object of tCsrRoamRemoveKey
1514
1515 \param pRoamId Upon success return, this is the id caller can use to identify the request in roamcallback
1516
1517 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
1518
1519 FAILURE or RESOURCES The API finished and failed.
1520
1521 -------------------------------------------------------------------------------*/
1522eHalStatus sme_RoamRemoveKey(tHalHandle, tANI_U8 sessionId, tCsrRoamRemoveKey *pRemoveKey, tANI_U32 *pRoamId);
1523
1524
1525/* ---------------------------------------------------------------------------
1526
1527 \fn sme_GetCountryCode
1528
1529 \brief To return the current country code. If no country code is applied, default country code is
1530 used to fill the buffer.
1531 If 11d supported is turned off, an error is return and the last applied/default country code is used.
1532 This is a synchronous API.
1533
1534 \param pBuf - pointer to a caller allocated buffer for returned country code.
1535
1536 \param pbLen For input, this parameter indicates how big is the buffer.
1537 Upon return, this parameter has the number of bytes for country. If pBuf
1538 doesn't have enough space, this function returns
1539 fail status and this parameter contains the number that is needed.
1540
1541 \return eHalStatus SUCCESS.
1542
1543 FAILURE or RESOURCES The API finished and failed.
1544
1545 -------------------------------------------------------------------------------*/
1546eHalStatus sme_GetCountryCode(tHalHandle hHal, tANI_U8 *pBuf, tANI_U8 *pbLen);
1547
1548/* ---------------------------------------------------------------------------
1549
1550 \fn sme_SetCountryCode
1551
1552 \brief To change the current/default country code.
1553 If 11d supported is turned off, an error is return.
1554 This is a synchronous API.
1555
1556 \param pCountry - pointer to a caller allocated buffer for the country code.
1557
1558 \param pfRestartNeeded A pointer to caller allocated memory, upon successful return, it indicates
1559 whether a reset is required.
1560
1561 \return eHalStatus SUCCESS.
1562
1563 FAILURE or RESOURCES The API finished and failed.
1564
1565 -------------------------------------------------------------------------------*/
1566eHalStatus sme_SetCountryCode(tHalHandle hHal, tANI_U8 *pCountry, tANI_BOOLEAN *pfRestartNeeded);
1567
1568/* ---------------------------------------------------------------------------
Mihir Shetee1093ba2014-01-21 20:13:32 +05301569
1570 \fn sme_InitChannels
1571
1572 \brief Used to initialize CSR channel lists while driver loading
1573
1574 \param hHal - global pMac structure
1575
1576 \return eHalStatus SUCCESS.
1577
1578 FAILURE or RESOURCES The API finished and failed.
1579
1580 -------------------------------------------------------------------------------*/
1581eHalStatus sme_InitChannels(tHalHandle hHal);
1582
Mahesh A Saptasagar74289d22014-05-14 12:43:37 +05301583
1584/* ---------------------------------------------------------------------------
1585 \fn sme_InitChannelsForCC
1586
1587 \brief Used to issue regulatory hint to user
1588
1589 \param hHal - global pMac structure
1590
1591 \return eHalStatus SUCCESS.
1592
1593 FAILURE or RESOURCES The API finished and failed.
1594
1595 -------------------------------------------------------------------------------*/
1596eHalStatus sme_InitChannelsForCC(tHalHandle hHal);
1597
Mihir Shetee1093ba2014-01-21 20:13:32 +05301598/* ---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07001599 \fn sme_ResetCountryCodeInformation
1600 \brief this function is to reset the country code current being used back to EEPROM default
1601 this includes channel list and power setting. This is a synchronous API.
1602 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
1603 a restart is needed to apply the change
1604 \return eHalStatus
1605 -------------------------------------------------------------------------------*/
1606eHalStatus sme_ResetCountryCodeInformation(tHalHandle hHal, tANI_BOOLEAN *pfRestartNeeded);
1607
1608/* ---------------------------------------------------------------------------
1609 \fn sme_GetSupportedCountryCode
1610 \brief this function is to get a list of the country code current being supported
1611 \param pBuf - Caller allocated buffer with at least 3 bytes, upon success return,
1612 this has the country code list. 3 bytes for each country code. This may be NULL if
1613 caller wants to know the needed byte count.
1614 \param pbLen - Caller allocated, as input, it indicates the length of pBuf. Upon success return,
1615 this contains the length of the data in pBuf. If pbuf is NULL, as input, *pbLen should be 0.
1616 \return eHalStatus
1617 -------------------------------------------------------------------------------*/
1618eHalStatus sme_GetSupportedCountryCode(tHalHandle hHal, tANI_U8 *pBuf, tANI_U32 *pbLen);
1619
1620/* ---------------------------------------------------------------------------
1621 \fn sme_GetCurrentRegulatoryDomain
1622 \brief this function is to get the current regulatory domain. This is a synchronous API.
1623 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1624 SME. The function fails if 11d support is turned off.
1625 \param pDomain - Caller allocated buffer to return the current domain.
1626 \return eHalStatus SUCCESS.
1627
1628 FAILURE or RESOURCES The API finished and failed.
1629 -------------------------------------------------------------------------------*/
1630eHalStatus sme_GetCurrentRegulatoryDomain(tHalHandle hHal, v_REGDOMAIN_t *pDomain);
1631
1632/* ---------------------------------------------------------------------------
1633 \fn sme_SetRegulatoryDomain
1634 \brief this function is to set the current regulatory domain.
1635 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1636 SME. This is a synchronous API.
1637 \param domainId - indicate the domain (defined in the driver) needs to set to.
1638 See v_REGDOMAIN_t for definition
1639 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
1640 a restart is needed to apply the change
1641 \return eHalStatus
1642 -------------------------------------------------------------------------------*/
1643eHalStatus sme_SetRegulatoryDomain(tHalHandle hHal, v_REGDOMAIN_t domainId, tANI_BOOLEAN *pfRestartNeeded);
1644
1645/* ---------------------------------------------------------------------------
1646
1647 \fn sme_GetRegulatoryDomainForCountry
1648
1649 \brief To return a regulatory domain base on a country code. This is a synchronous API.
1650
1651 \param pCountry - pointer to a caller allocated buffer for input country code.
1652
1653 \param pDomainId Upon successful return, it is the domain that country belongs to.
1654 If it is NULL, returning success means that the country code is known.
1655
1656 \return eHalStatus SUCCESS.
1657
1658 FAILURE or RESOURCES The API finished and failed.
1659
1660 -------------------------------------------------------------------------------*/
1661eHalStatus sme_GetRegulatoryDomainForCountry(tHalHandle hHal, tANI_U8 *pCountry, v_REGDOMAIN_t *pDomainId);
1662
1663
1664
1665/* ---------------------------------------------------------------------------
1666
1667 \fn sme_GetSupportedRegulatoryDomains
1668
1669 \brief To return a list of supported regulatory domains. This is a synchronous API.
1670
1671 \param pDomains - pointer to a caller allocated buffer for returned regulatory domains.
1672
1673 \param pNumDomains For input, this parameter indicates howm many domains pDomains can hold.
1674 Upon return, this parameter has the number for supported domains. If pDomains
1675 doesn't have enough space for all the supported domains, this function returns
1676 fail status and this parameter contains the number that is needed.
1677
1678 \return eHalStatus SUCCESS.
1679
1680 FAILURE or RESOURCES The API finished and failed.
1681
1682 -------------------------------------------------------------------------------*/
1683eHalStatus sme_GetSupportedRegulatoryDomains(tHalHandle hHal, v_REGDOMAIN_t *pDomains, tANI_U32 *pNumDomains);
1684
1685//some support functions
1686tANI_BOOLEAN sme_Is11dSupported(tHalHandle hHal);
1687tANI_BOOLEAN sme_Is11hSupported(tHalHandle hHal);
1688tANI_BOOLEAN sme_IsWmmSupported(tHalHandle hHal);
1689//Upper layer to get the list of the base channels to scan for passively 11d info from csr
1690eHalStatus sme_ScanGetBaseChannels( tHalHandle hHal, tCsrChannelInfo * pChannelInfo );
1691
1692typedef void ( *tSmeChangeCountryCallback)(void *pContext);
1693/* ---------------------------------------------------------------------------
1694
1695 \fn sme_ChangeCountryCode
1696
1697 \brief Change Country code from upperlayer during WLAN driver operation.
1698 This is a synchronous API.
1699
1700 \param hHal - The handle returned by macOpen.
1701
1702 \param pCountry New Country Code String
1703
Abhishek Singha306a442013-11-07 18:39:01 +05301704 \param sendRegHint If we want to send reg hint to nl80211
1705
Jeff Johnson295189b2012-06-20 16:38:30 -07001706 \return eHalStatus SUCCESS.
1707
1708 FAILURE or RESOURCES The API finished and failed.
1709
1710 -------------------------------------------------------------------------------*/
1711eHalStatus sme_ChangeCountryCode( tHalHandle hHal,
1712 tSmeChangeCountryCallback callback,
1713 tANI_U8 *pCountry,
1714 void *pContext,
Gopichand Nakkalaacd94112013-05-29 21:37:47 +05301715 void* pVosContext,
Abhishek Singha306a442013-11-07 18:39:01 +05301716 tAniBool countryFromUserSpace,
1717 tAniBool sendRegHint);
Jeff Johnson295189b2012-06-20 16:38:30 -07001718
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301719/* ---------------------------------------------------------------------------
1720
Amar Singhal0d15bd52013-10-12 23:13:13 -07001721 \fn sme_GenericChangeCountryCode
1722
1723 \brief Generic API to change country code
1724
1725 \param hHal - The handle returned by macOpen.
1726
1727 \param pCountry New Country Code String
1728
1729 \param reg_domain Regulatory domain for the new country code
1730
1731 \return eHalStatus SUCCESS.
1732
1733 FAILURE or RESOURCES The API finished and failed.
1734
1735 -------------------------------------------------------------------------------*/
1736eHalStatus sme_GenericChangeCountryCode( tHalHandle hHal,
1737 tANI_U8 *pCountry,
1738 v_REGDOMAIN_t reg_domain);
1739
1740/* ---------------------------------------------------------------------------
1741
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301742 \fn sme_DHCPStartInd
1743
1744 \brief Indicate FW about DHCP start event.
1745
1746 \param hHal - The handle returned by macOpen.
1747
1748 \param device_mode the mode of the device
1749
c_hpothu0b0cab72014-02-13 21:52:40 +05301750 \param sessionId session ID
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301751
1752 \return eHalStatus SUCCESS.
1753
1754 FAILURE or RESOURCES The API finished and failed.
1755
1756 -------------------------------------------------------------------------------*/
1757
1758eHalStatus sme_DHCPStartInd( tHalHandle hHal,
1759 tANI_U8 device_mode,
c_hpothu0b0cab72014-02-13 21:52:40 +05301760 tANI_U8 sessionId );
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301761
1762/* ---------------------------------------------------------------------------
1763
1764 \fn sme_DHCPStopInd
1765
1766 \brief Indicate FW about DHCP stop event.
1767
1768 \param hHal - The handle returned by macOpen.
1769
1770 \param device_mode the mode of the device
1771
c_hpothu0b0cab72014-02-13 21:52:40 +05301772 \param sessionId session ID
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301773
1774 \return eHalStatus SUCCESS.
1775
1776 FAILURE or RESOURCES The API finished and failed.
1777
1778 -------------------------------------------------------------------------------*/
1779eHalStatus sme_DHCPStopInd( tHalHandle hHal,
1780 tANI_U8 device_mode,
c_hpothu0b0cab72014-02-13 21:52:40 +05301781 tANI_U8 sessionId );
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301782
Jeff Johnson295189b2012-06-20 16:38:30 -07001783
1784/* ---------------------------------------------------------------------------
1785 \fn sme_BtcSignalBtEvent
1786 \brief API to signal Bluetooth (BT) event to the WLAN driver. Based on the
1787 BT event type and the current operating mode of Libra (full power,
1788 BMPS, UAPSD etc), appropriate Bluetooth Coexistence (BTC) strategy
1789 would be employed.
1790 \param hHal - The handle returned by macOpen.
1791 \param pBtcBtEvent - Pointer to a caller allocated object of type tSmeBtEvent
1792 Caller owns the memory and is responsible for freeing it.
1793 \return VOS_STATUS
1794 VOS_STATUS_E_FAILURE BT Event not passed to HAL. This can happen
1795 if driver has not yet been initialized or if BTC
1796 Events Layer has been disabled.
1797 VOS_STATUS_SUCCESS BT Event passed to HAL
1798 ---------------------------------------------------------------------------*/
1799VOS_STATUS sme_BtcSignalBtEvent (tHalHandle hHal, tpSmeBtEvent pBtcBtEvent);
1800
1801/* ---------------------------------------------------------------------------
1802 \fn sme_BtcSetConfig
1803 \brief API to change the current Bluetooth Coexistence (BTC) configuration
1804 This function should be invoked only after CFG download has completed.
1805 Calling it after sme_HDDReadyInd is recommended.
1806 \param hHal - The handle returned by macOpen.
1807 \param pSmeBtcConfig - Pointer to a caller allocated object of type
1808 tSmeBtcConfig. Caller owns the memory and is responsible
1809 for freeing it.
1810 \return VOS_STATUS
1811 VOS_STATUS_E_FAILURE Config not passed to HAL.
1812 VOS_STATUS_SUCCESS Config passed to HAL
1813 ---------------------------------------------------------------------------*/
1814VOS_STATUS sme_BtcSetConfig (tHalHandle hHal, tpSmeBtcConfig pSmeBtcConfig);
1815
1816/* ---------------------------------------------------------------------------
1817 \fn sme_BtcGetConfig
1818 \brief API to retrieve the current Bluetooth Coexistence (BTC) configuration
1819 \param hHal - The handle returned by macOpen.
1820 \param pSmeBtcConfig - Pointer to a caller allocated object of type tSmeBtcConfig.
1821 Caller owns the memory and is responsible for freeing it.
1822 \return VOS_STATUS
1823 VOS_STATUS_E_FAILURE - failure
1824 VOS_STATUS_SUCCESS success
1825 ---------------------------------------------------------------------------*/
1826VOS_STATUS sme_BtcGetConfig (tHalHandle hHal, tpSmeBtcConfig pSmeBtcConfig);
1827
1828/* ---------------------------------------------------------------------------
1829 \fn sme_SetCfgPrivacy
1830 \brief API to set configure privacy parameters
1831 \param hHal - The handle returned by macOpen.
1832 \param pProfile - Pointer CSR Roam profile.
1833 \param fPrivacy - This parameter indicates status of privacy
1834
1835 \return void
1836 ---------------------------------------------------------------------------*/
1837void sme_SetCfgPrivacy(tHalHandle hHal, tCsrRoamProfile *pProfile, tANI_BOOLEAN fPrivacy);
1838
1839#if defined WLAN_FEATURE_VOWIFI
1840/* ---------------------------------------------------------------------------
1841 \fn sme_NeighborReportRequest
1842 \brief API to request neighbor report.
1843 \param hHal - The handle returned by macOpen.
1844 \param pRrmNeighborReq - Pointer to a caller allocated object of type
1845 tRrmNeighborReq. Caller owns the memory and is responsible
1846 for freeing it.
1847 \return VOS_STATUS
1848 VOS_STATUS_E_FAILURE - failure
1849 VOS_STATUS_SUCCESS success
1850 ---------------------------------------------------------------------------*/
1851VOS_STATUS sme_NeighborReportRequest (tHalHandle hHal, tANI_U8 sessionId,
1852 tpRrmNeighborReq pRrmNeighborReq, tpRrmNeighborRspCallbackInfo callbackInfo);
1853#endif
1854
1855//The following are debug APIs to support direct read/write register/memory
1856//They are placed in SME because HW cannot be access when in LOW_POWER state
1857//AND not connected. The knowledge and synchronization is done in SME
1858
1859//sme_DbgReadRegister
1860//Caller needs to validate the input values
1861VOS_STATUS sme_DbgReadRegister(tHalHandle hHal, v_U32_t regAddr, v_U32_t *pRegValue);
1862
1863//sme_DbgWriteRegister
1864//Caller needs to validate the input values
1865VOS_STATUS sme_DbgWriteRegister(tHalHandle hHal, v_U32_t regAddr, v_U32_t regValue);
1866
1867//sme_DbgReadMemory
1868//Caller needs to validate the input values
1869//pBuf caller allocated buffer has the length of nLen
1870VOS_STATUS sme_DbgReadMemory(tHalHandle hHal, v_U32_t memAddr, v_U8_t *pBuf, v_U32_t nLen);
1871
1872//sme_DbgWriteMemory
1873//Caller needs to validate the input values
1874VOS_STATUS sme_DbgWriteMemory(tHalHandle hHal, v_U32_t memAddr, v_U8_t *pBuf, v_U32_t nLen);
1875
Jeff Johnson295189b2012-06-20 16:38:30 -07001876VOS_STATUS sme_GetWcnssWlanCompiledVersion(tHalHandle hHal,
1877 tSirVersionType *pVersion);
1878VOS_STATUS sme_GetWcnssWlanReportedVersion(tHalHandle hHal,
1879 tSirVersionType *pVersion);
1880VOS_STATUS sme_GetWcnssSoftwareVersion(tHalHandle hHal,
1881 tANI_U8 *pVersion,
1882 tANI_U32 versionBufferSize);
1883VOS_STATUS sme_GetWcnssHardwareVersion(tHalHandle hHal,
1884 tANI_U8 *pVersion,
1885 tANI_U32 versionBufferSize);
Jeff Johnson295189b2012-06-20 16:38:30 -07001886eHalStatus sme_RoamRegisterCallback(tHalHandle hHal,
1887 csrRoamCompleteCallback callback,
1888 void *pContext);
1889
1890#ifdef FEATURE_WLAN_WAPI
1891/* ---------------------------------------------------------------------------
1892 \fn sme_RoamSetBKIDCache
1893 \brief The SME API exposed to HDD to allow HDD to provde SME the BKID
1894 candidate list.
1895 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1896 it is opened (by calling halOpen).
1897 \param pBKIDCache - caller allocated buffer point to an array of tBkidCacheInfo
1898 \param numItems - a variable that has the number of tBkidCacheInfo allocated
1899 when retruning, this is the number of items put into pBKIDCache
1900 \return eHalStatus - when fail, it usually means the buffer allocated is not
1901 big enough and pNumItems has the number of tBkidCacheInfo.
1902 ---------------------------------------------------------------------------*/
1903eHalStatus sme_RoamSetBKIDCache( tHalHandle hHal, tANI_U32 sessionId, tBkidCacheInfo *pBKIDCache,
1904 tANI_U32 numItems );
1905
1906/* ---------------------------------------------------------------------------
1907 \fn sme_RoamGetBKIDCache
1908 \brief The SME API exposed to HDD to allow HDD to request SME to return its
1909 BKID cache.
1910 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1911 it is opened (by calling halOpen).
1912 \param pNum - caller allocated memory that has the space of the number of
1913 tBkidCacheInfo as input. Upon returned, *pNum has the needed number of entries
1914 in SME cache.
1915 \param pBkidCache - Caller allocated memory that contains BKID cache, if any,
1916 upon return
1917 \return eHalStatus - when fail, it usually means the buffer allocated is not
1918 big enough.
1919 ---------------------------------------------------------------------------*/
1920eHalStatus sme_RoamGetBKIDCache(tHalHandle hHal, tANI_U32 *pNum,
1921 tBkidCacheInfo *pBkidCache);
1922
1923/* ---------------------------------------------------------------------------
1924 \fn sme_RoamGetNumBKIDCache
1925 \brief The SME API exposed to HDD to allow HDD to request SME to return the
1926 number of BKID cache entries.
1927 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1928 it is opened (by calling halOpen).
1929 \return tANI_U32 - the number of BKID cache entries.
1930 ---------------------------------------------------------------------------*/
1931tANI_U32 sme_RoamGetNumBKIDCache(tHalHandle hHal, tANI_U32 sessionId);
1932
1933/* ---------------------------------------------------------------------------
1934 \fn sme_ScanGetBKIDCandidateList
1935 \brief a wrapper function to return the BKID candidate list
1936 \param pBkidList - caller allocated buffer point to an array of
1937 tBkidCandidateInfo
1938 \param pNumItems - pointer to a variable that has the number of
1939 tBkidCandidateInfo allocated when retruning, this is
1940 either the number needed or number of items put into
1941 pPmkidList
1942 \return eHalStatus - when fail, it usually means the buffer allocated is not
1943 big enough and pNumItems
1944 has the number of tBkidCandidateInfo.
1945 \Note: pNumItems is a number of tBkidCandidateInfo,
1946 not sizeof(tBkidCandidateInfo) * something
1947 ---------------------------------------------------------------------------*/
1948eHalStatus sme_ScanGetBKIDCandidateList(tHalHandle hHal, tANI_U32 sessionId,
1949 tBkidCandidateInfo *pBkidList,
1950 tANI_U32 *pNumItems );
1951#endif /* FEATURE_WLAN_WAPI */
1952
Jeff Johnsone7245742012-09-05 17:12:55 -07001953#ifdef FEATURE_OEM_DATA_SUPPORT
1954/********************************************************************************************
1955 Oem data related modifications
1956*********************************************************************************************/
1957/* ---------------------------------------------------------------------------
1958 \fn sme_OemDataReq
1959 \param sessionId - session id of session to be used for oem data req.
1960 \param pOemDataReqID - pointer to an object to get back the request ID
1961 \param callback - a callback function that is called upon finish
1962 \param pContext - a pointer passed in for the callback
1963 \return eHalStatus
1964 ---------------------------------------------------------------------------*/
1965eHalStatus sme_OemDataReq(tHalHandle hHal,
1966 tANI_U8 sessionId,
1967 tOemDataReqConfig *,
1968 tANI_U32 *pOemDataReqID,
1969 oemData_OemDataReqCompleteCallback callback,
1970 void *pContext);
1971
1972/* ---------------------------------------------------------------------------
1973 \fn sme_getOemDataRsp
1974 \param pOemDataRsp - A pointer to the response object
1975 \param pOemDataReqID - pointer to an object to get back the request ID
1976 \return eHalStatus
1977 ---------------------------------------------------------------------------*/
1978eHalStatus sme_getOemDataRsp(tHalHandle hHal,
1979 tOemDataRsp **pOemDataRsp);
1980
1981#endif /*FEATURE_OEM_DATA_SUPPORT*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001982
1983
Jeff Johnson295189b2012-06-20 16:38:30 -07001984
1985/* ---------------------------------------------------------------------------
1986
1987 \fn sme_RoamUpdateAPWPSIE
1988
1989 \brief To update AP's WPS IE. This function should be called after SME AP session is created
1990 This is an asynchronous API.
1991
1992 \param pAPWPSIES - pointer to a caller allocated object of tCsrRoamAPWPSIES
1993
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001994 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
Jeff Johnson295189b2012-06-20 16:38:30 -07001995
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001996 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07001997
1998 -------------------------------------------------------------------------------*/
1999
2000eHalStatus sme_RoamUpdateAPWPSIE(tHalHandle, tANI_U8 sessionId, tSirAPWPSIEs *pAPWPSIES);
2001/* ---------------------------------------------------------------------------
2002
2003 \fn sme_RoamUpdateAPWPARSNIEs
2004
2005 \brief To update AP's WPA/RSN IEs. This function should be called after SME AP session is created
2006 This is an asynchronous API.
2007
2008 \param pAPSirRSNie - pointer to a caller allocated object of tSirRSNie with WPS/RSN IEs
2009
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002010 \return eHalStatus SUCCESS
Jeff Johnson295189b2012-06-20 16:38:30 -07002011
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002012 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07002013
2014 -------------------------------------------------------------------------------*/
2015eHalStatus sme_RoamUpdateAPWPARSNIEs(tHalHandle hHal, tANI_U8 sessionId, tSirRSNie * pAPSirRSNie);
2016
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08002017/* ---------------------------------------------------------------------------
2018
2019 sme_ChangeMCCBeaconInterval
2020
2021 \brief To update P2P-GO's beacon Interval.
2022
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002023 \return eHalStatus SUCCESS
2024 FAILURE or RESOURCES
2025 The API finished and failed.
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08002026 -------------------------------------------------------------------------------*/
2027eHalStatus sme_ChangeMCCBeaconInterval(tHalHandle hHal, tANI_U8 sessionId);
2028
2029
Jeff Johnson295189b2012-06-20 16:38:30 -07002030
2031/* ---------------------------------------------------------------------------
2032 \fn sme_sendBTAmpEvent
2033 \brief API to send the btAMPstate to FW
2034 \param hHal - The handle returned by macOpen.
2035 \param btAmpEvent -- btAMP event
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002036 \return eHalStatus SUCCESS
2037 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07002038
2039--------------------------------------------------------------------------- */
2040
2041eHalStatus sme_sendBTAmpEvent(tHalHandle hHal, tSmeBtAmpEvent btAmpEvent);
2042
2043
2044
2045/* ---------------------------------------------------------------------------
2046 \fn sme_SetHostOffload
2047 \brief API to set the host offload feature.
2048 \param hHal - The handle returned by macOpen.
2049 \param pRequest - Pointer to the offload request.
2050 \return eHalStatus
2051 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002052eHalStatus sme_SetHostOffload (tHalHandle hHal, tANI_U8 sessionId,
2053 tpSirHostOffloadReq pRequest);
Jeff Johnson295189b2012-06-20 16:38:30 -07002054
2055/* ---------------------------------------------------------------------------
2056 \fn sme_SetKeepAlive
2057 \brief API to set the Keep Alive feature.
2058 \param hHal - The handle returned by macOpen.
2059 \param pRequest - Pointer to the Keep Alive request.
2060 \return eHalStatus
2061 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002062eHalStatus sme_SetKeepAlive (tHalHandle hHal, tANI_U8 sessionId,
2063 tpSirKeepAliveReq pRequest);
Jeff Johnson295189b2012-06-20 16:38:30 -07002064
Jeff Johnson295189b2012-06-20 16:38:30 -07002065/* ----------------------------------------------------------------------------
2066 \fn sme_GetOperationChannel
2067 \brief API to get current channel on which STA is parked
2068 this function gives channel information only of infra station or IBSS station.
Jeff Johnson04dd8a82012-06-29 20:41:40 -07002069 \param hHal, pointer to memory location and sessionId
Jeff Johnson295189b2012-06-20 16:38:30 -07002070 \returns eHAL_STATUS_SUCCESS
2071 eHAL_STATUS_FAILURE
2072-------------------------------------------------------------------------------*/
Jeff Johnson04dd8a82012-06-29 20:41:40 -07002073eHalStatus sme_GetOperationChannel(tHalHandle hHal, tANI_U32 *pChannel, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002074
Jeff Johnson295189b2012-06-20 16:38:30 -07002075/* ---------------------------------------------------------------------------
2076
2077 \fn sme_RegisterMgtFrame
2078
2079 \brief To register managment frame of specified type and subtype.
2080 \param frameType - type of the frame that needs to be passed to HDD.
2081 \param matchData - data which needs to be matched before passing frame
2082 to HDD.
2083 \param matchDataLen - Length of matched data.
2084 \return eHalStatus
2085 -------------------------------------------------------------------------------*/
2086eHalStatus sme_RegisterMgmtFrame(tHalHandle hHal, tANI_U8 sessionId,
2087 tANI_U16 frameType, tANI_U8* matchData, tANI_U16 matchLen);
2088
2089/* ---------------------------------------------------------------------------
2090
2091 \fn sme_DeregisterMgtFrame
2092
2093 \brief To De-register managment frame of specified type and subtype.
2094 \param frameType - type of the frame that needs to be passed to HDD.
2095 \param matchData - data which needs to be matched before passing frame
2096 to HDD.
2097 \param matchDataLen - Length of matched data.
2098 \return eHalStatus
2099 -------------------------------------------------------------------------------*/
2100eHalStatus sme_DeregisterMgmtFrame(tHalHandle hHal, tANI_U8 sessionId,
2101 tANI_U16 frameType, tANI_U8* matchData, tANI_U16 matchLen);
Jeff Johnson295189b2012-06-20 16:38:30 -07002102
2103/* ---------------------------------------------------------------------------
2104
2105 \fn sme_ConfigureRxpFilter
2106
2107 \brief
2108 SME will pass this request to lower mac to set/reset the filter on RXP for
2109 multicast & broadcast traffic.
2110
2111 \param
2112
2113 hHal - The handle returned by macOpen.
2114
2115 filterMask- Currently the API takes a 1 or 0 (set or reset) as filter.
2116 Basically to enable/disable the filter (to filter "all" mcbc traffic) based
2117 on this param. In future we can use this as a mask to set various types of
2118 filters as suggested below:
2119 FILTER_ALL_MULTICAST:
2120 FILTER_ALL_BROADCAST:
2121 FILTER_ALL_MULTICAST_BROADCAST:
2122
2123
2124 \return eHalStatus
2125
2126
2127--------------------------------------------------------------------------- */
2128eHalStatus sme_ConfigureRxpFilter( tHalHandle hHal,
2129 tpSirWlanSetRxpFilters wlanRxpFilterParam);
2130
2131/* ---------------------------------------------------------------------------
2132
2133 \fn sme_ConfigureAppsCpuWakeupState
2134
2135 \brief
2136 SME will pass this request to lower mac to dynamically adjusts the listen
2137 interval based on the WLAN/MSM activity. This feature is named as
2138 Telescopic Beacon wakeup feature.
2139
2140 \param
2141
2142 hHal - The handle returned by macOpen.
2143
2144 isAppsAwake- Depicts the state of the Apps CPU
2145
2146
2147 \return eHalStatus
2148
2149
2150--------------------------------------------------------------------------- */
2151eHalStatus sme_ConfigureAppsCpuWakeupState( tHalHandle hHal, tANI_BOOLEAN isAppsAwake);
2152
Jeff Johnson295189b2012-06-20 16:38:30 -07002153/* ---------------------------------------------------------------------------
2154
2155 \fn sme_ConfigureSuspendInd
2156
2157 \brief
2158 SME will pass this request to lower mac to Indicate that the wlan needs to
2159 be suspended
2160
2161 \param
2162
2163 hHal - The handle returned by macOpen.
2164
2165 wlanSuspendParam- Depicts the wlan suspend params
2166
2167
2168 \return eHalStatus
2169
2170
2171--------------------------------------------------------------------------- */
2172eHalStatus sme_ConfigureSuspendInd( tHalHandle hHal,
2173 tpSirWlanSuspendParam wlanSuspendParam);
2174
2175/* ---------------------------------------------------------------------------
2176
2177 \fn sme_ConfigureResumeReq
2178
2179 \brief
2180 SME will pass this request to lower mac to Indicate that the wlan needs to
2181 be Resumed
2182
2183 \param
2184
2185 hHal - The handle returned by macOpen.
2186
2187 wlanResumeParam- Depicts the wlan resume params
2188
2189
2190 \return eHalStatus
2191
2192
2193--------------------------------------------------------------------------- */
2194eHalStatus sme_ConfigureResumeReq( tHalHandle hHal,
2195 tpSirWlanResumeParam wlanResumeParam);
2196
Jeff Johnson295189b2012-06-20 16:38:30 -07002197
2198/* ---------------------------------------------------------------------------
2199
2200 \fn sme_GetInfraSessionId
2201
2202 \brief To get the session ID for infra session, if connected
2203 This is a synchronous API.
2204
2205 \param hHal - The handle returned by macOpen.
2206
2207 \return sessionid, -1 if infra session is not connected
2208
2209 -------------------------------------------------------------------------------*/
2210tANI_S8 sme_GetInfraSessionId(tHalHandle hHal);
2211
2212/* ---------------------------------------------------------------------------
2213
2214 \fn sme_GetInfraOperationChannel
2215
2216 \brief To get the operating channel for infra session, if connected
2217 This is a synchronous API.
2218
2219 \param hHal - The handle returned by macOpen.
2220 \param sessionId - the sessionId returned by sme_OpenSession.
2221
2222 \return operating channel, 0 if infra session is not connected
2223
2224 -------------------------------------------------------------------------------*/
2225tANI_U8 sme_GetInfraOperationChannel( tHalHandle hHal, tANI_U8 sessionId);
2226/* ---------------------------------------------------------------------------
2227
2228 \fn sme_GetConcurrentOperationChannel
2229
2230 \brief To get the operating channel for other concurrent sessions, if connected
2231 This is a synchronous API.
2232
2233 \param hHal - The handle returned by macOpen.
2234 \param currentPersona - persona that is trying to come up.
2235
2236 \return operating channel, 0 if infra session is not connected
2237
2238 -------------------------------------------------------------------------------*/
2239tANI_U8 sme_GetConcurrentOperationChannel( tHalHandle hHal );
2240
2241/* ---------------------------------------------------------------------------
2242 \fn sme_AbortMacScan
2243 \brief API to cancel MAC scan.
2244 \param hHal - The handle returned by macOpen.
Madan Mohan Koyyalamudiff3a7152013-06-13 14:47:55 +05302245 \param sessionId - sessionId for interface
Jeff Johnson295189b2012-06-20 16:38:30 -07002246 \return VOS_STATUS
2247 VOS_STATUS_E_FAILURE - failure
2248 VOS_STATUS_SUCCESS success
2249 ---------------------------------------------------------------------------*/
Srinivas, Dasari138af4f2014-02-07 11:13:45 +05302250eHalStatus sme_AbortMacScan(tHalHandle hHal, tANI_U8 sessionId,
2251 eCsrAbortReason reason);
Jeff Johnson295189b2012-06-20 16:38:30 -07002252
2253/* ---------------------------------------------------------------------------
2254 \fn sme_GetCfgValidChannels
2255 \brief API to get valid channel list
2256 \param hHal - The handle returned by macOpen.
2257 \param aValidChannels - Pointer to the valid channel list
2258 \param len - valid channel list length
2259 \return eHalStatus
2260 ---------------------------------------------------------------------------*/
2261eHalStatus sme_GetCfgValidChannels(tHalHandle hHal, tANI_U8 *aValidChannels, tANI_U32 *len);
2262
2263#ifdef FEATURE_WLAN_SCAN_PNO
2264
2265/* ---------------------------------------------------------------------------
2266 \fn sme_SetPreferredNetworkList
2267 \brief API to set the Preferred Network List Offload feature.
2268 \param hHal - The handle returned by macOpen.
2269 \param pRequest - Pointer to the offload request.
2270 \return eHalStatus
2271 ---------------------------------------------------------------------------*/
2272eHalStatus sme_SetPreferredNetworkList (tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext );
2273
2274/* ---------------------------------------------------------------------------
2275 \fn sme_SetRSSIFilter
2276 \brief API to set RSSI Filter feature.
2277 \param hHal - The handle returned by macOpen.
2278 \param pRequest - Pointer to the offload request.
2279 \return eHalStatus
2280 ---------------------------------------------------------------------------*/
2281eHalStatus sme_SetRSSIFilter(tHalHandle hHal, v_U8_t rssiThreshold);
2282
2283/******************************************************************************
2284*
2285* Name: sme_PreferredNetworkFoundInd
2286*
2287* Description:
2288* Invoke Preferred Network Found Indication
2289*
2290* Parameters:
2291* hHal - HAL handle for device
2292* pMsg - found network description
2293*
2294* Returns: eHalStatus
2295*
2296******************************************************************************/
2297eHalStatus sme_PreferredNetworkFoundInd (tHalHandle hHal, void* pMsg);
2298#endif // FEATURE_WLAN_SCAN_PNO
2299
2300/* ---------------------------------------------------------------------------
2301 \fn sme_SetPowerParams
2302 \brief API to set Power Parameters
2303 \param hHal - The handle returned by macOpen.
2304 \param pwParams - Pointer to the power parameters requested.
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -08002305 \param forced - if true, not to be dropped silently in host, it must reach
2306 FW; It is added to avoid a race condition scenario where LIM hasn't deleted
2307 the session yet before power params gets sent to PMC
Jeff Johnson295189b2012-06-20 16:38:30 -07002308 \return eHalStatus
2309 ---------------------------------------------------------------------------*/
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -08002310eHalStatus sme_SetPowerParams(tHalHandle hHal, tSirSetPowerParamsReq* pwParams, tANI_BOOLEAN forced);
Jeff Johnson295189b2012-06-20 16:38:30 -07002311
2312/* ---------------------------------------------------------------------------
2313 \fn sme_SetTxPerTracking
2314 \brief Set Tx PER tracking configuration parameters
2315 \param hHal - The handle returned by macOpen.
2316 \param pTxPerTrackingParam - Tx PER configuration parameters
2317 \return eHalStatus
2318 ---------------------------------------------------------------------------*/
2319eHalStatus sme_SetTxPerTracking (
2320 tHalHandle hHal,
2321 void (*pCallbackfn) (void *pCallbackContext),
2322 void *pCallbackContext,
2323 tpSirTxPerTrackingParam pTxPerTrackingParam);
2324
2325#ifdef WLAN_FEATURE_PACKET_FILTERING
2326/* ---------------------------------------------------------------------------
2327 \fn sme_ReceiveFilterSetFilter
2328 \brief API to set 8023 Multicast Address List
2329 \param hHal - The handle returned by macOpen.
2330 \param pMulticastAddrs - Pointer to the Multicast Address List
2331 \return eHalStatus
2332 ---------------------------------------------------------------------------*/
Amar Singhalf3a6e762013-02-19 15:06:50 -08002333eHalStatus sme_8023MulticastList(tHalHandle hHal, tANI_U8 sessionId, tpSirRcvFltMcAddrList pMulticastAddrs);
Jeff Johnson295189b2012-06-20 16:38:30 -07002334
2335/* ---------------------------------------------------------------------------
2336 \fn sme_ReceiveFilterSetFilter
2337 \brief API to set Receive Packet Filter
2338 \param hHal - The handle returned by macOpen.
2339 \param pRcvPktFilterCfg - Receive Packet Filter parameter
2340 \return eHalStatus
2341 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002342eHalStatus sme_ReceiveFilterSetFilter(tHalHandle hHal, tpSirRcvPktFilterCfgType pRcvPktFilterCfg,
2343 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002344
2345/* ---------------------------------------------------------------------------
2346 \fn sme_GetFilterMatchCount
2347 \brief API to get D0 PC Filter Match Count
2348 \param hHal - The handle returned by macOpen
2349 \param callbackRoutine - Callback routine invoked to receive Packet Coalescing Filter Match Count
2350 \param callbackContext - Cookie to be passed back during callback
2351 \return eHalStatus
2352 ---------------------------------------------------------------------------*/
2353eHalStatus sme_GetFilterMatchCount(tHalHandle hHal,
2354 FilterMatchCountCallback callbackRoutine,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002355 void *callbackContext,
2356 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002357
2358/* ---------------------------------------------------------------------------
2359 \fn sme_ReceiveFilterClearFilter
2360 \brief API to clear Receive Packet Filter
2361 \param hHal - The handle returned by macOpen.
2362 \param pRcvFltPktClearParam - Receive Packet Filter Clear parameter
2363 \return eHalStatus
2364 ---------------------------------------------------------------------------*/
2365eHalStatus sme_ReceiveFilterClearFilter(tHalHandle hHal,
Jeff Johnsone7245742012-09-05 17:12:55 -07002366 tpSirRcvFltPktClearParam pRcvFltPktClearParam,
2367 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002368#endif // WLAN_FEATURE_PACKET_FILTERING
2369/* ---------------------------------------------------------------------------
2370
2371 \fn sme_IsChannelValid
2372 \brief To check if the channel is valid for currently established domain
2373 This is a synchronous API.
2374
2375 \param hHal - The handle returned by macOpen.
2376 \param channel - channel to verify
2377
2378 \return TRUE/FALSE, TRUE if channel is valid
2379
2380 -------------------------------------------------------------------------------*/
2381tANI_BOOLEAN sme_IsChannelValid(tHalHandle hHal, tANI_U8 channel);
2382
2383/* ---------------------------------------------------------------------------
2384 \fn sme_SetFreqBand
2385 \brief Used to set frequency band.
2386 \param hHal
2387 \eBand band value to be configured
2388 \- return eHalStatus
2389 -------------------------------------------------------------------------*/
2390eHalStatus sme_SetFreqBand(tHalHandle hHal, eCsrBand eBand);
2391
2392/* ---------------------------------------------------------------------------
2393 \fn sme_GetFreqBand
2394 \brief Used to get the current band settings.
2395 \param hHal
2396 \pBand pointer to hold the current band value
2397 \- return eHalStatus
2398 -------------------------------------------------------------------------*/
2399eHalStatus sme_GetFreqBand(tHalHandle hHal, eCsrBand *pBand);
2400
2401/* ---------------------------------------------------------------------------
2402
2403 \fn sme_SetTxPerTracking
2404 \brief Set Tx PER tracking configuration parameters
2405 \param hHal - The handle returned by macOpen.
2406 \param pTxPerTrackingParam - Tx PER configuration parameters
2407 \return eHalStatus
2408 ---------------------------------------------------------------------------*/
2409eHalStatus sme_SetTxPerTracking (
2410 tHalHandle hHal,
2411 void (*pCallbackfn) (void *pCallbackContext),
2412 void *pCallbackContext,
2413 tpSirTxPerTrackingParam pTxPerTrackingParam);
2414
2415#ifdef WLAN_FEATURE_GTK_OFFLOAD
2416/* ---------------------------------------------------------------------------
2417 \fn sme_SetGTKOffload
2418 \brief API to set GTK offload feature.
2419 \param hHal - The handle returned by macOpen.
2420 \param pRequest - Pointer to the GTK offload request.
2421 \return eHalStatus
2422 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002423eHalStatus sme_SetGTKOffload (tHalHandle hHal, tpSirGtkOffloadParams pRequest, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002424
2425/* ---------------------------------------------------------------------------
2426 \fn sme_GetGTKOffload
2427 \brief API to get GTK offload information.
2428 \param hHal - The handle returned by macOpen.
2429 \param pRequest - Pointer to the GTK offload response.
2430 \return eHalStatus
2431 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002432eHalStatus sme_GetGTKOffload (tHalHandle hHal, GTKOffloadGetInfoCallback callbackRoutine,
2433 void *callbackContext, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002434#endif // WLAN_FEATURE_GTK_OFFLOAD
2435
2436#ifdef WLAN_WAKEUP_EVENTS
2437eHalStatus sme_WakeReasonIndCallback (tHalHandle hHal, void* pMsg);
2438#endif // WLAN_WAKEUP_EVENTS
2439
2440/* ---------------------------------------------------------------------------
2441 \fn sme_SetTxPerTracking
2442 \brief Set Tx PER tracking configuration parameters
2443 \param hHal - The handle returned by macOpen.
2444 \param pTxPerTrackingParam - Tx PER configuration parameters
2445 \return eHalStatus
2446 ---------------------------------------------------------------------------*/
2447eHalStatus sme_SetTxPerTracking (
2448 tHalHandle hHal,
2449 void (*pCallbackfn) (void *pCallbackContext),
2450 void *pCallbackContext,
2451 tpSirTxPerTrackingParam pTxPerTrackingParam);
2452
2453
2454//return frequency for a particular channel
2455tANI_U16 sme_ChnToFreq(tANI_U8 chanNum);
2456
2457tANI_BOOLEAN sme_IsChannelValid(tHalHandle hHal, tANI_U8 channel);
2458
2459#if defined WLAN_FEATURE_P2P_INTERNAL
2460
2461eHalStatus sme_p2pResetSession(tHalHandle hHal, tANI_U8 HDDSessionId);
2462
2463/* ---------------------------------------------------------------------------
2464 \fn sme_p2pFlushDeviceList
2465 \brief Remove cached P2P result from scan results
2466 \param hHal - The handle returned by macOpen.
2467 \param HDDSessionId - HDD's sessionId. Currently unused.
2468 \return eHalStatus
2469 ---------------------------------------------------------------------------*/
2470eHalStatus sme_p2pFlushDeviceList(tHalHandle hHal, tANI_U8 HDDSessionId);
2471
2472eHalStatus sme_p2pGetResultFilter(tHalHandle hHal, tANI_U8 HDDSessionId,
2473 tCsrScanResultFilter *pFilter);
2474
2475#endif //#if defined WLAN_FEATURE_P2P_INTERNAL
2476
2477/* ---------------------------------------------------------------------------
2478 \fn sme_SetMaxTxPower
2479 \brief Used to set the Maximum Transmit Power dynamically. Note: this
2480 setting will not persist over reboots
2481 \param hHal
2482 \param pBssid BSSID to set the power cap for
2483 \param pBssid pSelfMacAddress self MAC Address
2484 \param pBssid power to set in dB
2485 \- return eHalStatus
2486 -------------------------------------------------------------------------*/
2487eHalStatus sme_SetMaxTxPower(tHalHandle hHal, tSirMacAddr pBssid,
2488 tSirMacAddr pSelfMacAddress, v_S7_t dB);
2489
Jeff Johnson295189b2012-06-20 16:38:30 -07002490/* ---------------------------------------------------------------------------
Arif Hussaina5ebce02013-08-09 15:09:58 -07002491 \fn sme_SetMaxTxPowerPerBand
2492 \brief Used to set the Maximum Transmit Power for
2493 specific band dynamically. Note: this setting will not persist over reboots
2494 \param band
2495 \param power to set in dB
2496 \- return eHalStatus
2497 -------------------------------------------------------------------------*/
2498eHalStatus sme_SetMaxTxPowerPerBand(eCsrBand band, v_S7_t db);
2499
2500/* ---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07002501
schang86c22c42013-03-13 18:41:24 -07002502 \fn sme_SetTxPower
2503
2504 \brief Set Transmit Power dynamically. Note: this setting will
2505 not persist over reboots.
2506
2507 \param hHal
2508 \param sessionId Target Session ID
2509 \param mW power to set in mW
2510 \- return eHalStatus
2511
2512 -------------------------------------------------------------------------------*/
2513eHalStatus sme_SetTxPower(tHalHandle hHal, v_U8_t sessionId, v_U8_t mW);
2514
2515/* ---------------------------------------------------------------------------
2516
Jeff Johnson295189b2012-06-20 16:38:30 -07002517 \fn sme_HideSSID
2518
2519 \brief Enable/Disables hidden SSID dynamically. Note: this setting will
2520 not persist over reboots.
2521
2522 \param hHal
2523 \param sessionId
2524 \param ssidHidden 0 - Broadcast SSID, 1 - Disable broadcast SSID
2525 \- return eHalStatus
2526
2527 -------------------------------------------------------------------------------*/
2528eHalStatus sme_HideSSID(tHalHandle hHal, v_U8_t sessionId, v_U8_t ssidHidden);
Jeff Johnson295189b2012-06-20 16:38:30 -07002529
2530/* ---------------------------------------------------------------------------
2531
2532 \fn sme_SetTmLevel
2533 \brief Set Thermal Mitigation Level to RIVA
2534 \param hHal - The handle returned by macOpen.
2535 \param newTMLevel - new Thermal Mitigation Level
2536 \param tmMode - Thermal Mitigation handle mode, default 0
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07002537 \return eHalStatus
Jeff Johnson295189b2012-06-20 16:38:30 -07002538 ---------------------------------------------------------------------------*/
2539eHalStatus sme_SetTmLevel(tHalHandle hHal, v_U16_t newTMLevel, v_U16_t tmMode);
2540
2541/*---------------------------------------------------------------------------
2542
2543 \brief sme_featureCapsExchange() - SME interface to exchange capabilities between
2544 Host and FW.
2545
2546 \param hHal - HAL handle for device
2547
2548 \return NONE
2549
2550---------------------------------------------------------------------------*/
2551void sme_featureCapsExchange(tHalHandle hHal);
2552
Jeff Johnsond13512a2012-07-17 11:42:19 -07002553/*---------------------------------------------------------------------------
2554
Yathish9f22e662012-12-10 14:21:35 -08002555 \brief sme_disableActiveModeOffload() - SME interface to disable Active mode Offload capabilitu
2556 between in Host.
2557
2558 \param hHal - HAL handle for device
2559
2560 \return NONE
2561
2562---------------------------------------------------------------------------*/
2563void sme_disableFeatureCapablity(tANI_U8 feature_index);
2564
2565/*---------------------------------------------------------------------------
2566
Jeff Johnsond13512a2012-07-17 11:42:19 -07002567 \brief sme_GetDefaultCountryCodeFrmNv() - SME interface to get the default
2568 country code
2569 Host and FW.
2570
2571 \param hHal - HAL handle for device
2572 \param pCountry - pointer to country code
2573
Jeff Johnsonfeddb2d2012-12-10 14:41:22 -08002574 \return Success or failure
Jeff Johnsond13512a2012-07-17 11:42:19 -07002575
2576 ---------------------------------------------------------------------------*/
2577eHalStatus sme_GetDefaultCountryCodeFrmNv(tHalHandle hHal, tANI_U8 *pCountry);
2578
2579/*---------------------------------------------------------------------------
2580
2581 \brief sme_GetCurrentCountryCode() - SME interface to get the current operating
2582 country code.
2583
2584 \param hHal - HAL handle for device
2585 \param pCountry - pointer to country code
2586
2587 \return Success or failure
2588
2589 ---------------------------------------------------------------------------*/
2590eHalStatus sme_GetCurrentCountryCode(tHalHandle hHal, tANI_U8 *pCountry);
2591
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002592/* ---------------------------------------------------------------------------
2593 \fn sme_transportDebug
2594 \brief Dynamically monitoring Transport channels
2595 Private IOCTL will querry transport channel status if driver loaded
schang6295e542013-03-12 15:31:23 -07002596 \param hHal Upper MAC context
Jeff Johnsonb88db982012-12-10 13:34:59 -08002597 \param displaySnapshot Display transport channel snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002598 \param toggleStallDetect Enable stall detect feature
2599 This feature will take effect to data performance
2600 Not integrate till fully verification
2601 \- return NONE
2602 -------------------------------------------------------------------------*/
schang6295e542013-03-12 15:31:23 -07002603void sme_transportDebug(tHalHandle hHal, v_BOOL_t displaySnapshot, v_BOOL_t toggleStallDetect);
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002604
Kiran4a17ebe2013-01-31 10:43:43 -08002605/* ---------------------------------------------------------------------------
2606 \fn sme_ResetPowerValuesFor5G
2607 \brief Reset the power values for 5G band with NV power values.
2608 \param hHal - HAL handle for device
2609 \- return NONE
2610 -------------------------------------------------------------------------*/
2611void sme_ResetPowerValuesFor5G (tHalHandle hHal);
2612
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002613#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002614/* ---------------------------------------------------------------------------
2615 \fn sme_UpdateRoamPrefer5GHz
2616 \brief enable/disable Roam prefer 5G runtime option
2617 This function is called through dynamic setConfig callback function
2618 to configure the Roam prefer 5G runtime option
2619 \param hHal - HAL handle for device
2620 \param nRoamPrefer5GHz Enable/Disable Roam prefer 5G runtime option
2621 \- return Success or failure
2622 -------------------------------------------------------------------------*/
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002623eHalStatus sme_UpdateRoamPrefer5GHz(tHalHandle hHal, v_BOOL_t nRoamPrefer5GHz);
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08002624
2625/* ---------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002626 \fn sme_setRoamIntraBand
2627 \brief enable/disable Intra band roaming
2628 This function is called through dynamic setConfig callback function
2629 to configure the intra band roaming
2630 \param hHal - HAL handle for device
2631 \param nRoamIntraBand Enable/Disable Intra band roaming
2632 \- return Success or failure
2633 -------------------------------------------------------------------------*/
2634eHalStatus sme_setRoamIntraBand(tHalHandle hHal, const v_BOOL_t nRoamIntraBand);
2635
2636/* ---------------------------------------------------------------------------
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002637 \fn sme_UpdateRoamScanNProbes
2638 \brief function to update roam scan N probes
2639 This function is called through dynamic setConfig callback function
2640 to update roam scan N probes
2641 \param hHal - HAL handle for device
2642 \param nProbes number of probe requests to be sent out
2643 \- return Success or failure
2644 -------------------------------------------------------------------------*/
2645eHalStatus sme_UpdateRoamScanNProbes(tHalHandle hHal, const v_U8_t nProbes);
2646
2647/* ---------------------------------------------------------------------------
2648 \fn sme_UpdateRoamScanHomeAwayTime
2649 \brief function to update roam scan Home away time
2650 This function is called through dynamic setConfig callback function
2651 to update roam scan home away time
2652 \param hHal - HAL handle for device
2653 \param nRoamScanAwayTime Scan home away time
2654 \- return Success or failure
2655 -------------------------------------------------------------------------*/
Srinivas Girigowda6cf0b822013-06-27 14:00:20 -07002656eHalStatus sme_UpdateRoamScanHomeAwayTime(tHalHandle hHal,
2657 const v_U16_t nRoamScanHomeAwayTime,
2658 const eAniBoolean bSendOffloadCmd);
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002659
2660/* ---------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002661 \fn sme_getRoamIntraBand
2662 \brief get Intra band roaming
2663 \param hHal - HAL handle for device
2664 \- return Success or failure
2665 -------------------------------------------------------------------------*/
2666v_BOOL_t sme_getRoamIntraBand(tHalHandle hHal);
2667
2668/* ---------------------------------------------------------------------------
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002669 \fn sme_getRoamScanNProbes
2670 \brief get N Probes
2671 \param hHal - HAL handle for device
2672 \- return Success or failure
2673 -------------------------------------------------------------------------*/
2674v_U8_t sme_getRoamScanNProbes(tHalHandle hHal);
2675
2676/* ---------------------------------------------------------------------------
2677 \fn sme_getRoamScanHomeAwayTime
2678 \brief get Roam scan home away time
2679 \param hHal - HAL handle for device
2680 \- return Success or failure
2681 -------------------------------------------------------------------------*/
2682v_U16_t sme_getRoamScanHomeAwayTime(tHalHandle hHal);
2683
2684/* ---------------------------------------------------------------------------
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08002685 \fn sme_UpdateImmediateRoamRssiDiff
2686 \brief Update nImmediateRoamRssiDiff
2687 This function is called through dynamic setConfig callback function
2688 to configure nImmediateRoamRssiDiff
2689 Usage: adb shell iwpriv wlan0 setConfig gImmediateRoamRssiDiff=[0 .. 125]
2690 \param hHal - HAL handle for device
2691 \param nImmediateRoamRssiDiff - minimum rssi difference between potential
2692 candidate and current AP.
2693 \- return Success or failure
2694 -------------------------------------------------------------------------*/
2695
2696eHalStatus sme_UpdateImmediateRoamRssiDiff(tHalHandle hHal, v_U8_t nImmediateRoamRssiDiff);
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002697
Srinivas Girigowdade697412013-02-14 16:31:48 -08002698/* ---------------------------------------------------------------------------
2699 \fn sme_UpdateRoamRssiDiff
2700 \brief Update RoamRssiDiff
2701 This function is called through dynamic setConfig callback function
2702 to configure RoamRssiDiff
2703 Usage: adb shell iwpriv wlan0 setConfig RoamRssiDiff=[0 .. 125]
2704 \param hHal - HAL handle for device
2705 \param RoamRssiDiff - minimum rssi difference between potential
2706 candidate and current AP.
2707 \- return Success or failure
2708 -------------------------------------------------------------------------*/
2709
2710eHalStatus sme_UpdateRoamRssiDiff(tHalHandle hHal, v_U8_t RoamRssiDiff);
2711
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002712/*--------------------------------------------------------------------------
2713 \brief sme_UpdateFastTransitionEnabled() - enable/disable Fast Transition support at runtime
2714 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2715 isFastTransitionEnabled.
2716 This is a synchronuous call
2717 \param hHal - The handle returned by macOpen.
2718 \return eHAL_STATUS_SUCCESS - SME update isFastTransitionEnabled config successfully.
2719 Other status means SME is failed to update isFastTransitionEnabled.
2720 \sa
2721 --------------------------------------------------------------------------*/
2722
2723eHalStatus sme_UpdateFastTransitionEnabled(tHalHandle hHal,
2724 v_BOOL_t isFastTransitionEnabled);
Srinivas Girigowda100eb322013-03-15 16:48:20 -07002725
2726/* ---------------------------------------------------------------------------
Srinivas Girigowdaad34ca92013-10-22 10:54:29 -07002727 \fn sme_UpdateWESMode
2728 \brief Update WESMode
2729 This function is called through dynamic setConfig callback function
2730 to configure isWESModeEnabled
2731 \param hHal - HAL handle for device
2732 \param isWESModeEnabled - Enable/Disable WES Mode
2733 \- return Success or failure
2734 -------------------------------------------------------------------------*/
2735eHalStatus sme_UpdateWESMode(tHalHandle hHal, v_BOOL_t isWESModeEnabled);
2736
2737/* ---------------------------------------------------------------------------
Srinivas Girigowda100eb322013-03-15 16:48:20 -07002738 \fn sme_SetRoamScanControl
2739 \brief Set roam scan control
2740 This function is called to set roam scan control
2741 if roam scan control is set to 0, roaming scan cache is cleared
2742 any value other than 0 is treated as invalid value
2743 \param hHal - HAL handle for device
2744 \return eHAL_STATUS_SUCCESS - SME update config successfully.
2745 Other status means SME failure to update
2746 -------------------------------------------------------------------------*/
2747eHalStatus sme_SetRoamScanControl(tHalHandle hHal, v_BOOL_t roamScanControl);
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002748#endif /* (WLAN_FEATURE_VOWIFI_11R) || (FEATURE_WLAN_ESE) || (FEATURE_WLAN_LFR) */
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002749
2750#ifdef FEATURE_WLAN_LFR
2751/*--------------------------------------------------------------------------
2752 \brief sme_UpdateIsFastRoamIniFeatureEnabled() - enable/disable LFR support at runtime
Srinivas Girigowdade697412013-02-14 16:31:48 -08002753 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002754 isFastRoamIniFeatureEnabled.
2755 This is a synchronuous call
2756 \param hHal - The handle returned by macOpen.
2757 \return eHAL_STATUS_SUCCESS - SME update isFastRoamIniFeatureEnabled config successfully.
2758 Other status means SME is failed to update isFastRoamIniFeatureEnabled.
2759 \sa
2760 --------------------------------------------------------------------------*/
2761
Srinivas Girigowdade697412013-02-14 16:31:48 -08002762eHalStatus sme_UpdateIsFastRoamIniFeatureEnabled(tHalHandle hHal,
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002763 const v_BOOL_t isFastRoamIniFeatureEnabled);
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07002764
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -08002765/*--------------------------------------------------------------------------
2766 \brief sme_UpdateIsMAWCIniFeatureEnabled() -
2767 Enable/disable LFR MAWC support at runtime
2768 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2769 isMAWCIniFeatureEnabled.
2770 This is a synchronous call
2771 \param hHal - The handle returned by macOpen.
2772 \return eHAL_STATUS_SUCCESS - SME update MAWCEnabled config successfully.
2773 Other status means SME is failed to update MAWCEnabled.
2774 \sa
2775 --------------------------------------------------------------------------*/
2776eHalStatus sme_UpdateIsMAWCIniFeatureEnabled(tHalHandle hHal,
2777 const v_BOOL_t MAWCEnabled);
2778
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07002779
2780#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
2781/*--------------------------------------------------------------------------
2782 \brief sme_UpdateEnableFastRoamInConcurrency() - enable/disable LFR if Concurrent session exists
2783 This is a synchronuous call
2784 \param hHal - The handle returned by macOpen.
2785 \return eHAL_STATUS_SUCCESS
2786 Other status means SME is failed
2787 \sa
2788 --------------------------------------------------------------------------*/
2789
2790eHalStatus sme_UpdateEnableFastRoamInConcurrency(tHalHandle hHal,
2791 v_BOOL_t bFastRoamInConIniFeatureEnabled);
2792#endif
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002793#endif /* FEATURE_WLAN_LFR */
2794
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002795#ifdef FEATURE_WLAN_ESE
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002796/*--------------------------------------------------------------------------
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002797 \brief sme_UpdateIsEseFeatureEnabled() - enable/disable ESE support at runtime
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002798 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002799 isEseIniFeatureEnabled.
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002800 This is a synchronuous call
2801 \param hHal - The handle returned by macOpen.
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002802 \return eHAL_STATUS_SUCCESS - SME update isEseIniFeatureEnabled config successfully.
2803 Other status means SME is failed to update isEseIniFeatureEnabled.
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002804 \sa
2805 --------------------------------------------------------------------------*/
2806
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002807eHalStatus sme_UpdateIsEseFeatureEnabled(tHalHandle hHal,
2808 const v_BOOL_t isEseIniFeatureEnabled);
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002809
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002810#endif /* FEATURE_WLAN_ESE */
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002811
2812/*--------------------------------------------------------------------------
2813 \brief sme_UpdateConfigFwRssiMonitoring() - enable/disable firmware RSSI Monitornig at runtime
2814 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2815 fEnableFwRssiMonitoring.
2816 This is a synchronuous call
2817 \param hHal - The handle returned by macOpen.
2818 \return eHAL_STATUS_SUCCESS - SME update fEnableFwRssiMonitoring config successfully.
2819 Other status means SME is failed to update
2820 \sa
2821 --------------------------------------------------------------------------*/
2822
2823eHalStatus sme_UpdateConfigFwRssiMonitoring(tHalHandle hHal,
2824 v_BOOL_t fEnableFwRssiMonitoring);
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002825
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002826#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
Srinivas Girigowdade697412013-02-14 16:31:48 -08002827/*--------------------------------------------------------------------------
2828 \brief sme_setNeighborLookupRssiThreshold() - update neighbor lookup rssi threshold
2829 This is a synchronuous call
2830 \param hHal - The handle returned by macOpen.
2831 \return eHAL_STATUS_SUCCESS - SME update config successful.
2832 Other status means SME is failed to update
2833 \sa
2834 --------------------------------------------------------------------------*/
2835eHalStatus sme_setNeighborLookupRssiThreshold(tHalHandle hHal,
2836 v_U8_t neighborLookupRssiThreshold);
2837
2838/*--------------------------------------------------------------------------
2839 \brief sme_setNeighborReassocRssiThreshold() - update neighbor reassoc rssi threshold
2840 This is a synchronuous call
2841 \param hHal - The handle returned by macOpen.
2842 \return eHAL_STATUS_SUCCESS - SME update config successful.
2843 Other status means SME is failed to update
2844 \sa
2845 --------------------------------------------------------------------------*/
2846eHalStatus sme_setNeighborReassocRssiThreshold(tHalHandle hHal,
2847 v_U8_t neighborReassocRssiThreshold);
2848
2849/*--------------------------------------------------------------------------
2850 \brief sme_getNeighborLookupRssiThreshold() - get neighbor lookup rssi threshold
2851 This is a synchronuous call
2852 \param hHal - The handle returned by macOpen.
2853 \return eHAL_STATUS_SUCCESS - SME update config successful.
2854 Other status means SME is failed to update
2855 \sa
2856 --------------------------------------------------------------------------*/
2857v_U8_t sme_getNeighborLookupRssiThreshold(tHalHandle hHal);
2858
2859/*--------------------------------------------------------------------------
2860 \brief sme_setNeighborScanRefreshPeriod() - set neighbor scan results refresh period
2861 This is a synchronuous call
2862 \param hHal - The handle returned by macOpen.
2863 \return eHAL_STATUS_SUCCESS - SME update config successful.
2864 Other status means SME is failed to update
2865 \sa
2866 --------------------------------------------------------------------------*/
2867eHalStatus sme_setNeighborScanRefreshPeriod(tHalHandle hHal,
2868 v_U16_t neighborScanResultsRefreshPeriod);
2869
2870/*--------------------------------------------------------------------------
2871 \brief sme_getNeighborScanRefreshPeriod() - get neighbor scan results refresh period
2872 This is a synchronuous call
2873 \param hHal - The handle returned by macOpen.
2874 \return eHAL_STATUS_SUCCESS - SME update config successful.
2875 Other status means SME is failed to update
2876 \sa
2877 --------------------------------------------------------------------------*/
2878v_U16_t sme_getNeighborScanRefreshPeriod(tHalHandle hHal);
2879
2880/*--------------------------------------------------------------------------
2881 \brief sme_getEmptyScanRefreshPeriod() - get empty scan refresh period
2882 This is a synchronuous call
2883 \param hHal - The handle returned by macOpen.
2884 \return eHAL_STATUS_SUCCESS - SME update config successful.
2885 Other status means SME is failed to update
2886 \sa
2887 --------------------------------------------------------------------------*/
2888v_U16_t sme_getEmptyScanRefreshPeriod(tHalHandle hHal);
2889
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002890/* ---------------------------------------------------------------------------
2891 \fn sme_UpdateEmptyScanRefreshPeriod
2892 \brief Update nEmptyScanRefreshPeriod
2893 This function is called through dynamic setConfig callback function
2894 to configure nEmptyScanRefreshPeriod
2895 Usage: adb shell iwpriv wlan0 setConfig nEmptyScanRefreshPeriod=[0 .. 60]
2896 \param hHal - HAL handle for device
2897 \param nEmptyScanRefreshPeriod - scan period following empty scan results.
2898 \- return Success or failure
2899 -------------------------------------------------------------------------*/
2900eHalStatus sme_UpdateEmptyScanRefreshPeriod(tHalHandle hHal, v_U16_t nEmptyScanRefreshPeriod);
2901
2902/* ---------------------------------------------------------------------------
2903 \fn sme_setNeighborScanMinChanTime
2904 \brief Update nNeighborScanMinChanTime
2905 This function is called through dynamic setConfig callback function
2906 to configure gNeighborScanChannelMinTime
2907 Usage: adb shell iwpriv wlan0 setConfig gNeighborScanChannelMinTime=[0 .. 60]
2908 \param hHal - HAL handle for device
2909 \param nNeighborScanMinChanTime - Channel minimum dwell time
2910 \- return Success or failure
2911 -------------------------------------------------------------------------*/
2912eHalStatus sme_setNeighborScanMinChanTime(tHalHandle hHal, const v_U16_t nNeighborScanMinChanTime);
2913
2914/* ---------------------------------------------------------------------------
2915 \fn sme_setNeighborScanMaxChanTime
2916 \brief Update nNeighborScanMaxChanTime
2917 This function is called through dynamic setConfig callback function
2918 to configure gNeighborScanChannelMaxTime
2919 Usage: adb shell iwpriv wlan0 setConfig gNeighborScanChannelMaxTime=[0 .. 60]
2920 \param hHal - HAL handle for device
2921 \param nNeighborScanMinChanTime - Channel maximum dwell time
2922 \- return Success or failure
2923 -------------------------------------------------------------------------*/
2924eHalStatus sme_setNeighborScanMaxChanTime(tHalHandle hHal, const v_U16_t nNeighborScanMaxChanTime);
2925
2926/* ---------------------------------------------------------------------------
2927 \fn sme_getNeighborScanMinChanTime
2928 \brief get neighbor scan min channel time
2929 \param hHal - The handle returned by macOpen.
2930 \return v_U16_t - channel min time value
2931 -------------------------------------------------------------------------*/
2932v_U16_t sme_getNeighborScanMinChanTime(tHalHandle hHal);
2933
2934/* ---------------------------------------------------------------------------
2935 \fn sme_getNeighborScanMaxChanTime
2936 \brief get neighbor scan max channel time
2937 \param hHal - The handle returned by macOpen.
2938 \return v_U16_t - channel max time value
2939 -------------------------------------------------------------------------*/
2940v_U16_t sme_getNeighborScanMaxChanTime(tHalHandle hHal);
2941
2942/* ---------------------------------------------------------------------------
2943 \fn sme_setNeighborScanPeriod
2944 \brief Update nNeighborScanPeriod
2945 This function is called through dynamic setConfig callback function
2946 to configure nNeighborScanPeriod
2947 Usage: adb shell iwpriv wlan0 setConfig nNeighborScanPeriod=[0 .. 60]
2948 \param hHal - HAL handle for device
2949 \param nNeighborScanPeriod - neighbor scan period
2950 \- return Success or failure
2951 -------------------------------------------------------------------------*/
2952eHalStatus sme_setNeighborScanPeriod(tHalHandle hHal, const v_U16_t nNeighborScanPeriod);
2953
2954/* ---------------------------------------------------------------------------
2955 \fn sme_getNeighborScanPeriod
2956 \brief get neighbor scan period
2957 \param hHal - The handle returned by macOpen.
2958 \return v_U16_t - neighbor scan period
2959 -------------------------------------------------------------------------*/
2960v_U16_t sme_getNeighborScanPeriod(tHalHandle hHal);
2961
2962#endif
Srinivas Girigowdade697412013-02-14 16:31:48 -08002963
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002964#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Srinivas Girigowdade697412013-02-14 16:31:48 -08002965/*--------------------------------------------------------------------------
2966 \brief sme_getRoamRssiDiff() - get Roam rssi diff
2967 This is a synchronuous call
2968 \param hHal - The handle returned by macOpen.
2969 \return eHAL_STATUS_SUCCESS - SME update config successful.
2970 Other status means SME is failed to update
2971 \sa
2972 --------------------------------------------------------------------------*/
2973v_U8_t sme_getRoamRssiDiff(tHalHandle hHal);
2974
2975/*--------------------------------------------------------------------------
2976 \brief sme_ChangeRoamScanChannelList() - Change roam scan channel list
2977 This is a synchronuous call
2978 \param hHal - The handle returned by macOpen.
2979 \return eHAL_STATUS_SUCCESS - SME update config successful.
2980 Other status means SME is failed to update
2981 \sa
2982 --------------------------------------------------------------------------*/
2983eHalStatus sme_ChangeRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList,
2984 tANI_U8 numChannels);
2985
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002986#ifdef FEATURE_WLAN_ESE_UPLOAD
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002987/*--------------------------------------------------------------------------
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002988 \brief sme_SetEseRoamScanChannelList() - set ese roam scan channel list
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002989 This is a synchronuous call
2990 \param hHal - The handle returned by macOpen.
2991 \return eHAL_STATUS_SUCCESS - SME update config successful.
2992 Other status means SME is failed to update
2993 \sa
2994 --------------------------------------------------------------------------*/
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002995eHalStatus sme_SetEseRoamScanChannelList(tHalHandle hHal,
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002996 tANI_U8 *pChannelList,
2997 tANI_U8 numChannels);
2998#endif
2999
Srinivas Girigowdade697412013-02-14 16:31:48 -08003000/*--------------------------------------------------------------------------
Srinivas Girigowdade697412013-02-14 16:31:48 -08003001 \brief sme_getRoamScanChannelList() - get roam scan channel list
3002 This is a synchronuous call
3003 \param hHal - The handle returned by macOpen.
3004 \return eHAL_STATUS_SUCCESS - SME update config successful.
3005 Other status means SME is failed to update
3006 \sa
3007 --------------------------------------------------------------------------*/
3008eHalStatus sme_getRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList,
3009 tANI_U8 *pNumChannels);
3010
3011/*--------------------------------------------------------------------------
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003012 \brief sme_getIsEseFeatureEnabled() - get ESE feature enabled or not
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07003013 This is a synchronuous call
3014 \param hHal - The handle returned by macOpen.
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003015 \return TRUE (1) - if the ESE feature is enabled
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07003016 FALSE (0) - if feature is disabled (compile or runtime)
3017 \sa
3018 --------------------------------------------------------------------------*/
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003019tANI_BOOLEAN sme_getIsEseFeatureEnabled(tHalHandle hHal);
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07003020
3021/*--------------------------------------------------------------------------
Srinivas Girigowdaad34ca92013-10-22 10:54:29 -07003022 \brief sme_getWESMode() - getWES Mode
3023 This is a synchronous call
3024 \param hHal - The handle returned by macOpen.
3025 \return v_U8_t - WES Mode Enabled(1)/Disabled(0)
3026 \sa
3027 --------------------------------------------------------------------------*/
3028v_BOOL_t sme_GetWESMode(tHalHandle hHal);
3029
3030/*--------------------------------------------------------------------------
Srinivas Girigowda100eb322013-03-15 16:48:20 -07003031 \brief sme_GetRoamScanControl() - get scan control
3032 This is a synchronous call
3033 \param hHal - The handle returned by macOpen.
3034 \return v_BOOL_t - Enabled(1)/Disabled(0)
3035 \sa
3036 --------------------------------------------------------------------------*/
3037v_BOOL_t sme_GetRoamScanControl(tHalHandle hHal);
3038
3039/* ---------------------------------------------------------------------------
3040 \fn sme_UpdateEmptyScanRefreshPeriod
3041 \brief Update nnEmptyScanRefreshPeriod
3042 This function is called through dynamic setConfig callback function
3043 to configure nnEmptyScanRefreshPeriod
3044 Usage: adb shell iwpriv wlan0 setConfig nEmptyScanRefreshPeriod=[0 .. 60]
3045 \param hHal - HAL handle for device
3046 \param nEmptyScanRefreshPeriod - scan period following empty scan results.
3047 \- return Success or failure
3048 -------------------------------------------------------------------------*/
3049
3050/*--------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07003051 \brief sme_getIsLfrFeatureEnabled() - get LFR feature enabled or not
3052 This is a synchronuous call
3053 \param hHal - The handle returned by macOpen.
3054 \return TRUE (1) - if the feature is enabled
3055 FALSE (0) - if feature is disabled (compile or runtime)
3056 \sa
3057 --------------------------------------------------------------------------*/
3058tANI_BOOLEAN sme_getIsLfrFeatureEnabled(tHalHandle hHal);
3059
3060/*--------------------------------------------------------------------------
3061 \brief sme_getIsFtFeatureEnabled() - get FT feature enabled or not
3062 This is a synchronuous call
3063 \param hHal - The handle returned by macOpen.
3064 \return TRUE (1) - if the feature is enabled
3065 FALSE (0) - if feature is disabled (compile or runtime)
3066 \sa
3067 --------------------------------------------------------------------------*/
3068tANI_BOOLEAN sme_getIsFtFeatureEnabled(tHalHandle hHal);
3069
Srinivas Girigowdade697412013-02-14 16:31:48 -08003070#endif
3071
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003072#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3073/*--------------------------------------------------------------------------
3074 \brief sme_UpdateRoamScanOffloadEnabled() - enable/disable roam scan offload feaure
3075 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
3076 gRoamScanOffloadEnabled.
3077 This is a synchronous call
3078 \param hHal - The handle returned by macOpen.
3079 \return eHAL_STATUS_SUCCESS - SME update config successfully.
3080 Other status means SME is failed to update.
3081 \sa
3082 --------------------------------------------------------------------------*/
3083
3084eHalStatus sme_UpdateRoamScanOffloadEnabled(tHalHandle hHal, v_BOOL_t nRoamScanOffloadEnabled);
3085#endif
3086
3087
Srinivas Girigowdade697412013-02-14 16:31:48 -08003088/* ---------------------------------------------------------------------------
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003089 \fn sme_IsFeatureSupportedByFW
Kiet Lam0f320422013-11-21 19:29:17 +05303090 \brief Check if a feature is enabled by FW
3091
3092 \param featEnumValue - Enumeration value of the feature to be checked.
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003093 A value from enum placeHolderInCapBitmap
3094
3095 \- return 1/0 (TRUE/FALSE)
3096 -------------------------------------------------------------------------*/
3097tANI_U8 sme_IsFeatureSupportedByFW(tANI_U8 featEnumValue);
Kiet Lam0f320422013-11-21 19:29:17 +05303098
3099/* ---------------------------------------------------------------------------
3100 \fn sme_IsFeatureSupportedByDriver
3101 \brief Check if a feature is enabled by driver
3102
3103 \param featEnumValue - Enumeration value of the feature to be checked.
3104 A value from enum placeHolderInCapBitmap
3105
3106 \- return 1/0 (TRUE/FALSE)
3107 -------------------------------------------------------------------------*/
3108tANI_U8 sme_IsFeatureSupportedByDriver(tANI_U8 featEnumValue);
3109
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003110#ifdef FEATURE_WLAN_TDLS
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05303111
3112/* ---------------------------------------------------------------------------
3113 \fn sme_SendTdlsLinkEstablishParams
3114 \brief API to send TDLS Link Establishment Parameters.
3115
3116 \param peerMac - peer's Mac Adress.
3117 \param tdlsLinkEstablishParams - TDLS Peer Link Establishment Parameters
3118 \- return VOS_STATUS_SUCCES
3119 -------------------------------------------------------------------------*/
3120
3121VOS_STATUS sme_SendTdlsLinkEstablishParams(tHalHandle hHal,
3122 tANI_U8 sessionId,
3123 tSirMacAddr peerMac,
3124 tCsrTdlsLinkEstablishParams *tdlsLinkEstablishParams);
3125
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003126/* ---------------------------------------------------------------------------
3127 \fn sme_SendTdlsMgmtFrame
3128 \brief API to send TDLS management frames.
3129
3130 \param peerMac - peer's Mac Adress.
3131 \param frame_type - Type of TDLS mgmt frame to be sent.
3132 \param dialog - dialog token used in the frame.
3133 \param status - status to be incuded in the frame.
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +05303134 \param peerCapability - peerCapability to be incuded in the frame.
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003135 \param buf - additional IEs to be included
3136 \param len - lenght of additional Ies
Hoonki Leea34dd892013-02-05 22:56:02 -08003137 \param responder - Tdls request type
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003138 \- return VOS_STATUS_SUCCES
3139 -------------------------------------------------------------------------*/
3140VOS_STATUS sme_SendTdlsMgmtFrame(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac,
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +05303141 tANI_U8 frame_type, tANI_U8 dialog, tANI_U16 status, tANI_U32 peerCapability, tANI_U8 *buf, tANI_U8 len, tANI_U8 responder);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003142/* ---------------------------------------------------------------------------
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003143 \fn sme_ChangeTdlsPeerSta
3144 \brief API to Update TDLS peer sta parameters.
3145
3146 \param peerMac - peer's Mac Adress.
3147 \param staParams - Peer Station Parameters.
3148 \- return VOS_STATUS_SUCCES
3149 -------------------------------------------------------------------------*/
3150VOS_STATUS sme_ChangeTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac,
3151 tCsrStaParams *pstaParams);
3152/* ---------------------------------------------------------------------------
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003153 \fn sme_AddTdlsPeerSta
3154 \brief API to Add TDLS peer sta entry.
3155
3156 \param peerMac - peer's Mac Adress.
3157 \- return VOS_STATUS_SUCCES
3158 -------------------------------------------------------------------------*/
3159VOS_STATUS sme_AddTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
3160/* ---------------------------------------------------------------------------
3161 \fn sme_DeleteTdlsPeerSta
3162 \brief API to Delete TDLS peer sta entry.
3163
3164 \param peerMac - peer's Mac Adress.
3165 \- return VOS_STATUS_SUCCES
3166 -------------------------------------------------------------------------*/
3167VOS_STATUS sme_DeleteTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
Gopichand Nakkala75e7b282013-03-15 18:37:13 -07003168/* ---------------------------------------------------------------------------
Gopichand Nakkalaccd3a382013-03-19 13:56:10 -07003169 \fn sme_SetTdlsPowerSaveProhibited
3170 \API to set/reset the isTdlsPowerSaveProhibited.
3171
3172 \- return void
3173 -------------------------------------------------------------------------*/
3174void sme_SetTdlsPowerSaveProhibited(tHalHandle hHal, v_BOOL_t val);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003175#endif
Gopichand Nakkalafe7246d2013-06-10 17:43:37 +05303176/* ---------------------------------------------------------------------------
3177 \fn sme_IsPmcBmps
3178 \brief API to Check if PMC state is BMPS.
3179
3180 \- return v_BOOL_t
3181 -------------------------------------------------------------------------*/
3182v_BOOL_t sme_IsPmcBmps(tHalHandle hHal);
3183
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003184#ifdef FEATURE_WLAN_TDLS_INTERNAL
3185typedef struct smeTdlsDisResult
3186{
3187 tSirMacAddr tdlsPeerMac;
3188 v_S7_t tdlsPeerRssi;
3189} tSmeTdlsDisResult;
3190
3191VOS_STATUS sme_StartTdlsDiscoveryReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
3192v_U8_t sme_GetTdlsDiscoveryResult(tHalHandle hHal,
3193 tSmeTdlsDisResult *disResult, v_U8_t listType);
3194VOS_STATUS sme_StartTdlsLinkSetupReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
3195VOS_STATUS sme_StartTdlsLinkTeardownReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003196#endif /* FEATURE_WLAN_TDLS */
Tushnim Bhattacharyya9cdf6082013-04-21 16:33:30 -07003197eHalStatus sme_UpdateDfsSetting(tHalHandle hHal, tANI_U8 fUpdateEnableDFSChnlScan);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003198
Gopichand Nakkalae620d5a2013-04-26 05:45:57 -07003199/*
3200 * SME API to enable/disable WLAN driver initiated SSR
3201 */
3202void sme_UpdateEnableSSR(tHalHandle hHal, tANI_BOOLEAN enableSSR);
3203
Gopichand Nakkaladacbcb52013-04-18 16:41:54 +05303204/* ---------------------------------------------------------------------------
3205
3206 \fn sme_SetPhyMode
3207
3208 \brief Changes the PhyMode.
3209
3210 \param hHal - The handle returned by macOpen.
3211
3212 \param phyMode new phyMode which is to set
3213
3214 \return eHalStatus SUCCESS.
3215
3216 -------------------------------------------------------------------------------*/
3217eHalStatus sme_SetPhyMode(tHalHandle hHal, eCsrPhyMode phyMode);
3218
3219/* ---------------------------------------------------------------------------
3220
3221 \fn sme_GetPhyMode
3222
3223 \brief gets current PhyMode.
3224
3225 \param hHal - The handle returned by macOpen.
3226
3227 \return eHalStatus PhyMode
3228
3229 -------------------------------------------------------------------------------*/
3230eCsrPhyMode sme_GetPhyMode(tHalHandle hHal);
3231
Ravi Joshiaeb7d9e2013-05-02 12:28:14 -07003232/*
3233 * SME API to determine the channel bonding mode
3234 */
3235VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, tANI_U8 channel);
3236
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07003237#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3238/*--------------------------------------------------------------------------
3239 \brief sme_HandoffRequest() - a wrapper function to Request a handoff
3240 from CSR.
3241 This is a synchronous call
3242 \param hHal - The handle returned by macOpen
3243 \param pHandoffInfo - info provided by HDD with the handoff request (namely:
3244 BSSID, channel etc.)
3245 \return eHAL_STATUS_SUCCESS - SME passed the request to CSR successfully.
3246 Other status means SME is failed to send the request.
3247 \sa
3248 --------------------------------------------------------------------------*/
3249
3250eHalStatus sme_HandoffRequest(tHalHandle hHal, tCsrHandoffRequest *pHandoffInfo);
3251#endif
Sudhir Sattayappa Kohalli37620692013-08-05 14:02:26 -07003252/*--------------------------------------------------------------------------
3253 \brief sme_isSta_p2p_clientConnected() - a wrapper function to check if there
3254 is any connected session .
3255 This is a synchronous call
3256 \param hHal - The handle returned by macOpen
3257 \return VOS_STATUS - SME passed the request to CSR successfully.
3258 Other status means SME is failed to send the request.
3259 \sa
3260 --------------------------------------------------------------------------*/
Sudhir Sattayappa Kohallib1d8c3a2013-06-18 14:47:20 -07003261VOS_STATUS sme_isSta_p2p_clientConnected(tHalHandle hHal);
Leo Chang9056f462013-08-01 19:21:11 -07003262
3263#ifdef FEATURE_WLAN_LPHB
3264/* ---------------------------------------------------------------------------
3265 \fn sme_LPHBConfigReq
3266 \API to make configuration LPHB within FW.
3267 \param hHal - The handle returned by macOpen
3268 \param lphdReq - LPHB request argument by client
3269 \param pCallbackfn - LPHB timeout notification callback function pointer
3270 \- return Configuration message posting status, SUCCESS or Fail
3271 -------------------------------------------------------------------------*/
3272eHalStatus sme_LPHBConfigReq(
3273 tHalHandle hHal,
3274 tSirLPHBReq *lphdReq,
3275 void (*pCallbackfn)(void *pAdapter, void *indParam));
3276#endif /* FEATURE_WLAN_LPHB */
Yue Mab9c86f42013-08-14 15:59:08 -07003277
3278/* ---------------------------------------------------------------------------
3279 \fn sme_AddPeriodicTxPtrn
3280 \brief API to Periodic TX Pattern Offload feature
3281 \param hHal - The handle returned by macOpen
3282 \param addPeriodicTxPtrnParams - Pointer to the add pattern structure
3283 \return eHalStatus
3284 ---------------------------------------------------------------------------*/
3285eHalStatus sme_AddPeriodicTxPtrn(tHalHandle hHal, tSirAddPeriodicTxPtrn
3286 *addPeriodicTxPtrnParams);
3287
3288/* ---------------------------------------------------------------------------
3289 \fn sme_DelPeriodicTxPtrn
3290 \brief API to Periodic TX Pattern Offload feature
3291 \param hHal - The handle returned by macOpen
3292 \param delPeriodicTxPtrnParams - Pointer to the deleting pattern structure
3293 \return eHalStatus
3294 ---------------------------------------------------------------------------*/
3295eHalStatus sme_DelPeriodicTxPtrn(tHalHandle hHal, tSirDelPeriodicTxPtrn
3296 *delPeriodicTxPtrnParams);
Sudhir Sattayappa Kohalli37620692013-08-05 14:02:26 -07003297/*--------------------------------------------------------------------------
3298 \brief sme_enable_disable_split_scan() - a wrapper function to set the split
3299 scan parameter.
3300 This is a synchronous call
3301 \param hHal - The handle returned by macOpen
3302 \return None.
3303 \sa
3304 --------------------------------------------------------------------------*/
3305void sme_enable_disable_split_scan (tHalHandle hHal, tANI_U8 nNumStaChan,
3306 tANI_U8 nNumP2PChan);
Madan Mohan Koyyalamudi48101412013-09-11 23:09:37 +05303307
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003308/* ---------------------------------------------------------------------------
3309 \fn sme_SendRateUpdateInd
3310 \brief API to Update rate
3311 \param hHal - The handle returned by macOpen
3312 \param rateUpdateParams - Pointer to rate update params
3313 \return eHalStatus
3314 ---------------------------------------------------------------------------*/
3315eHalStatus sme_SendRateUpdateInd(tHalHandle hHal, tSirRateUpdateInd *rateUpdateParams);
3316
Madan Mohan Koyyalamudi48101412013-09-11 23:09:37 +05303317/*
3318 * sme API to trigger fast BSS roam to a given BSSID independent of RSSI
3319 * triggers
3320 * return status
3321*/
3322eHalStatus smeIssueFastRoamNeighborAPEvent (tHalHandle hHal,
3323 tANI_U8 *bssid,
3324 tSmeFastRoamTrigger fastRoamTrig);
Leela Venkata Kiran Kumar Reddy Chiralaede10652013-09-11 18:48:46 -07003325eHalStatus sme_RoamDelPMKIDfromCache( tHalHandle hHal, tANI_U8 sessionId, tANI_U8 *pBSSId );
Tushnim Bhattacharyyaad37df12013-10-02 12:01:33 -07003326
3327void smeGetCommandQStatus( tHalHandle hHal );
Rajeev79dbe4c2013-10-05 11:03:42 +05303328
3329#ifdef FEATURE_WLAN_BATCH_SCAN
3330/* ---------------------------------------------------------------------------
3331 \fn sme_SetBatchScanReq
3332 \brief API to set batch scan request in FW
3333 \param hHal - The handle returned by macOpen.
3334 \param pRequest - Pointer to the batch request.
3335 \param sessionId - session ID
3336 \param callbackRoutine - HDD callback which needs to be invoked after
3337 getting set batch scan response from FW
3338 \param callbackContext - pAdapter context
3339 \return eHalStatus
3340 ---------------------------------------------------------------------------*/
3341eHalStatus
3342sme_SetBatchScanReq
3343(
3344 tHalHandle hHal, tSirSetBatchScanReq *pRequest, tANI_U8 sessionId,
3345 void (*callbackRoutine) (void *callbackCtx, tSirSetBatchScanRsp *pRsp),
3346 void *callbackContext
3347);
3348
3349/* ---------------------------------------------------------------------------
3350 \fn sme_TriggerBatchScanResultInd
3351 \brief API to trigger batch scan result indications from from FW
3352 \param hHal - The handle returned by macOpen.
3353 \param pRequest - Pointer to get batch request.
3354 \param sessionId - session ID
3355 \param callbackRoutine - HDD callback which needs to be invoked after
3356 getting get batch scan response from FW
3357 \param callbackContext - pAdapter context
3358 \return eHalStatus
3359 ---------------------------------------------------------------------------*/
3360eHalStatus
3361sme_TriggerBatchScanResultInd
3362(
3363 tHalHandle hHal, tSirTriggerBatchScanResultInd *pRequest, tANI_U8 sessionId,
3364 void (*callbackRoutine) (void *callbackCtx, void *pRsp),
3365 void *callbackContext
3366);
3367
3368/* ---------------------------------------------------------------------------
3369 \fn sme_StopBatchScanInd
3370 \brief API to stop batch scan request in FW
3371 \param hHal - The handle returned by macOpen.
3372 \param pRequest - Pointer to stop batch indication
3373 \return eHalStatus
3374 ---------------------------------------------------------------------------*/
3375eHalStatus
3376sme_StopBatchScanInd
3377(
3378 tHalHandle hHal, tSirStopBatchScanInd *pInd, tANI_U8 sessionId
3379);
3380
3381#endif
Leo Chang0b0e45a2013-12-15 15:18:55 -08003382
3383#ifdef FEATURE_WLAN_CH_AVOID
3384/* ---------------------------------------------------------------------------
3385 \fn sme_AddChAvoidCallback
3386 \brief Used to plug in callback function
3387 Which notify channel may not be used with SAP or P2PGO mode.
3388 Notification come from FW.
3389 \param hHal
3390 \param pCallbackfn : callback function pointer should be plugged in
3391 \- return eHalStatus
3392 -------------------------------------------------------------------------*/
3393eHalStatus sme_AddChAvoidCallback
3394(
3395 tHalHandle hHal,
3396 void (*pCallbackfn)(void *pAdapter, void *indParam)
3397);
3398#endif /* FEATURE_WLAN_CH_AVOID */
Tushnim Bhattacharyyaed4d0c22014-01-30 11:56:44 -08003399eHalStatus sme_UpdateConnectDebug(tHalHandle hHal, tANI_U32 set_value);
Sushant Kaushike0d2cce2014-04-10 14:36:07 +05303400/* ---------------------------------------------------------------------------
3401 \fn sme_requestTypetoString
3402 \brief API to convert requestType enum values
3403 to string.
3404 ---------------------------------------------------------------------------*/
3405const char * sme_requestTypetoString(const v_U8_t requestType);
3406/* ---------------------------------------------------------------------------
3407 \fn sme_PmcStatetoString
3408 \brief API to convert PmcState enum values
3409 to string.
3410 ---------------------------------------------------------------------------*/
3411const char * sme_PmcStatetoString(const v_U8_t pmcState);
c_hpothu92367912014-05-01 15:18:17 +05303412
3413eHalStatus sme_getBcnMissRate(tHalHandle, tANI_U8, void *, void *);
3414
Agarwal Ashish5e414792014-06-08 15:25:23 +05303415tANI_BOOLEAN sme_Is11dCountrycode(tHalHandle hHal);
Jeff Johnson295189b2012-06-20 16:38:30 -07003416#endif //#if !defined( __SME_API_H )