prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/CORE/MAC/src/pe/include/rrmGlobal.h b/CORE/MAC/src/pe/include/rrmGlobal.h
new file mode 100644
index 0000000..5e240b2
--- /dev/null
+++ b/CORE/MAC/src/pe/include/rrmGlobal.h
@@ -0,0 +1,222 @@
+/*
+ * 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( __RRMGLOBAL_H )
+#define __RRMGLOBAL_H
+
+/**=========================================================================
+
+  \file  rrmGlobal.h
+
+  \brief Definitions for SME APIs
+
+   Copyright 2008 (c) Qualcomm, Incorporated.  All Rights Reserved.
+
+   Qualcomm Confidential and Proprietary.
+
+  ========================================================================*/
+
+#define SIR_BCN_REPORT_MAX_BSS_DESC                4
+
+typedef enum eRrmRetStatus
+{
+    eRRM_SUCCESS,
+    eRRM_INCAPABLE,
+    eRRM_REFUSED,
+    eRRM_FAILURE
+} tRrmRetStatus;
+
+typedef struct sSirChannelInfo
+{
+   tANI_U8 regulatoryClass;
+   tANI_U8 channelNum;
+} tSirChannelInfo, * tpSirChannelInfo;
+
+typedef struct sSirBeaconReportReqInd
+{
+   tANI_U16     messageType; // eWNI_SME_BEACON_REPORT_REQ_IND
+   tANI_U16     length;
+   tSirMacAddr  bssId;
+   tANI_U16     measurementDuration;   //ms
+   tANI_U16     randomizationInterval; //ms
+   tSirChannelInfo channelInfo;
+   tSirMacAddr      macaddrBssid;   //0: wildcard
+   tANI_U8      fMeasurementtype;  //0:Passive, 1: Active, 2: table mode
+   tAniSSID     ssId;              //May be wilcard.
+   tANI_U16      uDialogToken;
+   tSirChannelList channelList; //From AP channel report.
+} tSirBeaconReportReqInd, * tpSirBeaconReportReqInd;
+
+
+typedef struct sSirBeaconReportXmitInd
+{
+   tANI_U16    messageType; // eWNI_SME_BEACON_REPORT_RESP_XMIT_IND
+   tANI_U16    length;
+   tSirMacAddr bssId;
+   tANI_U16     uDialogToken;
+   tANI_U8     fMeasureDone;
+   tANI_U16    duration;
+   tANI_U8     regClass;
+   tANI_U8     numBssDesc;
+   tpSirBssDescription pBssDescription[SIR_BCN_REPORT_MAX_BSS_DESC];
+} tSirBeaconReportXmitInd, * tpSirBeaconReportXmitInd;
+
+typedef struct sSirNeighborReportReqInd
+{
+   tANI_U16     messageType; // eWNI_SME_NEIGHBOR_REPORT_REQ_IND
+   tANI_U16     length;
+   tSirMacAddr  bssId;  //For the session.
+   tANI_U16     noSSID; //TRUE - dont include SSID in the request.
+                        //FALSE  include the SSID. It may be null (wildcard)
+   tSirMacSSid  ucSSID;  
+} tSirNeighborReportReqInd, * tpSirNeighborReportReqInd;
+                                   
+
+typedef struct sSirNeighborBssDescription
+{
+   tANI_U16        length;
+   tSirMacAddr     bssId;
+   tANI_U8         regClass;
+   tANI_U8         channel;
+   tANI_U8         phyType;
+   union sSirNeighborBssidInfo {
+         struct _rrmInfo {
+                tANI_U32      fApPreauthReachable:2;  //see IEEE 802.11k Table 7-43a
+                tANI_U32      fSameSecurityMode:1;
+                tANI_U32      fSameAuthenticator:1;
+                tANI_U32      fCapSpectrumMeasurement:1; //see IEEE 802.11k Table 7-95d
+                tANI_U32      fCapQos:1; 
+                tANI_U32      fCapApsd:1; 
+                tANI_U32      fCapRadioMeasurement:1; 
+                tANI_U32      fCapDelayedBlockAck:1; 
+                tANI_U32      fCapImmediateBlockAck:1;
+                tANI_U32      fMobilityDomain:1;
+                tANI_U32      reserved:21; 
+         } rrmInfo;
+         struct _ccxInfo {
+                tANI_U32      channelBand:8;
+                tANI_U32      minRecvSigPower:8;
+                tANI_U32      apTxPower:8;
+                tANI_U32      roamHysteresis:8;
+                tANI_U32      adaptScanThres:8;
+
+                tANI_U32      transitionTime:8;
+                tANI_U32      tsfOffset:16;
+
+                tANI_U32      beaconInterval:16;
+                tANI_U32      reserved: 16;
+         } ccxInfo;
+   } bssidInfo;
+ 
+   //Optional sub IEs....ignoring for now.
+}tSirNeighborBssDescription, *tpSirNeighborBssDescripton;
+
+typedef struct sSirNeighborReportInd
+{
+   tANI_U16     messageType; // eWNI_SME_NEIGHBOR_REPORT_IND
+   tANI_U16     length;
+   tANI_U16     numNeighborReports;
+   tSirMacAddr  bssId;  //For the session.
+   //tSirResultCodes    statusCode;
+   tSirNeighborBssDescription sNeighborBssDescription[1];
+} tSirNeighborReportInd, * tpSirNeighborReportInd;
+
+typedef struct sRRMBeaconReportRequestedIes
+{
+   tANI_U8 num;
+   tANI_U8 *pElementIds;
+}tRRMBeaconReportRequestedIes, *tpRRMBeaconReportRequestedIes;
+
+//Reporting detail defines.
+//Reference - IEEE Std 802.11k-2008 section 7.3.2.21.6 Table 7-29h
+#define BEACON_REPORTING_DETAIL_NO_FF_IE 0
+#define BEACON_REPORTING_DETAIL_ALL_FF_REQ_IE 1
+#define BEACON_REPORTING_DETAIL_ALL_FF_IE 2
+
+
+typedef struct sRRMReq
+{
+   tANI_U8 dialog_token; //In action frame;
+   tANI_U8 token; //Within individual request;
+   tANI_U8 type;
+   union {
+      struct {
+         tANI_U8 reportingDetail;
+         tRRMBeaconReportRequestedIes reqIes;
+      }Beacon;
+   }request;
+}tRRMReq, *tpRRMReq;
+
+typedef struct sRRMCaps
+{
+    tANI_U8  LinkMeasurement: 1;
+    tANI_U8      NeighborRpt: 1;
+    tANI_U8         parallel: 1;
+    tANI_U8         repeated: 1;
+    tANI_U8    BeaconPassive: 1;
+    tANI_U8     BeaconActive: 1;
+    tANI_U8      BeaconTable: 1;
+    tANI_U8    BeaconRepCond: 1;
+    tANI_U8 FrameMeasurement: 1;
+    tANI_U8      ChannelLoad: 1;
+    tANI_U8   NoiseHistogram: 1;
+    tANI_U8       statistics: 1;
+    tANI_U8   LCIMeasurement: 1;
+    tANI_U8       LCIAzimuth: 1;
+    tANI_U8    TCMCapability: 1;
+    tANI_U8     triggeredTCM: 1;
+    tANI_U8     APChanReport: 1;
+    tANI_U8    RRMMIBEnabled: 1;
+    tANI_U8 MeasurementPilotEnabled: 1;
+    tANI_U8 NeighborTSFOffset: 1;
+    tANI_U8  RCPIMeasurement: 1;
+    tANI_U8  RSNIMeasurement: 1;
+    tANI_U8 BssAvgAccessDelay: 1;
+    tANI_U8 BSSAvailAdmission: 1;
+    tANI_U8 AntennaInformation: 1;
+
+    tANI_U8 operatingChanMax;
+    tANI_U8 nonOperatingChanMax;
+    tANI_U8 MeasurementPilot;
+}tRRMCaps, *tpRRMCaps;
+
+typedef struct sRrmPEContext
+{
+   tANI_U8  rrmEnable;
+   //tChannelList APchannelReport;
+   tANI_U32   startTSF[2]; //Used during scan/measurement to store the start TSF. this is not used directly in beacon reports.
+                           //This value is stored into bssdescription and beacon report gets it from bss decsription.
+   tRRMCaps   rrmEnabledCaps;
+   tPowerdBm  txMgmtPower;
+   tANI_U8  DialogToken; //Dialog token for the request initiated from station.
+   tpRRMReq pCurrentReq;
+}tRrmPEContext, *tpRrmPEContext;
+
+// 2008 11k spec reference: 18.4.8.5 RCPI Measurement
+#define RCPI_LOW_RSSI_VALUE   (-110)
+#define RCPI_MAX_VALUE        (220)
+#define CALCULATE_RCPI(rssi)  (((rssi) + 110) * 2)
+
+
+#endif //#if defined __RRMGLOBAL_H