prima: WLAN Driver Release 3.1.7.9
This is the initial release of the Prima WLAN Driver
diff --git a/CORE/SME/inc/smeInside.h b/CORE/SME/inc/smeInside.h
new file mode 100644
index 0000000..742ac7d
--- /dev/null
+++ b/CORE/SME/inc/smeInside.h
@@ -0,0 +1,195 @@
+/*
+ * Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#if !defined( __SMEINSIDE_H )
+#define __SMEINSIDE_H
+
+
+/**=========================================================================
+
+ \file smeInside.h
+
+ \brief prototype for SME structures and APIs used insside SME
+
+ Copyright 2008 (c) Qualcomm, Incorporated. All Rights Reserved.
+
+ Qualcomm Confidential and Proprietary.
+
+ ========================================================================*/
+
+/* $Header$ */
+
+/*--------------------------------------------------------------------------
+ Include Files
+ ------------------------------------------------------------------------*/
+#include "vos_status.h"
+#include "vos_lock.h"
+#include "vos_trace.h"
+#include "vos_memory.h"
+#include "vos_types.h"
+#include "sirApi.h"
+#include "csrInternal.h"
+#include "sme_QosApi.h"
+#include "smeQosInternal.h"
+
+
+
+#if defined WLAN_FEATURE_VOWIFI
+#include "sme_RrmApi.h"
+#endif
+
+
+/*--------------------------------------------------------------------------
+ Type declarations
+ ------------------------------------------------------------------------*/
+
+#define SME_TOTAL_COMMAND 20
+
+
+typedef struct sGenericPmcCmd
+{
+ tANI_U32 size; //sizeof the data in the union, if any
+ tRequestFullPowerReason fullPowerReason;
+ tANI_BOOLEAN fReleaseWhenDone; //if TRUE, the command shall not put back to the queue, free te memory instead.
+ union
+ {
+ tExitBmpsInfo exitBmpsInfo;
+ tSirSmeWowlEnterParams enterWowlInfo;
+ }u;
+} tGenericPmcCmd;
+
+
+typedef struct sGenericQosCmd
+{
+ sme_QosWmmTspecInfo tspecInfo;
+ sme_QosEdcaAcType ac;
+ v_U8_t tspec_mask;
+} tGenericQosCmd;
+
+#ifdef WLAN_FEATURE_P2P
+typedef struct sRemainChlCmd
+{
+ tANI_U8 chn;
+ tANI_U8 phyMode;
+ tANI_U32 duration;
+ void* callback;
+ void* callbackCtx;
+}tRemainChlCmd;
+
+typedef struct sNoACmd
+{
+ tP2pPsConfig NoA;
+} tNoACmd;
+#endif
+
+typedef struct tagSmeCmd
+{
+ tListElem Link;
+ eSmeCommandType command;
+ tANI_U32 sessionId;
+ union
+ {
+ tScanCmd scanCmd;
+ tRoamCmd roamCmd;
+ tWmStatusChangeCmd wmStatusChangeCmd;
+ tSetKeyCmd setKeyCmd;
+ tRemoveKeyCmd removeKeyCmd;
+ tGenericPmcCmd pmcCmd;
+ tGenericQosCmd qosCmd;
+#ifdef WLAN_FEATURE_P2P
+ tRemainChlCmd remainChlCmd;
+ tNoACmd NoACmd;
+#endif
+ tAddStaForSessionCmd addStaSessionCmd;
+ tDelStaForSessionCmd delStaSessionCmd;
+ }u;
+}tSmeCmd;
+
+
+
+/*--------------------------------------------------------------------------
+ Internal to SME
+ ------------------------------------------------------------------------*/
+
+//To get a command buffer
+//Return: NULL if there no more command buffer left
+tSmeCmd *smeGetCommandBuffer( tpAniSirGlobal pMac );
+void smePushCommand( tpAniSirGlobal pMac, tSmeCmd *pCmd, tANI_BOOLEAN fHighPriority );
+void smeProcessPendingQueue( tpAniSirGlobal pMac );
+void smeReleaseCommand(tpAniSirGlobal pMac, tSmeCmd *pCmd);
+void purgeSmeSessionCmdList(tpAniSirGlobal pMac, tANI_U32 sessionId);
+tANI_BOOLEAN smeCommandPending(tpAniSirGlobal pMac);
+tANI_BOOLEAN pmcProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+//this function is used to abort a command where the normal processing of the command
+//is terminated without going through the normal path. it is here to take care of callbacks for
+//the command, if applicable.
+void pmcAbortCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand, tANI_BOOLEAN fStopping );
+tANI_BOOLEAN qosProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+
+eHalStatus csrProcessScanCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+eHalStatus csrRoamProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+void csrRoamProcessWmStatusChangeCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+void csrReinitRoamCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
+void csrReinitWmStatusChangeCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
+void csrReinitSetKeyCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
+void csrReinitRemoveKeyCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
+eHalStatus csrRoamProcessSetKeyCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+eHalStatus csrRoamProcessRemoveKeyCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+void csrReleaseCommandSetKey(tpAniSirGlobal pMac, tSmeCmd *pCommand);
+void csrReleaseCommandRemoveKey(tpAniSirGlobal pMac, tSmeCmd *pCommand);
+//eHalStatus csrRoamIssueSetKeyCommand( tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamSetKey *pSetKey, tANI_U32 roamId );
+eHalStatus csrRoamIssueRemoveKeyCommand( tpAniSirGlobal pMac, tANI_U32 sessionId,
+ tCsrRoamRemoveKey *pRemoveKey, tANI_U32 roamId );
+eHalStatus csrIsFullPowerNeeded( tpAniSirGlobal pMac, tSmeCmd *pCommand, tRequestFullPowerReason *pReason,
+ tANI_BOOLEAN *pfNeedPower);
+void csrAbortCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand, tANI_BOOLEAN fStopping );
+
+eHalStatus sme_AcquireGlobalLock( tSmeStruct *psSme);
+eHalStatus sme_ReleaseGlobalLock( tSmeStruct *psSme);
+
+
+eHalStatus csrProcessAddStaSessionCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+eHalStatus csrProcessAddStaSessionRsp( tpAniSirGlobal pMac, tANI_U8 *pMsg);
+eHalStatus csrProcessDelStaSessionCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand );
+eHalStatus csrProcessDelStaSessionRsp( tpAniSirGlobal pMac, tANI_U8 *pMsg);
+
+#ifdef WLAN_NS_OFFLOAD
+/* ---------------------------------------------------------------------------
+ \fn pmcSetNSOffload
+ \brief Set the host offload feature.
+ \param hHal - The handle returned by macOpen.
+ \param pRequest - Pointer to the offload request.
+ \return eHalStatus
+ eHAL_STATUS_FAILURE Cannot set the offload.
+ eHAL_STATUS_SUCCESS Request accepted.
+ ---------------------------------------------------------------------------*/
+eHalStatus pmcSetNSOffload (tHalHandle hHal, tpSirHostOffloadReq pRequest);
+#endif //WLAN_NS_OFFLOAD
+
+#ifdef FEATURE_WLAN_SCAN_PNO
+eHalStatus pmcSetPreferredNetworkList(tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext);
+eHalStatus pmcUpdateScanParams(tHalHandle hHal, tCsrConfig *pRequest, tCsrChannel *pChannelList, tANI_U8 b11dResolved);
+eHalStatus pmcSetRssiFilter(tHalHandle hHal, v_U8_t rssiThreshold);
+#endif // FEATURE_WLAN_SCAN_PNO
+eHalStatus pmcSetPowerParams(tHalHandle hHal, tSirSetPowerParamsReq* pwParams);
+
+tANI_BOOLEAN csrRoamGetConcurrencyConnectStatusForBmps(tpAniSirGlobal pMac);
+#endif //#if !defined( __SMEINSIDE_H )