prima: WLAN Driver Release 3.1.7.9
This is the initial release of the Prima WLAN Driver
diff --git a/CORE/SME/inc/smeInternal.h b/CORE/SME/inc/smeInternal.h
new file mode 100644
index 0000000..3d27d9b
--- /dev/null
+++ b/CORE/SME/inc/smeInternal.h
@@ -0,0 +1,116 @@
+/*
+ * 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( __SMEINTERNAL_H )
+#define __SMEINTERNAL_H
+
+
+/**=========================================================================
+
+ \file smeInternal.h
+
+ \brief prototype for SME internal structures and APIs used for SME and MAC
+
+ 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 "csrLinkList.h"
+
+/*--------------------------------------------------------------------------
+ Type declarations
+ ------------------------------------------------------------------------*/
+
+// Mask can be only have one bit set
+typedef enum eSmeCommandType
+{
+ eSmeNoCommand = 0,
+ eSmeDropCommand,
+ //CSR
+ eSmeCsrCommandMask = 0x10000, //this is not a command, it is to identify this is a CSR command
+ eSmeCommandScan,
+ eSmeCommandRoam,
+ eSmeCommandWmStatusChange,
+ eSmeCommandSetKey,
+ eSmeCommandRemoveKey,
+ eSmeCommandAddStaSession,
+ eSmeCommandDelStaSession,
+ //PMC
+ eSmePmcCommandMask = 0x20000, //To identify PMC commands
+ eSmeCommandEnterImps,
+ eSmeCommandExitImps,
+ eSmeCommandEnterBmps,
+ eSmeCommandExitBmps,
+ eSmeCommandEnterUapsd,
+ eSmeCommandExitUapsd,
+ eSmeCommandEnterWowl,
+ eSmeCommandExitWowl,
+ eSmeCommandEnterStandby,
+ //QOS
+ eSmeQosCommandMask = 0x40000, //To identify Qos commands
+ eSmeCommandAddTs,
+ eSmeCommandDelTs,
+#ifdef WLAN_FEATURE_P2P
+ eSmeCommandRemainOnChannel,
+ eSmeCommandNoAUpdate,
+#endif
+} eSmeCommandType;
+
+
+typedef enum eSmeState
+{
+ SME_STATE_STOP,
+ SME_STATE_START,
+ SME_STATE_READY,
+} eSmeState;
+
+
+#define SME_IS_START(pMac) (SME_STATE_STOP != (pMac)->sme.state)
+#define SME_IS_READY(pMac) (SME_STATE_READY == (pMac)->sme.state)
+
+
+typedef struct tagSmeStruct
+{
+ eSmeState state;
+ vos_lock_t lkSmeGlobalLock;
+ tANI_U32 totalSmeCmd;
+ void *pSmeCmdBufAddr;
+ tDblLinkList smeCmdActiveList;
+ tDblLinkList smeCmdPendingList;
+ tDblLinkList smeCmdFreeList; //preallocated roam cmd list
+ void (*pTxPerHitCallback) (void *pCallbackContext); /* callback for Tx PER hit to HDD */
+ void *pTxPerHitCbContext;
+} tSmeStruct, *tpSmeStruct;
+
+
+#endif //#if !defined( __SMEINTERNAL_H )