prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/riva/inc/wlan_hal_msg.h b/riva/inc/wlan_hal_msg.h
new file mode 100644
index 0000000..9f77086
--- /dev/null
+++ b/riva/inc/wlan_hal_msg.h
@@ -0,0 +1,5197 @@
+/*
+ * 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.
+ */
+
+/*==========================================================================
+ *
+ *  @file:     wlan_hal_msg.h
+ *
+ *  @brief:    Exports and types for messages sent to HAL from WDI
+ *
+ *  @author:   Kumar Anand
+ *
+ *             Copyright (C) 2010, Qualcomm, Inc. 
+ *             All rights reserved.
+ *
+ *=========================================================================*/
+
+#ifndef _WLAN_HAL_MSG_H_
+#define _WLAN_HAL_MSG_H_
+
+#include "halLegacyPalTypes.h"
+#include "halCompiler.h"
+#include "wlan_qct_dev_defs.h"
+#include "wlan_nv.h"
+
+/*---------------------------------------------------------------------------
+  API VERSIONING INFORMATION
+
+  The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
+  The MAJOR is incremented for major product/architecture changes
+      (and then MINOR/VERSION/REVISION are zeroed)
+  The MINOR is incremented for minor product/architecture changes
+      (and then VERSION/REVISION are zeroed)
+  The VERSION is incremented if a significant API change occurs
+      (and then REVISION is zeroed)
+  The REVISION is incremented if an insignificant API change occurs
+      or if a new API is added
+  All values are in the range 0..255 (ie they are 8-bit values)
+ ---------------------------------------------------------------------------*/
+#define WLAN_HAL_VER_MAJOR 0
+#define WLAN_HAL_VER_MINOR 1
+#define WLAN_HAL_VER_VERSION 1
+#define WLAN_HAL_VER_REVISION 0
+
+/*---------------------------------------------------------------------------
+  Commom Type definitons
+ ---------------------------------------------------------------------------*/
+
+//This is to force compiler to use the maximum of an int ( 4 bytes )
+#define WLAN_HAL_MAX_ENUM_SIZE    0x7FFFFFFF
+
+//Max no. of transmit categories
+#define STACFG_MAX_TC    8
+
+//The maximum value of access category
+#define WLAN_HAL_MAX_AC  4
+
+typedef tANI_U8 tSirMacAddr[6];
+typedef tANI_U8 tHalIpv4Addr[4];
+
+#define HAL_MAC_ADDR_LEN        6
+#define HAL_IPV4_ADDR_LEN       4
+
+#define WALN_HAL_STA_INVALID_IDX 0xFF
+#define WLAN_HAL_BSS_INVALID_IDX 0xFF
+
+//Default Beacon template size
+#define BEACON_TEMPLATE_SIZE 0x180 
+
+//Param Change Bitmap sent to HAL 
+#define PARAM_BCN_INTERVAL_CHANGED                      (1 << 0)
+#define PARAM_SHORT_PREAMBLE_CHANGED                 (1 << 1)
+#define PARAM_SHORT_SLOT_TIME_CHANGED                 (1 << 2)
+#define PARAM_llACOEXIST_CHANGED                            (1 << 3)
+#define PARAM_llBCOEXIST_CHANGED                            (1 << 4)
+#define PARAM_llGCOEXIST_CHANGED                            (1 << 5)
+#define PARAM_HT20MHZCOEXIST_CHANGED                  (1<<6)
+#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
+#define PARAM_RIFS_MODE_CHANGED                            (1<<8)
+#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED   (1<<9)
+#define PARAM_OBSS_MODE_CHANGED                               (1<<10)
+#define PARAM_BEACON_UPDATE_MASK                (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
+    PARAM_llGCOEXIST_CHANGED|PARAM_HT20MHZCOEXIST_CHANGED|PARAM_NON_GF_DEVICES_PRESENT_CHANGED|PARAM_RIFS_MODE_CHANGED|PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED| PARAM_OBSS_MODE_CHANGED)
+
+/*Dump command response Buffer size*/
+#define DUMPCMD_RSP_BUFFER 100
+
+/*Version string max length (including NUL) */
+#define WLAN_HAL_VERSION_LENGTH  64
+
+/*Max Num Of BSSIDS in INNAV_MEAS_REQ*/
+#define MAX_BSSIDS_IN_INNAV_MEAS_REQ 1
+
+/* Message types for messages exchanged between WDI and HAL */
+typedef enum 
+{
+   //Init/De-Init
+   WLAN_HAL_START_REQ = 0,
+   WLAN_HAL_START_RSP = 1,
+   WLAN_HAL_STOP_REQ  = 2,
+   WLAN_HAL_STOP_RSP  = 3,
+
+   //Scan
+   WLAN_HAL_INIT_SCAN_REQ    = 4,
+   WLAN_HAL_INIT_SCAN_RSP    = 5,
+   WLAN_HAL_START_SCAN_REQ   = 6,
+   WLAN_HAL_START_SCAN_RSP   = 7 ,
+   WLAN_HAL_END_SCAN_REQ     = 8,
+   WLAN_HAL_END_SCAN_RSP     = 9,
+   WLAN_HAL_FINISH_SCAN_REQ  = 10,
+   WLAN_HAL_FINISH_SCAN_RSP  = 11,
+
+   // HW STA configuration/deconfiguration
+   WLAN_HAL_CONFIG_STA_REQ   = 12,
+   WLAN_HAL_CONFIG_STA_RSP   = 13,
+   WLAN_HAL_DELETE_STA_REQ   = 14,
+   WLAN_HAL_DELETE_STA_RSP   = 15,
+   WLAN_HAL_CONFIG_BSS_REQ   = 16,
+   WLAN_HAL_CONFIG_BSS_RSP   = 17,
+   WLAN_HAL_DELETE_BSS_REQ   = 18,
+   WLAN_HAL_DELETE_BSS_RSP   = 19,
+
+   //Infra STA asscoiation
+   WLAN_HAL_JOIN_REQ         = 20,
+   WLAN_HAL_JOIN_RSP         = 21,
+   WLAN_HAL_POST_ASSOC_REQ   = 22,
+   WLAN_HAL_POST_ASSOC_RSP   = 23,
+
+   //Security
+   WLAN_HAL_SET_BSSKEY_REQ   = 24,
+   WLAN_HAL_SET_BSSKEY_RSP   = 25,
+   WLAN_HAL_SET_STAKEY_REQ   = 26,
+   WLAN_HAL_SET_STAKEY_RSP   = 27,
+   WLAN_HAL_RMV_BSSKEY_REQ   = 28,
+   WLAN_HAL_RMV_BSSKEY_RSP   = 29,
+   WLAN_HAL_RMV_STAKEY_REQ   = 30,
+   WLAN_HAL_RMV_STAKEY_RSP   = 31,
+
+   //Qos Related
+   WLAN_HAL_ADD_TS_REQ          = 32,
+   WLAN_HAL_ADD_TS_RSP          = 33,
+   WLAN_HAL_DEL_TS_REQ          = 34,
+   WLAN_HAL_DEL_TS_RSP          = 35,
+   WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
+   WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
+   WLAN_HAL_ADD_BA_REQ          = 38,
+   WLAN_HAL_ADD_BA_RSP          = 39,
+   WLAN_HAL_DEL_BA_REQ          = 40,
+   WLAN_HAL_DEL_BA_RSP          = 41,
+
+   WLAN_HAL_CH_SWITCH_REQ       = 42,
+   WLAN_HAL_CH_SWITCH_RSP       = 43,
+   WLAN_HAL_SET_LINK_ST_REQ     = 44,
+   WLAN_HAL_SET_LINK_ST_RSP     = 45,
+   WLAN_HAL_GET_STATS_REQ       = 46,
+   WLAN_HAL_GET_STATS_RSP       = 47,
+   WLAN_HAL_UPDATE_CFG_REQ      = 48,
+   WLAN_HAL_UPDATE_CFG_RSP      = 49,
+
+   WLAN_HAL_MISSED_BEACON_IND           = 50,
+   WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND  = 51,
+   WLAN_HAL_MIC_FAILURE_IND             = 52,
+   WLAN_HAL_FATAL_ERROR_IND             = 53,
+   WLAN_HAL_SET_KEYDONE_MSG             = 54,
+   
+   //NV Interface
+   WLAN_HAL_DOWNLOAD_NV_REQ             = 55,
+   WLAN_HAL_DOWNLOAD_NV_RSP             = 56,
+
+   WLAN_HAL_ADD_BA_SESSION_REQ          = 57,
+   WLAN_HAL_ADD_BA_SESSION_RSP          = 58,
+   WLAN_HAL_TRIGGER_BA_REQ              = 59,
+   WLAN_HAL_TRIGGER_BA_RSP              = 60,
+   WLAN_HAL_UPDATE_BEACON_REQ           = 61,
+   WLAN_HAL_UPDATE_BEACON_RSP           = 62,
+   WLAN_HAL_SEND_BEACON_REQ             = 63,
+   WLAN_HAL_SEND_BEACON_RSP             = 64,
+
+   WLAN_HAL_SET_BCASTKEY_REQ               = 65,
+   WLAN_HAL_SET_BCASTKEY_RSP               = 66,
+   WLAN_HAL_DELETE_STA_CONTEXT_IND         = 67,
+   WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ  = 68,
+   WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP  = 69,
+   
+  // PTT interface support
+   WLAN_HAL_PROCESS_PTT_REQ   = 70,
+   WLAN_HAL_PROCESS_PTT_RSP   = 71,
+   
+   // BTAMP related events
+   WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ  = 72,
+   WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP  = 73,
+   WLAN_HAL_TL_HAL_FLUSH_AC_REQ     = 74,
+   WLAN_HAL_TL_HAL_FLUSH_AC_RSP     = 75,
+
+   WLAN_HAL_ENTER_IMPS_REQ           = 76,
+   WLAN_HAL_EXIT_IMPS_REQ            = 77,
+   WLAN_HAL_ENTER_BMPS_REQ           = 78,
+   WLAN_HAL_EXIT_BMPS_REQ            = 79,
+   WLAN_HAL_ENTER_UAPSD_REQ          = 80,
+   WLAN_HAL_EXIT_UAPSD_REQ           = 81,
+   WLAN_HAL_UPDATE_UAPSD_PARAM_REQ   = 82,
+   WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
+   WLAN_HAL_ADD_BCN_FILTER_REQ       = 84,
+   WLAN_HAL_REM_BCN_FILTER_REQ       = 85,
+   WLAN_HAL_ADD_WOWL_BCAST_PTRN      = 86,
+   WLAN_HAL_DEL_WOWL_BCAST_PTRN      = 87,
+   WLAN_HAL_ENTER_WOWL_REQ           = 88,
+   WLAN_HAL_EXIT_WOWL_REQ            = 89,
+   WLAN_HAL_HOST_OFFLOAD_REQ         = 90,
+   WLAN_HAL_SET_RSSI_THRESH_REQ      = 91,
+   WLAN_HAL_GET_RSSI_REQ             = 92,
+   WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ  = 93,
+   WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
+
+   WLAN_HAL_ENTER_IMPS_RSP           = 95,
+   WLAN_HAL_EXIT_IMPS_RSP            = 96,
+   WLAN_HAL_ENTER_BMPS_RSP           = 97,
+   WLAN_HAL_EXIT_BMPS_RSP            = 98,
+   WLAN_HAL_ENTER_UAPSD_RSP          = 99,
+   WLAN_HAL_EXIT_UAPSD_RSP           = 100,
+   WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP  = 101,
+   WLAN_HAL_UPDATE_UAPSD_PARAM_RSP   = 102,
+   WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
+   WLAN_HAL_ADD_BCN_FILTER_RSP       = 104,
+   WLAN_HAL_REM_BCN_FILTER_RSP       = 105,
+   WLAN_HAL_SET_RSSI_THRESH_RSP      = 106,
+   WLAN_HAL_HOST_OFFLOAD_RSP         = 107,
+   WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP  = 108,
+   WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP  = 109,
+   WLAN_HAL_ENTER_WOWL_RSP           = 110,
+   WLAN_HAL_EXIT_WOWL_RSP            = 111,
+   WLAN_HAL_RSSI_NOTIFICATION_IND    = 112,
+   WLAN_HAL_GET_RSSI_RSP             = 113,
+   WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
+
+   //11k related events
+   WLAN_HAL_SET_MAX_TX_POWER_REQ   = 115,
+   WLAN_HAL_SET_MAX_TX_POWER_RSP   = 116,
+
+   //11R related msgs
+   WLAN_HAL_AGGR_ADD_TS_REQ        = 117,
+   WLAN_HAL_AGGR_ADD_TS_RSP        = 118,
+
+   //P2P  WLAN_FEATURE_P2P
+   WLAN_HAL_SET_P2P_GONOA_REQ      = 119,
+   WLAN_HAL_SET_P2P_GONOA_RSP      = 120,
+   
+   //WLAN Dump commands
+   WLAN_HAL_DUMP_COMMAND_REQ       = 121,
+   WLAN_HAL_DUMP_COMMAND_RSP       = 122,
+
+   //INNAV FEATURE SUPPORT
+   WLAN_HAL_START_INNAV_MEAS_REQ   = 123,
+   WLAN_HAL_START_INNAV_MEAS_RSP   = 124,
+
+   //ADD SELF STA REQ and RSP
+   WLAN_HAL_ADD_STA_SELF_REQ       = 125,
+   WLAN_HAL_ADD_STA_SELF_RSP       = 126,
+
+   //DEL SELF STA SUPPORT
+   WLAN_HAL_DEL_STA_SELF_REQ       = 127,
+   WLAN_HAL_DEL_STA_SELF_RSP       = 128,
+
+   // Coex Indication
+   WLAN_HAL_COEX_IND               = 129,
+
+   // Tx Complete Indication 
+   WLAN_HAL_OTA_TX_COMPL_IND       = 130,
+
+   //Host Suspend/resume messages
+   WLAN_HAL_HOST_SUSPEND_IND       = 131,
+   WLAN_HAL_HOST_RESUME_REQ        = 132,
+   WLAN_HAL_HOST_RESUME_RSP        = 133,
+
+   WLAN_HAL_SET_TX_POWER_REQ       = 134,
+   WLAN_HAL_SET_TX_POWER_RSP       = 135,
+   WLAN_HAL_GET_TX_POWER_REQ       = 136,
+   WLAN_HAL_GET_TX_POWER_RSP       = 137,
+
+   WLAN_HAL_P2P_NOA_ATTR_IND       = 138,
+   
+   WLAN_HAL_ENABLE_RADAR_DETECT_REQ  = 139,
+   WLAN_HAL_ENABLE_RADAR_DETECT_RSP  = 140,
+   WLAN_HAL_GET_TPC_REPORT_REQ       = 141,
+   WLAN_HAL_GET_TPC_REPORT_RSP       = 142,
+   WLAN_HAL_RADAR_DETECT_IND         = 143,
+   WLAN_HAL_RADAR_DETECT_INTR_IND    = 144,
+   WLAN_HAL_KEEP_ALIVE_REQ           = 145,
+   WLAN_HAL_KEEP_ALIVE_RSP           = 146,      
+
+   /*PNO messages*/
+   WLAN_HAL_SET_PREF_NETWORK_REQ     = 147,
+   WLAN_HAL_SET_PREF_NETWORK_RSP     = 148,
+   WLAN_HAL_SET_RSSI_FILTER_REQ      = 149,
+   WLAN_HAL_SET_RSSI_FILTER_RSP      = 150,
+   WLAN_HAL_UPDATE_SCAN_PARAM_REQ    = 151,
+   WLAN_HAL_UPDATE_SCAN_PARAM_RSP    = 152,
+   WLAN_HAL_PREF_NETW_FOUND_IND      = 153, 
+
+   WLAN_HAL_SET_TX_PER_TRACKING_REQ  = 154,
+   WLAN_HAL_SET_TX_PER_TRACKING_RSP  = 155,
+   WLAN_HAL_TX_PER_HIT_IND           = 156,
+   
+   WLAN_HAL_8023_MULTICAST_LIST_REQ   = 157,
+   WLAN_HAL_8023_MULTICAST_LIST_RSP   = 158,   
+
+   WLAN_HAL_SET_PACKET_FILTER_REQ     = 159,
+   WLAN_HAL_SET_PACKET_FILTER_RSP     = 160,   
+   WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ   = 161,
+   WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP   = 162,   
+   WLAN_HAL_CLEAR_PACKET_FILTER_REQ         = 163,
+   WLAN_HAL_CLEAR_PACKET_FILTER_RSP         = 164,  
+   /*This is temp fix. Should be removed once 
+    * Host and Riva code is in sync*/
+   WLAN_HAL_INIT_SCAN_CON_REQ               = 165,
+    
+   WLAN_HAL_SET_POWER_PARAMS_REQ            = 166,
+   WLAN_HAL_SET_POWER_PARAMS_RSP            = 167,
+
+   WLAN_HAL_TSM_STATS_REQ                   = 168,
+   WLAN_HAL_TSM_STATS_RSP                   = 169,
+
+   // wake reason indication (WOW)
+   WLAN_HAL_WAKE_REASON_IND                 = 170,
+   // GTK offload support 
+   WLAN_HAL_GTK_OFFLOAD_REQ                 = 171,
+   WLAN_HAL_GTK_OFFLOAD_RSP                 = 172,
+   WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ         = 173,
+   WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP         = 174,
+
+   WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ       = 175,
+   WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP       = 176,
+   WLAN_HAL_EXCLUDE_UNENCRYPTED_IND         = 177,
+
+   WLAN_HAL_SET_THERMAL_MITIGATION_REQ      = 178,
+   WLAN_HAL_SET_THERMAL_MITIGATION_RSP      = 179,
+
+   WLAN_HAL_MSG_MAX = WLAN_HAL_MAX_ENUM_SIZE
+}tHalHostMsgType;
+
+/* Enumeration for Boolean - False/True, On/Off */
+typedef enum tagAniBoolean 
+{
+    eANI_BOOLEAN_FALSE = 0,
+    eANI_BOOLEAN_TRUE,
+    eANI_BOOLEAN_OFF = 0,
+    eANI_BOOLEAN_ON = 1,
+    eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF  /* define as 4 bytes data */
+} eAniBoolean;
+
+typedef enum
+{
+   eDRIVER_TYPE_PRODUCTION  = 0,
+   eDRIVER_TYPE_MFG         = 1,
+   eDRIVER_TYPE_DVT         = 2,
+   eDRIVER_TYPE_MAX         = WLAN_HAL_MAX_ENUM_SIZE
+} tDriverType;
+
+typedef enum
+{
+   HAL_STOP_TYPE_SYS_RESET,
+   HAL_STOP_TYPE_SYS_DEEP_SLEEP,
+   HAL_STOP_TYPE_RF_KILL,
+   HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
+}tHalStopType;
+
+typedef enum
+{
+   eHAL_SYS_MODE_NORMAL,
+   eHAL_SYS_MODE_LEARN,
+   eHAL_SYS_MODE_SCAN,
+   eHAL_SYS_MODE_PROMISC,
+   eHAL_SYS_MODE_SUSPEND_LINK,
+   eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} eHalSysMode;
+
+typedef enum
+{
+    PHY_SINGLE_CHANNEL_CENTERED = 0,     // 20MHz IF bandwidth centered on IF carrier
+    PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1,  // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
+    PHY_DOUBLE_CHANNEL_CENTERED = 2,     // 40MHz IF bandwidth centered on IF carrier
+    PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
+    PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
+}ePhyChanBondState;
+
+// Spatial Multiplexing(SM) Power Save mode
+typedef enum eSirMacHTMIMOPowerSaveState
+{
+  eSIR_HT_MIMO_PS_STATIC = 0,    // Static SM Power Save mode
+  eSIR_HT_MIMO_PS_DYNAMIC = 1,   // Dynamic SM Power Save mode
+  eSIR_HT_MIMO_PS_NA = 2,        // reserved
+  eSIR_HT_MIMO_PS_NO_LIMIT = 3,  // SM Power Save disabled
+  eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} tSirMacHTMIMOPowerSaveState;
+
+/* each station added has a rate mode which specifies the sta attributes */
+typedef enum eStaRateMode {
+    eSTA_TAURUS = 0,
+    eSTA_TITAN,
+    eSTA_POLARIS,
+    eSTA_11b,
+    eSTA_11bg,
+    eSTA_11a,
+    eSTA_11n,
+    eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
+} tStaRateMode, *tpStaRateMode;
+
+#define SIR_NUM_11B_RATES           4  //1,2,5.5,11
+#define SIR_NUM_11A_RATES           8  //6,9,12,18,24,36,48,54
+#define SIR_NUM_POLARIS_RATES       3  //72,96,108
+
+#define SIR_MAC_MAX_SUPPORTED_MCS_SET    16
+
+
+typedef enum eSirBssType
+{
+    eSIR_INFRASTRUCTURE_MODE,
+    eSIR_INFRA_AP_MODE,                    //Added for softAP support
+    eSIR_IBSS_MODE,
+    eSIR_BTAMP_STA_MODE,                   //Added for BT-AMP support
+    eSIR_BTAMP_AP_MODE,                    //Added for BT-AMP support
+    eSIR_AUTO_MODE,
+    eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
+} tSirBssType;
+
+typedef enum eSirNwType
+{
+    eSIR_11A_NW_TYPE,
+    eSIR_11B_NW_TYPE,
+    eSIR_11G_NW_TYPE,
+    eSIR_11N_NW_TYPE,
+    eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
+} tSirNwType;
+
+typedef tANI_U16 tSirMacBeaconInterval;
+
+#define SIR_MAC_RATESET_EID_MAX            12
+
+typedef enum eSirMacHTOperatingMode
+{
+  eSIR_HT_OP_MODE_PURE,                // No Protection
+  eSIR_HT_OP_MODE_OVERLAP_LEGACY,      // Overlap Legacy device present, protection is optional
+  eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT,  // No legacy device, but 20 MHz HT present
+  eSIR_HT_OP_MODE_MIXED,               // Protection is required
+  eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} tSirMacHTOperatingMode;
+
+typedef enum eSirMacHTSecondaryChannelOffset
+{
+    eHT_SECONDARY_CHANNEL_OFFSET_NONE = 0,
+    eHT_SECONDARY_CHANNEL_OFFSET_UP = 1,
+    eHT_SECONDARY_CHANNEL_OFFSET_DOWN = 3,
+    eHT_SECONDARY_CHANNEL_OFFSET_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} tSirMacHTSecondaryChannelOffset;
+
+/// Encryption type enum used with peer
+typedef enum eAniEdType
+{
+    eSIR_ED_NONE,
+    eSIR_ED_WEP40,
+    eSIR_ED_WEP104,
+    eSIR_ED_TKIP,
+    eSIR_ED_CCMP,
+    eSIR_ED_WPI,
+    eSIR_ED_AES_128_CMAC,
+    eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
+} tAniEdType;
+
+#define WLAN_MAX_KEY_RSC_LEN                16
+#define WLAN_WAPI_KEY_RSC_LEN               16
+
+/// MAX key length when ULA is used
+#define SIR_MAC_MAX_KEY_LENGTH              32
+#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS     4
+
+/// Enum to specify whether key is used
+/// for TX only, RX only or both
+typedef enum eAniKeyDirection
+{
+    eSIR_TX_ONLY,
+    eSIR_RX_ONLY,
+    eSIR_TX_RX,
+#ifdef WLAN_SOFTAP_FEATURE
+    eSIR_TX_DEFAULT,
+#endif
+    eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
+} tAniKeyDirection;
+
+typedef enum eAniWepType
+{
+    eSIR_WEP_STATIC,
+    eSIR_WEP_DYNAMIC,
+    eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} tAniWepType;
+
+typedef enum eSriLinkState {
+
+    eSIR_LINK_IDLE_STATE        = 0,
+    eSIR_LINK_PREASSOC_STATE    = 1,
+    eSIR_LINK_POSTASSOC_STATE   = 2,
+    eSIR_LINK_AP_STATE          = 3,
+    eSIR_LINK_IBSS_STATE        = 4,
+
+    /* BT-AMP Case */
+    eSIR_LINK_BTAMP_PREASSOC_STATE  = 5,
+    eSIR_LINK_BTAMP_POSTASSOC_STATE  = 6,
+    eSIR_LINK_BTAMP_AP_STATE  = 7,
+    eSIR_LINK_BTAMP_STA_STATE  = 8,
+    
+    /* Reserved for HAL Internal Use */
+    eSIR_LINK_LEARN_STATE       = 9,
+    eSIR_LINK_SCAN_STATE        = 10,
+    eSIR_LINK_FINISH_SCAN_STATE = 11,
+    eSIR_LINK_INIT_CAL_STATE    = 12,
+    eSIR_LINK_FINISH_CAL_STATE  = 13,
+#ifdef WLAN_FEATURE_P2P
+    eSIR_LINK_LISTEN_STATE      = 14,
+#endif
+    eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} tSirLinkState;
+
+typedef enum
+{
+    HAL_SUMMARY_STATS_INFO           = 0x00000001,
+    HAL_GLOBAL_CLASS_A_STATS_INFO    = 0x00000002,
+    HAL_GLOBAL_CLASS_B_STATS_INFO    = 0x00000004,
+    HAL_GLOBAL_CLASS_C_STATS_INFO    = 0x00000008,
+    HAL_GLOBAL_CLASS_D_STATS_INFO    = 0x00000010,
+    HAL_PER_STA_STATS_INFO           = 0x00000020
+}eHalStatsMask;
+
+/* BT-AMP events type */
+typedef enum 
+{
+    BTAMP_EVENT_CONNECTION_START,
+    BTAMP_EVENT_CONNECTION_STOP,
+    BTAMP_EVENT_CONNECTION_TERMINATED,
+    BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
+} tBtAmpEventType;
+
+//***************************************************************
+
+
+/*******************PE Statistics*************************/
+typedef enum
+{
+    PE_SUMMARY_STATS_INFO           = 0x00000001,
+    PE_GLOBAL_CLASS_A_STATS_INFO    = 0x00000002,
+    PE_GLOBAL_CLASS_B_STATS_INFO    = 0x00000004,
+    PE_GLOBAL_CLASS_C_STATS_INFO    = 0x00000008,
+    PE_GLOBAL_CLASS_D_STATS_INFO    = 0x00000010,
+    PE_PER_STA_STATS_INFO           = 0x00000020,
+    PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
+}ePEStatsMask;
+
+/*---------------------------------------------------------------------------
+  Message definitons - All the messages below need to be packed
+ ---------------------------------------------------------------------------*/
+
+#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
+#pragma pack(push, 1)
+#elif defined(__ANI_COMPILER_PRAGMA_PACK)
+#pragma pack(1)
+#else
+#endif
+
+/// Definition for HAL API Version.
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8                  revision;
+    tANI_U8                  version;
+    tANI_U8                  minor;
+    tANI_U8                  major;
+} tWcnssWlanVersion, *tpWcnssWlanVersion;
+
+/// Definition for Encryption Keys
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8                  keyId;
+    tANI_U8                  unicast;  // 0 for multicast
+    tAniKeyDirection         keyDirection;
+    tANI_U8                  keyRsc[WLAN_MAX_KEY_RSC_LEN];  // Usage is unknown
+    tANI_U8                  paeRole;  // =1 for authenticator,=0 for supplicant
+    tANI_U16                 keyLength;
+    tANI_U8                  key[SIR_MAC_MAX_KEY_LENGTH];
+} tSirKeys, *tpSirKeys;
+
+
+//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*STA Index*/
+    tANI_U16        staIdx;
+
+    /*Encryption Type used with peer*/
+    tAniEdType      encType;
+
+    /*STATIC/DYNAMIC - valid only for WEP*/
+    tAniWepType     wepType; 
+
+    /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
+    tANI_U8         defWEPIdx;
+
+#ifdef WLAN_SOFTAP_FEATURE
+    /* valid only for non-static WEP encyrptions */
+    tSirKeys        key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];            
+#else
+    tSirKeys        key;
+#endif
+  
+    /*Control for Replay Count, 1= Single TID based replay count on Tx
+      0 = Per TID based replay count on TX */
+    tANI_U8         singleTidRc;
+
+} tSetStaKeyParams, *tpSetStaKeyParams;
+
+
+
+/* 4-byte control message header used by HAL*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalHostMsgType  msgType;
+   tANI_U32         msgLen;
+} tHalMsgHeader, *tpHalMsgHeader;
+
+/* Config format required by HAL for each CFG item*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   /* Cfg Id. The Id required by HAL is exported by HAL
+    * in shared header file between UMAC and HAL.*/
+   tANI_U16   uCfgId;
+
+   /* Length of the Cfg. This parameter is used to go to next cfg 
+    * in the TLV format.*/
+   tANI_U16   uCfgLen;
+
+   /* Padding bytes for unaligned address's */
+   tANI_U16   uCfgPadBytes;
+
+   /* Reserve bytes for making cfgVal to align address */
+   tANI_U16   uCfgReserve;
+
+   /* Following the uCfgLen field there should be a 'uCfgLen' bytes
+    * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
+} tHalCfg, *tpHalCfg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_START_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
+{
+    /* Drive Type - Production or FTM etc */
+    tDriverType  driverType;
+
+    /*Length of the config buffer*/
+    tANI_U32  uConfigBufferLen;
+
+    /* Following this there is a TLV formatted buffer of length 
+     * "uConfigBufferLen" bytes containing all config values. 
+     * The TLV is expected to be formatted like this:
+     * 0           15            31           31+CFG_LEN-1        length-1
+     * |   CFG_ID   |   CFG_LEN   |   CFG_BODY    |  CFG_ID  |......|
+     */
+} tHalMacStartParameters, *tpHalMacStartParameters;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /* Note: The length specified in tHalMacStartReqMsg messages should be
+    * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
+   tHalMsgHeader header;
+   tHalMacStartParameters startReqParams;
+}  tHalMacStartReqMsg, *tpHalMacStartReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_START_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
+{
+   /*success or failure */
+   tANI_U16  status;
+
+   /*Max number of STA supported by the device*/
+   tANI_U8     ucMaxStations;
+
+   /*Max number of BSS supported by the device*/
+   tANI_U8     ucMaxBssids;
+
+   /*API Version */
+   tWcnssWlanVersion wcnssWlanVersion;
+
+   /*CRM build information */
+   tANI_U8     wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
+
+   /*hardware/chipset/misc version information */
+   tANI_U8     wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
+
+} tHalMacStartRspParams, *tpHalMacStartRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalMacStartRspParams startRspParams;
+}  tHalMacStartRspMsg, *tpHalMacStartRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_STOP_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*The reason for which the device is being stopped*/
+  tHalStopType   reason;
+
+}tHalMacStopReqParams, *tpHalMacStopReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalMacStopReqParams stopReqParams;
+}  tHalMacStopReqMsg, *tpHalMacStopReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_STOP_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+}tHalMacStopRspParams, *tpHalMacStopRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalMacStopRspParams stopRspParams;
+}  tHalMacStopRspMsg, *tpHalMacStopRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_UPDATE_CFG_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Length of the config buffer. Allows UMAC to update multiple CFGs */
+    tANI_U32  uConfigBufferLen;
+
+    /* Following this there is a TLV formatted buffer of length 
+     * "uConfigBufferLen" bytes containing all config values. 
+     * The TLV is expected to be formatted like this:
+     * 0           15            31           31+CFG_LEN-1        length-1
+     * |   CFG_ID   |   CFG_LEN   |   CFG_BODY    |  CFG_ID  |......|
+     */
+} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
+    * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
+   tHalMsgHeader header;
+   tHalUpdateCfgReqParams updateCfgReqParams;
+}  tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_UPDATE_CFG_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /* success or failure */
+  tANI_U32   status;
+
+}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalUpdateCfgRspParams updateCfgRspParams;
+}  tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_INIT_SCAN_REQ
+---------------------------------------------------------------------------*/
+
+/// Frame control field format (2 bytes)
+typedef  __ani_attr_pre_packed struct sSirMacFrameCtl
+{
+
+#ifndef ANI_LITTLE_BIT_ENDIAN
+
+    tANI_U8 subType :4;
+    tANI_U8 type :2;
+    tANI_U8 protVer :2;
+
+    tANI_U8 order :1;
+    tANI_U8 wep :1;
+    tANI_U8 moreData :1;
+    tANI_U8 powerMgmt :1;
+    tANI_U8 retry :1;
+    tANI_U8 moreFrag :1;
+    tANI_U8 fromDS :1;
+    tANI_U8 toDS :1;
+
+#else
+
+    tANI_U8 protVer :2;
+    tANI_U8 type :2;
+    tANI_U8 subType :4;
+
+    tANI_U8 toDS :1;
+    tANI_U8 fromDS :1;
+    tANI_U8 moreFrag :1;
+    tANI_U8 retry :1;
+    tANI_U8 powerMgmt :1;
+    tANI_U8 moreData :1;
+    tANI_U8 wep :1;
+    tANI_U8 order :1;
+
+#endif
+
+} __ani_attr_packed  tSirMacFrameCtl, *tpSirMacFrameCtl;
+
+/// Sequence control field
+typedef __ani_attr_pre_packed struct sSirMacSeqCtl
+{
+    tANI_U8 fragNum : 4;
+    tANI_U8 seqNumLo : 4;
+    tANI_U8 seqNumHi : 8;
+} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
+
+/// Management header format
+typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
+{
+    tSirMacFrameCtl fc;
+    tANI_U8           durationLo;
+    tANI_U8           durationHi;
+    tANI_U8              da[6];
+    tANI_U8              sa[6];
+    tANI_U8              bssId[6];
+    tSirMacSeqCtl   seqControl;
+} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
+
+/// Scan Entry to hold active BSS idx's
+typedef __ani_attr_pre_packed struct sSirScanEntry
+{
+    tANI_U8 bssIdx[HAL_NUM_BSSID];
+    tANI_U8 activeBSScnt;
+}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
+
+typedef PACKED_PRE struct PACKED_POST {
+
+    /*LEARN - AP Role
+      SCAN - STA Role*/
+    eHalSysMode scanMode;
+
+    /*BSSID of the BSS*/
+    tSirMacAddr bssid;
+
+    /*Whether BSS needs to be notified*/
+    tANI_U8 notifyBss;
+
+    /*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.*/
+    tANI_U8 frameType;
+
+    /*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.*/
+    tANI_U8 frameLength;
+
+    /* Following the framelength there is a MAC frame buffer if frameLength 
+       is non-zero. */
+    tSirMacMgmtHdr macMgmtHdr;
+
+    /*Entry to hold number of active BSS idx's*/
+    tSirScanEntry scanEntry;
+
+} tInitScanParams, * tpInitScanParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tInitScanParams initScanParams;
+}  tHalInitScanReqMsg, *tpHalInitScanReqMsg;
+
+typedef PACKED_PRE struct PACKED_POST {
+
+    /*LEARN - AP Role
+      SCAN - STA Role*/
+    eHalSysMode scanMode;
+
+    /*BSSID of the BSS*/
+    tSirMacAddr bssid;
+
+    /*Whether BSS needs to be notified*/
+    tANI_U8 notifyBss;
+
+    /*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.*/
+    tANI_U8 frameType;
+
+    /*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.*/
+    tANI_U8 frameLength;
+
+    /* Following the framelength there is a MAC frame buffer if frameLength 
+       is non-zero. */
+    tSirMacMgmtHdr macMgmtHdr;
+
+    /*Entry to hold number of active BSS idx's*/
+    tSirScanEntry scanEntry;
+
+    /* Single NoA usage in Scanning */
+    tANI_U8 useNoA;
+
+    /* Indicates the scan duration (in ms) */
+    tANI_U16 scanDuration;
+
+} tInitScanConParams, * tpInitScanConParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tInitScanConParams initScanParams;
+}  tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
+
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_INIT_SCAN_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+}tHalInitScanRspParams, *tpHalInitScanRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalInitScanRspParams initScanRspParams;
+}  tHalInitScanRspMsg, *tpHalInitScanRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_START_SCAN_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST 
+{
+   /*Indicates the channel to scan*/
+   tANI_U8 scanChannel;
+
+ } tStartScanParams, * tpStartScanParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tStartScanParams startScanParams;
+}  tHalStartScanReqMsg, *tpHalStartScanReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_START_SCAN_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+  tANI_U32 startTSF[2];
+  tPowerdBm txMgmtPower;
+
+}tHalStartScanRspParams, *tpHalStartScanRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalStartScanRspParams startScanRspParams;
+}  tHalStartScanRspMsg, *tpHalStartScanRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_END_SCAN_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /*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.*/
+    tANI_U8 scanChannel;
+
+} tEndScanParams, *tpEndScanParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tEndScanParams endScanParams;
+}  tHalEndScanReqMsg, *tpHalEndScanReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_END_SCAN_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+}tHalEndScanRspParams, *tpHalEndScanRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalEndScanRspParams endScanRspParams;
+}  tHalEndScanRspMsg, *tpHalEndScanRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_FINISH_SCAN_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Identifies the operational state of the AP/STA
+     * LEARN - AP Role SCAN - STA Role */
+    eHalSysMode scanMode;
+
+    /*Operating channel to tune to.*/
+    tANI_U8 currentOperChannel;
+
+    /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
+      40 MHz extension channel in combination with the control channel*/
+    ePhyChanBondState cbState;
+
+    /*BSSID of the BSS*/
+    tSirMacAddr bssid;
+
+    /*Whether BSS needs to be notified*/
+    tANI_U8 notifyBss;
+
+    /*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.*/
+    tANI_U8 frameType;
+
+    /*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.*/
+    tANI_U8 frameLength;
+    
+    /*Following the framelength there is a MAC frame buffer if frameLength 
+      is non-zero.*/    
+    tSirMacMgmtHdr macMgmtHdr;
+
+    /*Entry to hold number of active BSS idx's*/
+    tSirScanEntry scanEntry;
+
+} tFinishScanParams, *tpFinishScanParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tFinishScanParams finishScanParams;
+}  tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_FINISH_SCAN_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalFinishScanRspParams finishScanRspParams;
+}  tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_CONFIG_STA_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST {
+    /*
+    * 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.
+    */
+
+    tStaRateMode        opRateMode;
+    // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
+    tANI_U16             llbRates[SIR_NUM_11B_RATES];
+    tANI_U16             llaRates[SIR_NUM_11A_RATES];
+    tANI_U16             aniLegacyRates[SIR_NUM_POLARIS_RATES];
+    tANI_U16             reserved;
+
+    //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.
+    tANI_U32             aniEnhancedRateBitmap; //Titan and Taurus Rates
+
+    /*
+    * 0-76 bits used, remaining reserved
+    * bits 0-15 and 32 should be set.
+    */
+    tANI_U8 supportedMCSSet[SIR_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.
+     */
+    tANI_U16 rxHighestDataRate;
+
+} tSirSupportedRates, *tpSirSupportedRates;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*BSSID of STA*/
+    tSirMacAddr bssId;
+
+    /*ASSOC ID, as assigned by UMAC*/
+    tANI_U16 assocId;
+
+    /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
+    tANI_U8 staType;
+
+    /*Short Preamble Supported.*/
+    tANI_U8 shortPreambleSupported;
+
+    /*MAC Address of STA*/
+    tSirMacAddr staMac;
+
+    /*Listen interval of the STA*/
+    tANI_U16 listenInterval;
+
+    /*Support for 11e/WMM*/
+    tANI_U8 wmmEnabled;
+
+    /*11n HT capable STA*/
+    tANI_U8 htCapable;
+
+    /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
+    tANI_U8 txChannelWidthSet;
+
+    /*RIFS mode 0 - NA, 1 - Allowed */
+    tANI_U8 rifsMode;
+
+    /*L-SIG TXOP Protection mechanism 
+      0 - No Support, 1 - Supported
+      SG - there is global field */
+    tANI_U8 lsigTxopProtection;
+
+    /*Max Ampdu Size supported by STA. TPE programming.
+      0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
+    tANI_U8 maxAmpduSize;
+
+    /*Max Ampdu density. Used by RA.  3 : 0~7 : 2^(11nAMPDUdensity -4)*/
+    tANI_U8 maxAmpduDensity;
+
+    /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
+    tANI_U8 maxAmsduSize;
+
+    /*Short GI support for 40Mhz packets*/
+    tANI_U8 fShortGI40Mhz;
+
+    /*Short GI support for 20Mhz packets*/
+    tANI_U8 fShortGI20Mhz;
+
+    /*These rates are the intersection of peer and self capabilities.*/
+    tSirSupportedRates supportedRates;
+
+    /*Robust Management Frame (RMF) enabled/disabled*/
+    tANI_U8 rmfEnabled;
+
+    /* The unicast encryption type in the association */
+    tANI_U32 encryptType;
+    
+    /*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. 0 = Add, 1 = Update*/
+    tANI_U8 action;
+
+    /*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 */
+    tANI_U8 uAPSD;
+
+    /*Max SP Length*/
+    tANI_U8 maxSPLen;
+
+    /*11n Green Field preamble support
+      0 - Not supported, 1 - Supported */
+    tANI_U8 greenFieldCapable;
+
+    /*MIMO Power Save mode*/
+    tSirMacHTMIMOPowerSaveState mimoPS;
+
+    /*Delayed BA Support*/
+    tANI_U8 delayedBASupport;
+    
+    /*Max AMPDU duration in 32us*/
+    tANI_U8 us32MaxAmpduDuration;
+    
+    /*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.*/
+    tANI_U8 fDsssCckMode40Mhz;
+
+    /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
+       Retained for backward compalibity with existing HAL code*/
+    tANI_U8 staIdx;
+
+    /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
+       Retained for backward compalibity with existing HAL code*/
+    tANI_U8 bssIdx;
+
+    tANI_U8  p2pCapableSta;
+
+} tConfigStaParams, *tpConfigStaParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tConfigStaParams configStaParams;
+}  tConfigStaReqMsg, *tpConfigStaReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_CONFIG_STA_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+  /* Station index; valid only when 'status' field value SUCCESS */
+  tANI_U8 staIdx;
+
+  /* BSSID Index of BSS to which the station is associated */
+  tANI_U8 bssIdx;
+
+  /* DPU Index for PTK */
+  tANI_U8 dpuIndex;
+
+  /* DPU Index for GTK */  
+  tANI_U8 bcastDpuIndex;
+
+  /*DPU Index for IGTK  */
+  tANI_U8 bcastMgmtDpuIdx;
+
+  /*PTK DPU signature*/
+  tANI_U8 ucUcastSig;
+
+  /*GTK DPU isignature*/
+  tANI_U8 ucBcastSig;
+
+  /* IGTK DPU signature*/
+  tANI_U8 ucMgmtSig;
+
+  tANI_U8  p2pCapableSta;
+
+}tConfigStaRspParams, *tpConfigStaRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tConfigStaRspParams configStaRspParams;
+}tConfigStaRspMsg, *tpConfigStaRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_DELETE_STA_REQ
+---------------------------------------------------------------------------*/
+
+/* Delete STA Request params */
+typedef PACKED_PRE struct PACKED_POST 
+{
+   /* Index of STA to delete */
+   tANI_U8    staIdx;
+} tDeleteStaParams, *tpDeleteStaParams;
+
+/* Delete STA Request message*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tDeleteStaParams delStaParams;
+}  tDeleteStaReqMsg, *tpDeleteStaReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_DELETE_STA_RSP
+---------------------------------------------------------------------------*/
+
+/* Delete STA Response Params */
+typedef PACKED_PRE struct PACKED_POST 
+{
+   /*success or failure */
+   tANI_U32   status;
+
+   /* Index of STA deleted */
+   tANI_U8    staId;
+} tDeleteStaRspParams, *tpDeleteStaRspParams;
+
+/* Delete STA Response message*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tDeleteStaRspParams delStaRspParams;
+}  tDeleteStaRspMsg, *tpDeleteStaRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_CONFIG_BSS_REQ
+---------------------------------------------------------------------------*/
+
+//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
+typedef __ani_attr_pre_packed struct sSirMacRateSet
+{
+    tANI_U8  numRates;
+    tANI_U8  rate[SIR_MAC_RATESET_EID_MAX];
+} __ani_attr_packed tSirMacRateSet;
+
+// access category record
+typedef __ani_attr_pre_packed struct sSirMacAciAifsn
+{
+#ifndef ANI_LITTLE_BIT_ENDIAN
+    tANI_U8  rsvd  : 1;
+    tANI_U8  aci   : 2;
+    tANI_U8  acm   : 1;
+    tANI_U8  aifsn : 4;
+#else
+    tANI_U8  aifsn : 4;
+    tANI_U8  acm   : 1;
+    tANI_U8  aci   : 2;
+    tANI_U8  rsvd  : 1;
+#endif
+} __ani_attr_packed tSirMacAciAifsn;
+
+// contention window size
+typedef __ani_attr_pre_packed struct sSirMacCW
+{
+#ifndef ANI_LITTLE_BIT_ENDIAN
+    tANI_U8  max : 4;
+    tANI_U8  min : 4;
+#else
+    tANI_U8  min : 4;
+    tANI_U8  max : 4;
+#endif
+} __ani_attr_packed tSirMacCW;
+
+typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
+{
+    tSirMacAciAifsn  aci;
+    tSirMacCW        cw;
+    tANI_U16         txoplimit;
+} __ani_attr_packed tSirMacEdcaParamRecord;
+
+typedef __ani_attr_pre_packed struct sSirMacSSid
+{
+    tANI_U8        length;
+    tANI_U8        ssId[32];
+} __ani_attr_packed tSirMacSSid;
+
+// Concurrency role.  These are generic IDs that identify the various roles
+// in the software system.
+typedef enum {
+    HAL_STA_MODE=0, 
+    HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only. 
+    HAL_P2P_CLIENT_MODE,
+    HAL_P2P_GO_MODE,
+    HAL_MONITOR_MODE,
+} tHalConMode;
+
+//This is a bit pattern to be set for each mode
+//bit 0 - sta mode
+//bit 1 - ap mode
+//bit 2 - p2p client mode
+//bit 3 - p2p go mode
+typedef enum
+{
+    HAL_STA=1, 
+    HAL_SAP=2,
+    HAL_STA_SAP=3, //to support sta, softAp  mode . This means STA+AP mode
+    HAL_P2P_CLIENT=4,
+    HAL_P2P_GO=8,
+    HAL_MAX_CONCURRENCY_PERSONA=4
+} tHalConcurrencyMode;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* BSSID */
+    tSirMacAddr bssId;
+
+#ifdef HAL_SELF_STA_PER_BSS
+    /* Self Mac Address */
+    tSirMacAddr  selfMacAddr;
+#endif
+
+    /* BSS type */
+    tSirBssType bssType;
+
+    /*Operational Mode: AP =0, STA = 1*/
+    tANI_U8 operMode;
+
+    /*Network Type*/
+    tSirNwType nwType;
+
+    /*Used to classify PURE_11G/11G_MIXED to program MTU*/
+    tANI_U8 shortSlotTimeSupported;
+
+    /*Co-exist with 11a STA*/
+    tANI_U8 llaCoexist;
+
+    /*Co-exist with 11b STA*/
+    tANI_U8 llbCoexist;
+
+    /*Co-exist with 11g STA*/
+    tANI_U8 llgCoexist;
+
+    /*Coexistence with 11n STA*/
+    tANI_U8 ht20Coexist;
+
+    /*Non GF coexist flag*/
+    tANI_U8 llnNonGFCoexist;
+
+    /*TXOP protection support*/
+    tANI_U8 fLsigTXOPProtectionFullSupport;
+
+    /*RIFS mode*/
+    tANI_U8 fRIFSMode;
+
+    /*Beacon Interval in TU*/
+    tSirMacBeaconInterval beaconInterval;
+
+    /*DTIM period*/
+    tANI_U8 dtimPeriod;
+
+    /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
+    tANI_U8 txChannelWidthSet;
+
+    /*Operating channel*/
+    tANI_U8 currentOperChannel;
+
+    /*Extension channel for channel bonding*/
+    tANI_U8 currentExtChannel;
+
+    /*Reserved to align next field on a dword boundary*/
+    tANI_U8 reserved;
+
+    /*Context of the station being added in HW
+      Add a STA entry for "itself" -
+      On AP  - Add the AP itself in an "STA context"
+      On STA - Add the AP to which this STA is joining in an "STA context" */
+    tConfigStaParams staContext;
+
+    /*SSID of the BSS*/
+    tSirMacSSid ssId;
+
+    /*HAL should update the existing BSS entry, if this flag is set.
+      UMAC will set this flag in case of reassoc, where we want to resue the
+      the old BSSID and still return success 0 = Add, 1 = Update*/
+    tANI_U8 action;
+
+    /* MAC Rate Set */
+    tSirMacRateSet rateSet;
+
+    /*Enable/Disable HT capabilities of the BSS*/
+    tANI_U8 htCapable;
+
+    // Enable/Disable OBSS protection
+    tANI_U8 obssProtEnabled;
+
+    /*RMF enabled/disabled*/
+    tANI_U8 rmfEnabled;
+
+    /*HT Operating Mode operating mode of the 802.11n STA*/
+    tSirMacHTOperatingMode htOperMode;
+
+    /*Dual CTS Protection: 0 - Unused, 1 - Used*/
+    tANI_U8 dualCTSProtection;
+
+    /* Probe Response Max retries */
+    tANI_U8   ucMaxProbeRespRetryLimit;
+
+    /* To Enable Hidden ssid */
+    tANI_U8   bHiddenSSIDEn;
+
+    /* To Enable Disable FW Proxy Probe Resp */
+    tANI_U8   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*/
+    tANI_U8   edcaParamsValid;
+
+    /*EDCA Parameters for Best Effort Access Category*/
+    tSirMacEdcaParamRecord acbe;
+    
+    /*EDCA Parameters forBackground Access Category*/
+    tSirMacEdcaParamRecord acbk;
+
+    /*EDCA Parameters for Video Access Category*/
+    tSirMacEdcaParamRecord acvi;
+
+    /*EDCA Parameters for Voice Access Category*/
+    tSirMacEdcaParamRecord acvo;
+
+#ifdef WLAN_FEATURE_VOWIFI_11R
+    tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
+    tSetStaKeyParams extSetStaKeyParam;  //SetStaKeyParams for ext bss msg
+#endif
+
+    /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */    
+    tANI_U8   halPersona;
+   
+    tANI_U8 bSpectrumMgtEnable;
+
+    /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
+    tANI_S8     txMgmtPower;
+    /*maxTxPower has max power to be used after applying the power constraint if any */
+    tANI_S8     maxTxPower;
+  
+} tConfigBssParams, * tpConfigBssParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tConfigBssParams configBssParams;
+}  tConfigBssReqMsg, *tpConfigBssReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_CONFIG_BSS_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Success or Failure */
+    tANI_U32   status;
+
+    /* BSS index allocated by HAL */
+    tANI_U8    bssIdx;
+
+    /* DPU descriptor index for PTK */
+    tANI_U8    dpuDescIndx;
+
+    /* PTK DPU signature */
+    tANI_U8    ucastDpuSignature;
+
+    /* DPU descriptor index for GTK*/
+    tANI_U8    bcastDpuDescIndx;
+
+    /* GTK DPU signature */
+    tANI_U8    bcastDpuSignature;
+
+    /*DPU descriptor for IGTK*/
+    tANI_U8    mgmtDpuDescIndx;
+
+    /* IGTK DPU signature */
+    tANI_U8    mgmtDpuSignature;
+
+    /* Station Index for BSS entry*/
+    tANI_U8     bssStaIdx;
+
+    /* Self station index for this BSS */
+    tANI_U8     bssSelfStaIdx;
+
+    /* Bcast station for buffering bcast frames in AP role */
+    tANI_U8     bssBcastStaIdx;
+
+    /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
+    tSirMacAddr   staMac;
+
+    /*HAL fills in the tx power used for mgmt frames in this field. */
+    tANI_S8     txMgmtPower;
+
+} tConfigBssRspParams, * tpConfigBssRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tConfigBssRspParams configBssRspParams;
+}  tConfigBssRspMsg, *tpConfigBssRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_DELETE_BSS_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* BSS index to be deleted */
+    tANI_U8 bssIdx;
+
+} tDeleteBssParams, *tpDeleteBssParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tDeleteBssParams deleteBssParams;
+}  tDeleteBssReqMsg, *tpDeleteBssReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_DELETE_BSS_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Success or Failure */
+    tANI_U32   status;
+
+    /* BSS index that has been deleted */
+    tANI_U8 bssIdx;
+
+} tDeleteBssRspParams, *tpDeleteBssRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tDeleteBssRspParams deleteBssRspParams;
+}  tDeleteBssRspMsg, *tpDeleteBssRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_JOIN_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*Indicates the BSSID to which STA is going to associate*/
+  tSirMacAddr     bssId; 
+
+  /*Indicates the channel to switch to.*/
+  tANI_U8         ucChannel;
+
+  /* Self STA MAC */
+  tSirMacAddr selfStaMacAddr;
+     
+  /*Local power constraint*/
+  tANI_U8         ucLocalPowerConstraint;
+
+  /*Secondary channel offset */
+  tSirMacHTSecondaryChannelOffset  secondaryChannelOffset;
+
+  /*link State*/
+  tSirLinkState   linkState;
+
+  /* Max TX power */
+  tANI_S8 maxTxPower;
+
+} tHalJoinReqParams, *tpHalJoinReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalJoinReqParams joinReqParams;
+}  tHalJoinReqMsg, *tpHalJoinReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_JOIN_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+  /* HAL fills in the tx power used for mgmt frames in this field */
+  tPowerdBm txMgmtPower;
+
+}tHalJoinRspParams, *tpHalJoinRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalJoinRspParams joinRspParams;
+}tHalJoinRspMsg, *tpHalJoinRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_POST_ASSOC_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tConfigStaParams configStaParams;
+   tConfigBssParams configBssParams;
+} tPostAssocReqParams, *tpPostAssocReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tPostAssocReqParams postAssocReqParams;
+}  tPostAssocReqMsg, *tpPostAssocReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_POST_ASSOC_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tConfigStaRspParams configStaRspParams;
+   tConfigBssRspParams configBssRspParams;
+} tPostAssocRspParams, *tpPostAssocRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tPostAssocRspParams postAssocRspParams;
+}  tPostAssocRspMsg, *tpPostAssocRspMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_SET_BSSKEY_REQ
+---------------------------------------------------------------------------*/
+
+/*
+ * This is used by PE to create a set of WEP keys for a given BSS.
+ */
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*BSS Index of the BSS*/
+    tANI_U8         bssIdx;
+
+    /*Encryption Type used with peer*/
+    tAniEdType      encType;
+
+    /*Number of keys*/
+    tANI_U8         numKeys;
+
+    /*Array of keys.*/
+    tSirKeys        key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
+  
+    /*Control for Replay Count, 1= Single TID based replay count on Tx
+    0 = Per TID based replay count on TX */
+    tANI_U8         singleTidRc;
+} tSetBssKeyParams, *tpSetBssKeyParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSetBssKeyParams setBssKeyParams;
+} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_SET_BSSKEY_RSP
+---------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSetBssKeyRspParams setBssKeyRspParams;
+}  tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
+
+/*---------------------------------------------------------------------------
+   WLAN_HAL_SET_STAKEY_REQ,
+---------------------------------------------------------------------------*/
+
+/*
+ * This is used by PE to configure the key information on a given station.
+ * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
+ * a preconfigured key from a BSS the station assoicated with; otherwise
+ * a new key descriptor is created based on the key field.
+ */
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSetStaKeyParams setStaKeyParams;
+} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
+
+/*---------------------------------------------------------------------------
+   WLAN_HAL_SET_STAKEY_RSP,
+---------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSetStaKeyRspParams setStaKeyRspParams;
+} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
+
+/*---------------------------------------------------------------------------
+   WLAN_HAL_RMV_BSSKEY_REQ,
+---------------------------------------------------------------------------*/
+/*
+ * This is used by PE to remove keys for a given BSS.
+ */
+typedef PACKED_PRE struct PACKED_POST
+
+{
+    /*BSS Index of the BSS*/
+    tANI_U8         bssIdx;
+    
+    /*Encryption Type used with peer*/
+    tAniEdType      encType;
+
+    /*Key Id*/
+    tANI_U8         keyId;
+
+    /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
+    tAniWepType    wepType;
+
+} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tRemoveBssKeyParams removeBssKeyParams;
+}  tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
+
+/*---------------------------------------------------------------------------
+   WLAN_HAL_RMV_BSSKEY_RSP,
+---------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tRemoveBssKeyRspParams removeBssKeyRspParams;
+}  tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
+
+/*---------------------------------------------------------------------------
+   WLAN_HAL_RMV_STAKEY_REQ,
+---------------------------------------------------------------------------*/
+/*
+ * This is used by PE to Remove the key information on a given station.
+ */
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*STA Index*/
+    tANI_U16         staIdx;
+
+    /*Encryption Type used with peer*/
+    tAniEdType      encType;
+
+    /*Key Id*/
+    tANI_U8           keyId;
+
+    /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
+      the same key is used for both broadcast and unicast.*/
+    tANI_BOOLEAN    unicast;
+
+} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tRemoveStaKeyParams removeStaKeyParams;
+}  tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
+
+/*---------------------------------------------------------------------------
+   WLAN_HAL_RMV_STAKEY_RSP,
+---------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tRemoveStaKeyRspParams removeStaKeyRspParams;
+}  tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
+
+
+
+
+
+/*---------------------------------------------------------------------------
+WLAN_HAL_CH_SWITCH_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Channel number */
+    tANI_U8 channelNumber;
+
+    /* Local power constraint */
+    tANI_U8 localPowerConstraint;
+
+    /*Secondary channel offset */
+    tSirMacHTSecondaryChannelOffset secondaryChannelOffset;
+
+    //HAL fills in the tx power used for mgmt frames in this field.
+    tPowerdBm txMgmtPower;
+
+    /* Max TX power */
+    tPowerdBm maxTxPower;
+    
+    /* Self STA MAC */
+    tSirMacAddr selfStaMacAddr;
+
+    /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
+       this should be applied only to that session*/
+    /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
+     * bssid needs to be out of the VOWifi feature flag */
+    /* 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
+     */
+    tSirMacAddr bssId;
+   
+}tSwitchChannelParams, *tpSwitchChannelParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSwitchChannelParams switchChannelParams;
+}  tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
+
+/*---------------------------------------------------------------------------
+WLAN_HAL_CH_SWITCH_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Status */
+    tANI_U32 status;
+
+    /* Channel number - same as in request*/
+    tANI_U8 channelNumber;
+
+    /* HAL fills in the tx power used for mgmt frames in this field */
+    tPowerdBm txMgmtPower;
+
+    /* BSSID needed to identify session - same as in request*/
+    tSirMacAddr bssId;
+    
+}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSwitchChannelRspParams switchChannelRspParams;
+}  tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
+
+/*---------------------------------------------------------------------------
+WLAN_HAL_UPD_EDCA_PARAMS_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /*BSS Index*/
+   tANI_U16 bssIdx;
+
+   /* Best Effort */
+   tSirMacEdcaParamRecord acbe; 
+
+   /* Background */
+   tSirMacEdcaParamRecord acbk;
+   
+   /* Video */
+   tSirMacEdcaParamRecord acvi;
+
+   /* Voice */
+   tSirMacEdcaParamRecord acvo;
+
+} tEdcaParams, *tpEdcaParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tEdcaParams edcaParams;
+}  tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
+
+/*---------------------------------------------------------------------------
+WLAN_HAL_UPD_EDCA_PARAMS_RSP
+---------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+} tEdcaRspParams, *tpEdcaRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tEdcaRspParams edcaRspParams;
+}  tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
+
+
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_GET_STATS_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+
+{
+    /* Index of STA to which the statistics */
+    tANI_U16 staIdx;
+
+    /* Encryption mode */
+    tANI_U8 encMode;
+    
+    /* status */
+    tANI_U32  status;
+    
+    /* Statistics */
+    tANI_U32  sendBlocks;
+    tANI_U32  recvBlocks;
+    tANI_U32  replays;
+    tANI_U8   micErrorCnt;
+    tANI_U32  protExclCnt;
+    tANI_U16  formatErrCnt;
+    tANI_U16  unDecryptableCnt;
+    tANI_U32  decryptErrCnt;
+    tANI_U32  decryptOkCnt;
+} tDpuStatsParams, * tpDpuStatsParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /* Valid STA Idx for per STA stats request */
+   tANI_U32    staId;
+
+   /* Categories of stats requested as specified in eHalStatsMask*/
+   tANI_U32    statsMask;
+}tHalStatsReqParams, *tpHalStatsReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader        header;
+   tHalStatsReqParams   statsReqParams;
+} tHalStatsReqMsg, *tpHalStatsReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_GET_STATS_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32 retry_cnt[4];          //Total number of packets(per AC) that were successfully transmitted with retries
+    tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
+                                    // station successfully transmitted after more than one retransmission attempt
+
+    tANI_U32 tx_frm_cnt[4];         //Total number of packets(per AC) that were successfully transmitted 
+                                    //(with and without retries, including multi-cast, broadcast)     
+    tANI_U32 rx_frm_cnt;            //Total number of packets that were successfully received 
+                                    //(after appropriate filter rules including multi-cast, broadcast)    
+    tANI_U32 frm_dup_cnt;           //Total number of duplicate frames received successfully
+    tANI_U32 fail_cnt[4];           //Total number packets(per AC) failed to transmit
+    tANI_U32 rts_fail_cnt;          //Total number of RTS/CTS sequence failures for transmission of a packet
+    tANI_U32 ack_fail_cnt;          //Total number packets failed transmit because of no ACK from the remote entity
+    tANI_U32 rts_succ_cnt;          //Total number of RTS/CTS sequence success for transmission of a packet 
+    tANI_U32 rx_discard_cnt;        //The sum of the receive error count and dropped-receive-buffer error count. 
+                                    //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
+    tANI_U32 rx_error_cnt;          //The receive error count. HAL will provide the RxP FCS error global counter.
+    tANI_U32 tx_byte_cnt;           //The sum of the transmit-directed byte count, transmit-multicast byte count 
+                                    //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters 
+                                    //to provide this.
+}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
+
+
+// defines tx_rate_flags
+typedef enum eTxRateInfo
+{
+   eHAL_TX_RATE_LEGACY = 0x1,    /* Legacy rates */
+   eHAL_TX_RATE_HT20   = 0x2,    /* HT20 rates */
+   eHAL_TX_RATE_HT40   = 0x4,    /* HT40 rates */
+   eHAL_TX_RATE_SGI    = 0x8,    /* Rate with Short guard interval */
+   eHAL_TX_RATE_LGI    = 0x10    /* Rate with Long guard interval */
+} tTxrateinfoflags;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32 rx_frag_cnt;              //The number of MPDU frames received by the 802.11 station for MSDU packets 
+                                       //or MMPDU frames
+    tANI_U32 promiscuous_rx_frag_cnt;  //The number of MPDU frames received by the 802.11 station for MSDU packets 
+                                       //or MMPDU frames when a promiscuous packet filter was enabled
+    tANI_U32 rx_input_sensitivity;     //The receiver input sensitivity referenced to a FER of 8% at an MPDU length 
+                                       //of 1024 bytes at the antenna connector. Each element of the array shall correspond 
+                                       //to a supported rate and the order shall be the same as the supporteRates parameter.
+    tANI_U32 max_pwr;                  //The maximum transmit power in dBm upto one decimal. 
+                                       //for eg: if it is 10.5dBm, the value would be 105 
+    tANI_U32 sync_fail_cnt;            //Number of times the receiver failed to synchronize with the incoming signal 
+                                       //after detecting the sync in the preamble of the transmitted PLCP protocol data unit. 
+
+    tANI_U32 tx_rate;                  //Legacy transmit rate, in units of 500 kbit/sec, for the most 
+                                       //recently transmitted frame    
+    tANI_U32  mcs_index;               //mcs index for HT20 and HT40 rates
+    tANI_U32  tx_rate_flags;           //to differentiate between HT20 and 
+                                       //HT40 rates;  short and long guard interval  
+}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32 rx_wep_unencrypted_frm_cnt;  //The number of unencrypted received MPDU frames that the MAC layer discarded when 
+                                          //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object 
+                                          //is enabled
+    tANI_U32 rx_mic_fail_cnt;             //The number of received MSDU packets that that the 802.11 station discarded 
+                                          //because of MIC failures
+    tANI_U32 tkip_icv_err;                //The number of encrypted MPDU frames that the 802.11 station failed to decrypt 
+                                          //because of a TKIP ICV error
+    tANI_U32 aes_ccmp_format_err;         //The number of received MPDU frames that the 802.11 discarded because of an 
+                                          //invalid AES-CCMP format
+    tANI_U32 aes_ccmp_replay_cnt;         //The number of received MPDU frames that the 802.11 station discarded because of 
+                                          //the AES-CCMP replay protection procedure
+    tANI_U32 aes_ccmp_decrpt_err;         //The number of received MPDU frames that the 802.11 station discarded because of 
+                                          //errors detected by the AES-CCMP decryption algorithm
+    tANI_U32 wep_undecryptable_cnt;       //The number of encrypted MPDU frames received for which a WEP decryption key was 
+                                          //not available on the 802.11 station
+    tANI_U32 wep_icv_err;                 //The number of encrypted MPDU frames that the 802.11 station failed to decrypt 
+                                          //because of a WEP ICV error
+    tANI_U32 rx_decrypt_succ_cnt;         //The number of received encrypted packets that the 802.11 station successfully 
+                                          //decrypted
+    tANI_U32 rx_decrypt_fail_cnt;         //The number of encrypted packets that the 802.11 station failed to decrypt
+
+}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
+   
+typedef PACKED_PRE struct PACKED_POST
+{
+    tAniGlobalSecurityStats ucStats;
+    tAniGlobalSecurityStats mcbcStats;
+}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32 rx_amsdu_cnt;             //This counter shall be incremented for a received A-MSDU frame with the stations 
+                                       //MAC address in the address 1 field or an A-MSDU frame with a group address in the 
+                                       //address 1 field
+    tANI_U32 rx_ampdu_cnt;             //This counter shall be incremented when the MAC receives an AMPDU from the PHY
+    tANI_U32 tx_20_frm_cnt;            //This counter shall be incremented when a Frame is transmitted only on the 
+                                       //primary channel
+    tANI_U32 rx_20_frm_cnt;            //This counter shall be incremented when a Frame is received only on the primary channel
+    tANI_U32 rx_mpdu_in_ampdu_cnt;     //This counter shall be incremented by the number of MPDUs received in the A-MPDU 
+                                       //when an A-MPDU is received
+    tANI_U32 ampdu_delimiter_crc_err;  //This counter shall be incremented when an MPDU delimiter has a CRC error when this 
+                                       //is the first CRC error in the received AMPDU or when the previous delimiter has been 
+                                       //decoded correctly
+}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32 tx_frag_cnt[4];        //The number of MPDU frames that the 802.11 station transmitted and acknowledged 
+                                    //through a received 802.11 ACK frame
+    tANI_U32 tx_ampdu_cnt;          //This counter shall be incremented when an A-MPDU is transmitted 
+    tANI_U32 tx_mpdu_in_ampdu_cnt;  //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU 
+                                    //is transmitted
+}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /* Success or Failure */
+   tANI_U32 status;
+
+   /* STA Idx */
+   tANI_U32 staId;
+
+   /* Categories of STATS being returned as per eHalStatsMask*/
+   tANI_U32 statsMask;
+
+   /* message type is same as the request type */
+   tANI_U16 msgType;
+
+   /* length of the entire request, includes the pStatsBuf length too */
+   tANI_U16 msgLen;  
+
+} tHalStatsRspParams, *tpHalStatsRspParams;
+
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader  header;
+   tHalStatsRspParams statsRspParams;
+} tHalStatsRspMsg, *tpHalStatsRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_LINK_ST_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tSirMacAddr bssid;
+    tSirLinkState state;
+    tSirMacAddr selfMacAddr;
+} tLinkStateParams, *tpLinkStateParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tLinkStateParams linkStateParams;
+}  tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_LINK_ST_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+} tLinkStateRspParams, *tpLinkStateRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tLinkStateRspParams linkStateRspParams;
+}  tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_TS_REQ
+ *--------------------------------------------------------------------------*/
+
+/* TSPEC Params */
+typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
+{
+#ifndef ANI_LITTLE_BIT_ENDIAN
+    tANI_U16       ackPolicy : 2;
+    tANI_U16       userPrio : 3;
+    tANI_U16       psb : 1;
+    tANI_U16       aggregation : 1;
+    tANI_U16       accessPolicy : 2;
+    tANI_U16       direction : 2;
+    tANI_U16       tsid : 4;
+    tANI_U16       trafficType : 1;
+#else
+    tANI_U16       trafficType : 1;
+    tANI_U16       tsid : 4;
+    tANI_U16       direction : 2;
+    tANI_U16       accessPolicy : 2;
+    tANI_U16       aggregation : 1;
+    tANI_U16       psb : 1;
+    tANI_U16       userPrio : 3;
+    tANI_U16       ackPolicy : 2;
+#endif
+} __ani_attr_packed tSirMacTSInfoTfc;
+
+/* Flag to schedule the traffic type */
+typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
+{
+#ifndef ANI_LITTLE_BIT_ENDIAN
+    tANI_U8        rsvd : 7;
+    tANI_U8        schedule : 1;
+#else
+    tANI_U8        schedule : 1;
+    tANI_U8        rsvd : 7;
+#endif
+} __ani_attr_packed tSirMacTSInfoSch;
+
+/* Traffic and scheduling info */
+typedef __ani_attr_pre_packed struct sSirMacTSInfo
+{
+    tSirMacTSInfoTfc traffic;
+    tSirMacTSInfoSch schedule;
+} __ani_attr_packed tSirMacTSInfo;
+
+/* Information elements */
+typedef __ani_attr_pre_packed struct sSirMacTspecIE
+{
+    tANI_U8             type;
+    tANI_U8             length;
+    tSirMacTSInfo       tsinfo;
+    tANI_U16            nomMsduSz;
+    tANI_U16            maxMsduSz;
+    tANI_U32            minSvcInterval;
+    tANI_U32            maxSvcInterval;
+    tANI_U32            inactInterval;
+    tANI_U32            suspendInterval;
+    tANI_U32            svcStartTime;
+    tANI_U32            minDataRate;
+    tANI_U32            meanDataRate;
+    tANI_U32            peakDataRate;
+    tANI_U32            maxBurstSz;
+    tANI_U32            delayBound;
+    tANI_U32            minPhyRate;
+    tANI_U16            surplusBw;
+    tANI_U16            mediumTime;
+}__ani_attr_packed tSirMacTspecIE;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Station Index */
+    tANI_U16 staIdx;
+
+    /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
+    tANI_U16 tspecIdx;
+
+    /* To program TPE with required parameters */
+    tSirMacTspecIE   tspec;
+
+    /* 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 */
+    tANI_U8 uAPSD;
+
+    /* These parameters are for all the access categories */
+    tANI_U32 srvInterval[WLAN_HAL_MAX_AC];   // Service Interval
+    tANI_U32 susInterval[WLAN_HAL_MAX_AC];   // Suspend Interval
+    tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
+           
+} tAddTsParams, *tpAddTsParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAddTsParams  addTsParams;
+}  tAddTsReqMsg, *tpAddTsReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_TS_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*success or failure */
+    tANI_U32   status;
+} tAddTsRspParams, *tpAddTsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAddTsRspParams addTsRspParams;
+}  tAddTsRspMsg, *tpAddTsRspMsg;
+
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DEL_TS_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Station Index */
+    tANI_U16 staIdx;
+
+    /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
+    tANI_U16 tspecIdx;
+
+    /* To lookup station id using the mac address */
+    tSirMacAddr bssId; 
+
+} tDelTsParams, *tpDelTsParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tDelTsParams  delTsParams; 
+}  tDelTsReqMsg, *tpDelTsReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DEL_TS_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*success or failure */
+    tANI_U32   status;
+} tDelTsRspParams, *tpDelTsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tDelTsRspParams delTsRspParams;
+}  tDelTsRspMsg, *tpDelTsRspMsg;
+
+/* End of TSpec Parameters */
+
+/* Start of BLOCK ACK related Parameters */
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_BA_SESSION_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Station Index */
+    tANI_U16 staIdx;
+
+    /* Peer MAC Address */
+    tSirMacAddr peerMacAddr;
+
+    /* ADDBA Action Frame dialog token
+       HAL will not interpret this object */
+    tANI_U8 baDialogToken;
+
+    /* TID for which the BA is being setup
+       This identifies the TC or TS of interest */
+    tANI_U8 baTID;
+
+    /* 0 - Delayed BA (Not supported)
+       1 - Immediate BA */
+    tANI_U8 baPolicy;
+
+    /* Indicates the number of buffers for this TID (baTID)
+       NOTE - This is the requested buffer size. When this
+       is processed by HAL and subsequently by HDD, it is
+       possible that HDD may change this buffer size. Any
+       change in the buffer size should be noted by PE and
+       advertized appropriately in the ADDBA response */
+    tANI_U16 baBufferSize;
+
+    /* BA timeout in TU's 0 means no timeout will occur */
+    tANI_U16 baTimeout;
+
+    /* b0..b3 - Fragment Number - Always set to 0
+       b4..b15 - Starting Sequence Number of first MSDU
+       for which this BA is setup */
+    tANI_U16 baSSN;
+
+    /* ADDBA direction
+       1 - Originator
+       0 - Recipient */
+    tANI_U8 baDirection;
+} tAddBASessionParams, *tpAddBASessionParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAddBASessionParams  addBASessionParams; 
+}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_BA_SESSION_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*success or failure */
+    tANI_U32   status;
+
+    /* Dialog token */
+    tANI_U8 baDialogToken;
+
+    /* TID for which the BA session has been setup */
+    tANI_U8 baTID;
+
+    /* BA Buffer Size allocated for the current BA session */
+    tANI_U8 baBufferSize;
+
+    tANI_U8 baSessionID;
+
+    /* Reordering Window buffer */
+    tANI_U8 winSize;
+    
+    /*Station Index to id the sta */
+    tANI_U8 STAID;
+    
+    /* Starting Sequence Number */
+    tANI_U16 SSN;
+} tAddBASessionRspParams, *tpAddBASessionRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAddBASessionRspParams addBASessionRspParams;
+}  tAddBASessionRspMsg, *tpAddBASessionRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_BA_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Session Id */
+    tANI_U8 baSessionID;
+
+    /* Reorder Window Size */
+    tANI_U8 winSize;
+
+#ifdef FEATURE_ON_CHIP_REORDERING
+    tANI_BOOLEAN isReorderingDoneOnChip;
+#endif
+} tAddBAParams, *tpAddBAParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAddBAParams  addBAParams; 
+}  tAddBAReqMsg, *tpAddBAReqMsg;
+
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_BA_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*success or failure */
+    tANI_U32   status;
+
+    /* Dialog token */
+    tANI_U8 baDialogToken;
+ 
+} tAddBARspParams, *tpAddBARspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAddBARspParams addBARspParams;
+}  tAddBARspMsg, *tpAddBARspMsg;
+
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_TRIGGER_BA_REQ
+ *--------------------------------------------------------------------------*/
+
+
+typedef struct sAddBaInfo
+{
+    tANI_U16 fBaEnable : 1;
+    tANI_U16 startingSeqNum: 12;
+    tANI_U16 reserved : 3;
+}tAddBaInfo, *tpAddBaInfo;
+
+typedef struct sTriggerBaRspCandidate
+{
+    tSirMacAddr staAddr;
+    tAddBaInfo baInfo[STACFG_MAX_TC];
+}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
+
+typedef struct sTriggerBaCandidate
+{
+    tANI_U8  staIdx;
+    tANI_U8 tidBitmap;
+}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Session Id */
+    tANI_U8 baSessionID;
+
+    /* baCandidateCnt is followed by trigger BA 
+     * Candidate List(tTriggerBaCandidate)
+     */
+    tANI_U16 baCandidateCnt;
+    
+} tTriggerBAParams, *tpTriggerBAParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tTriggerBAParams  triggerBAParams; 
+}  tTriggerBAReqMsg, *tpTriggerBAReqMsg;
+
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_TRIGGER_BA_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   
+    /* TO SUPPORT BT-AMP */
+    tSirMacAddr  bssId; 
+
+    /* success or failure */
+    tANI_U32   status;
+
+    /* baCandidateCnt is followed by trigger BA 
+     * Rsp Candidate List(tTriggerRspBaCandidate)
+     */
+    tANI_U16 baCandidateCnt;
+    
+
+} tTriggerBARspParams, *tpTriggerBARspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tTriggerBARspParams triggerBARspParams;
+}  tTriggerBARspMsg, *tpTriggerBARspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DEL_BA_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Station Index */
+    tANI_U16 staIdx;
+
+    /* TID for which the BA session is being deleted */
+    tANI_U8 baTID;
+
+    /* DELBA direction
+       1 - Originator
+       0 - Recipient */
+    tANI_U8 baDirection;  
+} tDelBAParams, *tpDelBAParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tDelBAParams  delBAParams; 
+}  tDelBAReqMsg, *tpDelBAReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DEL_BA_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tDelBARspParams, *tpDelBARspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tDelBARspParams delBARspParams;
+}  tDelBARspMsg, *tpDelBARspMsg;
+
+
+#ifdef FEATURE_WLAN_CCX
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_TSM_STATS_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Traffic Id */
+    tANI_U8 tsmTID;
+
+    tSirMacAddr bssId;
+} tTsmStatsParams, *tpTsmStatsParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tTsmStatsParams  tsmStatsParams; 
+}  tTsmStatsReqMsg, *tpTsmStatsReqMsg;
+
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_TSM_STATS_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*success or failure */
+    tANI_U32   status;
+
+    /* Uplink Packet Queue delay */ 
+    tANI_U16      UplinkPktQueueDly;
+
+    /* Uplink Packet Queue delay histogram */ 
+    tANI_U16      UplinkPktQueueDlyHist[4];
+
+    /* Uplink Packet Transmit delay */ 
+    tANI_U32      UplinkPktTxDly;
+
+    /* Uplink Packet loss */ 
+    tANI_U16      UplinkPktLoss;
+
+    /* Uplink Packet count */ 
+    tANI_U16      UplinkPktCount;
+
+    /* Roaming count */ 
+    tANI_U8       RoamingCount;
+
+    /* Roaming Delay */ 
+    tANI_U16      RoamingDly;
+} tTsmStatsRspParams, *tpTsmStatsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tTsmStatsRspParams tsmStatsRspParams;
+}  tTsmStatsRspMsg, *tpTsmStatsRspMsg;
+
+
+#endif
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_KEYDONE_MSG
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*bssid of the keys */
+  tANI_U8   bssidx;
+  tANI_U8   encType;
+} tSetKeyDoneParams, *tpSetKeyDoneParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSetKeyDoneParams setKeyDoneParams;
+}  tSetKeyDoneMsg, *tpSetKeyDoneMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DOWNLOAD_NV_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Fragment sequence number of the NV Image. Note that NV Image might not
+     * fit into one message due to size limitation of the SMD channel FIFO. UMAC
+     * can hence choose to chop the NV blob into multiple fragments starting with 
+     * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by 
+     * marking the isLastFragment field to 1. Note that all the NV blobs would be
+     * concatenated together by HAL without any padding bytes in between.*/
+    tANI_U16 fragNumber;
+
+    /* Is this the last fragment? When set to 1 it indicates that no more fragments
+     * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed 
+     * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
+     * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
+    tANI_U16 isLastFragment;
+
+    /* NV Image size (number of bytes) */
+    tANI_U32 nvImgBufferSize;
+
+    /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
+     * bytes of NV Image i.e. uint8[nvImageBufferSize] */
+} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
+     * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
+    tHalMsgHeader header;
+    tHalNvImgDownloadReqParams nvImageReqParams;
+} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DOWNLOAD_NV_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
+     * after each fragment */
+    tANI_U32   status;
+} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tHalNvImgDownloadRspParams nvImageRspParams;
+}  tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_STORE_NV_IND
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* NV Item */
+    eNvTable tableID;
+
+    /* Size of NV Blob */
+    tANI_U32 nvBlobSize;
+
+    /* Following the 'nvBlobSize', there should be nvBlobSize bytes of 
+     * NV blob i.e. uint8[nvBlobSize] */
+} tHalNvStoreParams, *tpHalNvStoreParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Note: The length specified in tHalNvStoreInd messages should be
+     * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
+    tHalMsgHeader header;
+    tHalNvStoreParams nvStoreParams;
+}  tHalNvStoreInd, *tpHalNvStoreInd;
+
+/* End of Block Ack Related Parameters */
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_MIC_FAILURE_IND
+ *--------------------------------------------------------------------------*/
+
+#define SIR_CIPHER_SEQ_CTR_SIZE 6
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tSirMacAddr  srcMacAddr;     //address used to compute MIC 
+    tSirMacAddr  taMacAddr;      //transmitter address
+    tSirMacAddr  dstMacAddr;
+    tANI_U8      multicast;             
+    tANI_U8      IV1;            // first byte of IV
+    tANI_U8      keyId;          // second byte of IV
+    tANI_U8      TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
+    tSirMacAddr  rxMacAddr;      // receive address
+} tSirMicFailureInfo, *tpSirMicFailureInfo;
+
+/* Definition for MIC failure indication
+   MAC reports this each time a MIC failure occures on Rx TKIP packet
+ */
+typedef PACKED_PRE struct PACKED_POST
+{
+    tSirMacAddr         bssId;   // BSSID
+    tSirMicFailureInfo  info;
+} tSirMicFailureInd, *tpSirMicFailureInd;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSirMicFailureInd micFailureInd;
+}  tMicFailureIndMsg, *tpMicFailureIndMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_UPDATE_BEACON_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+
+    tANI_U8  bssIdx;
+
+    //shortPreamble mode. HAL should update all the STA rates when it
+    //receives this message
+    tANI_U8 fShortPreamble;
+    //short Slot time.
+    tANI_U8 fShortSlotTime;
+    //Beacon Interval
+    tANI_U16 beaconInterval;
+    //Protection related
+    tANI_U8 llaCoexist;
+    tANI_U8 llbCoexist;
+    tANI_U8 llgCoexist;
+    tANI_U8 ht20MhzCoexist;
+    tANI_U8 llnNonGFCoexist;
+    tANI_U8 fLsigTXOPProtectionFullSupport;
+    tANI_U8 fRIFSMode;
+
+    tANI_U16 paramChangeBitmap;
+}tUpdateBeaconParams, *tpUpdateBeaconParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tUpdateBeaconParams updateBeaconParam;
+}  tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_UPDATE_BEACON_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32   status;
+} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tUpdateBeaconRspParams updateBeaconRspParam;
+}  tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SEND_BEACON_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32 beaconLength; //length of the template.
+    tANI_U8 beacon[BEACON_TEMPLATE_SIZE];     // Beacon data.
+    tSirMacAddr bssId;
+#ifdef WLAN_SOFTAP_FEATURE
+    tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
+#endif
+    tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
+}tSendBeaconParams, *tpSendBeaconParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  tHalMsgHeader header;
+  tSendBeaconParams sendBeaconParam;
+}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SEND_BEACON_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32   status;
+} tSendBeaconRspParams, *tpSendBeaconRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSendBeaconRspParams sendBeaconRspParam;
+}  tSendBeaconRspMsg, *tpSendBeaconRspMsg;
+
+#ifdef FEATURE_5GHZ_BAND
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tSirMacAddr BSSID;
+    tANI_U8   channel; 
+}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Link Parameters */
+    tSirEnableRadarInfoType EnableRadarInfo;
+}tEnableRadarReqParams, *tpEnableRadarReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tEnableRadarReqParams  enableRadarReqParams; 
+}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Link Parameters */
+    tSirMacAddr BSSID;
+    /* success or failure */
+    tANI_U32   status;
+}tEnableRadarRspParams, *tpEnableRadarRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tEnableRadarRspParams  enableRadarRspParams; 
+}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_RADAR_DETECT_INTR_IND
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8 radarDetChannel;
+}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tRadarDetectIntrIndParams  radarDetectIntrIndParams; 
+}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_RADAR_DETECT_IND
+ *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*channel number in which the RADAR detected*/
+    tANI_U8          channelNumber;
+
+    /*RADAR pulse width*/
+    tANI_U16         radarPulseWidth; // in usecond
+
+    /*Number of RADAR pulses */
+    tANI_U16         numRadarPulse;
+}tRadarDetectIndParams,*tpRadarDetectIndParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tRadarDetectIndParams  radarDetectIndParams; 
+}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
+
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_GET_TPC_REPORT_REQ
+ *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tSirMacAddr sta;
+   tANI_U8     dialogToken;
+   tANI_U8     txpower;
+}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tSirGetTpcReportReqParams  getTpcReportReqParams; 
+}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_GET_TPC_REPORT_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSirGetTpcReportRspParams  getTpcReportRspParams; 
+}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
+
+#endif
+
+#ifdef WLAN_SOFTAP_FEATURE
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
+ *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8      pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
+    tANI_U32     probeRespTemplateLen;
+    tANI_U32     ucProxyProbeReqValidIEBmap[8];
+    tSirMacAddr  bssId;
+
+}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSendProbeRespReqParams sendProbeRespReqParams ;
+}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP 
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSendProbeRespRspParams sendProbeRespRspParams;
+}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
+
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND 
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
+}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_DELETE_STA_CONTEXT_IND
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U16    assocId;
+    tANI_U16    staId;
+    tSirMacAddr bssId; // TO SUPPORT BT-AMP
+                       // HAL copies bssid from the sta table.
+#ifdef WLAN_SOFTAP_FEATURE
+    tSirMacAddr addr2;        //
+    tANI_U16    reasonCode;   // To unify the keepalive / unknown A2 / tim-based disa                                                                        
+#endif
+
+}tDeleteStaContextParams, *tpDeleteStaContextParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tDeleteStaContextParams deleteStaContextParams;
+}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
+
+#endif
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tBtAmpEventType btAmpEventType;
+
+}tBtAmpEventParams, *tpBtAmpEventParams;
+
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tBtAmpEventParams btAmpEventParams;
+}tBtAmpEventMsg, *tpBtAmpEventMsg;
+
+/*---------------------------------------------------------------------------
+*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tBtAmpEventRspParams btAmpEventRspParams;
+}tBtAmpEventRsp, *tpBtAmpEventRsp;
+
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   // Station Index. originates from HAL
+    tANI_U8  ucSTAId;
+
+    // TID for which the transmit queue is being flushed
+    tANI_U8   ucTid;
+
+}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tTlHalFlushAcParams tlHalFlushAcParam;
+}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
+
+/*---------------------------------------------------------------------------
+*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    // Station Index. originates from HAL
+    tANI_U8  ucSTAId;
+
+    // TID for which the transmit queue is being flushed
+    tANI_U8   ucTid;
+
+    /* success or failure */
+    tANI_U32   status;
+}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tTlHalFlushAcRspParams tlHalFlushAcRspParam;
+}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENTER_IMPS_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+}  tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXIT_IMPS_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+}  tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENTER_BMPS_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U8         bssIdx;
+   //TBTT value derived from the last beacon
+#ifndef BUILD_QWPTTSTATIC
+   tANI_U64 tbtt;
+#endif
+   tANI_U8 dtimCount;
+   //DTIM period given to HAL during association may not be valid,
+   //if association is based on ProbeRsp instead of beacon.
+   tANI_U8 dtimPeriod;
+
+   // For CCX and 11R Roaming
+   tANI_U32 rssiFilterPeriod;
+   tANI_U32 numBeaconPerRssiAverage;
+   tANI_U8  bRssiFilterEnable;
+
+} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalEnterBmpsReqParams enterBmpsReq;
+}  tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXIT_BMPS_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U8     sendDataNull;
+} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalExitBmpsReqParams exitBmpsReqParams;
+}  tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_BCN_FILTER_REQ
+ *--------------------------------------------------------------------------*/
+/* Beacon Filtering data structures */
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8     offset;
+    tANI_U8     value;
+    tANI_U8     bitMask;
+    tANI_U8     ref;
+} tEidByteInfo, *tpEidByteInfo;
+
+typedef PACKED_PRE struct PACKED_POST 
+{
+    tANI_U16    capabilityInfo;
+    tANI_U16    capabilityMask;
+    tANI_U16    beaconInterval;
+    tANI_U16    ieNum;
+} tBeaconFilterMsg, *tpBeaconFilterMsg;
+
+/* The above structure would be followed by multiple of below mentioned structure */
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8         elementId;
+    tANI_U8         checkIePresence;
+    tEidByteInfo    byte;
+} tBeaconFilterIe, *tpBeaconFilterIe;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tBeaconFilterMsg addBcnFilterParams;
+}  tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_REM_BCN_FILTER_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST 
+{
+    tANI_U8  ucIeCount;
+    tANI_U8  ucRemIeId[1];
+} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tRemBeaconFilterMsg remBcnFilterParams;
+}  tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_HOST_OFFLOAD_REQ
+ *--------------------------------------------------------------------------*/
+#define HAL_IPV4_ARP_REPLY_OFFLOAD                  0
+#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD         1
+#define HAL_IPV6_NS_OFFLOAD                         2
+#define HAL_IPV6_ADDR_LEN                           16
+#define HAL_MAC_ADDR_LEN                            6
+#define HAL_OFFLOAD_DISABLE                         0
+#define HAL_OFFLOAD_ENABLE                          1
+#define HAL_OFFLOAD_BCAST_FILTER_ENABLE             0x2
+#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE     (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
+
+typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
+{
+   tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
+   tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
+   //Only support 2 possible Network Advertisement IPv6 address
+   tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
+   tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
+   tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
+   tANI_U8 srcIPv6AddrValid : 1;
+   tANI_U8 targetIPv6Addr1Valid : 1;
+   tANI_U8 targetIPv6Addr2Valid : 1;
+   tANI_U8 reserved1 : 5;
+   tANI_U8 reserved2;   //make it DWORD aligned
+} tHalNSOffloadParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8 offloadType;
+    tANI_U8 enableOrDisable;
+    PACKED_PRE union PACKED_POST
+    {
+        tANI_U8 hostIpv4Addr [4];
+        tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
+    } params;
+} tHalHostOffloadReq, *tpHalHostOffloadReq;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalHostOffloadReq hostOffloadParams;
+   tHalNSOffloadParams nsOffloadParams;
+}  tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_KEEP_ALIVE_REQ
+ *--------------------------------------------------------------------------*/
+/* Packet Types. */
+#define HAL_KEEP_ALIVE_NULL_PKT              1
+#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP     2
+
+/* Enable or disable keep alive */
+#define HAL_KEEP_ALIVE_DISABLE   0
+#define HAL_KEEP_ALIVE_ENABLE    1
+
+/* Keep Alive request. */
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8          packetType;
+    tANI_U32         timePeriod;
+    tHalIpv4Addr     hostIpv4Addr; 
+    tHalIpv4Addr     destIpv4Addr;
+    tSirMacAddr      destMacAddr;
+} tHalKeepAliveReq, *tpHalKeepAliveReq;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalKeepAliveReq KeepAliveParams;
+}  tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_RSSI_THRESH_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_S8   ucRssiThreshold1     : 8;
+    tANI_S8   ucRssiThreshold2     : 8;
+    tANI_S8   ucRssiThreshold3     : 8;
+    tANI_U8   bRssiThres1PosNotify : 1;
+    tANI_U8   bRssiThres1NegNotify : 1;
+    tANI_U8   bRssiThres2PosNotify : 1;
+    tANI_U8   bRssiThres2NegNotify : 1;
+    tANI_U8   bRssiThres3PosNotify : 1;
+    tANI_U8   bRssiThres3NegNotify : 1;
+    tANI_U8   bReserved10          : 2;
+} tHalRSSIThresholds, *tpHalRSSIThresholds;
+    
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalRSSIThresholds rssiThreshParams;
+}  tHalRSSIThresholdsReqMsg, *tpHalRSSIThresholdReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENTER_UAPSD_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8     bkDeliveryEnabled:1;
+    tANI_U8     beDeliveryEnabled:1;
+    tANI_U8     viDeliveryEnabled:1;
+    tANI_U8     voDeliveryEnabled:1;
+    tANI_U8     bkTriggerEnabled:1;
+    tANI_U8     beTriggerEnabled:1;
+    tANI_U8     viTriggerEnabled:1;
+    tANI_U8     voTriggerEnabled:1;
+} tUapsdReqParams, *tpUapsdReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tUapsdReqParams enterUapsdParams;
+}  tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXIT_UAPSD_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+}  tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_WOWL_BCAST_PTRN
+ *--------------------------------------------------------------------------*/
+#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
+#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8  ucPatternId;           // Pattern ID
+    // Pattern byte offset from beginning of the 802.11 packet to start of the
+    // wake-up pattern
+    tANI_U8  ucPatternByteOffset;   
+    tANI_U8  ucPatternSize;         // Non-Zero Pattern size
+    tANI_U8  ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
+    tANI_U8  ucPatternMaskSize;     // Non-zero pattern mask size
+    tANI_U8  ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
+    tANI_U8  ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
+    tANI_U8  ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
+} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalWowlAddBcastPtrn ptrnParams;
+}  tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DEL_WOWL_BCAST_PTRN
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Pattern ID of the wakeup pattern to be deleted */
+    tANI_U8  ucPatternId;
+} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalWowlDelBcastPtrn ptrnParams;
+}  tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENTER_WOWL_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Enables/disables magic packet filtering */
+    tANI_U8   ucMagicPktEnable; 
+
+    /* Magic pattern */
+    tSirMacAddr 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 
+    */
+    tANI_U8   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
+    */
+    tANI_U8   ucUcastPatternFilteringEnable;                     
+
+    /* This configuration is valid only when magicPktEnable=1. 
+     * It requests hardware to wake up when it receives the 
+     * Channel Switch Action Frame.
+     */
+    tANI_U8   ucWowChnlSwitchRcv;
+
+    /* This configuration is valid only when magicPktEnable=1. 
+     * It requests hardware to wake up when it receives the 
+     * Deauthentication Frame. 
+     */
+    tANI_U8   ucWowDeauthRcv;
+
+    /* This configuration is valid only when magicPktEnable=1. 
+     * It requests hardware to wake up when it receives the 
+     * Disassociation Frame. 
+     */
+    tANI_U8   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). 
+     */
+    tANI_U8   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.      
+     */
+    tANI_U8   ucWowMaxSleepUsec;
+    
+    /* This configuration directs the WoW packet filtering to look for EAP-ID
+     * requests embedded in EAPOL frames and use this as a wake source.
+     */
+    tANI_U8   ucWoWEAPIDRequestEnable;
+
+    /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
+     * requests and use this as a wake source.
+     */
+    tANI_U8   ucWoWEAPOL4WayEnable;
+
+    /* This configuration allows a host wakeup on an network scan offload match.
+     */
+    tANI_U8   ucWowNetScanOffloadMatch;
+
+    /* This configuration allows a host wakeup on any GTK rekeying error.
+     */
+    tANI_U8   ucWowGTKRekeyError;
+
+    /* This configuration allows a host wakeup on BSS connection loss.
+     */
+    tANI_U8   ucWoWBSSConnLoss;
+
+} tHalWowlEnterParams, *tpHalWowlEnterParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalWowlEnterParams enterWowlParams;
+}  tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXIT_WOWL_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+}  tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_GET_RSSI_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+}  tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST {
+    tANI_U8  staidx;        // STA index
+    tANI_U8  ac;            // Access Category
+    tANI_U8  up;            // User Priority
+    tANI_U32 srvInterval;   // Service Interval
+    tANI_U32 susInterval;   // Suspend Interval
+    tANI_U32 delayInterval; // Delay Interval
+} tUapsdInfo, tpUapsdInfo;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tUapsdInfo    enableUapsdAcParams;
+}  tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST {
+    tANI_U8 setMcstBcstFilterSetting;
+    tANI_U8 setMcstBcstFilter;
+} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalConfigureRxpFilterReqParams    configureRxpFilterReqParams;
+}  tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENTER_IMPS_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalEnterImpsRspParams enterImpsRspParams;
+}  tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXIT_IMPS_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalExitImpsRspParams exitImpsRspParams;
+}  tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENTER_BMPS_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalEnterBmpsRspParams enterBmpsRspParams;
+}  tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXIT_BMPS_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalExitBmpsRspParams exitBmpsRspParams;
+}  tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENTER_UAPSD_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32    status;
+}tUapsdRspParams, *tpUapsdRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tUapsdRspParams enterUapsdRspParams;
+}  tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXIT_UAPSD_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalExitUapsdRspParams exitUapsdRspParams;
+}  tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_RSSI_NOTIFICATION_IND
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32             bRssiThres1PosCross : 1;
+    tANI_U32             bRssiThres1NegCross : 1;
+    tANI_U32             bRssiThres2PosCross : 1;
+    tANI_U32             bRssiThres2NegCross : 1;
+    tANI_U32             bRssiThres3PosCross : 1;
+    tANI_U32             bRssiThres3NegCross : 1;
+    tANI_U32             bReserved           : 26;
+} tHalRSSINotification, *tpHalRSSINotification;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalRSSINotification rssiNotificationParams;
+}  tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_GET_RSSI_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+    tANI_S8    rssi;
+} tHalGetRssiParams, *tpHalGetRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalGetRssiParams rssiRspParams;
+}  tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ENTER_WOWL_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalEnterWowlRspParams enterWowlRspParams;
+}  tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXIT_WOWL_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalExitWowlRspParams exitWowlRspParams;
+}  tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_BCN_FILTER_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalAddBcnFilterRspParams addBcnFilterRspParams;
+}  tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_REM_BCN_FILTER_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalRemBcnFilterRspParams remBcnFilterRspParams;
+}  tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
+}  tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
+}  tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_HOST_OFFLOAD_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalHostOffloadRspParams hostOffloadRspParams;
+}  tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_KEEP_ALIVE_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalKeepAliveRspParams keepAliveRspParams;
+}  tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_RSSI_THRESH_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalSetRssiThreshRspParams setRssiThreshRspParams;
+}  tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
+}  tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
+}  tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_SET_MAX_TX_POWER_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tSirMacAddr bssId;  // BSSID is needed to identify which session issued this request. As
+                        //the request has power constraints, this should be applied only to that session
+    tSirMacAddr selfStaMacAddr;
+    //In request,
+    //power == MaxTx power to be used.
+    tPowerdBm  power;
+
+}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSetMaxTxPwrParams setMaxTxPwrParams;
+}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
+
+/*---------------------------------------------------------------------------
+*WLAN_HAL_SET_MAX_TX_POWER_RSP
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    //power == tx power used for management frames.
+    tPowerdBm  power;
+
+    /* success or failure */
+    tANI_U32   status;
+}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
+}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_SET_TX_POWER_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* TX Power in milli watts */
+    tANI_U32  txPower;
+}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSetTxPwrReqParams setTxPwrReqParams;
+}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
+
+/*---------------------------------------------------------------------------
+*WLAN_HAL_SET_TX_POWER_RSP
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSetTxPwrRspParams setTxPwrRspParams;
+}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_GET_TX_POWER_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8  staId;
+}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tGetTxPwrReqParams getTxPwrReqParams;
+}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
+
+/*---------------------------------------------------------------------------
+*WLAN_HAL_GET_TX_POWER_RSP
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+
+    /* TX Power in milli watts */
+    tANI_U32   txPower;
+}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tGetTxPwrRspParams getTxPwrRspParams;
+}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
+
+#ifdef WLAN_FEATURE_P2P
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_SET_P2P_GONOA_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  tANI_U8   opp_ps;
+  tANI_U32  ctWindow;
+  tANI_U8   count; 
+  tANI_U32  duration;
+  tANI_U32  interval;
+  tANI_U32  single_noa_duration;
+  tANI_U8   psSelection;
+}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSetP2PGONOAParams setP2PGONOAParams;
+}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
+
+/*---------------------------------------------------------------------------
+*WLAN_HAL_SET_P2P_GONOA_RSP
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tSetP2PGONOARspParams setP2PGONOARspParams;
+}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
+#endif
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_ADD_SELF_STA_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  tSirMacAddr selfMacAddr;
+  tANI_U32    status;
+}tAddStaSelfParams, *tpAddStaSelfParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAddStaSelfParams addStaSelfParams;
+}tAddStaSelfReq, *tpAddStaSelfReq;
+
+/*---------------------------------------------------------------------------
+*WLAN_HAL_ADD_SELF_STA_RSP
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+
+   /*Self STA Index */
+   tANI_U8    selfStaIdx;
+
+   /* DPU Index (IGTK, PTK, GTK all same) */
+   tANI_U8 dpuIdx;
+
+   /* DPU Signature */
+   tANI_U8 dpuSignature;
+   
+}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAddStaSelfRspParams addStaSelfRspParams;
+}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
+
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_DEL_STA_SELF_REQ
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tSirMacAddr selfMacAddr;
+
+}tDelStaSelfParams, *tpDelStaSelfParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tDelStaSelfParams delStaSelfParams;
+}  tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
+
+
+/*---------------------------------------------------------------------------
+  WLAN_HAL_DEL_STA_SELF_RSP
+---------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*success or failure */
+  tANI_U32   status;
+
+  tSirMacAddr selfMacAddr;
+}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tDelStaSelfRspParams delStaSelfRspParams;
+}  tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
+
+
+#ifdef WLAN_FEATURE_VOWIFI_11R
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_AGGR_ADD_TS_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* Station Index */
+    tANI_U16 staIdx;
+
+    /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
+    /* This will carry the bitmap with the bit positions representing different AC.s*/
+    tANI_U16 tspecIdx;
+
+    /*  Tspec info per AC To program TPE with required parameters */
+    tSirMacTspecIE   tspec[WLAN_HAL_MAX_AC];
+
+    /* 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 */
+    tANI_U8 uAPSD;
+
+    /* These parameters are for all the access categories */
+    tANI_U32 srvInterval[WLAN_HAL_MAX_AC];   // Service Interval
+    tANI_U32 susInterval[WLAN_HAL_MAX_AC];   // Suspend Interval
+    tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
+
+}tAggrAddTsParams, *tpAggrAddTsParams;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAggrAddTsParams aggrAddTsParam;
+}tAggrAddTsReq, *tpAggrAddTsReq;
+
+/*---------------------------------------------------------------------------
+*WLAN_HAL_AGGR_ADD_TS_RSP
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status0;
+    /* FIXME PRIMA for future use for 11R */
+    tANI_U32   status1;
+}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tAggrAddTsRspParams aggrAddTsRspParam;
+}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
+
+#endif
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U8   isAppsCpuAwake;
+} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
+}  tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
+}  tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DUMP_COMMAND_REQ
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U32    argument1;
+   tANI_U32    argument2;
+   tANI_U32    argument3;
+   tANI_U32    argument4;
+   tANI_U32    argument5;
+
+}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader          header;
+   tHalDumpCmdReqParams   dumpCmdReqParams;
+} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_DUMP_COMMAND_RSP
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+    /*Length of the responce message*/
+    tANI_U32   rspLength;
+    /*FiXME: Currently considering the  the responce will be less than 100bytes */
+    tANI_U8    rspBuffer[DUMPCMD_RSP_BUFFER];
+    
+} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalDumpCmdRspParams dumpCmdRspParams;
+}  tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_COEX_IND
+ *-------------------------------------------------------------------------*/
+#define WLAN_COEX_IND_DATA_SIZE (4)
+#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
+#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /*Coex Indication Type*/
+    tANI_U32   coexIndType;
+
+    /*Coex Indication Data*/
+    tANI_U32   coexIndData[WLAN_COEX_IND_DATA_SIZE];
+}tCoexIndParams,*tpCoexIndParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader   header;
+   tCoexIndParams  coexIndParams; 
+}tCoexIndMsg, *tpCoexIndMsg;
+
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_OTA_TX_COMPL_IND
+ *-------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /*Tx Complete Indication Success or Failure*/
+   tANI_U32   status;
+}tTxComplParams,*tpTxComplParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader   header;
+   tTxComplParams  txComplParams; 
+}tTxComplIndMsg, *tpTxComplIndMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_HOST_SUSPEND_IND
+ *-------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32 configuredMcstBcstFilterSetting;
+    tANI_U32 activeSessionCount; 
+}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalWlanHostSuspendIndParam suspendIndParams;
+}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
+ *-------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_BOOLEAN bDot11ExcludeUnencrypted;
+    tSirMacAddr bssId; 
+}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
+}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
+
+#ifdef WLAN_FEATURE_P2P
+/*---------------------------------------------------------------------------
+ *WLAN_HAL_NOA_ATTR_IND
+ *-------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U8      index ;
+   tANI_U8      oppPsFlag ;
+   tANI_U16     ctWin  ;
+
+   tANI_U16      uNoa1IntervalCnt;
+   tANI_U16      rsvd1 ;
+   tANI_U32      uNoa1Duration;
+   tANI_U32      uNoa1Interval;
+   tANI_U32      uNoa1StartTime;
+
+   tANI_U16      uNoa2IntervalCnt;
+   tANI_U16      rsvd2;
+   tANI_U32      uNoa2Duration;
+   tANI_U32      uNoa2Interval;
+   tANI_U32      uNoa2StartTime;
+
+   tANI_U32   status;
+}tNoaAttrIndParams, *tpNoaAttrIndParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader      header;
+   tNoaAttrIndParams  noaAttrIndParams; 
+}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
+#endif
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_HOST_RESUME_REQ
+ *-------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8 configuredMcstBcstFilterSetting;
+}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalWlanHostResumeReqParam resumeReqParams;
+}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_HOST_RESUME_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalHostResumeRspParams hostResumeRspParams;
+}  tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
+
+/*---------------------------------------------------------------------------
+ *PNO Messages
+ *-------------------------------------------------------------------------*/
+/*Max number of channels that a network can be found on*/
+#define WLAN_HAL_PNO_MAX_NETW_CHANNELS  26
+
+/*Maximum numbers of networks supported by PNO*/
+#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS  16
+
+/*The number of scan time intervals that can be programmed into PNO*/
+#define WLAN_HAL_PNO_MAX_SCAN_TIMERS    10
+
+/*Maximum size of the probe template*/
+#define WLAN_HAL_PNO_MAX_PROBE_SIZE     450
+
+/*Type of PNO enabling 
+  Immediate - scanning will start immediately and PNO procedure will
+  be repeated based on timer
+  Suspend - scanning will start at suspend
+  Resume - scanning will start on system resume*/
+typedef enum
+{
+   ePNO_MODE_IMMEDIATE,
+   ePNO_MODE_ON_SUSPEND,
+   ePNO_MODE_ON_RESUME,
+   ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} ePNOMode;
+
+/*Authentication type*/
+typedef enum 
+{
+    eAUTH_TYPE_ANY                   = 0,    
+    eAUTH_TYPE_OPEN_SYSTEM           = 1,
+    
+    // Upper layer authentication types
+    eAUTH_TYPE_WPA                   = 2,
+    eAUTH_TYPE_WPA_PSK               = 3,
+    
+    eAUTH_TYPE_RSN                   = 4,
+    eAUTH_TYPE_RSN_PSK               = 5,
+    eAUTH_TYPE_FT_RSN                = 6,
+    eAUTH_TYPE_FT_RSN_PSK            = 7,
+    eAUTH_TYPE_WAPI_WAI_CERTIFICATE  = 8,
+    eAUTH_TYPE_WAPI_WAI_PSK          = 9,
+    
+    eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
+
+}tAuthType;
+
+/* Encryption type */
+typedef enum eEdType
+{
+    eED_ANY           = 0,
+    eED_NONE          = 1,
+    eED_WEP           = 2,
+    eED_TKIP          = 3,
+    eED_CCMP          = 4,
+    eED_WPI           = 5,
+        
+    eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} tEdType;
+
+/* SSID broadcast  type */
+typedef enum eSSIDBcastType
+{
+  eBCAST_UNKNOWN      = 0,
+  eBCAST_NORMAL       = 1,
+  eBCAST_HIDDEN       = 2,
+
+  eBCAST_TYPE_MAX     = WLAN_HAL_MAX_ENUM_SIZE
+} tSSIDBcastType;
+
+/* 
+  The network description for which PNO will have to look for
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*SSID of the BSS*/
+  tSirMacSSid ssId;
+
+  /*Authentication type for the network*/
+  tAuthType   authentication; 
+
+  /*Encryption type for the network*/
+  tEdType     encryption; 
+
+  /*Indicate the channel on which the Network can be found 
+    0 - if all channels */
+  tANI_U8     ucChannelCount;
+  tANI_U8     aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
+
+  /*Indicates the RSSI threshold for the network to be considered*/
+  tANI_U8     rssiThreshold;
+}tNetworkType; 
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*How much it should wait */
+  tANI_U32    uTimerValue; 
+
+  /*How many times it should repeat that wait value 
+    0 - keep using this timer until PNO is disabled*/
+  tANI_U32    uTimerRepeat; 
+
+  /*e.g:   2 3 
+           4 0 
+    - it will wait 2s between consecutive scans for 3 times
+    - after that it will wait 4s between consecutive scans until disabled*/
+}tScanTimer; 
+
+/* 
+  The network parameters to be sent to the PNO algorithm
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*set to 0 if you wish for PNO to use its default telescopic timer*/
+  tANI_U8     ucScanTimersCount; 
+
+  /*A set value represents the amount of time that PNO will wait between 
+    two consecutive scan procedures
+    If the desired is for a uniform timer that fires always at the exact same
+    interval - one single value is to be set
+    If there is a desire for a more complex - telescopic like timer multiple
+    values can be set - once PNO reaches the end of the array it will
+    continue scanning at intervals presented by the last value*/
+  tScanTimer  aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS]; 
+
+}tScanTimersType;
+
+typedef PACKED_PRE struct PACKED_POST {
+
+    /*Enable PNO*/
+    tANI_U32          enable;
+
+    /*Immediate,  On Suspend,   On Resume*/
+    ePNOMode         modePNO;
+    
+    /*Number of networks sent for PNO*/
+    tANI_U32          ucNetworksCount;
+
+    /*The networks that PNO needs to look for*/
+    tNetworkType     aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
+
+    /*The scan timers required for PNO*/
+    tScanTimersType  scanTimers; 
+
+    /*Probe template for 2.4GHz band*/
+    tANI_U16         us24GProbeSize; 
+    tANI_U8          a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
+
+    /*Probe template for 5GHz band*/
+    tANI_U16         us5GProbeSize; 
+    tANI_U8          a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
+
+} tPrefNetwListParams, * tpPrefNetwListParams;
+
+/*
+  Preferred network list request 
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tPrefNetwListParams   prefNetwListParams;
+}  tSetPrefNetwListReq, *tpSetPrefNetwListReq;
+
+
+/* 
+  The network description for which PNO will have to look for
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+  /*SSID of the BSS*/
+  tSirMacSSid ssId;
+
+  /*Authentication type for the network*/
+  tAuthType   authentication; 
+
+  /*Encryption type for the network*/
+  tEdType     encryption; 
+
+  /*SSID broadcast type, normal, hidden or unknown*/
+  tSSIDBcastType bcastNetworkType;
+
+  /*Indicate the channel on which the Network can be found 
+    0 - if all channels */
+  tANI_U8     ucChannelCount;
+  tANI_U8     aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
+
+  /*Indicates the RSSI threshold for the network to be considered*/
+  tANI_U8     rssiThreshold;
+}tNetworkTypeNew; 
+
+typedef PACKED_PRE struct PACKED_POST {
+
+    /*Enable PNO*/
+    tANI_U32          enable;
+
+    /*Immediate,  On Suspend,   On Resume*/
+    ePNOMode         modePNO;
+    
+    /*Number of networks sent for PNO*/
+    tANI_U32         ucNetworksCount; 
+
+    /*The networks that PNO needs to look for*/
+    tNetworkTypeNew  aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
+
+    /*The scan timers required for PNO*/
+    tScanTimersType  scanTimers; 
+
+    /*Probe template for 2.4GHz band*/
+    tANI_U16         us24GProbeSize; 
+    tANI_U8          a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
+
+    /*Probe template for 5GHz band*/
+    tANI_U16         us5GProbeSize; 
+    tANI_U8          a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
+
+} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
+
+/*
+  Preferred network list request new
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tPrefNetwListParamsNew   prefNetwListParams;
+}  tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
+
+/*
+  Preferred network list response 
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+
+   /*status of the request - just to indicate that PNO has acknowledged 
+     the request and will start scanning*/
+   tANI_U32   status;
+}  tSetPrefNetwListResp, *tpSetPrefNetwListResp;
+
+/*
+  Preferred network indication parameters 
+*/
+typedef PACKED_PRE struct PACKED_POST {
+
+  /*Network that was found with the highest RSSI*/
+  tSirMacSSid ssId;
+  
+  /*Indicates the RSSI */
+  tANI_U8     rssi;
+
+} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
+
+/*
+  Preferred network found indication
+*/
+typedef PACKED_PRE struct PACKED_POST {
+
+   tHalMsgHeader header;
+   tPrefNetwFoundParams   prefNetwFoundParams;
+}  tPrefNetwFoundInd, *tpPrefNetwFoundInd;
+
+
+typedef PACKED_PRE struct PACKED_POST {
+
+  /*RSSI Threshold*/
+  tANI_U8          ucRssiThreshold;
+
+} tRssiFilterParams, * tpRssiFilterParams;
+
+/*
+  RSSI Filter request 
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tRssiFilterParams   prefRSSIFilterParams;
+}  tSetRssiFilterReq, *tpSetRssiFilterReq;
+
+/*
+ Set RSSI filter resp
+*/
+typedef PACKED_PRE struct PACKED_POST{
+   tHalMsgHeader header;
+   /*status of the request */
+   tANI_U32   status;
+}  tSetRssiFilterResp, *tpSetRssiFilterResp;
+/*
+  Update scan params 
+*/
+typedef PACKED_PRE struct PACKED_POST  
+{
+
+  /*Host setting for 11d*/
+  tANI_U8   b11dEnabled; 
+
+  /*Lets PNO know that host has determined the regulatory domain*/
+  tANI_U8   b11dResolved;
+
+  /*Channels on which PNO is allowed to scan*/
+  tANI_U8   ucChannelCount; 
+  tANI_U8   aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS]; 
+
+  /*Minimum channel time*/
+  tANI_U16  usActiveMinChTime; 
+
+  /*Maximum channel time*/
+  tANI_U16  usActiveMaxChTime; 
+
+  /*Minimum channel time*/
+  tANI_U16  usPassiveMinChTime; 
+
+  /*Maximum channel time*/
+  tANI_U16  usPassiveMaxChTime; 
+
+  /*Cb State*/
+  ePhyChanBondState cbState;
+
+} tUpdateScanParams, * tpUpdateScanParams;
+
+/*
+  Update scan params - sent from host to PNO
+  to be used during PNO scanning 
+*/
+typedef PACKED_PRE struct PACKED_POST{
+
+   tHalMsgHeader header;
+   tUpdateScanParams   scanParams;
+}  tUpdateScanParamsReq, *tpUpdateScanParamsReq;
+
+/*
+  Update scan params - sent from host to PNO
+  to be used during PNO scanning 
+*/
+typedef PACKED_PRE struct PACKED_POST{
+
+   tHalMsgHeader header;
+
+   /*status of the request */
+   tANI_U32   status;
+
+}  tUpdateScanParamsResp, *tpUpdateScanParamsResp;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_TX_PER_TRACKING_REQ
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8  ucTxPerTrackingEnable;           /* 0: disable, 1:enable */
+    tANI_U8  ucTxPerTrackingPeriod;           /* Check period, unit is sec. */
+    tANI_U8  ucTxPerTrackingRatio;            /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
+    tANI_U32 uTxPerTrackingWatermark;         /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
+} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalTxPerTrackingReqParam txPerTrackingParams;
+}  tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_SET_TX_PER_TRACKING_RSP
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalTxPerTrackingRspParams txPerTrackingRspParams;
+}  tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_TX_PER_HIT_IND
+ *--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader   header;
+}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
+
+/*---------------------------------------------------------------------------
+ *******************Packet Filtering Definitions Begin*******************
+ *--------------------------------------------------------------------------*/
+#define    HAL_PROTOCOL_DATA_LEN                  8
+#define    HAL_MAX_NUM_MULTICAST_ADDRESS        240
+#define    HAL_MAX_NUM_FILTERS                   20
+#define    HAL_MAX_CMP_PER_FILTER                10
+
+typedef enum
+{
+  HAL_RCV_FILTER_TYPE_INVALID,
+  HAL_RCV_FILTER_TYPE_FILTER_PKT,
+  HAL_RCV_FILTER_TYPE_BUFFER_PKT,
+  HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
+}tHalReceivePacketFilterType;
+
+typedef enum 
+{
+  HAL_FILTER_PROTO_TYPE_INVALID,
+  HAL_FILTER_PROTO_TYPE_MAC,
+  HAL_FILTER_PROTO_TYPE_ARP,
+  HAL_FILTER_PROTO_TYPE_IPV4,
+  HAL_FILTER_PROTO_TYPE_IPV6,
+  HAL_FILTER_PROTO_TYPE_UDP,
+  HAL_FILTER_PROTO_TYPE_MAX
+}tHalRcvPktFltProtocolType;
+
+typedef enum 
+{
+  HAL_FILTER_CMP_TYPE_INVALID,
+  HAL_FILTER_CMP_TYPE_EQUAL,
+  HAL_FILTER_CMP_TYPE_MASK_EQUAL,
+  HAL_FILTER_CMP_TYPE_NOT_EQUAL,
+  HAL_FILTER_CMP_TYPE_MAX
+}tHalRcvPktFltCmpFlagType;
+
+typedef PACKED_PRE struct PACKED_POST 
+{
+    tANI_U8                          protocolLayer;
+    tANI_U8                          cmpFlag;
+    tANI_U16                         dataLength; /* Length of the data to compare */
+    tANI_U8                          dataOffset; /* from start of the respective frame header */
+    tANI_U8                          reserved; /* Reserved field */
+    tANI_U8                          compareData[HAL_PROTOCOL_DATA_LEN];  /* Data to compare */
+    tANI_U8                          dataMask[HAL_PROTOCOL_DATA_LEN];   /* Mask to be applied on the received packet data before compare */
+}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8                         filterId;
+    tANI_U8                         filterType;
+    tANI_U8                         numParams; 
+    tANI_U32                        coleasceTime; 
+    tHalRcvPktFilterParams          paramsData[1];
+}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  tHalMsgHeader                 header;
+  tHalRcvPktFilterCfgType       pktFilterCfg;
+} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
+
+
+typedef PACKED_PRE struct PACKED_POST 
+{
+    tANI_U8         dataOffset; /* from start of the respective frame header */
+    tANI_U32       cMulticastAddr;
+    tSirMacAddr    multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
+} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    /* success or failure */
+    tANI_U32   status;
+} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader               header;
+   tHalSetPktFilterRspParams   pktFilterRspParams;
+}  tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
+
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader        header;
+} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U8    filterId;
+   tANI_U32   matchCnt;
+} tHalRcvFltPktMatchCnt;
+typedef PACKED_PRE struct PACKED_POST
+{
+   /* Success or Failure */
+   tANI_U32                 status;
+   tANI_U32                 matchCnt;   
+   tHalRcvFltPktMatchCnt    filterMatchCnt[HAL_MAX_NUM_FILTERS]; 
+} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader  header;
+   tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
+} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32   status;  /* only valid for response message */
+    tANI_U8    filterId;
+}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader               header;
+    tHalRcvFltPktClearParam     filterClearParam;
+} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader              header;
+   tHalRcvFltPktClearParam    filterClearParam;
+} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32   status;  
+}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader                    header;
+    tHalRcvFltMcAddrListType         mcAddrList;
+} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader                    header;
+   tHalRcvFltPktSetMcListRspType    rspParam;
+} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
+
+
+/*---------------------------------------------------------------------------
+ *******************Packet Filtering Definitions End*******************
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /*  Ignore DTIM */
+  tANI_U32 uIgnoreDTIM;
+
+  /*DTIM Period*/
+  tANI_U32 uDTIMPeriod; 
+
+  /* Listen Interval */
+  tANI_U32 uListenInterval;
+
+  /* Broadcast Multicast Filter  */
+  tANI_U32 uBcastMcastFilter;
+
+  /* Beacon Early Termination */
+  tANI_U32 uEnableBET;
+
+  /* Beacon Early Termination Interval */
+  tANI_U32 uBETInterval; 
+}tSetPowerParamsType, *tpSetPowerParamsType;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader               header;
+    tSetPowerParamsType         powerParams;
+} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
+
+typedef PACKED_PRE struct PACKED_POST{
+
+   tHalMsgHeader header;
+
+   /*status of the request */
+   tANI_U32   status;
+
+}  tSetPowerParamsResp, *tpSetPowerParamsResp;
+
+/*---------------------------------------------------------------------------
+ ****************Capability bitmap exchange definitions and macros starts*************
+ *--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST{
+
+   tANI_U32 featCaps[4];
+
+}  tWlanFeatCaps, *tpWlanFeatCaps;
+
+typedef PACKED_PRE struct PACKED_POST{
+
+   tHalMsgHeader header;    
+   tWlanFeatCaps wlanFeatCaps;
+
+}  tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
+
+
+typedef enum {
+    MCC        = 0,
+    P2P        = 1,
+    MAX_FEATURE_SUPPORTED = 128,
+} placeHolderInCapBitmap;
+
+#define setFeatCaps(a,b)   {  tANI_U32 arr_index, bit_index; \
+                              if ((b>=0) && (b<=127)) { \
+                                arr_index = b/32; \
+                                bit_index = b % 32; \
+                                (a)->featCaps[arr_index] |= (1<<bit_index); \
+                              } \
+                           }
+#define getFeatCaps(a,b,c) {  tANI_U32 arr_index, bit_index; \
+                              if ((b>=0) && (b<=127)) { \
+                                arr_index = b/32; \
+                                bit_index = b % 32; \
+                                c = (a)->featCaps[arr_index] & (1<<bit_index); \
+                              } \
+                           }
+#define clearFeatCaps(a,b) {  tANI_U32 arr_index, bit_index; \
+                              if ((b>=0) && (b<=127)) { \
+                                arr_index = b/32; \
+                                bit_index = b % 32; \
+                                (a)->featCaps[arr_index] |= (0<<bit_index); \
+                              } \
+                           }
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_WAKE_REASON_IND
+ *--------------------------------------------------------------------------*/
+
+/* status codes to help debug rekey failures */
+typedef enum
+{
+    WLAN_HAL_GTK_REKEY_STATUS_SUCCESS            = 0,
+    WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED        = 1, /* rekey detected, but not handled */
+    WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR          = 2, /* MIC check error on M1 */
+    WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR      = 3, /* decryption error on M1  */
+    WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR       = 4, /* M1 replay detected */
+    WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE        = 5, /* missing GTK key descriptor in M1 */
+    WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE   = 6, /* missing iGTK key descriptor in M1 */
+    WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR      = 7, /* key installation error */
+    WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
+    WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR      = 9, /* GTK rekey M2 response TX error */
+
+    WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR          = 255 /* non-specific general error */
+} tGTKRekeyStatus;
+
+/* wake reason types */
+typedef enum
+{
+    WLAN_HAL_WAKE_REASON_NONE             = 0,
+    WLAN_HAL_WAKE_REASON_MAGIC_PACKET     = 1,  /* magic packet match */
+    WLAN_HAL_WAKE_REASON_PATTERN_MATCH    = 2,  /* host defined pattern match */
+    WLAN_HAL_WAKE_REASON_EAPID_PACKET     = 3,  /* EAP-ID frame detected */
+    WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4,  /* start of EAPOL 4-way handshake detected */
+    WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
+    WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6,  /* GTK rekey status wakeup (see status) */
+    WLAN_HAL_WAKE_REASON_BSS_CONN_LOST    = 7,  /* BSS connection lost */
+} tWakeReasonType;
+
+/*
+  Wake Packet which is saved at tWakeReasonParams.DataStart
+  This data is sent for any wake reasons that involve a packet-based wakeup :
+
+  WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
+  WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
+  WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
+  WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
+  WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
+
+  The information is provided to the host for auditing and debug purposes
+
+*/
+
+/*
+  Wake reason indication parameters
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    uint32  ulReason;        /* see tWakeReasonType */
+    uint32  ulReasonArg;     /* argument specific to the reason type */
+    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 */
+    uint32  ulActualDataLen; /* actual length of data */
+    uint8   aDataStart[1];   /* variable length start of data (length == storedDataLen)
+                             see specific wake type */
+} tWakeReasonParams, *tpWakeReasonParams;
+
+/*
+  Wake reason indication
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader       header;
+    tWakeReasonParams   wakeReasonParams;
+} tHalWakeReasonInd, *tpHalWakeReasonInd;
+
+/*---------------------------------------------------------------------------
+* WLAN_HAL_GTK_OFFLOAD_REQ
+*--------------------------------------------------------------------------*/
+
+#define HAL_GTK_KEK_BYTES 16
+#define HAL_GTK_KCK_BYTES 16
+
+#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
+
+typedef PACKED_PRE struct PACKED_POST
+{
+  tANI_U32     ulFlags;             /* optional flags */
+  tANI_U8      aKCK[HAL_GTK_KCK_BYTES];  /* Key confirmation key */ 
+  tANI_U8      aKEK[HAL_GTK_KEK_BYTES];  /* key encryption key */
+  tANI_U64     ullKeyReplayCounter; /* replay counter */
+} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalGtkOffloadReqParams gtkOffloadReqParams;
+}  tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
+
+/*---------------------------------------------------------------------------
+* WLAN_HAL_GTK_OFFLOAD_RSP
+*--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U32   ulStatus;   /* success or failure */
+} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalGtkOffloadRspParams gtkOffloadRspParams;
+}  tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
+
+
+/*---------------------------------------------------------------------------
+* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
+*--------------------------------------------------------------------------*/
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+}  tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
+
+/*---------------------------------------------------------------------------
+* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
+*--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U32   ulStatus;             /* success or failure */
+   tANI_U32   ulLastRekeyStatus;    /* last rekey status when the rekey was offloaded */
+   tANI_U64   ullKeyReplayCounter;  /* current replay counter value */
+   tANI_U32   ulTotalRekeyCount;    /* total rekey attempts */
+   tANI_U32   ulGTKRekeyCount;      /* successful GTK rekeys */
+   tANI_U32   ulIGTKRekeyCount;     /* successful iGTK rekeys */
+} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
+}  tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
+
+/*
+   Thermal Mitigation mode of operation.
+   HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
+   HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
+   reducing transmit power
+   HAL_THERMAL_MITIGATION_MODE_2 - Not supported
+*/
+typedef enum
+{
+  HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
+  HAL_THERMAL_MITIGATION_MODE_0,
+  HAL_THERMAL_MITIGATION_MODE_1,
+  HAL_THERMAL_MITIGATION_MODE_2,
+  HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
+}tHalThermalMitigationModeType;
+//typedef tANI_S16 tHalThermalMitigationModeType;
+
+/*
+   Thermal Mitigation level.
+   Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
+   HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
+
+   HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
+   level indicates normal mode of operation
+   HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
+   HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
+   HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
+   HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
+*/
+typedef enum 
+{
+  HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
+  HAL_THERMAL_MITIGATION_LEVEL_0,
+  HAL_THERMAL_MITIGATION_LEVEL_1,
+  HAL_THERMAL_MITIGATION_LEVEL_2,
+  HAL_THERMAL_MITIGATION_LEVEL_3,
+  HAL_THERMAL_MITIGATION_LEVEL_4,
+  HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
+}tHalThermalMitigationLevelType;
+//typedef tANI_S16 tHalThermalMitigationLevelType;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   /* Thermal Mitigation Operation Mode */
+   tHalThermalMitigationModeType thermalMitMode;
+
+   /* Thermal Mitigation Level */
+   tHalThermalMitigationLevelType thermalMitLevel;
+    
+}tSetThermalMitgationType, *tpSetThermalMitgationType;
+
+/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader               header;
+    tSetThermalMitgationType    thermalMitParams;
+} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
+
+typedef PACKED_PRE struct PACKED_POST{
+
+   tHalMsgHeader header;
+
+   /*status of the request */
+   tANI_U32   status;
+
+}  tSetThermalMitigationResp, *tpSetThermalMitigationResp;
+
+#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
+#pragma pack(pop)
+#elif defined(__ANI_COMPILER_PRAGMA_PACK)
+#else
+#endif
+
+#endif /* _WLAN_HAL_MSG_H_ */