blob: 778dcc51c1f03e6995a255d626272952c0827f06 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, 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/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42#if !defined( __SME_API_H )
43#define __SME_API_H
44
45
46/**=========================================================================
47
48 \file smeApi.h
49
50 \brief prototype for SME APIs
51
52 Copyright 2008 (c) Qualcomm, Incorporated. All Rights Reserved.
53
54 Qualcomm Confidential and Proprietary.
55
56 ========================================================================*/
57
58/* $Header$ */
59
60/*--------------------------------------------------------------------------
61 Include Files
62 ------------------------------------------------------------------------*/
63#include "ccmApi.h"
64#include "csrApi.h"
65#include "pmcApi.h"
66#include "vos_mq.h"
67#include "vos_lock.h"
68#include "halTypes.h"
69#include "sirApi.h"
70#include "btcApi.h"
71#include "vos_nvitem.h"
72#include "p2p_Api.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070073
Jeff Johnsone7245742012-09-05 17:12:55 -070074#ifdef FEATURE_OEM_DATA_SUPPORT
75#include "oemDataApi.h"
76#endif
Jeff Johnson295189b2012-06-20 16:38:30 -070077
78#if defined WLAN_FEATURE_VOWIFI
79#include "smeRrmInternal.h"
80#endif
81
82/*--------------------------------------------------------------------------
83 Preprocessor definitions and constants
84 ------------------------------------------------------------------------*/
85
86#define SME_SUMMARY_STATS 1
87#define SME_GLOBAL_CLASSA_STATS 2
88#define SME_GLOBAL_CLASSB_STATS 4
89#define SME_GLOBAL_CLASSC_STATS 8
90#define SME_GLOBAL_CLASSD_STATS 16
91#define SME_PER_STA_STATS 32
92
93#define SME_INVALID_COUNTRY_CODE "XX"
94
95/*--------------------------------------------------------------------------
96 Type declarations
97 ------------------------------------------------------------------------*/
98typedef struct _smeConfigParams
99{
100 tCsrConfigParam csrConfig;
101#if defined WLAN_FEATURE_VOWIFI
102 tRrmConfigParam rrmConfig;
103#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700104#if defined FEATURE_WLAN_LFR
105 tANI_U8 isFastRoamIniFeatureEnabled;
106#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700107#if defined FEATURE_WLAN_CCX
108 tANI_U8 isCcxIniFeatureEnabled;
109#endif
110#if defined WLAN_FEATURE_P2P_INTERNAL
111 tP2PConfigParam p2pConfig;
112#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700113#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
Srinivas Girigowda100eb322013-03-15 16:48:20 -0700114 tANI_U8 isFastTransitionEnabled;
115 tANI_U8 RoamRssiDiff;
Jeff Johnson295189b2012-06-20 16:38:30 -0700116#endif
Gopichand Nakkala86e42662013-06-11 17:44:11 +0530117 tANI_BOOLEAN fScanOffload;
Jeff Johnson295189b2012-06-20 16:38:30 -0700118} tSmeConfigParams, *tpSmeConfigParams;
119
120
121/*-------------------------------------------------------------------------
122 Function declarations and documenation
123 ------------------------------------------------------------------------*/
124
125/*--------------------------------------------------------------------------
126
127 \brief sme_Open() - Initialze all SME modules and put them at idle state
128
129 The function initializes each module inside SME, PMC, CCM, CSR, etc. . Upon
130 successfully return, all modules are at idle state ready to start.
131
132 smeOpen must be called before any other SME APIs can be involved.
133 smeOpen must be called after macOpen.
134
135 \param hHal - The handle returned by macOpen.
136
137 \return eHAL_STATUS_SUCCESS - SME is successfully initialized.
138
139 Other status means SME is failed to be initialized
140 \sa
141
142 --------------------------------------------------------------------------*/
143eHalStatus sme_Open(tHalHandle hHal);
144
145/*--------------------------------------------------------------------------
146
147 \brief sme_Close() - Release all SME modules and their resources.
148
149 The function release each module in SME, PMC, CCM, CSR, etc. . Upon
150 return, all modules are at closed state.
151
152 No SME APIs can be involved after sme_Close except sme_Open.
153 sme_Close must be called before macClose.
154
155 \param hHal - The handle returned by macOpen.
156
157 \return eHAL_STATUS_SUCCESS - SME is successfully close.
158
159 Other status means SME is failed to be closed but caller still cannot
160 call any other SME functions except smeOpen.
161 \sa
162
163 --------------------------------------------------------------------------*/
164eHalStatus sme_Close(tHalHandle hHal);
165
166/*--------------------------------------------------------------------------
167
168 \brief sme_Start() - Put all SME modules at ready state.
169
170 The function starts each module in SME, PMC, CCM, CSR, etc. . Upon
171 successfully return, all modules are ready to run.
172
173 \param hHal - The handle returned by macOpen.
174
175 \return eHAL_STATUS_SUCCESS - SME is ready.
176
177 Other status means SME is failed to start.
178 \sa
179
180 --------------------------------------------------------------------------*/
181eHalStatus sme_Start(tHalHandle hHal);
182
183/*--------------------------------------------------------------------------
184
185 \brief sme_Stop() - Stop all SME modules and put them at idle state
186
187 The function stops each module in SME, PMC, CCM, CSR, etc. . Upon
188 return, all modules are at idle state ready to start.
189
190
191 \param hHal - The handle returned by macOpen.
192
193 \param pmcFlag - The flag tells SME if we want to stop PMC or not
194
195 \return eHAL_STATUS_SUCCESS - SME is stopped.
196
197 Other status means SME is failed to stop but caller should still consider
198 SME is stopped.
199 \sa
200
201 --------------------------------------------------------------------------*/
202eHalStatus sme_Stop(tHalHandle hHal, tANI_BOOLEAN pmcFlag);
203
204
205/*--------------------------------------------------------------------------
206
207 \brief sme_OpenSession() - Open a session for scan/roam operation.
208
209 This is a synchronous API.
210
211
212 \param hHal - The handle returned by macOpen.
213 \param callback - A pointer to the function caller specifies for roam/connect status indication
214 \param pContext - The context passed with callback
215 \param pSelfMacAddr - Caller allocated memory filled with self MAC address (6 bytes)
216 \param pbSessionId - pointer to a caller allocated buffer for returned session ID
217
218 \return eHAL_STATUS_SUCCESS - session is opened. sessionId returned.
219
220 Other status means SME is failed to open the session.
221 eHAL_STATUS_RESOURCES - no more session available.
222 \sa
223
224 --------------------------------------------------------------------------*/
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -0700225eHalStatus sme_OpenSession(tHalHandle hHal, csrRoamCompleteCallback callback,
226 void *pContext, tANI_U8 *pSelfMacAddr,
227 tANI_U8 *pbSessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700228
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -0700229/*--------------------------------------------------------------------------
230
231 \brief sme_SetCurrDeviceMode() - Sets the current operating device mode.
232 \param hHal - The handle returned by macOpen.
233 \param currDeviceMode - Current operating device mode.
234 --------------------------------------------------------------------------*/
235
236void sme_SetCurrDeviceMode (tHalHandle hHal, tVOS_CON_MODE currDeviceMode);
Jeff Johnson295189b2012-06-20 16:38:30 -0700237
238/*--------------------------------------------------------------------------
239
240 \brief sme_CloseSession() - Open a session for scan/roam operation.
241
242 This is a synchronous API.
243
244
245 \param hHal - The handle returned by macOpen.
246
247 \param sessionId - A previous opened session's ID.
248
249 \return eHAL_STATUS_SUCCESS - session is closed.
250
251 Other status means SME is failed to open the session.
252 eHAL_STATUS_INVALID_PARAMETER - session is not opened.
253 \sa
254
255 --------------------------------------------------------------------------*/
256eHalStatus sme_CloseSession(tHalHandle hHal, tANI_U8 sessionId,
257 csrRoamSessionCloseCallback callback, void *pContext);
258
259
260
261/*--------------------------------------------------------------------------
262
263 \brief sme_UpdateConfig() - Change configurations for all SME moduels
264
265 The function updates some configuration for modules in SME, CCM, CSR, etc
266 during SMEs close -> open sequence.
267
268 Modules inside SME apply the new configuration at the next transaction.
269
270
271 \param hHal - The handle returned by macOpen.
272 \Param pSmeConfigParams - a pointer to a caller allocated object of
273 typedef struct _smeConfigParams.
274
275 \return eHAL_STATUS_SUCCESS - SME update the config parameters successfully.
276
277 Other status means SME is failed to update the config parameters.
278 \sa
279
280 --------------------------------------------------------------------------*/
281eHalStatus sme_UpdateConfig(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
282
283#ifdef FEATURE_WLAN_SCAN_PNO
284/*--------------------------------------------------------------------------
285
286 \brief sme_UpdateChannelConfig() - Update channel configuration in RIVA.
287
288 It is used at driver start up to inform RIVA of the default channel
289 configuration.
290
291 This is a synchronuous call
292
293 \param hHal - The handle returned by macOpen.
294
295 \return eHAL_STATUS_SUCCESS - SME update the channel config successfully.
296
297 Other status means SME is failed to update the channel config.
298 \sa
299
300 --------------------------------------------------------------------------*/
301eHalStatus sme_UpdateChannelConfig(tHalHandle hHal);
302
303#endif // FEATURE_WLAN_SCAN_PNLO
Jeff Johnson295189b2012-06-20 16:38:30 -0700304/*--------------------------------------------------------------------------
305
306 \brief sme_set11dinfo() - Set the 11d information about valid channels
307 and there power using information from nvRAM
308 This function is called only for AP.
309
310 This is a synchronuous call
311
312 \param hHal - The handle returned by macOpen.
313 \Param pSmeConfigParams - a pointer to a caller allocated object of
314 typedef struct _smeConfigParams.
315
316 \return eHAL_STATUS_SUCCESS - SME update the config parameters successfully.
317
318 Other status means SME is failed to update the config parameters.
319 \sa
320--------------------------------------------------------------------------*/
321
322eHalStatus sme_set11dinfo(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
323
324/*--------------------------------------------------------------------------
325
326 \brief sme_getSoftApDomain() - Get the current regulatory domain of softAp.
327
328 This is a synchronuous call
329
330 \param hHal - The handle returned by HostapdAdapter.
331 \Param v_REGDOMAIN_t - The current Regulatory Domain requested for SoftAp.
332
333 \return eHAL_STATUS_SUCCESS - SME successfully completed the request.
334
335 Other status means, failed to get the current regulatory domain.
336 \sa
337--------------------------------------------------------------------------*/
338
339eHalStatus sme_getSoftApDomain(tHalHandle hHal, v_REGDOMAIN_t *domainIdSoftAp);
340
341eHalStatus sme_setRegInfo(tHalHandle hHal, tANI_U8 *apCntryCode);
342
Jeff Johnson295189b2012-06-20 16:38:30 -0700343
344/* ---------------------------------------------------------------------------
345 \fn sme_ChangeConfigParams
346 \brief The SME API exposed for HDD to provide config params to SME during
347 SMEs stop -> start sequence.
348
349 If HDD changed the domain that will cause a reset. This function will
350 provide the new set of 11d information for the new domain. Currrently this
351 API provides info regarding 11d only at reset but we can extend this for
352 other params (PMC, QoS) which needs to be initialized again at reset.
353
354 This is a synchronuous call
355
356 \param hHal - The handle returned by macOpen.
357
358 \Param
359 pUpdateConfigParam - a pointer to a structure (tCsrUpdateConfigParam) that
360 currently provides 11d related information like Country code,
361 Regulatory domain, valid channel list, Tx power per channel, a
362 list with active/passive scan allowed per valid channel.
363
364 \return eHalStatus
365 ---------------------------------------------------------------------------*/
366eHalStatus sme_ChangeConfigParams(tHalHandle hHal,
367 tCsrUpdateConfigParam *pUpdateConfigParam);
368
369/*--------------------------------------------------------------------------
370
371 \brief sme_HDDReadyInd() - SME sends eWNI_SME_SYS_READY_IND to PE to inform that the NIC
372 is ready tio run.
373
374 The function is called by HDD at the end of initialization stage so PE/HAL can enable the NIC
375 to running state.
376
377
378 \param hHal - The handle returned by macOpen.
379
380 \return eHAL_STATUS_SUCCESS - eWNI_SME_SYS_READY_IND is sent to PE successfully.
381
382 Other status means SME failed to send the message to PE.
383 \sa
384
385 --------------------------------------------------------------------------*/
386eHalStatus sme_HDDReadyInd(tHalHandle hHal);
387
388
389/*--------------------------------------------------------------------------
390
391 \brief sme_ProcessMsg() - The main message processor for SME.
392
393 The function is called by a message dispatcher when to process a message
394 targeted for SME.
395
396
397 \param hHal - The handle returned by macOpen.
398 \param pMsg - A pointer to a caller allocated object of tSirMsgQ.
399
400 \return eHAL_STATUS_SUCCESS - SME successfully process the message.
401
402 Other status means SME failed to process the message.
403 \sa
404
405 --------------------------------------------------------------------------*/
406eHalStatus sme_ProcessMsg(tHalHandle hHal, vos_msg_t* pMsg);
407
408v_VOID_t sme_FreeMsg( tHalHandle hHal, vos_msg_t* pMsg );
409
410/* ---------------------------------------------------------------------------
411 \fn sme_ScanRequest
412 \brief a wrapper function to Request a 11d or full scan from CSR.
413 \param pScanRequestID - pointer to an object to get back the request ID
414 \param callback - a callback function that scan calls upon finish, will not
415 be called if csrScanRequest returns error
416 \param pContext - a pointer passed in for the callback
417 \return eHalStatus
418 ---------------------------------------------------------------------------*/
419eHalStatus sme_ScanRequest(tHalHandle hHal, tANI_U8 sessionId, tCsrScanRequest *,
420 tANI_U32 *pScanRequestID,
421 csrScanCompleteCallback callback, void *pContext);
422
423
424/* ---------------------------------------------------------------------------
425 \fn sme_ScanSetBGScanparams
426 \brief a wrapper function to request CSR to set BG scan params in PE
427 \param pScanReq - BG scan request structure
428 \return eHalStatus
429 ---------------------------------------------------------------------------*/
430eHalStatus sme_ScanSetBGScanparams(tHalHandle hHal, tANI_U8 sessionId, tCsrBGScanRequest *pScanReq);
431
432
433/* ---------------------------------------------------------------------------
434 \fn sme_ScanGetResult
435 \brief a wrapper function to request scan results from CSR.
436 \param pFilter - If pFilter is NULL, all cached results are returned
437 \param phResult - an object for the result.
438 \return eHalStatus
439 ---------------------------------------------------------------------------*/
440eHalStatus sme_ScanGetResult(tHalHandle hHal, tANI_U8 sessionId, tCsrScanResultFilter *pFilter,
441 tScanResultHandle *phResult);
442
443
444/* ---------------------------------------------------------------------------
445 \fn sme_ScanFlushResult
446 \brief a wrapper function to request CSR to clear scan results.
447 \return eHalStatus
448 ---------------------------------------------------------------------------*/
449eHalStatus sme_ScanFlushResult(tHalHandle hHal, tANI_U8 sessionId);
Madan Mohan Koyyalamudia3fcf142012-10-18 15:01:20 -0700450eHalStatus sme_ScanFlushP2PResult(tHalHandle hHal, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700451
452/* ---------------------------------------------------------------------------
453 \fn sme_ScanResultGetFirst
454 \brief a wrapper function to request CSR to returns the first element of
455 scan result.
456 \param hScanResult - returned from csrScanGetResult
457 \return tCsrScanResultInfo * - NULL if no result
458 ---------------------------------------------------------------------------*/
459tCsrScanResultInfo *sme_ScanResultGetFirst(tHalHandle,
460 tScanResultHandle hScanResult);
461
462/* ---------------------------------------------------------------------------
463 \fn sme_ScanResultGetNext
464 \brief a wrapper function to request CSR to returns the next element of
465 scan result. It can be called without calling csrScanResultGetFirst
466 first
467 \param hScanResult - returned from csrScanGetResult
468 \return Null if no result or reach the end
469 ---------------------------------------------------------------------------*/
470tCsrScanResultInfo *sme_ScanResultGetNext(tHalHandle,
471 tScanResultHandle hScanResult);
472
473/* ---------------------------------------------------------------------------
474 \fn sme_ScanResultPurge
475 \brief a wrapper function to request CSR to remove all items(tCsrScanResult)
476 in the list and free memory for each item
477 \param hScanResult - returned from csrScanGetResult. hScanResult is
478 considered gone by
479 calling this function and even before this function reutrns.
480 \return eHalStatus
481 ---------------------------------------------------------------------------*/
482eHalStatus sme_ScanResultPurge(tHalHandle hHal, tScanResultHandle hScanResult);
483
484/* ---------------------------------------------------------------------------
485 \fn sme_ScanGetPMKIDCandidateList
486 \brief a wrapper function to return the PMKID candidate list
487 \param pPmkidList - caller allocated buffer point to an array of
488 tPmkidCandidateInfo
489 \param pNumItems - pointer to a variable that has the number of
490 tPmkidCandidateInfo allocated when retruning, this is
491 either the number needed or number of items put into
492 pPmkidList
493 \return eHalStatus - when fail, it usually means the buffer allocated is not
494 big enough and pNumItems
495 has the number of tPmkidCandidateInfo.
496 \Note: pNumItems is a number of tPmkidCandidateInfo,
497 not sizeof(tPmkidCandidateInfo) * something
498 ---------------------------------------------------------------------------*/
499eHalStatus sme_ScanGetPMKIDCandidateList(tHalHandle hHal, tANI_U8 sessionId,
500 tPmkidCandidateInfo *pPmkidList,
501 tANI_U32 *pNumItems );
502
503
504/*----------------------------------------------------------------------------
505 \fn sme_RoamRegisterLinkQualityIndCallback
506
507 \brief
508 a wrapper function to allow HDD to register a callback handler with CSR for
509 link quality indications.
510
511 Only one callback may be registered at any time.
512 In order to deregister the callback, a NULL cback may be provided.
513
514 Registration happens in the task context of the caller.
515
516 \param callback - Call back being registered
517 \param pContext - user data
518
519 DEPENDENCIES: After CSR open
520
521 \return eHalStatus
522-----------------------------------------------------------------------------*/
523eHalStatus sme_RoamRegisterLinkQualityIndCallback(tHalHandle hHal, tANI_U8 sessionId,
524 csrRoamLinkQualityIndCallback callback,
525 void *pContext);
526
527
528/* ---------------------------------------------------------------------------
529 \fn sme_RoamConnect
530 \brief a wrapper function to request CSR to inititiate an association
531 \param sessionId - the sessionId returned by sme_OpenSession.
532 \param pProfile - can be NULL to join to any open ones
533 \param pRoamId - to get back the request ID
534 \return eHalStatus
535 ---------------------------------------------------------------------------*/
536eHalStatus sme_RoamConnect(tHalHandle hHal, tANI_U8 sessionId, tCsrRoamProfile *pProfile,
537 tANI_U32 *pRoamId);
538
539/* ---------------------------------------------------------------------------
540 \fn sme_RoamReassoc
541 \brief a wrapper function to request CSR to inititiate a re-association
542 \param pProfile - can be NULL to join the currently connected AP. In that
543 case modProfileFields should carry the modified field(s) which could trigger
544 reassoc
545 \param modProfileFields - fields which are part of tCsrRoamConnectedProfile
546 that might need modification dynamically once STA is up & running and this
547 could trigger a reassoc
548 \param pRoamId - to get back the request ID
549 \return eHalStatus
550 -------------------------------------------------------------------------------*/
551eHalStatus sme_RoamReassoc(tHalHandle hHal, tANI_U8 sessionId, tCsrRoamProfile *pProfile,
552 tCsrRoamModifyProfileFields modProfileFields,
Madan Mohan Koyyalamudiea22cdc2012-10-18 21:02:23 -0700553 tANI_U32 *pRoamId, v_BOOL_t fForce);
Jeff Johnson295189b2012-06-20 16:38:30 -0700554
555/* ---------------------------------------------------------------------------
556 \fn sme_RoamConnectToLastProfile
557 \brief a wrapper function to request CSR to disconnect and reconnect with
558 the same profile
559 \return eHalStatus. It returns fail if currently connected
560 ---------------------------------------------------------------------------*/
561eHalStatus sme_RoamConnectToLastProfile(tHalHandle hHal, tANI_U8 sessionId);
562
563/* ---------------------------------------------------------------------------
564 \fn sme_RoamDisconnect
565 \brief a wrapper function to request CSR to disconnect from a network
566 \param reason -- To indicate the reason for disconnecting. Currently, only
567 eCSR_DISCONNECT_REASON_MIC_ERROR is meanful.
568 \return eHalStatus
569 ---------------------------------------------------------------------------*/
570eHalStatus sme_RoamDisconnect(tHalHandle hHal, tANI_U8 sessionId, eCsrRoamDisconnectReason reason);
571
Jeff Johnson295189b2012-06-20 16:38:30 -0700572/* ---------------------------------------------------------------------------
573 \fn sme_RoamStopBss
574 \brief a wrapper function to request CSR to stop bss
575 \param sessionId - sessionId of SoftAP
576 \return eHalStatus
577 ---------------------------------------------------------------------------*/
578eHalStatus sme_RoamStopBss(tHalHandle hHal, tANI_U8 sessionId);
579
580/* ---------------------------------------------------------------------------
581 \fn sme_RoamGetAssociatedStas
582 \brief To probe the list of associated stations from various modules of CORE stack.
583 \This is an asynchronous API.
584 \param sessionId - sessionId of SoftAP
585 \param modId - Module from whom list of associtated stations is to be probed.
586 If an invalid module is passed then by default VOS_MODULE_ID_PE will be probed
587 \param pUsrContext - Opaque HDD context
588 \param pfnSapEventCallback - Sap event callback in HDD
589 \param pAssocBuf - Caller allocated memory to be filled with associatd stations info
590 \return eHalStatus
591 -------------------------------------------------------------------------------*/
592eHalStatus sme_RoamGetAssociatedStas(tHalHandle hHal, tANI_U8 sessionId,
593 VOS_MODULE_ID modId, void *pUsrContext,
594 void *pfnSapEventCallback, tANI_U8 *pAssocStasBuf);
595
596/* ---------------------------------------------------------------------------
597 \fn sme_RoamDisconnectSta
598 \brief To disassociate a station. This is an asynchronous API.
599 \param pPeerMacAddr - Caller allocated memory filled with peer MAC address (6 bytes)
600 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
601 -------------------------------------------------------------------------------*/
602eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId, tANI_U8 *pPeerMacAddr);
603
604/* ---------------------------------------------------------------------------
605 \fn sme_RoamDeauthSta
606 \brief To disassociate a station. This is an asynchronous API.
607 \param hHal - Global structure
608 \param sessionId - sessionId of SoftAP
609 \param pPeerMacAddr - Caller allocated memory filled with peer MAC address (6 bytes)
610 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
611 -------------------------------------------------------------------------------*/
612eHalStatus sme_RoamDeauthSta(tHalHandle hHal, tANI_U8 sessionId,
613 tANI_U8 *pPeerMacAddr);
614
615/* ---------------------------------------------------------------------------
616 \fn sme_RoamTKIPCounterMeasures
617 \brief To start or stop TKIP counter measures. This is an asynchronous API.
618 \param sessionId - sessionId of SoftAP
619 \param bEnable - Flag to start/stop TKIP countermeasures
620 \return eHalStatus SUCCESS Roam callback will be called to indicate actual results
621 -------------------------------------------------------------------------------*/
622eHalStatus sme_RoamTKIPCounterMeasures(tHalHandle hHal, tANI_U8 sessionId, tANI_BOOLEAN bEnable);
623
624/* ---------------------------------------------------------------------------
625 \fn sme_RoamGetWpsSessionOverlap
626 \brief To get the WPS PBC session overlap information.
627 \This is an asynchronous API.
628 \param sessionId - sessionId of SoftAP
629 \param pUsrContext - Opaque HDD context
630 \param pfnSapEventCallback - Sap event callback in HDD
631 \return eHalStatus
632 -------------------------------------------------------------------------------*/
633eHalStatus sme_RoamGetWpsSessionOverlap(tHalHandle hHal, tANI_U8 sessionId,
634 void *pUsrContext, void *pfnSapEventCallback,
635 v_MACADDR_t pRemoveMac);
Jeff Johnson295189b2012-06-20 16:38:30 -0700636
637/* ---------------------------------------------------------------------------
638 \fn sme_RoamGetConnectState
639 \brief a wrapper function to request CSR to return the current connect state
640 of Roaming
641 \return eHalStatus
642 ---------------------------------------------------------------------------*/
643eHalStatus sme_RoamGetConnectState(tHalHandle hHal, tANI_U8 sessionId, eCsrConnectState *pState);
644
645/* ---------------------------------------------------------------------------
646 \fn sme_RoamGetConnectProfile
647 \brief a wrapper function to request CSR to return the current connect
648 profile. Caller must call csrRoamFreeConnectProfile after it is done
649 and before reuse for another csrRoamGetConnectProfile call.
650 \param pProfile - pointer to a caller allocated structure
651 tCsrRoamConnectedProfile
652 \return eHalStatus. Failure if not connected
653 ---------------------------------------------------------------------------*/
654eHalStatus sme_RoamGetConnectProfile(tHalHandle hHal, tANI_U8 sessionId,
655 tCsrRoamConnectedProfile *pProfile);
656
657/* ---------------------------------------------------------------------------
658 \fn sme_RoamFreeConnectProfile
659 \brief a wrapper function to request CSR to free and reinitialize the
660 profile returned previously by csrRoamGetConnectProfile.
661 \param pProfile - pointer to a caller allocated structure
662 tCsrRoamConnectedProfile
663 \return eHalStatus.
664 ---------------------------------------------------------------------------*/
665eHalStatus sme_RoamFreeConnectProfile(tHalHandle hHal,
666 tCsrRoamConnectedProfile *pProfile);
667
668/* ---------------------------------------------------------------------------
669 \fn sme_RoamSetPMKIDCache
670 \brief a wrapper function to request CSR to return the PMKID candidate list
671 \param pPMKIDCache - caller allocated buffer point to an array of
672 tPmkidCacheInfo
673 \param numItems - a variable that has the number of tPmkidCacheInfo
674 allocated when retruning, this is either the number needed
675 or number of items put into pPMKIDCache
676 \return eHalStatus - when fail, it usually means the buffer allocated is not
677 big enough and pNumItems has the number of
678 tPmkidCacheInfo.
679 \Note: pNumItems is a number of tPmkidCacheInfo,
680 not sizeof(tPmkidCacheInfo) * something
681 ---------------------------------------------------------------------------*/
682eHalStatus sme_RoamSetPMKIDCache( tHalHandle hHal, tANI_U8 sessionId, tPmkidCacheInfo *pPMKIDCache,
683 tANI_U32 numItems );
684
685/* ---------------------------------------------------------------------------
686 \fn sme_RoamGetSecurityReqIE
687 \brief a wrapper function to request CSR to return the WPA or RSN or WAPI IE CSR
688 passes to PE to JOIN request or START_BSS request
689 This is a synchronuous call.
690 \param sessionId - returned by sme_OpenSession.
691 \param pLen - caller allocated memory that has the length of pBuf as input.
692 Upon returned, *pLen has the needed or IE length in pBuf.
693 \param pBuf - Caller allocated memory that contain the IE field, if any,
694 upon return
695 \param secType - Specifies whether looking for WPA/WPA2/WAPI IE
696 \return eHalStatus - when fail, it usually means the buffer allocated is not
697 big enough
698 ---------------------------------------------------------------------------*/
699eHalStatus sme_RoamGetSecurityReqIE(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pLen,
700 tANI_U8 *pBuf, eCsrSecurityType secType);
701
702/* ---------------------------------------------------------------------------
703 \fn sme_RoamGetSecurityRspIE
704 \brief a wrapper function to request CSR to return the WPA or RSN or WAPI IE from
705 the beacon or probe rsp if connected
706 \param sessionId - returned by sme_OpenSession.
707 \param pLen - caller allocated memory that has the length of pBuf as input.
708 Upon returned, *pLen has the needed or IE length in pBuf.
709 \param pBuf - Caller allocated memory that contain the IE field, if any,
710 upon return
711 \param secType - Specifies whether looking for WPA/WPA2/WAPI IE
712 \return eHalStatus - when fail, it usually means the buffer allocated is not
713 big enough
714 ---------------------------------------------------------------------------*/
715eHalStatus sme_RoamGetSecurityRspIE(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pLen,
716 tANI_U8 *pBuf, eCsrSecurityType secType);
717
718
719/* ---------------------------------------------------------------------------
720 \fn sme_RoamGetNumPMKIDCache
721 \brief a wrapper function to request CSR to return number of PMKID cache
722 entries
723 \return tANI_U32 - the number of PMKID cache entries
724 ---------------------------------------------------------------------------*/
725tANI_U32 sme_RoamGetNumPMKIDCache(tHalHandle hHal, tANI_U8 sessionId);
726
727/* ---------------------------------------------------------------------------
728 \fn sme_RoamGetPMKIDCache
729 \brief a wrapper function to request CSR to return PMKID cache from CSR
730 \param pNum - caller allocated memory that has the space of the number of
731 pBuf tPmkidCacheInfo as input. Upon returned, *pNum has the
732 needed or actually number in tPmkidCacheInfo.
733 \param pPmkidCache - Caller allocated memory that contains PMKID cache, if
734 any, upon return
735 \return eHalStatus - when fail, it usually means the buffer allocated is not
736 big enough
737 ---------------------------------------------------------------------------*/
738eHalStatus sme_RoamGetPMKIDCache(tHalHandle hHal, tANI_U8 sessionId, tANI_U32 *pNum,
739 tPmkidCacheInfo *pPmkidCache);
740
741/* ---------------------------------------------------------------------------
742 \fn sme_GetConfigParam
743 \brief a wrapper function that HDD calls to get the global settings
744 currently maintained by CSR.
745 \param pParam - caller allocated memory
746 \return eHalStatus
747 ---------------------------------------------------------------------------*/
748eHalStatus sme_GetConfigParam(tHalHandle hHal, tSmeConfigParams *pParam);
749
750/* ---------------------------------------------------------------------------
751 \fn sme_GetStatistics
752 \brief a wrapper function that client calls to register a callback to get
753 different PHY level statistics from CSR.
754
755 \param requesterId - different client requesting for statistics, HDD, UMA/GAN etc
756 \param statsMask - The different category/categories of stats requester is looking for
757 The order in which you set the bits in the statsMask for requesting
758 different type of stats is:
759
760 eCsrSummaryStats = bit 0
761 eCsrGlobalClassAStats = bit 1
762 eCsrGlobalClassBStats = bit 2
763 eCsrGlobalClassCStats = bit 3
764 eCsrGlobalClassDStats = bit 4
765 eCsrPerStaStats = bit 5
766
767 \param callback - SME sends back the requested stats using the callback
768 \param periodicity - If requester needs periodic update, 0 means it's an one
769 time request
770 \param cache - If requester is happy with cached stats
771 \param staId - The station ID for which the stats is requested for
772 \param pContext - user context to be passed back along with the callback
773 \return eHalStatus
774 ---------------------------------------------------------------------------*/
775eHalStatus sme_GetStatistics(tHalHandle hHal, eCsrStatsRequesterType requesterId,
776 tANI_U32 statsMask,
777 tCsrStatsCallback callback,
778 tANI_U32 periodicity, tANI_BOOLEAN cache,
779 tANI_U8 staId, void *pContext);
780
Madan Mohan Koyyalamudi8af9b402013-07-11 14:59:10 +0530781/* ---------------------------------------------------------------------------
782 \fn smeGetTLSTAState
783 \helper function to get teh TL STA State whenever the function is called.
784
785 \param staId - The staID to be passed to the TL
786 to get the relevant TL STA State
787 \return the state as tANI_U16
788 ---------------------------------------------------------------------------*/
789tANI_U16 smeGetTLSTAState(tHalHandle hHal, tANI_U8 staId);
790
Jeff Johnson295189b2012-06-20 16:38:30 -0700791eHalStatus sme_GetRssi(tHalHandle hHal,
792 tCsrRssiCallback callback,
793 tANI_U8 staId, tCsrBssid bssId, void *pContext, void* pVosContext);
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -0800794#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
795eHalStatus sme_GetRoamRssi(tHalHandle hHal,
796 tCsrRssiCallback callback,
797 tANI_U8 staId,
798 tCsrBssid bssId,
799 void *pContext,
800 void* pVosContext);
801#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700802/* ---------------------------------------------------------------------------
803 \fn sme_CfgSetInt
804 \brief a wrapper function that HDD calls to set parameters in CFG.
805 \param cfgId - Configuration Parameter ID (type) for STA.
806 \param ccmValue - The information related to Configuration Parameter ID
807 which needs to be saved in CFG
808 \param callback - To be registered by CSR with CCM. Once the CFG done with
809 saving the information in the database, it notifies CCM &
810 then the callback will be invoked to notify.
811 \param toBeSaved - To save the request for future reference
812 \return eHalStatus
813 ---------------------------------------------------------------------------*/
814eHalStatus sme_CfgSetInt(tHalHandle hHal, tANI_U32 cfgId, tANI_U32 ccmValue,
815 tCcmCfgSetCallback callback, eAniBoolean toBeSaved) ;
816
817/* ---------------------------------------------------------------------------
818 \fn sme_CfgSetStr
819 \brief a wrapper function that HDD calls to set parameters in CFG.
820 \param cfgId - Configuration Parameter ID (type) for STA.
821 \param pStr - Pointer to the byte array which carries the information needs
822 to be saved in CFG
823 \param length - Length of the data to be saved
824 \param callback - To be registered by CSR with CCM. Once the CFG done with
825 saving the information in the database, it notifies CCM &
826 then the callback will be invoked to notify.
827 \param toBeSaved - To save the request for future reference
828 \return eHalStatus
829 ---------------------------------------------------------------------------*/
830eHalStatus sme_CfgSetStr(tHalHandle hHal, tANI_U32 cfgId, tANI_U8 *pStr,
831 tANI_U32 length, tCcmCfgSetCallback callback,
832 eAniBoolean toBeSaved) ;
833
834
835/* ---------------------------------------------------------------------------
836 \fn sme_GetModifyProfileFields
837 \brief HDD or SME - QOS calls this function to get the current values of
838 connected profile fields, changing which can cause reassoc.
839 This function must be called after CFG is downloaded and STA is in connected
840 state. Also, make sure to call this function to get the current profile
841 fields before calling the reassoc. So that pModifyProfileFields will have
842 all the latest values plus the one(s) has been updated as part of reassoc
843 request.
844 \param pModifyProfileFields - pointer to the connected profile fields
845 changing which can cause reassoc
846
847 \return eHalStatus
848 -------------------------------------------------------------------------------*/
849eHalStatus sme_GetModifyProfileFields(tHalHandle hHal, tANI_U8 sessionId,
850 tCsrRoamModifyProfileFields * pModifyProfileFields);
851
852
853/*--------------------------------------------------------------------------
854 \fn sme_SetConfigPowerSave
855 \brief Wrapper fn to change power save configuration in SME (PMC) module.
856 For BMPS related configuration, this function also updates the CFG
857 and sends a message to FW to pick up the new values. Note: Calling
858 this function only updates the configuration and does not enable
859 the specified power save mode.
860 \param hHal - The handle returned by macOpen.
861 \param psMode - Power Saving mode being modified
862 \param pConfigParams - a pointer to a caller allocated object of type
863 tPmcSmpsConfigParams or tPmcBmpsConfigParams or tPmcImpsConfigParams
864 \return eHalStatus
865 --------------------------------------------------------------------------*/
866eHalStatus sme_SetConfigPowerSave(tHalHandle hHal, tPmcPowerSavingMode psMode,
867 void *pConfigParams);
868
869/*--------------------------------------------------------------------------
870 \fn sme_GetConfigPowerSave
871 \brief Wrapper fn to retireve power save configuration in SME (PMC) module
872 \param hHal - The handle returned by macOpen.
873 \param psMode - Power Saving mode
874 \param pConfigParams - a pointer to a caller allocated object of type
875 tPmcSmpsConfigParams or tPmcBmpsConfigParams or tPmcImpsConfigParams
876 \return eHalStatus
877 --------------------------------------------------------------------------*/
878eHalStatus sme_GetConfigPowerSave(tHalHandle hHal, tPmcPowerSavingMode psMode,
879 void *pConfigParams);
880
881/* ---------------------------------------------------------------------------
882 \fn sme_SignalPowerEvent
883 \brief Signals to PMC that a power event has occurred. Used for putting
884 the chip into deep sleep mode.
885 \param hHal - The handle returned by macOpen.
886 \param event - the event that has occurred
887 \return eHalStatus
888 ---------------------------------------------------------------------------*/
889extern eHalStatus sme_SignalPowerEvent (
890 tHalHandle hHal,
891 tPmcPowerEvent event);
892
893/* ---------------------------------------------------------------------------
894 \fn sme_EnablePowerSave
895 \brief Enables one of the power saving modes. This API does not cause a
896 device state change. This is purely a configuration API.
897 \param hHal - The handle returned by macOpen.
898 \param psMode - The power saving mode to enable.
899 \return eHalStatus
900 ---------------------------------------------------------------------------*/
901extern eHalStatus sme_EnablePowerSave (
902 tHalHandle hHal,
903 tPmcPowerSavingMode psMode);
904
905/* ---------------------------------------------------------------------------
906 \fn sme_DisablePowerSave
907 \brief Disables one of the power saving modes.Disabling does not imply
908 that device will be brought out of the current PS mode. This is
909 purely a configuration API.
910 \param hHal - The handle returned by macOpen.
911 \param psMode - The power saving mode to disable.
912 \return eHalStatus
913 ---------------------------------------------------------------------------*/
914extern eHalStatus sme_DisablePowerSave (
915 tHalHandle hHal,
916 tPmcPowerSavingMode psMode);
917
Madan Mohan Koyyalamudi69b34182013-01-16 08:51:40 +0530918 /* ---------------------------------------------------------------------------
919 \fn sme_SetHostPowerSave
920 \brief The BMPS logic is controlled by the User level Apps
921 \param hHal - The handle returned by macOpen.
922 \param psMode - The power saving mode to enable.
923 \return eHalStatus
924 ---------------------------------------------------------------------------*/
925extern eHalStatus sme_SetHostPowerSave (
926 tHalHandle hHal,
927 v_BOOL_t psMode);
928
Jeff Johnson295189b2012-06-20 16:38:30 -0700929/* ---------------------------------------------------------------------------
930 \fn sme_StartAutoBmpsTimer
931 \brief Starts a timer that periodically polls all the registered
932 module for entry into Bmps mode. This timer is started only if BMPS is
933 enabled and whenever the device is in full power.
934 \param hHal - The handle returned by macOpen.
935 \return eHalStatus
936 ---------------------------------------------------------------------------*/
937extern eHalStatus sme_StartAutoBmpsTimer ( tHalHandle hHal);
938
939/* ---------------------------------------------------------------------------
940 \fn sme_StopAutoBmpsTimer
941 \brief Stops the Auto BMPS Timer that was started using sme_startAutoBmpsTimer
942 Stopping the timer does not cause a device state change. Only the timer
943 is stopped. If "Full Power" is desired, use the sme_RequestFullPower API
944 \param hHal - The handle returned by macOpen.
945 \return eHalStatus
946 ---------------------------------------------------------------------------*/
947extern eHalStatus sme_StopAutoBmpsTimer ( tHalHandle hHal);
948
949/* ---------------------------------------------------------------------------
950 \fn sme_QueryPowerState
951 \brief Returns the current power state of the device.
952 \param hHal - The handle returned by macOpen.
953 \param pPowerState - pointer to location to return power state
954 \param pSwWlanSwitchState - ptr to location to return SW WLAN Switch state
955 \return eHalStatus
956 ---------------------------------------------------------------------------*/
957extern eHalStatus sme_QueryPowerState (
958 tHalHandle hHal,
959 tPmcPowerState *pPowerState,
960 tPmcSwitchState *pSwWlanSwitchState);
961
962/* ---------------------------------------------------------------------------
963 \fn sme_IsPowerSaveEnabled
964 \brief Checks if the device is able to enter a particular power save mode
965 This does not imply that the device is in a particular PS mode
966 \param hHal - The handle returned by macOpen.
967 \param psMode - the power saving mode
968 \return eHalStatus
969 ---------------------------------------------------------------------------*/
970extern tANI_BOOLEAN sme_IsPowerSaveEnabled(
971 tHalHandle hHal,
972 tPmcPowerSavingMode psMode);
973
974/* ---------------------------------------------------------------------------
975 \fn sme_RequestFullPower
976 \brief Request that the device be brought to full power state.
977 Note 1: If "fullPowerReason" specificied in this API is set to
978 eSME_FULL_PWR_NEEDED_BY_HDD, PMC will clear any "buffered wowl" requests
979 and also clear any "buffered BMPS requests by HDD". Assumption is that since
980 HDD is requesting full power, we need to undo any previous HDD requests for
981 BMPS (using sme_RequestBmps) or WoWL (using sme_EnterWoWL). If the reason is
982 specified anything other than above, the buffered requests for BMPS and WoWL
983 will not be cleared.
984 Note 2: Requesting full power (no matter what the fullPowerReason is) doesn't
985 disable the "auto bmps timer" (if it is enabled) or clear any "buffered uapsd
986 request".
987 Note 3: When the device finally enters Full Power PMC will start a timer
988 if any of the following holds true:
989 - Auto BMPS mode is enabled
990 - Uapsd request is pending
991 - HDD's request for BMPS is pending
992 - HDD's request for WoWL is pending
993 On timer expiry PMC will attempt to put the device in BMPS mode if following
994 (in addition to those listed above) holds true:
995 - Polling of all modules through the Power Save Check routine passes
996 - STA is associated to an access point
997 \param hHal - The handle returned by macOpen.
998 \param - callbackRoutine Callback routine invoked in case of success/failure
999 \param - callbackContext - Cookie to be passed back during callback
1000 \param - fullPowerReason - Reason why this API is being invoked. SME needs to
1001 distinguish between BAP and HDD requests
1002 \return eHalStatus - status
1003 eHAL_STATUS_SUCCESS - device brought to full power state
1004 eHAL_STATUS_FAILURE - device cannot be brought to full power state
1005 eHAL_STATUS_PMC_PENDING - device is being brought to full power state,
1006 ---------------------------------------------------------------------------*/
1007extern eHalStatus sme_RequestFullPower (
1008 tHalHandle hHal,
1009 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1010 void *callbackContext,
1011 tRequestFullPowerReason fullPowerReason);
1012
1013/* ---------------------------------------------------------------------------
1014 \fn sme_RequestBmps
1015 \brief Request that the device be put in BMPS state. Request will be
1016 accepted only if BMPS mode is enabled and power save check routine
1017 passes. Only HDD should invoke this API.
1018 \param hHal - The handle returned by macOpen.
1019 \param - callbackRoutine Callback routine invoked in case of success/failure
1020 \param - callbackContext - Cookie to be passed back during callback
1021 \return eHalStatus
1022 eHAL_STATUS_SUCCESS - device is in BMPS state
1023 eHAL_STATUS_FAILURE - device cannot be brought to BMPS state
1024 eHAL_STATUS_PMC_PENDING - device is being brought to BMPS state
1025 ---------------------------------------------------------------------------*/
1026extern eHalStatus sme_RequestBmps (
1027 tHalHandle hHal,
1028 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1029 void *callbackContext);
1030
1031/* ---------------------------------------------------------------------------
1032 \fn sme_SetDHCPTillPowerActiveFlag
1033 \brief Sets/Clears DHCP related flag in PMC to disable/enable auto BMPS
1034 entry by PMC
1035 \param hHal - The handle returned by macOpen.
1036 ---------------------------------------------------------------------------*/
1037void sme_SetDHCPTillPowerActiveFlag(tHalHandle hHal, tANI_U8 flag);
1038
1039
1040/* ---------------------------------------------------------------------------
1041 \fn sme_StartUapsd
1042 \brief Request that the device be put in UAPSD state. If the device is in
1043 Full Power it will be put in BMPS mode first and then into UAPSD
1044 mode.
1045 \param hHal - The handle returned by macOpen.
1046 \param - callbackRoutine Callback routine invoked in case of success/failure
1047 \param - callbackContext - Cookie to be passed back during callback
1048 eHAL_STATUS_SUCCESS - device is in UAPSD state
1049 eHAL_STATUS_FAILURE - device cannot be brought to UAPSD state
1050 eHAL_STATUS_PMC_PENDING - device is being brought to UAPSD state
1051 eHAL_STATUS_PMC_DISABLED - UAPSD is disabled or BMPS mode is disabled
1052 \return eHalStatus
1053 ---------------------------------------------------------------------------*/
1054extern eHalStatus sme_StartUapsd (
1055 tHalHandle hHal,
1056 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1057 void *callbackContext);
1058
1059/* ---------------------------------------------------------------------------
1060 \fn sme_StopUapsd
1061 \brief Request that the device be put out of UAPSD state. Device will be
1062 put in in BMPS state after stop UAPSD completes. Buffered requests for
1063 UAPSD will be cleared after this.
1064 \param hHal - The handle returned by macOpen.
1065 \return eHalStatus
1066 eHAL_STATUS_SUCCESS - device is put out of UAPSD and back in BMPS state
1067 eHAL_STATUS_FAILURE - device cannot be brought out of UAPSD state
1068 ---------------------------------------------------------------------------*/
1069extern eHalStatus sme_StopUapsd (tHalHandle hHal);
1070
1071/* ---------------------------------------------------------------------------
1072 \fn sme_RequestStandby
1073 \brief Request that the device be put in standby. It is HDD's responsibility
1074 to bring the chip to full power and do a discconnect before calling
1075 this API. Request for standby will be rejected if STA is associated
1076 to an AP.
1077 \param hHal - The handle returned by macOpen.
1078 \param - callbackRoutine Callback routine invoked in case of success/failure
1079 \param - callbackContext - Cookie to be passed back during callback
1080 \return eHalStatus
1081 eHAL_STATUS_SUCCESS - device is in Standby mode
1082 eHAL_STATUS_FAILURE - device cannot be put in standby mode
1083 eHAL_STATUS_PMC_PENDING - device is being put in standby mode
1084 ---------------------------------------------------------------------------*/
1085extern eHalStatus sme_RequestStandby (
1086 tHalHandle hHal,
1087 void (*callbackRoutine) (void *callbackContext, eHalStatus status),
1088 void *callbackContext);
1089
1090/* ---------------------------------------------------------------------------
1091 \fn sme_RegisterPowerSaveCheck
1092 \brief Register a power save check routine that is called whenever
1093 the device is about to enter one of the power save modes.
1094 \param hHal - The handle returned by macOpen.
1095 \param checkRoutine - Power save check routine to be registered
1096 \param callbackContext - Cookie to be passed back during callback
1097 \return eHalStatus
1098 eHAL_STATUS_SUCCESS - successfully registered
1099 eHAL_STATUS_FAILURE - not successfully registered
1100 ---------------------------------------------------------------------------*/
1101extern eHalStatus sme_RegisterPowerSaveCheck (
1102 tHalHandle hHal,
1103 tANI_BOOLEAN (*checkRoutine) (void *checkContext), void *checkContext);
1104
1105/* ---------------------------------------------------------------------------
1106 \fn sme_DeregisterPowerSaveCheck
1107 \brief Deregister a power save check routine
1108 \param hHal - The handle returned by macOpen.
1109 \param checkRoutine - Power save check routine to be deregistered
1110 \return eHalStatus
1111 eHAL_STATUS_SUCCESS - successfully deregistered
1112 eHAL_STATUS_FAILURE - not successfully deregistered
1113 ---------------------------------------------------------------------------*/
1114extern eHalStatus sme_DeregisterPowerSaveCheck (
1115 tHalHandle hHal,
1116 tANI_BOOLEAN (*checkRoutine) (void *checkContext));
1117
1118/* ---------------------------------------------------------------------------
1119 \fn sme_RegisterDeviceStateUpdateInd
1120 \brief Register a callback routine that is called whenever
1121 the device enters a new device state (Full Power, BMPS, UAPSD)
1122 \param hHal - The handle returned by macOpen.
1123 \param callbackRoutine - Callback routine to be registered
1124 \param callbackContext - Cookie to be passed back during callback
1125 \return eHalStatus
1126 eHAL_STATUS_SUCCESS - successfully registered
1127 eHAL_STATUS_FAILURE - not successfully registered
1128 ---------------------------------------------------------------------------*/
1129extern eHalStatus sme_RegisterDeviceStateUpdateInd (
1130 tHalHandle hHal,
1131 void (*callbackRoutine) (void *callbackContext, tPmcState pmcState),
1132 void *callbackContext);
1133
1134/* ---------------------------------------------------------------------------
1135 \fn sme_DeregisterDeviceStateUpdateInd
1136 \brief Deregister a routine that was registered for device state changes
1137 \param hHal - The handle returned by macOpen.
1138 \param callbackRoutine - Callback routine to be deregistered
1139 \return eHalStatus
1140 eHAL_STATUS_SUCCESS - successfully deregistered
1141 eHAL_STATUS_FAILURE - not successfully deregistered
1142 ---------------------------------------------------------------------------*/
1143extern eHalStatus sme_DeregisterDeviceStateUpdateInd (
1144 tHalHandle hHal,
1145 void (*callbackRoutine) (void *callbackContext, tPmcState pmcState));
1146
1147/* ---------------------------------------------------------------------------
1148 \fn sme_WowlAddBcastPattern
1149 \brief Add a pattern for Pattern Byte Matching in Wowl mode. Firmware will
1150 do a pattern match on these patterns when Wowl is enabled during BMPS
1151 mode.
1152 \param hHal - The handle returned by macOpen.
1153 \param pattern - Pattern to be added
1154 \return eHalStatus
1155 eHAL_STATUS_FAILURE Cannot add pattern
1156 eHAL_STATUS_SUCCESS Request accepted.
1157 ---------------------------------------------------------------------------*/
1158extern eHalStatus sme_WowlAddBcastPattern (
1159 tHalHandle hHal,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001160 tpSirWowlAddBcastPtrn pattern,
1161 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001162
1163/* ---------------------------------------------------------------------------
1164 \fn sme_WowlDelBcastPattern
1165 \brief Delete a pattern that was added for Pattern Byte Matching.
1166 \param hHal - The handle returned by macOpen.
1167 \param pattern - Pattern to be deleted
1168 \return eHalStatus
1169 eHAL_STATUS_FAILURE Cannot delete pattern
1170 eHAL_STATUS_SUCCESS Request accepted.
1171 ---------------------------------------------------------------------------*/
1172extern eHalStatus sme_WowlDelBcastPattern (
1173 tHalHandle hHal,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001174 tpSirWowlDelBcastPtrn pattern,
1175 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001176
1177/* ---------------------------------------------------------------------------
1178 \fn sme_EnterWowl
1179 \brief This is the API to request entry into WOWL mode.
1180 WoWLAN works on top of BMPS mode. If the device is not in BMPS mode,
1181 SME will will cache the information that WOWL has been requested and
1182 attempt to put the device in BMPS first. On entry into BMPS, SME will
1183 enter the WOWL mode.
1184 Note 1: After WoWL request is accepted, If module other than HDD requests
1185 full power BEFORE WoWL request is completed, PMC will buffer the WoWL request
1186 and attempt to put the chip into BMPS+WOWL based on a timer.
1187 Note 2: Buffered request for WoWL will be cleared immedisately AFTER "enter Wowl"
1188 completes or if HDD requests full power or if sme_ExitWoWL API is invoked.
1189 Note 3: Both UAPSD and WOWL work on top of BMPS. On entry into BMPS, SME
1190 will give priority to UAPSD and enable only UAPSD if both UAPSD and WOWL
1191 are required. Currently there is no requirement or use case to support UAPSD
1192 and WOWL at the same time.
1193 Note 4. Request for WoWL is rejected if there is a pending UAPSD request.
1194 Note 5. Request for WoWL is rejected if BMPS is disabled.
1195
1196 \param hHal - The handle returned by macOpen.
1197 \param enterWowlCallbackRoutine - Callback routine provided by HDD.
1198 Used for success/failure notification by SME
1199 \param enterWowlCallbackContext - A cookie passed by HDD, that is passed back to HDD
1200 at the time of callback.
1201 \param wakeReasonIndCB - Callback routine provided by HDD.
1202 Used for Wake Reason Indication by SME
1203 \param wakeReasonIndCBContext - A cookie passed by HDD, that is passed back to HDD
1204 at the time of callback.
1205 \return eHalStatus
1206 eHAL_STATUS_SUCCESS Device is already in WoWLAN mode
1207 eHAL_STATUS_FAILURE Device cannot enter WoWLAN mode.
1208 eHAL_STATUS_PMC_PENDING Request accepted. SME will enable WOWL when BMPS
1209 mode is entered.
1210 ---------------------------------------------------------------------------*/
1211extern eHalStatus sme_EnterWowl (
1212 tHalHandle hHal,
1213 void (*enterWowlCallbackRoutine) (void *callbackContext, eHalStatus status),
1214 void *enterWowlCallbackContext,
1215#ifdef WLAN_WAKEUP_EVENTS
1216 void (*wakeReasonIndCB) (void *callbackContext, tpSirWakeReasonInd pWakeReasonInd),
1217 void *wakeReasonIndCBContext,
1218#endif // WLAN_WAKEUP_EVENTS
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001219 tpSirSmeWowlEnterParams wowlEnterParams, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001220
1221/* ---------------------------------------------------------------------------
1222 \fn sme_ExitWowl
1223 \brief This is the SME API exposed to HDD to request exit from WoWLAN mode.
1224 SME will initiate exit from WoWLAN mode and device will be put in BMPS
1225 mode. Any Buffered request for WoWL will be cleared after this API.
1226 \param hHal - The handle returned by macOpen.
1227 \return eHalStatus
1228 eHAL_STATUS_FAILURE Device cannot exit WoWLAN mode. This can happen
1229 only if the previous "Enter WOWL" transaction has
1230 not even completed.
1231 eHAL_STATUS_SUCCESS Request accepted to exit WoWLAN mode.
1232 ---------------------------------------------------------------------------*/
1233extern eHalStatus sme_ExitWowl (tHalHandle hHal);
1234
1235/* ---------------------------------------------------------------------------
1236
1237 \fn sme_RoamSetKey
1238
1239 \brief To set encryption key. This function should be called only when connected
1240 This is an asynchronous API.
1241
1242 \param pSetKeyInfo - pointer to a caller allocated object of tCsrSetContextInfo
1243
1244 \param pRoamId Upon success return, this is the id caller can use to identify the request in roamcallback
1245
1246 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
1247
1248 FAILURE or RESOURCES The API finished and failed.
1249
1250 -------------------------------------------------------------------------------*/
1251eHalStatus sme_RoamSetKey(tHalHandle, tANI_U8 sessionId, tCsrRoamSetKey *pSetKey, tANI_U32 *pRoamId);
1252
1253/* ---------------------------------------------------------------------------
1254
1255 \fn sme_RoamRemoveKey
1256
1257 \brief To set encryption key. This is an asynchronous API.
1258
1259 \param pRemoveKey - pointer to a caller allocated object of tCsrRoamRemoveKey
1260
1261 \param pRoamId Upon success return, this is the id caller can use to identify the request in roamcallback
1262
1263 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
1264
1265 FAILURE or RESOURCES The API finished and failed.
1266
1267 -------------------------------------------------------------------------------*/
1268eHalStatus sme_RoamRemoveKey(tHalHandle, tANI_U8 sessionId, tCsrRoamRemoveKey *pRemoveKey, tANI_U32 *pRoamId);
1269
1270
1271/* ---------------------------------------------------------------------------
1272
1273 \fn sme_GetCountryCode
1274
1275 \brief To return the current country code. If no country code is applied, default country code is
1276 used to fill the buffer.
1277 If 11d supported is turned off, an error is return and the last applied/default country code is used.
1278 This is a synchronous API.
1279
1280 \param pBuf - pointer to a caller allocated buffer for returned country code.
1281
1282 \param pbLen For input, this parameter indicates how big is the buffer.
1283 Upon return, this parameter has the number of bytes for country. If pBuf
1284 doesn't have enough space, this function returns
1285 fail status and this parameter contains the number that is needed.
1286
1287 \return eHalStatus SUCCESS.
1288
1289 FAILURE or RESOURCES The API finished and failed.
1290
1291 -------------------------------------------------------------------------------*/
1292eHalStatus sme_GetCountryCode(tHalHandle hHal, tANI_U8 *pBuf, tANI_U8 *pbLen);
1293
1294/* ---------------------------------------------------------------------------
1295
1296 \fn sme_SetCountryCode
1297
1298 \brief To change the current/default country code.
1299 If 11d supported is turned off, an error is return.
1300 This is a synchronous API.
1301
1302 \param pCountry - pointer to a caller allocated buffer for the country code.
1303
1304 \param pfRestartNeeded A pointer to caller allocated memory, upon successful return, it indicates
1305 whether a reset is required.
1306
1307 \return eHalStatus SUCCESS.
1308
1309 FAILURE or RESOURCES The API finished and failed.
1310
1311 -------------------------------------------------------------------------------*/
1312eHalStatus sme_SetCountryCode(tHalHandle hHal, tANI_U8 *pCountry, tANI_BOOLEAN *pfRestartNeeded);
1313
1314/* ---------------------------------------------------------------------------
1315 \fn sme_ResetCountryCodeInformation
1316 \brief this function is to reset the country code current being used back to EEPROM default
1317 this includes channel list and power setting. This is a synchronous API.
1318 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
1319 a restart is needed to apply the change
1320 \return eHalStatus
1321 -------------------------------------------------------------------------------*/
1322eHalStatus sme_ResetCountryCodeInformation(tHalHandle hHal, tANI_BOOLEAN *pfRestartNeeded);
1323
1324/* ---------------------------------------------------------------------------
1325 \fn sme_GetSupportedCountryCode
1326 \brief this function is to get a list of the country code current being supported
1327 \param pBuf - Caller allocated buffer with at least 3 bytes, upon success return,
1328 this has the country code list. 3 bytes for each country code. This may be NULL if
1329 caller wants to know the needed byte count.
1330 \param pbLen - Caller allocated, as input, it indicates the length of pBuf. Upon success return,
1331 this contains the length of the data in pBuf. If pbuf is NULL, as input, *pbLen should be 0.
1332 \return eHalStatus
1333 -------------------------------------------------------------------------------*/
1334eHalStatus sme_GetSupportedCountryCode(tHalHandle hHal, tANI_U8 *pBuf, tANI_U32 *pbLen);
1335
1336/* ---------------------------------------------------------------------------
1337 \fn sme_GetCurrentRegulatoryDomain
1338 \brief this function is to get the current regulatory domain. This is a synchronous API.
1339 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1340 SME. The function fails if 11d support is turned off.
1341 \param pDomain - Caller allocated buffer to return the current domain.
1342 \return eHalStatus SUCCESS.
1343
1344 FAILURE or RESOURCES The API finished and failed.
1345 -------------------------------------------------------------------------------*/
1346eHalStatus sme_GetCurrentRegulatoryDomain(tHalHandle hHal, v_REGDOMAIN_t *pDomain);
1347
1348/* ---------------------------------------------------------------------------
1349 \fn sme_SetRegulatoryDomain
1350 \brief this function is to set the current regulatory domain.
1351 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1352 SME. This is a synchronous API.
1353 \param domainId - indicate the domain (defined in the driver) needs to set to.
1354 See v_REGDOMAIN_t for definition
1355 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
1356 a restart is needed to apply the change
1357 \return eHalStatus
1358 -------------------------------------------------------------------------------*/
1359eHalStatus sme_SetRegulatoryDomain(tHalHandle hHal, v_REGDOMAIN_t domainId, tANI_BOOLEAN *pfRestartNeeded);
1360
1361/* ---------------------------------------------------------------------------
1362
1363 \fn sme_GetRegulatoryDomainForCountry
1364
1365 \brief To return a regulatory domain base on a country code. This is a synchronous API.
1366
1367 \param pCountry - pointer to a caller allocated buffer for input country code.
1368
1369 \param pDomainId Upon successful return, it is the domain that country belongs to.
1370 If it is NULL, returning success means that the country code is known.
1371
1372 \return eHalStatus SUCCESS.
1373
1374 FAILURE or RESOURCES The API finished and failed.
1375
1376 -------------------------------------------------------------------------------*/
1377eHalStatus sme_GetRegulatoryDomainForCountry(tHalHandle hHal, tANI_U8 *pCountry, v_REGDOMAIN_t *pDomainId);
1378
1379
1380
1381/* ---------------------------------------------------------------------------
1382
1383 \fn sme_GetSupportedRegulatoryDomains
1384
1385 \brief To return a list of supported regulatory domains. This is a synchronous API.
1386
1387 \param pDomains - pointer to a caller allocated buffer for returned regulatory domains.
1388
1389 \param pNumDomains For input, this parameter indicates howm many domains pDomains can hold.
1390 Upon return, this parameter has the number for supported domains. If pDomains
1391 doesn't have enough space for all the supported domains, this function returns
1392 fail status and this parameter contains the number that is needed.
1393
1394 \return eHalStatus SUCCESS.
1395
1396 FAILURE or RESOURCES The API finished and failed.
1397
1398 -------------------------------------------------------------------------------*/
1399eHalStatus sme_GetSupportedRegulatoryDomains(tHalHandle hHal, v_REGDOMAIN_t *pDomains, tANI_U32 *pNumDomains);
1400
1401//some support functions
1402tANI_BOOLEAN sme_Is11dSupported(tHalHandle hHal);
1403tANI_BOOLEAN sme_Is11hSupported(tHalHandle hHal);
1404tANI_BOOLEAN sme_IsWmmSupported(tHalHandle hHal);
1405//Upper layer to get the list of the base channels to scan for passively 11d info from csr
1406eHalStatus sme_ScanGetBaseChannels( tHalHandle hHal, tCsrChannelInfo * pChannelInfo );
1407
1408typedef void ( *tSmeChangeCountryCallback)(void *pContext);
1409/* ---------------------------------------------------------------------------
1410
1411 \fn sme_ChangeCountryCode
1412
1413 \brief Change Country code from upperlayer during WLAN driver operation.
1414 This is a synchronous API.
1415
1416 \param hHal - The handle returned by macOpen.
1417
1418 \param pCountry New Country Code String
1419
1420 \return eHalStatus SUCCESS.
1421
1422 FAILURE or RESOURCES The API finished and failed.
1423
1424 -------------------------------------------------------------------------------*/
1425eHalStatus sme_ChangeCountryCode( tHalHandle hHal,
1426 tSmeChangeCountryCallback callback,
1427 tANI_U8 *pCountry,
1428 void *pContext,
Gopichand Nakkalaacd94112013-05-29 21:37:47 +05301429 void* pVosContext,
1430 tAniBool countryFromUserSpace );
Jeff Johnson295189b2012-06-20 16:38:30 -07001431
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301432/* ---------------------------------------------------------------------------
1433
1434 \fn sme_DHCPStartInd
1435
1436 \brief Indicate FW about DHCP start event.
1437
1438 \param hHal - The handle returned by macOpen.
1439
1440 \param device_mode the mode of the device
1441
1442 \param macAddr the macAddress of the devices
1443
1444 \return eHalStatus SUCCESS.
1445
1446 FAILURE or RESOURCES The API finished and failed.
1447
1448 -------------------------------------------------------------------------------*/
1449
1450eHalStatus sme_DHCPStartInd( tHalHandle hHal,
1451 tANI_U8 device_mode,
1452 tANI_U8 *macAddr );
1453
1454/* ---------------------------------------------------------------------------
1455
1456 \fn sme_DHCPStopInd
1457
1458 \brief Indicate FW about DHCP stop event.
1459
1460 \param hHal - The handle returned by macOpen.
1461
1462 \param device_mode the mode of the device
1463
1464 \param macAddr the macAddress of the devices
1465
1466 \return eHalStatus SUCCESS.
1467
1468 FAILURE or RESOURCES The API finished and failed.
1469
1470 -------------------------------------------------------------------------------*/
1471eHalStatus sme_DHCPStopInd( tHalHandle hHal,
1472 tANI_U8 device_mode,
1473 tANI_U8 *macAddr );
1474
Jeff Johnson295189b2012-06-20 16:38:30 -07001475
1476/* ---------------------------------------------------------------------------
1477 \fn sme_BtcSignalBtEvent
1478 \brief API to signal Bluetooth (BT) event to the WLAN driver. Based on the
1479 BT event type and the current operating mode of Libra (full power,
1480 BMPS, UAPSD etc), appropriate Bluetooth Coexistence (BTC) strategy
1481 would be employed.
1482 \param hHal - The handle returned by macOpen.
1483 \param pBtcBtEvent - Pointer to a caller allocated object of type tSmeBtEvent
1484 Caller owns the memory and is responsible for freeing it.
1485 \return VOS_STATUS
1486 VOS_STATUS_E_FAILURE BT Event not passed to HAL. This can happen
1487 if driver has not yet been initialized or if BTC
1488 Events Layer has been disabled.
1489 VOS_STATUS_SUCCESS BT Event passed to HAL
1490 ---------------------------------------------------------------------------*/
1491VOS_STATUS sme_BtcSignalBtEvent (tHalHandle hHal, tpSmeBtEvent pBtcBtEvent);
1492
1493/* ---------------------------------------------------------------------------
1494 \fn sme_BtcSetConfig
1495 \brief API to change the current Bluetooth Coexistence (BTC) configuration
1496 This function should be invoked only after CFG download has completed.
1497 Calling it after sme_HDDReadyInd is recommended.
1498 \param hHal - The handle returned by macOpen.
1499 \param pSmeBtcConfig - Pointer to a caller allocated object of type
1500 tSmeBtcConfig. Caller owns the memory and is responsible
1501 for freeing it.
1502 \return VOS_STATUS
1503 VOS_STATUS_E_FAILURE Config not passed to HAL.
1504 VOS_STATUS_SUCCESS Config passed to HAL
1505 ---------------------------------------------------------------------------*/
1506VOS_STATUS sme_BtcSetConfig (tHalHandle hHal, tpSmeBtcConfig pSmeBtcConfig);
1507
1508/* ---------------------------------------------------------------------------
1509 \fn sme_BtcGetConfig
1510 \brief API to retrieve the current Bluetooth Coexistence (BTC) configuration
1511 \param hHal - The handle returned by macOpen.
1512 \param pSmeBtcConfig - Pointer to a caller allocated object of type tSmeBtcConfig.
1513 Caller owns the memory and is responsible for freeing it.
1514 \return VOS_STATUS
1515 VOS_STATUS_E_FAILURE - failure
1516 VOS_STATUS_SUCCESS success
1517 ---------------------------------------------------------------------------*/
1518VOS_STATUS sme_BtcGetConfig (tHalHandle hHal, tpSmeBtcConfig pSmeBtcConfig);
1519
1520/* ---------------------------------------------------------------------------
1521 \fn sme_SetCfgPrivacy
1522 \brief API to set configure privacy parameters
1523 \param hHal - The handle returned by macOpen.
1524 \param pProfile - Pointer CSR Roam profile.
1525 \param fPrivacy - This parameter indicates status of privacy
1526
1527 \return void
1528 ---------------------------------------------------------------------------*/
1529void sme_SetCfgPrivacy(tHalHandle hHal, tCsrRoamProfile *pProfile, tANI_BOOLEAN fPrivacy);
1530
1531#if defined WLAN_FEATURE_VOWIFI
1532/* ---------------------------------------------------------------------------
1533 \fn sme_NeighborReportRequest
1534 \brief API to request neighbor report.
1535 \param hHal - The handle returned by macOpen.
1536 \param pRrmNeighborReq - Pointer to a caller allocated object of type
1537 tRrmNeighborReq. Caller owns the memory and is responsible
1538 for freeing it.
1539 \return VOS_STATUS
1540 VOS_STATUS_E_FAILURE - failure
1541 VOS_STATUS_SUCCESS success
1542 ---------------------------------------------------------------------------*/
1543VOS_STATUS sme_NeighborReportRequest (tHalHandle hHal, tANI_U8 sessionId,
1544 tpRrmNeighborReq pRrmNeighborReq, tpRrmNeighborRspCallbackInfo callbackInfo);
1545#endif
1546
1547//The following are debug APIs to support direct read/write register/memory
1548//They are placed in SME because HW cannot be access when in LOW_POWER state
1549//AND not connected. The knowledge and synchronization is done in SME
1550
1551//sme_DbgReadRegister
1552//Caller needs to validate the input values
1553VOS_STATUS sme_DbgReadRegister(tHalHandle hHal, v_U32_t regAddr, v_U32_t *pRegValue);
1554
1555//sme_DbgWriteRegister
1556//Caller needs to validate the input values
1557VOS_STATUS sme_DbgWriteRegister(tHalHandle hHal, v_U32_t regAddr, v_U32_t regValue);
1558
1559//sme_DbgReadMemory
1560//Caller needs to validate the input values
1561//pBuf caller allocated buffer has the length of nLen
1562VOS_STATUS sme_DbgReadMemory(tHalHandle hHal, v_U32_t memAddr, v_U8_t *pBuf, v_U32_t nLen);
1563
1564//sme_DbgWriteMemory
1565//Caller needs to validate the input values
1566VOS_STATUS sme_DbgWriteMemory(tHalHandle hHal, v_U32_t memAddr, v_U8_t *pBuf, v_U32_t nLen);
1567
Jeff Johnson295189b2012-06-20 16:38:30 -07001568VOS_STATUS sme_GetWcnssWlanCompiledVersion(tHalHandle hHal,
1569 tSirVersionType *pVersion);
1570VOS_STATUS sme_GetWcnssWlanReportedVersion(tHalHandle hHal,
1571 tSirVersionType *pVersion);
1572VOS_STATUS sme_GetWcnssSoftwareVersion(tHalHandle hHal,
1573 tANI_U8 *pVersion,
1574 tANI_U32 versionBufferSize);
1575VOS_STATUS sme_GetWcnssHardwareVersion(tHalHandle hHal,
1576 tANI_U8 *pVersion,
1577 tANI_U32 versionBufferSize);
Jeff Johnson295189b2012-06-20 16:38:30 -07001578eHalStatus sme_RoamRegisterCallback(tHalHandle hHal,
1579 csrRoamCompleteCallback callback,
1580 void *pContext);
1581
1582#ifdef FEATURE_WLAN_WAPI
1583/* ---------------------------------------------------------------------------
1584 \fn sme_RoamSetBKIDCache
1585 \brief The SME API exposed to HDD to allow HDD to provde SME the BKID
1586 candidate list.
1587 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1588 it is opened (by calling halOpen).
1589 \param pBKIDCache - caller allocated buffer point to an array of tBkidCacheInfo
1590 \param numItems - a variable that has the number of tBkidCacheInfo allocated
1591 when retruning, this is the number of items put into pBKIDCache
1592 \return eHalStatus - when fail, it usually means the buffer allocated is not
1593 big enough and pNumItems has the number of tBkidCacheInfo.
1594 ---------------------------------------------------------------------------*/
1595eHalStatus sme_RoamSetBKIDCache( tHalHandle hHal, tANI_U32 sessionId, tBkidCacheInfo *pBKIDCache,
1596 tANI_U32 numItems );
1597
1598/* ---------------------------------------------------------------------------
1599 \fn sme_RoamGetBKIDCache
1600 \brief The SME API exposed to HDD to allow HDD to request SME to return its
1601 BKID cache.
1602 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1603 it is opened (by calling halOpen).
1604 \param pNum - caller allocated memory that has the space of the number of
1605 tBkidCacheInfo as input. Upon returned, *pNum has the needed number of entries
1606 in SME cache.
1607 \param pBkidCache - Caller allocated memory that contains BKID cache, if any,
1608 upon return
1609 \return eHalStatus - when fail, it usually means the buffer allocated is not
1610 big enough.
1611 ---------------------------------------------------------------------------*/
1612eHalStatus sme_RoamGetBKIDCache(tHalHandle hHal, tANI_U32 *pNum,
1613 tBkidCacheInfo *pBkidCache);
1614
1615/* ---------------------------------------------------------------------------
1616 \fn sme_RoamGetNumBKIDCache
1617 \brief The SME API exposed to HDD to allow HDD to request SME to return the
1618 number of BKID cache entries.
1619 \param hHal - Handle to the HAL. The HAL handle is returned by the HAL after
1620 it is opened (by calling halOpen).
1621 \return tANI_U32 - the number of BKID cache entries.
1622 ---------------------------------------------------------------------------*/
1623tANI_U32 sme_RoamGetNumBKIDCache(tHalHandle hHal, tANI_U32 sessionId);
1624
1625/* ---------------------------------------------------------------------------
1626 \fn sme_ScanGetBKIDCandidateList
1627 \brief a wrapper function to return the BKID candidate list
1628 \param pBkidList - caller allocated buffer point to an array of
1629 tBkidCandidateInfo
1630 \param pNumItems - pointer to a variable that has the number of
1631 tBkidCandidateInfo allocated when retruning, this is
1632 either the number needed or number of items put into
1633 pPmkidList
1634 \return eHalStatus - when fail, it usually means the buffer allocated is not
1635 big enough and pNumItems
1636 has the number of tBkidCandidateInfo.
1637 \Note: pNumItems is a number of tBkidCandidateInfo,
1638 not sizeof(tBkidCandidateInfo) * something
1639 ---------------------------------------------------------------------------*/
1640eHalStatus sme_ScanGetBKIDCandidateList(tHalHandle hHal, tANI_U32 sessionId,
1641 tBkidCandidateInfo *pBkidList,
1642 tANI_U32 *pNumItems );
1643#endif /* FEATURE_WLAN_WAPI */
1644
Jeff Johnsone7245742012-09-05 17:12:55 -07001645#ifdef FEATURE_OEM_DATA_SUPPORT
1646/********************************************************************************************
1647 Oem data related modifications
1648*********************************************************************************************/
1649/* ---------------------------------------------------------------------------
1650 \fn sme_OemDataReq
1651 \param sessionId - session id of session to be used for oem data req.
1652 \param pOemDataReqID - pointer to an object to get back the request ID
1653 \param callback - a callback function that is called upon finish
1654 \param pContext - a pointer passed in for the callback
1655 \return eHalStatus
1656 ---------------------------------------------------------------------------*/
1657eHalStatus sme_OemDataReq(tHalHandle hHal,
1658 tANI_U8 sessionId,
1659 tOemDataReqConfig *,
1660 tANI_U32 *pOemDataReqID,
1661 oemData_OemDataReqCompleteCallback callback,
1662 void *pContext);
1663
1664/* ---------------------------------------------------------------------------
1665 \fn sme_getOemDataRsp
1666 \param pOemDataRsp - A pointer to the response object
1667 \param pOemDataReqID - pointer to an object to get back the request ID
1668 \return eHalStatus
1669 ---------------------------------------------------------------------------*/
1670eHalStatus sme_getOemDataRsp(tHalHandle hHal,
1671 tOemDataRsp **pOemDataRsp);
1672
1673#endif /*FEATURE_OEM_DATA_SUPPORT*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001674
1675
Jeff Johnson295189b2012-06-20 16:38:30 -07001676
1677/* ---------------------------------------------------------------------------
1678
1679 \fn sme_RoamUpdateAPWPSIE
1680
1681 \brief To update AP's WPS IE. This function should be called after SME AP session is created
1682 This is an asynchronous API.
1683
1684 \param pAPWPSIES - pointer to a caller allocated object of tCsrRoamAPWPSIES
1685
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001686 \return eHalStatus SUCCESS Roam callback will be called indicate actually results
Jeff Johnson295189b2012-06-20 16:38:30 -07001687
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001688 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07001689
1690 -------------------------------------------------------------------------------*/
1691
1692eHalStatus sme_RoamUpdateAPWPSIE(tHalHandle, tANI_U8 sessionId, tSirAPWPSIEs *pAPWPSIES);
1693/* ---------------------------------------------------------------------------
1694
1695 \fn sme_RoamUpdateAPWPARSNIEs
1696
1697 \brief To update AP's WPA/RSN IEs. This function should be called after SME AP session is created
1698 This is an asynchronous API.
1699
1700 \param pAPSirRSNie - pointer to a caller allocated object of tSirRSNie with WPS/RSN IEs
1701
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001702 \return eHalStatus SUCCESS
Jeff Johnson295189b2012-06-20 16:38:30 -07001703
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001704 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07001705
1706 -------------------------------------------------------------------------------*/
1707eHalStatus sme_RoamUpdateAPWPARSNIEs(tHalHandle hHal, tANI_U8 sessionId, tSirRSNie * pAPSirRSNie);
1708
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08001709/* ---------------------------------------------------------------------------
1710
1711 sme_ChangeMCCBeaconInterval
1712
1713 \brief To update P2P-GO's beacon Interval.
1714
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001715 \return eHalStatus SUCCESS
1716 FAILURE or RESOURCES
1717 The API finished and failed.
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08001718 -------------------------------------------------------------------------------*/
1719eHalStatus sme_ChangeMCCBeaconInterval(tHalHandle hHal, tANI_U8 sessionId);
1720
1721
Jeff Johnson295189b2012-06-20 16:38:30 -07001722
1723/* ---------------------------------------------------------------------------
1724 \fn sme_sendBTAmpEvent
1725 \brief API to send the btAMPstate to FW
1726 \param hHal - The handle returned by macOpen.
1727 \param btAmpEvent -- btAMP event
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001728 \return eHalStatus SUCCESS
1729 FAILURE or RESOURCES The API finished and failed.
Jeff Johnson295189b2012-06-20 16:38:30 -07001730
1731--------------------------------------------------------------------------- */
1732
1733eHalStatus sme_sendBTAmpEvent(tHalHandle hHal, tSmeBtAmpEvent btAmpEvent);
1734
1735
1736
1737/* ---------------------------------------------------------------------------
1738 \fn sme_SetHostOffload
1739 \brief API to set the host offload feature.
1740 \param hHal - The handle returned by macOpen.
1741 \param pRequest - Pointer to the offload request.
1742 \return eHalStatus
1743 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001744eHalStatus sme_SetHostOffload (tHalHandle hHal, tANI_U8 sessionId,
1745 tpSirHostOffloadReq pRequest);
Jeff Johnson295189b2012-06-20 16:38:30 -07001746
1747/* ---------------------------------------------------------------------------
1748 \fn sme_SetKeepAlive
1749 \brief API to set the Keep Alive feature.
1750 \param hHal - The handle returned by macOpen.
1751 \param pRequest - Pointer to the Keep Alive request.
1752 \return eHalStatus
1753 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001754eHalStatus sme_SetKeepAlive (tHalHandle hHal, tANI_U8 sessionId,
1755 tpSirKeepAliveReq pRequest);
Jeff Johnson295189b2012-06-20 16:38:30 -07001756
1757
1758/* ---------------------------------------------------------------------------
1759 \fn sme_AbortMacScan
1760 \brief API to cancel MAC scan.
1761 \param hHal - The handle returned by macOpen.
1762 \return VOS_STATUS
1763 VOS_STATUS_E_FAILURE - failure
1764 VOS_STATUS_SUCCESS success
1765 ---------------------------------------------------------------------------*/
1766eHalStatus sme_AbortMacScan(tHalHandle hHal);
1767
1768/* ----------------------------------------------------------------------------
1769 \fn sme_GetOperationChannel
1770 \brief API to get current channel on which STA is parked
1771 this function gives channel information only of infra station or IBSS station.
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001772 \param hHal, pointer to memory location and sessionId
Jeff Johnson295189b2012-06-20 16:38:30 -07001773 \returns eHAL_STATUS_SUCCESS
1774 eHAL_STATUS_FAILURE
1775-------------------------------------------------------------------------------*/
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001776eHalStatus sme_GetOperationChannel(tHalHandle hHal, tANI_U32 *pChannel, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001777
Jeff Johnson295189b2012-06-20 16:38:30 -07001778/* ---------------------------------------------------------------------------
1779
1780 \fn sme_RegisterMgtFrame
1781
1782 \brief To register managment frame of specified type and subtype.
1783 \param frameType - type of the frame that needs to be passed to HDD.
1784 \param matchData - data which needs to be matched before passing frame
1785 to HDD.
1786 \param matchDataLen - Length of matched data.
1787 \return eHalStatus
1788 -------------------------------------------------------------------------------*/
1789eHalStatus sme_RegisterMgmtFrame(tHalHandle hHal, tANI_U8 sessionId,
1790 tANI_U16 frameType, tANI_U8* matchData, tANI_U16 matchLen);
1791
1792/* ---------------------------------------------------------------------------
1793
1794 \fn sme_DeregisterMgtFrame
1795
1796 \brief To De-register managment frame of specified type and subtype.
1797 \param frameType - type of the frame that needs to be passed to HDD.
1798 \param matchData - data which needs to be matched before passing frame
1799 to HDD.
1800 \param matchDataLen - Length of matched data.
1801 \return eHalStatus
1802 -------------------------------------------------------------------------------*/
1803eHalStatus sme_DeregisterMgmtFrame(tHalHandle hHal, tANI_U8 sessionId,
1804 tANI_U16 frameType, tANI_U8* matchData, tANI_U16 matchLen);
Jeff Johnson295189b2012-06-20 16:38:30 -07001805
1806/* ---------------------------------------------------------------------------
1807
1808 \fn sme_ConfigureRxpFilter
1809
1810 \brief
1811 SME will pass this request to lower mac to set/reset the filter on RXP for
1812 multicast & broadcast traffic.
1813
1814 \param
1815
1816 hHal - The handle returned by macOpen.
1817
1818 filterMask- Currently the API takes a 1 or 0 (set or reset) as filter.
1819 Basically to enable/disable the filter (to filter "all" mcbc traffic) based
1820 on this param. In future we can use this as a mask to set various types of
1821 filters as suggested below:
1822 FILTER_ALL_MULTICAST:
1823 FILTER_ALL_BROADCAST:
1824 FILTER_ALL_MULTICAST_BROADCAST:
1825
1826
1827 \return eHalStatus
1828
1829
1830--------------------------------------------------------------------------- */
1831eHalStatus sme_ConfigureRxpFilter( tHalHandle hHal,
1832 tpSirWlanSetRxpFilters wlanRxpFilterParam);
1833
1834/* ---------------------------------------------------------------------------
1835
1836 \fn sme_ConfigureAppsCpuWakeupState
1837
1838 \brief
1839 SME will pass this request to lower mac to dynamically adjusts the listen
1840 interval based on the WLAN/MSM activity. This feature is named as
1841 Telescopic Beacon wakeup feature.
1842
1843 \param
1844
1845 hHal - The handle returned by macOpen.
1846
1847 isAppsAwake- Depicts the state of the Apps CPU
1848
1849
1850 \return eHalStatus
1851
1852
1853--------------------------------------------------------------------------- */
1854eHalStatus sme_ConfigureAppsCpuWakeupState( tHalHandle hHal, tANI_BOOLEAN isAppsAwake);
1855
Jeff Johnson295189b2012-06-20 16:38:30 -07001856/* ---------------------------------------------------------------------------
1857
1858 \fn sme_ConfigureSuspendInd
1859
1860 \brief
1861 SME will pass this request to lower mac to Indicate that the wlan needs to
1862 be suspended
1863
1864 \param
1865
1866 hHal - The handle returned by macOpen.
1867
1868 wlanSuspendParam- Depicts the wlan suspend params
1869
1870
1871 \return eHalStatus
1872
1873
1874--------------------------------------------------------------------------- */
1875eHalStatus sme_ConfigureSuspendInd( tHalHandle hHal,
1876 tpSirWlanSuspendParam wlanSuspendParam);
1877
1878/* ---------------------------------------------------------------------------
1879
1880 \fn sme_ConfigureResumeReq
1881
1882 \brief
1883 SME will pass this request to lower mac to Indicate that the wlan needs to
1884 be Resumed
1885
1886 \param
1887
1888 hHal - The handle returned by macOpen.
1889
1890 wlanResumeParam- Depicts the wlan resume params
1891
1892
1893 \return eHalStatus
1894
1895
1896--------------------------------------------------------------------------- */
1897eHalStatus sme_ConfigureResumeReq( tHalHandle hHal,
1898 tpSirWlanResumeParam wlanResumeParam);
1899
Jeff Johnson295189b2012-06-20 16:38:30 -07001900
1901/* ---------------------------------------------------------------------------
1902
1903 \fn sme_GetInfraSessionId
1904
1905 \brief To get the session ID for infra session, if connected
1906 This is a synchronous API.
1907
1908 \param hHal - The handle returned by macOpen.
1909
1910 \return sessionid, -1 if infra session is not connected
1911
1912 -------------------------------------------------------------------------------*/
1913tANI_S8 sme_GetInfraSessionId(tHalHandle hHal);
1914
1915/* ---------------------------------------------------------------------------
1916
1917 \fn sme_GetInfraOperationChannel
1918
1919 \brief To get the operating channel for infra session, if connected
1920 This is a synchronous API.
1921
1922 \param hHal - The handle returned by macOpen.
1923 \param sessionId - the sessionId returned by sme_OpenSession.
1924
1925 \return operating channel, 0 if infra session is not connected
1926
1927 -------------------------------------------------------------------------------*/
1928tANI_U8 sme_GetInfraOperationChannel( tHalHandle hHal, tANI_U8 sessionId);
1929/* ---------------------------------------------------------------------------
1930
1931 \fn sme_GetConcurrentOperationChannel
1932
1933 \brief To get the operating channel for other concurrent sessions, if connected
1934 This is a synchronous API.
1935
1936 \param hHal - The handle returned by macOpen.
1937 \param currentPersona - persona that is trying to come up.
1938
1939 \return operating channel, 0 if infra session is not connected
1940
1941 -------------------------------------------------------------------------------*/
1942tANI_U8 sme_GetConcurrentOperationChannel( tHalHandle hHal );
1943
1944/* ---------------------------------------------------------------------------
1945 \fn sme_AbortMacScan
1946 \brief API to cancel MAC scan.
1947 \param hHal - The handle returned by macOpen.
1948 \return VOS_STATUS
1949 VOS_STATUS_E_FAILURE - failure
1950 VOS_STATUS_SUCCESS success
1951 ---------------------------------------------------------------------------*/
1952eHalStatus sme_AbortMacScan(tHalHandle hHal);
1953
1954/* ---------------------------------------------------------------------------
1955 \fn sme_GetCfgValidChannels
1956 \brief API to get valid channel list
1957 \param hHal - The handle returned by macOpen.
1958 \param aValidChannels - Pointer to the valid channel list
1959 \param len - valid channel list length
1960 \return eHalStatus
1961 ---------------------------------------------------------------------------*/
1962eHalStatus sme_GetCfgValidChannels(tHalHandle hHal, tANI_U8 *aValidChannels, tANI_U32 *len);
1963
1964#ifdef FEATURE_WLAN_SCAN_PNO
1965
1966/* ---------------------------------------------------------------------------
1967 \fn sme_SetPreferredNetworkList
1968 \brief API to set the Preferred Network List Offload feature.
1969 \param hHal - The handle returned by macOpen.
1970 \param pRequest - Pointer to the offload request.
1971 \return eHalStatus
1972 ---------------------------------------------------------------------------*/
1973eHalStatus sme_SetPreferredNetworkList (tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext );
1974
1975/* ---------------------------------------------------------------------------
1976 \fn sme_SetRSSIFilter
1977 \brief API to set RSSI Filter feature.
1978 \param hHal - The handle returned by macOpen.
1979 \param pRequest - Pointer to the offload request.
1980 \return eHalStatus
1981 ---------------------------------------------------------------------------*/
1982eHalStatus sme_SetRSSIFilter(tHalHandle hHal, v_U8_t rssiThreshold);
1983
1984/******************************************************************************
1985*
1986* Name: sme_PreferredNetworkFoundInd
1987*
1988* Description:
1989* Invoke Preferred Network Found Indication
1990*
1991* Parameters:
1992* hHal - HAL handle for device
1993* pMsg - found network description
1994*
1995* Returns: eHalStatus
1996*
1997******************************************************************************/
1998eHalStatus sme_PreferredNetworkFoundInd (tHalHandle hHal, void* pMsg);
1999#endif // FEATURE_WLAN_SCAN_PNO
2000
2001/* ---------------------------------------------------------------------------
2002 \fn sme_SetPowerParams
2003 \brief API to set Power Parameters
2004 \param hHal - The handle returned by macOpen.
2005 \param pwParams - Pointer to the power parameters requested.
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -08002006 \param forced - if true, not to be dropped silently in host, it must reach
2007 FW; It is added to avoid a race condition scenario where LIM hasn't deleted
2008 the session yet before power params gets sent to PMC
Jeff Johnson295189b2012-06-20 16:38:30 -07002009 \return eHalStatus
2010 ---------------------------------------------------------------------------*/
Tushnim Bhattacharyya3a37def2013-02-24 11:11:15 -08002011eHalStatus sme_SetPowerParams(tHalHandle hHal, tSirSetPowerParamsReq* pwParams, tANI_BOOLEAN forced);
Jeff Johnson295189b2012-06-20 16:38:30 -07002012
2013/* ---------------------------------------------------------------------------
2014 \fn sme_SetTxPerTracking
2015 \brief Set Tx PER tracking configuration parameters
2016 \param hHal - The handle returned by macOpen.
2017 \param pTxPerTrackingParam - Tx PER configuration parameters
2018 \return eHalStatus
2019 ---------------------------------------------------------------------------*/
2020eHalStatus sme_SetTxPerTracking (
2021 tHalHandle hHal,
2022 void (*pCallbackfn) (void *pCallbackContext),
2023 void *pCallbackContext,
2024 tpSirTxPerTrackingParam pTxPerTrackingParam);
2025
2026#ifdef WLAN_FEATURE_PACKET_FILTERING
2027/* ---------------------------------------------------------------------------
2028 \fn sme_ReceiveFilterSetFilter
2029 \brief API to set 8023 Multicast Address List
2030 \param hHal - The handle returned by macOpen.
2031 \param pMulticastAddrs - Pointer to the Multicast Address List
2032 \return eHalStatus
2033 ---------------------------------------------------------------------------*/
Amar Singhalf3a6e762013-02-19 15:06:50 -08002034eHalStatus sme_8023MulticastList(tHalHandle hHal, tANI_U8 sessionId, tpSirRcvFltMcAddrList pMulticastAddrs);
Jeff Johnson295189b2012-06-20 16:38:30 -07002035
2036/* ---------------------------------------------------------------------------
2037 \fn sme_ReceiveFilterSetFilter
2038 \brief API to set Receive Packet Filter
2039 \param hHal - The handle returned by macOpen.
2040 \param pRcvPktFilterCfg - Receive Packet Filter parameter
2041 \return eHalStatus
2042 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002043eHalStatus sme_ReceiveFilterSetFilter(tHalHandle hHal, tpSirRcvPktFilterCfgType pRcvPktFilterCfg,
2044 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002045
2046/* ---------------------------------------------------------------------------
2047 \fn sme_GetFilterMatchCount
2048 \brief API to get D0 PC Filter Match Count
2049 \param hHal - The handle returned by macOpen
2050 \param callbackRoutine - Callback routine invoked to receive Packet Coalescing Filter Match Count
2051 \param callbackContext - Cookie to be passed back during callback
2052 \return eHalStatus
2053 ---------------------------------------------------------------------------*/
2054eHalStatus sme_GetFilterMatchCount(tHalHandle hHal,
2055 FilterMatchCountCallback callbackRoutine,
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002056 void *callbackContext,
2057 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002058
2059/* ---------------------------------------------------------------------------
2060 \fn sme_ReceiveFilterClearFilter
2061 \brief API to clear Receive Packet Filter
2062 \param hHal - The handle returned by macOpen.
2063 \param pRcvFltPktClearParam - Receive Packet Filter Clear parameter
2064 \return eHalStatus
2065 ---------------------------------------------------------------------------*/
2066eHalStatus sme_ReceiveFilterClearFilter(tHalHandle hHal,
Jeff Johnsone7245742012-09-05 17:12:55 -07002067 tpSirRcvFltPktClearParam pRcvFltPktClearParam,
2068 tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002069#endif // WLAN_FEATURE_PACKET_FILTERING
2070/* ---------------------------------------------------------------------------
2071
2072 \fn sme_IsChannelValid
2073 \brief To check if the channel is valid for currently established domain
2074 This is a synchronous API.
2075
2076 \param hHal - The handle returned by macOpen.
2077 \param channel - channel to verify
2078
2079 \return TRUE/FALSE, TRUE if channel is valid
2080
2081 -------------------------------------------------------------------------------*/
2082tANI_BOOLEAN sme_IsChannelValid(tHalHandle hHal, tANI_U8 channel);
2083
2084/* ---------------------------------------------------------------------------
2085 \fn sme_SetFreqBand
2086 \brief Used to set frequency band.
2087 \param hHal
2088 \eBand band value to be configured
2089 \- return eHalStatus
2090 -------------------------------------------------------------------------*/
2091eHalStatus sme_SetFreqBand(tHalHandle hHal, eCsrBand eBand);
2092
2093/* ---------------------------------------------------------------------------
2094 \fn sme_GetFreqBand
2095 \brief Used to get the current band settings.
2096 \param hHal
2097 \pBand pointer to hold the current band value
2098 \- return eHalStatus
2099 -------------------------------------------------------------------------*/
2100eHalStatus sme_GetFreqBand(tHalHandle hHal, eCsrBand *pBand);
2101
2102/* ---------------------------------------------------------------------------
2103
2104 \fn sme_SetTxPerTracking
2105 \brief Set Tx PER tracking configuration parameters
2106 \param hHal - The handle returned by macOpen.
2107 \param pTxPerTrackingParam - Tx PER configuration parameters
2108 \return eHalStatus
2109 ---------------------------------------------------------------------------*/
2110eHalStatus sme_SetTxPerTracking (
2111 tHalHandle hHal,
2112 void (*pCallbackfn) (void *pCallbackContext),
2113 void *pCallbackContext,
2114 tpSirTxPerTrackingParam pTxPerTrackingParam);
2115
2116#ifdef WLAN_FEATURE_GTK_OFFLOAD
2117/* ---------------------------------------------------------------------------
2118 \fn sme_SetGTKOffload
2119 \brief API to set GTK offload feature.
2120 \param hHal - The handle returned by macOpen.
2121 \param pRequest - Pointer to the GTK offload request.
2122 \return eHalStatus
2123 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002124eHalStatus sme_SetGTKOffload (tHalHandle hHal, tpSirGtkOffloadParams pRequest, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002125
2126/* ---------------------------------------------------------------------------
2127 \fn sme_GetGTKOffload
2128 \brief API to get GTK offload information.
2129 \param hHal - The handle returned by macOpen.
2130 \param pRequest - Pointer to the GTK offload response.
2131 \return eHalStatus
2132 ---------------------------------------------------------------------------*/
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002133eHalStatus sme_GetGTKOffload (tHalHandle hHal, GTKOffloadGetInfoCallback callbackRoutine,
2134 void *callbackContext, tANI_U8 sessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -07002135#endif // WLAN_FEATURE_GTK_OFFLOAD
2136
2137#ifdef WLAN_WAKEUP_EVENTS
2138eHalStatus sme_WakeReasonIndCallback (tHalHandle hHal, void* pMsg);
2139#endif // WLAN_WAKEUP_EVENTS
2140
2141/* ---------------------------------------------------------------------------
2142 \fn sme_SetTxPerTracking
2143 \brief Set Tx PER tracking configuration parameters
2144 \param hHal - The handle returned by macOpen.
2145 \param pTxPerTrackingParam - Tx PER configuration parameters
2146 \return eHalStatus
2147 ---------------------------------------------------------------------------*/
2148eHalStatus sme_SetTxPerTracking (
2149 tHalHandle hHal,
2150 void (*pCallbackfn) (void *pCallbackContext),
2151 void *pCallbackContext,
2152 tpSirTxPerTrackingParam pTxPerTrackingParam);
2153
2154
2155//return frequency for a particular channel
2156tANI_U16 sme_ChnToFreq(tANI_U8 chanNum);
2157
2158tANI_BOOLEAN sme_IsChannelValid(tHalHandle hHal, tANI_U8 channel);
2159
2160#if defined WLAN_FEATURE_P2P_INTERNAL
2161
2162eHalStatus sme_p2pResetSession(tHalHandle hHal, tANI_U8 HDDSessionId);
2163
2164/* ---------------------------------------------------------------------------
2165 \fn sme_p2pFlushDeviceList
2166 \brief Remove cached P2P result from scan results
2167 \param hHal - The handle returned by macOpen.
2168 \param HDDSessionId - HDD's sessionId. Currently unused.
2169 \return eHalStatus
2170 ---------------------------------------------------------------------------*/
2171eHalStatus sme_p2pFlushDeviceList(tHalHandle hHal, tANI_U8 HDDSessionId);
2172
2173eHalStatus sme_p2pGetResultFilter(tHalHandle hHal, tANI_U8 HDDSessionId,
2174 tCsrScanResultFilter *pFilter);
2175
2176#endif //#if defined WLAN_FEATURE_P2P_INTERNAL
2177
2178/* ---------------------------------------------------------------------------
2179 \fn sme_SetMaxTxPower
2180 \brief Used to set the Maximum Transmit Power dynamically. Note: this
2181 setting will not persist over reboots
2182 \param hHal
2183 \param pBssid BSSID to set the power cap for
2184 \param pBssid pSelfMacAddress self MAC Address
2185 \param pBssid power to set in dB
2186 \- return eHalStatus
2187 -------------------------------------------------------------------------*/
2188eHalStatus sme_SetMaxTxPower(tHalHandle hHal, tSirMacAddr pBssid,
2189 tSirMacAddr pSelfMacAddress, v_S7_t dB);
2190
Jeff Johnson295189b2012-06-20 16:38:30 -07002191/* ---------------------------------------------------------------------------
2192
schang86c22c42013-03-13 18:41:24 -07002193 \fn sme_SetTxPower
2194
2195 \brief Set Transmit Power dynamically. Note: this setting will
2196 not persist over reboots.
2197
2198 \param hHal
2199 \param sessionId Target Session ID
2200 \param mW power to set in mW
2201 \- return eHalStatus
2202
2203 -------------------------------------------------------------------------------*/
2204eHalStatus sme_SetTxPower(tHalHandle hHal, v_U8_t sessionId, v_U8_t mW);
2205
2206/* ---------------------------------------------------------------------------
2207
Jeff Johnson295189b2012-06-20 16:38:30 -07002208 \fn sme_HideSSID
2209
2210 \brief Enable/Disables hidden SSID dynamically. Note: this setting will
2211 not persist over reboots.
2212
2213 \param hHal
2214 \param sessionId
2215 \param ssidHidden 0 - Broadcast SSID, 1 - Disable broadcast SSID
2216 \- return eHalStatus
2217
2218 -------------------------------------------------------------------------------*/
2219eHalStatus sme_HideSSID(tHalHandle hHal, v_U8_t sessionId, v_U8_t ssidHidden);
Jeff Johnson295189b2012-06-20 16:38:30 -07002220
2221/* ---------------------------------------------------------------------------
2222
2223 \fn sme_SetTmLevel
2224 \brief Set Thermal Mitigation Level to RIVA
2225 \param hHal - The handle returned by macOpen.
2226 \param newTMLevel - new Thermal Mitigation Level
2227 \param tmMode - Thermal Mitigation handle mode, default 0
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07002228 \return eHalStatus
Jeff Johnson295189b2012-06-20 16:38:30 -07002229 ---------------------------------------------------------------------------*/
2230eHalStatus sme_SetTmLevel(tHalHandle hHal, v_U16_t newTMLevel, v_U16_t tmMode);
2231
2232/*---------------------------------------------------------------------------
2233
2234 \brief sme_featureCapsExchange() - SME interface to exchange capabilities between
2235 Host and FW.
2236
2237 \param hHal - HAL handle for device
2238
2239 \return NONE
2240
2241---------------------------------------------------------------------------*/
2242void sme_featureCapsExchange(tHalHandle hHal);
2243
Jeff Johnsond13512a2012-07-17 11:42:19 -07002244/*---------------------------------------------------------------------------
2245
Yathish9f22e662012-12-10 14:21:35 -08002246 \brief sme_disableActiveModeOffload() - SME interface to disable Active mode Offload capabilitu
2247 between in Host.
2248
2249 \param hHal - HAL handle for device
2250
2251 \return NONE
2252
2253---------------------------------------------------------------------------*/
2254void sme_disableFeatureCapablity(tANI_U8 feature_index);
2255
2256/*---------------------------------------------------------------------------
2257
Jeff Johnsond13512a2012-07-17 11:42:19 -07002258 \brief sme_GetDefaultCountryCodeFrmNv() - SME interface to get the default
2259 country code
2260 Host and FW.
2261
2262 \param hHal - HAL handle for device
2263 \param pCountry - pointer to country code
2264
Jeff Johnsonfeddb2d2012-12-10 14:41:22 -08002265 \return Success or failure
Jeff Johnsond13512a2012-07-17 11:42:19 -07002266
2267 ---------------------------------------------------------------------------*/
2268eHalStatus sme_GetDefaultCountryCodeFrmNv(tHalHandle hHal, tANI_U8 *pCountry);
2269
2270/*---------------------------------------------------------------------------
2271
2272 \brief sme_GetCurrentCountryCode() - SME interface to get the current operating
2273 country code.
2274
2275 \param hHal - HAL handle for device
2276 \param pCountry - pointer to country code
2277
2278 \return Success or failure
2279
2280 ---------------------------------------------------------------------------*/
2281eHalStatus sme_GetCurrentCountryCode(tHalHandle hHal, tANI_U8 *pCountry);
2282
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002283/* ---------------------------------------------------------------------------
2284 \fn sme_transportDebug
2285 \brief Dynamically monitoring Transport channels
2286 Private IOCTL will querry transport channel status if driver loaded
schang6295e542013-03-12 15:31:23 -07002287 \param hHal Upper MAC context
Jeff Johnsonb88db982012-12-10 13:34:59 -08002288 \param displaySnapshot Display transport channel snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002289 \param toggleStallDetect Enable stall detect feature
2290 This feature will take effect to data performance
2291 Not integrate till fully verification
2292 \- return NONE
2293 -------------------------------------------------------------------------*/
schang6295e542013-03-12 15:31:23 -07002294void sme_transportDebug(tHalHandle hHal, v_BOOL_t displaySnapshot, v_BOOL_t toggleStallDetect);
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002295
Kiran4a17ebe2013-01-31 10:43:43 -08002296/* ---------------------------------------------------------------------------
2297 \fn sme_ResetPowerValuesFor5G
2298 \brief Reset the power values for 5G band with NV power values.
2299 \param hHal - HAL handle for device
2300 \- return NONE
2301 -------------------------------------------------------------------------*/
2302void sme_ResetPowerValuesFor5G (tHalHandle hHal);
2303
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002304#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
2305/* ---------------------------------------------------------------------------
2306 \fn sme_UpdateRoamPrefer5GHz
2307 \brief enable/disable Roam prefer 5G runtime option
2308 This function is called through dynamic setConfig callback function
2309 to configure the Roam prefer 5G runtime option
2310 \param hHal - HAL handle for device
2311 \param nRoamPrefer5GHz Enable/Disable Roam prefer 5G runtime option
2312 \- return Success or failure
2313 -------------------------------------------------------------------------*/
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002314eHalStatus sme_UpdateRoamPrefer5GHz(tHalHandle hHal, v_BOOL_t nRoamPrefer5GHz);
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08002315
2316/* ---------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002317 \fn sme_setRoamIntraBand
2318 \brief enable/disable Intra band roaming
2319 This function is called through dynamic setConfig callback function
2320 to configure the intra band roaming
2321 \param hHal - HAL handle for device
2322 \param nRoamIntraBand Enable/Disable Intra band roaming
2323 \- return Success or failure
2324 -------------------------------------------------------------------------*/
2325eHalStatus sme_setRoamIntraBand(tHalHandle hHal, const v_BOOL_t nRoamIntraBand);
2326
2327/* ---------------------------------------------------------------------------
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002328 \fn sme_UpdateRoamScanNProbes
2329 \brief function to update roam scan N probes
2330 This function is called through dynamic setConfig callback function
2331 to update roam scan N probes
2332 \param hHal - HAL handle for device
2333 \param nProbes number of probe requests to be sent out
2334 \- return Success or failure
2335 -------------------------------------------------------------------------*/
2336eHalStatus sme_UpdateRoamScanNProbes(tHalHandle hHal, const v_U8_t nProbes);
2337
2338/* ---------------------------------------------------------------------------
2339 \fn sme_UpdateRoamScanHomeAwayTime
2340 \brief function to update roam scan Home away time
2341 This function is called through dynamic setConfig callback function
2342 to update roam scan home away time
2343 \param hHal - HAL handle for device
2344 \param nRoamScanAwayTime Scan home away time
2345 \- return Success or failure
2346 -------------------------------------------------------------------------*/
Srinivas Girigowda6cf0b822013-06-27 14:00:20 -07002347eHalStatus sme_UpdateRoamScanHomeAwayTime(tHalHandle hHal,
2348 const v_U16_t nRoamScanHomeAwayTime,
2349 const eAniBoolean bSendOffloadCmd);
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002350
2351/* ---------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002352 \fn sme_getRoamIntraBand
2353 \brief get Intra band roaming
2354 \param hHal - HAL handle for device
2355 \- return Success or failure
2356 -------------------------------------------------------------------------*/
2357v_BOOL_t sme_getRoamIntraBand(tHalHandle hHal);
2358
2359/* ---------------------------------------------------------------------------
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07002360 \fn sme_getRoamScanNProbes
2361 \brief get N Probes
2362 \param hHal - HAL handle for device
2363 \- return Success or failure
2364 -------------------------------------------------------------------------*/
2365v_U8_t sme_getRoamScanNProbes(tHalHandle hHal);
2366
2367/* ---------------------------------------------------------------------------
2368 \fn sme_getRoamScanHomeAwayTime
2369 \brief get Roam scan home away time
2370 \param hHal - HAL handle for device
2371 \- return Success or failure
2372 -------------------------------------------------------------------------*/
2373v_U16_t sme_getRoamScanHomeAwayTime(tHalHandle hHal);
2374
2375/* ---------------------------------------------------------------------------
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08002376 \fn sme_UpdateImmediateRoamRssiDiff
2377 \brief Update nImmediateRoamRssiDiff
2378 This function is called through dynamic setConfig callback function
2379 to configure nImmediateRoamRssiDiff
2380 Usage: adb shell iwpriv wlan0 setConfig gImmediateRoamRssiDiff=[0 .. 125]
2381 \param hHal - HAL handle for device
2382 \param nImmediateRoamRssiDiff - minimum rssi difference between potential
2383 candidate and current AP.
2384 \- return Success or failure
2385 -------------------------------------------------------------------------*/
2386
2387eHalStatus sme_UpdateImmediateRoamRssiDiff(tHalHandle hHal, v_U8_t nImmediateRoamRssiDiff);
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002388
Srinivas Girigowdade697412013-02-14 16:31:48 -08002389/* ---------------------------------------------------------------------------
2390 \fn sme_UpdateRoamRssiDiff
2391 \brief Update RoamRssiDiff
2392 This function is called through dynamic setConfig callback function
2393 to configure RoamRssiDiff
2394 Usage: adb shell iwpriv wlan0 setConfig RoamRssiDiff=[0 .. 125]
2395 \param hHal - HAL handle for device
2396 \param RoamRssiDiff - minimum rssi difference between potential
2397 candidate and current AP.
2398 \- return Success or failure
2399 -------------------------------------------------------------------------*/
2400
2401eHalStatus sme_UpdateRoamRssiDiff(tHalHandle hHal, v_U8_t RoamRssiDiff);
2402
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002403/*--------------------------------------------------------------------------
2404 \brief sme_UpdateFastTransitionEnabled() - enable/disable Fast Transition support at runtime
2405 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2406 isFastTransitionEnabled.
2407 This is a synchronuous call
2408 \param hHal - The handle returned by macOpen.
2409 \return eHAL_STATUS_SUCCESS - SME update isFastTransitionEnabled config successfully.
2410 Other status means SME is failed to update isFastTransitionEnabled.
2411 \sa
2412 --------------------------------------------------------------------------*/
2413
2414eHalStatus sme_UpdateFastTransitionEnabled(tHalHandle hHal,
2415 v_BOOL_t isFastTransitionEnabled);
Srinivas Girigowda100eb322013-03-15 16:48:20 -07002416
2417/* ---------------------------------------------------------------------------
Srinivas Girigowda100eb322013-03-15 16:48:20 -07002418 \fn sme_SetRoamScanControl
2419 \brief Set roam scan control
2420 This function is called to set roam scan control
2421 if roam scan control is set to 0, roaming scan cache is cleared
2422 any value other than 0 is treated as invalid value
2423 \param hHal - HAL handle for device
2424 \return eHAL_STATUS_SUCCESS - SME update config successfully.
2425 Other status means SME failure to update
2426 -------------------------------------------------------------------------*/
2427eHalStatus sme_SetRoamScanControl(tHalHandle hHal, v_BOOL_t roamScanControl);
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002428#endif /* (WLAN_FEATURE_VOWIFI_11R) || (FEATURE_WLAN_CCX) || (FEATURE_WLAN_LFR) */
2429
2430#ifdef FEATURE_WLAN_LFR
2431/*--------------------------------------------------------------------------
2432 \brief sme_UpdateIsFastRoamIniFeatureEnabled() - enable/disable LFR support at runtime
Srinivas Girigowdade697412013-02-14 16:31:48 -08002433 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002434 isFastRoamIniFeatureEnabled.
2435 This is a synchronuous call
2436 \param hHal - The handle returned by macOpen.
2437 \return eHAL_STATUS_SUCCESS - SME update isFastRoamIniFeatureEnabled config successfully.
2438 Other status means SME is failed to update isFastRoamIniFeatureEnabled.
2439 \sa
2440 --------------------------------------------------------------------------*/
2441
Srinivas Girigowdade697412013-02-14 16:31:48 -08002442eHalStatus sme_UpdateIsFastRoamIniFeatureEnabled(tHalHandle hHal,
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002443 const v_BOOL_t isFastRoamIniFeatureEnabled);
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07002444
2445
2446#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
2447/*--------------------------------------------------------------------------
2448 \brief sme_UpdateEnableFastRoamInConcurrency() - enable/disable LFR if Concurrent session exists
2449 This is a synchronuous call
2450 \param hHal - The handle returned by macOpen.
2451 \return eHAL_STATUS_SUCCESS
2452 Other status means SME is failed
2453 \sa
2454 --------------------------------------------------------------------------*/
2455
2456eHalStatus sme_UpdateEnableFastRoamInConcurrency(tHalHandle hHal,
2457 v_BOOL_t bFastRoamInConIniFeatureEnabled);
2458#endif
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002459#endif /* FEATURE_WLAN_LFR */
2460
2461#ifdef FEATURE_WLAN_CCX
2462/*--------------------------------------------------------------------------
2463 \brief sme_UpdateIsCcxFeatureEnabled() - enable/disable CCX support at runtime
2464 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2465 isCcxIniFeatureEnabled.
2466 This is a synchronuous call
2467 \param hHal - The handle returned by macOpen.
2468 \return eHAL_STATUS_SUCCESS - SME update isCcxIniFeatureEnabled config successfully.
2469 Other status means SME is failed to update isCcxIniFeatureEnabled.
2470 \sa
2471 --------------------------------------------------------------------------*/
2472
2473eHalStatus sme_UpdateIsCcxFeatureEnabled(tHalHandle hHal,
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002474 const v_BOOL_t isCcxIniFeatureEnabled);
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08002475
2476#endif /* FEATURE_WLAN_CCX */
2477
2478/*--------------------------------------------------------------------------
2479 \brief sme_UpdateConfigFwRssiMonitoring() - enable/disable firmware RSSI Monitornig at runtime
2480 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2481 fEnableFwRssiMonitoring.
2482 This is a synchronuous call
2483 \param hHal - The handle returned by macOpen.
2484 \return eHAL_STATUS_SUCCESS - SME update fEnableFwRssiMonitoring config successfully.
2485 Other status means SME is failed to update
2486 \sa
2487 --------------------------------------------------------------------------*/
2488
2489eHalStatus sme_UpdateConfigFwRssiMonitoring(tHalHandle hHal,
2490 v_BOOL_t fEnableFwRssiMonitoring);
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08002491
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002492#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
Srinivas Girigowdade697412013-02-14 16:31:48 -08002493/*--------------------------------------------------------------------------
2494 \brief sme_setNeighborLookupRssiThreshold() - update neighbor lookup rssi threshold
2495 This is a synchronuous call
2496 \param hHal - The handle returned by macOpen.
2497 \return eHAL_STATUS_SUCCESS - SME update config successful.
2498 Other status means SME is failed to update
2499 \sa
2500 --------------------------------------------------------------------------*/
2501eHalStatus sme_setNeighborLookupRssiThreshold(tHalHandle hHal,
2502 v_U8_t neighborLookupRssiThreshold);
2503
2504/*--------------------------------------------------------------------------
2505 \brief sme_setNeighborReassocRssiThreshold() - update neighbor reassoc rssi threshold
2506 This is a synchronuous call
2507 \param hHal - The handle returned by macOpen.
2508 \return eHAL_STATUS_SUCCESS - SME update config successful.
2509 Other status means SME is failed to update
2510 \sa
2511 --------------------------------------------------------------------------*/
2512eHalStatus sme_setNeighborReassocRssiThreshold(tHalHandle hHal,
2513 v_U8_t neighborReassocRssiThreshold);
2514
2515/*--------------------------------------------------------------------------
2516 \brief sme_getNeighborLookupRssiThreshold() - get neighbor lookup rssi threshold
2517 This is a synchronuous call
2518 \param hHal - The handle returned by macOpen.
2519 \return eHAL_STATUS_SUCCESS - SME update config successful.
2520 Other status means SME is failed to update
2521 \sa
2522 --------------------------------------------------------------------------*/
2523v_U8_t sme_getNeighborLookupRssiThreshold(tHalHandle hHal);
2524
2525/*--------------------------------------------------------------------------
2526 \brief sme_setNeighborScanRefreshPeriod() - set neighbor scan results refresh period
2527 This is a synchronuous call
2528 \param hHal - The handle returned by macOpen.
2529 \return eHAL_STATUS_SUCCESS - SME update config successful.
2530 Other status means SME is failed to update
2531 \sa
2532 --------------------------------------------------------------------------*/
2533eHalStatus sme_setNeighborScanRefreshPeriod(tHalHandle hHal,
2534 v_U16_t neighborScanResultsRefreshPeriod);
2535
2536/*--------------------------------------------------------------------------
2537 \brief sme_getNeighborScanRefreshPeriod() - get neighbor scan results refresh period
2538 This is a synchronuous call
2539 \param hHal - The handle returned by macOpen.
2540 \return eHAL_STATUS_SUCCESS - SME update config successful.
2541 Other status means SME is failed to update
2542 \sa
2543 --------------------------------------------------------------------------*/
2544v_U16_t sme_getNeighborScanRefreshPeriod(tHalHandle hHal);
2545
2546/*--------------------------------------------------------------------------
2547 \brief sme_getEmptyScanRefreshPeriod() - get empty scan refresh period
2548 This is a synchronuous call
2549 \param hHal - The handle returned by macOpen.
2550 \return eHAL_STATUS_SUCCESS - SME update config successful.
2551 Other status means SME is failed to update
2552 \sa
2553 --------------------------------------------------------------------------*/
2554v_U16_t sme_getEmptyScanRefreshPeriod(tHalHandle hHal);
2555
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002556/* ---------------------------------------------------------------------------
2557 \fn sme_UpdateEmptyScanRefreshPeriod
2558 \brief Update nEmptyScanRefreshPeriod
2559 This function is called through dynamic setConfig callback function
2560 to configure nEmptyScanRefreshPeriod
2561 Usage: adb shell iwpriv wlan0 setConfig nEmptyScanRefreshPeriod=[0 .. 60]
2562 \param hHal - HAL handle for device
2563 \param nEmptyScanRefreshPeriod - scan period following empty scan results.
2564 \- return Success or failure
2565 -------------------------------------------------------------------------*/
2566eHalStatus sme_UpdateEmptyScanRefreshPeriod(tHalHandle hHal, v_U16_t nEmptyScanRefreshPeriod);
2567
2568/* ---------------------------------------------------------------------------
2569 \fn sme_setNeighborScanMinChanTime
2570 \brief Update nNeighborScanMinChanTime
2571 This function is called through dynamic setConfig callback function
2572 to configure gNeighborScanChannelMinTime
2573 Usage: adb shell iwpriv wlan0 setConfig gNeighborScanChannelMinTime=[0 .. 60]
2574 \param hHal - HAL handle for device
2575 \param nNeighborScanMinChanTime - Channel minimum dwell time
2576 \- return Success or failure
2577 -------------------------------------------------------------------------*/
2578eHalStatus sme_setNeighborScanMinChanTime(tHalHandle hHal, const v_U16_t nNeighborScanMinChanTime);
2579
2580/* ---------------------------------------------------------------------------
2581 \fn sme_setNeighborScanMaxChanTime
2582 \brief Update nNeighborScanMaxChanTime
2583 This function is called through dynamic setConfig callback function
2584 to configure gNeighborScanChannelMaxTime
2585 Usage: adb shell iwpriv wlan0 setConfig gNeighborScanChannelMaxTime=[0 .. 60]
2586 \param hHal - HAL handle for device
2587 \param nNeighborScanMinChanTime - Channel maximum dwell time
2588 \- return Success or failure
2589 -------------------------------------------------------------------------*/
2590eHalStatus sme_setNeighborScanMaxChanTime(tHalHandle hHal, const v_U16_t nNeighborScanMaxChanTime);
2591
2592/* ---------------------------------------------------------------------------
2593 \fn sme_getNeighborScanMinChanTime
2594 \brief get neighbor scan min channel time
2595 \param hHal - The handle returned by macOpen.
2596 \return v_U16_t - channel min time value
2597 -------------------------------------------------------------------------*/
2598v_U16_t sme_getNeighborScanMinChanTime(tHalHandle hHal);
2599
2600/* ---------------------------------------------------------------------------
2601 \fn sme_getNeighborScanMaxChanTime
2602 \brief get neighbor scan max channel time
2603 \param hHal - The handle returned by macOpen.
2604 \return v_U16_t - channel max time value
2605 -------------------------------------------------------------------------*/
2606v_U16_t sme_getNeighborScanMaxChanTime(tHalHandle hHal);
2607
2608/* ---------------------------------------------------------------------------
2609 \fn sme_setNeighborScanPeriod
2610 \brief Update nNeighborScanPeriod
2611 This function is called through dynamic setConfig callback function
2612 to configure nNeighborScanPeriod
2613 Usage: adb shell iwpriv wlan0 setConfig nNeighborScanPeriod=[0 .. 60]
2614 \param hHal - HAL handle for device
2615 \param nNeighborScanPeriod - neighbor scan period
2616 \- return Success or failure
2617 -------------------------------------------------------------------------*/
2618eHalStatus sme_setNeighborScanPeriod(tHalHandle hHal, const v_U16_t nNeighborScanPeriod);
2619
2620/* ---------------------------------------------------------------------------
2621 \fn sme_getNeighborScanPeriod
2622 \brief get neighbor scan period
2623 \param hHal - The handle returned by macOpen.
2624 \return v_U16_t - neighbor scan period
2625 -------------------------------------------------------------------------*/
2626v_U16_t sme_getNeighborScanPeriod(tHalHandle hHal);
2627
2628#endif
Srinivas Girigowdade697412013-02-14 16:31:48 -08002629
2630#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
2631/*--------------------------------------------------------------------------
2632 \brief sme_getRoamRssiDiff() - get Roam rssi diff
2633 This is a synchronuous call
2634 \param hHal - The handle returned by macOpen.
2635 \return eHAL_STATUS_SUCCESS - SME update config successful.
2636 Other status means SME is failed to update
2637 \sa
2638 --------------------------------------------------------------------------*/
2639v_U8_t sme_getRoamRssiDiff(tHalHandle hHal);
2640
2641/*--------------------------------------------------------------------------
2642 \brief sme_ChangeRoamScanChannelList() - Change roam scan channel list
2643 This is a synchronuous call
2644 \param hHal - The handle returned by macOpen.
2645 \return eHAL_STATUS_SUCCESS - SME update config successful.
2646 Other status means SME is failed to update
2647 \sa
2648 --------------------------------------------------------------------------*/
2649eHalStatus sme_ChangeRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList,
2650 tANI_U8 numChannels);
2651
2652/*--------------------------------------------------------------------------
2653 \brief sme_ChangeCountryValidChannelListByRevision() - Change Korea valid channel list
2654 based on country revision number
2655 This is a synchronuous call
2656 \param hHal - The handle returned by macOpen.
2657 \return eHAL_STATUS_SUCCESS - SME update config successful.
2658 Other status means SME is failed to update
2659 \sa
2660 --------------------------------------------------------------------------*/
2661eHalStatus sme_ChangeCountryValidChannelListByRevision(tHalHandle hHal,
2662 tANI_U8 Revision);
2663
2664/*--------------------------------------------------------------------------
2665 \brief csrUpdateBgScanConfigIniChannelList() - Update bgscan roam cache
2666 This is a synchronuous call
2667 \param hHal - The handle returned by macOpen.
2668 \return eHAL_STATUS_SUCCESS - SME update config successful.
2669 Other status means SME is failed to update
2670 \sa
2671 --------------------------------------------------------------------------*/
2672eHalStatus sme_UpdateBgScanConfigIniChannelList(tHalHandle hHal,
2673 eCsrBand eBand);
2674
2675
2676/*--------------------------------------------------------------------------
2677 \brief sme_getRoamScanChannelList() - get roam scan channel list
2678 This is a synchronuous call
2679 \param hHal - The handle returned by macOpen.
2680 \return eHAL_STATUS_SUCCESS - SME update config successful.
2681 Other status means SME is failed to update
2682 \sa
2683 --------------------------------------------------------------------------*/
2684eHalStatus sme_getRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList,
2685 tANI_U8 *pNumChannels);
2686
2687/*--------------------------------------------------------------------------
2688 \brief sme_GetCountryRevision() - get Country revision index
2689 This is a synchronuous call
2690 \param hHal - The handle returned by macOpen.
2691 \return eHAL_STATUS_SUCCESS - SME update config successful.
2692 Other status means SME is failed to update
2693 \sa
2694 --------------------------------------------------------------------------*/
2695eHalStatus sme_GetCountryRevision(tHalHandle hHal, tANI_U8 *pRevision);
2696
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002697/*--------------------------------------------------------------------------
2698 \brief sme_getIsCcxFeatureEnabled() - get CCX feature enabled or not
2699 This is a synchronuous call
2700 \param hHal - The handle returned by macOpen.
2701 \return TRUE (1) - if the CCX feature is enabled
2702 FALSE (0) - if feature is disabled (compile or runtime)
2703 \sa
2704 --------------------------------------------------------------------------*/
2705tANI_BOOLEAN sme_getIsCcxFeatureEnabled(tHalHandle hHal);
2706
2707/*--------------------------------------------------------------------------
Srinivas Girigowda100eb322013-03-15 16:48:20 -07002708 \brief sme_GetRoamScanControl() - get scan control
2709 This is a synchronous call
2710 \param hHal - The handle returned by macOpen.
2711 \return v_BOOL_t - Enabled(1)/Disabled(0)
2712 \sa
2713 --------------------------------------------------------------------------*/
2714v_BOOL_t sme_GetRoamScanControl(tHalHandle hHal);
2715
2716/* ---------------------------------------------------------------------------
2717 \fn sme_UpdateEmptyScanRefreshPeriod
2718 \brief Update nnEmptyScanRefreshPeriod
2719 This function is called through dynamic setConfig callback function
2720 to configure nnEmptyScanRefreshPeriod
2721 Usage: adb shell iwpriv wlan0 setConfig nEmptyScanRefreshPeriod=[0 .. 60]
2722 \param hHal - HAL handle for device
2723 \param nEmptyScanRefreshPeriod - scan period following empty scan results.
2724 \- return Success or failure
2725 -------------------------------------------------------------------------*/
2726
2727/*--------------------------------------------------------------------------
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07002728 \brief sme_getIsLfrFeatureEnabled() - get LFR feature enabled or not
2729 This is a synchronuous call
2730 \param hHal - The handle returned by macOpen.
2731 \return TRUE (1) - if the feature is enabled
2732 FALSE (0) - if feature is disabled (compile or runtime)
2733 \sa
2734 --------------------------------------------------------------------------*/
2735tANI_BOOLEAN sme_getIsLfrFeatureEnabled(tHalHandle hHal);
2736
2737/*--------------------------------------------------------------------------
2738 \brief sme_getIsFtFeatureEnabled() - get FT feature enabled or not
2739 This is a synchronuous call
2740 \param hHal - The handle returned by macOpen.
2741 \return TRUE (1) - if the feature is enabled
2742 FALSE (0) - if feature is disabled (compile or runtime)
2743 \sa
2744 --------------------------------------------------------------------------*/
2745tANI_BOOLEAN sme_getIsFtFeatureEnabled(tHalHandle hHal);
2746
Srinivas Girigowdade697412013-02-14 16:31:48 -08002747#endif
2748
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07002749#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
2750/*--------------------------------------------------------------------------
2751 \brief sme_UpdateRoamScanOffloadEnabled() - enable/disable roam scan offload feaure
2752 It is used at in the REG_DYNAMIC_VARIABLE macro definition of
2753 gRoamScanOffloadEnabled.
2754 This is a synchronous call
2755 \param hHal - The handle returned by macOpen.
2756 \return eHAL_STATUS_SUCCESS - SME update config successfully.
2757 Other status means SME is failed to update.
2758 \sa
2759 --------------------------------------------------------------------------*/
2760
2761eHalStatus sme_UpdateRoamScanOffloadEnabled(tHalHandle hHal, v_BOOL_t nRoamScanOffloadEnabled);
2762#endif
2763
2764
Srinivas Girigowdade697412013-02-14 16:31:48 -08002765/* ---------------------------------------------------------------------------
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002766 \fn sme_IsFeatureSupportedByFW
2767 \brief Check if an feature is enabled by FW
2768
2769 \param feattEnumValue - Enumeration value of the feature to be checked.
2770 A value from enum placeHolderInCapBitmap
2771
2772 \- return 1/0 (TRUE/FALSE)
2773 -------------------------------------------------------------------------*/
2774tANI_U8 sme_IsFeatureSupportedByFW(tANI_U8 featEnumValue);
2775#ifdef FEATURE_WLAN_TDLS
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05302776
2777/* ---------------------------------------------------------------------------
2778 \fn sme_SendTdlsLinkEstablishParams
2779 \brief API to send TDLS Link Establishment Parameters.
2780
2781 \param peerMac - peer's Mac Adress.
2782 \param tdlsLinkEstablishParams - TDLS Peer Link Establishment Parameters
2783 \- return VOS_STATUS_SUCCES
2784 -------------------------------------------------------------------------*/
2785
2786VOS_STATUS sme_SendTdlsLinkEstablishParams(tHalHandle hHal,
2787 tANI_U8 sessionId,
2788 tSirMacAddr peerMac,
2789 tCsrTdlsLinkEstablishParams *tdlsLinkEstablishParams);
2790
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002791/* ---------------------------------------------------------------------------
2792 \fn sme_SendTdlsMgmtFrame
2793 \brief API to send TDLS management frames.
2794
2795 \param peerMac - peer's Mac Adress.
2796 \param frame_type - Type of TDLS mgmt frame to be sent.
2797 \param dialog - dialog token used in the frame.
2798 \param status - status to be incuded in the frame.
2799 \param buf - additional IEs to be included
2800 \param len - lenght of additional Ies
Hoonki Leea34dd892013-02-05 22:56:02 -08002801 \param responder - Tdls request type
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002802 \- return VOS_STATUS_SUCCES
2803 -------------------------------------------------------------------------*/
2804VOS_STATUS sme_SendTdlsMgmtFrame(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac,
Hoonki Leea34dd892013-02-05 22:56:02 -08002805 tANI_U8 frame_type, tANI_U8 dialog, tANI_U16 status, tANI_U8 *buf, tANI_U8 len, tANI_U8 responder);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002806/* ---------------------------------------------------------------------------
Gopichand Nakkala681989c2013-03-06 22:27:48 -08002807 \fn sme_ChangeTdlsPeerSta
2808 \brief API to Update TDLS peer sta parameters.
2809
2810 \param peerMac - peer's Mac Adress.
2811 \param staParams - Peer Station Parameters.
2812 \- return VOS_STATUS_SUCCES
2813 -------------------------------------------------------------------------*/
2814VOS_STATUS sme_ChangeTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac,
2815 tCsrStaParams *pstaParams);
2816/* ---------------------------------------------------------------------------
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002817 \fn sme_AddTdlsPeerSta
2818 \brief API to Add TDLS peer sta entry.
2819
2820 \param peerMac - peer's Mac Adress.
2821 \- return VOS_STATUS_SUCCES
2822 -------------------------------------------------------------------------*/
2823VOS_STATUS sme_AddTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
2824/* ---------------------------------------------------------------------------
2825 \fn sme_DeleteTdlsPeerSta
2826 \brief API to Delete TDLS peer sta entry.
2827
2828 \param peerMac - peer's Mac Adress.
2829 \- return VOS_STATUS_SUCCES
2830 -------------------------------------------------------------------------*/
2831VOS_STATUS sme_DeleteTdlsPeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
Gopichand Nakkala75e7b282013-03-15 18:37:13 -07002832/* ---------------------------------------------------------------------------
Gopichand Nakkalaccd3a382013-03-19 13:56:10 -07002833 \fn sme_SetTdlsPowerSaveProhibited
2834 \API to set/reset the isTdlsPowerSaveProhibited.
2835
2836 \- return void
2837 -------------------------------------------------------------------------*/
2838void sme_SetTdlsPowerSaveProhibited(tHalHandle hHal, v_BOOL_t val);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002839#endif
Gopichand Nakkalafe7246d2013-06-10 17:43:37 +05302840/* ---------------------------------------------------------------------------
2841 \fn sme_IsPmcBmps
2842 \brief API to Check if PMC state is BMPS.
2843
2844 \- return v_BOOL_t
2845 -------------------------------------------------------------------------*/
2846v_BOOL_t sme_IsPmcBmps(tHalHandle hHal);
2847
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002848#ifdef FEATURE_WLAN_TDLS_INTERNAL
2849typedef struct smeTdlsDisResult
2850{
2851 tSirMacAddr tdlsPeerMac;
2852 v_S7_t tdlsPeerRssi;
2853} tSmeTdlsDisResult;
2854
2855VOS_STATUS sme_StartTdlsDiscoveryReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
2856v_U8_t sme_GetTdlsDiscoveryResult(tHalHandle hHal,
2857 tSmeTdlsDisResult *disResult, v_U8_t listType);
2858VOS_STATUS sme_StartTdlsLinkSetupReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
2859VOS_STATUS sme_StartTdlsLinkTeardownReq(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr peerMac);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002860#endif /* FEATURE_WLAN_TDLS */
Tushnim Bhattacharyya9cdf6082013-04-21 16:33:30 -07002861eHalStatus sme_UpdateDfsSetting(tHalHandle hHal, tANI_U8 fUpdateEnableDFSChnlScan);
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002862
Gopichand Nakkalae620d5a2013-04-26 05:45:57 -07002863/*
2864 * SME API to enable/disable WLAN driver initiated SSR
2865 */
2866void sme_UpdateEnableSSR(tHalHandle hHal, tANI_BOOLEAN enableSSR);
2867
Gopichand Nakkaladacbcb52013-04-18 16:41:54 +05302868/* ---------------------------------------------------------------------------
2869
2870 \fn sme_SetPhyMode
2871
2872 \brief Changes the PhyMode.
2873
2874 \param hHal - The handle returned by macOpen.
2875
2876 \param phyMode new phyMode which is to set
2877
2878 \return eHalStatus SUCCESS.
2879
2880 -------------------------------------------------------------------------------*/
2881eHalStatus sme_SetPhyMode(tHalHandle hHal, eCsrPhyMode phyMode);
2882
2883/* ---------------------------------------------------------------------------
2884
2885 \fn sme_GetPhyMode
2886
2887 \brief gets current PhyMode.
2888
2889 \param hHal - The handle returned by macOpen.
2890
2891 \return eHalStatus PhyMode
2892
2893 -------------------------------------------------------------------------------*/
2894eCsrPhyMode sme_GetPhyMode(tHalHandle hHal);
2895
Ravi Joshiaeb7d9e2013-05-02 12:28:14 -07002896/*
2897 * SME API to determine the channel bonding mode
2898 */
2899VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, tANI_U8 channel);
2900
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07002901#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
2902/*--------------------------------------------------------------------------
2903 \brief sme_HandoffRequest() - a wrapper function to Request a handoff
2904 from CSR.
2905 This is a synchronous call
2906 \param hHal - The handle returned by macOpen
2907 \param pHandoffInfo - info provided by HDD with the handoff request (namely:
2908 BSSID, channel etc.)
2909 \return eHAL_STATUS_SUCCESS - SME passed the request to CSR successfully.
2910 Other status means SME is failed to send the request.
2911 \sa
2912 --------------------------------------------------------------------------*/
2913
2914eHalStatus sme_HandoffRequest(tHalHandle hHal, tCsrHandoffRequest *pHandoffInfo);
2915#endif
Sudhir Sattayappa Kohallib1d8c3a2013-06-18 14:47:20 -07002916/*
2917 * sme API to find if any infra station or P2P-Client is connected
2918 * return status
2919*/
2920VOS_STATUS sme_isSta_p2p_clientConnected(tHalHandle hHal);
Leo Chang9056f462013-08-01 19:21:11 -07002921
2922#ifdef FEATURE_WLAN_LPHB
2923/* ---------------------------------------------------------------------------
2924 \fn sme_LPHBConfigReq
2925 \API to make configuration LPHB within FW.
2926 \param hHal - The handle returned by macOpen
2927 \param lphdReq - LPHB request argument by client
2928 \param pCallbackfn - LPHB timeout notification callback function pointer
2929 \- return Configuration message posting status, SUCCESS or Fail
2930 -------------------------------------------------------------------------*/
2931eHalStatus sme_LPHBConfigReq(
2932 tHalHandle hHal,
2933 tSirLPHBReq *lphdReq,
2934 void (*pCallbackfn)(void *pAdapter, void *indParam));
2935#endif /* FEATURE_WLAN_LPHB */
Yue Mab9c86f42013-08-14 15:59:08 -07002936
2937/* ---------------------------------------------------------------------------
2938 \fn sme_AddPeriodicTxPtrn
2939 \brief API to Periodic TX Pattern Offload feature
2940 \param hHal - The handle returned by macOpen
2941 \param addPeriodicTxPtrnParams - Pointer to the add pattern structure
2942 \return eHalStatus
2943 ---------------------------------------------------------------------------*/
2944eHalStatus sme_AddPeriodicTxPtrn(tHalHandle hHal, tSirAddPeriodicTxPtrn
2945 *addPeriodicTxPtrnParams);
2946
2947/* ---------------------------------------------------------------------------
2948 \fn sme_DelPeriodicTxPtrn
2949 \brief API to Periodic TX Pattern Offload feature
2950 \param hHal - The handle returned by macOpen
2951 \param delPeriodicTxPtrnParams - Pointer to the deleting pattern structure
2952 \return eHalStatus
2953 ---------------------------------------------------------------------------*/
2954eHalStatus sme_DelPeriodicTxPtrn(tHalHandle hHal, tSirDelPeriodicTxPtrn
2955 *delPeriodicTxPtrnParams);
Jeff Johnson295189b2012-06-20 16:38:30 -07002956#endif //#if !defined( __SME_API_H )