prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/CORE/WDI/CP/inc/wlan_qct_wdi.h b/CORE/WDI/CP/inc/wlan_qct_wdi.h
new file mode 100644
index 0000000..9da9d88
--- /dev/null
+++ b/CORE/WDI/CP/inc/wlan_qct_wdi.h
@@ -0,0 +1,8667 @@
+/*
+ * 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.
+ */
+
+#ifndef WLAN_QCT_WDI_H
+#define WLAN_QCT_WDI_H
+
+/*===========================================================================
+
+         W L A N   D E V I C E   A B S T R A C T I O N   L A Y E R 
+                       E X T E R N A L  A P I
+                
+                   
+DESCRIPTION
+  This file contains the external API exposed by the wlan transport layer 
+  module.
+  
+      
+  Copyright (c) 2010-2011 QUALCOMM Incorporated.
+  All Rights Reserved.
+  Qualcomm Confidential and Proprietary
+===========================================================================*/
+
+
+/*===========================================================================
+
+                      EDIT HISTORY FOR FILE
+
+
+  This section contains comments describing changes made to the module.
+  Notice that changes are listed in reverse chronological order.
+
+
+  $Header:$ $DateTime: $ $Author: $
+
+
+when        who    what, where, why
+--------    ---    ----------------------------------------------------------
+10/05/11    hap     Adding support for Keep Alive
+08/04/10    lti     Created module.
+
+===========================================================================*/
+
+
+
+/*===========================================================================
+
+                          INCLUDE FILES FOR MODULE
+
+===========================================================================*/
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+#include "wlan_qct_pal_api.h" 
+#include "wlan_qct_pal_type.h" 
+#include "wlan_qct_pack_align.h" 
+#include "wlan_qct_wdi_cfg.h" 
+
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+#ifdef __cplusplus
+ extern "C" {
+#endif 
+ 
+/* MAC ADDRESS LENGTH - per spec*/
+#define WDI_MAC_ADDR_LEN 6
+
+/* Max number of 11b rates -> 1,2,5.5,11 */
+#define WDI_NUM_11B_RATES                 4  
+
+/* Max number of 11g rates -> 6,9,12,18,24,36,48,54*/
+#define WDI_NUM_11A_RATES                 8  
+
+/* Max number of legacy rates -> 72, 96, 108*/
+#define WDI_NUM_POLARIS_RATES             3  
+
+/* Max supported MCS set*/
+#define WDI_MAC_MAX_SUPPORTED_MCS_SET    16
+
+/*Max number of Access Categories for QoS - per spec */
+#define WDI_MAX_NO_AC                     4
+
+/*Max. size for reserving the Beacon Template */
+#define WDI_BEACON_TEMPLATE_SIZE  0x180
+
+#define WDI_WOWL_BCAST_PATTERN_MAX_SIZE 128
+
+#define WDI_WOWL_BCAST_MAX_NUM_PATTERNS 16
+
+#define WDI_MAX_SSID_SIZE  32
+
+/* The shared memory between WDI and HAL is 4K so maximum data can be transferred
+from WDI to HAL is 4K.This 4K should also include the Message header so sending 4K
+of NV fragment is nt possbile.The next multiple of 1Kb is 3K */
+
+#define FRAGMENT_SIZE 3072
+
+/* Macro to find the total number fragments of the NV Image*/
+#define TOTALFRAGMENTS(x) ((x%FRAGMENT_SIZE)== 0) ? (x/FRAGMENT_SIZE):((x/FRAGMENT_SIZE)+1)
+
+/* Beacon Filter Length*/
+#define WDI_BEACON_FILTER_LEN 70
+
+/* Coex Indication data size - should match WLAN_COEX_IND_DATA_SIZE */
+#define WDI_COEX_IND_DATA_SIZE (4)
+
+#define WDI_CIPHER_SEQ_CTR_SIZE 6
+
+#define WDI_NUM_BSSID   2
+
+/*Version string max length (including NUL) */
+#define WDI_VERSION_LENGTH  64
+
+
+/*WDI Response timeout - how long will WDI wait for a response from the device
+    - it should be large enough to allow any other failure mechanism to kick
+      in before we get to a timeout (ms units)*/
+#define WDI_RESPONSE_TIMEOUT   10000
+
+#define WDI_SET_POWER_STATE_TIMEOUT  10000 /* in msec a very high upper limit */
+
+/*============================================================================
+ *     GENERIC STRUCTURES 
+  
+============================================================================*/
+
+/*---------------------------------------------------------------------------
+ WDI Version Information
+---------------------------------------------------------------------------*/
+typedef struct
+{
+    wpt_uint8                  revision;
+    wpt_uint8                  version;
+    wpt_uint8                  minor;
+    wpt_uint8                  major;
+} WDI_WlanVersionType;
+
+/*---------------------------------------------------------------------------
+ WDI Device Capability
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  /*If this flag is true it means that the device can support 802.3/ETH2 to
+    802.11 translation*/
+  wpt_boolean   bFrameXtlSupported; 
+
+  /*Maximum number of BSSes supported by the Device */
+  wpt_uint8     ucMaxBSSSupported;
+
+  /*Maximum number of stations supported by the Device */
+  wpt_uint8     ucMaxSTASupported;
+}WDI_DeviceCapabilityType; 
+
+/*---------------------------------------------------------------------------
+ WDI Channel Offset
+---------------------------------------------------------------------------*/
+typedef enum
+{
+  WDI_SECONDARY_CHANNEL_OFFSET_NONE   = 0,
+  WDI_SECONDARY_CHANNEL_OFFSET_UP     = 1,
+  WDI_SECONDARY_CHANNEL_OFFSET_DOWN   = 3
+}WDI_HTSecondaryChannelOffset;
+
+/*---------------------------------------------------------------------------
+  WDI_MacFrameCtl
+   Frame control field format (2 bytes)
+---------------------------------------------------------------------------*/
+typedef  struct 
+{
+    wpt_uint8 protVer :2;
+    wpt_uint8 type :2;
+    wpt_uint8 subType :4;
+
+    wpt_uint8 toDS :1;
+    wpt_uint8 fromDS :1;
+    wpt_uint8 moreFrag :1;
+    wpt_uint8 retry :1;
+    wpt_uint8 powerMgmt :1;
+    wpt_uint8 moreData :1;
+    wpt_uint8 wep :1;
+    wpt_uint8 order :1;
+
+} WDI_MacFrameCtl;
+
+/*---------------------------------------------------------------------------
+  WDI Sequence control field
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  wpt_uint8 fragNum  : 4;
+  wpt_uint8 seqNumLo : 4;
+  wpt_uint8 seqNumHi : 8;
+} WDI_MacSeqCtl;
+
+/*---------------------------------------------------------------------------
+  Management header format
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    WDI_MacFrameCtl     fc;
+    wpt_uint8           durationLo;
+    wpt_uint8           durationHi;
+    wpt_uint8           da[WDI_MAC_ADDR_LEN];
+    wpt_uint8           sa[WDI_MAC_ADDR_LEN];
+    wpt_macAddr         bssId;
+    WDI_MacSeqCtl       seqControl;
+} WDI_MacMgmtHdr;
+
+/*---------------------------------------------------------------------------
+  NV Blob management sturcture
+  ---------------------------------------------------------------------------*/
+
+typedef struct
+{
+  /* NV image  fragments count */
+  wpt_uint16 usTotalFragment;
+
+  /* NV fragment size */
+  wpt_uint16 usFragmentSize;
+
+  /* current fragment to be sent */
+  wpt_uint16 usCurrentFragment;
+
+} WDI_NvBlobInfoParams;
+
+
+/*---------------------------------------------------------------------------
+  Data path enums memory pool resource
+  ---------------------------------------------------------------------------*/
+
+typedef enum
+{
+  /* managment resource pool ID */
+  WDI_MGMT_POOL_ID = 0,
+  /* Data resource pool ID */
+  WDI_DATA_POOL_ID = 1
+}WDI_ResPoolType;
+
+/*============================================================================
+ *     GENERIC STRUCTURES - END
+ ============================================================================*/
+
+/*----------------------------------------------------------------------------
+ *  Type Declarations
+ * -------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------
+  WDI Status 
+---------------------------------------------------------------------------*/
+typedef enum
+{
+   WDI_STATUS_SUCCESS,       /* Operation has completed successfully*/
+   WDI_STATUS_SUCCESS_SYNC,  /* Operation has completed successfully in a
+                                synchronous way - no rsp will be generated*/
+   WDI_STATUS_PENDING,       /* Operation result is pending and will be
+                                provided asynchronously through the Req Status
+                                Callback */
+   WDI_STATUS_E_FAILURE,     /* Operation has ended in a generic failure*/
+   WDI_STATUS_RES_FAILURE,   /* Operation has ended in a resource failure*/
+   WDI_STATUS_MEM_FAILURE,   /* Operation has ended in a memory allocation
+                               failure*/
+   WDI_STATUS_E_NOT_ALLOWED, /* Operation is not allowed in the current state
+                               of the driver*/
+   WDI_STATUS_E_NOT_IMPLEMENT, /* Operation is not yet implemented*/
+
+   WDI_STATUS_DEV_INTERNAL_FAILURE, /*An internal error has occurred in the device*/
+   WDI_STATUS_MAX
+
+}WDI_Status;
+
+
+/*---------------------------------------------------------------------------
+   WDI_ReqStatusCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL to deliver to UMAC the result of posting
+   a previous request for which the return status was PENDING.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from the Control Transport
+    pUserData:  user data  
+ 
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void (*WDI_ReqStatusCb)(WDI_Status   wdiStatus,
+                                void*        pUserData);
+
+/*---------------------------------------------------------------------------
+  WDI_LowLevelIndEnumType
+    Types of indication that can be posted to UMAC by DAL
+---------------------------------------------------------------------------*/
+typedef enum
+{
+  /*When RSSI monitoring is enabled of the Lower MAC and a threshold has been
+    passed. */
+  WDI_RSSI_NOTIFICATION_IND,
+
+  /*Link loss in the low MAC */
+  WDI_MISSED_BEACON_IND,
+
+  /*when hardware has signaled an unknown addr2 frames. The indication will
+  contain info from frames to be passed to the UMAC, this may use this info to
+  deauth the STA*/
+  WDI_UNKNOWN_ADDR2_FRAME_RX_IND,
+
+  /*MIC Failure detected by HW*/
+  WDI_MIC_FAILURE_IND,
+
+  /*Fatal Error Ind*/
+  WDI_FATAL_ERROR_IND, 
+
+  /*Delete Station Ind*/
+  WDI_DEL_STA_IND, 
+
+  /*Indication from Coex*/
+  WDI_COEX_IND,
+
+  /* Indication for Tx Complete */
+  WDI_TX_COMPLETE_IND,
+
+  /*.P2P_NOA_Attr_Indication */
+  WDI_P2P_NOA_ATTR_IND,
+
+  /* Preferred Network Found Indication */
+  WDI_PREF_NETWORK_FOUND_IND,
+
+  WDI_WAKE_REASON_IND,
+
+  /* Tx PER Tracking Indication */
+  WDI_TX_PER_HIT_IND,
+  
+  WDI_MAX_IND
+}WDI_LowLevelIndEnumType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_LowRSSIThIndType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Positive crossing of Rssi Thresh1*/
+   wpt_uint32             bRssiThres1PosCross : 1;
+  /*Negative crossing of Rssi Thresh1*/
+   wpt_uint32             bRssiThres1NegCross : 1;
+  /*Positive crossing of Rssi Thresh2*/
+   wpt_uint32             bRssiThres2PosCross : 1;
+  /*Negative crossing of Rssi Thresh2*/
+   wpt_uint32             bRssiThres2NegCross : 1;
+  /*Positive crossing of Rssi Thresh3*/
+   wpt_uint32             bRssiThres3PosCross : 1;
+  /*Negative crossing of Rssi Thresh3*/
+   wpt_uint32             bRssiThres3NegCross : 1;
+
+   wpt_uint32             bReserved           : 26;
+
+}WDI_LowRSSIThIndType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_UnkAddr2FrmRxIndType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Rx Bd data of the unknown received addr2 frame.*/
+  void*  bufRxBd;
+
+  /*Buffer Length*/
+  wpt_uint16  usBufLen; 
+}WDI_UnkAddr2FrmRxIndType;
+
+/*---------------------------------------------------------------------------
+  WDI_DeleteSTAIndType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*ASSOC ID, as assigned by UMAC*/
+   wpt_uint16    usAssocId;
+
+   /*STA Index returned during DAL_PostAssocReq or DAL_ConfigStaReq*/
+   wpt_uint8     ucSTAIdx;
+
+   /*BSSID of STA*/
+   wpt_macAddr   macBSSID; 
+
+    /*MAC ADDR of STA*/
+    wpt_macAddr  macADDR2;          
+                                
+    /* To unify the keepalive / unknown A2 / tim-based disa*/
+    wpt_uint16   wptReasonCode;   
+
+}WDI_DeleteSTAIndType;
+
+/*---------------------------------------------------------------------------
+  WDI_MicFailureIndType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /*current BSSID*/
+ wpt_macAddr bssId;
+  
+  /*Source mac address*/
+ wpt_macAddr macSrcAddr;
+
+ /*Transmitter mac address*/
+ wpt_macAddr macTaAddr;
+
+ /*Destination mac address*/
+ wpt_macAddr macDstAddr;
+
+ /*Multicast flag*/
+ wpt_uint8   ucMulticast;
+
+ /*First byte of IV*/
+ wpt_uint8   ucIV1;
+
+ /*Key Id*/
+ wpt_uint8   keyId;
+
+ /*Sequence Number*/
+ wpt_uint8   TSC[WDI_CIPHER_SEQ_CTR_SIZE];
+
+ /*receive address */
+ wpt_macAddr   macRxAddr;
+}WDI_MicFailureIndType;
+
+/*---------------------------------------------------------------------------
+  WDI_CoexIndType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  wpt_uint32  coexIndType;
+  wpt_uint32  coexIndData[WDI_COEX_IND_DATA_SIZE];
+} WDI_CoexIndType;
+
+/*---------------------------------------------------------------------------
+  WDI_MacSSid
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    wpt_uint8        ucLength;
+    wpt_uint8        sSSID[WDI_MAX_SSID_SIZE];
+} WDI_MacSSid;
+
+#ifdef FEATURE_WLAN_SCAN_PNO
+/*---------------------------------------------------------------------------
+  WDI_PrefNetworkFoundInd    
+---------------------------------------------------------------------------*/
+typedef struct
+{  
+  /* Network that was found with the highest RSSI*/
+  WDI_MacSSid ssId;
+  /* Indicates the RSSI */
+  wpt_uint8  rssi;
+} WDI_PrefNetworkFoundInd;
+#endif // FEATURE_WLAN_SCAN_PNO
+
+#ifdef WLAN_FEATURE_P2P
+/*---------------------------------------------------------------------------
+ *WDI_P2pNoaAttrIndType
+ *-------------------------------------------------------------------------*/
+
+typedef struct
+{
+  wpt_uint8       ucIndex ;
+  wpt_uint8       ucOppPsFlag ;
+  wpt_uint16      usCtWin  ;
+
+  wpt_uint16      usNoa1IntervalCnt;
+  wpt_uint16      usRsvd1 ;
+  wpt_uint32      uslNoa1Duration;
+  wpt_uint32      uslNoa1Interval;
+  wpt_uint32      uslNoa1StartTime;
+
+  wpt_uint16      usNoa2IntervalCnt;
+  wpt_uint16      usRsvd2;
+  wpt_uint32      uslNoa2Duration;
+  wpt_uint32      uslNoa2Interval;
+  wpt_uint32      uslNoa2StartTime;
+
+  wpt_uint32      status;
+}WDI_P2pNoaAttrIndType;
+#endif
+
+#ifdef WLAN_WAKEUP_EVENTS
+/*---------------------------------------------------------------------------
+  WDI_WakeReasonIndType    
+---------------------------------------------------------------------------*/
+typedef struct
+{  
+    wpt_uint32      ulReason;        /* see tWakeReasonType */
+    wpt_uint32      ulReasonArg;     /* argument specific to the reason type */
+    wpt_uint32      ulStoredDataLen; /* length of optional data stored in this message, in case
+                              HAL truncates the data (i.e. data packets) this length
+                              will be less than the actual length */
+    wpt_uint32      ulActualDataLen; /* actual length of data */
+    wpt_uint8       aDataStart[1];  /* variable length start of data (length == storedDataLen)
+                             see specific wake type */ 
+} WDI_WakeReasonIndType;
+#endif // WLAN_WAKEUP_EVENTS
+
+/*---------------------------------------------------------------------------
+  WDI_LowLevelIndType
+    Inidcation type and information about the indication being carried
+    over
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Inidcation type*/
+  WDI_LowLevelIndEnumType  wdiIndicationType; 
+
+  /*Indication data*/
+  union
+  {
+    /*RSSI Threshold Info for WDI_LOW_RSSI_IND*/
+    WDI_LowRSSIThIndType        wdiLowRSSIInfo; 
+
+    /*Addr2 Frame Info for WDI_UNKNOWN_ADDR2_FRAME_RX_IND*/
+    WDI_UnkAddr2FrmRxIndType    wdiUnkAddr2FrmInfo;
+
+    /*MIC Failure info for WDI_MIC_FAILURE_IND*/
+    WDI_MicFailureIndType       wdiMICFailureInfo; 
+
+    /*Error code for WDI_FATAL_ERROR_IND*/
+    wpt_uint16                  usErrorCode;
+
+    /*Delete STA Indication*/
+    WDI_DeleteSTAIndType        wdiDeleteSTAIndType; 
+    
+    /*Coex Indication*/
+    WDI_CoexIndType             wdiCoexInfo;
+
+    /* Tx Complete Indication */
+    wpt_uint32                  tx_complete_status;
+
+#ifdef WLAN_FEATURE_P2P
+    /* P2P NOA ATTR Indication */
+    WDI_P2pNoaAttrIndType        wdiP2pNoaAttrInfo;
+#endif
+
+
+#ifdef FEATURE_WLAN_SCAN_PNO
+    WDI_PrefNetworkFoundInd     wdiPrefNetworkFoundInd;
+#endif // FEATURE_WLAN_SCAN_PNO
+
+#ifdef WLAN_WAKEUP_EVENTS
+    WDI_WakeReasonIndType        wdiWakeReasonInd;
+#endif // WLAN_WAKEUP_EVENTS
+  }  wdiIndicationData;
+}WDI_LowLevelIndType;
+
+/*---------------------------------------------------------------------------
+  WDI_LowLevelIndCBType
+
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL to deliver to UMAC certain indications
+   that has either received from the lower device or has generated itself.
+ 
+   PARAMETERS 
+
+    IN
+    pwdiInd:  information about the indication sent over
+    pUserData:  user data provided by UMAC during registration 
+ 
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void (*WDI_LowLevelIndCBType)(WDI_LowLevelIndType* pwdiInd,
+                                      void*                pUserData);
+
+/*---------------------------------------------------------------------------
+  WDI_DriverType
+---------------------------------------------------------------------------*/
+typedef enum
+{
+    WDI_DRIVER_TYPE_PRODUCTION  = 0,
+    WDI_DRIVER_TYPE_MFG         = 1,
+    WDI_DRIVER_TYPE_DVT         = 2
+} WDI_DriverType;
+
+/*---------------------------------------------------------------------------
+  WDI_StartReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*This is a TLV formatted buffer containing all config values that can
+   be set through the DAL Interface
+ 
+   The TLV is expected to be formatted like this:
+ 
+   0            7          15              31 .... 
+   | CONFIG ID  |  CFG LEN |   RESERVED    |  CFG BODY  |
+ 
+   Or from a C construct point of VU it would look like this:
+ 
+   typedef struct WPT_PACK_POST
+   {
+       #ifdef  WPT_BIG_ENDIAN
+         wpt_uint32   ucCfgId:8;
+         wpt_uint32   ucCfgLen:8;
+         wpt_uint32   usReserved:16;
+       #else
+         wpt_uint32   usReserved:16;
+         wpt_uint32   ucCfgLen:8;
+         wpt_uint32   ucCfgId:8;
+       #endif
+ 
+       wpt_uint8   ucCfgBody[ucCfgLen];
+   }WDI_ConfigType; 
+ 
+   Multiple such tuplets are to be placed in the config buffer. One for
+   each required configuration item:
+ 
+     | TLV 1 |  TLV2 | ....
+ 
+   The buffer is expected to be a flat area of memory that can be manipulated
+   with standard memory routines.
+ 
+   For more info please check paragraph 2.3.1 Config Structure from the
+   HAL LLD.
+ 
+   For a list of accepted configuration list and IDs please look up
+   wlan_qct_dal_cfg.h
+ 
+  */
+  void*                   pConfigBuffer; 
+
+  /*Length of the config buffer above*/
+  wpt_uint16              usConfigBufferLen;
+
+  /*Production or FTM driver*/
+  WDI_DriverType          wdiDriverType; 
+
+  /*Should device enable frame translation */
+  wpt_uint8               bFrameTransEnabled;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb         wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                   pUserData;
+
+  /*Indication callback given by UMAC to be called by the WLAN DAL when it
+    wishes to send something back independent of a request*/
+  WDI_LowLevelIndCBType   wdiLowLevelIndCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the indication
+    function pointer will be called */
+  void*                   pIndUserData;
+}WDI_StartReqParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_StartRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status    wdiStatus;
+
+  /*Max number of STA supported by the device*/
+  wpt_uint8     ucMaxStations;
+
+  /*Max number of BSS supported by the device*/
+  wpt_uint8     ucMaxBssids;
+
+  /*Version of the WLAN HAL API with which we were compiled*/
+  WDI_WlanVersionType wlanCompiledVersion;
+
+  /*Version of the WLAN HAL API that was reported*/
+  WDI_WlanVersionType wlanReportedVersion;
+
+  /*WCNSS Software version string*/
+  wpt_uint8 wcnssSoftwareVersion[WDI_VERSION_LENGTH];
+
+  /*WCNSS Hardware version string*/
+  wpt_uint8 wcnssHardwareVersion[WDI_VERSION_LENGTH];
+}WDI_StartRspParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_StopType
+---------------------------------------------------------------------------*/
+typedef enum
+{
+  /*Device is being stopped due to a reset*/
+  WDI_STOP_TYPE_SYS_RESET,
+
+  /*Device is being stopped due to entering deep sleep*/
+  WDI_STOP_TYPE_SYS_DEEP_SLEEP,
+
+  /*Device is being stopped because the RF needs to shut off
+    (e.g.:Airplane mode)*/
+  WDI_STOP_TYPE_RF_KILL 
+}WDI_StopType;
+
+/*---------------------------------------------------------------------------
+  WDI_StopReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+
+  /*The reason for which the device is being stopped*/
+  WDI_StopType   wdiStopReason;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_StopReqParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_ScanMode
+---------------------------------------------------------------------------*/
+typedef enum
+{
+  WDI_SCAN_MODE_NORMAL = 0,
+  WDI_SCAN_MODE_LEARN,
+  WDI_SCAN_MODE_SCAN,
+  WDI_SCAN_MODE_PROMISC,
+  WDI_SCAN_MODE_SUSPEND_LINK
+} WDI_ScanMode;
+
+/*---------------------------------------------------------------------------
+  WDI_ScanEntry
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  wpt_uint8 bssIdx[WDI_NUM_BSSID];
+  wpt_uint8 activeBSScnt;
+}WDI_ScanEntry;
+
+/*---------------------------------------------------------------------------
+  WDI_InitScanReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*LEARN - AP Role
+    SCAN - STA Role*/
+  WDI_ScanMode     wdiScanMode;
+
+  /*BSSID of the BSS*/
+  wpt_macAddr      macBSSID;
+
+  /*Whether BSS needs to be notified*/
+  wpt_boolean      bNotifyBSS;
+
+  /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
+  CTS to Self). Must always be a valid frame type.*/
+  wpt_uint8        ucFrameType;
+
+  /*UMAC has the option of passing the MAC frame to be used for notifying
+   the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
+   macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
+   frameType.*/
+  wpt_uint8        ucFrameLength;
+
+  /*Pointer to the MAC frame buffer. Used only if ucFrameLength is non-zero.*/
+  WDI_MacMgmtHdr   wdiMACMgmtHdr;
+
+  /*Entry to hold number of active BSS to send NULL frames before 
+   * initiating SCAN*/
+  WDI_ScanEntry    wdiScanEntry;
+
+  /* Flag to enable/disable Single NOA*/
+  wpt_boolean      bUseNOA;
+
+  /* Indicates the scan duration (in ms) */
+  wpt_uint16       scanDuration;
+
+}WDI_InitScanReqInfoType; 
+
+/*---------------------------------------------------------------------------
+  WDI_InitScanReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*The info associated with the request that needs to be sent over to the
+    device*/
+  WDI_InitScanReqInfoType  wdiReqInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb          wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                    pUserData;
+}WDI_InitScanReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_StartScanReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the channel to scan*/
+  wpt_uint8         ucChannel;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_StartScanReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_StartScanRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the status of the operation */
+  WDI_Status        wdiStatus;
+
+#if defined WLAN_FEATURE_VOWIFI
+  wpt_uint32        aStartTSF[2];
+  wpt_int8          ucTxMgmtPower;
+#endif
+}WDI_StartScanRspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_EndScanReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the channel to stop scanning.  Not used really. But retained
+    for symmetry with "start Scan" message. It can also help in error
+    check if needed.*/
+  wpt_uint8         ucChannel;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_EndScanReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_PhyChanBondState
+---------------------------------------------------------------------------*/
+typedef enum
+{
+  WDI_PHY_SINGLE_CHANNEL_CENTERED = 0,            
+  WDI_PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1,     
+  WDI_PHY_DOUBLE_CHANNEL_CENTERED = 2,            
+  WDI_PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3     
+} WDI_PhyChanBondState;
+
+/*---------------------------------------------------------------------------
+  WDI_FinishScanReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*LEARN - AP Role
+    SCAN - STA Role*/
+  WDI_ScanMode          wdiScanMode;
+
+  /*Operating channel to tune to.*/
+  wpt_uint8             ucCurrentOperatingChannel;
+
+  /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
+  40 MHz extension channel in combination with the control channel*/
+  WDI_PhyChanBondState  wdiCBState;
+
+  /*BSSID of the BSS*/
+  wpt_macAddr           macBSSID;
+
+  /*Whether BSS needs to be notified*/
+  wpt_boolean           bNotifyBSS;
+
+  /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
+  CTS to Self). Must always be a valid frame type.*/
+  wpt_uint8             ucFrameType;
+
+  /*UMAC has the option of passing the MAC frame to be used for notifying
+   the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
+   macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
+   frameType.*/
+  wpt_uint8             ucFrameLength;
+
+  /*Pointer to the MAC frame buffer. Used only if ucFrameLength is non-zero.*/
+  WDI_MacMgmtHdr        wdiMACMgmtHdr;
+
+  /*Entry to hold number of active BSS to send NULL frames after SCAN*/
+  WDI_ScanEntry    wdiScanEntry;
+
+}WDI_FinishScanReqInfoType; 
+
+/*---------------------------------------------------------------------------
+  WDI_SwitchChReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the channel to switch to.*/
+  wpt_uint8         ucChannel;
+
+  /*Local power constraint*/
+  wpt_uint8         ucLocalPowerConstraint;
+
+  /*Secondary channel offset */
+  WDI_HTSecondaryChannelOffset  wdiSecondaryChannelOffset;
+
+#ifdef WLAN_FEATURE_VOWIFI
+  wpt_int8      cMaxTxPower;
+
+  /*Self STA Mac address*/
+  wpt_macAddr   macSelfStaMacAddr;
+#endif
+  /* VO Wifi comment: BSSID is needed to identify which session issued this request. As the 
+     request has power constraints, this should be applied only to that session */
+  /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
+   * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
+   */
+  wpt_macAddr   macBSSId;
+
+}WDI_SwitchChReqInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SwitchChReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Channel Info*/
+  WDI_SwitchChReqInfoType  wdiChInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_SwitchChReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_FinishScanReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Info for the Finish Scan request that will be sent down to the device*/
+  WDI_FinishScanReqInfoType  wdiReqInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb            wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                      pUserData;
+}WDI_FinishScanReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_JoinReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the BSSID to which STA is going to associate*/
+  wpt_macAddr   macBSSID; 
+
+  /*Indicates the MAC Address of the current Self STA*/
+  wpt_macAddr   macSTASelf; 
+ 
+  /*Indicates the link State determining the entity Type e.g. BTAMP-STA, STA etc.*/
+  wpt_uint32    linkState;
+  
+  /*Indicates the channel to switch to.*/
+  WDI_SwitchChReqInfoType  wdiChannelInfo; 
+
+}WDI_JoinReqInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_JoinReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Info for the Join request that will be sent down to the device*/
+  WDI_JoinReqInfoType   wdiReqInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb       wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                 pUserData;
+}WDI_JoinReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_BssType
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+  WDI_INFRASTRUCTURE_MODE,
+  WDI_INFRA_AP_MODE,                    //Added for softAP support
+  WDI_IBSS_MODE,
+  WDI_BTAMP_STA_MODE, 
+  WDI_BTAMP_AP_MODE,
+  WDI_BSS_AUTO_MODE,
+}WDI_BssType;
+
+/*---------------------------------------------------------------------------
+  WDI_NwType
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+  WDI_11A_NW_TYPE,
+  WDI_11B_NW_TYPE,
+  WDI_11G_NW_TYPE,
+  WDI_11N_NW_TYPE,
+} WDI_NwType;
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigAction
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+  WDI_ADD_BSS,
+  WDI_UPDATE_BSS
+} WDI_ConfigAction;
+
+/*---------------------------------------------------------------------------
+  WDI_HTOperatingMode
+---------------------------------------------------------------------------*/
+typedef enum
+{
+  WDI_HT_OP_MODE_PURE,
+  WDI_HT_OP_MODE_OVERLAP_LEGACY,  
+  WDI_HT_OP_MODE_NO_LEGACY_20MHZ_HT,  
+  WDI_HT_OP_MODE_MIXED
+
+} WDI_HTOperatingMode;
+
+
+/*---------------------------------------------------------------------------
+  WDI_STAEntryType
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+  WDI_STA_ENTRY_SELF,
+  WDI_STA_ENTRY_PEER,
+  WDI_STA_ENTRY_BSSID,
+  WDI_STA_ENTRY_BCAST
+}WDI_STAEntryType;
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigActionType
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+  WDI_ADD_STA,
+  WDI_UPDATE_STA
+} WDI_ConfigActionType;
+
+/*---------------------------------------------------------------------------- 
+  Each station added has a rate mode which specifies the sta attributes
+  ----------------------------------------------------------------------------*/
+typedef enum 
+{
+    WDI_RESERVED_1 = 0,
+    WDI_RESERVED_2,
+    WDI_RESERVED_3,
+    WDI_11b,
+    WDI_11bg,
+    WDI_11a,
+    WDI_11n,
+} WDI_RateModeType;
+
+/*---------------------------------------------------------------------------
+  WDI_SupportedRatesType
+---------------------------------------------------------------------------*/
+typedef struct  
+{
+    /*
+    * For Self STA Entry: this represents Self Mode.
+    * For Peer Stations, this represents the mode of the peer.
+    * On Station:
+    * --this mode is updated when PE adds the Self Entry.
+    * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
+    * ON AP:
+    * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
+    *     to indicate the self mode of the AP.
+    * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
+    */
+
+    WDI_RateModeType   opRateMode;
+
+    /* 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps */
+    wpt_uint16         llbRates[WDI_NUM_11B_RATES];
+    wpt_uint16         llaRates[WDI_NUM_11A_RATES];
+    wpt_uint16         aLegacyRates[WDI_NUM_POLARIS_RATES];
+
+    /*Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
+      First 26 bits are reserved for those Titan rates and
+     the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.*/
+    wpt_uint32         uEnhancedRateBitmap; //Titan and Taurus Rates
+
+    /*
+    * 0-76 bits used, remaining reserved
+    * bits 0-15 and 32 should be set.
+    */
+    wpt_uint8           aSupportedMCSSet[WDI_MAC_MAX_SUPPORTED_MCS_SET];
+
+    /*
+     * RX Highest Supported Data Rate defines the highest data
+     * rate that the STA is able to receive, in unites of 1Mbps.
+     * This value is derived from "Supported MCS Set field" inside
+     * the HT capability element.
+     */
+    wpt_uint16         aRxHighestDataRate;
+
+} WDI_SupportedRates;
+
+/*-------------------------------------------------------------------------- 
+  WDI_HTMIMOPowerSaveState 
+    Spatial Multiplexing(SM) Power Save mode
+ --------------------------------------------------------------------------*/
+typedef enum 
+{
+  WDI_HT_MIMO_PS_STATIC   = 0,    // Static SM Power Save mode
+  WDI_HT_MIMO_PS_DYNAMIC  = 1,   // Dynamic SM Power Save mode
+  WDI_HT_MIMO_PS_NA       = 2,        // reserved
+  WDI_HT_MIMO_PS_NO_LIMIT = 3,  // SM Power Save disabled
+} WDI_HTMIMOPowerSaveState;
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigStaReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*BSSID of STA*/
+  wpt_macAddr               macBSSID;
+
+  /*ASSOC ID, as assigned by UMAC*/
+  wpt_uint16                usAssocId;
+
+  /*Used for configuration of different HW modules.*/
+  WDI_STAEntryType          wdiSTAType;
+
+  /*Short Preamble Supported.*/
+  wpt_uint8                 ucShortPreambleSupported;
+
+  /*MAC Address of STA*/
+  wpt_macAddr               macSTA;
+
+  /*Listen interval of the STA*/
+  wpt_uint16                usListenInterval;
+
+  /*Support for 11e/WMM*/
+  wpt_uint8                 ucWMMEnabled;
+
+  /*11n HT capable STA*/
+  wpt_uint8                 ucHTCapable;
+
+  /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
+  wpt_uint8                 ucTXChannelWidthSet;
+
+  /*RIFS mode 0 - NA, 1 - Allowed*/
+  wpt_uint8                 ucRIFSMode;
+
+  /*L-SIG TXOP Protection mechanism
+  0 - No Support, 1 - Supported
+      SG - there is global field*/
+  wpt_uint8                 ucLSIGTxopProtection;
+
+  /*Max Ampdu Size supported by STA. Device programming.
+    0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
+  wpt_uint8                 ucMaxAmpduSize;
+
+  /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
+  wpt_uint8                 ucMaxAmpduDensity;
+
+  /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
+  wpt_uint8                 ucMaxAmsduSize;
+
+  /*Short GI support for 40Mhz packets*/
+  wpt_uint8                 ucShortGI40Mhz;
+
+  /*Short GI support for 20Mhz packets*/
+  wpt_uint8                 ucShortGI20Mhz;
+
+  /*These rates are the intersection of peer and self capabilities.*/
+  WDI_SupportedRates        wdiSupportedRates;
+
+  /*Robust Management Frame (RMF) enabled/disabled*/
+  wpt_uint8                 ucRMFEnabled;
+
+  /* The unicast encryption type in the association */
+  wpt_uint32                ucEncryptType;
+
+  /*HAL should update the existing STA entry, if this flag is set. UMAC 
+   will set this flag in case of RE-ASSOC, where we want to reuse the old
+   STA ID.*/
+  WDI_ConfigActionType      wdiAction;
+
+  /*U-APSD Flags: 1b per AC.  Encoded as follows:
+     b7 b6 b5 b4 b3 b2 b1 b0 =
+     X  X  X  X  BE BK VI VO
+  */
+  wpt_uint8                 ucAPSD;
+
+  /*Max SP Length*/
+  wpt_uint8                 ucMaxSPLen;
+
+  /*11n Green Field preamble support*/
+  wpt_uint8                 ucGreenFieldCapable;
+
+  /*MIMO Power Save mode*/
+  WDI_HTMIMOPowerSaveState  wdiMIMOPS;
+
+  /*Delayed BA Support*/
+  wpt_uint8                 ucDelayedBASupport;
+
+  /*Max AMPDU duration in 32us*/
+  wpt_uint8                 us32MaxAmpduDuratio;
+
+  /*HT STA should set it to 1 if it is enabled in BSS
+   HT STA should set it to 0 if AP does not support it. This indication is
+   sent to HAL and HAL uses this flag to pickup up appropriate 40Mhz rates.
+  */
+  wpt_uint8                 ucDsssCckMode40Mhz;
+
+  wpt_uint8                 ucP2pCapableSta;
+}WDI_ConfigStaReqInfoType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_RateSet
+ 
+  12 Bytes long because this structure can be used to represent rate
+  and extended rate set IEs
+  The parser assume this to be at least 12 
+---------------------------------------------------------------------------*/
+#define WDI_RATESET_EID_MAX            12
+
+typedef struct 
+{
+    wpt_uint8  ucNumRates;
+    wpt_uint8  aRates[WDI_RATESET_EID_MAX];
+} WDI_RateSet;
+
+/*---------------------------------------------------------------------------
+  WDI_AciAifsnType
+   access category record
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    wpt_uint8  rsvd  : 1;
+    wpt_uint8  aci   : 2;
+    wpt_uint8  acm   : 1;
+    wpt_uint8  aifsn : 4;
+} WDI_AciAifsnType;
+
+/*---------------------------------------------------------------------------
+  WDI_CWType
+   contention window size
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    wpt_uint8  max : 4;
+    wpt_uint8  min : 4;
+} WDI_CWType;
+
+/*---------------------------------------------------------------------------
+  WDI_EdcaParamRecord
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    /*Access Category Record*/
+    WDI_AciAifsnType  wdiACI;
+
+    /*Contention WIndow Size*/
+    WDI_CWType        wdiCW;
+
+    /*TX Oportunity Limit*/
+    wpt_uint16        usTXOPLimit;
+} WDI_EdcaParamRecord;
+
+/*---------------------------------------------------------------------------
+  WDI_EDCAParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*BSS Index*/
+  wpt_uint8      ucBSSIdx;
+  
+  /*?*/
+  wpt_boolean    bHighPerformance;
+
+  /*Best Effort*/
+  WDI_EdcaParamRecord wdiACBE; 
+           
+  /*Background*/
+  WDI_EdcaParamRecord wdiACBK; 
+                            
+  /*Video*/
+  WDI_EdcaParamRecord wdiACVI; 
+  
+  /*Voice*/
+  WDI_EdcaParamRecord acvo; // voice
+} WDI_EDCAParamsType;
+
+/* operMode in ADD BSS message */
+#define WDI_BSS_OPERATIONAL_MODE_AP     0
+#define WDI_BSS_OPERATIONAL_MODE_STA    1
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigBSSRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+  /*BSSID of the BSS*/
+  wpt_macAddr  macBSSID; 
+
+  /*BSS Index*/
+  wpt_uint8    ucBSSIdx;
+
+  /*Unicast DPU signature*/
+  wpt_uint8    ucUcastSig;
+
+  /*Broadcast DPU Signature*/
+  wpt_uint8    ucBcastSig;
+
+  /*MAC Address of STA*/ 
+  wpt_macAddr  macSTA;
+
+  /*BSS STA ID*/
+  wpt_uint8    ucSTAIdx;
+
+#ifdef WLAN_FEATURE_VOWIFI
+  /*HAL fills in the tx power used for mgmt frames in this field */
+  wpt_int8    ucTxMgmtPower;
+#endif
+
+}WDI_ConfigBSSRspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelBSSReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*BSS Index of the BSS*/
+   wpt_uint8      ucBssIdx;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_DelBSSReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelBSSRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+  /*BSSID of the BSS*/
+  wpt_macAddr  macBSSID; 
+
+  wpt_uint8    ucBssIdx;
+
+}WDI_DelBSSRspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigSTARspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status      wdiStatus;
+
+  /*STA Idx allocated by HAL*/
+  wpt_uint8       ucSTAIdx;
+
+  /*MAC Address of STA*/
+  wpt_macAddr     macSTA;
+
+  /* BSSID Index of BSS to which the station is associated */
+  wpt_uint8       ucBssIdx;
+  
+  /* DPU Index  - PTK */
+  wpt_uint8       ucDpuIndex;
+
+  /* Bcast DPU Index  - GTK */  
+  wpt_uint8       ucBcastDpuIndex;
+
+  /* Management DPU Index - IGTK - Why is it called bcastMgmtDpuIdx? */
+  wpt_uint8       ucBcastMgmtDpuIdx;
+
+  /*Unicast DPU signature*/
+  wpt_uint8       ucUcastSig;
+
+  /*Broadcast DPU Signature*/
+  wpt_uint8       ucBcastSig;
+
+  /* IGTK DPU signature*/
+  wpt_uint8       ucMgmtSig;
+
+}WDI_ConfigSTARspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_PostAssocRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+  /*Parameters related to the BSS*/
+  WDI_ConfigBSSRspParamsType bssParams;
+
+  /*Parameters related to the self STA*/
+  WDI_ConfigSTARspParamsType staParams;
+
+}WDI_PostAssocRspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelSTAReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*STA Index returned during DAL_PostAssocReq or DAL_ConfigStaReq*/
+  wpt_uint8         ucSTAIdx;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_DelSTAReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelSTARspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+  /*STA Index returned during DAL_PostAssocReq or DAL_ConfigStaReq*/
+  wpt_uint8    ucSTAIdx;
+}WDI_DelSTARspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_EncryptType
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+    WDI_ENCR_NONE,
+    WDI_ENCR_WEP40,
+    WDI_ENCR_WEP104,
+    WDI_ENCR_TKIP,
+    WDI_ENCR_CCMP,
+#if defined(FEATURE_WLAN_WAPI)
+    WDI_ENCR_WPI,
+#endif
+    WDI_ENCR_AES_128_CMAC
+} WDI_EncryptType;
+
+/*---------------------------------------------------------------------------
+  WDI_KeyDirectionType
+---------------------------------------------------------------------------*/
+typedef enum
+{
+    WDI_TX_ONLY,
+    WDI_RX_ONLY,
+    WDI_TX_RX,
+#ifdef WLAN_SOFTAP_FEATURE
+    WDI_TX_DEFAULT,
+#endif
+    WDI_DONOT_USE_KEY_DIRECTION
+} WDI_KeyDirectionType;
+
+#define WDI_MAX_ENCR_KEYS 4
+#define WDI_MAX_KEY_LENGTH 32
+#if defined(FEATURE_WLAN_WAPI)
+#define WDI_MAX_KEY_RSC_LEN         16
+#define WDI_WAPI_KEY_RSC_LEN        16
+#else
+#define WDI_MAX_KEY_RSC_LEN         8
+#endif
+
+typedef struct
+{
+    /* Key ID */
+    wpt_uint8                  keyId;
+    /* 0 for multicast */
+    wpt_uint8                  unicast;     
+    /* Key Direction */
+    WDI_KeyDirectionType       keyDirection;
+    /* Usage is unknown */
+    wpt_uint8                  keyRsc[WDI_MAX_KEY_RSC_LEN];   
+    /* =1 for authenticator, =0 for supplicant */
+    wpt_uint8                  paeRole;     
+    wpt_uint16                 keyLength;
+    wpt_uint8                  key[WDI_MAX_KEY_LENGTH];
+
+}WDI_KeysType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetBSSKeyReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*BSS Index of the BSS*/
+  wpt_uint8      ucBssIdx; 
+
+  /*Encryption Type used with peer*/
+  WDI_EncryptType  wdiEncType;
+
+  /*Number of keys*/
+  wpt_uint8        ucNumKeys;
+
+  /*Array of keys.*/
+  WDI_KeysType     aKeys[WDI_MAX_ENCR_KEYS]; 
+
+  /*Control for Replay Count, 1= Single TID based replay count on Tx
+    0 = Per TID based replay count on TX */
+  wpt_uint8        ucSingleTidRc; 
+}WDI_SetBSSKeyReqInfoType; 
+
+/*---------------------------------------------------------------------------
+  WDI_SetBSSKeyReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Key Info */
+  WDI_SetBSSKeyReqInfoType  wdiBSSKeyInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb           wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                      pUserData;
+}WDI_SetBSSKeyReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_WepType
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+  WDI_WEP_STATIC,
+  WDI_WEP_DYNAMIC
+
+} WDI_WepType;
+
+/*---------------------------------------------------------------------------
+  WDI_RemoveBSSKeyReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*BSS Index of the BSS*/
+  wpt_uint8      ucBssIdx; 
+
+  /*Encryption Type used with peer*/
+  WDI_EncryptType  wdiEncType;
+
+  /*Key Id*/
+  wpt_uint8    ucKeyId;
+
+  /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic
+    keys*/
+  WDI_WepType  wdiWEPType;
+}WDI_RemoveBSSKeyReqInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_RemoveBSSKeyReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Key Info */
+  WDI_RemoveBSSKeyReqInfoType  wdiKeyInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_RemoveBSSKeyReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetSTAKeyReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*STA Index*/
+  wpt_uint8        ucSTAIdx; 
+
+  /*Encryption Type used with peer*/
+  WDI_EncryptType  wdiEncType;
+
+  /*STATIC/DYNAMIC*/
+  WDI_WepType      wdiWEPType;
+
+  /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
+  wpt_uint8        ucDefWEPIdx;
+
+  /*Number of keys*/
+  wpt_uint8        ucNumKeys;
+
+  /*Array of keys.*/
+  WDI_KeysType     wdiKey[WDI_MAX_ENCR_KEYS]; 
+
+  /*Control for Replay Count, 1= Single TID based replay count on Tx
+    0 = Per TID based replay count on TX */
+  wpt_uint8        ucSingleTidRc; 
+}WDI_SetSTAKeyReqInfoType; 
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigBSSReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Peer BSSID*/
+  wpt_macAddr              macBSSID;
+
+  /*Self MAC Address*/
+  wpt_macAddr              macSelfAddr; 
+
+  /*BSS Type*/
+  WDI_BssType              wdiBSSType;
+
+  /*Operational Mode: AP =0, STA = 1*/
+  wpt_uint8                ucOperMode;
+
+  /*Network Type*/
+  WDI_NwType               wdiNWType;
+
+  /*Used to classify PURE_11G/11G_MIXED to program MTU*/
+  wpt_uint8                ucShortSlotTimeSupported;
+
+  /*Co-exist with 11a STA*/
+  wpt_uint8                ucllaCoexist;
+
+  /*Co-exist with 11b STA*/
+  wpt_uint8                ucllbCoexist;
+
+  /*Co-exist with 11g STA*/
+  wpt_uint8                ucllgCoexist;
+
+  /*Coexistence with 11n STA*/
+  wpt_uint8                ucHT20Coexist;
+
+  /*Non GF coexist flag*/
+  wpt_uint8                ucllnNonGFCoexist;
+
+  /*TXOP protection support*/
+  wpt_uint8                ucTXOPProtectionFullSupport;
+
+  /*RIFS mode*/
+  wpt_uint8                ucRIFSMode;
+
+  /*Beacon Interval in TU*/
+  wpt_uint16               usBeaconInterval;
+
+  /*DTIM period*/
+  wpt_uint8                ucDTIMPeriod;
+
+  /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
+  wpt_uint8                ucTXChannelWidthSet;
+
+  /*Operating channel*/
+  wpt_uint8                ucCurrentOperChannel;
+
+  /*Extension channel for channel bonding*/
+  wpt_uint8                ucCurrentExtChannel;
+
+  /*Context of the station being added in HW.*/
+  WDI_ConfigStaReqInfoType wdiSTAContext;
+
+  /*SSID of the BSS*/
+  WDI_MacSSid              wdiSSID;
+
+  /*HAL should update the existing BSS entry, if this flag is set. UMAC will
+    set this flag in case of RE-ASSOC, where we want to reuse the old BSSID*/
+  WDI_ConfigAction         wdiAction;
+
+  /*Basic Rate Set*/
+  WDI_RateSet              wdiRateSet;
+
+  /*Enable/Disable HT capabilities of the BSS*/
+  wpt_uint8                ucHTCapable;
+
+  /* Enable/Disable OBSS protection */
+  wpt_uint8                ucObssProtEnabled;
+
+  /*RMF enabled/disabled*/
+  wpt_uint8                ucRMFEnabled;
+
+  /*Determines the current HT Operating Mode operating mode of the
+    802.11n STA*/
+  WDI_HTOperatingMode      wdiHTOperMod;
+
+  /*Dual CTS Protection: 0 - Unused, 1 - Used*/
+  wpt_uint8                ucDualCTSProtection;
+
+    /* Probe Response Max retries */
+  wpt_uint8   ucMaxProbeRespRetryLimit;
+
+  /* To Enable Hidden ssid */
+  wpt_uint8   bHiddenSSIDEn;
+
+  /* To Enable Disable FW Proxy Probe Resp */
+  wpt_uint8   bProxyProbeRespEn;
+
+ /* Boolean to indicate if EDCA params are valid. UMAC might not have valid 
+    EDCA params or might not desire to apply EDCA params during config BSS. 
+    0 implies Not Valid ; Non-Zero implies valid*/
+  wpt_uint8   ucEDCAParamsValid;
+
+   /*EDCA Parameters for BK*/  
+  WDI_EdcaParamRecord       wdiBKEDCAParams; 
+
+   /*EDCA Parameters for BE*/  
+  WDI_EdcaParamRecord       wdiBEEDCAParams; 
+
+   /*EDCA Parameters for VI*/  
+  WDI_EdcaParamRecord       wdiVIEDCAParams; 
+
+   /*EDCA Parameters for VO*/  
+  WDI_EdcaParamRecord       wdiVOEDCAParams; 
+
+#ifdef WLAN_FEATURE_VOWIFI
+   /*max power to be used after applying the power constraint, if any */
+  wpt_int8                  cMaxTxPower;
+#endif
+
+  /* Persona for the BSS can be STA,AP,GO,CLIENT, same as Connection Mode */  
+  wpt_uint8                 ucPersona;
+
+  /* Spectrum Mangement Indicator */
+  wpt_uint8                 bSpectrumMgtEn;
+
+#ifdef WLAN_FEATURE_VOWIFI_11R
+  wpt_uint8                 bExtSetStaKeyParamValid;
+  WDI_SetSTAKeyReqInfoType  wdiExtSetKeyParam;
+#endif
+
+}WDI_ConfigBSSReqInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_PostAssocReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Config STA arguments.*/
+  WDI_ConfigStaReqInfoType  wdiSTAParams; 
+
+   /*Config BSS Arguments*/
+  WDI_ConfigBSSReqInfoType  wdiBSSParams;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb           wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                     pUserData;
+}WDI_PostAssocReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigBSSReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Info for the Join request that will be sent down to the device*/
+  WDI_ConfigBSSReqInfoType   wdiReqInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb            wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                      pUserData;
+}WDI_ConfigBSSReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetSTAKeyReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Key Info*/
+  WDI_SetSTAKeyReqInfoType  wdiKeyInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_SetSTAKeyReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_RemoveSTAKeyReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*STA Index*/
+  wpt_uint8        ucSTAIdx; 
+
+  /*Encryption Type used with peer*/
+  WDI_EncryptType  wdiEncType;
+
+  /*Key Id*/
+  wpt_uint8        ucKeyId;
+
+  /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
+  the same key is used for both broadcast and unicast.*/
+  wpt_uint8        ucUnicast;
+}WDI_RemoveSTAKeyReqInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_RemoveSTAKeyReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Key Info */
+  WDI_RemoveSTAKeyReqInfoType  wdiKeyInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_RemoveSTAKeyReqParamsType;
+
+/*---------------------------------------------------------------------------
+                            QOS Parameters
+---------------------------------------------------------------------------*/
+
+/*---------------------------------------------------------------------------
+  WDI_TSInfoTfc
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    wpt_uint16       ackPolicy:2;
+    wpt_uint16       userPrio:3;
+    wpt_uint16       psb:1;
+    wpt_uint16       aggregation : 1;
+    wpt_uint16       accessPolicy : 2;
+    wpt_uint16       direction : 2;
+    wpt_uint16       tsid : 4;
+    wpt_uint16       trafficType : 1;
+} WDI_TSInfoTfc;
+
+/*---------------------------------------------------------------------------
+  WDI_TSInfoSch
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    wpt_uint8        rsvd : 7;
+    wpt_uint8        schedule : 1;
+} WDI_TSInfoSch;
+
+/*---------------------------------------------------------------------------
+  WDI_TSInfoType
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    WDI_TSInfoTfc  wdiTraffic;
+    WDI_TSInfoSch  wdiSchedule;
+} WDI_TSInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_TspecIEType
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+    wpt_uint8             ucType;
+    wpt_uint8             ucLength;
+    WDI_TSInfoType        wdiTSinfo;
+    wpt_uint16            usNomMsduSz;
+    wpt_uint16            usMaxMsduSz;
+    wpt_uint32            uMinSvcInterval;
+    wpt_uint32            uMaxSvcInterval;
+    wpt_uint32            uInactInterval;
+    wpt_uint32            uSuspendInterval;
+    wpt_uint32            uSvcStartTime;
+    wpt_uint32            uMinDataRate;
+    wpt_uint32            uMeanDataRate;
+    wpt_uint32            uPeakDataRate;
+    wpt_uint32            uMaxBurstSz;
+    wpt_uint32            uDelayBound;
+    wpt_uint32            uMinPhyRate;
+    wpt_uint16            usSurplusBw;
+    wpt_uint16            usMediumTime;
+}WDI_TspecIEType;
+
+/*---------------------------------------------------------------------------
+  WDI_AddTSReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*STA Index*/
+  wpt_uint8         ucSTAIdx; 
+
+  /*Identifier for TSpec*/
+  wpt_uint16        ucTspecIdx;
+
+  /*Tspec IE negotiated OTA*/
+  WDI_TspecIEType   wdiTspecIE;
+
+  /*UAPSD delivery and trigger enabled flags */
+  wpt_uint8         ucUapsdFlags;
+
+  /*SI for each AC*/
+  wpt_uint8         ucServiceInterval[WDI_MAX_NO_AC];
+
+  /*Suspend Interval for each AC*/
+  wpt_uint8         ucSuspendInterval[WDI_MAX_NO_AC];
+
+  /*DI for each AC*/
+  wpt_uint8         ucDelayedInterval[WDI_MAX_NO_AC];
+
+}WDI_AddTSReqInfoType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_AddTSReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*TSpec Info */
+  WDI_AddTSReqInfoType  wdiTsInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_AddTSReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelTSReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*STA Index*/
+  wpt_uint8         ucSTAIdx; 
+
+  /*Identifier for TSpec*/
+  wpt_uint16        ucTspecIdx;
+
+  /*BSSID of the BSS*/
+  wpt_macAddr      macBSSID;
+}WDI_DelTSReqInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelTSReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Del TSpec Info*/
+  WDI_DelTSReqInfoType  wdiDelTSInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_DelTSReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateEDCAInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*BSS Index of the BSS*/
+   wpt_uint8      ucBssIdx;
+
+  /* Boolean to indicate if EDCA params are valid. UMAC might not have valid 
+    EDCA params or might not desire to apply EDCA params during config BSS. 
+    0 implies Not Valid ; Non-Zero implies valid*/
+  wpt_uint8   ucEDCAParamsValid;
+
+  /*EDCA params for BE*/
+  WDI_EdcaParamRecord wdiEdcaBEInfo;
+
+  /*EDCA params for BK*/
+  WDI_EdcaParamRecord wdiEdcaBKInfo;
+
+  /*EDCA params for VI*/
+  WDI_EdcaParamRecord wdiEdcaVIInfo;
+
+  /*EDCA params for VO*/
+  WDI_EdcaParamRecord wdiEdcaVOInfo;
+
+}WDI_UpdateEDCAInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateEDCAParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*EDCA Info */
+  WDI_UpdateEDCAInfoType  wdiEDCAInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_UpdateEDCAParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_AddBASessionReqinfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the station for which BA is added..*/
+  wpt_uint8        ucSTAIdx;
+
+  /*The peer mac address*/
+  wpt_macAddr      macPeerAddr;
+
+  /*TID for which BA was negotiated*/
+  wpt_uint8        ucBaTID;
+
+  /*Delayed or imediate */
+  wpt_uint8        ucBaPolicy;
+
+  /*The number of buffers for this TID (baTID)*/
+  wpt_uint16       usBaBufferSize;
+  
+  /*BA timeout in TU's*/
+  wpt_uint16       usBaTimeout;
+  
+  /*b0..b3 - Fragment Number - Always set to 0
+   b4..b15 - Starting Sequence Number of first MSDU for which this BA is setup*/
+  wpt_uint16       usBaSSN;
+  
+  /*Originator/Recipient*/
+  wpt_uint8        ucBaDirection;
+  
+}WDI_AddBASessionReqinfoType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_AddBASessionReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*BA Session Info Type*/
+  WDI_AddBASessionReqinfoType  wdiBASessionInfoType; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb       wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                 pUserData;
+}WDI_AddBASessionReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_AddBASessionRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status   wdiStatus; 
+  
+  /* Dialog token */
+  wpt_uint8    ucBaDialogToken;
+  
+  /* TID for which the BA session has been setup */
+  wpt_uint8    ucBaTID;
+  
+  /* BA Buffer Size allocated for the current BA session */
+  wpt_uint8    ucBaBufferSize;
+
+  /* BA session ID */
+  wpt_uint16   usBaSessionID;
+  
+  /* Reordering Window buffer */
+  wpt_uint8    ucWinSize;
+  
+  /*Station Index to id the sta */
+  wpt_uint8    ucSTAIdx;
+  
+  /* Starting Sequence Number */
+  wpt_uint16   usBaSSN;
+
+}WDI_AddBASessionRspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_AddBAReqinfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the station for which BA is added..*/
+  wpt_uint8        ucSTAIdx;
+
+  /* Session Id */
+  wpt_uint8        ucBaSessionID;
+  
+  /* Reorder Window Size */
+  wpt_uint8        ucWinSize;
+  
+#ifdef FEATURE_ON_CHIP_REORDERING
+  wpt_boolean      bIsReorderingDoneOnChip;
+#endif
+
+}WDI_AddBAReqinfoType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_AddBAReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*BA Info Type*/
+  WDI_AddBAReqinfoType  wdiBAInfoType; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb       wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                 pUserData;
+}WDI_AddBAReqParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_AddBARspinfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+  /* Dialog token */
+  wpt_uint8    ucBaDialogToken;
+
+}WDI_AddBARspinfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_TriggerBAReqCandidateType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /* STA index */
+  wpt_uint8   ucSTAIdx;
+
+  /* TID bit map for the STA's*/
+  wpt_uint8   ucTidBitmap;
+
+}WDI_TriggerBAReqCandidateType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_TriggerBAReqinfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the station for which BA is added..*/
+  wpt_uint8        ucSTAIdx;
+
+  /* Session Id */
+  wpt_uint8        ucBASessionID;
+
+  /* Trigger BA Request candidate count */
+  wpt_uint16       usBACandidateCnt;
+
+  /* WDI_TriggerBAReqCandidateType  followed by this*/
+
+}WDI_TriggerBAReqinfoType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_TriggerBAReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*BA Trigger Info Type*/
+  WDI_TriggerBAReqinfoType  wdiTriggerBAInfoType; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb       wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                 pUserData;
+}WDI_TriggerBAReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_AddBAInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  wpt_uint16 fBaEnable : 1;
+  wpt_uint16 startingSeqNum: 12;
+  wpt_uint16 reserved : 3;
+}WDI_AddBAInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_TriggerBARspCandidateType
+---------------------------------------------------------------------------*/
+#define STA_MAX_TC 8
+
+typedef struct
+{
+  /* STA index */
+  wpt_macAddr       macSTA;
+
+  /* BA Info */
+  WDI_AddBAInfoType wdiBAInfo[STA_MAX_TC];
+}WDI_TriggerBARspCandidateType;
+
+/*---------------------------------------------------------------------------
+  WDI_TriggerBARspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+  /*BSSID of the BSS*/
+  wpt_macAddr  macBSSID;
+
+  /* Trigger BA response candidate count */
+  wpt_uint16   usBaCandidateCnt;
+
+  /* WDI_TriggerBARspCandidateType  followed by this*/
+
+}WDI_TriggerBARspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelBAReqinfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the station for which BA is added..*/
+  wpt_uint8        ucSTAIdx;
+
+  /*TID for which BA was negotiated*/
+  wpt_uint8        ucBaTID;
+
+  /*Originator/Recipient*/
+  wpt_uint8        ucBaDirection;
+  
+}WDI_DelBAReqinfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelBAReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*BA Info */
+  WDI_DelBAReqinfoType  wdiBAInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_DelBAReqParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_SwitchCHRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /*Status of the response*/
+  WDI_Status    wdiStatus;
+
+  /*Indicates the channel that WLAN is on*/
+  wpt_uint8     ucChannel;
+
+#ifdef WLAN_FEATURE_VOWIFI
+  /*HAL fills in the tx power used for mgmt frames in this field.*/
+  wpt_int8     ucTxMgmtPower;
+#endif
+
+}WDI_SwitchCHRspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigSTAReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Info for the Join request that will be sent down to the device*/
+  WDI_ConfigStaReqInfoType   wdiReqInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb            wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                      pUserData;
+}WDI_ConfigSTAReqParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateBeaconParamsInfoType
+---------------------------------------------------------------------------*/
+
+typedef struct
+{
+   /*BSS Index of the BSS*/
+   wpt_uint8      ucBssIdx;
+
+    /*shortPreamble mode. HAL should update all the STA rates when it
+    receives this message*/
+    wpt_uint8 ucfShortPreamble;
+    /* short Slot time.*/
+    wpt_uint8 ucfShortSlotTime;
+    /* Beacon Interval */
+    wpt_uint16 usBeaconInterval;
+    /*Protection related */
+    wpt_uint8 ucllaCoexist;
+    wpt_uint8 ucllbCoexist;
+    wpt_uint8 ucllgCoexist;
+    wpt_uint8 ucHt20MhzCoexist;
+    wpt_uint8 ucllnNonGFCoexist;
+    wpt_uint8 ucfLsigTXOPProtectionFullSupport;
+    wpt_uint8 ucfRIFSMode;
+
+    wpt_uint16 usChangeBitmap;
+}WDI_UpdateBeaconParamsInfoType;
+
+
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateBeaconParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Update Beacon Params  Info*/
+  WDI_UpdateBeaconParamsInfoType  wdiUpdateBeaconParamsInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_UpdateBeaconParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_SendBeaconParamsInfoType
+---------------------------------------------------------------------------*/
+
+typedef struct {
+
+   /*BSSID of the BSS*/
+   wpt_macAddr  macBSSID;
+
+   /* Beacon data */
+   wpt_uint8    beacon[WDI_BEACON_TEMPLATE_SIZE];     
+
+   /* length of the template */
+   wpt_uint32   beaconLength;
+
+#ifdef WLAN_SOFTAP_FEATURE
+   /* TIM IE offset from the beginning of the template.*/
+   wpt_uint32   timIeOffset; 
+#endif
+
+#ifdef WLAN_FEATURE_P2P
+   /* P2P IE offset from the beginning of the template */
+   wpt_uint16   usP2PIeOffset;
+#endif
+} WDI_SendBeaconParamsInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SendBeaconParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Send Beacon Params  Info*/
+  WDI_SendBeaconParamsInfoType  wdiSendBeaconParamsInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_SendBeaconParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_LinkStateType
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+    WDI_LINK_IDLE_STATE              = 0,
+    WDI_LINK_PREASSOC_STATE          = 1,
+    WDI_LINK_POSTASSOC_STATE         = 2,
+    WDI_LINK_AP_STATE                = 3,
+    WDI_LINK_IBSS_STATE              = 4,
+
+    // BT-AMP Case
+    WDI_LINK_BTAMP_PREASSOC_STATE    = 5,
+    WDI_LINK_BTAMP_POSTASSOC_STATE   = 6,
+    WDI_LINK_BTAMP_AP_STATE          = 7,
+    WDI_LINK_BTAMP_STA_STATE         = 8,
+    
+    // Reserved for HAL internal use
+    WDI_LINK_LEARN_STATE             = 9,
+    WDI_LINK_SCAN_STATE              = 10,
+    WDI_LINK_FINISH_SCAN_STATE       = 11,
+    WDI_LINK_INIT_CAL_STATE          = 12,
+    WDI_LINK_FINISH_CAL_STATE        = 13,
+#ifdef WLAN_FEATURE_P2P
+    WDI_LINK_LISTEN_STATE            = 14,
+#endif
+    WDI_LINK_MAX                     = 0x7FFFFFFF
+} WDI_LinkStateType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetLinkReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*BSSID of the BSS*/
+  wpt_macAddr           macBSSID;
+
+  /*Link state*/
+  WDI_LinkStateType     wdiLinkState;
+
+  /*BSSID of the BSS*/
+  wpt_macAddr           macSelfStaMacAddr;
+}WDI_SetLinkReqInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetLinkReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Link Info*/
+  WDI_SetLinkReqInfoType  wdiLinkInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_SetLinkReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_GetStatsParamsInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the station for which Get Stats are requested..*/
+  wpt_uint8        ucSTAIdx;
+
+  /* categories of stats requested */
+  wpt_uint32       uStatsMask;
+}WDI_GetStatsParamsInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_GetStatsReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Get Stats Params  Info*/
+  WDI_GetStatsParamsInfoType  wdiGetStatsParamsInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_GetStatsReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_GetStatsRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*message type is same as the request type*/
+  wpt_uint16       usMsgType;
+
+  /* length of the entire request, includes the pStatsBuf length too*/
+  wpt_uint16       usMsgLen;
+  
+  /*Result of the operation*/
+  WDI_Status       wdiStatus;
+
+  /*Indicates the station for which Get Stats are requested..*/
+  wpt_uint8        ucSTAIdx;
+
+  /* categories of stats requested */
+  wpt_uint32       uStatsMask;
+
+  /* The Stats buffer starts here and can be an aggregate of more than one statistics 
+   * structure depending on statsMask.*/
+}WDI_GetStatsRspParamsType;
+
+#ifdef FEATURE_WLAN_CCX
+/*---------------------------------------------------------------------------
+  WDI_TSMStatsParamsInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the station for which Get Stats are requested..*/
+  wpt_uint8        ucTid;
+
+  wpt_macAddr      bssid;
+}WDI_TSMStatsParamsInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_TSMStatsReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Get TSM Stats Params  Info*/
+  WDI_TSMStatsParamsInfoType  wdiTsmStatsParamsInfo;
+
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+
+}WDI_TSMStatsReqParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_TSMStatsRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Indicates the status of the operation */
+  WDI_Status      wdiStatus;
+
+  wpt_uint16      UplinkPktQueueDly;
+  wpt_uint16      UplinkPktQueueDlyHist[4];
+  wpt_uint32      UplinkPktTxDly;
+  wpt_uint16      UplinkPktLoss;
+  wpt_uint16      UplinkPktCount;
+  wpt_uint8       RoamingCount;
+  wpt_uint16      RoamingDly;
+}WDI_TSMStatsRspParamsType;
+
+
+#endif
+/*---------------------------------------------------------------------------
+  WDI_UpdateCfgReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*This is a TLV formatted buffer containing all config values that can
+   be set through the DAL Interface
+ 
+   The TLV is expected to be formatted like this:
+ 
+   0            7          15              31 .... 
+   | CONFIG ID  |  CFG LEN |   RESERVED    |  CFG BODY  |
+ 
+   Or from a C construct point of VU it would look like this:
+ 
+   typedef struct WPT_PACK_POST
+   {
+       #ifdef  WPT_BIG_ENDIAN
+         wpt_uint32   ucCfgId:8;
+         wpt_uint32   ucCfgLen:8;
+         wpt_uint32   usReserved:16;
+       #else
+         wpt_uint32   usReserved:16;
+         wpt_uint32   ucCfgLen:8;
+         wpt_uint32   ucCfgId:8;
+       #endif
+ 
+       wpt_uint8   ucCfgBody[ucCfgLen];
+   }WDI_ConfigType; 
+ 
+   Multiple such tuplets are to be placed in the config buffer. One for
+   each required configuration item:
+ 
+     | TLV 1 |  TLV2 | ....
+ 
+   The buffer is expected to be a flat area of memory that can be manipulated
+   with standard memory routines.
+ 
+   For more info please check paragraph 2.3.1 Config Structure from the
+   HAL LLD.
+ 
+   For a list of accepted configuration list and IDs please look up
+   wlan_qct_dal_cfg.h
+  */
+  void*                   pConfigBuffer; 
+
+  /*Length of the config buffer above*/
+  wpt_uint32              uConfigBufferLen;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_UpdateCfgReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateProbeRspTemplateInfoType
+---------------------------------------------------------------------------*/
+//Default Beacon template size
+#define WDI_PROBE_RSP_TEMPLATE_SIZE 0x180
+
+#define WDI_PROBE_REQ_BITMAP_IE_LEN 8
+
+typedef struct
+{
+  /*BSSID for which the Probe Template is to be used*/
+  wpt_macAddr     macBSSID;
+
+  /*Probe response template*/
+  wpt_uint8      *pProbeRespTemplate[WDI_PROBE_RSP_TEMPLATE_SIZE];
+
+  /*Template Len*/
+  wpt_uint32      uProbeRespTemplateLen;
+
+  /*Bitmap for the IEs that are to be handled at SLM level*/
+  wpt_uint32      uaProxyProbeReqValidIEBmap[WDI_PROBE_REQ_BITMAP_IE_LEN];
+
+}WDI_UpdateProbeRspTemplateInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateProbeRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Link Info*/
+  WDI_UpdateProbeRspTemplateInfoType  wdiProbeRspTemplateInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_UpdateProbeRspTemplateParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_NvDownloadReqBlobInfo
+---------------------------------------------------------------------------*/
+
+typedef struct
+{
+  /* Blob starting address*/
+  void *pBlobAddress;
+
+  /* Blob size */
+  wpt_uint32 uBlobSize;
+  
+}WDI_NvDownloadReqBlobInfo;
+
+/*---------------------------------------------------------------------------
+ WDI_NvDownloadReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*NV Blob Info*/
+  WDI_NvDownloadReqBlobInfo  wdiBlobInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+   req has returned PENDING as status; it delivers the status of sending
+   the message over the BUS */
+  WDI_ReqStatusCb       wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */
+  void*                 pUserData;
+  
+}WDI_NvDownloadReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_NvDownloadRspInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+}WDI_NvDownloadRspInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetMaxTxPowerInfoType
+---------------------------------------------------------------------------*/
+
+typedef struct
+{
+  /*BSSID is needed to identify which session issued this request. As the request has 
+    power constraints, this should be applied only to that session*/
+  wpt_macAddr macBSSId;
+
+
+  wpt_macAddr macSelfStaMacAddr;
+
+  /* In request  power == MaxTxpower to be used.*/
+  wpt_int8  ucPower;
+
+}WDI_SetMaxTxPowerInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetMaxTxPowerParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Link Info*/
+  WDI_SetMaxTxPowerInfoType  wdiMaxTxPowerInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_SetMaxTxPowerParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_SetMaxTxPowerRspMsg
+---------------------------------------------------------------------------*/
+
+typedef struct
+{
+  /* In response, power==tx power used for management frames*/
+  wpt_int8  ucPower;
+  
+  /*Result of the operation*/
+  WDI_Status wdiStatus;
+ 
+}WDI_SetMaxTxPowerRspMsg;
+
+#ifdef WLAN_FEATURE_P2P
+typedef struct
+{
+  wpt_uint8   ucOpp_ps;
+  wpt_uint32  uCtWindow;
+  wpt_uint8   ucCount; 
+  wpt_uint32  uDuration;
+  wpt_uint32  uInterval;
+  wpt_uint32  uSingle_noa_duration;
+  wpt_uint8   ucPsSelection;
+}WDI_SetP2PGONOAReqInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetP2PGONOAReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*P2P GO NOA Req*/
+  WDI_SetP2PGONOAReqInfoType  wdiP2PGONOAInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_SetP2PGONOAReqParamsType;
+#endif
+
+
+/*---------------------------------------------------------------------------
+  WDI_SetAddSTASelfParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Self Station MAC address*/
+  wpt_macAddr selfMacAddr;
+
+  /*Status of the operation*/
+  wpt_uint32  uStatus;
+}WDI_AddSTASelfInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetAddSTASelfParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /* Add Sta Self Req */
+  WDI_AddSTASelfInfoType  wdiAddSTASelfInfo;
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb         wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*                   pUserData;
+}WDI_AddSTASelfReqParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_AddSTASelfRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+  /*STA Idx allocated by HAL*/
+  wpt_uint8    ucSTASelfIdx;
+
+  /* DPU Index (IGTK, PTK, GTK all same) */
+  wpt_uint8    dpuIdx;
+
+  /* DPU Signature */
+  wpt_uint8    dpuSignature;
+
+  /*Self STA Mac*/
+  wpt_macAddr  macSelfSta;
+
+}WDI_AddSTASelfRspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelSTASelfReqParamsType
+  Del Sta Self info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   wpt_macAddr       selfMacAddr;
+
+}WDI_DelSTASelfInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelSTASelfReqParamsType
+  Del Sta Self info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Del Sta Self Info Type */
+   WDI_DelSTASelfInfoType     wdiDelStaSelfInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_DelSTASelfReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_DelSTASelfRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /*Status of the response*/
+  WDI_Status   wdiStatus; 
+
+  /*STA Index returned during DAL_PostAssocReq or DAL_ConfigStaReq*/
+//  wpt_uint8   ucSTAIdx;
+}WDI_DelSTASelfRspParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_UapsdInfoType
+  UAPSD parameters passed per AC to WDA from UMAC
+---------------------------------------------------------------------------*/
+typedef struct  
+{
+   wpt_uint8  ucSTAIdx;        // STA index
+   wpt_uint8  ucAc;            // Access Category
+   wpt_uint8  ucUp;            // User Priority
+   wpt_uint32 uSrvInterval;   // Service Interval
+   wpt_uint32 uSusInterval;   // Suspend Interval
+   wpt_uint32 uDelayInterval; // Delay Interval
+} WDI_UapsdInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetUapsdAcParamsReqParamsType
+  UAPSD parameters passed per AC to WDI from WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Enter BMPS Info Type, same as tEnterBmpsParams */ 
+   WDI_UapsdInfoType wdiUapsdInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb   wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*             pUserData; 
+}WDI_SetUapsdAcParamsReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_EnterBmpsReqinfoType
+  Enter BMPS parameters passed to WDA from UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   //TBTT value derived from the last beacon
+   wpt_uint8         ucBssIdx;
+   wpt_uint64        uTbtt;
+   wpt_uint8         ucDtimCount;
+   //DTIM period given to HAL during association may not be valid,
+   //if association is based on ProbeRsp instead of beacon.
+   wpt_uint8         ucDtimPeriod;
+   /* DXE physical addr to be passed down to RIVA. RIVA HAL will use it to program
+   DXE when DXE wakes up from power save*/
+   unsigned int      dxePhyAddr;
+
+   // For CCX and 11R Roaming
+   wpt_uint32 rssiFilterPeriod;
+   wpt_uint32 numBeaconPerRssiAverage;
+   wpt_uint8  bRssiFilterEnable;
+}WDI_EnterBmpsReqinfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_EnterBmpsReqParamsType
+  Enter BMPS parameters passed to WDI from WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Enter BMPS Info Type, same as tEnterBmpsParams */ 
+   WDI_EnterBmpsReqinfoType wdiEnterBmpsInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb          wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                    pUserData; 
+}WDI_EnterBmpsReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_ExitBmpsReqinfoType
+  Exit BMPS parameters passed to WDA from UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   wpt_uint8     ucSendDataNull;
+}WDI_ExitBmpsReqinfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_ExitBmpsReqParamsType
+  Exit BMPS parameters passed to WDI from WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Exit BMPS Info Type, same as tExitBmpsParams */ 
+   WDI_ExitBmpsReqinfoType wdiExitBmpsInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb         wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                   pUserData; 
+}WDI_ExitBmpsReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_EnterUapsdReqinfoType
+  Enter UAPSD parameters passed to WDA from UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   wpt_uint8     ucBkDeliveryEnabled:1;
+   wpt_uint8     ucBeDeliveryEnabled:1;
+   wpt_uint8     ucViDeliveryEnabled:1;
+   wpt_uint8     ucVoDeliveryEnabled:1;
+   wpt_uint8     ucBkTriggerEnabled:1;
+   wpt_uint8     ucBeTriggerEnabled:1;
+   wpt_uint8     ucViTriggerEnabled:1;
+   wpt_uint8     ucVoTriggerEnabled:1;
+}WDI_EnterUapsdReqinfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_EnterUapsdReqinfoType
+  Enter UAPSD parameters passed to WDI from WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Enter UAPSD Info Type, same as tUapsdParams */ 
+   WDI_EnterUapsdReqinfoType wdiEnterUapsdInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb           wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                     pUserData; 
+}WDI_EnterUapsdReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateUapsdReqinfoType
+  Update UAPSD parameters passed to WDA from UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   wpt_uint8  ucSTAIdx;
+   wpt_uint8  ucUapsdACMask; 
+   wpt_uint32 uMaxSpLen;    
+}WDI_UpdateUapsdReqinfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateUapsdReqParamsType
+  Update UAPSD parameters passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Update UAPSD Info Type, same as tUpdateUapsdParams */ 
+   WDI_UpdateUapsdReqinfoType wdiUpdateUapsdInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_UpdateUapsdReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigureRxpFilterReqParamsType
+  RXP filter parameters passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  /* Mode of Mcast and Bcast filters configured */
+  wpt_uint8 ucSetMcstBcstFilterSetting;
+
+  /* Mcast Bcast Filters enable/disable*/
+  wpt_uint8 ucSetMcstBcstFilter;
+}WDI_RxpFilterReqParamsType;
+
+typedef struct 
+{
+  /* Rxp Filter */
+  WDI_RxpFilterReqParamsType wdiRxpFilterParam;
+  
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_ConfigureRxpFilterReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_BeaconFilterInfoType
+  Beacon Filtering data structures passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   wpt_uint16    usCapabilityInfo;
+   wpt_uint16    usCapabilityMask;
+   wpt_uint16    usBeaconInterval;
+   wpt_uint16    usIeNum;
+}WDI_BeaconFilterInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_BeaconFilterReqParamsType
+  Beacon Filtering parameters passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Beacon Filtering Info Type, same as tBeaconFilterMsg */ 
+   WDI_BeaconFilterInfoType wdiBeaconFilterInfo; 
+   /*Beacon Filter(s) follow the "usIeNum" field, hence the array to ease the
+   copy of params from WDA to WDI */ 
+   wpt_uint8 aFilters[WDI_BEACON_FILTER_LEN];
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_BeaconFilterReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_RemBeaconFilterInfoType
+  Beacon Filtering data structures (to be reomoved) passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   wpt_uint8  ucIeCount;
+   wpt_uint8  ucRemIeId[1];
+}WDI_RemBeaconFilterInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_RemBeaconFilterReqParamsType
+  Beacon Filtering parameters (to be reomoved)passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Beacon Filtering Info Type, same as tBeaconFilterMsg */ 
+   WDI_RemBeaconFilterInfoType wdiBeaconFilterInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_RemBeaconFilterReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_RSSIThresholdsType
+  RSSI thresholds data structures (to be reomoved) passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+    wpt_int8    ucRssiThreshold1     : 8;
+    wpt_int8    ucRssiThreshold2     : 8;
+    wpt_int8    ucRssiThreshold3     : 8;
+    wpt_uint8   bRssiThres1PosNotify : 1;
+    wpt_uint8   bRssiThres1NegNotify : 1;
+    wpt_uint8   bRssiThres2PosNotify : 1;
+    wpt_uint8   bRssiThres2NegNotify : 1;
+    wpt_uint8   bRssiThres3PosNotify : 1;
+    wpt_uint8   bRssiThres3NegNotify : 1;
+    wpt_uint8   bReserved10          : 2;
+} WDI_RSSIThresholdsType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetRSSIThresholdsReqParamsType
+  RSSI thresholds parameters (to be reomoved)passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*RSSI thresholds Info Type, same as WDI_RSSIThresholds */ 
+   WDI_RSSIThresholdsType     wdiRSSIThresholdsInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_SetRSSIThresholdsReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_HostOffloadReqType
+  host offload info passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+#ifdef WLAN_NS_OFFLOAD
+typedef struct
+{
+   wpt_uint8 srcIPv6Addr[16];
+   wpt_uint8 selfIPv6Addr[16];
+   //Only support 2 possible Network Advertisement IPv6 address
+   wpt_uint8 targetIPv6Addr1[16];
+   wpt_uint8 targetIPv6Addr2[16];
+   wpt_uint8 selfMacAddr[6];
+   wpt_uint8 srcIPv6AddrValid : 1;
+   wpt_uint8 targetIPv6Addr1Valid : 1;
+   wpt_uint8 targetIPv6Addr2Valid : 1;
+} WDI_NSOffloadParams;
+#endif //WLAN_NS_OFFLOAD
+
+typedef struct
+{
+   wpt_uint8 ucOffloadType;
+   wpt_uint8 ucEnableOrDisable;
+   union
+   {
+       wpt_uint8 aHostIpv4Addr [4];
+       wpt_uint8 aHostIpv6Addr [16];
+   } params;
+} WDI_HostOffloadReqType;
+
+/*---------------------------------------------------------------------------
+  WDI_HostOffloadReqParamsType
+  host offload info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Host offload Info Type, same as tHalHostOffloadReq */ 
+   WDI_HostOffloadReqType     wdiHostOffloadInfo; 
+#ifdef WLAN_NS_OFFLOAD
+   WDI_NSOffloadParams        wdiNsOffloadParams;
+#endif //WLAN_NS_OFFLOAD
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_HostOffloadReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_KeepAliveReqType
+  Keep Alive info passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+    wpt_uint8  ucPacketType;
+    wpt_uint32 ucTimePeriod;
+    wpt_uint8  aHostIpv4Addr[4];
+    wpt_uint8  aDestIpv4Addr[4];
+    wpt_uint8  aDestMacAddr[6];
+} WDI_KeepAliveReqType;
+
+/*---------------------------------------------------------------------------
+  WDI_KeepAliveReqParamsType
+  Keep Alive passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /* Keep Alive Info Type, same as tHalKeepAliveReq */ 
+   WDI_KeepAliveReqType     wdiKeepAliveInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_KeepAliveReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_WowlAddBcPtrnInfoType
+  Wowl add ptrn info passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   wpt_uint8  ucPatternId;           // Pattern ID
+   // Pattern byte offset from beginning of the 802.11 packet to start of the
+   // wake-up pattern
+   wpt_uint8  ucPatternByteOffset;   
+   wpt_uint8  ucPatternSize;         // Non-Zero Pattern size
+   wpt_uint8  ucPattern[WDI_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
+   wpt_uint8  ucPatternMaskSize;     // Non-zero pattern mask size
+   wpt_uint8  ucPatternMask[WDI_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
+   wpt_uint8  ucPatternExt[WDI_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
+   wpt_uint8  ucPatternMaskExt[WDI_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
+} WDI_WowlAddBcPtrnInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_WowlAddBcPtrnReqParamsType
+  Wowl add ptrn info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Wowl add ptrn Info Type, same as tpSirWowlAddBcastPtrn */ 
+   WDI_WowlAddBcPtrnInfoType     wdiWowlAddBcPtrnInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_WowlAddBcPtrnReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_WowlDelBcPtrnInfoType
+  Wowl add ptrn info passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /* Pattern ID of the wakeup pattern to be deleted */
+   wpt_uint8  ucPatternId;
+} WDI_WowlDelBcPtrnInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_WowlDelBcPtrnReqParamsType
+  Wowl add ptrn info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Wowl delete ptrn Info Type, same as WDI_WowlDelBcastPtrn */ 
+   WDI_WowlDelBcPtrnInfoType     wdiWowlDelBcPtrnInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_WowlDelBcPtrnReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_WowlEnterInfoType
+  Wowl enter info passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /* Enables/disables magic packet filtering */
+   wpt_uint8   ucMagicPktEnable; 
+
+   /* Magic pattern */
+   wpt_macAddr magicPtrn;
+
+   /* Enables/disables packet pattern filtering in firmware. 
+      Enabling this flag enables broadcast pattern matching 
+      in Firmware. If unicast pattern matching is also desired,  
+      ucUcastPatternFilteringEnable flag must be set tot true 
+      as well 
+   */
+   wpt_uint8   ucPatternFilteringEnable;
+
+   /* Enables/disables unicast packet pattern filtering. 
+      This flag specifies whether we want to do pattern match 
+      on unicast packets as well and not just broadcast packets. 
+      This flag has no effect if the ucPatternFilteringEnable 
+      (main controlling flag) is set to false
+   */
+   wpt_uint8   ucUcastPatternFilteringEnable;                     
+
+   /* This configuration is valid only when magicPktEnable=1. 
+    * It requests hardware to wake up when it receives the 
+    * Channel Switch Action Frame.
+    */
+   wpt_uint8   ucWowChnlSwitchRcv;
+
+   /* This configuration is valid only when magicPktEnable=1. 
+    * It requests hardware to wake up when it receives the 
+    * Deauthentication Frame. 
+    */
+   wpt_uint8   ucWowDeauthRcv;
+
+   /* This configuration is valid only when magicPktEnable=1. 
+    * It requests hardware to wake up when it receives the 
+    * Disassociation Frame. 
+    */
+   wpt_uint8   ucWowDisassocRcv;
+
+   /* This configuration is valid only when magicPktEnable=1. 
+    * It requests hardware to wake up when it has missed
+    * consecutive beacons. This is a hardware register
+    * configuration (NOT a firmware configuration). 
+    */
+   wpt_uint8   ucWowMaxMissedBeacons;
+
+   /* This configuration is valid only when magicPktEnable=1. 
+    * This is a timeout value in units of microsec. It requests
+    * hardware to unconditionally wake up after it has stayed
+    * in WoWLAN mode for some time. Set 0 to disable this feature.      
+    */
+   wpt_uint8   ucWowMaxSleepUsec;
+
+#ifdef WLAN_WAKEUP_EVENTS
+    /* This configuration directs the WoW packet filtering to look for EAP-ID
+     * requests embedded in EAPOL frames and use this as a wake source.
+     */
+    wpt_uint8   ucWoWEAPIDRequestEnable;
+
+    /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
+     * requests and use this as a wake source.
+     */
+    wpt_uint8   ucWoWEAPOL4WayEnable;
+
+    /* This configuration allows a host wakeup on an network scan offload match.
+     */
+    wpt_uint8   ucWowNetScanOffloadMatch;
+
+    /* This configuration allows a host wakeup on any GTK rekeying error.
+     */
+    wpt_uint8   ucWowGTKRekeyError;
+
+    /* This configuration allows a host wakeup on BSS connection loss.
+     */
+    wpt_uint8   ucWoWBSSConnLoss;
+#endif // WLAN_WAKEUP_EVENTS
+} WDI_WowlEnterInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_WowlEnterReqParamsType
+  Wowl enter info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Wowl delete ptrn Info Type, same as WDI_SmeWowlEnterParams */ 
+   WDI_WowlEnterInfoType     wdiWowlEnterInfo; 
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_WowlEnterReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_ConfigureAppsCpuWakeupStateReqParamsType
+  Apps Cpu Wakeup State parameters passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /*Depicts the state of the Apps CPU */ 
+   wpt_boolean                bIsAppsAwake;
+   /*Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+}WDI_ConfigureAppsCpuWakeupStateReqParamsType;
+/*---------------------------------------------------------------------------
+  WDI_FlushAcReqinfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   // Message Type
+   wpt_uint16 usMesgType;
+
+   // Message Length
+   wpt_uint16 usMesgLen;
+
+   // Station Index. originates from HAL
+   wpt_uint8  ucSTAId;
+
+   // TID for which the transmit queue is being flushed 
+   wpt_uint8  ucTid;
+  
+}WDI_FlushAcReqinfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_FlushAcReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*AC Info */
+  WDI_FlushAcReqinfoType  wdiFlushAcInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_FlushAcReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_BtAmpEventinfoType
+      BT-AMP Event Structure
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  wpt_uint8 ucBtAmpEventType;
+
+} WDI_BtAmpEventinfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_BtAmpEventParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*BT AMP event Info */
+  WDI_BtAmpEventinfoType  wdiBtAmpEventInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_BtAmpEventParamsType;
+
+
+#ifdef WLAN_FEATURE_VOWIFI_11R
+/*---------------------------------------------------------------------------
+  WDI_AggrAddTSReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*STA Index*/
+  wpt_uint8         ucSTAIdx; 
+
+  /*Identifier for TSpec*/
+  wpt_uint8         ucTspecIdx;
+
+  /*Tspec IE negotiated OTA*/
+  WDI_TspecIEType   wdiTspecIE[WDI_MAX_NO_AC];
+
+  /*UAPSD delivery and trigger enabled flags */
+  wpt_uint8         ucUapsdFlags;
+
+  /*SI for each AC*/
+  wpt_uint8         ucServiceInterval[WDI_MAX_NO_AC];
+
+  /*Suspend Interval for each AC*/
+  wpt_uint8         ucSuspendInterval[WDI_MAX_NO_AC];
+
+  /*DI for each AC*/
+  wpt_uint8         ucDelayedInterval[WDI_MAX_NO_AC];
+
+}WDI_AggrAddTSReqInfoType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_AggrAddTSReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*TSpec Info */
+  WDI_AggrAddTSReqInfoType  wdiAggrTsInfo; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}WDI_AggrAddTSReqParamsType;
+
+#endif /* WLAN_FEATURE_VOWIFI_11R */
+
+#ifdef ANI_MANF_DIAG
+/*---------------------------------------------------------------------------
+  WDI_FTMCommandReqType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   /* FTM Command Body length */
+   wpt_uint32   bodyLength;
+   /* Actual FTM Command body */
+   void        *FTMCommandBody;
+}WDI_FTMCommandReqType;
+#endif /* ANI_MANF_DIAG */
+
+/*---------------------------------------------------------------------------
+  WDI_WlanSuspendInfoType
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  /* Mode of Mcast and Bcast filters configured */
+  wpt_uint8 ucConfiguredMcstBcstFilterSetting;
+}WDI_WlanSuspendInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_SuspendParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  WDI_WlanSuspendInfoType wdiSuspendParams;
+
+   /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+
+}WDI_SuspendParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_WlanResumeInfoType
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  /* Mode of Mcast and Bcast filters configured */
+  wpt_uint8 ucConfiguredMcstBcstFilterSetting;
+}WDI_WlanResumeInfoType;
+
+/*---------------------------------------------------------------------------
+  WDI_ResumeParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  WDI_WlanResumeInfoType wdiResumeParams;
+
+   /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+
+}WDI_ResumeParamsType;
+
+#ifdef WLAN_FEATURE_GTK_OFFLOAD
+/*---------------------------------------------------------------------------
+ * WDI_GTK_OFFLOAD_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef struct
+{
+  wpt_uint32     ulFlags;             /* optional flags */
+  wpt_uint8      aKCK[16];            /* Key confirmation key */ 
+  wpt_uint8      aKEK[16];            /* key encryption key */
+  wpt_uint64     ullKeyReplayCounter; /* replay counter */
+} WDI_GtkOffloadReqParams;
+
+typedef struct
+{
+   WDI_GtkOffloadReqParams gtkOffloadReqParams;
+
+   /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+} WDI_GtkOffloadReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WDI_GTK_OFFLOAD_RSP
+ *--------------------------------------------------------------------------*/
+typedef struct
+{
+    /* success or failure */
+    wpt_uint32   ulStatus;
+} WDI_GtkOffloadRspParams;
+
+typedef struct
+{
+   WDI_GtkOffloadRspParams gtkOffloadRspParams;
+
+   /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+} WDI_GtkOffloadRspMsg;
+
+
+/*---------------------------------------------------------------------------
+* WDI_GTK_OFFLOAD_GETINFO_REQ
+*--------------------------------------------------------------------------*/
+
+typedef struct
+{
+   /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+} WDI_GtkOffloadGetInfoReqMsg;
+
+/*---------------------------------------------------------------------------
+* WDI_GTK_OFFLOAD_GETINFO_RSP
+*--------------------------------------------------------------------------*/
+typedef struct
+{
+   wpt_uint32   ulStatus;             /* success or failure */
+   wpt_uint64   ullKeyReplayCounter;  /* current replay counter value */
+   wpt_uint32   ulTotalRekeyCount;    /* total rekey attempts */
+   wpt_uint32   ulGTKRekeyCount;      /* successful GTK rekeys */
+   wpt_uint32   ulIGTKRekeyCount;     /* successful iGTK rekeys */
+} WDI_GtkOffloadGetInfoRspParams;
+
+typedef struct
+{
+   WDI_GtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
+
+   /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+}  WDI_GtkOffloadGetInfoRspMsg;
+#endif // WLAN_FEATURE_GTK_OFFLOAD
+
+/*---------------------------------------------------------------------------
+  WDI_SuspendResumeRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Status of the response*/
+  WDI_Status   wdiStatus; 
+}WDI_SuspendResumeRspParamsType;
+
+
+#ifdef FEATURE_WLAN_SCAN_PNO
+
+/*Max number of channels for a given network supported by PNO*/
+#define WDI_PNO_MAX_NETW_CHANNELS  26
+
+/*The max number of programable networks for PNO*/
+#define WDI_PNO_MAX_SUPP_NETWORKS  16
+
+/*The max number of scan timers programable in Riva*/
+#define WDI_PNO_MAX_SCAN_TIMERS    10
+
+#define WDI_PNO_MAX_PROBE_SIZE    450
+
+
+/*---------------------------------------------------------------------------
+  WDI_AuthType
+---------------------------------------------------------------------------*/
+typedef enum 
+{
+    WDI_AUTH_TYPE_ANY     = 0, 
+
+    WDI_AUTH_TYPE_NONE,   
+    WDI_AUTH_TYPE_OPEN_SYSTEM,
+    WDI_AUTH_TYPE_SHARED_KEY,
+
+    WDI_AUTH_TYPE_WPA,
+    WDI_AUTH_TYPE_WPA_PSK,
+    WDI_AUTH_TYPE_WPA_NONE,
+
+    WDI_AUTH_TYPE_RSN,
+    WDI_AUTH_TYPE_RSN_PSK,
+    WDI_AUTH_TYPE_FT_RSN,
+    WDI_AUTH_TYPE_FT_RSN_PSK,
+    WDI_AUTH_TYPE_WAPI_WAI_CERTIFICATE,
+    WDI_AUTH_TYPE_WAPI_WAI_PSK,
+    WDI_AUTH_TYPE_MAX = 0xFFFFFFFF /*expanding the type to UINT32*/
+
+}WDI_AuthType;
+
+/*---------------------------------------------------------------------------
+  WDI_EdType
+---------------------------------------------------------------------------*/
+typedef enum
+{
+    WDI_ED_ANY        = 0, 
+    WDI_ED_NONE, 
+    WDI_ED_WEP40,
+    WDI_ED_WEP104,
+    WDI_ED_TKIP,
+    WDI_ED_CCMP,
+    WDI_ED_WPI,
+    WDI_ED_AES_128_CMAC,
+    WDI_ED_MAX = 0xFFFFFFFF /*expanding the type to UINT32*/
+} WDI_EdType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_PNOMode
+---------------------------------------------------------------------------*/
+typedef enum
+{
+  /*Network offload is to start immediately*/
+  WDI_PNO_MODE_IMMEDIATE,
+
+  /*Network offload is to start on host suspend*/
+  WDI_PNO_MODE_ON_SUSPEND,
+
+  /*Network offload is to start on host resume*/
+  WDI_PNO_MODE_ON_RESUME,
+  WDI_PNO_MODE_MAX = 0xFFFFFFFF
+} WDI_PNOMode;
+
+/* SSID broadcast  type */
+typedef enum 
+{
+  WDI_BCAST_UNKNOWN      = 0,
+  WDI_BCAST_NORMAL       = 1,
+  WDI_BCAST_HIDDEN       = 2,
+
+  WDI_BCAST_TYPE_MAX     = 0xFFFFFFFF
+} WDI_SSIDBcastType;
+
+/*---------------------------------------------------------------------------
+  WDI_NetworkType
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  /*The SSID of the preferred network*/
+  WDI_MacSSid  ssId;
+
+  /*The authentication method of the preferred network*/
+  WDI_AuthType wdiAuth; 
+
+  /*The encryption method of the preferred network*/
+  WDI_EdType   wdiEncryption; 
+
+  /*SSID broadcast type, normal, hidden or unknown*/
+  WDI_SSIDBcastType wdiBcastNetworkType;
+
+  /*channel count - 0 for all channels*/
+  wpt_uint8    ucChannelCount;
+
+  /*the actual channels*/
+  wpt_uint8    aChannels[WDI_PNO_MAX_NETW_CHANNELS];
+
+  /*rssi threshold that a network must meet to be considered, 0 - for any*/
+  wpt_uint8    rssiThreshold;
+} WDI_NetworkType; 
+
+
+/*---------------------------------------------------------------------------
+  WDI_ScanTimer
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  /*The timer value*/
+  wpt_uint32    uTimerValue; 
+
+  /*The amount of time we should be repeating the interval*/
+  wpt_uint32    uTimerRepeat; 
+} WDI_ScanTimer; 
+
+/*---------------------------------------------------------------------------
+  WDI_ScanTimersType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*The number of value pair intervals present in the array*/
+  wpt_uint8      ucScanTimersCount; 
+
+  /*The time-repeat value pairs*/
+  WDI_ScanTimer  aTimerValues[WDI_PNO_MAX_SCAN_TIMERS]; 
+} WDI_ScanTimersType;
+
+/*---------------------------------------------------------------------------
+  WDI_PNOScanReqType
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  /*Enable or disable PNO feature*/
+  wpt_uint8           bEnable;
+
+  /*PNO mode requested*/
+  WDI_PNOMode         wdiModePNO;
+
+  /*Network count*/
+  wpt_uint8           ucNetworksCount; 
+
+  /*The networks to look for*/
+  WDI_NetworkType     aNetworks[WDI_PNO_MAX_SUPP_NETWORKS];
+
+  /*Scan timer intervals*/
+  WDI_ScanTimersType  scanTimers; 
+
+  /*Probe template for 2.4GHz band*/
+  wpt_uint16          us24GProbeSize; 
+  wpt_uint8           a24GProbeTemplate[WDI_PNO_MAX_PROBE_SIZE];
+
+  /*Probe template for 5GHz band*/
+  wpt_uint16          us5GProbeSize; 
+  wpt_uint8           a5GProbeTemplate[WDI_PNO_MAX_PROBE_SIZE];
+} WDI_PNOScanReqType;
+
+/*---------------------------------------------------------------------------
+  WDI_PNOScanReqParamsType
+  PNO info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /* PNO Info Type, same as tPrefNetwListParams */ 
+   WDI_PNOScanReqType        wdiPNOScanInfo; 
+   /* Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /* The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+} WDI_PNOScanReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetRssiFilterReqParamsType
+  PNO info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /* RSSI Threshold */ 
+   wpt_uint8                  rssiThreshold; 
+   /* Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /* The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+} WDI_SetRssiFilterReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateScanParamsInfo
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+  /*Is 11d enabled*/
+  wpt_uint8    b11dEnabled; 
+
+  /*Was UMAc able to find the regulatory domain*/
+  wpt_uint8    b11dResolved;
+
+  /*Number of channel allowed in the regulatory domain*/
+  wpt_uint8    ucChannelCount; 
+
+  /*The actual channels allowed in the regulatory domain*/
+  wpt_uint8    aChannels[WDI_PNO_MAX_NETW_CHANNELS]; 
+
+  /*Passive min channel time*/
+  wpt_uint16   usPassiveMinChTime; 
+
+  /*Passive max channel time*/
+  wpt_uint16   usPassiveMaxChTime; 
+
+  /*Active min channel time*/
+  wpt_uint16   usActiveMinChTime; 
+
+  /*Active max channel time*/
+  wpt_uint16   usActiveMaxChTime; 
+
+  /*channel bonding info*/
+  wpt_uint8    cbState; 
+} WDI_UpdateScanParamsInfo;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateScanParamsInfoType
+  UpdateScanParams info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /* PNO Info Type, same as tUpdateScanParams */ 
+   WDI_UpdateScanParamsInfo   wdiUpdateScanParamsInfo; 
+   /* Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /* The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData; 
+} WDI_UpdateScanParamsInfoType;
+#endif // FEATURE_WLAN_SCAN_PNO
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateScanParamsInfo
+---------------------------------------------------------------------------*/
+typedef struct 
+{
+   /*  Ignore DTIM */
+  wpt_uint32 uIgnoreDTIM;
+
+  /*DTIM Period*/
+  wpt_uint32 uDTIMPeriod;
+
+  /* Listen Interval */
+  wpt_uint32 uListenInterval;
+
+  /* Broadcast Multicas Filter  */
+  wpt_uint32 uBcastMcastFilter;
+
+  /* Beacon Early Termination */
+  wpt_uint32 uEnableBET;
+
+  /* Beacon Early Termination Interval */
+  wpt_uint32 uBETInterval; 
+
+} WDI_SetPowerParamsInfo;
+
+/*---------------------------------------------------------------------------
+  WDI_UpdateScanParamsInfoType
+  UpdateScanParams info passed to WDI form WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+   /* Power params Info Type, same as tSetPowerParamsReq */ 
+   WDI_SetPowerParamsInfo     wdiSetPowerParamsInfo; 
+   /* Request status callback offered by UMAC - it is called if the current req
+   has returned PENDING as status; it delivers the status of sending the message
+   over the BUS */ 
+   WDI_ReqStatusCb            wdiReqStatusCB; 
+   /* The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */ 
+   void*                      pUserData;
+}WDI_SetPowerParamsReqParamsType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetTxPerTrackingConfType
+  Wowl add ptrn info passed to WDA form UMAC
+---------------------------------------------------------------------------*/
+typedef struct
+{
+   wpt_uint8  ucTxPerTrackingEnable;     /* 0: disable, 1:enable */
+   wpt_uint8  ucTxPerTrackingPeriod;        /* Check period, unit is sec. */
+   wpt_uint8  ucTxPerTrackingRatio;      /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
+   wpt_uint32 uTxPerTrackingWatermark;         /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
+} WDI_TxPerTrackingParamType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetTxPerTrackingReqParamsType
+  Tx PER Tracking parameters passed to WDI from WDA
+---------------------------------------------------------------------------*/
+typedef struct 
+{ 
+  /* Configurations for Tx PER Tracking */ 
+  WDI_TxPerTrackingParamType     wdiTxPerTrackingParam;
+  /*Request status callback offered by UMAC - it is called if the current req
+    has returned PENDING as status; it delivers the status of sending the message
+    over the BUS */ 
+  WDI_ReqStatusCb            wdiReqStatusCB; 
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */ 
+  void*                      pUserData; 
+}WDI_SetTxPerTrackingReqParamsType;
+
+#ifdef WLAN_FEATURE_PACKET_FILTERING
+/*---------------------------------------------------------------------------
+  Packet Filtering Parameters
+---------------------------------------------------------------------------*/
+
+#define    WDI_IPV4_ADDR_LEN                  4
+#define    WDI_MAC_ADDR_LEN                   6
+#define    WDI_MAX_FILTER_TEST_DATA_LEN       8
+#define    WDI_MAX_NUM_MULTICAST_ADDRESS    240
+#define    WDI_MAX_NUM_FILTERS               20 
+#define    WDI_MAX_NUM_TESTS_PER_FILTER      10 
+
+//
+// Receive Filter Parameters
+//
+typedef enum
+{
+  WDI_RCV_FILTER_TYPE_INVALID,
+  WDI_RCV_FILTER_TYPE_FILTER_PKT,
+  WDI_RCV_FILTER_TYPE_BUFFER_PKT,
+  WDI_RCV_FILTER_TYPE_MAX_ENUM_SIZE
+}WDI_ReceivePacketFilterType;
+
+typedef enum 
+{
+  WDI_FILTER_HDR_TYPE_INVALID,
+  WDI_FILTER_HDR_TYPE_MAC,
+  WDI_FILTER_HDR_TYPE_ARP,
+  WDI_FILTER_HDR_TYPE_IPV4,
+  WDI_FILTER_HDR_TYPE_IPV6,
+  WDI_FILTER_HDR_TYPE_UDP,
+  WDI_FILTER_HDR_TYPE_MAX
+}WDI_RcvPktFltProtocolType;
+
+typedef enum 
+{
+  WDI_FILTER_CMP_TYPE_INVALID,
+  WDI_FILTER_CMP_TYPE_EQUAL,
+  WDI_FILTER_CMP_TYPE_MASK_EQUAL,
+  WDI_FILTER_CMP_TYPE_NOT_EQUAL,
+  WDI_FILTER_CMP_TYPE_MASK_NOT_EQUAL,
+  WDI_FILTER_CMP_TYPE_MAX
+}WDI_RcvPktFltCmpFlagType;
+
+typedef struct
+{
+  WDI_RcvPktFltProtocolType          protocolLayer;
+  WDI_RcvPktFltCmpFlagType           cmpFlag;
+/* Length of the data to compare */
+  wpt_uint16                         dataLength; 
+/* from start of the respective frame header */  
+  wpt_uint8                          dataOffset; 
+  wpt_uint8                          reserved; /* Reserved field */
+/* Data to compare */
+  wpt_uint8                          compareData[WDI_MAX_FILTER_TEST_DATA_LEN];  
+/* Mask to be applied on the received packet data before compare */
+  wpt_uint8                          dataMask[WDI_MAX_FILTER_TEST_DATA_LEN];   
+}WDI_RcvPktFilterFieldParams;
+
+typedef struct
+{
+  wpt_uint8                       filterId; 
+  wpt_uint8                       filterType;
+  wpt_uint32                      numFieldParams;
+  wpt_uint32                      coalesceTime;
+  WDI_RcvPktFilterFieldParams     paramsData[1];
+}WDI_RcvPktFilterCfgType;
+
+typedef struct 
+{
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+    
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+    
+  // Variable length packet filter field params
+  WDI_RcvPktFilterCfgType wdiPktFilterCfg;
+} WDI_SetRcvPktFilterReqParamsType;
+
+//
+// Filter Packet Match Count Parameters
+//
+typedef struct
+{
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+    
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+} WDI_RcvFltPktMatchCntReqParamsType;
+
+typedef struct
+{
+  wpt_uint8    filterId;
+  wpt_uint32   matchCnt;
+} WDI_RcvFltPktMatchCnt;
+
+typedef struct
+{
+  /* Success or Failure */
+  wpt_uint32                 status;
+  WDI_RcvFltPktMatchCnt    filterMatchCnt[WDI_MAX_NUM_FILTERS];
+  
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+    
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+} WDI_RcvFltPktMatchRspParams;
+
+typedef struct
+{
+  WDI_RcvFltPktMatchRspParams fltPktMatchRspParams;
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+    
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+} WDI_RcvFltPktMatchCntRspParamsType;
+
+
+//
+// Receive Filter Clear Parameters
+//
+typedef struct
+{
+  wpt_uint32   status;  /* only valid for response message */
+  wpt_uint8    filterId;
+}WDI_RcvFltPktClearParam;
+
+typedef struct
+{
+  WDI_RcvFltPktClearParam     filterClearParam;
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+    
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+} WDI_RcvFltPktClearReqParamsType;
+
+//
+// Multicast Address List Parameters
+//
+typedef struct 
+{
+  wpt_uint32     ulMulticastAddrCnt;
+  wpt_macAddr    multicastAddr[WDI_MAX_NUM_MULTICAST_ADDRESS];
+} WDI_RcvFltMcAddrListType;
+
+typedef struct
+{
+  WDI_RcvFltMcAddrListType         mcAddrList;
+  /*Request status callback offered by UMAC - it is called if the current
+    req has returned PENDING as status; it delivers the status of sending
+    the message over the BUS */
+  WDI_ReqStatusCb   wdiReqStatusCB; 
+    
+  /*The user data passed in by UMAC, it will be sent back when the above
+    function pointer will be called */
+  void*             pUserData;
+} WDI_RcvFltPktSetMcListReqParamsType;
+#endif // WLAN_FEATURE_PACKET_FILTERING
+
+/*---------------------------------------------------------------------------
+  WDI_HALDumpCmdReqInfoType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*command*/
+  wpt_uint32 command;
+
+  /*Arguments*/
+  wpt_uint32 argument1;
+  wpt_uint32 argument2;
+  wpt_uint32 argument3;
+  wpt_uint32 argument4;
+
+}WDI_HALDumpCmdReqInfoType;
+
+/*---------------------------------------------------------------------------
+ WDI_HALDumpCmdReqParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*NV Blob Info*/
+  WDI_HALDumpCmdReqInfoType  wdiHALDumpCmdInfoType; 
+
+  /*Request status callback offered by UMAC - it is called if the current
+   req has returned PENDING as status; it delivers the status of sending
+   the message over the BUS */
+  WDI_ReqStatusCb       wdiReqStatusCB; 
+
+  /*The user data passed in by UMAC, it will be sent back when the above
+   function pointer will be called */
+  void*                 pUserData;
+  
+}WDI_HALDumpCmdReqParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_HALDumpCmdRspParamsType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  /*Result of the operation*/
+  WDI_Status       wdiStatus;
+
+  /* length of the buffer */
+  wpt_uint16       usBufferLen;
+    
+  /* Buffer */
+  wpt_uint8       *pBuffer;
+}WDI_HALDumpCmdRspParamsType;
+
+
+/*---------------------------------------------------------------------------
+  WDI_SetTmLevelReqType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  wpt_uint16       tmMode;
+  wpt_uint16       tmLevel;
+  void*            pUserData;
+}WDI_SetTmLevelReqType;
+
+/*---------------------------------------------------------------------------
+  WDI_SetTmLevelRspType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+  WDI_Status       wdiStatus;
+  void*            pUserData;
+}WDI_SetTmLevelRspType;
+
+/*----------------------------------------------------------------------------
+ *   WDI callback types
+ *--------------------------------------------------------------------------*/
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Start response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiRspParams:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void (*WDI_StartRspCb)(WDI_StartRspParamsType*   pwdiRspParams,
+                               void*                     pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Stop response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+ 
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void (*WDI_StopRspCb)(WDI_Status   wdiStatus,
+                              void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received an Init Scan response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_InitScanRspCb)(WDI_Status   wdiStatus,
+                                   void*        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a StartScan response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiParams:  response params received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_StartScanRspCb)(WDI_StartScanRspParamsType*  wdiParams,
+                                    void*                        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a End Scan response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_EndScanRspCb)(WDI_Status   wdiStatus,
+                                  void*        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Finish Scan response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_FinishScanRspCb)(WDI_Status   wdiStatus,
+                                     void*        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Join response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+ 
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_JoinRspCb)(WDI_Status   wdiStatus,
+                               void*        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Config BSS response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiConfigBSSRsp:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ConfigBSSRspCb)(
+                            WDI_ConfigBSSRspParamsType*   pwdiConfigBSSRsp,
+                            void*                        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Del BSS response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiDelBSSRsp:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_DelBSSRspCb)(WDI_DelBSSRspParamsType*  pwdiDelBSSRsp,
+                                 void*                     pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Post Assoc response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiRspParams:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_PostAssocRspCb)(
+                               WDI_PostAssocRspParamsType*  pwdiPostAssocRsp,
+                               void*                        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Del STA response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiDelSTARsp:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_DelSTARspCb)(WDI_DelSTARspParamsType*   pwdiDelSTARsp,
+                                 void*                      pUserData);
+
+
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Set BSS Key response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetBSSKeyRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Remove BSS Key
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_RemoveBSSKeyRspCb)(WDI_Status   wdiStatus,
+                                       void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Set STA Key response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetSTAKeyRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+ 
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Remove STA Key
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_RemoveSTAKeyRspCb)(WDI_Status   wdiStatus,
+                                       void*        pUserData);
+
+
+#ifdef FEATURE_WLAN_CCX 
+/*---------------------------------------------------------------------------
+   WDI_TsmRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a TSM Stats response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    pTSMStats:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_TsmRspCb)(WDI_TSMStatsRspParamsType *pTSMStats,
+                                void*        pUserData);
+#endif
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Add TS response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_AddTsRspCb)(WDI_Status   wdiStatus,
+                                void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Del TS response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_DelTsRspCb)(WDI_Status   wdiStatus,
+                                void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received an Update EDCA Params
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+ 
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_UpdateEDCAParamsRspCb)(WDI_Status   wdiStatus,
+                                           void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Add BA response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_AddBASessionRspCb)(
+                            WDI_AddBASessionRspParamsType* wdiAddBASessionRsp,
+                            void*                         pUserData);
+
+ 
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Del BA response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+    
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_DelBARspCb)(WDI_Status   wdiStatus,
+                                void*        pUserData);
+
+ 
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Switch Ch response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiRspParams:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SwitchChRspCb)(WDI_SwitchCHRspParamsType*  pwdiSwitchChRsp,
+                                   void*                       pUserData);
+
+ 
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Config STA response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiRspParams:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ConfigSTARspCb)(
+                            WDI_ConfigSTARspParamsType*  pwdiConfigSTARsp,
+                            void*                        pUserData);
+
+ 
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Set Link State
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiRspParams:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetLinkStateRspCb)( WDI_Status   wdiStatus,
+                                        void*        pUserData);
+
+ 
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Get Stats response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiRspParams:  response parameters received from HAL
+    pUserData:      user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_GetStatsRspCb)(WDI_GetStatsRspParamsType*  pwdiGetStatsRsp,
+                                   void*                       pUserData);
+
+ 
+/*---------------------------------------------------------------------------
+   WDI_StartRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Update Cfg response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_UpdateCfgRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_AddBARspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a ADD BA response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_AddBARspCb)(WDI_AddBARspinfoType*   wdiAddBARsp,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_TriggerBARspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a ADD BA response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_TriggerBARspCb)(WDI_TriggerBARspParamsType*   wdiTriggerBARsp,
+                                    void*        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_UpdateBeaconParamsRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Update Beacon Params response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_UpdateBeaconParamsRspCb)(WDI_Status   wdiStatus,
+                                void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_SendBeaconParamsRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Send Beacon Params response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SendBeaconParamsRspCb)(WDI_Status   wdiStatus,
+                                void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDA_SetMaxTxPowerRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a set max Tx Power response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void (*WDA_SetMaxTxPowerRspCb)(WDI_SetMaxTxPowerRspMsg *wdiSetMaxTxPowerRsp,
+                                             void* pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_UpdateProbeRspTemplateRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Probe RSP Template
+   Update  response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+    
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_UpdateProbeRspTemplateRspCb)(WDI_Status   wdiStatus,
+                                               void*        pUserData);
+
+#ifdef WLAN_FEATURE_P2P
+/*---------------------------------------------------------------------------
+   WDI_SetP2PGONOAReqParamsRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a P2P GO NOA Params response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetP2PGONOAReqParamsRspCb)(WDI_Status   wdiStatus,
+                                void*        pUserData);
+#endif
+
+
+/*---------------------------------------------------------------------------
+   WDI_SetPwrSaveCfgCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a set Power Save CFG
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetPwrSaveCfgCb)(WDI_Status   wdiStatus,
+                                     void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_SetUapsdAcParamsCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a set UAPSD params
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetUapsdAcParamsCb)(WDI_Status   wdiStatus,
+                                        void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_EnterImpsRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Enter IMPS response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_EnterImpsRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_ExitImpsRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Exit IMPS response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ExitImpsRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_EnterBmpsRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a enter BMPS response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_EnterBmpsRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_ExitBmpsRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a exit BMPS response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ExitBmpsRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_EnterUapsdRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a enter UAPSD response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_EnterUapsdRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_ExitUapsdRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a exit UAPSD response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ExitUapsdRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_UpdateUapsdParamsCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a update UAPSD params
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_UpdateUapsdParamsCb)(WDI_Status   wdiStatus,
+                                        void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_ConfigureRxpFilterCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a config RXP filter
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ConfigureRxpFilterCb)(WDI_Status   wdiStatus,
+                                          void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_SetBeaconFilterCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a set beacon filter
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetBeaconFilterCb)(WDI_Status   wdiStatus,
+                                       void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_RemBeaconFilterCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a remove beacon filter
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_RemBeaconFilterCb)(WDI_Status   wdiStatus,
+                                       void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_SetRSSIThresholdsCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a set RSSI thresholds
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetRSSIThresholdsCb)(WDI_Status   wdiStatus,
+                                         void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_HostOffloadCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a host offload
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_HostOffloadCb)(WDI_Status   wdiStatus,
+                                   void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_KeepAliveCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Keep Alive
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_KeepAliveCb)(WDI_Status   wdiStatus,
+                                   void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_WowlAddBcPtrnCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Wowl add Bcast ptrn
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_WowlAddBcPtrnCb)(WDI_Status   wdiStatus,
+                                     void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_WowlDelBcPtrnCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Wowl delete Bcast ptrn
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_WowlDelBcPtrnCb)(WDI_Status   wdiStatus,
+                                     void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_WowlEnterReqCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Wowl enter
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_WowlEnterReqCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_WowlExitReqCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Wowl exit
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_WowlExitReqCb)(WDI_Status   wdiStatus,
+                                   void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_ConfigureAppsCpuWakeupStateCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a config Apps Cpu Wakeup
+   State response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ConfigureAppsCpuWakeupStateCb)(WDI_Status   wdiStatus,
+                                                   void*        pUserData);
+/*---------------------------------------------------------------------------
+   WDI_NvDownloadRspCb
+ 
+   DESCRIPTION
+ 
+   This callback is invoked by DAL when it has received a NV Download response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+   IN
+   wdiStatus:response status received from HAL
+    pUserData:user data  
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_NvDownloadRspCb)(WDI_NvDownloadRspInfoType* wdiNvDownloadRsp,
+                                          void*  pUserData);
+/*---------------------------------------------------------------------------
+   WDI_FlushAcRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Flush AC response from
+   the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+    
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_FlushAcRspCb)(WDI_Status   wdiStatus,
+                                  void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_BtAmpEventRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Bt AMP event response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_BtAmpEventRspCb)(WDI_Status   wdiStatus,
+                                     void*        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_HostResumeEventRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Bt AMP event response
+   from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_HostResumeEventRspCb)(
+                        WDI_SuspendResumeRspParamsType   *resumeRspParams,
+                        void*        pUserData);
+
+
+#ifdef WLAN_FEATURE_VOWIFI_11R
+/*---------------------------------------------------------------------------
+   WDI_AggrAddTsRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Aggregated Add TS
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_AggrAddTsRspCb)(WDI_Status   wdiStatus,
+                                    void*        pUserData);
+#endif /* WLAN_FEATURE_VOWIFI_11R */
+
+#ifdef ANI_MANF_DIAG
+/*---------------------------------------------------------------------------
+   WDI_FTMCommandRspCb
+ 
+   DESCRIPTION   
+ 
+   FTM Command response CB
+ 
+   PARAMETERS 
+
+    IN
+    ftmCMDRspdata:  FTM response data from HAL
+    pUserData:  user data  
+    
+  
+  RETURN VALUE 
+    NONE
+---------------------------------------------------------------------------*/
+typedef void (*WDI_FTMCommandRspCb)(void *ftmCMDRspdata,
+                                    void *pUserData);
+#endif /* ANI_MANF_DIAG */
+
+/*---------------------------------------------------------------------------
+   WDI_AddSTASelfParamsRspCb 
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Add Sta Self Params
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiAddSelfSTARsp:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_AddSTASelfParamsRspCb)(
+                    WDI_AddSTASelfRspParamsType* pwdiAddSelfSTARsp,
+                    void*                        pUserData);
+
+
+/*---------------------------------------------------------------------------
+   WDI_DelSTASelfRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a host offload
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_DelSTASelfRspCb)
+(
+WDI_DelSTASelfRspParamsType*     wdiDelStaSelfRspParams,
+void*        pUserData
+);
+
+#ifdef FEATURE_WLAN_SCAN_PNO
+/*---------------------------------------------------------------------------
+   WDI_PNOScanCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Set PNO
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_PNOScanCb)(WDI_Status  wdiStatus,
+                                void*       pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_PNOScanCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Set PNO
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_RssiFilterCb)(WDI_Status  wdiStatus,
+                                void*       pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_UpdateScanParamsCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Update Scan Params
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_UpdateScanParamsCb)(WDI_Status  wdiStatus,
+                                        void*       pUserData);
+#endif // FEATURE_WLAN_SCAN_PNO
+
+/*---------------------------------------------------------------------------
+   WDI_SetTxPerTrackingRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Tx PER Tracking
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetTxPerTrackingRspCb)(WDI_Status   wdiStatus,
+                                           void*        pUserData);
+                                     
+#ifdef WLAN_FEATURE_PACKET_FILTERING
+/*---------------------------------------------------------------------------
+   WDI_8023MulticastListCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a 8023 Multicast List
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_8023MulticastListCb)(WDI_Status   wdiStatus,
+                                         void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_ReceiveFilterSetFilterCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Receive Filter Set Filter
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ReceiveFilterSetFilterCb)(WDI_Status   wdiStatus,
+                                              void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_FilterMatchCountCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Do PC Filter Match Count
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_FilterMatchCountCb)(WDI_Status   wdiStatus,
+                                        void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_ReceiveFilterClearFilterCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Receive Filter Clear Filter
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_ReceiveFilterClearFilterCb)(WDI_Status   wdiStatus,
+                                                void*        pUserData);
+#endif // WLAN_FEATURE_PACKET_FILTERING
+
+/*---------------------------------------------------------------------------
+   WDI_HALDumpCmdRspCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a HAL DUMP Command 
+response from
+   the HAL layer.
+ 
+   PARAMETERS 
+
+    IN
+    wdiHalDumpCmdRsp:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_HALDumpCmdRspCb)(WDI_HALDumpCmdRspParamsType* wdiHalDumpCmdRsp,
+                                                                       void*  pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_SetPowerParamsCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Set Power Param
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetPowerParamsCb)(WDI_Status  wdiStatus,
+                                      void*       pUserData);
+
+#ifdef WLAN_FEATURE_GTK_OFFLOAD
+/*---------------------------------------------------------------------------
+   WDI_GtkOffloadCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a GTK offload
+   response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_GtkOffloadCb)(WDI_Status   wdiStatus,
+                                  void*        pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_GtkOffloadGetInfoCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a GTK offload
+   information response from the underlying device.
+ 
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_GtkOffloadGetInfoCb)(WDI_Status   wdiStatus,
+                                         void*        pUserData);
+#endif // WLAN_FEATURE_GTK_OFFLOAD
+
+/*---------------------------------------------------------------------------
+   WDI_SetTmLevelCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a Set New TM Level
+   done response from the underlying device.
+
+   PARAMETERS 
+
+    IN
+    wdiStatus:  response status received from HAL
+    pUserData:  user data  
+
+    
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_SetTmLevelCb)(WDI_Status  wdiStatus,
+                                  void*       pUserData);
+
+/*---------------------------------------------------------------------------
+   WDI_featureCapsExchangeCb
+ 
+   DESCRIPTION   
+ 
+   This callback is invoked by DAL when it has received a HAL Feature Capbility 
+   Exchange Response the HAL layer. This callback is put to mantain code
+   similarity and is not being used right now.
+ 
+   PARAMETERS 
+
+   IN
+   wdiFeatCapRspParams:  response parameters received from HAL
+   pUserData:  user data     
+  
+   RETURN VALUE 
+   The result code associated with performing the operation
+---------------------------------------------------------------------------*/
+typedef void  (*WDI_featureCapsExchangeCb)(void* wdiFeatCapRspParams,
+                                                void*        pUserData);
+
+/*========================================================================
+ *     Function Declarations and Documentation
+ ==========================================================================*/
+
+/*======================================================================== 
+ 
+                             INITIALIZATION APIs
+ 
+==========================================================================*/
+
+/**
+ @brief WDI_Init is used to initialize the DAL.
+ 
+ DAL will allocate all the resources it needs. It will open PAL, it will also
+ open both the data and the control transport which in their turn will open
+ DXE/SMD or any other drivers that they need. 
+ 
+ @param pOSContext: pointer to the OS context provided by the UMAC
+                    will be passed on to PAL on Open
+        ppWDIGlobalCtx: output pointer of Global Context
+        pWdiDevCapability: output pointer of device capability
+
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_Init
+( 
+  void*                      pOSContext,
+  void**                     ppWDIGlobalCtx,
+  WDI_DeviceCapabilityType*  pWdiDevCapability,
+  unsigned int               driverType
+);
+
+/**
+ @brief WDI_Start will be called when the upper MAC is ready to
+        commence operation with the WLAN Device. Upon the call
+        of this API the WLAN DAL will pack and send a HAL Start
+        message to the lower RIVA sub-system if the SMD channel
+        has been fully opened and the RIVA subsystem is up.
+
+         If the RIVA sub-system is not yet up and running DAL
+         will queue the request for Open and will wait for the
+         SMD notification before attempting to send down the
+         message to HAL. 
+
+ WDI_Init must have been called.
+
+ @param wdiStartParams: the start parameters as specified by 
+                      the Device Interface
+  
+        wdiStartRspCb: callback for passing back the response of
+        the start operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_Start
+(
+  WDI_StartReqParamsType*  pwdiStartParams,
+  WDI_StartRspCb           wdiStartRspCb,
+  void*                    pUserData
+);
+
+
+/**
+ @brief WDI_Stop will be called when the upper MAC is ready to
+        stop any operation with the WLAN Device. Upon the call
+        of this API the WLAN DAL will pack and send a HAL Stop
+        message to the lower RIVA sub-system if the DAL Core is
+        in started state.
+
+         In state BUSY this request will be queued.
+  
+         Request will not be accepted in any other state. 
+
+ WDI_Start must have been called.
+
+ @param wdiStopParams: the stop parameters as specified by 
+                      the Device Interface
+  
+        wdiStopRspCb: callback for passing back the response of
+        the stop operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_Stop
+(
+  WDI_StopReqParamsType*  pwdiStopParams,
+  WDI_StopRspCb           wdiStopRspCb,
+  void*                   pUserData
+);
+
+/**
+ @brief WDI_Close will be called when the upper MAC no longer 
+        needs to interract with DAL. DAL will free its control
+        block.
+  
+        It is only accepted in state STOPPED.  
+
+ WDI_Stop must have been called.
+
+ @param none
+  
+ @see WDI_Stop
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_Close
+(
+  void
+);
+
+
+/**
+ @brief  WDI_Shutdown will be called during 'SSR shutdown' operation.
+         This will do most of the WDI stop & close
+         operations without doing any handshake with Riva
+
+         This will also make sure that the control transport
+         will NOT be closed.
+
+         This request will not be queued.
+
+
+ WDI_Start must have been called.
+
+ @param  closeTransport:  Close control channel if this is set
+
+ @return Result of the function call
+*/
+WDI_Status
+WDI_Shutdown
+(
+ wpt_boolean closeTransport
+);
+
+/*======================================================================== 
+ 
+                             SCAN APIs
+ 
+==========================================================================*/
+
+/**
+ @brief WDI_InitScanReq will be called when the upper MAC wants 
+        the WLAN Device to get ready for a scan procedure. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL Init Scan request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_Start must have been called.
+
+ @param wdiInitScanParams: the init scan parameters as specified
+                      by the Device Interface
+  
+        wdiInitScanRspCb: callback for passing back the response
+        of the init scan operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_InitScanReq
+(
+  WDI_InitScanReqParamsType*  pwdiInitScanParams,
+  WDI_InitScanRspCb           wdiInitScanRspCb,
+  void*                       pUserData
+);
+
+/**
+ @brief WDI_StartScanReq will be called when the upper MAC 
+        wishes to change the Scan channel on the WLAN Device.
+        Upon the call of this API the WLAN DAL will pack and
+        send a HAL Start Scan request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_InitScanReq must have been called.
+
+ @param wdiStartScanParams: the start scan parameters as 
+                      specified by the Device Interface
+  
+        wdiStartScanRspCb: callback for passing back the
+        response of the start scan operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_InitScanReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_StartScanReq
+(
+  WDI_StartScanReqParamsType*  pwdiStartScanParams,
+  WDI_StartScanRspCb           wdiStartScanRspCb,
+  void*                        pUserData
+);
+
+
+/**
+ @brief WDI_EndScanReq will be called when the upper MAC is 
+        wants to end scanning for a particular channel that it
+        had set before by calling Scan Start on the WLAN Device.
+        Upon the call of this API the WLAN DAL will pack and
+        send a HAL End Scan request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_StartScanReq must have been called.
+
+ @param wdiEndScanParams: the end scan parameters as specified 
+                      by the Device Interface
+  
+        wdiEndScanRspCb: callback for passing back the response
+        of the end scan operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_StartScanReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_EndScanReq
+(
+  WDI_EndScanReqParamsType* pwdiEndScanParams,
+  WDI_EndScanRspCb          wdiEndScanRspCb,
+  void*                     pUserData
+);
+
+
+/**
+ @brief WDI_FinishScanReq will be called when the upper MAC has 
+        completed the scan process on the WLAN Device. Upon the
+        call of this API the WLAN DAL will pack and send a HAL
+        Finish Scan Request request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_InitScanReq must have been called.
+
+ @param wdiFinishScanParams: the finish scan  parameters as 
+                      specified by the Device Interface
+  
+        wdiFinishScanRspCb: callback for passing back the
+        response of the finish scan operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_InitScanReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_FinishScanReq
+(
+  WDI_FinishScanReqParamsType* pwdiFinishScanParams,
+  WDI_FinishScanRspCb          wdiFinishScanRspCb,
+  void*                        pUserData
+);
+
+/*======================================================================== 
+ 
+                          ASSOCIATION APIs
+ 
+==========================================================================*/
+
+/**
+ @brief WDI_JoinReq will be called when the upper MAC is ready 
+        to start an association procedure to a BSS. Upon the
+        call of this API the WLAN DAL will pack and send a HAL
+        Join request message to the lower RIVA sub-system if
+        DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_Start must have been called.
+
+ @param wdiJoinParams: the join parameters as specified by 
+                      the Device Interface
+  
+        wdiJoinRspCb: callback for passing back the response of
+        the join operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_JoinReq
+(
+  WDI_JoinReqParamsType* pwdiJoinParams,
+  WDI_JoinRspCb          wdiJoinRspCb,
+  void*                  pUserData
+);
+
+/**
+ @brief WDI_ConfigBSSReq will be called when the upper MAC 
+        wishes to configure the newly acquired or in process of
+        being acquired BSS to the HW . Upon the call of this API
+        the WLAN DAL will pack and send a HAL Config BSS request
+        message to the lower RIVA sub-system if DAL is in state
+        STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_JoinReq must have been called.
+
+ @param wdiConfigBSSParams: the config BSS parameters as 
+                      specified by the Device Interface
+  
+        wdiConfigBSSRspCb: callback for passing back the
+        response of the config BSS operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_JoinReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ConfigBSSReq
+(
+  WDI_ConfigBSSReqParamsType* pwdiConfigBSSParams,
+  WDI_ConfigBSSRspCb          wdiConfigBSSRspCb,
+  void*                       pUserData
+);
+
+/**
+ @brief WDI_DelBSSReq will be called when the upper MAC is 
+        dissasociating from the BSS and wishes to notify HW.
+        Upon the call of this API the WLAN DAL will pack and
+        send a HAL Del BSS request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_ConfigBSSReq or WDI_PostAssocReq must have been called.
+
+ @param wdiDelBSSParams: the del BSS parameters as specified by 
+                      the Device Interface
+  
+        wdiDelBSSRspCb: callback for passing back the response
+        of the del bss operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_ConfigBSSReq, WDI_PostAssocReq 
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_DelBSSReq
+(
+  WDI_DelBSSReqParamsType* pwdiDelBSSParams,
+  WDI_DelBSSRspCb          wdiDelBSSRspCb,
+  void*                    pUserData
+);
+
+/**
+ @brief WDI_PostAssocReq will be called when the upper MAC has 
+        associated to a BSS and wishes to configure HW for
+        associated state. Upon the call of this API the WLAN DAL
+        will pack and send a HAL Post Assoc request message to
+        the lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_JoinReq must have been called.
+
+ @param wdiPostAssocReqParams: the assoc parameters as specified
+                      by the Device Interface
+  
+        wdiPostAssocRspCb: callback for passing back the
+        response of the post assoc operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_JoinReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_PostAssocReq
+(
+  WDI_PostAssocReqParamsType* pwdiPostAssocReqParams,
+  WDI_PostAssocRspCb          wdiPostAssocRspCb,
+  void*                       pUserData
+);
+
+/**
+ @brief WDI_DelSTAReq will be called when the upper MAC when an 
+        association with another STA has ended and the station
+        must be deleted from HW. Upon the call of this API the
+        WLAN DAL will pack and send a HAL Del STA request
+        message to the lower RIVA sub-system if DAL is in state
+        STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiDelSTAParams: the Del STA parameters as specified by 
+                      the Device Interface
+  
+        wdiDelSTARspCb: callback for passing back the response
+        of the del STA operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_DelSTAReq
+(
+  WDI_DelSTAReqParamsType* pwdiDelSTAParams,
+  WDI_DelSTARspCb          wdiDelSTARspCb,
+  void*                    pUserData
+);
+
+/*======================================================================== 
+ 
+                             SECURITY APIs
+ 
+==========================================================================*/
+
+/**
+ @brief WDI_SetBSSKeyReq will be called when the upper MAC ito 
+        install a BSS encryption key on the HW. Upon the call of
+        this API the WLAN DAL will pack and send a HAL Start
+        request message to the lower RIVA sub-system if DAL is
+        in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiSetBSSKeyParams: the BSS Key set parameters as 
+                      specified by the Device Interface
+  
+        wdiSetBSSKeyRspCb: callback for passing back the
+        response of the set BSS Key operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetBSSKeyReq
+(
+  WDI_SetBSSKeyReqParamsType* pwdiSetBSSKeyParams,
+  WDI_SetBSSKeyRspCb          wdiSetBSSKeyRspCb,
+  void*                       pUserData
+);
+
+
+/**
+ @brief WDI_RemoveBSSKeyReq will be called when the upper MAC to
+        uninstall a BSS key from HW. Upon the call of this API
+        the WLAN DAL will pack and send a HAL Remove BSS Key
+        request message to the lower RIVA sub-system if DAL is
+        in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_SetBSSKeyReq must have been called.
+
+ @param wdiRemoveBSSKeyParams: the remove BSS key parameters as 
+                      specified by the Device Interface
+  
+        wdiRemoveBSSKeyRspCb: callback for passing back the
+        response of the remove BSS key operation received from
+        the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_SetBSSKeyReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_RemoveBSSKeyReq
+(
+  WDI_RemoveBSSKeyReqParamsType* pwdiRemoveBSSKeyParams,
+  WDI_RemoveBSSKeyRspCb          wdiRemoveBSSKeyRspCb,
+  void*                          pUserData
+);
+
+
+/**
+ @brief WDI_SetSTAKeyReq will be called when the upper MAC is 
+        ready to install a STA(ast) encryption key in HW. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL Set STA Key request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiSetSTAKeyParams: the set STA key parameters as 
+                      specified by the Device Interface
+  
+        wdiSetSTAKeyRspCb: callback for passing back the
+        response of the set STA key operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetSTAKeyReq
+(
+  WDI_SetSTAKeyReqParamsType* pwdiSetSTAKeyParams,
+  WDI_SetSTAKeyRspCb          wdiSetSTAKeyRspCb,
+  void*                       pUserData
+);
+
+
+/**
+ @brief WDI_RemoveSTAKeyReq will be called when the upper MAC 
+        wants to unistall a previously set STA key in HW. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL Remove STA Key request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_SetSTAKeyReq must have been called.
+
+ @param wdiRemoveSTAKeyParams: the remove STA key parameters as 
+                      specified by the Device Interface
+  
+        wdiRemoveSTAKeyRspCb: callback for passing back the
+        response of the remove STA key operation received from
+        the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_SetSTAKeyReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_RemoveSTAKeyReq
+(
+  WDI_RemoveSTAKeyReqParamsType* pwdiRemoveSTAKeyParams,
+  WDI_RemoveSTAKeyRspCb          wdiRemoveSTAKeyRspCb,
+  void*                          pUserData
+);
+
+/**
+ @brief WDI_SetSTABcastKeyReq will be called when the upper MAC 
+        wants to install a STA Bcast encryption key on the HW.
+        Upon the call of this API the WLAN DAL will pack and
+        send a HAL Start request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiSetSTABcastKeyParams: the BSS Key set parameters as 
+                      specified by the Device Interface
+  
+        wdiSetSTABcastKeyRspCb: callback for passing back the
+        response of the set BSS Key operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetSTABcastKeyReq
+(
+  WDI_SetSTAKeyReqParamsType* pwdiSetSTABcastKeyParams,
+  WDI_SetSTAKeyRspCb          wdiSetSTABcastKeyRspCb,
+  void*                       pUserData
+);
+
+
+/**
+ @brief WDI_RemoveSTABcastKeyReq will be called when the upper 
+        MAC to uninstall a STA Bcast key from HW. Upon the call
+        of this API the WLAN DAL will pack and send a HAL Remove
+        STA Bcast Key request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_SetSTABcastKeyReq must have been called.
+
+ @param pwdiRemoveSTABcastKeyParams: the remove BSS key 
+                      parameters as specified by the Device
+                      Interface
+  
+        wdiRemoveSTABcastKeyRspCb: callback for passing back the
+        response of the remove STA Bcast key operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_SetSTABcastKeyReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_RemoveSTABcastKeyReq
+(
+  WDI_RemoveSTAKeyReqParamsType* pwdiRemoveSTABcastKeyParams,
+  WDI_RemoveSTAKeyRspCb          wdiRemoveSTABcastKeyRspCb,
+  void*                          pUserData
+);
+
+/**
+ @brief WDI_SetMaxTxPowerReq will be called when the upper 
+        MAC wants to set Max Tx Power to HW. Upon the
+        call of this API the WLAN DAL will pack and send a HAL
+        Remove STA Bcast Key request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_SetSTABcastKeyReq must have been called.
+
+ @param pwdiRemoveSTABcastKeyParams: the remove BSS key 
+                      parameters as specified by the Device
+                      Interface
+  
+        wdiRemoveSTABcastKeyRspCb: callback for passing back the
+        response of the remove STA Bcast key operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_SetMaxTxPowerReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetMaxTxPowerReq
+(
+  WDI_SetMaxTxPowerParamsType*   pwdiSetMaxTxPowerParams,
+  WDA_SetMaxTxPowerRspCb         wdiReqStatusCb,
+  void*                          pUserData
+);
+
+#ifdef FEATURE_WLAN_CCX
+/**
+ @brief WDI_TSMStatsReq will be called by the upper MAC to fetch 
+        Traffic Stream metrics. 
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ @param wdiAddTsReqParams: the add TS parameters as specified by
+                      the Device Interface
+  
+        wdiAddTsRspCb: callback for passing back the response of
+        the add TS operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_TSMStatsReq
+(
+  WDI_TSMStatsReqParamsType* pwdiTsmStatsReqParams,
+  WDI_TsmRspCb          wdiTsmStatsRspCb,
+  void*                   pUserData
+);
+
+
+#endif
+
+/*======================================================================== 
+ 
+                            QoS and BA APIs
+ 
+==========================================================================*/
+
+/**
+ @brief WDI_AddTSReq will be called when the upper MAC to inform
+        the device of a successful add TSpec negotiation. HW
+        needs to receive the TSpec Info from the UMAC in order
+        to configure properly the QoS data traffic. Upon the
+        call of this API the WLAN DAL will pack and send a HAL
+        Add TS request message to the lower RIVA sub-system if
+        DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiAddTsReqParams: the add TS parameters as specified by
+                      the Device Interface
+  
+        wdiAddTsRspCb: callback for passing back the response of
+        the add TS operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_AddTSReq
+(
+  WDI_AddTSReqParamsType* pwdiAddTsReqParams,
+  WDI_AddTsRspCb          wdiAddTsRspCb,
+  void*                   pUserData
+);
+
+
+
+/**
+ @brief WDI_DelTSReq will be called when the upper MAC has ended
+        admission on a specific AC. This is to inform HW that
+        QoS traffic parameters must be rest. Upon the call of
+        this API the WLAN DAL will pack and send a HAL Del TS
+        request message to the lower RIVA sub-system if DAL is
+        in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_AddTSReq must have been called.
+
+ @param wdiDelTsReqParams: the del TS parameters as specified by
+                      the Device Interface
+  
+        wdiDelTsRspCb: callback for passing back the response of
+        the del TS operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_AddTSReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_DelTSReq
+(
+  WDI_DelTSReqParamsType* pwdiDelTsReqParams,
+  WDI_DelTsRspCb          wdiDelTsRspCb,
+  void*                   pUserData
+);
+
+
+
+/**
+ @brief WDI_UpdateEDCAParams will be called when the upper MAC 
+        wishes to update the EDCA parameters used by HW for QoS
+        data traffic. Upon the call of this API the WLAN DAL
+        will pack and send a HAL Update EDCA Params request
+        message to the lower RIVA sub-system if DAL is in state
+        STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiUpdateEDCAParams: the start parameters as specified 
+                      by the Device Interface
+  
+        wdiUpdateEDCAParamsRspCb: callback for passing back the
+        response of the start operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_UpdateEDCAParams
+(
+  WDI_UpdateEDCAParamsType*    pwdiUpdateEDCAParams,
+  WDI_UpdateEDCAParamsRspCb    wdiUpdateEDCAParamsRspCb,
+  void*                        pUserData
+);
+
+
+
+/**
+ @brief WDI_AddBASessionReq will be called when the upper MAC has setup
+        successfully a BA session and needs to notify the HW for
+        the appropriate settings to take place. Upon the call of
+        this API the WLAN DAL will pack and send a HAL Add BA
+        request message to the lower RIVA sub-system if DAL is
+        in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiAddBAReqParams: the add BA parameters as specified by
+                      the Device Interface
+  
+        wdiAddBARspCb: callback for passing back the response of
+        the add BA operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_AddBASessionReq
+(
+  WDI_AddBASessionReqParamsType* pwdiAddBASessionReqParams,
+  WDI_AddBASessionRspCb          wdiAddBASessionRspCb,
+  void*                          pUserData
+);
+
+
+/**
+ @brief WDI_DelBAReq will be called when the upper MAC wants to 
+        inform HW that it has deleted a previously created BA
+        session. Upon the call of this API the WLAN DAL will
+        pack and send a HAL Del BA request message to the lower
+        RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_AddBAReq must have been called.
+
+ @param wdiDelBAReqParams: the del BA parameters as specified by
+                      the Device Interface
+  
+        wdiDelBARspCb: callback for passing back the response of
+        the del BA operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_AddBAReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_DelBAReq
+(
+  WDI_DelBAReqParamsType* pwdiDelBAReqParams,
+  WDI_DelBARspCb          wdiDelBARspCb,
+  void*                   pUserData
+);
+
+/**
+ @brief WDI_UpdateBeaconParamsReq will be called when the upper MAC wants to 
+        inform HW that there is a change in the beacon parameters
+         Upon the call of this API the WLAN DAL will
+        pack and send a UpdateBeacon Params message to the lower
+        RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_UpdateBeaconParamsReq must have been called.
+
+ @param WDI_UpdateBeaconParamsType: the Update Beacon parameters as specified by
+                      the Device Interface
+  
+        WDI_UpdateBeaconParamsRspCb: callback for passing back the response of
+        the Update Beacon Params operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_AddBAReq
+ @return Result of the function call
+*/
+
+WDI_Status 
+WDI_UpdateBeaconParamsReq
+(
+  WDI_UpdateBeaconParamsType *   pwdiUpdateBeaconParams,
+  WDI_UpdateBeaconParamsRspCb    wdiUpdateBeaconParamsRspCb,
+  void*                          pUserData
+);
+
+
+/**
+ @brief WDI_SendBeaconParamsReq will be called when the upper MAC wants to 
+        update the beacon template to be transmitted as BT MAP STA/IBSS/Soft AP
+         Upon the call of this API the WLAN DAL will
+        pack and send the beacon Template  message to the lower
+        RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_SendBeaconParamsReq must have been called.
+
+ @param WDI_SendBeaconParamsType: the Update Beacon parameters as specified by
+                      the Device Interface
+  
+        WDI_SendBeaconParamsRspCb: callback for passing back the response of
+        the Send Beacon Params operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_AddBAReq
+ @return Result of the function call
+*/
+
+WDI_Status 
+WDI_SendBeaconParamsReq
+(
+  WDI_SendBeaconParamsType*    pwdiSendBeaconParams,
+  WDI_SendBeaconParamsRspCb    wdiSendBeaconParamsRspCb,
+  void*                        pUserData
+);
+
+
+/**
+ @brief WDI_UpdateProbeRspTemplateReq will be called when the 
+        upper MAC wants to update the probe response template to
+        be transmitted as Soft AP
+         Upon the call of this API the WLAN DAL will
+        pack and send the probe rsp template  message to the
+        lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+
+ @param pwdiUpdateProbeRspParams: the Update Beacon parameters as 
+                      specified by the Device Interface
+  
+        wdiSendBeaconParamsRspCb: callback for passing back the
+        response of the Send Beacon Params operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_AddBAReq
+ @return Result of the function call
+*/
+
+WDI_Status 
+WDI_UpdateProbeRspTemplateReq
+(
+  WDI_UpdateProbeRspTemplateParamsType*    pwdiUpdateProbeRspParams,
+  WDI_UpdateProbeRspTemplateRspCb          wdiSendBeaconParamsRspCb,
+  void*                                  pUserData
+);
+
+#ifdef WLAN_FEATURE_P2P
+/**
+ @brief WDI_SetP2PGONOAReq will be called when the 
+        upper MAC wants to send Notice of Absence
+         Upon the call of this API the WLAN DAL will
+        pack and send the probe rsp template  message to the
+        lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+
+ @param pwdiUpdateProbeRspParams: the Update Beacon parameters as 
+                      specified by the Device Interface
+  
+        wdiSendBeaconParamsRspCb: callback for passing back the
+        response of the Send Beacon Params operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_AddBAReq
+ @return Result of the function call
+*/
+WDI_Status
+WDI_SetP2PGONOAReq
+(
+  WDI_SetP2PGONOAReqParamsType*    pwdiP2PGONOAReqParams,
+  WDI_SetP2PGONOAReqParamsRspCb    wdiP2PGONOAReqParamsRspCb,
+  void*                            pUserData
+);
+#endif
+
+
+/*======================================================================== 
+ 
+                            Power Save APIs
+ 
+==========================================================================*/
+
+/**
+ @brief WDI_SetPwrSaveCfgReq will be called when the upper MAC 
+        wants to set the power save related configurations of
+        the WLAN Device. Upon the call of this API the WLAN DAL
+        will pack and send a HAL Update CFG request message to
+        the lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_Start must have been called.
+
+ @param pwdiPowerSaveCfg: the power save cfg parameters as 
+                      specified by the Device Interface
+  
+        wdiSetPwrSaveCfgCb: callback for passing back the
+        response of the set power save cfg operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call  
+*/ 
+WDI_Status 
+WDI_SetPwrSaveCfgReq
+(
+  WDI_UpdateCfgReqParamsType*   pwdiPowerSaveCfg,
+  WDI_SetPwrSaveCfgCb     wdiSetPwrSaveCfgCb,
+  void*                   pUserData
+);
+
+/**
+ @brief WDI_EnterImpsReq will be called when the upper MAC to 
+        request the device to get into IMPS power state. Upon
+        the call of this API the WLAN DAL will send a HAL Enter
+        IMPS request message to the lower RIVA sub-system if DAL
+        is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+  
+ @param wdiEnterImpsRspCb: callback for passing back the 
+        response of the Enter IMPS operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_EnterImpsReq
+(
+   WDI_EnterImpsRspCb  wdiEnterImpsRspCb,
+   void*                   pUserData
+);
+
+/**
+ @brief WDI_ExitImpsReq will be called when the upper MAC to 
+        request the device to get out of IMPS power state. Upon
+        the call of this API the WLAN DAL will send a HAL Exit
+        IMPS request message to the lower RIVA sub-system if DAL
+        is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ 
+
+ @param wdiExitImpsRspCb: callback for passing back the response 
+        of the Exit IMPS operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ExitImpsReq
+(
+   WDI_ExitImpsRspCb  wdiExitImpsRspCb,
+   void*                   pUserData
+);
+
+/**
+ @brief WDI_EnterBmpsReq will be called when the upper MAC to 
+        request the device to get into BMPS power state. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL Enter BMPS request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiEnterBmpsReqParams: the Enter BMPS parameters as 
+                      specified by the Device Interface
+  
+        wdiEnterBmpsRspCb: callback for passing back the
+        response of the Enter BMPS operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_EnterBmpsReq
+(
+   WDI_EnterBmpsReqParamsType *pwdiEnterBmpsReqParams,
+   WDI_EnterBmpsRspCb  wdiEnterBmpsRspCb,
+   void*                   pUserData
+);
+
+/**
+ @brief WDI_ExitBmpsReq will be called when the upper MAC to 
+        request the device to get out of BMPS power state. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL Exit BMPS request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiExitBmpsReqParams: the Exit BMPS parameters as 
+                      specified by the Device Interface
+  
+        wdiExitBmpsRspCb: callback for passing back the response
+        of the Exit BMPS operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ExitBmpsReq
+(
+   WDI_ExitBmpsReqParamsType *pwdiExitBmpsReqParams,
+   WDI_ExitBmpsRspCb  wdiExitBmpsRspCb,
+   void*                   pUserData
+);
+
+/**
+ @brief WDI_EnterUapsdReq will be called when the upper MAC to 
+        request the device to get into UAPSD power state. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL Enter UAPSD request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+ WDI_SetUapsdAcParamsReq must have been called.
+  
+ @param pwdiEnterUapsdReqParams: the Enter UAPSD parameters as 
+                      specified by the Device Interface
+  
+        wdiEnterUapsdRspCb: callback for passing back the
+        response of the Enter UAPSD operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq, WDI_SetUapsdAcParamsReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_EnterUapsdReq
+(
+   WDI_EnterUapsdReqParamsType *pwdiEnterUapsdReqParams,
+   WDI_EnterUapsdRspCb  wdiEnterUapsdRspCb,
+   void*                   pUserData
+);
+
+/**
+ @brief WDI_ExitUapsdReq will be called when the upper MAC to 
+        request the device to get out of UAPSD power state. Upon
+        the call of this API the WLAN DAL will send a HAL Exit
+        UAPSD request message to the lower RIVA sub-system if
+        DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiExitUapsdRspCb: callback for passing back the 
+        response of the Exit UAPSD operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ExitUapsdReq
+(
+   WDI_ExitUapsdRspCb  wdiExitUapsdRspCb,
+   void*                   pUserData
+);
+
+/**
+ @brief WDI_UpdateUapsdParamsReq will be called when the upper 
+        MAC wants to set the UAPSD related configurations
+        of an associated STA (while acting as an AP) to the WLAN
+        Device. Upon the call of this API the WLAN DAL will pack
+        and send a HAL Update UAPSD params request message to
+        the lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_ConfigBSSReq must have been called.
+
+ @param pwdiUpdateUapsdReqParams: the UAPSD parameters 
+                      as specified by the Device Interface
+  
+        wdiUpdateUapsdParamsCb: callback for passing back the
+        response of the update UAPSD params operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_ConfigBSSReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_UpdateUapsdParamsReq
+(
+   WDI_UpdateUapsdReqParamsType *pwdiUpdateUapsdReqParams,
+   WDI_UpdateUapsdParamsCb  wdiUpdateUapsdParamsCb,
+   void*                   pUserData
+);
+
+/**
+ @brief WDI_SetUapsdAcParamsReq will be called when the upper 
+        MAC wants to set the UAPSD related configurations before
+        requesting for enter UAPSD power state to the WLAN
+        Device. Upon the call of this API the WLAN DAL will pack
+        and send a HAL Set UAPSD params request message to
+        the lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiUapsdInfo: the UAPSD parameters as specified by
+                      the Device Interface
+  
+        wdiSetUapsdAcParamsCb: callback for passing back the
+        response of the set UAPSD params operation received from
+        the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetUapsdAcParamsReq
+(
+  WDI_SetUapsdAcParamsReqParamsType*      pwdiPowerSaveCfg,
+  WDI_SetUapsdAcParamsCb  wdiSetUapsdAcParamsCb,
+  void*                   pUserData
+);
+
+/**
+ @brief WDI_ConfigureRxpFilterReq will be called when the upper 
+        MAC wants to set/reset the RXP filters for received pkts
+        (MC, BC etc.). Upon the call of this API the WLAN DAL will pack
+        and send a HAL configure RXP filter request message to
+        the lower RIVA sub-system.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+  
+ @param pwdiConfigureRxpFilterReqParams: the RXP 
+                      filter as specified by the Device
+                      Interface
+  
+        wdiConfigureRxpFilterCb: callback for passing back the
+        response of the configure RXP filter operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ConfigureRxpFilterReq
+(
+   WDI_ConfigureRxpFilterReqParamsType *pwdiConfigureRxpFilterReqParams,
+   WDI_ConfigureRxpFilterCb             wdiConfigureRxpFilterCb,
+   void*                                pUserData
+);
+
+/**
+ @brief WDI_SetBeaconFilterReq will be called when the upper MAC
+        wants to set the beacon filters while in power save.
+        Upon the call of this API the WLAN DAL will pack and
+        send a Beacon filter request message to the
+        lower RIVA sub-system.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+  
+ @param pwdiBeaconFilterReqParams: the beacon 
+                      filter as specified by the Device
+                      Interface
+  
+        wdiBeaconFilterCb: callback for passing back the
+        response of the set beacon filter operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetBeaconFilterReq
+(
+   WDI_BeaconFilterReqParamsType   *pwdiBeaconFilterReqParams,
+   WDI_SetBeaconFilterCb            wdiBeaconFilterCb,
+   void*                            pUserData
+);
+
+/**
+ @brief WDI_RemBeaconFilterReq will be called when the upper MAC
+        wants to remove the beacon filter for perticular IE
+        while in power save. Upon the call of this API the WLAN
+        DAL will pack and send a remove Beacon filter request
+        message to the lower RIVA sub-system.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+  
+ @param pwdiBeaconFilterReqParams: the beacon 
+                      filter as specified by the Device
+                      Interface
+  
+        wdiBeaconFilterCb: callback for passing back the
+        response of the remove beacon filter operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_RemBeaconFilterReq
+(
+   WDI_RemBeaconFilterReqParamsType *pwdiBeaconFilterReqParams,
+   WDI_RemBeaconFilterCb             wdiBeaconFilterCb,
+   void*                             pUserData
+);
+
+/**
+ @brief WDI_SetRSSIThresholdsReq will be called when the upper 
+        MAC wants to set the RSSI thresholds related
+        configurations while in power save. Upon the call of
+        this API the WLAN DAL will pack and send a HAL Set RSSI
+        thresholds request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiUapsdInfo: the UAPSD parameters as specified by
+                      the Device Interface
+  
+        wdiSetUapsdAcParamsCb: callback for passing back the
+        response of the set UAPSD params operation received from
+        the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetRSSIThresholdsReq
+(
+  WDI_SetRSSIThresholdsReqParamsType*      pwdiRSSIThresholdsParams,
+  WDI_SetRSSIThresholdsCb                  wdiSetRSSIThresholdsCb,
+  void*                                    pUserData
+);
+
+/**
+ @brief WDI_HostOffloadReq will be called when the upper MAC 
+        wants to set the filter to minimize unnecessary host
+        wakeup due to broadcast traffic while in power save.
+        Upon the call of this API the WLAN DAL will pack and
+        send a HAL host offload request message to the
+        lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiHostOffloadParams: the host offload as specified 
+                      by the Device Interface
+  
+        wdiHostOffloadCb: callback for passing back the response
+        of the host offload operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_HostOffloadReq
+(
+  WDI_HostOffloadReqParamsType*      pwdiHostOffloadParams,
+  WDI_HostOffloadCb                  wdiHostOffloadCb,
+  void*                              pUserData
+);
+
+/**
+ @brief WDI_KeepAliveReq will be called when the upper MAC 
+        wants to set the filter to send NULL or unsolicited ARP responses 
+        and minimize unnecessary host wakeups due to while in power save.
+        Upon the call of this API the WLAN DAL will pack and
+        send a HAL Keep Alive request message to the
+        lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiKeepAliveParams: the Keep Alive as specified 
+                      by the Device Interface
+  
+        wdiKeepAliveCb: callback for passing back the response
+        of the Keep Alive operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_KeepAliveReq
+(
+  WDI_KeepAliveReqParamsType*        pwdiKeepAliveParams,
+  WDI_KeepAliveCb                    wdiKeepAliveCb,
+  void*                              pUserData
+);
+
+/**
+ @brief WDI_WowlAddBcPtrnReq will be called when the upper MAC 
+        wants to set the Wowl Bcast ptrn to minimize unnecessary
+        host wakeup due to broadcast traffic while in power
+        save. Upon the call of this API the WLAN DAL will pack
+        and send a HAL Wowl Bcast ptrn request message to the
+        lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiWowlAddBcPtrnParams: the Wowl bcast ptrn as 
+                      specified by the Device Interface
+  
+        wdiWowlAddBcPtrnCb: callback for passing back the
+        response of the add Wowl bcast ptrn operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_WowlAddBcPtrnReq
+(
+  WDI_WowlAddBcPtrnReqParamsType*    pwdiWowlAddBcPtrnParams,
+  WDI_WowlAddBcPtrnCb                wdiWowlAddBcPtrnCb,
+  void*                              pUserData
+);
+
+/**
+ @brief WDI_WowlDelBcPtrnReq will be called when the upper MAC 
+        wants to clear the Wowl Bcast ptrn. Upon the call of
+        this API the WLAN DAL will pack and send a HAL delete
+        Wowl Bcast ptrn request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_WowlAddBcPtrnReq must have been called.
+
+ @param pwdiWowlDelBcPtrnParams: the Wowl bcast ptrn as 
+                      specified by the Device Interface
+  
+        wdiWowlDelBcPtrnCb: callback for passing back the
+        response of the del Wowl bcast ptrn operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_WowlAddBcPtrnReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_WowlDelBcPtrnReq
+(
+  WDI_WowlDelBcPtrnReqParamsType*    pwdiWowlDelBcPtrnParams,
+  WDI_WowlDelBcPtrnCb                wdiWowlDelBcPtrnCb,
+  void*                              pUserData
+);
+
+/**
+ @brief WDI_WowlEnterReq will be called when the upper MAC 
+        wants to enter the Wowl state to minimize unnecessary
+        host wakeup while in power save. Upon the call of this
+        API the WLAN DAL will pack and send a HAL Wowl enter
+        request message to the lower RIVA sub-system if DAL is
+        in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiWowlEnterReqParams: the Wowl enter info as 
+                      specified by the Device Interface
+  
+        wdiWowlEnterReqCb: callback for passing back the
+        response of the enter Wowl operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_WowlEnterReq
+(
+  WDI_WowlEnterReqParamsType*    pwdiWowlEnterParams,
+  WDI_WowlEnterReqCb             wdiWowlEnterCb,
+  void*                          pUserData
+);
+
+/**
+ @brief WDI_WowlExitReq will be called when the upper MAC 
+        wants to exit the Wowl state. Upon the call of this API
+        the WLAN DAL will pack and send a HAL Wowl exit request
+        message to the lower RIVA sub-system if DAL is in state
+        STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_WowlEnterReq must have been called.
+
+ @param pwdiWowlExitReqParams: the Wowl exit info as 
+                      specified by the Device Interface
+  
+        wdiWowlExitReqCb: callback for passing back the response
+        of the exit Wowl operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_WowlEnterReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_WowlExitReq
+(
+  WDI_WowlExitReqCb              wdiWowlExitCb,
+  void*                          pUserData
+);
+
+/**
+ @brief WDI_ConfigureAppsCpuWakeupStateReq will be called when 
+        the upper MAC wants to dynamically adjusts the listen
+        interval based on the WLAN/MSM activity. Upon the call
+        of this API the WLAN DAL will pack and send a HAL
+        configure Apps Cpu Wakeup State request message to the
+        lower RIVA sub-system.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+  
+ @param pwdiConfigureAppsCpuWakeupStateReqParams: the 
+                      Apps Cpu Wakeup State as specified by the
+                      Device Interface
+  
+        wdiConfigureAppsCpuWakeupStateCb: callback for passing
+        back the response of the configure Apps Cpu Wakeup State
+        operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ConfigureAppsCpuWakeupStateReq
+(
+   WDI_ConfigureAppsCpuWakeupStateReqParamsType *pwdiConfigureAppsCpuWakeupStateReqParams,
+   WDI_ConfigureAppsCpuWakeupStateCb             wdiConfigureAppsCpuWakeupStateCb,
+   void*                                         pUserData
+);
+/**
+ @brief WDI_FlushAcReq will be called when the upper MAC wants 
+        to to perform a flush operation on a given AC. Upon the
+        call of this API the WLAN DAL will pack and send a HAL
+        Flush AC request message to the lower RIVA sub-system if
+        DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+  
+ @param pwdiFlushAcReqParams: the Flush AC parameters as 
+                      specified by the Device Interface
+  
+        wdiFlushAcRspCb: callback for passing back the response
+        of the Flush AC operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+ 
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_FlushAcReq
+(
+  WDI_FlushAcReqParamsType* pwdiFlushAcReqParams,
+  WDI_FlushAcRspCb          wdiFlushAcRspCb,
+  void*                     pUserData
+);
+
+/**
+ @brief WDI_BtAmpEventReq will be called when the upper MAC 
+        wants to notify the lower mac on a BT AMP event. This is
+        to inform BTC-SLM that some BT AMP event occurred. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL BT AMP event request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+  
+ @param wdiBtAmpEventReqParams: the BT AMP event parameters as 
+                      specified by the Device Interface
+  
+        wdiBtAmpEventRspCb: callback for passing back the
+        response of the BT AMP event operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+ 
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_BtAmpEventReq
+(
+  WDI_BtAmpEventParamsType* pwdiBtAmpEventReqParams,
+  WDI_BtAmpEventRspCb       wdiBtAmpEventRspCb,
+  void*                     pUserData
+);
+
+
+/*======================================================================== 
+ 
+                             CONTROL APIs
+ 
+==========================================================================*/
+/**
+ @brief WDI_SwitchChReq will be called when the upper MAC wants 
+        the WLAN HW to change the current channel of operation.
+        Upon the call of this API the WLAN DAL will pack and
+        send a HAL Start request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_Start must have been called.
+
+ @param wdiSwitchChReqParams: the switch ch parameters as 
+                      specified by the Device Interface
+  
+        wdiSwitchChRspCb: callback for passing back the response
+        of the switch ch operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SwitchChReq
+(
+  WDI_SwitchChReqParamsType* pwdiSwitchChReqParams,
+  WDI_SwitchChRspCb          wdiSwitchChRspCb,
+  void*                      pUserData
+);
+
+
+
+/**
+ @brief WDI_ConfigSTAReq will be called when the upper MAC 
+        wishes to add or update a STA in HW. Upon the call of
+        this API the WLAN DAL will pack and send a HAL Start
+        message request message to the lower RIVA sub-system if
+        DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_Start must have been called.
+
+ @param wdiConfigSTAReqParams: the config STA parameters as 
+                      specified by the Device Interface
+  
+        wdiConfigSTARspCb: callback for passing back the
+        response of the config STA operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ConfigSTAReq
+(
+  WDI_ConfigSTAReqParamsType* pwdiConfigSTAReqParams,
+  WDI_ConfigSTARspCb          wdiConfigSTARspCb,
+  void*                       pUserData
+);
+
+/**
+ @brief WDI_SetLinkStateReq will be called when the upper MAC 
+        wants to change the state of an ongoing link. Upon the
+        call of this API the WLAN DAL will pack and send a HAL
+        Start message request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_JoinReq must have been called.
+
+ @param wdiSetLinkStateReqParams: the set link state parameters 
+                      as specified by the Device Interface
+  
+        wdiSetLinkStateRspCb: callback for passing back the
+        response of the set link state operation received from
+        the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_JoinStartReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetLinkStateReq
+(
+  WDI_SetLinkReqParamsType* pwdiSetLinkStateReqParams,
+  WDI_SetLinkStateRspCb     wdiSetLinkStateRspCb,
+  void*                     pUserData
+);
+
+
+/**
+ @brief WDI_GetStatsReq will be called when the upper MAC wants 
+        to get statistics (MIB counters) from the device. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL Start request message to the lower RIVA sub-system
+        if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_Start must have been called.
+
+ @param wdiGetStatsReqParams: the stats parameters to get as 
+                      specified by the Device Interface
+  
+        wdiGetStatsRspCb: callback for passing back the response
+        of the get stats operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_GetStatsReq
+(
+  WDI_GetStatsReqParamsType* pwdiGetStatsReqParams,
+  WDI_GetStatsRspCb          wdiGetStatsRspCb,
+  void*                      pUserData
+);
+
+
+/**
+ @brief WDI_UpdateCfgReq will be called when the upper MAC when 
+        it wishes to change the configuration of the WLAN
+        Device. Upon the call of this API the WLAN DAL will pack
+        and send a HAL Update CFG request message to the lower
+        RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_Start must have been called.
+
+ @param wdiUpdateCfgReqParams: the update cfg parameters as 
+                      specified by the Device Interface
+  
+        wdiUpdateCfgsRspCb: callback for passing back the
+        response of the update cfg operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_Start
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_UpdateCfgReq
+(
+  WDI_UpdateCfgReqParamsType* pwdiUpdateCfgReqParams,
+  WDI_UpdateCfgRspCb          wdiUpdateCfgsRspCb,
+  void*                       pUserData
+);
+
+/**
+ @brief WDI_NvDownloadReq will be called by the UMAC to dowload the NV blob
+ to the NV memory.
+
+    @param wdiNvDownloadReqParams: the NV Download parameters as specified by
+    the Device Interface
+   
+      wdiNvDownloadRspCb: callback for passing back the response of
+      the NV Download operation received from the device
+ 
+       pUserData: user data will be passed back with the
+       callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_NvDownloadReq
+(
+  WDI_NvDownloadReqParamsType* pwdiNvDownloadReqParams,
+  WDI_NvDownloadRspCb      wdiNvDownloadRspCb,
+   void*      pUserData
+);
+/**
+ @brief WDI_AddBAReq will be called when the upper MAC has setup
+        successfully a BA session and needs to notify the HW for
+        the appropriate settings to take place. Upon the call of
+        this API the WLAN DAL will pack and send a HAL Add BA
+        request message to the lower RIVA sub-system if DAL is
+        in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiAddBAReqParams: the add BA parameters as specified by
+                      the Device Interface
+  
+        wdiAddBARspCb: callback for passing back the response of
+        the add BA operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_AddBAReq
+(
+  WDI_AddBAReqParamsType* pwdiAddBAReqParams,
+  WDI_AddBARspCb          wdiAddBARspCb,
+  void*                   pUserData
+);
+
+/**
+ @brief WDI_TriggerBAReq will be called when the upper MAC has setup
+        successfully a BA session and needs to notify the HW for
+        the appropriate settings to take place. Upon the call of
+        this API the WLAN DAL will pack and send a HAL Add BA
+        request message to the lower RIVA sub-system if DAL is
+        in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiAddBAReqParams: the add BA parameters as specified by
+                      the Device Interface
+  
+        wdiAddBARspCb: callback for passing back the response of
+        the add BA operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_TriggerBAReq
+(
+  WDI_TriggerBAReqParamsType* pwdiTriggerBAReqParams,
+  WDI_TriggerBARspCb          wdiTriggerBARspCb,
+  void*                       pUserData
+);
+
+
+/**
+ @brief WDI_IsHwFrameTxTranslationCapable checks to see if HW 
+        frame xtl is enabled for a particular STA.
+
+ WDI_PostAssocReq must have been called.
+
+ @param uSTAIdx: STA index 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+wpt_boolean WDI_IsHwFrameTxTranslationCapable
+(
+  wpt_uint8 uSTAIdx
+);
+
+#ifdef WLAN_FEATURE_VOWIFI_11R
+/**
+ @brief WDI_AggrAddTSReq will be called when the upper MAC to inform
+        the device of a successful add TSpec negotiation for 11r. HW
+        needs to receive the TSpec Info from the UMAC in order
+        to configure properly the QoS data traffic. Upon the
+        call of this API the WLAN DAL will pack and send a HAL
+        Aggregated Add TS request message to the lower RIVA sub-system if
+        DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param wdiAggrAddTsReqParams: the add TS parameters as specified by
+                               the Device Interface
+  
+        wdiAggrAddTsRspCb: callback for passing back the response of
+        the add TS operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_AggrAddTSReq
+(
+  WDI_AggrAddTSReqParamsType* pwdiAddTsReqParams,
+  WDI_AggrAddTsRspCb          wdiAggrAddTsRspCb,
+  void*                   pUserData
+);
+#endif /* WLAN_FEATURE_VOWIFI_11R */
+/**
+ @brief WDI_STATableInit - Initializes the STA tables. 
+        Allocates the necesary memory.
+
+ 
+ @param  pWDICtx:         pointer to the WLAN DAL context 
+  
+ @see
+ @return Result of the function call
+*/
+
+WDI_Status WDI_StubRunTest
+(
+   wpt_uint8   ucTestNo
+);
+
+#ifdef ANI_MANF_DIAG
+/**
+ @brief WDI_FTMCommandReq -  
+        Route FTMRequest Command to HAL
+ 
+ @param  ftmCommandReq:         FTM request command body 
+ @param  ftmCommandRspCb:       Response CB
+ @param  pUserData:             User data will be included with CB
+
+ @return Result of the function call
+*/
+WDI_Status WDI_FTMCommandReq
+(
+  WDI_FTMCommandReqType *ftmCommandReq,
+  WDI_FTMCommandRspCb    ftmCommandRspCb,
+  void                  *pUserData
+);
+#endif /* ANI_MANF_DIAG */
+
+/**
+ @brief WDI_HostResumeReq will be called 
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+
+ @param pwdiResumeReqParams:  as specified by
+                      the Device Interface
+  
+        wdiResumeReqRspCb: callback for passing back the response of
+        the Resume Req received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_HostResumeReq
+(
+  WDI_ResumeParamsType*            pwdiResumeReqParams,
+  WDI_HostResumeEventRspCb         wdiResumeReqRspCb,
+  void*                            pUserData
+);
+
+/**
+ @brief WDI_GetAvailableResCount - Function to get the available resource
+        for data and managemnt frames. 
+        
+ @param  pContext:         pointer to the WDI context 
+ @param  wdiResPool:       type of resource pool requesting
+ @see
+ @return Result of the function call
+*/
+
+wpt_uint32 WDI_GetAvailableResCount
+(
+  void            *pContext,
+  WDI_ResPoolType wdiResPool
+);
+
+/**
+ @brief WDI_SetAddSTASelfReq will be called when the
+        UMAC wanted to add self STA while opening any new session
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state.
+
+
+ @param pwdiAddSTASelfParams: the add self sta parameters as
+                      specified by the Device Interface
+
+        pUserData: user data will be passed back with the
+        callback
+
+ @see
+ @return Result of the function call
+*/
+WDI_Status
+WDI_AddSTASelfReq
+(
+  WDI_AddSTASelfReqParamsType*    pwdiAddSTASelfReqParams,
+  WDI_AddSTASelfParamsRspCb       wdiAddSTASelfReqParamsRspCb,
+  void*                           pUserData
+);
+
+
+/**
+ @brief WDI_DelSTASelfReq will be called .
+
+ @param WDI_DelSTASelfReqParamsType
+  
+        WDI_DelSTASelfRspCb: callback for passing back the
+        response of the del sta self  operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_DelSTASelfReq
+(
+  WDI_DelSTASelfReqParamsType*    pwdiDelStaSelfParams,
+  WDI_DelSTASelfRspCb             wdiDelStaSelfRspCb,
+  void*                           pUserData
+);
+
+/**
+ @brief WDI_HostSuspendInd 
+  
+        Suspend Indication from the upper layer will be sent
+        down to HAL
+  
+ @param WDI_SuspendParamsType
+ 
+ @see 
+  
+ @return Status of the request
+*/
+WDI_Status 
+WDI_HostSuspendInd
+(
+  WDI_SuspendParamsType*    pwdiSuspendIndParams
+);
+
+#ifdef FEATURE_WLAN_SCAN_PNO
+/**
+ @brief WDI_SetPreferredNetworkList
+
+ @param pwdiPNOScanReqParams: the Set PNO as specified 
+                      by the Device Interface
+  
+        wdiPNOScanCb: callback for passing back the response
+        of the Set PNO operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetPreferredNetworkReq
+(
+  WDI_PNOScanReqParamsType* pwdiPNOScanReqParams,
+  WDI_PNOScanCb             wdiPNOScanCb,
+  void*                      pUserData
+);
+
+/**
+ @brief WDI_SetRssiFilterReq
+
+ @param pwdiRssiFilterReqParams: the Set RSSI Filter as 
+                      specified by the Device Interface
+  
+        wdiRssiFilterCb: callback for passing back the response
+        of the Set RSSI Filter operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetRssiFilterReq
+(
+  WDI_SetRssiFilterReqParamsType* pwdiRssiFilterReqParams,
+  WDI_RssiFilterCb                wdiRssiFilterCb,
+  void*                           pUserData
+);
+
+/**
+ @brief WDI_UpdateScanParams
+
+ @param pwdiUpdateScanParamsInfoType: the Update Scan Params as specified 
+                      by the Device Interface
+  
+        wdiUpdateScanParamsCb: callback for passing back the response
+        of the Set PNO operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_UpdateScanParamsReq
+(
+  WDI_UpdateScanParamsInfoType* pwdiUpdateScanParamsInfoType,
+  WDI_UpdateScanParamsCb        wdiUpdateScanParamsCb,
+  void*                         pUserData
+);
+#endif // FEATURE_WLAN_SCAN_PNO
+
+/**
+ @brief WDI_SetTxPerTrackingReq will be called when the upper MAC 
+        wants to set the Tx Per Tracking configurations. 
+        Upon the call of this API the WLAN DAL will pack
+        and send a HAL Set Tx Per Tracking request message to the
+        lower RIVA sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ @param wdiSetTxPerTrackingConf: the Set Tx PER Tracking configurations as 
+                      specified by the Device Interface
+  
+        wdiSetTxPerTrackingCb: callback for passing back the
+        response of the set Tx PER Tracking configurations operation received
+        from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetTxPerTrackingReq
+(
+  WDI_SetTxPerTrackingReqParamsType*      pwdiSetTxPerTrackingReqParams,
+  WDI_SetTxPerTrackingRspCb               pwdiSetTxPerTrackingRspCb,
+  void*                                   pUserData
+);
+
+/**
+ @brief WDI_SetTmLevelReq
+        If HW Thermal condition changed, driver should react based on new 
+        HW thermal condition.
+
+ @param pwdiSetTmLevelReq: New thermal condition information
+  
+        pwdiSetTmLevelRspCb: callback
+  
+        usrData: user data will be passed back with the
+        callback 
+  
+ @return Result of the function call
+*/
+WDI_Status
+WDI_SetTmLevelReq
+(
+   WDI_SetTmLevelReqType        *pwdiSetTmLevelReq,
+   WDI_SetTmLevelCb              pwdiSetTmLevelRspCb,
+   void                         *usrData  
+);
+
+#ifdef WLAN_FEATURE_PACKET_FILTERING
+/**
+ @brief WDI_8023MulticastListReq
+
+ @param pwdiRcvFltPktSetMcListReqInfo: the Set 8023 Multicast 
+        List as specified by the Device Interface
+  
+        wdi8023MulticastListCallback: callback for passing back
+        the response of the Set 8023 Multicast List operation
+        received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_8023MulticastListReq
+(
+  WDI_RcvFltPktSetMcListReqParamsType*  pwdiRcvFltPktSetMcListReqInfo,
+  WDI_8023MulticastListCb               wdi8023MulticastListCallback,
+  void*                                 pUserData
+);
+
+/**
+ @brief WDI_ReceiveFilterSetFilterReq
+
+ @param pwdiSetRcvPktFilterReqInfo: the Set Receive Filter as 
+        specified by the Device Interface
+  
+        wdiReceiveFilterSetFilterReqCallback: callback for
+        passing back the response of the Set Receive Filter
+        operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ReceiveFilterSetFilterReq
+(
+  WDI_SetRcvPktFilterReqParamsType* pwdiSetRcvPktFilterReqInfo,
+  WDI_ReceiveFilterSetFilterCb      wdiReceiveFilterSetFilterReqCallback,
+  void*                             pUserData
+);
+
+/**
+ @brief WDI_PCFilterMatchCountReq
+
+ @param pwdiRcvFltPktMatchCntReqInfo: get D0 PC Filter Match 
+                                    Count
+  
+        wdiPCFilterMatchCountCallback: callback for passing back
+        the response of the D0 PC Filter Match Count operation
+        received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_FilterMatchCountReq
+(
+  WDI_RcvFltPktMatchCntReqParamsType* pwdiRcvFltPktMatchCntReqInfo,
+  WDI_FilterMatchCountCb              wdiFilterMatchCountCallback,
+  void*                               pUserData
+);
+
+/**
+ @brief WDI_ReceiveFilterClearFilterReq
+
+ @param pwdiRcvFltPktClearReqInfo: the Clear Filter as 
+                      specified by the Device Interface
+  
+        wdiReceiveFilterClearFilterCallback: callback for
+        passing back the response of the Clear Filter
+        operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_ReceiveFilterClearFilterReq
+(
+  WDI_RcvFltPktClearReqParamsType*  pwdiRcvFltPktClearReqInfo,
+  WDI_ReceiveFilterClearFilterCb    wdiReceiveFilterClearFilterCallback,
+  void*                             pUserData
+);
+#endif // WLAN_FEATURE_PACKET_FILTERING
+
+/**
+ @brief WDI_HALDumpCmdReq
+        Post HAL DUMP Command Event
+ 
+ @param  halDumpCmdReqParams:   Hal Dump Command Body 
+ @param  halDumpCmdRspCb:         callback for passing back the
+                                                 response 
+ @param  pUserData:       Client Data
+  
+ @see
+ @return Result of the function call
+*/
+WDI_Status WDI_HALDumpCmdReq(
+  WDI_HALDumpCmdReqParamsType *halDumpCmdReqParams,
+  WDI_HALDumpCmdRspCb    halDumpCmdRspCb,
+  void                  *pUserData
+);
+
+
+/**
+ @brief WDI_SetPowerParamsReq
+
+ @param pwdiPowerParamsReqParams: the Set Power Params as 
+                      specified by the Device Interface
+  
+        wdiPowerParamsCb: callback for passing back the response
+        of the Set Power Params operation received from the
+        device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_SetPowerParamsReq
+(
+  WDI_SetPowerParamsReqParamsType* pwdiPowerParamsReqParams,
+  WDI_SetPowerParamsCb             wdiPowerParamsCb,
+  void*                            pUserData
+);
+
+#ifdef WLAN_FEATURE_GTK_OFFLOAD
+/**
+ @brief WDI_GTKOffloadReq will be called when the upper MAC 
+        wants to set GTK Rekey Counter while in power save. Upon
+        the call of this API the WLAN DAL will pack and send a
+        HAL GTK offload request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiGtkOffloadParams: the GTK offload as specified 
+                      by the Device Interface
+  
+        wdiGtkOffloadCb: callback for passing back the response
+        of the GTK offload operation received from the device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_GTKOffloadReq
+(
+  WDI_GtkOffloadReqMsg*      pwdiGtkOffloadReqMsg,
+  WDI_GtkOffloadCb           wdiGtkOffloadCb,
+  void*                      pUserData
+);
+
+/**
+ @brief WDI_GTKOffloadGetInfoReq will be called when the upper 
+          MAC wants to get GTK Rekey Counter while in power save.
+          Upon the call of this API the WLAN DAL will pack and
+          send a HAL GTK offload request message to the lower RIVA
+        sub-system if DAL is in state STARTED.
+
+        In state BUSY this request will be queued. Request won't
+        be allowed in any other state. 
+
+ WDI_PostAssocReq must have been called.
+
+ @param pwdiGtkOffloadGetInfoReqMsg: the GTK Offload 
+                        Information Message as specified by the
+                        Device Interface
+  
+          wdiGtkOffloadGetInfoCb: callback for passing back the
+          response of the GTK offload operation received from the
+          device
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see WDI_PostAssocReq
+ @return Result of the function call
+*/
+WDI_Status 
+WDI_GTKOffloadGetInfoReq
+(
+  WDI_GtkOffloadGetInfoReqMsg*  pwdiGtkOffloadGetInfoReqMsg,
+  WDI_GtkOffloadGetInfoCb       wdiGtkOffloadGetInfoCb,
+  void*                          pUserData
+);
+#endif // WLAN_FEATURE_GTK_OFFLOAD
+
+/**
+ @brief WDI_featureCapsExchangeReq
+        Post feature capability bitmap exchange event.
+        Host will send its own capability to FW in this req and 
+        expect FW to send its capability back as a bitmap in Response
+ 
+ @param 
+  
+        wdiFeatCapsExcRspCb: callback called on getting the response.
+        It is kept to mantain similarity between WDI reqs and if needed, can
+        be used in future. Currently, It is set to NULL
+  
+        pUserData: user data will be passed back with the
+        callback 
+  
+ @see
+ @return Result of the function call
+*/
+WDI_Status
+WDI_featureCapsExchangeReq
+(
+  WDI_featureCapsExchangeCb     wdiFeatureCapsExchangeCb,
+  void*                         pUserData
+);
+
+/**
+ @brief WDI_getHostWlanFeatCaps
+        WDI API that returns whether the feature passed to it as enum value in
+        "placeHolderInCapBitmap" is supported by Host or not. It uses WDI global
+        variable storing host capability bitmap to find this. This can be used by
+        other moduels to decide certain things like call different APIs based on
+        whether a particular feature is supported.
+ 
+ @param 
+  
+        feat_enum_value: enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
+
+ @see
+ @return 
+        0 - if the feature is NOT supported in host
+        any non-zero value - if the feature is SUPPORTED in host.
+*/
+wpt_uint8 WDI_getHostWlanFeatCaps(wpt_uint8 feat_enum_value);
+
+/**
+ @brief WDI_getFwWlanFeatCaps
+        WDI API that returns whether the feature passed to it as enum value in
+        "placeHolderInCapBitmap" is supported by FW or not. It uses WDI global
+        variable storing host capability bitmap to find this. This can be used by
+        other moduels to decide certain things like call different APIs based on
+        whether a particular feature is supported.
+ 
+ @param 
+  
+        feat_enum_value: enum value for the feature as in placeHolderInCapBitmap
+                                    in wlan_hal_msg.h.
+
+ @see
+ @return 
+        0 - if the feature is NOT supported in FW
+        any non-zero value - if the feature is SUPPORTED in FW.
+*/
+wpt_uint8 WDI_getFwWlanFeatCaps(wpt_uint8 feat_enum_value);
+
+/**
+ @brief WDI_GetWcnssCompiledApiVersion - Function to get wcnss compiled  
+        api version 
+        
+ @param  WDI_WlanVersionType: Wlan version structure 
+ @see
+ @return none
+*/
+
+void WDI_GetWcnssCompiledApiVersion
+(
+  WDI_WlanVersionType     *pWcnssApiVersion
+);
+
+
+
+#ifdef __cplusplus
+ }
+#endif 
+
+
+#endif /* #ifndef WLAN_QCT_WDI_H */