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_ */