linux/drivers/net/wireless/ath/wcn36xx/hal.h

/*
 * Copyright (c) 2013 Eugene Krasnikov <[email protected]>
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef _HAL_H_
#define _HAL_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 WCN36XX_HAL_VER_MAJOR
#define WCN36XX_HAL_VER_MINOR
#define WCN36XX_HAL_VER_VERSION
#define WCN36XX_HAL_VER_REVISION

/* This is to force compiler to use the maximum of an int ( 4 bytes ) */
#define WCN36XX_HAL_MAX_ENUM_SIZE
#define WCN36XX_HAL_MSG_TYPE_MAX_ENUM_SIZE

/* Max no. of transmit categories */
#define STACFG_MAX_TC

/* The maximum value of access category */
#define WCN36XX_HAL_MAX_AC

#define WCN36XX_HAL_IPV4_ADDR_LEN

#define WCN36XX_HAL_STA_INVALID_IDX
#define WCN36XX_HAL_BSS_INVALID_IDX

/* Default Beacon template size */
#define BEACON_TEMPLATE_SIZE

/* Minimum PVM size that the FW expects. See comment in smd.c for details. */
#define TIM_MIN_PVM_SIZE

/* Param Change Bitmap sent to HAL */
#define PARAM_BCN_INTERVAL_CHANGED
#define PARAM_SHORT_PREAMBLE_CHANGED
#define PARAM_SHORT_SLOT_TIME_CHANGED
#define PARAM_llACOEXIST_CHANGED
#define PARAM_llBCOEXIST_CHANGED
#define PARAM_llGCOEXIST_CHANGED
#define PARAM_HT20MHZCOEXIST_CHANGED
#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED
#define PARAM_RIFS_MODE_CHANGED
#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED
#define PARAM_OBSS_MODE_CHANGED
#define PARAM_BEACON_UPDATE_MASK

/* dump command response Buffer size */
#define DUMPCMD_RSP_BUFFER

/* version string max length (including NULL) */
#define WCN36XX_HAL_VERSION_LENGTH

/* How many frames until we start a-mpdu TX session */
#define WCN36XX_AMPDU_START_THRESH

#define WCN36XX_MAX_SCAN_SSIDS
#define WCN36XX_MAX_SCAN_IE_LEN

/* message types for messages exchanged between WDI and HAL */
enum wcn36xx_hal_host_msg_type {};

/* Enumeration for Version */
enum wcn36xx_hal_host_msg_version {};

enum driver_type {};

enum wcn36xx_hal_stop_type {};

enum wcn36xx_hal_sys_mode {};

enum phy_chan_bond_state {};

/* Spatial Multiplexing(SM) Power Save mode */
enum wcn36xx_hal_ht_mimo_state {};

/* each station added has a rate mode which specifies the sta attributes */
enum sta_rate_mode {};

/* 1,2,5.5,11 */
#define WCN36XX_HAL_NUM_DSSS_RATES

/* 6,9,12,18,24,36,48,54 */
#define WCN36XX_HAL_NUM_OFDM_RATES

/* 72,96,108 */
#define WCN36XX_HAL_NUM_POLARIS_RATES

#define WCN36XX_HAL_MAC_MAX_SUPPORTED_MCS_SET

enum wcn36xx_hal_bss_type {};

enum wcn36xx_hal_nw_type {};

#define WCN36XX_HAL_MAC_RATESET_EID_MAX

enum wcn36xx_hal_ht_operating_mode {};

/* Encryption type enum used with peer */
enum ani_ed_type {};

#define WLAN_MAX_KEY_RSC_LEN
#define WLAN_WAPI_KEY_RSC_LEN

/* MAX key length when ULA is used */
#define WCN36XX_HAL_MAC_MAX_KEY_LENGTH
#define WCN36XX_HAL_MAC_MAX_NUM_OF_DEFAULT_KEYS

/*
 * Enum to specify whether key is used for TX only, RX only or both.
 */
enum ani_key_direction {};

enum ani_wep_type {};

enum wcn36xx_hal_link_state {};

enum wcn36xx_hal_stats_mask {};

/* BT-AMP events type */
enum bt_amp_event_type {};

/* PE Statistics */
enum pe_stats_mask {};

/*
 * Configuration Parameter IDs
 */
#define WCN36XX_HAL_CFG_STA_ID
#define WCN36XX_HAL_CFG_CURRENT_TX_ANTENNA
#define WCN36XX_HAL_CFG_CURRENT_RX_ANTENNA
#define WCN36XX_HAL_CFG_LOW_GAIN_OVERRIDE
#define WCN36XX_HAL_CFG_POWER_STATE_PER_CHAIN
#define WCN36XX_HAL_CFG_CAL_PERIOD
#define WCN36XX_HAL_CFG_CAL_CONTROL
#define WCN36XX_HAL_CFG_PROXIMITY
#define WCN36XX_HAL_CFG_NETWORK_DENSITY
#define WCN36XX_HAL_CFG_MAX_MEDIUM_TIME
#define WCN36XX_HAL_CFG_MAX_MPDUS_IN_AMPDU
#define WCN36XX_HAL_CFG_RTS_THRESHOLD
#define WCN36XX_HAL_CFG_SHORT_RETRY_LIMIT
#define WCN36XX_HAL_CFG_LONG_RETRY_LIMIT
#define WCN36XX_HAL_CFG_FRAGMENTATION_THRESHOLD
#define WCN36XX_HAL_CFG_DYNAMIC_THRESHOLD_ZERO
#define WCN36XX_HAL_CFG_DYNAMIC_THRESHOLD_ONE
#define WCN36XX_HAL_CFG_DYNAMIC_THRESHOLD_TWO
#define WCN36XX_HAL_CFG_FIXED_RATE
#define WCN36XX_HAL_CFG_RETRYRATE_POLICY
#define WCN36XX_HAL_CFG_RETRYRATE_SECONDARY
#define WCN36XX_HAL_CFG_RETRYRATE_TERTIARY
#define WCN36XX_HAL_CFG_FORCE_POLICY_PROTECTION
#define WCN36XX_HAL_CFG_FIXED_RATE_MULTICAST_24GHZ
#define WCN36XX_HAL_CFG_FIXED_RATE_MULTICAST_5GHZ
#define WCN36XX_HAL_CFG_DEFAULT_RATE_INDEX_24GHZ
#define WCN36XX_HAL_CFG_DEFAULT_RATE_INDEX_5GHZ
#define WCN36XX_HAL_CFG_MAX_BA_SESSIONS
#define WCN36XX_HAL_CFG_PS_DATA_INACTIVITY_TIMEOUT
#define WCN36XX_HAL_CFG_PS_ENABLE_BCN_FILTER
#define WCN36XX_HAL_CFG_PS_ENABLE_RSSI_MONITOR
#define WCN36XX_HAL_CFG_NUM_BEACON_PER_RSSI_AVERAGE
#define WCN36XX_HAL_CFG_STATS_PERIOD
#define WCN36XX_HAL_CFG_CFP_MAX_DURATION
#define WCN36XX_HAL_CFG_FRAME_TRANS_ENABLED
#define WCN36XX_HAL_CFG_DTIM_PERIOD
#define WCN36XX_HAL_CFG_EDCA_WMM_ACBK
#define WCN36XX_HAL_CFG_EDCA_WMM_ACBE
#define WCN36XX_HAL_CFG_EDCA_WMM_ACVO
#define WCN36XX_HAL_CFG_EDCA_WMM_ACVI
#define WCN36XX_HAL_CFG_BA_THRESHOLD_HIGH
#define WCN36XX_HAL_CFG_MAX_BA_BUFFERS
#define WCN36XX_HAL_CFG_RPE_POLLING_THRESHOLD
#define WCN36XX_HAL_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG
#define WCN36XX_HAL_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG
#define WCN36XX_HAL_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG
#define WCN36XX_HAL_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG
#define WCN36XX_HAL_CFG_NO_OF_ONCHIP_REORDER_SESSIONS
#define WCN36XX_HAL_CFG_PS_LISTEN_INTERVAL
#define WCN36XX_HAL_CFG_PS_HEART_BEAT_THRESHOLD
#define WCN36XX_HAL_CFG_PS_NTH_BEACON_FILTER
#define WCN36XX_HAL_CFG_PS_MAX_PS_POLL
#define WCN36XX_HAL_CFG_PS_MIN_RSSI_THRESHOLD
#define WCN36XX_HAL_CFG_PS_RSSI_FILTER_PERIOD
#define WCN36XX_HAL_CFG_PS_BROADCAST_FRAME_FILTER_ENABLE
#define WCN36XX_HAL_CFG_PS_IGNORE_DTIM
#define WCN36XX_HAL_CFG_PS_ENABLE_BCN_EARLY_TERM
#define WCN36XX_HAL_CFG_DYNAMIC_PS_POLL_VALUE
#define WCN36XX_HAL_CFG_PS_NULLDATA_AP_RESP_TIMEOUT
#define WCN36XX_HAL_CFG_TELE_BCN_WAKEUP_EN
#define WCN36XX_HAL_CFG_TELE_BCN_TRANS_LI
#define WCN36XX_HAL_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS
#define WCN36XX_HAL_CFG_TELE_BCN_MAX_LI
#define WCN36XX_HAL_CFG_TELE_BCN_MAX_LI_IDLE_BCNS
#define WCN36XX_HAL_CFG_TX_PWR_CTRL_ENABLE
#define WCN36XX_HAL_CFG_VALID_RADAR_CHANNEL_LIST
#define WCN36XX_HAL_CFG_TX_POWER_24_20
#define WCN36XX_HAL_CFG_TX_POWER_24_40
#define WCN36XX_HAL_CFG_TX_POWER_50_20
#define WCN36XX_HAL_CFG_TX_POWER_50_40
#define WCN36XX_HAL_CFG_MCAST_BCAST_FILTER_SETTING
#define WCN36XX_HAL_CFG_BCN_EARLY_TERM_WAKEUP_INTERVAL
#define WCN36XX_HAL_CFG_MAX_TX_POWER_2_4
#define WCN36XX_HAL_CFG_MAX_TX_POWER_5
#define WCN36XX_HAL_CFG_INFRA_STA_KEEP_ALIVE_PERIOD
#define WCN36XX_HAL_CFG_ENABLE_CLOSE_LOOP
#define WCN36XX_HAL_CFG_BTC_EXECUTION_MODE
#define WCN36XX_HAL_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK
#define WCN36XX_HAL_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS
#define WCN36XX_HAL_CFG_PS_TX_INACTIVITY_TIMEOUT
#define WCN36XX_HAL_CFG_WCNSS_API_VERSION
#define WCN36XX_HAL_CFG_AP_KEEPALIVE_TIMEOUT
#define WCN36XX_HAL_CFG_GO_KEEPALIVE_TIMEOUT
#define WCN36XX_HAL_CFG_ENABLE_MC_ADDR_LIST
#define WCN36XX_HAL_CFG_BTC_STATIC_LEN_INQ_BT
#define WCN36XX_HAL_CFG_BTC_STATIC_LEN_PAGE_BT
#define WCN36XX_HAL_CFG_BTC_STATIC_LEN_CONN_BT
#define WCN36XX_HAL_CFG_BTC_STATIC_LEN_LE_BT
#define WCN36XX_HAL_CFG_BTC_STATIC_LEN_INQ_WLAN
#define WCN36XX_HAL_CFG_BTC_STATIC_LEN_PAGE_WLAN
#define WCN36XX_HAL_CFG_BTC_STATIC_LEN_CONN_WLAN
#define WCN36XX_HAL_CFG_BTC_STATIC_LEN_LE_WLAN
#define WCN36XX_HAL_CFG_BTC_DYN_MAX_LEN_BT
#define WCN36XX_HAL_CFG_BTC_DYN_MAX_LEN_WLAN
#define WCN36XX_HAL_CFG_BTC_MAX_SCO_BLOCK_PERC
#define WCN36XX_HAL_CFG_BTC_DHCP_PROT_ON_A2DP
#define WCN36XX_HAL_CFG_BTC_DHCP_PROT_ON_SCO
#define WCN36XX_HAL_CFG_ENABLE_UNICAST_FILTER
#define WCN36XX_HAL_CFG_MAX_ASSOC_LIMIT
#define WCN36XX_HAL_CFG_ENABLE_LPWR_IMG_TRANSITION
#define WCN36XX_HAL_CFG_ENABLE_MCC_ADAPTIVE_SCHEDULER
#define WCN36XX_HAL_CFG_ENABLE_DETECT_PS_SUPPORT
#define WCN36XX_HAL_CFG_AP_LINK_MONITOR_TIMEOUT
#define WCN36XX_HAL_CFG_BTC_DWELL_TIME_MULTIPLIER
#define WCN36XX_HAL_CFG_ENABLE_TDLS_OXYGEN_MODE
#define WCN36XX_HAL_CFG_ENABLE_NAT_KEEP_ALIVE_FILTER
#define WCN36XX_HAL_CFG_ENABLE_SAP_OBSS_PROT
#define WCN36XX_HAL_CFG_PSPOLL_DATA_RECEP_TIMEOUT
#define WCN36XX_HAL_CFG_TDLS_PUAPSD_BUFFER_STA_CAPABLE
#define WCN36XX_HAL_CFG_TDLS_PUAPSD_MASK
#define WCN36XX_HAL_CFG_TDLS_PUAPSD_INACTIVITY_TIME
#define WCN36XX_HAL_CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD
#define WCN36XX_HAL_CFG_ANTENNA_DIVERSITY
#define WCN36XX_HAL_CFG_ATH_DISABLE
#define WCN36XX_HAL_CFG_FLEXCONNECT_POWER_FACTOR
#define WCN36XX_HAL_CFG_ENABLE_ADAPTIVE_RX_DRAIN
#define WCN36XX_HAL_CFG_TDLS_OFF_CHANNEL_CAPABLE
#define WCN36XX_HAL_CFG_MWS_COEX_V1_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V1_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V1_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V1_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V2_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V2_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V2_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V2_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V3_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V3_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V3_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V3_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V4_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V4_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V4_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V4_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V5_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V5_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V5_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V5_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V6_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V6_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V6_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V6_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V7_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V7_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V7_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V7_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V8_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V8_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V8_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V8_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V9_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V9_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V9_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V9_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_V10_WAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V10_WLAN_FREQ
#define WCN36XX_HAL_CFG_MWS_COEX_V10_CONFIG
#define WCN36XX_HAL_CFG_MWS_COEX_V10_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_MODEM_BACKOFF
#define WCN36XX_HAL_CFG_MWS_COEX_CONFIG1
#define WCN36XX_HAL_CFG_MWS_COEX_CONFIG2
#define WCN36XX_HAL_CFG_MWS_COEX_CONFIG3
#define WCN36XX_HAL_CFG_MWS_COEX_CONFIG4
#define WCN36XX_HAL_CFG_MWS_COEX_CONFIG5
#define WCN36XX_HAL_CFG_MWS_COEX_CONFIG6
#define WCN36XX_HAL_CFG_SAR_POWER_BACKOFF
#define WCN36XX_HAL_CFG_GO_LINK_MONITOR_TIMEOUT
#define WCN36XX_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN
#define WCN36XX_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_BT_LEN
#define WCN36XX_HAL_CFG_BTC_SAP_STATIC_OPP_ACTIVE_WLAN_LEN
#define WCN36XX_HAL_CFG_BTC_SAP_STATIC_OPP_ACTIVE_BT_LEN
#define WCN36XX_HAL_CFG_RMC_FIXED_RATE
#define WCN36XX_HAL_CFG_ASD_PROBE_INTERVAL
#define WCN36XX_HAL_CFG_ASD_TRIGGER_THRESHOLD
#define WCN36XX_HAL_CFG_ASD_RTT_RSSI_HYST_THRESHOLD
#define WCN36XX_HAL_CFG_BTC_CTS2S_ON_STA_DURING_SCO
#define WCN36XX_HAL_CFG_SHORT_PREAMBLE
#define WCN36XX_HAL_CFG_SHORT_SLOT_TIME
#define WCN36XX_HAL_CFG_DELAYED_BA
#define WCN36XX_HAL_CFG_IMMEDIATE_BA
#define WCN36XX_HAL_CFG_DOT11_MODE
#define WCN36XX_HAL_CFG_HT_CAPS
#define WCN36XX_HAL_CFG_AMPDU_PARAMS
#define WCN36XX_HAL_CFG_TX_BF_INFO
#define WCN36XX_HAL_CFG_ASC_CAP_INFO
#define WCN36XX_HAL_CFG_EXT_HT_CAPS
#define WCN36XX_HAL_CFG_QOS_ENABLED
#define WCN36XX_HAL_CFG_WME_ENABLED
#define WCN36XX_HAL_CFG_WSM_ENABLED
#define WCN36XX_HAL_CFG_WMM_ENABLED
#define WCN36XX_HAL_CFG_UAPSD_PER_AC_BITMASK
#define WCN36XX_HAL_CFG_MCS_RATES
#define WCN36XX_HAL_CFG_VHT_CAPS
#define WCN36XX_HAL_CFG_VHT_RX_SUPP_MCS
#define WCN36XX_HAL_CFG_VHT_TX_SUPP_MCS
#define WCN36XX_HAL_CFG_RA_FILTER_ENABLE
#define WCN36XX_HAL_CFG_RA_RATE_LIMIT_INTERVAL
#define WCN36XX_HAL_CFG_BTC_FATAL_HID_NSNIFF_BLK
#define WCN36XX_HAL_CFG_BTC_CRITICAL_HID_NSNIFF_BLK
#define WCN36XX_HAL_CFG_BTC_DYN_A2DP_TX_QUEUE_THOLD
#define WCN36XX_HAL_CFG_BTC_DYN_OPP_TX_QUEUE_THOLD
#define WCN36XX_HAL_CFG_LINK_FAIL_TIMEOUT
#define WCN36XX_HAL_CFG_MAX_UAPSD_CONSEC_SP
#define WCN36XX_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT
#define WCN36XX_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT
#define WCN36XX_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_MEAS_WINDOW
#define WCN36XX_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_MEAS_WINDOW
#define WCN36XX_HAL_CFG_MAX_PSPOLL_IN_WMM_UAPSD_PS_MODE
#define WCN36XX_HAL_CFG_MAX_UAPSD_INACTIVITY_INTERVALS
#define WCN36XX_HAL_CFG_ENABLE_DYNAMIC_WMMPS
#define WCN36XX_HAL_CFG_BURST_MODE_BE_TXOP_VALUE
#define WCN36XX_HAL_CFG_ENABLE_DYNAMIC_RA_START_RATE
#define WCN36XX_HAL_CFG_BTC_FAST_WLAN_CONN_PREF
#define WCN36XX_HAL_CFG_ENABLE_RTSCTS_HTVHT
#define WCN36XX_HAL_CFG_BTC_STATIC_OPP_WLAN_IDLE_WLAN_LEN
#define WCN36XX_HAL_CFG_BTC_STATIC_OPP_WLAN_IDLE_BT_LEN
#define WCN36XX_HAL_CFG_LINK_FAIL_TX_CNT
#define WCN36XX_HAL_CFG_TOGGLE_ARP_BDRATES
#define WCN36XX_HAL_CFG_OPTIMIZE_CA_EVENT
#define WCN36XX_HAL_CFG_EXT_SCAN_CONC_MODE
#define WCN36XX_HAL_CFG_BAR_WAKEUP_HOST_DISABLE
#define WCN36XX_HAL_CFG_SAR_BOFFSET_CORRECTION_ENABLE
#define WCN36XX_HAL_CFG_UNITS_OF_BCN_WAIT_TIME
#define WCN36XX_HAL_CFG_CONS_BCNMISS_COUNT
#define WCN36XX_HAL_CFG_BTC_DISABLE_WLAN_LINK_CRITICAL
#define WCN36XX_HAL_CFG_DISABLE_SCAN_DURING_SCO
#define WCN36XX_HAL_CFG_TRIGGER_NULLFRAME_BEFORE_HB
#define WCN36XX_HAL_CFG_ENABLE_POWERSAVE_OFFLOAD
#define WCN36XX_HAL_CFG_MAX_PARAMS

/* Specify the starting bitrate, 11B and 11A/G rates can be specified in
 * multiples of 0.5 So for 5.5 mbps => 11. for MCS 0 - 7 rates, Bit 7 should
 * set to 1 and Bit 0-6 represent the MCS index. so for MCS2 => 130.
 * Any invalid non-zero value or unsupported rate will set the start rate
 * to 6 mbps.
 */
#define WCN36XX_HAL_CFG_ENABLE_DYNAMIC_RA_START_RATE

/* Message definitons - All the messages below need to be packed */

/* Definition for HAL API Version. */
struct wcnss_wlan_version {} __packed;

/* Definition for Encryption Keys */
struct wcn36xx_hal_keys {} __packed;

/*
 * set_sta_key_params Moving here since it is shared by
 * configbss/setstakey msgs
 */
struct wcn36xx_hal_set_sta_key_params {} __packed;

/* 4-byte control message header used by HAL*/
struct wcn36xx_hal_msg_header {} __packed;

/* Config format required by HAL for each CFG item*/
struct wcn36xx_hal_cfg {} __packed;

struct wcn36xx_hal_mac_start_parameters {} __packed;

struct wcn36xx_hal_mac_start_req_msg {} __packed;

struct wcn36xx_hal_mac_start_rsp_params {} __packed;

struct wcn36xx_hal_mac_start_rsp_msg {} __packed;

struct wcn36xx_hal_mac_stop_req_params {} __packed;

struct wcn36xx_hal_mac_stop_req_msg {} __packed;

struct wcn36xx_hal_mac_stop_rsp_msg {} __packed;

struct wcn36xx_hal_update_cfg_req_msg {} __packed;

struct wcn36xx_hal_update_cfg_rsp_msg {} __packed;

/* Frame control field format (2 bytes) */
struct wcn36xx_hal_mac_frame_ctl {};

/* Sequence control field */
struct wcn36xx_hal_mac_seq_ctl {};

/* Management header format */
struct wcn36xx_hal_mac_mgmt_hdr {};

/* FIXME: pronto v1 apparently has 4 */
#define WCN36XX_HAL_NUM_BSSID

/* Scan Entry to hold active BSS idx's */
struct wcn36xx_hal_scan_entry {};

struct wcn36xx_hal_init_scan_req_msg {};

struct wcn36xx_hal_init_scan_con_req_msg {};

struct wcn36xx_hal_init_scan_rsp_msg {} __packed;

struct wcn36xx_hal_start_scan_req_msg {} __packed;

struct wcn36xx_hal_start_rsp_msg {} __packed;

struct wcn36xx_hal_end_scan_req_msg {} __packed;

struct wcn36xx_hal_end_scan_rsp_msg {} __packed;

struct wcn36xx_hal_finish_scan_req_msg {} __packed;

struct wcn36xx_hal_finish_scan_rsp_msg {} __packed;

enum wcn36xx_hal_scan_type {};

struct wcn36xx_hal_mac_ssid {} __packed;

struct wcn36xx_hal_start_scan_offload_req_msg {} __packed;

struct wcn36xx_hal_start_scan_offload_rsp_msg {} __packed;

enum wcn36xx_hal_scan_offload_ind_type {};

struct wcn36xx_hal_scan_offload_ind {} __packed;

struct wcn36xx_hal_stop_scan_offload_req_msg {} __packed;

struct wcn36xx_hal_stop_scan_offload_rsp_msg {} __packed;

#define WCN36XX_HAL_CHAN_REG1_MIN_PWR_MASK
#define WCN36XX_HAL_CHAN_REG1_MAX_PWR_MASK
#define WCN36XX_HAL_CHAN_REG1_REG_PWR_MASK
#define WCN36XX_HAL_CHAN_REG1_CLASS_ID_MASK
#define WCN36XX_HAL_CHAN_REG2_ANT_GAIN_MASK
#define WCN36XX_HAL_CHAN_INFO_FLAG_PASSIVE
#define WCN36XX_HAL_CHAN_INFO_FLAG_DFS
#define WCN36XX_HAL_CHAN_INFO_FLAG_HT
#define WCN36XX_HAL_CHAN_INFO_FLAG_VHT
#define WCN36XX_HAL_CHAN_INFO_PHY_11A
#define WCN36XX_HAL_CHAN_INFO_PHY_11BG
#define WCN36XX_HAL_DEFAULT_ANT_GAIN
#define WCN36XX_HAL_DEFAULT_MIN_POWER

struct wcn36xx_hal_channel_param {} __packed;

struct wcn36xx_hal_update_channel_list_req_msg {} __packed;

enum wcn36xx_hal_rate_index {};

struct wcn36xx_hal_supported_rates {} __packed;

struct wcn36xx_hal_config_sta_params {} __packed;

struct wcn36xx_hal_config_sta_req_msg {} __packed;

struct wcn36xx_hal_supported_rates_v1 {} __packed;

struct wcn36xx_hal_config_sta_params_v1 {} __packed;

#define WCN36XX_DIFF_STA_PARAMS_V1_NOVHT

struct wcn36xx_hal_config_sta_req_msg_v1 {} __packed;

struct config_sta_rsp_params {} __packed;

struct wcn36xx_hal_config_sta_rsp_msg {} __packed;

/* Delete STA Request message */
struct wcn36xx_hal_delete_sta_req_msg {} __packed;

/* Delete STA Response message */
struct wcn36xx_hal_delete_sta_rsp_msg {} __packed;

/* 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 */
struct wcn36xx_hal_rate_set {} __packed;

/* access category record */
struct wcn36xx_hal_aci_aifsn {} __packed;

/* contention window size */
struct wcn36xx_hal_mac_cw {} __packed;

struct wcn36xx_hal_edca_param_record {} __packed;

/* Concurrency role. These are generic IDs that identify the various roles
 *  in the software system. */
enum wcn36xx_hal_con_mode {};

/* 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 */
enum wcn36xx_hal_concurrency_mode {};

struct wcn36xx_hal_config_bss_params {} __packed;

struct wcn36xx_hal_config_bss_req_msg {} __packed;

struct wcn36xx_hal_config_bss_params_v1 {} __packed;

#define WCN36XX_DIFF_BSS_PARAMS_V1_NOVHT

struct wcn36xx_hal_config_bss_req_msg_v1 {} __packed;

struct wcn36xx_hal_config_bss_rsp_params {} __packed;

struct wcn36xx_hal_config_bss_rsp_msg {} __packed;

struct wcn36xx_hal_delete_bss_req_msg {} __packed;

struct wcn36xx_hal_delete_bss_rsp_msg {} __packed;

struct wcn36xx_hal_join_req_msg {} __packed;

struct wcn36xx_hal_join_rsp_msg {} __packed;

struct post_assoc_req_msg {};

struct post_assoc_rsp_msg {};

/* This is used to create a set of WEP keys for a given BSS. */
struct wcn36xx_hal_set_bss_key_req_msg {} __packed;

/* tagged version of set bss key */
struct wcn36xx_hal_set_bss_key_req_msg_tagged {} __packed;

struct wcn36xx_hal_set_bss_key_rsp_msg {} __packed;

/*
 * This is used  configure the key information on a given station.
 * When the sec_type is WEP40 or WEP104, the def_wep_idx is used to locate
 * a preconfigured key from a BSS the station associated with; otherwise
 * a new key descriptor is created based on the key field.
 */
struct wcn36xx_hal_set_sta_key_req_msg {} __packed;

struct wcn36xx_hal_set_sta_key_rsp_msg {} __packed;

struct wcn36xx_hal_remove_bss_key_req_msg {} __packed;

struct wcn36xx_hal_remove_bss_key_rsp_msg {} __packed;

/*
 * This is used by PE to Remove the key information on a given station.
 */
struct wcn36xx_hal_remove_sta_key_req_msg {} __packed;

struct wcn36xx_hal_remove_sta_key_rsp_msg {} __packed;

#ifdef FEATURE_OEM_DATA_SUPPORT

#ifndef OEM_DATA_REQ_SIZE
#define OEM_DATA_REQ_SIZE
#endif

#ifndef OEM_DATA_RSP_SIZE
#define OEM_DATA_RSP_SIZE
#endif

struct start_oem_data_req_msg {
	struct wcn36xx_hal_msg_header header;

	u32 status;
	tSirMacAddr self_mac_addr;
	u8 oem_data_req[OEM_DATA_REQ_SIZE];

};

struct start_oem_data_rsp_msg {
	struct wcn36xx_hal_msg_header header;

	u8 oem_data_rsp[OEM_DATA_RSP_SIZE];
};

#endif

struct wcn36xx_hal_switch_channel_req_msg {} __packed;

struct wcn36xx_hal_switch_channel_rsp_msg {} __packed;

struct wcn36xx_hal_process_ptt_msg_req_msg {} __packed;

struct wcn36xx_hal_process_ptt_msg_rsp_msg {} __packed;

struct update_edca_params_req_msg {};

struct update_edca_params_rsp_msg {};

struct dpu_stats_params {};

struct wcn36xx_hal_stats_req_msg {};

struct ani_summary_stats_info {};

/* defines tx_rate_flags */
enum tx_rate_info {};

struct ani_global_class_a_stats_info {};

struct ani_global_security_stats {};

struct ani_global_class_b_stats_info {};

struct ani_global_class_c_stats_info {};

struct ani_per_sta_stats_info {};

struct wcn36xx_hal_stats_rsp_msg {};

struct wcn36xx_hal_set_link_state_req_msg {} __packed;

struct set_link_state_rsp_msg {};

/* TSPEC Params */
struct wcn36xx_hal_ts_info_tfc {};

/* Flag to schedule the traffic type */
struct wcn36xx_hal_ts_info_sch {};

/* Traffic and scheduling info */
struct wcn36xx_hal_ts_info {};

/* Information elements */
struct wcn36xx_hal_tspec_ie {};

struct add_ts_req_msg {};

struct add_rs_rsp_msg {};

struct del_ts_req_msg {};

struct del_ts_rsp_msg {};

/* End of TSpec Parameters */

/* Start of BLOCK ACK related Parameters */

struct wcn36xx_hal_add_ba_session_req_msg {} __packed;

struct wcn36xx_hal_add_ba_session_rsp_msg {} __packed;

struct wcn36xx_hal_add_ba_req_msg {} __packed;

struct wcn36xx_hal_add_ba_rsp_msg {} __packed;

struct add_ba_info {};

struct wcn36xx_hal_trigger_ba_rsp_candidate {} __packed;

struct wcn36xx_hal_trigger_ba_req_candidate {} __packed;

struct wcn36xx_hal_trigger_ba_req_msg {} __packed;

struct wcn36xx_hal_trigger_ba_rsp_msg {} __packed;

struct wcn36xx_hal_del_ba_req_msg {} __packed;

struct wcn36xx_hal_del_ba_rsp_msg {} __packed;

struct tsm_stats_req_msg {};

struct tsm_stats_rsp_msg {};

struct set_key_done_msg {};

struct wcn36xx_hal_nv_img_download_req_msg {} __packed;

struct wcn36xx_hal_nv_img_download_rsp_msg {} __packed;

struct wcn36xx_hal_nv_store_ind {};

/* End of Block Ack Related Parameters */

#define WCN36XX_HAL_CIPHER_SEQ_CTR_SIZE

/* Definition for MIC failure indication MAC reports this each time a MIC
 * failure occures on Rx TKIP packet
 */
struct mic_failure_ind_msg {};

struct update_vht_op_mode_req_msg {};

struct update_vht_op_mode_params_rsp_msg {};

struct update_beacon_req_msg {};

struct update_beacon_rsp_msg {};

struct wcn36xx_hal_send_beacon_req_msg {} __packed;

struct send_beacon_rsp_msg {} __packed;

struct enable_radar_req_msg {};

struct enable_radar_rsp_msg {};

struct radar_detect_intr_ind_msg {};

struct radar_detect_ind_msg {};

struct wcn36xx_hal_get_tpc_report_req_msg {};

struct wcn36xx_hal_get_tpc_report_rsp_msg {};

struct wcn36xx_hal_send_probe_resp_req_msg {};

struct send_probe_resp_rsp_msg {};

struct send_unknown_frame_rx_ind_msg {};

struct wcn36xx_hal_delete_sta_context_ind_msg {} __packed;

struct indicate_del_sta {};

struct bt_amp_event_msg {};

struct bt_amp_event_rsp {};

struct tl_hal_flush_ac_req_msg {};

struct tl_hal_flush_ac_rsp_msg {};

struct wcn36xx_hal_enter_imps_req_msg {} __packed;

struct wcn36xx_hal_exit_imps_req_msg {} __packed;

struct wcn36xx_hal_enter_bmps_req_msg {} __packed;

struct wcn36xx_hal_exit_bmps_req_msg {} __packed;

struct wcn36xx_hal_missed_beacon_ind_msg {} __packed;

/* Beacon Filtering data structures */

struct beacon_filter_ie {} __packed;

#define WCN36XX_FILTER_CAPABILITY_MASK
#define WCN36XX_FILTER_IE_DS_CHANNEL_MASK
#define WCN36XX_FILTER_IE_ERP_FILTER_MASK
#define WCN36XX_FILTER_IE_EDCA_FILTER_MASK
#define WCN36XX_FILTER_IE_QOS_FILTER_MASK
#define WCN36XX_FILTER_IE_CHANNEL_SWITCH_MASK
#define WCN36XX_FILTER_IE_HT_BYTE0_FILTER_MASK
#define WCN36XX_FILTER_IE_HT_BYTE1_FILTER_MASK
#define WCN36XX_FILTER_IE_HT_BYTE2_FILTER_MASK
#define WCN36XX_FILTER_IE_HT_BYTE5_FILTER_MASK
#define WCN36XX_FILTER_IE_PWR_CONSTRAINT_MASK
#define WCN36XX_FILTER_IE_OPMODE_NOTIF_MASK
#define WCN36XX_FILTER_IE_VHTOP_CHWIDTH_MASK
#define WCN36XX_FILTER_IE_RSN_MASK
#define WCN36XX_FILTER_IE_VENDOR_MASK

/* The above structure would be followed by multiple of below mentioned
 * structure
 */

struct wcn36xx_hal_add_bcn_filter_req_msg {} __packed;

struct wcn36xx_hal_rem_bcn_filter_req {} __packed;

#define WCN36XX_HAL_IPV4_ARP_REPLY_OFFLOAD
#define WCN36XX_HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD
#define WCN36XX_HAL_IPV6_NS_OFFLOAD
#define WCN36XX_HAL_IPV6_ADDR_LEN
#define WCN36XX_HAL_OFFLOAD_DISABLE
#define WCN36XX_HAL_OFFLOAD_ENABLE
#define WCN36XX_HAL_OFFLOAD_BCAST_FILTER_ENABLE
#define WCN36XX_HAL_OFFLOAD_MCAST_FILTER_ENABLE
#define WCN36XX_HAL_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE
#define WCN36XX_HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE
#define WCN36XX_HAL_IPV6_OFFLOAD_ADDR_MAX

struct wcn36xx_hal_ns_offload_params {} __packed;

struct wcn36xx_hal_host_offload_req {} __packed;

struct wcn36xx_hal_host_offload_req_msg {} __packed;

/* Packet Types. */
#define WCN36XX_HAL_KEEP_ALIVE_NULL_PKT
#define WCN36XX_HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP

/* Enable or disable keep alive */
#define WCN36XX_HAL_KEEP_ALIVE_DISABLE
#define WCN36XX_HAL_KEEP_ALIVE_ENABLE
#define WCN36XX_KEEP_ALIVE_TIME_PERIOD

/* Keep Alive request. */
struct wcn36xx_hal_keep_alive_req_msg {} __packed;

struct wcn36xx_hal_rssi_threshold_req_msg {};

struct wcn36xx_hal_enter_uapsd_req_msg {};

struct wcn36xx_hal_exit_uapsd_req_msg {};

#define WCN36XX_HAL_WOWL_BCAST_PATTERN_MAX_SIZE
#define WCN36XX_HAL_WOWL_BCAST_MAX_NUM_PATTERNS

struct wcn36xx_hal_wowl_add_bcast_ptrn_req_msg {};

struct wcn36xx_hal_wow_del_bcast_ptrn_req_msg {};

struct wcn36xx_hal_wowl_enter_req_msg {};

struct wcn36xx_hal_wowl_exit_req_msg {};

struct wcn36xx_hal_get_rssi_req_msg {};

struct wcn36xx_hal_get_roam_rssi_req_msg {};

struct wcn36xx_hal_set_uapsd_ac_params_req_msg {};

struct wcn36xx_hal_configure_rxp_filter_req_msg {};

struct wcn36xx_hal_enter_imps_rsp_msg {};

struct wcn36xx_hal_exit_imps_rsp_msg {};

struct wcn36xx_hal_enter_bmps_rsp_msg {} __packed;

struct wcn36xx_hal_exit_bmps_rsp_msg {} __packed;

struct wcn36xx_hal_enter_uapsd_rsp_msg {};

struct wcn36xx_hal_exit_uapsd_rsp_msg {};

struct wcn36xx_hal_rssi_notification_ind_msg {};

struct wcn36xx_hal_get_rssio_rsp_msg {};

struct wcn36xx_hal_get_roam_rssi_rsp_msg {};

struct wcn36xx_hal_wowl_enter_rsp_msg {};

struct wcn36xx_hal_wowl_exit_rsp_msg {};

struct wcn36xx_hal_add_bcn_filter_rsp_msg {};

struct wcn36xx_hal_rem_bcn_filter_rsp_msg {};

struct wcn36xx_hal_add_wowl_bcast_ptrn_rsp_msg {};

struct wcn36xx_hal_del_wowl_bcast_ptrn_rsp_msg {};

struct wcn36xx_hal_host_offload_rsp_msg {};

struct wcn36xx_hal_keep_alive_rsp_msg {};

struct wcn36xx_hal_set_rssi_thresh_rsp_msg {};

struct wcn36xx_hal_set_uapsd_ac_params_rsp_msg {};

struct wcn36xx_hal_configure_rxp_filter_rsp_msg {};

struct set_max_tx_pwr_req {};

struct set_max_tx_pwr_rsp_msg {};

struct set_tx_pwr_req_msg {};

struct set_tx_pwr_rsp_msg {};

struct get_tx_pwr_req_msg {};

struct get_tx_pwr_rsp_msg {};

struct set_p2p_gonoa_req_msg {};

struct set_p2p_gonoa_rsp_msg {};

struct wcn36xx_hal_add_sta_self_req {} __packed;

struct wcn36xx_hal_add_sta_self_rsp_msg {} __packed;

struct wcn36xx_hal_del_sta_self_req_msg {} __packed;

struct wcn36xx_hal_del_sta_self_rsp_msg {} __packed;

struct aggr_add_ts_req {};

struct aggr_add_ts_rsp_msg {};

struct wcn36xx_hal_configure_apps_cpu_wakeup_state_req_msg {};

struct wcn36xx_hal_configure_apps_cpu_wakeup_state_rsp_msg {};

struct wcn36xx_hal_dump_cmd_req_msg {} __packed;

struct wcn36xx_hal_dump_cmd_rsp_msg {} __packed;

#define WLAN_COEX_IND_DATA_SIZE
#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR
#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR

struct coex_ind_msg {};

struct wcn36xx_hal_tx_compl_ind_msg {};

struct wcn36xx_hal_wlan_host_suspend_ind_msg {};

struct wcn36xx_hal_wlan_exclude_unencrpted_ind_msg {};

struct noa_attr_ind_msg {};

struct noa_start_ind_msg {};

struct wcn36xx_hal_wlan_host_resume_req_msg {};

struct wcn36xx_hal_host_resume_rsp_msg {};

struct wcn36xx_hal_del_ba_ind_msg {};

/* PNO Messages */

/* Max number of channels that a network can be found on */
#define WCN36XX_HAL_PNO_MAX_NETW_CHANNELS

/* Max number of channels that a network can be found on */
#define WCN36XX_HAL_PNO_MAX_NETW_CHANNELS_EX

/* Maximum numbers of networks supported by PNO */
#define WCN36XX_HAL_PNO_MAX_SUPP_NETWORKS

/* The number of scan time intervals that can be programmed into PNO */
#define WCN36XX_HAL_PNO_MAX_SCAN_TIMERS

/* Maximum size of the probe template */
#define WCN36XX_HAL_PNO_MAX_PROBE_SIZE

/* 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
 */
enum pno_mode {};

/* Authentication type */
enum auth_type {};

/* Encryption type */
enum ed_type {};

/* SSID broadcast  type */
enum ssid_bcast_type {};

/* The network description for which PNO will have to look for */
struct network_type {};

struct scan_timer {};

/* The network parameters to be sent to the PNO algorithm */
struct scan_timers_type {};

/* Preferred network list request */
struct set_pref_netw_list_req {};

/* The network description for which PNO will have to look for */
struct network_type_new {};

/* Preferred network list request new */
struct set_pref_netw_list_req_new {};

/* Preferred network list response */
struct set_pref_netw_list_resp {};

/* Preferred network found indication */
struct pref_netw_found_ind {};

/* RSSI Filter request */
struct set_rssi_filter_req {};

/* Set RSSI filter resp */
struct set_rssi_filter_resp {};

/* Update scan params - sent from host to PNO to be used during PNO
 * scanningx */
struct wcn36xx_hal_update_scan_params_req {} __packed;

/* Update scan params - sent from host to PNO to be used during PNO
 * scanningx */
struct wcn36xx_hal_update_scan_params_req_ex {} __packed;

/* Update scan params - sent from host to PNO to be used during PNO
 * scanningx */
struct wcn36xx_hal_update_scan_params_resp {} __packed;

struct wcn36xx_hal_set_tx_per_tracking_req_msg {};

struct wcn36xx_hal_set_tx_per_tracking_rsp_msg {};

struct tx_per_hit_ind_msg {};

/* Packet Filtering Definitions Begin */
#define WCN36XX_HAL_PROTOCOL_DATA_LEN
#define WCN36XX_HAL_MAX_NUM_MULTICAST_ADDRESS
#define WCN36XX_HAL_MAX_NUM_FILTERS
#define WCN36XX_HAL_MAX_CMP_PER_FILTER

enum wcn36xx_hal_receive_packet_filter_type {};

enum wcn36xx_hal_rcv_pkt_flt_protocol_type {};

enum wcn36xx_hal_rcv_pkt_flt_cmp_flag_type {};

struct wcn36xx_hal_rcv_pkt_filter_params {};

struct wcn36xx_hal_sessionized_rcv_pkt_filter_cfg_type {};

struct wcn36xx_hal_set_rcv_pkt_filter_req_msg {};

struct wcn36xx_hal_rcv_flt_mc_addr_list_type {} __packed;

struct wcn36xx_hal_set_pkt_filter_rsp_msg {};

struct wcn36xx_hal_rcv_flt_pkt_match_cnt_req_msg {};

struct wcn36xx_hal_rcv_flt_pkt_match_cnt {};

struct wcn36xx_hal_rcv_flt_pkt_match_cnt_rsp_msg {};

struct wcn36xx_hal_rcv_flt_pkt_clear_param {};

struct wcn36xx_hal_rcv_flt_pkt_clear_req_msg {};

struct wcn36xx_hal_rcv_flt_pkt_clear_rsp_msg {};

struct wcn36xx_hal_rcv_flt_pkt_set_mc_list_req_msg {} __packed;

struct wcn36xx_hal_rcv_flt_pkt_set_mc_list_rsp_msg {};

/* Packet Filtering Definitions End */

struct wcn36xx_hal_set_power_params_req_msg {} __packed;

struct wcn36xx_hal_set_power_params_resp {} __packed;

#define WCN36XX_HAL_CAPS_SIZE

struct wcn36xx_hal_feat_caps_msg {} __packed;

/* status codes to help debug rekey failures */
enum gtk_rekey_status {};

/* wake reason types */
enum wake_reason_type {};

/*
  Wake Packet which is saved at tWakeReasonParams.DataStart
  This data is sent for any wake reasons that involve a packet-based wakeup :

  WCN36XX_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
  WCN36XX_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
  WCN36XX_HAL_WAKE_REASON_TYPE_EAPID_PACKET
  WCN36XX_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
  WCN36XX_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS

  The information is provided to the host for auditing and debug purposes

*/

/* Wake reason indication */
struct wcn36xx_hal_wake_reason_ind {};

#define WCN36XX_HAL_GTK_KEK_BYTES
#define WCN36XX_HAL_GTK_KCK_BYTES

#define WCN36XX_HAL_GTK_OFFLOAD_FLAGS_DISABLE

#define GTK_SET_BSS_KEY_TAG

struct wcn36xx_hal_gtk_offload_req_msg {} __packed;

struct wcn36xx_hal_gtk_offload_rsp_msg {};

struct wcn36xx_hal_gtk_offload_get_info_req_msg {} __packed;

struct wcn36xx_hal_gtk_offload_get_info_rsp_msg {} __packed;

struct dhcp_info {};

struct dhcp_ind_status {};

/*
 *   Thermal Mitigation mode of operation.
 *
 *  WCN36XX_HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
 *
 *  WCN36XX_HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation
 *  and reducing transmit power
 *
 *  WCN36XX_HAL_THERMAL_MITIGATION_MODE_2 - Not supported */
enum wcn36xx_hal_thermal_mitigation_mode_type {};


/*
 *   Thermal Mitigation level.
 * Note the levels are incremental i.e WCN36XX_HAL_THERMAL_MITIGATION_LEVEL_2 =
 * WCN36XX_HAL_THERMAL_MITIGATION_LEVEL_0 +
 * WCN36XX_HAL_THERMAL_MITIGATION_LEVEL_1
 *
 * WCN36XX_HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation.
 * This level indicates normal mode of operation
 *
 * WCN36XX_HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
 *
 * WCN36XX_HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
 *
 * WCN36XX_HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
 *
 * WCN36XX_HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
 */
enum wcn36xx_hal_thermal_mitigation_level_type {};


/* WCN36XX_HAL_SET_THERMAL_MITIGATION_REQ */
struct set_thermal_mitigation_req_msg {};

struct set_thermal_mitigation_resp {};

/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
 * provided to FW from Host via periodic messages */
struct stats_class_b_ind {};

/* WCN36XX_HAL_PRINT_REG_INFO_IND */
struct wcn36xx_hal_print_reg_info_ind {} __packed;

#endif /* _HAL_H_ */