Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/net/wireless/ath/ath10k/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 215 kB image not shown  

Quelle  wmi.h   Sprache: C

 
/* SPDX-License-Identifier: ISC */
/*
 * Copyright (c) 2005-2011 Atheros Communications Inc.
 * Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
 * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
 */


#ifndef _WMI_H_
#define _WMI_H_

#include <linux/types.h>
#include <linux/ieee80211.h>

/*
 * This file specifies the WMI interface for the Unified Software
 * Architecture.
 *
 * It includes definitions of all the commands and events. Commands are
 * messages from the host to the target. Events and Replies are messages
 * from the target to the host.
 *
 * Ownership of correctness in regards to WMI commands belongs to the host
 * driver and the target is not required to validate parameters for value,
 * proper range, or any other checking.
 *
 * Guidelines for extending this interface are below.
 *
 * 1. Add new WMI commands ONLY within the specified range - 0x9000 - 0x9fff
 *
 * 2. Use ONLY u32 type for defining member variables within WMI
 *    command/event structures. Do not use u8, u16, bool or
 *    enum types within these structures.
 *
 * 3. DO NOT define bit fields within structures. Implement bit fields
 *    using masks if necessary. Do not use the programming language's bit
 *    field definition.
 *
 * 4. Define macros for encode/decode of u8, u16 fields within
 *    the u32 variables. Use these macros for set/get of these fields.
 *    Try to use this to optimize the structure without bloating it with
 *    u32 variables for every lower sized field.
 *
 * 5. Do not use PACK/UNPACK attributes for the structures as each member
 *    variable is already 4-byte aligned by virtue of being a u32
 *    type.
 *
 * 6. Comment each parameter part of the WMI command/event structure by
 *    using the 2 stars at the beginning of C comment instead of one star to
 *    enable HTML document generation using Doxygen.
 *
 */


/* Control Path */
struct wmi_cmd_hdr {
 __le32 cmd_id;
} __packed;

#define WMI_CMD_HDR_CMD_ID_MASK   0x00FFFFFF
#define WMI_CMD_HDR_CMD_ID_LSB    0
#define WMI_CMD_HDR_PLT_PRIV_MASK 0xFF000000
#define WMI_CMD_HDR_PLT_PRIV_LSB  24

#define HTC_PROTOCOL_VERSION    0x0002
#define WMI_PROTOCOL_VERSION    0x0002

/*
 * There is no signed version of __le32, so for a temporary solution come
 * up with our own version. The idea is from fs/ntfs/endian.h.
 *
 * Use a_ prefix so that it doesn't conflict if we get proper support to
 * linux/types.h.
 */

typedef __s32 __bitwise a_sle32;

static inline a_sle32 a_cpu_to_sle32(s32 val)
{
 return (__force a_sle32)cpu_to_le32(val);
}

static inline s32 a_sle32_to_cpu(a_sle32 val)
{
 return le32_to_cpu((__force __le32)val);
}

enum wmi_service {
 WMI_SERVICE_BEACON_OFFLOAD = 0,
 WMI_SERVICE_SCAN_OFFLOAD,
 WMI_SERVICE_ROAM_OFFLOAD,
 WMI_SERVICE_BCN_MISS_OFFLOAD,
 WMI_SERVICE_STA_PWRSAVE,
 WMI_SERVICE_STA_ADVANCED_PWRSAVE,
 WMI_SERVICE_AP_UAPSD,
 WMI_SERVICE_AP_DFS,
 WMI_SERVICE_11AC,
 WMI_SERVICE_BLOCKACK,
 WMI_SERVICE_PHYERR,
 WMI_SERVICE_BCN_FILTER,
 WMI_SERVICE_RTT,
 WMI_SERVICE_RATECTRL,
 WMI_SERVICE_WOW,
 WMI_SERVICE_RATECTRL_CACHE,
 WMI_SERVICE_IRAM_TIDS,
 WMI_SERVICE_ARPNS_OFFLOAD,
 WMI_SERVICE_NLO,
 WMI_SERVICE_GTK_OFFLOAD,
 WMI_SERVICE_SCAN_SCH,
 WMI_SERVICE_CSA_OFFLOAD,
 WMI_SERVICE_CHATTER,
 WMI_SERVICE_COEX_FREQAVOID,
 WMI_SERVICE_PACKET_POWER_SAVE,
 WMI_SERVICE_FORCE_FW_HANG,
 WMI_SERVICE_GPIO,
 WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM,
 WMI_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG,
 WMI_SERVICE_STA_UAPSD_VAR_AUTO_TRIG,
 WMI_SERVICE_STA_KEEP_ALIVE,
 WMI_SERVICE_TX_ENCAP,
 WMI_SERVICE_BURST,
 WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT,
 WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT,
 WMI_SERVICE_ROAM_SCAN_OFFLOAD,
 WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC,
 WMI_SERVICE_EARLY_RX,
 WMI_SERVICE_STA_SMPS,
 WMI_SERVICE_FWTEST,
 WMI_SERVICE_STA_WMMAC,
 WMI_SERVICE_TDLS,
 WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE,
 WMI_SERVICE_ADAPTIVE_OCS,
 WMI_SERVICE_BA_SSN_SUPPORT,
 WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE,
 WMI_SERVICE_WLAN_HB,
 WMI_SERVICE_LTE_ANT_SHARE_SUPPORT,
 WMI_SERVICE_BATCH_SCAN,
 WMI_SERVICE_QPOWER,
 WMI_SERVICE_PLMREQ,
 WMI_SERVICE_THERMAL_MGMT,
 WMI_SERVICE_RMC,
 WMI_SERVICE_MHF_OFFLOAD,
 WMI_SERVICE_COEX_SAR,
 WMI_SERVICE_BCN_TXRATE_OVERRIDE,
 WMI_SERVICE_NAN,
 WMI_SERVICE_L1SS_STAT,
 WMI_SERVICE_ESTIMATE_LINKSPEED,
 WMI_SERVICE_OBSS_SCAN,
 WMI_SERVICE_TDLS_OFFCHAN,
 WMI_SERVICE_TDLS_UAPSD_BUFFER_STA,
 WMI_SERVICE_TDLS_UAPSD_SLEEP_STA,
 WMI_SERVICE_IBSS_PWRSAVE,
 WMI_SERVICE_LPASS,
 WMI_SERVICE_EXTSCAN,
 WMI_SERVICE_D0WOW,
 WMI_SERVICE_HSOFFLOAD,
 WMI_SERVICE_ROAM_HO_OFFLOAD,
 WMI_SERVICE_RX_FULL_REORDER,
 WMI_SERVICE_DHCP_OFFLOAD,
 WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT,
 WMI_SERVICE_MDNS_OFFLOAD,
 WMI_SERVICE_SAP_AUTH_OFFLOAD,
 WMI_SERVICE_ATF,
 WMI_SERVICE_COEX_GPIO,
 WMI_SERVICE_ENHANCED_PROXY_STA,
 WMI_SERVICE_TT,
 WMI_SERVICE_PEER_CACHING,
 WMI_SERVICE_AUX_SPECTRAL_INTF,
 WMI_SERVICE_AUX_CHAN_LOAD_INTF,
 WMI_SERVICE_BSS_CHANNEL_INFO_64,
 WMI_SERVICE_EXT_RES_CFG_SUPPORT,
 WMI_SERVICE_MESH_11S,
 WMI_SERVICE_MESH_NON_11S,
 WMI_SERVICE_PEER_STATS,
 WMI_SERVICE_RESTRT_CHNL_SUPPORT,
 WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT,
 WMI_SERVICE_TX_MODE_PUSH_ONLY,
 WMI_SERVICE_TX_MODE_PUSH_PULL,
 WMI_SERVICE_TX_MODE_DYNAMIC,
 WMI_SERVICE_VDEV_RX_FILTER,
 WMI_SERVICE_BTCOEX,
 WMI_SERVICE_CHECK_CAL_VERSION,
 WMI_SERVICE_DBGLOG_WARN2,
 WMI_SERVICE_BTCOEX_DUTY_CYCLE,
 WMI_SERVICE_4_WIRE_COEX_SUPPORT,
 WMI_SERVICE_EXTENDED_NSS_SUPPORT,
 WMI_SERVICE_PROG_GPIO_BAND_SELECT,
 WMI_SERVICE_SMART_LOGGING_SUPPORT,
 WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE,
 WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
 WMI_SERVICE_MGMT_TX_WMI,
 WMI_SERVICE_TDLS_WIDER_BANDWIDTH,
 WMI_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS,
 WMI_SERVICE_HOST_DFS_CHECK_SUPPORT,
 WMI_SERVICE_TPC_STATS_FINAL,
 WMI_SERVICE_RESET_CHIP,
 WMI_SERVICE_SPOOF_MAC_SUPPORT,
 WMI_SERVICE_TX_DATA_ACK_RSSI,
 WMI_SERVICE_VDEV_DIFFERENT_BEACON_INTERVAL_SUPPORT,
 WMI_SERVICE_VDEV_DISABLE_4_ADDR_SRC_LRN_SUPPORT,
 WMI_SERVICE_BB_TIMING_CONFIG_SUPPORT,
 WMI_SERVICE_THERM_THROT,
 WMI_SERVICE_RTT_RESPONDER_ROLE,
 WMI_SERVICE_PER_PACKET_SW_ENCRYPT,
 WMI_SERVICE_REPORT_AIRTIME,
 WMI_SERVICE_SYNC_DELETE_CMDS,
 WMI_SERVICE_TX_PWR_PER_PEER,
 WMI_SERVICE_SUPPORT_EXTEND_ADDRESS,
 WMI_SERVICE_PEER_TID_CONFIGS_SUPPORT,
 WMI_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT,

 /* Remember to add the new value to wmi_service_name()! */

 /* keep last */
 WMI_SERVICE_MAX,
};

enum wmi_10x_service {
 WMI_10X_SERVICE_BEACON_OFFLOAD = 0,
 WMI_10X_SERVICE_SCAN_OFFLOAD,
 WMI_10X_SERVICE_ROAM_OFFLOAD,
 WMI_10X_SERVICE_BCN_MISS_OFFLOAD,
 WMI_10X_SERVICE_STA_PWRSAVE,
 WMI_10X_SERVICE_STA_ADVANCED_PWRSAVE,
 WMI_10X_SERVICE_AP_UAPSD,
 WMI_10X_SERVICE_AP_DFS,
 WMI_10X_SERVICE_11AC,
 WMI_10X_SERVICE_BLOCKACK,
 WMI_10X_SERVICE_PHYERR,
 WMI_10X_SERVICE_BCN_FILTER,
 WMI_10X_SERVICE_RTT,
 WMI_10X_SERVICE_RATECTRL,
 WMI_10X_SERVICE_WOW,
 WMI_10X_SERVICE_RATECTRL_CACHE,
 WMI_10X_SERVICE_IRAM_TIDS,
 WMI_10X_SERVICE_BURST,

 /* introduced in 10.2 */
 WMI_10X_SERVICE_SMART_ANTENNA_SW_SUPPORT,
 WMI_10X_SERVICE_FORCE_FW_HANG,
 WMI_10X_SERVICE_SMART_ANTENNA_HW_SUPPORT,
 WMI_10X_SERVICE_ATF,
 WMI_10X_SERVICE_COEX_GPIO,
 WMI_10X_SERVICE_AUX_SPECTRAL_INTF,
 WMI_10X_SERVICE_AUX_CHAN_LOAD_INTF,
 WMI_10X_SERVICE_BSS_CHANNEL_INFO_64,
 WMI_10X_SERVICE_MESH,
 WMI_10X_SERVICE_EXT_RES_CFG_SUPPORT,
 WMI_10X_SERVICE_PEER_STATS,
 WMI_10X_SERVICE_RESET_CHIP,
 WMI_10X_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS,
 WMI_10X_SERVICE_VDEV_BCN_RATE_CONTROL,
 WMI_10X_SERVICE_PER_PACKET_SW_ENCRYPT,
 WMI_10X_SERVICE_BB_TIMING_CONFIG_SUPPORT,
};

enum wmi_main_service {
 WMI_MAIN_SERVICE_BEACON_OFFLOAD = 0,
 WMI_MAIN_SERVICE_SCAN_OFFLOAD,
 WMI_MAIN_SERVICE_ROAM_OFFLOAD,
 WMI_MAIN_SERVICE_BCN_MISS_OFFLOAD,
 WMI_MAIN_SERVICE_STA_PWRSAVE,
 WMI_MAIN_SERVICE_STA_ADVANCED_PWRSAVE,
 WMI_MAIN_SERVICE_AP_UAPSD,
 WMI_MAIN_SERVICE_AP_DFS,
 WMI_MAIN_SERVICE_11AC,
 WMI_MAIN_SERVICE_BLOCKACK,
 WMI_MAIN_SERVICE_PHYERR,
 WMI_MAIN_SERVICE_BCN_FILTER,
 WMI_MAIN_SERVICE_RTT,
 WMI_MAIN_SERVICE_RATECTRL,
 WMI_MAIN_SERVICE_WOW,
 WMI_MAIN_SERVICE_RATECTRL_CACHE,
 WMI_MAIN_SERVICE_IRAM_TIDS,
 WMI_MAIN_SERVICE_ARPNS_OFFLOAD,
 WMI_MAIN_SERVICE_NLO,
 WMI_MAIN_SERVICE_GTK_OFFLOAD,
 WMI_MAIN_SERVICE_SCAN_SCH,
 WMI_MAIN_SERVICE_CSA_OFFLOAD,
 WMI_MAIN_SERVICE_CHATTER,
 WMI_MAIN_SERVICE_COEX_FREQAVOID,
 WMI_MAIN_SERVICE_PACKET_POWER_SAVE,
 WMI_MAIN_SERVICE_FORCE_FW_HANG,
 WMI_MAIN_SERVICE_GPIO,
 WMI_MAIN_SERVICE_STA_DTIM_PS_MODULATED_DTIM,
 WMI_MAIN_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG,
 WMI_MAIN_SERVICE_STA_UAPSD_VAR_AUTO_TRIG,
 WMI_MAIN_SERVICE_STA_KEEP_ALIVE,
 WMI_MAIN_SERVICE_TX_ENCAP,
};

enum wmi_10_4_service {
 WMI_10_4_SERVICE_BEACON_OFFLOAD = 0,
 WMI_10_4_SERVICE_SCAN_OFFLOAD,
 WMI_10_4_SERVICE_ROAM_OFFLOAD,
 WMI_10_4_SERVICE_BCN_MISS_OFFLOAD,
 WMI_10_4_SERVICE_STA_PWRSAVE,
 WMI_10_4_SERVICE_STA_ADVANCED_PWRSAVE,
 WMI_10_4_SERVICE_AP_UAPSD,
 WMI_10_4_SERVICE_AP_DFS,
 WMI_10_4_SERVICE_11AC,
 WMI_10_4_SERVICE_BLOCKACK,
 WMI_10_4_SERVICE_PHYERR,
 WMI_10_4_SERVICE_BCN_FILTER,
 WMI_10_4_SERVICE_RTT,
 WMI_10_4_SERVICE_RATECTRL,
 WMI_10_4_SERVICE_WOW,
 WMI_10_4_SERVICE_RATECTRL_CACHE,
 WMI_10_4_SERVICE_IRAM_TIDS,
 WMI_10_4_SERVICE_BURST,
 WMI_10_4_SERVICE_SMART_ANTENNA_SW_SUPPORT,
 WMI_10_4_SERVICE_GTK_OFFLOAD,
 WMI_10_4_SERVICE_SCAN_SCH,
 WMI_10_4_SERVICE_CSA_OFFLOAD,
 WMI_10_4_SERVICE_CHATTER,
 WMI_10_4_SERVICE_COEX_FREQAVOID,
 WMI_10_4_SERVICE_PACKET_POWER_SAVE,
 WMI_10_4_SERVICE_FORCE_FW_HANG,
 WMI_10_4_SERVICE_SMART_ANTENNA_HW_SUPPORT,
 WMI_10_4_SERVICE_GPIO,
 WMI_10_4_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG,
 WMI_10_4_SERVICE_STA_UAPSD_VAR_AUTO_TRIG,
 WMI_10_4_SERVICE_STA_KEEP_ALIVE,
 WMI_10_4_SERVICE_TX_ENCAP,
 WMI_10_4_SERVICE_AP_PS_DETECT_OUT_OF_SYNC,
 WMI_10_4_SERVICE_EARLY_RX,
 WMI_10_4_SERVICE_ENHANCED_PROXY_STA,
 WMI_10_4_SERVICE_TT,
 WMI_10_4_SERVICE_ATF,
 WMI_10_4_SERVICE_PEER_CACHING,
 WMI_10_4_SERVICE_COEX_GPIO,
 WMI_10_4_SERVICE_AUX_SPECTRAL_INTF,
 WMI_10_4_SERVICE_AUX_CHAN_LOAD_INTF,
 WMI_10_4_SERVICE_BSS_CHANNEL_INFO_64,
 WMI_10_4_SERVICE_EXT_RES_CFG_SUPPORT,
 WMI_10_4_SERVICE_MESH_NON_11S,
 WMI_10_4_SERVICE_RESTRT_CHNL_SUPPORT,
 WMI_10_4_SERVICE_PEER_STATS,
 WMI_10_4_SERVICE_MESH_11S,
 WMI_10_4_SERVICE_PERIODIC_CHAN_STAT_SUPPORT,
 WMI_10_4_SERVICE_TX_MODE_PUSH_ONLY,
 WMI_10_4_SERVICE_TX_MODE_PUSH_PULL,
 WMI_10_4_SERVICE_TX_MODE_DYNAMIC,
 WMI_10_4_SERVICE_VDEV_RX_FILTER,
 WMI_10_4_SERVICE_BTCOEX,
 WMI_10_4_SERVICE_CHECK_CAL_VERSION,
 WMI_10_4_SERVICE_DBGLOG_WARN2,
 WMI_10_4_SERVICE_BTCOEX_DUTY_CYCLE,
 WMI_10_4_SERVICE_4_WIRE_COEX_SUPPORT,
 WMI_10_4_SERVICE_EXTENDED_NSS_SUPPORT,
 WMI_10_4_SERVICE_PROG_GPIO_BAND_SELECT,
 WMI_10_4_SERVICE_SMART_LOGGING_SUPPORT,
 WMI_10_4_SERVICE_TDLS,
 WMI_10_4_SERVICE_TDLS_OFFCHAN,
 WMI_10_4_SERVICE_TDLS_UAPSD_BUFFER_STA,
 WMI_10_4_SERVICE_TDLS_UAPSD_SLEEP_STA,
 WMI_10_4_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE,
 WMI_10_4_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
 WMI_10_4_SERVICE_TDLS_WIDER_BANDWIDTH,
 WMI_10_4_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS,
 WMI_10_4_SERVICE_HOST_DFS_CHECK_SUPPORT,
 WMI_10_4_SERVICE_TPC_STATS_FINAL,
 WMI_10_4_SERVICE_CFR_CAPTURE_SUPPORT,
 WMI_10_4_SERVICE_TX_DATA_ACK_RSSI,
 WMI_10_4_SERVICE_CFR_CAPTURE_IND_MSG_TYPE_LEGACY,
 WMI_10_4_SERVICE_PER_PACKET_SW_ENCRYPT,
 WMI_10_4_SERVICE_PEER_TID_CONFIGS_SUPPORT,
 WMI_10_4_SERVICE_VDEV_BCN_RATE_CONTROL,
 WMI_10_4_SERVICE_VDEV_DIFFERENT_BEACON_INTERVAL_SUPPORT,
 WMI_10_4_SERVICE_HTT_ASSERT_TRIGGER_SUPPORT,
 WMI_10_4_SERVICE_VDEV_FILTER_NEIGHBOR_RX_PACKETS,
 WMI_10_4_SERVICE_VDEV_DISABLE_4_ADDR_SRC_LRN_SUPPORT,
 WMI_10_4_SERVICE_PEER_CHWIDTH_CHANGE,
 WMI_10_4_SERVICE_RX_FILTER_OUT_COUNT,
 WMI_10_4_SERVICE_RTT_RESPONDER_ROLE,
 WMI_10_4_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT,
 WMI_10_4_SERVICE_REPORT_AIRTIME,
 WMI_10_4_SERVICE_TX_PWR_PER_PEER,
 WMI_10_4_SERVICE_FETCH_PEER_TX_PN,
 WMI_10_4_SERVICE_MULTIPLE_VDEV_RESTART,
 WMI_10_4_SERVICE_ENHANCED_RADIO_COUNTERS,
 WMI_10_4_SERVICE_QINQ_SUPPORT,
 WMI_10_4_SERVICE_RESET_CHIP,
};

static inline char *wmi_service_name(enum wmi_service service_id)
{
#define SVCSTR(x) case x: return #x

 switch (service_id) {
 SVCSTR(WMI_SERVICE_BEACON_OFFLOAD);
 SVCSTR(WMI_SERVICE_SCAN_OFFLOAD);
 SVCSTR(WMI_SERVICE_ROAM_OFFLOAD);
 SVCSTR(WMI_SERVICE_BCN_MISS_OFFLOAD);
 SVCSTR(WMI_SERVICE_STA_PWRSAVE);
 SVCSTR(WMI_SERVICE_STA_ADVANCED_PWRSAVE);
 SVCSTR(WMI_SERVICE_AP_UAPSD);
 SVCSTR(WMI_SERVICE_AP_DFS);
 SVCSTR(WMI_SERVICE_11AC);
 SVCSTR(WMI_SERVICE_BLOCKACK);
 SVCSTR(WMI_SERVICE_PHYERR);
 SVCSTR(WMI_SERVICE_BCN_FILTER);
 SVCSTR(WMI_SERVICE_RTT);
 SVCSTR(WMI_SERVICE_RATECTRL);
 SVCSTR(WMI_SERVICE_WOW);
 SVCSTR(WMI_SERVICE_RATECTRL_CACHE);
 SVCSTR(WMI_SERVICE_IRAM_TIDS);
 SVCSTR(WMI_SERVICE_ARPNS_OFFLOAD);
 SVCSTR(WMI_SERVICE_NLO);
 SVCSTR(WMI_SERVICE_GTK_OFFLOAD);
 SVCSTR(WMI_SERVICE_SCAN_SCH);
 SVCSTR(WMI_SERVICE_CSA_OFFLOAD);
 SVCSTR(WMI_SERVICE_CHATTER);
 SVCSTR(WMI_SERVICE_COEX_FREQAVOID);
 SVCSTR(WMI_SERVICE_PACKET_POWER_SAVE);
 SVCSTR(WMI_SERVICE_FORCE_FW_HANG);
 SVCSTR(WMI_SERVICE_GPIO);
 SVCSTR(WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM);
 SVCSTR(WMI_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG);
 SVCSTR(WMI_SERVICE_STA_UAPSD_VAR_AUTO_TRIG);
 SVCSTR(WMI_SERVICE_STA_KEEP_ALIVE);
 SVCSTR(WMI_SERVICE_TX_ENCAP);
 SVCSTR(WMI_SERVICE_BURST);
 SVCSTR(WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT);
 SVCSTR(WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT);
 SVCSTR(WMI_SERVICE_ROAM_SCAN_OFFLOAD);
 SVCSTR(WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC);
 SVCSTR(WMI_SERVICE_EARLY_RX);
 SVCSTR(WMI_SERVICE_STA_SMPS);
 SVCSTR(WMI_SERVICE_FWTEST);
 SVCSTR(WMI_SERVICE_STA_WMMAC);
 SVCSTR(WMI_SERVICE_TDLS);
 SVCSTR(WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE);
 SVCSTR(WMI_SERVICE_ADAPTIVE_OCS);
 SVCSTR(WMI_SERVICE_BA_SSN_SUPPORT);
 SVCSTR(WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE);
 SVCSTR(WMI_SERVICE_WLAN_HB);
 SVCSTR(WMI_SERVICE_LTE_ANT_SHARE_SUPPORT);
 SVCSTR(WMI_SERVICE_BATCH_SCAN);
 SVCSTR(WMI_SERVICE_QPOWER);
 SVCSTR(WMI_SERVICE_PLMREQ);
 SVCSTR(WMI_SERVICE_THERMAL_MGMT);
 SVCSTR(WMI_SERVICE_RMC);
 SVCSTR(WMI_SERVICE_MHF_OFFLOAD);
 SVCSTR(WMI_SERVICE_COEX_SAR);
 SVCSTR(WMI_SERVICE_BCN_TXRATE_OVERRIDE);
 SVCSTR(WMI_SERVICE_NAN);
 SVCSTR(WMI_SERVICE_L1SS_STAT);
 SVCSTR(WMI_SERVICE_ESTIMATE_LINKSPEED);
 SVCSTR(WMI_SERVICE_OBSS_SCAN);
 SVCSTR(WMI_SERVICE_TDLS_OFFCHAN);
 SVCSTR(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA);
 SVCSTR(WMI_SERVICE_TDLS_UAPSD_SLEEP_STA);
 SVCSTR(WMI_SERVICE_IBSS_PWRSAVE);
 SVCSTR(WMI_SERVICE_LPASS);
 SVCSTR(WMI_SERVICE_EXTSCAN);
 SVCSTR(WMI_SERVICE_D0WOW);
 SVCSTR(WMI_SERVICE_HSOFFLOAD);
 SVCSTR(WMI_SERVICE_ROAM_HO_OFFLOAD);
 SVCSTR(WMI_SERVICE_RX_FULL_REORDER);
 SVCSTR(WMI_SERVICE_DHCP_OFFLOAD);
 SVCSTR(WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT);
 SVCSTR(WMI_SERVICE_MDNS_OFFLOAD);
 SVCSTR(WMI_SERVICE_SAP_AUTH_OFFLOAD);
 SVCSTR(WMI_SERVICE_ATF);
 SVCSTR(WMI_SERVICE_COEX_GPIO);
 SVCSTR(WMI_SERVICE_ENHANCED_PROXY_STA);
 SVCSTR(WMI_SERVICE_TT);
 SVCSTR(WMI_SERVICE_PEER_CACHING);
 SVCSTR(WMI_SERVICE_AUX_SPECTRAL_INTF);
 SVCSTR(WMI_SERVICE_AUX_CHAN_LOAD_INTF);
 SVCSTR(WMI_SERVICE_BSS_CHANNEL_INFO_64);
 SVCSTR(WMI_SERVICE_EXT_RES_CFG_SUPPORT);
 SVCSTR(WMI_SERVICE_MESH_11S);
 SVCSTR(WMI_SERVICE_MESH_NON_11S);
 SVCSTR(WMI_SERVICE_PEER_STATS);
 SVCSTR(WMI_SERVICE_RESTRT_CHNL_SUPPORT);
 SVCSTR(WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT);
 SVCSTR(WMI_SERVICE_TX_MODE_PUSH_ONLY);
 SVCSTR(WMI_SERVICE_TX_MODE_PUSH_PULL);
 SVCSTR(WMI_SERVICE_TX_MODE_DYNAMIC);
 SVCSTR(WMI_SERVICE_VDEV_RX_FILTER);
 SVCSTR(WMI_SERVICE_BTCOEX);
 SVCSTR(WMI_SERVICE_CHECK_CAL_VERSION);
 SVCSTR(WMI_SERVICE_DBGLOG_WARN2);
 SVCSTR(WMI_SERVICE_BTCOEX_DUTY_CYCLE);
 SVCSTR(WMI_SERVICE_4_WIRE_COEX_SUPPORT);
 SVCSTR(WMI_SERVICE_EXTENDED_NSS_SUPPORT);
 SVCSTR(WMI_SERVICE_PROG_GPIO_BAND_SELECT);
 SVCSTR(WMI_SERVICE_SMART_LOGGING_SUPPORT);
 SVCSTR(WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE);
 SVCSTR(WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY);
 SVCSTR(WMI_SERVICE_MGMT_TX_WMI);
 SVCSTR(WMI_SERVICE_TDLS_WIDER_BANDWIDTH);
 SVCSTR(WMI_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS);
 SVCSTR(WMI_SERVICE_HOST_DFS_CHECK_SUPPORT);
 SVCSTR(WMI_SERVICE_TPC_STATS_FINAL);
 SVCSTR(WMI_SERVICE_RESET_CHIP);
 SVCSTR(WMI_SERVICE_SPOOF_MAC_SUPPORT);
 SVCSTR(WMI_SERVICE_TX_DATA_ACK_RSSI);
 SVCSTR(WMI_SERVICE_VDEV_DIFFERENT_BEACON_INTERVAL_SUPPORT);
 SVCSTR(WMI_SERVICE_VDEV_DISABLE_4_ADDR_SRC_LRN_SUPPORT);
 SVCSTR(WMI_SERVICE_BB_TIMING_CONFIG_SUPPORT);
 SVCSTR(WMI_SERVICE_THERM_THROT);
 SVCSTR(WMI_SERVICE_RTT_RESPONDER_ROLE);
 SVCSTR(WMI_SERVICE_PER_PACKET_SW_ENCRYPT);
 SVCSTR(WMI_SERVICE_REPORT_AIRTIME);
 SVCSTR(WMI_SERVICE_SYNC_DELETE_CMDS);
 SVCSTR(WMI_SERVICE_TX_PWR_PER_PEER);
 SVCSTR(WMI_SERVICE_SUPPORT_EXTEND_ADDRESS);
 SVCSTR(WMI_SERVICE_PEER_TID_CONFIGS_SUPPORT);
 SVCSTR(WMI_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT);

 case WMI_SERVICE_MAX:
  return NULL;
 }

#undef SVCSTR

 return NULL;
}

#define WMI_SERVICE_IS_ENABLED(wmi_svc_bmap, svc_id, len) \
 ((svc_id) < (len) && \
  __le32_to_cpu((wmi_svc_bmap)[(svc_id) / (sizeof(u32))]) & \
  BIT((svc_id) % (sizeof(u32))))

/* This extension is required to accommodate new services, current limit
 * for wmi_services is 64 as target is using only 4-bits of each 32-bit
 * wmi_service word. Extending this to make use of remaining unused bits
 * for new services.
 */

#define WMI_EXT_SERVICE_IS_ENABLED(wmi_svc_bmap, svc_id, len) \
 ((svc_id) >= (len) && \
 __le32_to_cpu((wmi_svc_bmap)[((svc_id) - (len)) / 28]) & \
 BIT(((((svc_id) - (len)) % 28) & 0x1f) + 4))

#define SVCMAP(x, y, len) \
 do { \
  if ((WMI_SERVICE_IS_ENABLED((in), (x), (len))) || \
      (WMI_EXT_SERVICE_IS_ENABLED((in), (x), (len)))) \
   __set_bit(y, out); \
 } while (0)

static inline void wmi_10x_svc_map(const __le32 *in, unsigned long *out,
       size_t len)
{
 SVCMAP(WMI_10X_SERVICE_BEACON_OFFLOAD,
        WMI_SERVICE_BEACON_OFFLOAD, len);
 SVCMAP(WMI_10X_SERVICE_SCAN_OFFLOAD,
        WMI_SERVICE_SCAN_OFFLOAD, len);
 SVCMAP(WMI_10X_SERVICE_ROAM_OFFLOAD,
        WMI_SERVICE_ROAM_OFFLOAD, len);
 SVCMAP(WMI_10X_SERVICE_BCN_MISS_OFFLOAD,
        WMI_SERVICE_BCN_MISS_OFFLOAD, len);
 SVCMAP(WMI_10X_SERVICE_STA_PWRSAVE,
        WMI_SERVICE_STA_PWRSAVE, len);
 SVCMAP(WMI_10X_SERVICE_STA_ADVANCED_PWRSAVE,
        WMI_SERVICE_STA_ADVANCED_PWRSAVE, len);
 SVCMAP(WMI_10X_SERVICE_AP_UAPSD,
        WMI_SERVICE_AP_UAPSD, len);
 SVCMAP(WMI_10X_SERVICE_AP_DFS,
        WMI_SERVICE_AP_DFS, len);
 SVCMAP(WMI_10X_SERVICE_11AC,
        WMI_SERVICE_11AC, len);
 SVCMAP(WMI_10X_SERVICE_BLOCKACK,
        WMI_SERVICE_BLOCKACK, len);
 SVCMAP(WMI_10X_SERVICE_PHYERR,
        WMI_SERVICE_PHYERR, len);
 SVCMAP(WMI_10X_SERVICE_BCN_FILTER,
        WMI_SERVICE_BCN_FILTER, len);
 SVCMAP(WMI_10X_SERVICE_RTT,
        WMI_SERVICE_RTT, len);
 SVCMAP(WMI_10X_SERVICE_RATECTRL,
        WMI_SERVICE_RATECTRL, len);
 SVCMAP(WMI_10X_SERVICE_WOW,
        WMI_SERVICE_WOW, len);
 SVCMAP(WMI_10X_SERVICE_RATECTRL_CACHE,
        WMI_SERVICE_RATECTRL_CACHE, len);
 SVCMAP(WMI_10X_SERVICE_IRAM_TIDS,
        WMI_SERVICE_IRAM_TIDS, len);
 SVCMAP(WMI_10X_SERVICE_BURST,
        WMI_SERVICE_BURST, len);
 SVCMAP(WMI_10X_SERVICE_SMART_ANTENNA_SW_SUPPORT,
        WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT, len);
 SVCMAP(WMI_10X_SERVICE_FORCE_FW_HANG,
        WMI_SERVICE_FORCE_FW_HANG, len);
 SVCMAP(WMI_10X_SERVICE_SMART_ANTENNA_HW_SUPPORT,
        WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT, len);
 SVCMAP(WMI_10X_SERVICE_ATF,
        WMI_SERVICE_ATF, len);
 SVCMAP(WMI_10X_SERVICE_COEX_GPIO,
        WMI_SERVICE_COEX_GPIO, len);
 SVCMAP(WMI_10X_SERVICE_AUX_SPECTRAL_INTF,
        WMI_SERVICE_AUX_SPECTRAL_INTF, len);
 SVCMAP(WMI_10X_SERVICE_AUX_CHAN_LOAD_INTF,
        WMI_SERVICE_AUX_CHAN_LOAD_INTF, len);
 SVCMAP(WMI_10X_SERVICE_BSS_CHANNEL_INFO_64,
        WMI_SERVICE_BSS_CHANNEL_INFO_64, len);
 SVCMAP(WMI_10X_SERVICE_MESH,
        WMI_SERVICE_MESH_11S, len);
 SVCMAP(WMI_10X_SERVICE_EXT_RES_CFG_SUPPORT,
        WMI_SERVICE_EXT_RES_CFG_SUPPORT, len);
 SVCMAP(WMI_10X_SERVICE_PEER_STATS,
        WMI_SERVICE_PEER_STATS, len);
 SVCMAP(WMI_10X_SERVICE_RESET_CHIP,
        WMI_SERVICE_RESET_CHIP, len);
 SVCMAP(WMI_10X_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS,
        WMI_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS, len);
 SVCMAP(WMI_10X_SERVICE_BB_TIMING_CONFIG_SUPPORT,
        WMI_SERVICE_BB_TIMING_CONFIG_SUPPORT, len);
 SVCMAP(WMI_10X_SERVICE_PER_PACKET_SW_ENCRYPT,
        WMI_SERVICE_PER_PACKET_SW_ENCRYPT, len);
}

static inline void wmi_main_svc_map(const __le32 *in, unsigned long *out,
        size_t len)
{
 SVCMAP(WMI_MAIN_SERVICE_BEACON_OFFLOAD,
        WMI_SERVICE_BEACON_OFFLOAD, len);
 SVCMAP(WMI_MAIN_SERVICE_SCAN_OFFLOAD,
        WMI_SERVICE_SCAN_OFFLOAD, len);
 SVCMAP(WMI_MAIN_SERVICE_ROAM_OFFLOAD,
        WMI_SERVICE_ROAM_OFFLOAD, len);
 SVCMAP(WMI_MAIN_SERVICE_BCN_MISS_OFFLOAD,
        WMI_SERVICE_BCN_MISS_OFFLOAD, len);
 SVCMAP(WMI_MAIN_SERVICE_STA_PWRSAVE,
        WMI_SERVICE_STA_PWRSAVE, len);
 SVCMAP(WMI_MAIN_SERVICE_STA_ADVANCED_PWRSAVE,
        WMI_SERVICE_STA_ADVANCED_PWRSAVE, len);
 SVCMAP(WMI_MAIN_SERVICE_AP_UAPSD,
        WMI_SERVICE_AP_UAPSD, len);
 SVCMAP(WMI_MAIN_SERVICE_AP_DFS,
        WMI_SERVICE_AP_DFS, len);
 SVCMAP(WMI_MAIN_SERVICE_11AC,
        WMI_SERVICE_11AC, len);
 SVCMAP(WMI_MAIN_SERVICE_BLOCKACK,
        WMI_SERVICE_BLOCKACK, len);
 SVCMAP(WMI_MAIN_SERVICE_PHYERR,
        WMI_SERVICE_PHYERR, len);
 SVCMAP(WMI_MAIN_SERVICE_BCN_FILTER,
        WMI_SERVICE_BCN_FILTER, len);
 SVCMAP(WMI_MAIN_SERVICE_RTT,
        WMI_SERVICE_RTT, len);
 SVCMAP(WMI_MAIN_SERVICE_RATECTRL,
        WMI_SERVICE_RATECTRL, len);
 SVCMAP(WMI_MAIN_SERVICE_WOW,
        WMI_SERVICE_WOW, len);
 SVCMAP(WMI_MAIN_SERVICE_RATECTRL_CACHE,
        WMI_SERVICE_RATECTRL_CACHE, len);
 SVCMAP(WMI_MAIN_SERVICE_IRAM_TIDS,
        WMI_SERVICE_IRAM_TIDS, len);
 SVCMAP(WMI_MAIN_SERVICE_ARPNS_OFFLOAD,
        WMI_SERVICE_ARPNS_OFFLOAD, len);
 SVCMAP(WMI_MAIN_SERVICE_NLO,
        WMI_SERVICE_NLO, len);
 SVCMAP(WMI_MAIN_SERVICE_GTK_OFFLOAD,
        WMI_SERVICE_GTK_OFFLOAD, len);
 SVCMAP(WMI_MAIN_SERVICE_SCAN_SCH,
        WMI_SERVICE_SCAN_SCH, len);
 SVCMAP(WMI_MAIN_SERVICE_CSA_OFFLOAD,
        WMI_SERVICE_CSA_OFFLOAD, len);
 SVCMAP(WMI_MAIN_SERVICE_CHATTER,
        WMI_SERVICE_CHATTER, len);
 SVCMAP(WMI_MAIN_SERVICE_COEX_FREQAVOID,
        WMI_SERVICE_COEX_FREQAVOID, len);
 SVCMAP(WMI_MAIN_SERVICE_PACKET_POWER_SAVE,
        WMI_SERVICE_PACKET_POWER_SAVE, len);
 SVCMAP(WMI_MAIN_SERVICE_FORCE_FW_HANG,
        WMI_SERVICE_FORCE_FW_HANG, len);
 SVCMAP(WMI_MAIN_SERVICE_GPIO,
        WMI_SERVICE_GPIO, len);
 SVCMAP(WMI_MAIN_SERVICE_STA_DTIM_PS_MODULATED_DTIM,
        WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM, len);
 SVCMAP(WMI_MAIN_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG,
        WMI_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG, len);
 SVCMAP(WMI_MAIN_SERVICE_STA_UAPSD_VAR_AUTO_TRIG,
        WMI_SERVICE_STA_UAPSD_VAR_AUTO_TRIG, len);
 SVCMAP(WMI_MAIN_SERVICE_STA_KEEP_ALIVE,
        WMI_SERVICE_STA_KEEP_ALIVE, len);
 SVCMAP(WMI_MAIN_SERVICE_TX_ENCAP,
        WMI_SERVICE_TX_ENCAP, len);
}

static inline void wmi_10_4_svc_map(const __le32 *in, unsigned long *out,
        size_t len)
{
 SVCMAP(WMI_10_4_SERVICE_BEACON_OFFLOAD,
        WMI_SERVICE_BEACON_OFFLOAD, len);
 SVCMAP(WMI_10_4_SERVICE_SCAN_OFFLOAD,
        WMI_SERVICE_SCAN_OFFLOAD, len);
 SVCMAP(WMI_10_4_SERVICE_ROAM_OFFLOAD,
        WMI_SERVICE_ROAM_OFFLOAD, len);
 SVCMAP(WMI_10_4_SERVICE_BCN_MISS_OFFLOAD,
        WMI_SERVICE_BCN_MISS_OFFLOAD, len);
 SVCMAP(WMI_10_4_SERVICE_STA_PWRSAVE,
        WMI_SERVICE_STA_PWRSAVE, len);
 SVCMAP(WMI_10_4_SERVICE_STA_ADVANCED_PWRSAVE,
        WMI_SERVICE_STA_ADVANCED_PWRSAVE, len);
 SVCMAP(WMI_10_4_SERVICE_AP_UAPSD,
        WMI_SERVICE_AP_UAPSD, len);
 SVCMAP(WMI_10_4_SERVICE_AP_DFS,
        WMI_SERVICE_AP_DFS, len);
 SVCMAP(WMI_10_4_SERVICE_11AC,
        WMI_SERVICE_11AC, len);
 SVCMAP(WMI_10_4_SERVICE_BLOCKACK,
        WMI_SERVICE_BLOCKACK, len);
 SVCMAP(WMI_10_4_SERVICE_PHYERR,
        WMI_SERVICE_PHYERR, len);
 SVCMAP(WMI_10_4_SERVICE_BCN_FILTER,
        WMI_SERVICE_BCN_FILTER, len);
 SVCMAP(WMI_10_4_SERVICE_RTT,
        WMI_SERVICE_RTT, len);
 SVCMAP(WMI_10_4_SERVICE_RATECTRL,
        WMI_SERVICE_RATECTRL, len);
 SVCMAP(WMI_10_4_SERVICE_WOW,
        WMI_SERVICE_WOW, len);
 SVCMAP(WMI_10_4_SERVICE_RATECTRL_CACHE,
        WMI_SERVICE_RATECTRL_CACHE, len);
 SVCMAP(WMI_10_4_SERVICE_IRAM_TIDS,
        WMI_SERVICE_IRAM_TIDS, len);
 SVCMAP(WMI_10_4_SERVICE_BURST,
        WMI_SERVICE_BURST, len);
 SVCMAP(WMI_10_4_SERVICE_SMART_ANTENNA_SW_SUPPORT,
        WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_GTK_OFFLOAD,
        WMI_SERVICE_GTK_OFFLOAD, len);
 SVCMAP(WMI_10_4_SERVICE_SCAN_SCH,
        WMI_SERVICE_SCAN_SCH, len);
 SVCMAP(WMI_10_4_SERVICE_CSA_OFFLOAD,
        WMI_SERVICE_CSA_OFFLOAD, len);
 SVCMAP(WMI_10_4_SERVICE_CHATTER,
        WMI_SERVICE_CHATTER, len);
 SVCMAP(WMI_10_4_SERVICE_COEX_FREQAVOID,
        WMI_SERVICE_COEX_FREQAVOID, len);
 SVCMAP(WMI_10_4_SERVICE_PACKET_POWER_SAVE,
        WMI_SERVICE_PACKET_POWER_SAVE, len);
 SVCMAP(WMI_10_4_SERVICE_FORCE_FW_HANG,
        WMI_SERVICE_FORCE_FW_HANG, len);
 SVCMAP(WMI_10_4_SERVICE_SMART_ANTENNA_HW_SUPPORT,
        WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_GPIO,
        WMI_SERVICE_GPIO, len);
 SVCMAP(WMI_10_4_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG,
        WMI_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG, len);
 SVCMAP(WMI_10_4_SERVICE_STA_UAPSD_VAR_AUTO_TRIG,
        WMI_SERVICE_STA_UAPSD_VAR_AUTO_TRIG, len);
 SVCMAP(WMI_10_4_SERVICE_STA_KEEP_ALIVE,
        WMI_SERVICE_STA_KEEP_ALIVE, len);
 SVCMAP(WMI_10_4_SERVICE_TX_ENCAP,
        WMI_SERVICE_TX_ENCAP, len);
 SVCMAP(WMI_10_4_SERVICE_AP_PS_DETECT_OUT_OF_SYNC,
        WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC, len);
 SVCMAP(WMI_10_4_SERVICE_EARLY_RX,
        WMI_SERVICE_EARLY_RX, len);
 SVCMAP(WMI_10_4_SERVICE_ENHANCED_PROXY_STA,
        WMI_SERVICE_ENHANCED_PROXY_STA, len);
 SVCMAP(WMI_10_4_SERVICE_TT,
        WMI_SERVICE_TT, len);
 SVCMAP(WMI_10_4_SERVICE_ATF,
        WMI_SERVICE_ATF, len);
 SVCMAP(WMI_10_4_SERVICE_PEER_CACHING,
        WMI_SERVICE_PEER_CACHING, len);
 SVCMAP(WMI_10_4_SERVICE_COEX_GPIO,
        WMI_SERVICE_COEX_GPIO, len);
 SVCMAP(WMI_10_4_SERVICE_AUX_SPECTRAL_INTF,
        WMI_SERVICE_AUX_SPECTRAL_INTF, len);
 SVCMAP(WMI_10_4_SERVICE_AUX_CHAN_LOAD_INTF,
        WMI_SERVICE_AUX_CHAN_LOAD_INTF, len);
 SVCMAP(WMI_10_4_SERVICE_BSS_CHANNEL_INFO_64,
        WMI_SERVICE_BSS_CHANNEL_INFO_64, len);
 SVCMAP(WMI_10_4_SERVICE_EXT_RES_CFG_SUPPORT,
        WMI_SERVICE_EXT_RES_CFG_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_MESH_NON_11S,
        WMI_SERVICE_MESH_NON_11S, len);
 SVCMAP(WMI_10_4_SERVICE_RESTRT_CHNL_SUPPORT,
        WMI_SERVICE_RESTRT_CHNL_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_PEER_STATS,
        WMI_SERVICE_PEER_STATS, len);
 SVCMAP(WMI_10_4_SERVICE_MESH_11S,
        WMI_SERVICE_MESH_11S, len);
 SVCMAP(WMI_10_4_SERVICE_PERIODIC_CHAN_STAT_SUPPORT,
        WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_TX_MODE_PUSH_ONLY,
        WMI_SERVICE_TX_MODE_PUSH_ONLY, len);
 SVCMAP(WMI_10_4_SERVICE_TX_MODE_PUSH_PULL,
        WMI_SERVICE_TX_MODE_PUSH_PULL, len);
 SVCMAP(WMI_10_4_SERVICE_TX_MODE_DYNAMIC,
        WMI_SERVICE_TX_MODE_DYNAMIC, len);
 SVCMAP(WMI_10_4_SERVICE_VDEV_RX_FILTER,
        WMI_SERVICE_VDEV_RX_FILTER, len);
 SVCMAP(WMI_10_4_SERVICE_BTCOEX,
        WMI_SERVICE_BTCOEX, len);
 SVCMAP(WMI_10_4_SERVICE_CHECK_CAL_VERSION,
        WMI_SERVICE_CHECK_CAL_VERSION, len);
 SVCMAP(WMI_10_4_SERVICE_DBGLOG_WARN2,
        WMI_SERVICE_DBGLOG_WARN2, len);
 SVCMAP(WMI_10_4_SERVICE_BTCOEX_DUTY_CYCLE,
        WMI_SERVICE_BTCOEX_DUTY_CYCLE, len);
 SVCMAP(WMI_10_4_SERVICE_4_WIRE_COEX_SUPPORT,
        WMI_SERVICE_4_WIRE_COEX_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_EXTENDED_NSS_SUPPORT,
        WMI_SERVICE_EXTENDED_NSS_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_PROG_GPIO_BAND_SELECT,
        WMI_SERVICE_PROG_GPIO_BAND_SELECT, len);
 SVCMAP(WMI_10_4_SERVICE_SMART_LOGGING_SUPPORT,
        WMI_SERVICE_SMART_LOGGING_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_TDLS,
        WMI_SERVICE_TDLS, len);
 SVCMAP(WMI_10_4_SERVICE_TDLS_OFFCHAN,
        WMI_SERVICE_TDLS_OFFCHAN, len);
 SVCMAP(WMI_10_4_SERVICE_TDLS_UAPSD_BUFFER_STA,
        WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, len);
 SVCMAP(WMI_10_4_SERVICE_TDLS_UAPSD_SLEEP_STA,
        WMI_SERVICE_TDLS_UAPSD_SLEEP_STA, len);
 SVCMAP(WMI_10_4_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE,
        WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, len);
 SVCMAP(WMI_10_4_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
        WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY, len);
 SVCMAP(WMI_10_4_SERVICE_TDLS_WIDER_BANDWIDTH,
        WMI_SERVICE_TDLS_WIDER_BANDWIDTH, len);
 SVCMAP(WMI_10_4_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS,
        WMI_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS, len);
 SVCMAP(WMI_10_4_SERVICE_HOST_DFS_CHECK_SUPPORT,
        WMI_SERVICE_HOST_DFS_CHECK_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_TPC_STATS_FINAL,
        WMI_SERVICE_TPC_STATS_FINAL, len);
 SVCMAP(WMI_10_4_SERVICE_TX_DATA_ACK_RSSI,
        WMI_SERVICE_TX_DATA_ACK_RSSI, len);
 SVCMAP(WMI_10_4_SERVICE_VDEV_DIFFERENT_BEACON_INTERVAL_SUPPORT,
        WMI_SERVICE_VDEV_DIFFERENT_BEACON_INTERVAL_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_VDEV_DISABLE_4_ADDR_SRC_LRN_SUPPORT,
        WMI_SERVICE_VDEV_DISABLE_4_ADDR_SRC_LRN_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_RTT_RESPONDER_ROLE,
        WMI_SERVICE_RTT_RESPONDER_ROLE, len);
 SVCMAP(WMI_10_4_SERVICE_PER_PACKET_SW_ENCRYPT,
        WMI_SERVICE_PER_PACKET_SW_ENCRYPT, len);
 SVCMAP(WMI_10_4_SERVICE_REPORT_AIRTIME,
        WMI_SERVICE_REPORT_AIRTIME, len);
 SVCMAP(WMI_10_4_SERVICE_TX_PWR_PER_PEER,
        WMI_SERVICE_TX_PWR_PER_PEER, len);
 SVCMAP(WMI_10_4_SERVICE_RESET_CHIP,
        WMI_SERVICE_RESET_CHIP, len);
 SVCMAP(WMI_10_4_SERVICE_PEER_TID_CONFIGS_SUPPORT,
        WMI_SERVICE_PEER_TID_CONFIGS_SUPPORT, len);
 SVCMAP(WMI_10_4_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT,
        WMI_SERVICE_PEER_TID_CONFIGS_SUPPORT, len);
}

#undef SVCMAP

/* 2 word representation of MAC addr */
struct wmi_mac_addr {
 union {
  u8 addr[6];
  struct {
   u32 word0;
   u32 word1;
  } __packed;
 } __packed;
} __packed;

struct wmi_cmd_map {
 u32 init_cmdid;
 u32 start_scan_cmdid;
 u32 stop_scan_cmdid;
 u32 scan_chan_list_cmdid;
 u32 scan_sch_prio_tbl_cmdid;
 u32 scan_prob_req_oui_cmdid;
 u32 pdev_set_regdomain_cmdid;
 u32 pdev_set_channel_cmdid;
 u32 pdev_set_param_cmdid;
 u32 pdev_pktlog_enable_cmdid;
 u32 pdev_pktlog_disable_cmdid;
 u32 pdev_set_wmm_params_cmdid;
 u32 pdev_set_ht_cap_ie_cmdid;
 u32 pdev_set_vht_cap_ie_cmdid;
 u32 pdev_set_dscp_tid_map_cmdid;
 u32 pdev_set_quiet_mode_cmdid;
 u32 pdev_green_ap_ps_enable_cmdid;
 u32 pdev_get_tpc_config_cmdid;
 u32 pdev_set_base_macaddr_cmdid;
 u32 vdev_create_cmdid;
 u32 vdev_delete_cmdid;
 u32 vdev_start_request_cmdid;
 u32 vdev_restart_request_cmdid;
 u32 vdev_up_cmdid;
 u32 vdev_stop_cmdid;
 u32 vdev_down_cmdid;
 u32 vdev_set_param_cmdid;
 u32 vdev_install_key_cmdid;
 u32 peer_create_cmdid;
 u32 peer_delete_cmdid;
 u32 peer_flush_tids_cmdid;
 u32 peer_set_param_cmdid;
 u32 peer_assoc_cmdid;
 u32 peer_add_wds_entry_cmdid;
 u32 peer_remove_wds_entry_cmdid;
 u32 peer_mcast_group_cmdid;
 u32 bcn_tx_cmdid;
 u32 pdev_send_bcn_cmdid;
 u32 bcn_tmpl_cmdid;
 u32 bcn_filter_rx_cmdid;
 u32 prb_req_filter_rx_cmdid;
 u32 mgmt_tx_cmdid;
 u32 mgmt_tx_send_cmdid;
 u32 prb_tmpl_cmdid;
 u32 addba_clear_resp_cmdid;
 u32 addba_send_cmdid;
 u32 addba_status_cmdid;
 u32 delba_send_cmdid;
 u32 addba_set_resp_cmdid;
 u32 send_singleamsdu_cmdid;
 u32 sta_powersave_mode_cmdid;
 u32 sta_powersave_param_cmdid;
 u32 sta_mimo_ps_mode_cmdid;
 u32 pdev_dfs_enable_cmdid;
 u32 pdev_dfs_disable_cmdid;
 u32 roam_scan_mode;
 u32 roam_scan_rssi_threshold;
 u32 roam_scan_period;
 u32 roam_scan_rssi_change_threshold;
 u32 roam_ap_profile;
 u32 ofl_scan_add_ap_profile;
 u32 ofl_scan_remove_ap_profile;
 u32 ofl_scan_period;
 u32 p2p_dev_set_device_info;
 u32 p2p_dev_set_discoverability;
 u32 p2p_go_set_beacon_ie;
 u32 p2p_go_set_probe_resp_ie;
 u32 p2p_set_vendor_ie_data_cmdid;
 u32 ap_ps_peer_param_cmdid;
 u32 ap_ps_peer_uapsd_coex_cmdid;
 u32 peer_rate_retry_sched_cmdid;
 u32 wlan_profile_trigger_cmdid;
 u32 wlan_profile_set_hist_intvl_cmdid;
 u32 wlan_profile_get_profile_data_cmdid;
 u32 wlan_profile_enable_profile_id_cmdid;
 u32 wlan_profile_list_profile_id_cmdid;
 u32 pdev_suspend_cmdid;
 u32 pdev_resume_cmdid;
 u32 add_bcn_filter_cmdid;
 u32 rmv_bcn_filter_cmdid;
 u32 wow_add_wake_pattern_cmdid;
 u32 wow_del_wake_pattern_cmdid;
 u32 wow_enable_disable_wake_event_cmdid;
 u32 wow_enable_cmdid;
 u32 wow_hostwakeup_from_sleep_cmdid;
 u32 rtt_measreq_cmdid;
 u32 rtt_tsf_cmdid;
 u32 vdev_spectral_scan_configure_cmdid;
 u32 vdev_spectral_scan_enable_cmdid;
 u32 request_stats_cmdid;
 u32 request_peer_stats_info_cmdid;
 u32 set_arp_ns_offload_cmdid;
 u32 network_list_offload_config_cmdid;
 u32 gtk_offload_cmdid;
 u32 csa_offload_enable_cmdid;
 u32 csa_offload_chanswitch_cmdid;
 u32 chatter_set_mode_cmdid;
 u32 peer_tid_addba_cmdid;
 u32 peer_tid_delba_cmdid;
 u32 sta_dtim_ps_method_cmdid;
 u32 sta_uapsd_auto_trig_cmdid;
 u32 sta_keepalive_cmd;
 u32 echo_cmdid;
 u32 pdev_utf_cmdid;
 u32 dbglog_cfg_cmdid;
 u32 pdev_qvit_cmdid;
 u32 pdev_ftm_intg_cmdid;
 u32 vdev_set_keepalive_cmdid;
 u32 vdev_get_keepalive_cmdid;
 u32 force_fw_hang_cmdid;
 u32 gpio_config_cmdid;
 u32 gpio_output_cmdid;
 u32 pdev_get_temperature_cmdid;
 u32 vdev_set_wmm_params_cmdid;
 u32 tdls_set_state_cmdid;
 u32 tdls_peer_update_cmdid;
 u32 adaptive_qcs_cmdid;
 u32 scan_update_request_cmdid;
 u32 vdev_standby_response_cmdid;
 u32 vdev_resume_response_cmdid;
 u32 wlan_peer_caching_add_peer_cmdid;
 u32 wlan_peer_caching_evict_peer_cmdid;
 u32 wlan_peer_caching_restore_peer_cmdid;
 u32 wlan_peer_caching_print_all_peers_info_cmdid;
 u32 peer_update_wds_entry_cmdid;
 u32 peer_add_proxy_sta_entry_cmdid;
 u32 rtt_keepalive_cmdid;
 u32 oem_req_cmdid;
 u32 nan_cmdid;
 u32 vdev_ratemask_cmdid;
 u32 qboost_cfg_cmdid;
 u32 pdev_smart_ant_enable_cmdid;
 u32 pdev_smart_ant_set_rx_antenna_cmdid;
 u32 peer_smart_ant_set_tx_antenna_cmdid;
 u32 peer_smart_ant_set_train_info_cmdid;
 u32 peer_smart_ant_set_node_config_ops_cmdid;
 u32 pdev_set_antenna_switch_table_cmdid;
 u32 pdev_set_ctl_table_cmdid;
 u32 pdev_set_mimogain_table_cmdid;
 u32 pdev_ratepwr_table_cmdid;
 u32 pdev_ratepwr_chainmsk_table_cmdid;
 u32 pdev_fips_cmdid;
 u32 tt_set_conf_cmdid;
 u32 fwtest_cmdid;
 u32 vdev_atf_request_cmdid;
 u32 peer_atf_request_cmdid;
 u32 pdev_get_ani_cck_config_cmdid;
 u32 pdev_get_ani_ofdm_config_cmdid;
 u32 pdev_reserve_ast_entry_cmdid;
 u32 pdev_get_nfcal_power_cmdid;
 u32 pdev_get_tpc_cmdid;
 u32 pdev_get_ast_info_cmdid;
 u32 vdev_set_dscp_tid_map_cmdid;
 u32 pdev_get_info_cmdid;
 u32 vdev_get_info_cmdid;
 u32 vdev_filter_neighbor_rx_packets_cmdid;
 u32 mu_cal_start_cmdid;
 u32 set_cca_params_cmdid;
 u32 pdev_bss_chan_info_request_cmdid;
 u32 pdev_enable_adaptive_cca_cmdid;
 u32 ext_resource_cfg_cmdid;
 u32 vdev_set_ie_cmdid;
 u32 set_lteu_config_cmdid;
 u32 atf_ssid_grouping_request_cmdid;
 u32 peer_atf_ext_request_cmdid;
 u32 set_periodic_channel_stats_cfg_cmdid;
 u32 peer_bwf_request_cmdid;
 u32 btcoex_cfg_cmdid;
 u32 peer_tx_mu_txmit_count_cmdid;
 u32 peer_tx_mu_txmit_rstcnt_cmdid;
 u32 peer_gid_userpos_list_cmdid;
 u32 pdev_check_cal_version_cmdid;
 u32 coex_version_cfg_cmid;
 u32 pdev_get_rx_filter_cmdid;
 u32 pdev_extended_nss_cfg_cmdid;
 u32 vdev_set_scan_nac_rssi_cmdid;
 u32 prog_gpio_band_select_cmdid;
 u32 config_smart_logging_cmdid;
 u32 debug_fatal_condition_cmdid;
 u32 get_tsf_timer_cmdid;
 u32 pdev_get_tpc_table_cmdid;
 u32 vdev_sifs_trigger_time_cmdid;
 u32 pdev_wds_entry_list_cmdid;
 u32 tdls_set_offchan_mode_cmdid;
 u32 radar_found_cmdid;
 u32 set_bb_timing_cmdid;
 u32 per_peer_per_tid_config_cmdid;
};

/*
 * wmi command groups.
 */

enum wmi_cmd_group {
 /* 0 to 2 are reserved */
 WMI_GRP_START = 0x3,
 WMI_GRP_SCAN = WMI_GRP_START,
 WMI_GRP_PDEV,
 WMI_GRP_VDEV,
 WMI_GRP_PEER,
 WMI_GRP_MGMT,
 WMI_GRP_BA_NEG,
 WMI_GRP_STA_PS,
 WMI_GRP_DFS,
 WMI_GRP_ROAM,
 WMI_GRP_OFL_SCAN,
 WMI_GRP_P2P,
 WMI_GRP_AP_PS,
 WMI_GRP_RATE_CTRL,
 WMI_GRP_PROFILE,
 WMI_GRP_SUSPEND,
 WMI_GRP_BCN_FILTER,
 WMI_GRP_WOW,
 WMI_GRP_RTT,
 WMI_GRP_SPECTRAL,
 WMI_GRP_STATS,
 WMI_GRP_ARP_NS_OFL,
 WMI_GRP_NLO_OFL,
 WMI_GRP_GTK_OFL,
 WMI_GRP_CSA_OFL,
 WMI_GRP_CHATTER,
 WMI_GRP_TID_ADDBA,
 WMI_GRP_MISC,
 WMI_GRP_GPIO,
};

#define WMI_CMD_GRP(grp_id) (((grp_id) << 12) | 0x1)
#define WMI_EVT_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)

#define WMI_CMD_UNSUPPORTED 0

/* Command IDs and command events for MAIN FW. */
enum wmi_cmd_id {
 WMI_INIT_CMDID = 0x1,

 /* Scan specific commands */
 WMI_START_SCAN_CMDID = WMI_CMD_GRP(WMI_GRP_SCAN),
 WMI_STOP_SCAN_CMDID,
 WMI_SCAN_CHAN_LIST_CMDID,
 WMI_SCAN_SCH_PRIO_TBL_CMDID,

 /* PDEV (physical device) specific commands */
 WMI_PDEV_SET_REGDOMAIN_CMDID = WMI_CMD_GRP(WMI_GRP_PDEV),
 WMI_PDEV_SET_CHANNEL_CMDID,
 WMI_PDEV_SET_PARAM_CMDID,
 WMI_PDEV_PKTLOG_ENABLE_CMDID,
 WMI_PDEV_PKTLOG_DISABLE_CMDID,
 WMI_PDEV_SET_WMM_PARAMS_CMDID,
 WMI_PDEV_SET_HT_CAP_IE_CMDID,
 WMI_PDEV_SET_VHT_CAP_IE_CMDID,
 WMI_PDEV_SET_DSCP_TID_MAP_CMDID,
 WMI_PDEV_SET_QUIET_MODE_CMDID,
 WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID,
 WMI_PDEV_GET_TPC_CONFIG_CMDID,
 WMI_PDEV_SET_BASE_MACADDR_CMDID,

 /* VDEV (virtual device) specific commands */
 WMI_VDEV_CREATE_CMDID = WMI_CMD_GRP(WMI_GRP_VDEV),
 WMI_VDEV_DELETE_CMDID,
 WMI_VDEV_START_REQUEST_CMDID,
 WMI_VDEV_RESTART_REQUEST_CMDID,
 WMI_VDEV_UP_CMDID,
 WMI_VDEV_STOP_CMDID,
 WMI_VDEV_DOWN_CMDID,
 WMI_VDEV_SET_PARAM_CMDID,
 WMI_VDEV_INSTALL_KEY_CMDID,

 /* peer specific commands */
 WMI_PEER_CREATE_CMDID = WMI_CMD_GRP(WMI_GRP_PEER),
 WMI_PEER_DELETE_CMDID,
 WMI_PEER_FLUSH_TIDS_CMDID,
 WMI_PEER_SET_PARAM_CMDID,
 WMI_PEER_ASSOC_CMDID,
 WMI_PEER_ADD_WDS_ENTRY_CMDID,
 WMI_PEER_REMOVE_WDS_ENTRY_CMDID,
 WMI_PEER_MCAST_GROUP_CMDID,

 /* beacon/management specific commands */
 WMI_BCN_TX_CMDID = WMI_CMD_GRP(WMI_GRP_MGMT),
 WMI_PDEV_SEND_BCN_CMDID,
 WMI_BCN_TMPL_CMDID,
 WMI_BCN_FILTER_RX_CMDID,
 WMI_PRB_REQ_FILTER_RX_CMDID,
 WMI_MGMT_TX_CMDID,
 WMI_PRB_TMPL_CMDID,

 /* commands to directly control BA negotiation directly from host. */
 WMI_ADDBA_CLEAR_RESP_CMDID = WMI_CMD_GRP(WMI_GRP_BA_NEG),
 WMI_ADDBA_SEND_CMDID,
 WMI_ADDBA_STATUS_CMDID,
 WMI_DELBA_SEND_CMDID,
 WMI_ADDBA_SET_RESP_CMDID,
 WMI_SEND_SINGLEAMSDU_CMDID,

 /* Station power save specific config */
 WMI_STA_POWERSAVE_MODE_CMDID = WMI_CMD_GRP(WMI_GRP_STA_PS),
 WMI_STA_POWERSAVE_PARAM_CMDID,
 WMI_STA_MIMO_PS_MODE_CMDID,

 /** DFS-specific commands */
 WMI_PDEV_DFS_ENABLE_CMDID = WMI_CMD_GRP(WMI_GRP_DFS),
 WMI_PDEV_DFS_DISABLE_CMDID,

 /* Roaming specific  commands */
 WMI_ROAM_SCAN_MODE = WMI_CMD_GRP(WMI_GRP_ROAM),
 WMI_ROAM_SCAN_RSSI_THRESHOLD,
 WMI_ROAM_SCAN_PERIOD,
 WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD,
 WMI_ROAM_AP_PROFILE,

 /* offload scan specific commands */
 WMI_OFL_SCAN_ADD_AP_PROFILE = WMI_CMD_GRP(WMI_GRP_OFL_SCAN),
 WMI_OFL_SCAN_REMOVE_AP_PROFILE,
 WMI_OFL_SCAN_PERIOD,

 /* P2P specific commands */
 WMI_P2P_DEV_SET_DEVICE_INFO = WMI_CMD_GRP(WMI_GRP_P2P),
 WMI_P2P_DEV_SET_DISCOVERABILITY,
 WMI_P2P_GO_SET_BEACON_IE,
 WMI_P2P_GO_SET_PROBE_RESP_IE,
 WMI_P2P_SET_VENDOR_IE_DATA_CMDID,

 /* AP power save specific config */
 WMI_AP_PS_PEER_PARAM_CMDID = WMI_CMD_GRP(WMI_GRP_AP_PS),
 WMI_AP_PS_PEER_UAPSD_COEX_CMDID,

 /* Rate-control specific commands */
 WMI_PEER_RATE_RETRY_SCHED_CMDID =
 WMI_CMD_GRP(WMI_GRP_RATE_CTRL),

 /* WLAN Profiling commands. */
 WMI_WLAN_PROFILE_TRIGGER_CMDID = WMI_CMD_GRP(WMI_GRP_PROFILE),
 WMI_WLAN_PROFILE_SET_HIST_INTVL_CMDID,
 WMI_WLAN_PROFILE_GET_PROFILE_DATA_CMDID,
 WMI_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID,
 WMI_WLAN_PROFILE_LIST_PROFILE_ID_CMDID,

 /* Suspend resume command Ids */
 WMI_PDEV_SUSPEND_CMDID = WMI_CMD_GRP(WMI_GRP_SUSPEND),
 WMI_PDEV_RESUME_CMDID,

 /* Beacon filter commands */
 WMI_ADD_BCN_FILTER_CMDID = WMI_CMD_GRP(WMI_GRP_BCN_FILTER),
 WMI_RMV_BCN_FILTER_CMDID,

 /* WOW Specific WMI commands*/
 WMI_WOW_ADD_WAKE_PATTERN_CMDID = WMI_CMD_GRP(WMI_GRP_WOW),
 WMI_WOW_DEL_WAKE_PATTERN_CMDID,
 WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID,
 WMI_WOW_ENABLE_CMDID,
 WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID,

 /* RTT measurement related cmd */
 WMI_RTT_MEASREQ_CMDID = WMI_CMD_GRP(WMI_GRP_RTT),
 WMI_RTT_TSF_CMDID,

 /* spectral scan commands */
 WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID = WMI_CMD_GRP(WMI_GRP_SPECTRAL),
 WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID,

 /* F/W stats */
 WMI_REQUEST_STATS_CMDID = WMI_CMD_GRP(WMI_GRP_STATS),

 /* ARP OFFLOAD REQUEST*/
 WMI_SET_ARP_NS_OFFLOAD_CMDID = WMI_CMD_GRP(WMI_GRP_ARP_NS_OFL),

 /* NS offload confid*/
 WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID = WMI_CMD_GRP(WMI_GRP_NLO_OFL),

 /* GTK offload Specific WMI commands*/
 WMI_GTK_OFFLOAD_CMDID = WMI_CMD_GRP(WMI_GRP_GTK_OFL),

 /* CSA offload Specific WMI commands*/
 WMI_CSA_OFFLOAD_ENABLE_CMDID = WMI_CMD_GRP(WMI_GRP_CSA_OFL),
 WMI_CSA_OFFLOAD_CHANSWITCH_CMDID,

 /* Chatter commands*/
 WMI_CHATTER_SET_MODE_CMDID = WMI_CMD_GRP(WMI_GRP_CHATTER),

 /* addba specific commands */
 WMI_PEER_TID_ADDBA_CMDID = WMI_CMD_GRP(WMI_GRP_TID_ADDBA),
 WMI_PEER_TID_DELBA_CMDID,

 /* set station mimo powersave method */
 WMI_STA_DTIM_PS_METHOD_CMDID,
 /* Configure the Station UAPSD AC Auto Trigger Parameters */
 WMI_STA_UAPSD_AUTO_TRIG_CMDID,

 /* STA Keep alive parameter configuration,
 * Requires WMI_SERVICE_STA_KEEP_ALIVE
 */

 WMI_STA_KEEPALIVE_CMD,

 /* misc command group */
 WMI_ECHO_CMDID = WMI_CMD_GRP(WMI_GRP_MISC),
 WMI_PDEV_UTF_CMDID,
 WMI_DBGLOG_CFG_CMDID,
 WMI_PDEV_QVIT_CMDID,
 WMI_PDEV_FTM_INTG_CMDID,
 WMI_VDEV_SET_KEEPALIVE_CMDID,
 WMI_VDEV_GET_KEEPALIVE_CMDID,
 WMI_FORCE_FW_HANG_CMDID,

 /* GPIO Configuration */
 WMI_GPIO_CONFIG_CMDID = WMI_CMD_GRP(WMI_GRP_GPIO),
 WMI_GPIO_OUTPUT_CMDID,
};

enum wmi_event_id {
 WMI_SERVICE_READY_EVENTID = 0x1,
 WMI_READY_EVENTID,
 WMI_SERVICE_AVAILABLE_EVENTID,

 /* Scan specific events */
 WMI_SCAN_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SCAN),

 /* PDEV specific events */
 WMI_PDEV_TPC_CONFIG_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PDEV),
 WMI_CHAN_INFO_EVENTID,
 WMI_PHYERR_EVENTID,

 /* VDEV specific events */
 WMI_VDEV_START_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_VDEV),
 WMI_VDEV_STOPPED_EVENTID,
 WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID,

 /* peer specific events */
 WMI_PEER_STA_KICKOUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PEER),

 /* beacon/mgmt specific events */
 WMI_MGMT_RX_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MGMT),
 WMI_HOST_SWBA_EVENTID,
 WMI_TBTTOFFSET_UPDATE_EVENTID,

 /* ADDBA Related WMI Events*/
 WMI_TX_DELBA_COMPLETE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_BA_NEG),
 WMI_TX_ADDBA_COMPLETE_EVENTID,

 /* Roam event to trigger roaming on host */
 WMI_ROAM_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_ROAM),
 WMI_PROFILE_MATCH,

 /* WoW */
 WMI_WOW_WAKEUP_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_WOW),

 /* RTT */
 WMI_RTT_MEASUREMENT_REPORT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_RTT),
 WMI_TSF_MEASUREMENT_REPORT_EVENTID,
 WMI_RTT_ERROR_REPORT_EVENTID,

 /* GTK offload */
 WMI_GTK_OFFLOAD_STATUS_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GTK_OFL),
 WMI_GTK_REKEY_FAIL_EVENTID,

 /* CSA IE received event */
 WMI_CSA_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_CSA_OFL),

 /* Misc events */
 WMI_ECHO_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MISC),
 WMI_PDEV_UTF_EVENTID,
 WMI_DEBUG_MESG_EVENTID,
 WMI_UPDATE_STATS_EVENTID,
 WMI_DEBUG_PRINT_EVENTID,
 WMI_DCS_INTERFERENCE_EVENTID,
 WMI_PDEV_QVIT_EVENTID,
 WMI_WLAN_PROFILE_DATA_EVENTID,
 WMI_PDEV_FTM_INTG_EVENTID,
 WMI_WLAN_FREQ_AVOID_EVENTID,
 WMI_VDEV_GET_KEEPALIVE_EVENTID,

 /* GPIO Event */
 WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO),
};

/* Command IDs and command events for 10.X firmware */
enum wmi_10x_cmd_id {
 WMI_10X_START_CMDID = 0x9000,
 WMI_10X_END_CMDID = 0x9FFF,

 /* initialize the wlan sub system */
 WMI_10X_INIT_CMDID,

 /* Scan specific commands */

 WMI_10X_START_SCAN_CMDID = WMI_10X_START_CMDID,
 WMI_10X_STOP_SCAN_CMDID,
 WMI_10X_SCAN_CHAN_LIST_CMDID,
 WMI_10X_ECHO_CMDID,

 /* PDEV(physical device) specific commands */
 WMI_10X_PDEV_SET_REGDOMAIN_CMDID,
 WMI_10X_PDEV_SET_CHANNEL_CMDID,
 WMI_10X_PDEV_SET_PARAM_CMDID,
 WMI_10X_PDEV_PKTLOG_ENABLE_CMDID,
 WMI_10X_PDEV_PKTLOG_DISABLE_CMDID,
 WMI_10X_PDEV_SET_WMM_PARAMS_CMDID,
 WMI_10X_PDEV_SET_HT_CAP_IE_CMDID,
 WMI_10X_PDEV_SET_VHT_CAP_IE_CMDID,
 WMI_10X_PDEV_SET_BASE_MACADDR_CMDID,
 WMI_10X_PDEV_SET_DSCP_TID_MAP_CMDID,
 WMI_10X_PDEV_SET_QUIET_MODE_CMDID,
 WMI_10X_PDEV_GREEN_AP_PS_ENABLE_CMDID,
 WMI_10X_PDEV_GET_TPC_CONFIG_CMDID,

 /* VDEV(virtual device) specific commands */
 WMI_10X_VDEV_CREATE_CMDID,
 WMI_10X_VDEV_DELETE_CMDID,
 WMI_10X_VDEV_START_REQUEST_CMDID,
 WMI_10X_VDEV_RESTART_REQUEST_CMDID,
 WMI_10X_VDEV_UP_CMDID,
 WMI_10X_VDEV_STOP_CMDID,
 WMI_10X_VDEV_DOWN_CMDID,
 WMI_10X_VDEV_STANDBY_RESPONSE_CMDID,
 WMI_10X_VDEV_RESUME_RESPONSE_CMDID,
 WMI_10X_VDEV_SET_PARAM_CMDID,
 WMI_10X_VDEV_INSTALL_KEY_CMDID,

 /* peer specific commands */
 WMI_10X_PEER_CREATE_CMDID,
 WMI_10X_PEER_DELETE_CMDID,
 WMI_10X_PEER_FLUSH_TIDS_CMDID,
 WMI_10X_PEER_SET_PARAM_CMDID,
 WMI_10X_PEER_ASSOC_CMDID,
 WMI_10X_PEER_ADD_WDS_ENTRY_CMDID,
 WMI_10X_PEER_REMOVE_WDS_ENTRY_CMDID,
 WMI_10X_PEER_MCAST_GROUP_CMDID,

 /* beacon/management specific commands */

 WMI_10X_BCN_TX_CMDID,
 WMI_10X_BCN_PRB_TMPL_CMDID,
 WMI_10X_BCN_FILTER_RX_CMDID,
 WMI_10X_PRB_REQ_FILTER_RX_CMDID,
 WMI_10X_MGMT_TX_CMDID,

 /* commands to directly control ba negotiation directly from host. */
 WMI_10X_ADDBA_CLEAR_RESP_CMDID,
 WMI_10X_ADDBA_SEND_CMDID,
 WMI_10X_ADDBA_STATUS_CMDID,
 WMI_10X_DELBA_SEND_CMDID,
 WMI_10X_ADDBA_SET_RESP_CMDID,
 WMI_10X_SEND_SINGLEAMSDU_CMDID,

 /* Station power save specific config */
 WMI_10X_STA_POWERSAVE_MODE_CMDID,
 WMI_10X_STA_POWERSAVE_PARAM_CMDID,
 WMI_10X_STA_MIMO_PS_MODE_CMDID,

 /* set debug log config */
 WMI_10X_DBGLOG_CFG_CMDID,

 /* DFS-specific commands */
 WMI_10X_PDEV_DFS_ENABLE_CMDID,
 WMI_10X_PDEV_DFS_DISABLE_CMDID,

 /* QVIT specific command id */
 WMI_10X_PDEV_QVIT_CMDID,

 /* Offload Scan and Roaming related  commands */
 WMI_10X_ROAM_SCAN_MODE,
 WMI_10X_ROAM_SCAN_RSSI_THRESHOLD,
 WMI_10X_ROAM_SCAN_PERIOD,
 WMI_10X_ROAM_SCAN_RSSI_CHANGE_THRESHOLD,
 WMI_10X_ROAM_AP_PROFILE,
 WMI_10X_OFL_SCAN_ADD_AP_PROFILE,
 WMI_10X_OFL_SCAN_REMOVE_AP_PROFILE,
 WMI_10X_OFL_SCAN_PERIOD,

 /* P2P specific commands */
 WMI_10X_P2P_DEV_SET_DEVICE_INFO,
 WMI_10X_P2P_DEV_SET_DISCOVERABILITY,
 WMI_10X_P2P_GO_SET_BEACON_IE,
 WMI_10X_P2P_GO_SET_PROBE_RESP_IE,

 /* AP power save specific config */
 WMI_10X_AP_PS_PEER_PARAM_CMDID,
 WMI_10X_AP_PS_PEER_UAPSD_COEX_CMDID,

 /* Rate-control specific commands */
 WMI_10X_PEER_RATE_RETRY_SCHED_CMDID,

 /* WLAN Profiling commands. */
 WMI_10X_WLAN_PROFILE_TRIGGER_CMDID,
 WMI_10X_WLAN_PROFILE_SET_HIST_INTVL_CMDID,
 WMI_10X_WLAN_PROFILE_GET_PROFILE_DATA_CMDID,
 WMI_10X_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID,
 WMI_10X_WLAN_PROFILE_LIST_PROFILE_ID_CMDID,

 /* Suspend resume command Ids */
 WMI_10X_PDEV_SUSPEND_CMDID,
 WMI_10X_PDEV_RESUME_CMDID,

 /* Beacon filter commands */
 WMI_10X_ADD_BCN_FILTER_CMDID,
 WMI_10X_RMV_BCN_FILTER_CMDID,

 /* WOW Specific WMI commands*/
 WMI_10X_WOW_ADD_WAKE_PATTERN_CMDID,
 WMI_10X_WOW_DEL_WAKE_PATTERN_CMDID,
 WMI_10X_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID,
 WMI_10X_WOW_ENABLE_CMDID,
 WMI_10X_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID,

 /* RTT measurement related cmd */
 WMI_10X_RTT_MEASREQ_CMDID,
 WMI_10X_RTT_TSF_CMDID,

 /* transmit beacon by value */
 WMI_10X_PDEV_SEND_BCN_CMDID,

 /* F/W stats */
 WMI_10X_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID,
 WMI_10X_VDEV_SPECTRAL_SCAN_ENABLE_CMDID,
 WMI_10X_REQUEST_STATS_CMDID,

 /* GPIO Configuration */
 WMI_10X_GPIO_CONFIG_CMDID,
 WMI_10X_GPIO_OUTPUT_CMDID,

 WMI_10X_PDEV_UTF_CMDID = WMI_10X_END_CMDID - 1,
};

enum wmi_10x_event_id {
 WMI_10X_SERVICE_READY_EVENTID = 0x8000,
 WMI_10X_READY_EVENTID,
 WMI_10X_START_EVENTID = 0x9000,
 WMI_10X_END_EVENTID = 0x9FFF,

 /* Scan specific events */
 WMI_10X_SCAN_EVENTID = WMI_10X_START_EVENTID,
 WMI_10X_ECHO_EVENTID,
 WMI_10X_DEBUG_MESG_EVENTID,
 WMI_10X_UPDATE_STATS_EVENTID,

 /* Instantaneous RSSI event */
 WMI_10X_INST_RSSI_STATS_EVENTID,

 /* VDEV specific events */
 WMI_10X_VDEV_START_RESP_EVENTID,
 WMI_10X_VDEV_STANDBY_REQ_EVENTID,
 WMI_10X_VDEV_RESUME_REQ_EVENTID,
 WMI_10X_VDEV_STOPPED_EVENTID,

 /* peer  specific events */
 WMI_10X_PEER_STA_KICKOUT_EVENTID,

 /* beacon/mgmt specific events */
 WMI_10X_HOST_SWBA_EVENTID,
 WMI_10X_TBTTOFFSET_UPDATE_EVENTID,
 WMI_10X_MGMT_RX_EVENTID,

 /* Channel stats event */
 WMI_10X_CHAN_INFO_EVENTID,

 /* PHY Error specific WMI event */
 WMI_10X_PHYERR_EVENTID,

 /* Roam event to trigger roaming on host */
 WMI_10X_ROAM_EVENTID,

 /* matching AP found from list of profiles */
 WMI_10X_PROFILE_MATCH,

 /* debug print message used for tracing FW code while debugging */
 WMI_10X_DEBUG_PRINT_EVENTID,
 /* VI spoecific event */
 WMI_10X_PDEV_QVIT_EVENTID,
 /* FW code profile data in response to profile request */
 WMI_10X_WLAN_PROFILE_DATA_EVENTID,

 /*RTT related event ID*/
 WMI_10X_RTT_MEASUREMENT_REPORT_EVENTID,
 WMI_10X_TSF_MEASUREMENT_REPORT_EVENTID,
 WMI_10X_RTT_ERROR_REPORT_EVENTID,

 WMI_10X_WOW_WAKEUP_HOST_EVENTID,
 WMI_10X_DCS_INTERFERENCE_EVENTID,

 /* TPC config for the current operating channel */
 WMI_10X_PDEV_TPC_CONFIG_EVENTID,

 WMI_10X_GPIO_INPUT_EVENTID,
 WMI_10X_PDEV_UTF_EVENTID = WMI_10X_END_EVENTID - 1,
};

enum wmi_10_2_cmd_id {
 WMI_10_2_START_CMDID = 0x9000,
 WMI_10_2_END_CMDID = 0x9FFF,
 WMI_10_2_INIT_CMDID,
 WMI_10_2_START_SCAN_CMDID = WMI_10_2_START_CMDID,
 WMI_10_2_STOP_SCAN_CMDID,
 WMI_10_2_SCAN_CHAN_LIST_CMDID,
 WMI_10_2_ECHO_CMDID,
 WMI_10_2_PDEV_SET_REGDOMAIN_CMDID,
 WMI_10_2_PDEV_SET_CHANNEL_CMDID,
 WMI_10_2_PDEV_SET_PARAM_CMDID,
 WMI_10_2_PDEV_PKTLOG_ENABLE_CMDID,
 WMI_10_2_PDEV_PKTLOG_DISABLE_CMDID,
 WMI_10_2_PDEV_SET_WMM_PARAMS_CMDID,
 WMI_10_2_PDEV_SET_HT_CAP_IE_CMDID,
 WMI_10_2_PDEV_SET_VHT_CAP_IE_CMDID,
 WMI_10_2_PDEV_SET_BASE_MACADDR_CMDID,
 WMI_10_2_PDEV_SET_QUIET_MODE_CMDID,
 WMI_10_2_PDEV_GREEN_AP_PS_ENABLE_CMDID,
 WMI_10_2_PDEV_GET_TPC_CONFIG_CMDID,
 WMI_10_2_VDEV_CREATE_CMDID,
 WMI_10_2_VDEV_DELETE_CMDID,
 WMI_10_2_VDEV_START_REQUEST_CMDID,
 WMI_10_2_VDEV_RESTART_REQUEST_CMDID,
 WMI_10_2_VDEV_UP_CMDID,
 WMI_10_2_VDEV_STOP_CMDID,
 WMI_10_2_VDEV_DOWN_CMDID,
 WMI_10_2_VDEV_STANDBY_RESPONSE_CMDID,
 WMI_10_2_VDEV_RESUME_RESPONSE_CMDID,
 WMI_10_2_VDEV_SET_PARAM_CMDID,
 WMI_10_2_VDEV_INSTALL_KEY_CMDID,
 WMI_10_2_VDEV_SET_DSCP_TID_MAP_CMDID,
 WMI_10_2_PEER_CREATE_CMDID,
 WMI_10_2_PEER_DELETE_CMDID,
 WMI_10_2_PEER_FLUSH_TIDS_CMDID,
 WMI_10_2_PEER_SET_PARAM_CMDID,
 WMI_10_2_PEER_ASSOC_CMDID,
 WMI_10_2_PEER_ADD_WDS_ENTRY_CMDID,
 WMI_10_2_PEER_UPDATE_WDS_ENTRY_CMDID,
 WMI_10_2_PEER_REMOVE_WDS_ENTRY_CMDID,
 WMI_10_2_PEER_MCAST_GROUP_CMDID,
 WMI_10_2_BCN_TX_CMDID,
 WMI_10_2_BCN_PRB_TMPL_CMDID,
 WMI_10_2_BCN_FILTER_RX_CMDID,
 WMI_10_2_PRB_REQ_FILTER_RX_CMDID,
 WMI_10_2_MGMT_TX_CMDID,
 WMI_10_2_ADDBA_CLEAR_RESP_CMDID,
 WMI_10_2_ADDBA_SEND_CMDID,
 WMI_10_2_ADDBA_STATUS_CMDID,
 WMI_10_2_DELBA_SEND_CMDID,
 WMI_10_2_ADDBA_SET_RESP_CMDID,
 WMI_10_2_SEND_SINGLEAMSDU_CMDID,
 WMI_10_2_STA_POWERSAVE_MODE_CMDID,
 WMI_10_2_STA_POWERSAVE_PARAM_CMDID,
 WMI_10_2_STA_MIMO_PS_MODE_CMDID,
 WMI_10_2_DBGLOG_CFG_CMDID,
 WMI_10_2_PDEV_DFS_ENABLE_CMDID,
 WMI_10_2_PDEV_DFS_DISABLE_CMDID,
 WMI_10_2_PDEV_QVIT_CMDID,
 WMI_10_2_ROAM_SCAN_MODE,
 WMI_10_2_ROAM_SCAN_RSSI_THRESHOLD,
 WMI_10_2_ROAM_SCAN_PERIOD,
 WMI_10_2_ROAM_SCAN_RSSI_CHANGE_THRESHOLD,
 WMI_10_2_ROAM_AP_PROFILE,
 WMI_10_2_OFL_SCAN_ADD_AP_PROFILE,
 WMI_10_2_OFL_SCAN_REMOVE_AP_PROFILE,
 WMI_10_2_OFL_SCAN_PERIOD,
 WMI_10_2_P2P_DEV_SET_DEVICE_INFO,
 WMI_10_2_P2P_DEV_SET_DISCOVERABILITY,
 WMI_10_2_P2P_GO_SET_BEACON_IE,
 WMI_10_2_P2P_GO_SET_PROBE_RESP_IE,
 WMI_10_2_AP_PS_PEER_PARAM_CMDID,
 WMI_10_2_AP_PS_PEER_UAPSD_COEX_CMDID,
 WMI_10_2_PEER_RATE_RETRY_SCHED_CMDID,
 WMI_10_2_WLAN_PROFILE_TRIGGER_CMDID,
 WMI_10_2_WLAN_PROFILE_SET_HIST_INTVL_CMDID,
 WMI_10_2_WLAN_PROFILE_GET_PROFILE_DATA_CMDID,
 WMI_10_2_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID,
 WMI_10_2_WLAN_PROFILE_LIST_PROFILE_ID_CMDID,
 WMI_10_2_PDEV_SUSPEND_CMDID,
 WMI_10_2_PDEV_RESUME_CMDID,
 WMI_10_2_ADD_BCN_FILTER_CMDID,
 WMI_10_2_RMV_BCN_FILTER_CMDID,
 WMI_10_2_WOW_ADD_WAKE_PATTERN_CMDID,
 WMI_10_2_WOW_DEL_WAKE_PATTERN_CMDID,
 WMI_10_2_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID,
 WMI_10_2_WOW_ENABLE_CMDID,
 WMI_10_2_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID,
 WMI_10_2_RTT_MEASREQ_CMDID,
 WMI_10_2_RTT_TSF_CMDID,
 WMI_10_2_RTT_KEEPALIVE_CMDID,
 WMI_10_2_PDEV_SEND_BCN_CMDID,
 WMI_10_2_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID,
 WMI_10_2_VDEV_SPECTRAL_SCAN_ENABLE_CMDID,
 WMI_10_2_REQUEST_STATS_CMDID,
 WMI_10_2_GPIO_CONFIG_CMDID,
 WMI_10_2_GPIO_OUTPUT_CMDID,
 WMI_10_2_VDEV_RATEMASK_CMDID,
 WMI_10_2_PDEV_SMART_ANT_ENABLE_CMDID,
 WMI_10_2_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID,
 WMI_10_2_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID,
 WMI_10_2_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID,
 WMI_10_2_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID,
 WMI_10_2_FORCE_FW_HANG_CMDID,
 WMI_10_2_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID,
 WMI_10_2_PDEV_SET_CTL_TABLE_CMDID,
 WMI_10_2_PDEV_SET_MIMOGAIN_TABLE_CMDID,
 WMI_10_2_PDEV_RATEPWR_TABLE_CMDID,
 WMI_10_2_PDEV_RATEPWR_CHAINMSK_TABLE_CMDID,
 WMI_10_2_PDEV_GET_INFO,
 WMI_10_2_VDEV_GET_INFO,
 WMI_10_2_VDEV_ATF_REQUEST_CMDID,
 WMI_10_2_PEER_ATF_REQUEST_CMDID,
 WMI_10_2_PDEV_GET_TEMPERATURE_CMDID,
 WMI_10_2_MU_CAL_START_CMDID,
 WMI_10_2_SET_LTEU_CONFIG_CMDID,
 WMI_10_2_SET_CCA_PARAMS,
 WMI_10_2_PDEV_BSS_CHAN_INFO_REQUEST_CMDID,
 WMI_10_2_FWTEST_CMDID,
 WMI_10_2_PDEV_SET_BB_TIMING_CONFIG_CMDID,
 WMI_10_2_PDEV_UTF_CMDID = WMI_10_2_END_CMDID - 1,
};

enum wmi_10_2_event_id {
 WMI_10_2_SERVICE_READY_EVENTID = 0x8000,
 WMI_10_2_READY_EVENTID,
 WMI_10_2_DEBUG_MESG_EVENTID,
 WMI_10_2_START_EVENTID = 0x9000,
 WMI_10_2_END_EVENTID = 0x9FFF,
 WMI_10_2_SCAN_EVENTID = WMI_10_2_START_EVENTID,
 WMI_10_2_ECHO_EVENTID,
 WMI_10_2_UPDATE_STATS_EVENTID,
 WMI_10_2_INST_RSSI_STATS_EVENTID,
 WMI_10_2_VDEV_START_RESP_EVENTID,
 WMI_10_2_VDEV_STANDBY_REQ_EVENTID,
 WMI_10_2_VDEV_RESUME_REQ_EVENTID,
 WMI_10_2_VDEV_STOPPED_EVENTID,
 WMI_10_2_PEER_STA_KICKOUT_EVENTID,
 WMI_10_2_HOST_SWBA_EVENTID,
 WMI_10_2_TBTTOFFSET_UPDATE_EVENTID,
 WMI_10_2_MGMT_RX_EVENTID,
 WMI_10_2_CHAN_INFO_EVENTID,
 WMI_10_2_PHYERR_EVENTID,
 WMI_10_2_ROAM_EVENTID,
 WMI_10_2_PROFILE_MATCH,
 WMI_10_2_DEBUG_PRINT_EVENTID,
 WMI_10_2_PDEV_QVIT_EVENTID,
 WMI_10_2_WLAN_PROFILE_DATA_EVENTID,
 WMI_10_2_RTT_MEASUREMENT_REPORT_EVENTID,
 WMI_10_2_TSF_MEASUREMENT_REPORT_EVENTID,
 WMI_10_2_RTT_ERROR_REPORT_EVENTID,
 WMI_10_2_RTT_KEEPALIVE_EVENTID,
 WMI_10_2_WOW_WAKEUP_HOST_EVENTID,
 WMI_10_2_DCS_INTERFERENCE_EVENTID,
 WMI_10_2_PDEV_TPC_CONFIG_EVENTID,
 WMI_10_2_GPIO_INPUT_EVENTID,
 WMI_10_2_PEER_RATECODE_LIST_EVENTID,
 WMI_10_2_GENERIC_BUFFER_EVENTID,
 WMI_10_2_MCAST_BUF_RELEASE_EVENTID,
 WMI_10_2_MCAST_LIST_AGEOUT_EVENTID,
 WMI_10_2_WDS_PEER_EVENTID,
 WMI_10_2_PEER_STA_PS_STATECHG_EVENTID,
 WMI_10_2_PDEV_TEMPERATURE_EVENTID,
 WMI_10_2_MU_REPORT_EVENTID,
 WMI_10_2_PDEV_BSS_CHAN_INFO_EVENTID,
 WMI_10_2_PDEV_UTF_EVENTID = WMI_10_2_END_EVENTID - 1,
};

enum wmi_10_4_cmd_id {
 WMI_10_4_START_CMDID = 0x9000,
 WMI_10_4_END_CMDID = 0x9FFF,
 WMI_10_4_INIT_CMDID,
 WMI_10_4_START_SCAN_CMDID = WMI_10_4_START_CMDID,
 WMI_10_4_STOP_SCAN_CMDID,
 WMI_10_4_SCAN_CHAN_LIST_CMDID,
 WMI_10_4_SCAN_SCH_PRIO_TBL_CMDID,
 WMI_10_4_SCAN_UPDATE_REQUEST_CMDID,
 WMI_10_4_ECHO_CMDID,
 WMI_10_4_PDEV_SET_REGDOMAIN_CMDID,
 WMI_10_4_PDEV_SET_CHANNEL_CMDID,
 WMI_10_4_PDEV_SET_PARAM_CMDID,
 WMI_10_4_PDEV_PKTLOG_ENABLE_CMDID,
 WMI_10_4_PDEV_PKTLOG_DISABLE_CMDID,
 WMI_10_4_PDEV_SET_WMM_PARAMS_CMDID,
 WMI_10_4_PDEV_SET_HT_CAP_IE_CMDID,
 WMI_10_4_PDEV_SET_VHT_CAP_IE_CMDID,
 WMI_10_4_PDEV_SET_BASE_MACADDR_CMDID,
 WMI_10_4_PDEV_SET_DSCP_TID_MAP_CMDID,
 WMI_10_4_PDEV_SET_QUIET_MODE_CMDID,
 WMI_10_4_PDEV_GREEN_AP_PS_ENABLE_CMDID,
 WMI_10_4_PDEV_GET_TPC_CONFIG_CMDID,
 WMI_10_4_VDEV_CREATE_CMDID,
 WMI_10_4_VDEV_DELETE_CMDID,
 WMI_10_4_VDEV_START_REQUEST_CMDID,
 WMI_10_4_VDEV_RESTART_REQUEST_CMDID,
 WMI_10_4_VDEV_UP_CMDID,
 WMI_10_4_VDEV_STOP_CMDID,
 WMI_10_4_VDEV_DOWN_CMDID,
 WMI_10_4_VDEV_STANDBY_RESPONSE_CMDID,
 WMI_10_4_VDEV_RESUME_RESPONSE_CMDID,
 WMI_10_4_VDEV_SET_PARAM_CMDID,
 WMI_10_4_VDEV_INSTALL_KEY_CMDID,
 WMI_10_4_WLAN_PEER_CACHING_ADD_PEER_CMDID,
 WMI_10_4_WLAN_PEER_CACHING_EVICT_PEER_CMDID,
 WMI_10_4_WLAN_PEER_CACHING_RESTORE_PEER_CMDID,
 WMI_10_4_WLAN_PEER_CACHING_PRINT_ALL_PEERS_INFO_CMDID,
 WMI_10_4_PEER_CREATE_CMDID,
 WMI_10_4_PEER_DELETE_CMDID,
 WMI_10_4_PEER_FLUSH_TIDS_CMDID,
 WMI_10_4_PEER_SET_PARAM_CMDID,
 WMI_10_4_PEER_ASSOC_CMDID,
 WMI_10_4_PEER_ADD_WDS_ENTRY_CMDID,
 WMI_10_4_PEER_UPDATE_WDS_ENTRY_CMDID,
 WMI_10_4_PEER_REMOVE_WDS_ENTRY_CMDID,
 WMI_10_4_PEER_ADD_PROXY_STA_ENTRY_CMDID,
 WMI_10_4_PEER_MCAST_GROUP_CMDID,
 WMI_10_4_BCN_TX_CMDID,
 WMI_10_4_PDEV_SEND_BCN_CMDID,
 WMI_10_4_BCN_PRB_TMPL_CMDID,
 WMI_10_4_BCN_FILTER_RX_CMDID,
 WMI_10_4_PRB_REQ_FILTER_RX_CMDID,
 WMI_10_4_MGMT_TX_CMDID,
 WMI_10_4_PRB_TMPL_CMDID,
 WMI_10_4_ADDBA_CLEAR_RESP_CMDID,
 WMI_10_4_ADDBA_SEND_CMDID,
 WMI_10_4_ADDBA_STATUS_CMDID,
 WMI_10_4_DELBA_SEND_CMDID,
 WMI_10_4_ADDBA_SET_RESP_CMDID,
 WMI_10_4_SEND_SINGLEAMSDU_CMDID,
 WMI_10_4_STA_POWERSAVE_MODE_CMDID,
 WMI_10_4_STA_POWERSAVE_PARAM_CMDID,
 WMI_10_4_STA_MIMO_PS_MODE_CMDID,
 WMI_10_4_DBGLOG_CFG_CMDID,
 WMI_10_4_PDEV_DFS_ENABLE_CMDID,
 WMI_10_4_PDEV_DFS_DISABLE_CMDID,
 WMI_10_4_PDEV_QVIT_CMDID,
 WMI_10_4_ROAM_SCAN_MODE,
 WMI_10_4_ROAM_SCAN_RSSI_THRESHOLD,
 WMI_10_4_ROAM_SCAN_PERIOD,
 WMI_10_4_ROAM_SCAN_RSSI_CHANGE_THRESHOLD,
 WMI_10_4_ROAM_AP_PROFILE,
 WMI_10_4_OFL_SCAN_ADD_AP_PROFILE,
 WMI_10_4_OFL_SCAN_REMOVE_AP_PROFILE,
 WMI_10_4_OFL_SCAN_PERIOD,
 WMI_10_4_P2P_DEV_SET_DEVICE_INFO,
 WMI_10_4_P2P_DEV_SET_DISCOVERABILITY,
 WMI_10_4_P2P_GO_SET_BEACON_IE,
 WMI_10_4_P2P_GO_SET_PROBE_RESP_IE,
 WMI_10_4_P2P_SET_VENDOR_IE_DATA_CMDID,
 WMI_10_4_AP_PS_PEER_PARAM_CMDID,
 WMI_10_4_AP_PS_PEER_UAPSD_COEX_CMDID,
 WMI_10_4_PEER_RATE_RETRY_SCHED_CMDID,
 WMI_10_4_WLAN_PROFILE_TRIGGER_CMDID,
 WMI_10_4_WLAN_PROFILE_SET_HIST_INTVL_CMDID,
 WMI_10_4_WLAN_PROFILE_GET_PROFILE_DATA_CMDID,
 WMI_10_4_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID,
 WMI_10_4_WLAN_PROFILE_LIST_PROFILE_ID_CMDID,
 WMI_10_4_PDEV_SUSPEND_CMDID,
 WMI_10_4_PDEV_RESUME_CMDID,
 WMI_10_4_ADD_BCN_FILTER_CMDID,
 WMI_10_4_RMV_BCN_FILTER_CMDID,
 WMI_10_4_WOW_ADD_WAKE_PATTERN_CMDID,
 WMI_10_4_WOW_DEL_WAKE_PATTERN_CMDID,
 WMI_10_4_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID,
 WMI_10_4_WOW_ENABLE_CMDID,
 WMI_10_4_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID,
 WMI_10_4_RTT_MEASREQ_CMDID,
 WMI_10_4_RTT_TSF_CMDID,
 WMI_10_4_RTT_KEEPALIVE_CMDID,
 WMI_10_4_OEM_REQ_CMDID,
 WMI_10_4_NAN_CMDID,
 WMI_10_4_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID,
 WMI_10_4_VDEV_SPECTRAL_SCAN_ENABLE_CMDID,
 WMI_10_4_REQUEST_STATS_CMDID,
 WMI_10_4_GPIO_CONFIG_CMDID,
 WMI_10_4_GPIO_OUTPUT_CMDID,
 WMI_10_4_VDEV_RATEMASK_CMDID,
 WMI_10_4_CSA_OFFLOAD_ENABLE_CMDID,
 WMI_10_4_GTK_OFFLOAD_CMDID,
 WMI_10_4_QBOOST_CFG_CMDID,
 WMI_10_4_CSA_OFFLOAD_CHANSWITCH_CMDID,
 WMI_10_4_PDEV_SMART_ANT_ENABLE_CMDID,
 WMI_10_4_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID,
 WMI_10_4_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID,
 WMI_10_4_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID,
 WMI_10_4_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID,
 WMI_10_4_VDEV_SET_KEEPALIVE_CMDID,
 WMI_10_4_VDEV_GET_KEEPALIVE_CMDID,
 WMI_10_4_FORCE_FW_HANG_CMDID,
 WMI_10_4_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID,
 WMI_10_4_PDEV_SET_CTL_TABLE_CMDID,
 WMI_10_4_PDEV_SET_MIMOGAIN_TABLE_CMDID,
 WMI_10_4_PDEV_RATEPWR_TABLE_CMDID,
 WMI_10_4_PDEV_RATEPWR_CHAINMSK_TABLE_CMDID,
 WMI_10_4_PDEV_FIPS_CMDID,
 WMI_10_4_TT_SET_CONF_CMDID,
 WMI_10_4_FWTEST_CMDID,
 WMI_10_4_VDEV_ATF_REQUEST_CMDID,
 WMI_10_4_PEER_ATF_REQUEST_CMDID,
 WMI_10_4_PDEV_GET_ANI_CCK_CONFIG_CMDID,
 WMI_10_4_PDEV_GET_ANI_OFDM_CONFIG_CMDID,
 WMI_10_4_PDEV_RESERVE_AST_ENTRY_CMDID,
 WMI_10_4_PDEV_GET_NFCAL_POWER_CMDID,
 WMI_10_4_PDEV_GET_TPC_CMDID,
 WMI_10_4_PDEV_GET_AST_INFO_CMDID,
 WMI_10_4_VDEV_SET_DSCP_TID_MAP_CMDID,
 WMI_10_4_PDEV_GET_TEMPERATURE_CMDID,
 WMI_10_4_PDEV_GET_INFO_CMDID,
 WMI_10_4_VDEV_GET_INFO_CMDID,
 WMI_10_4_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID,
 WMI_10_4_MU_CAL_START_CMDID,
 WMI_10_4_SET_CCA_PARAMS_CMDID,
 WMI_10_4_PDEV_BSS_CHAN_INFO_REQUEST_CMDID,
 WMI_10_4_EXT_RESOURCE_CFG_CMDID,
 WMI_10_4_VDEV_SET_IE_CMDID,
 WMI_10_4_SET_LTEU_CONFIG_CMDID,
 WMI_10_4_ATF_SSID_GROUPING_REQUEST_CMDID,
 WMI_10_4_PEER_ATF_EXT_REQUEST_CMDID,
 WMI_10_4_SET_PERIODIC_CHANNEL_STATS_CONFIG,
 WMI_10_4_PEER_BWF_REQUEST_CMDID,
 WMI_10_4_BTCOEX_CFG_CMDID,
 WMI_10_4_PEER_TX_MU_TXMIT_COUNT_CMDID,
 WMI_10_4_PEER_TX_MU_TXMIT_RSTCNT_CMDID,
 WMI_10_4_PEER_GID_USERPOS_LIST_CMDID,
 WMI_10_4_PDEV_CHECK_CAL_VERSION_CMDID,
 WMI_10_4_COEX_VERSION_CFG_CMID,
 WMI_10_4_PDEV_GET_RX_FILTER_CMDID,
 WMI_10_4_PDEV_EXTENDED_NSS_CFG_CMDID,
 WMI_10_4_VDEV_SET_SCAN_NAC_RSSI_CMDID,
 WMI_10_4_PROG_GPIO_BAND_SELECT_CMDID,
 WMI_10_4_CONFIG_SMART_LOGGING_CMDID,
 WMI_10_4_DEBUG_FATAL_CONDITION_CMDID,
 WMI_10_4_GET_TSF_TIMER_CMDID,
 WMI_10_4_PDEV_GET_TPC_TABLE_CMDID,
 WMI_10_4_VDEV_SIFS_TRIGGER_TIME_CMDID,
 WMI_10_4_PDEV_WDS_ENTRY_LIST_CMDID,
 WMI_10_4_TDLS_SET_STATE_CMDID,
 WMI_10_4_TDLS_PEER_UPDATE_CMDID,
 WMI_10_4_TDLS_SET_OFFCHAN_MODE_CMDID,
 WMI_10_4_PDEV_SEND_FD_CMDID,
 WMI_10_4_ENABLE_FILS_CMDID,
 WMI_10_4_PDEV_SET_BRIDGE_MACADDR_CMDID,
 WMI_10_4_ATF_GROUP_WMM_AC_CONFIG_REQUEST_CMDID,
 WMI_10_4_RADAR_FOUND_CMDID,
 WMI_10_4_PEER_CFR_CAPTURE_CMDID,
 WMI_10_4_PER_PEER_PER_TID_CONFIG_CMDID,
 WMI_10_4_PDEV_UTF_CMDID = WMI_10_4_END_CMDID - 1,
};

enum wmi_10_4_event_id {
 WMI_10_4_SERVICE_READY_EVENTID = 0x8000,
 WMI_10_4_READY_EVENTID,
 WMI_10_4_DEBUG_MESG_EVENTID,
 WMI_10_4_START_EVENTID = 0x9000,
 WMI_10_4_END_EVENTID = 0x9FFF,
 WMI_10_4_SCAN_EVENTID = WMI_10_4_START_EVENTID,
 WMI_10_4_ECHO_EVENTID,
 WMI_10_4_UPDATE_STATS_EVENTID,
 WMI_10_4_INST_RSSI_STATS_EVENTID,
 WMI_10_4_VDEV_START_RESP_EVENTID,
 WMI_10_4_VDEV_STANDBY_REQ_EVENTID,
 WMI_10_4_VDEV_RESUME_REQ_EVENTID,
 WMI_10_4_VDEV_STOPPED_EVENTID,
 WMI_10_4_PEER_STA_KICKOUT_EVENTID,
 WMI_10_4_HOST_SWBA_EVENTID,
 WMI_10_4_TBTTOFFSET_UPDATE_EVENTID,
 WMI_10_4_MGMT_RX_EVENTID,
 WMI_10_4_CHAN_INFO_EVENTID,
 WMI_10_4_PHYERR_EVENTID,
 WMI_10_4_ROAM_EVENTID,
 WMI_10_4_PROFILE_MATCH,
 WMI_10_4_DEBUG_PRINT_EVENTID,
 WMI_10_4_PDEV_QVIT_EVENTID,
 WMI_10_4_WLAN_PROFILE_DATA_EVENTID,
 WMI_10_4_RTT_MEASUREMENT_REPORT_EVENTID,
 WMI_10_4_TSF_MEASUREMENT_REPORT_EVENTID,
 WMI_10_4_RTT_ERROR_REPORT_EVENTID,
 WMI_10_4_RTT_KEEPALIVE_EVENTID,
 WMI_10_4_OEM_CAPABILITY_EVENTID,
 WMI_10_4_OEM_MEASUREMENT_REPORT_EVENTID,
 WMI_10_4_OEM_ERROR_REPORT_EVENTID,
 WMI_10_4_NAN_EVENTID,
 WMI_10_4_WOW_WAKEUP_HOST_EVENTID,
 WMI_10_4_GTK_OFFLOAD_STATUS_EVENTID,
 WMI_10_4_GTK_REKEY_FAIL_EVENTID,
 WMI_10_4_DCS_INTERFERENCE_EVENTID,
 WMI_10_4_PDEV_TPC_CONFIG_EVENTID,
 WMI_10_4_CSA_HANDLING_EVENTID,
 WMI_10_4_GPIO_INPUT_EVENTID,
 WMI_10_4_PEER_RATECODE_LIST_EVENTID,
 WMI_10_4_GENERIC_BUFFER_EVENTID,
 WMI_10_4_MCAST_BUF_RELEASE_EVENTID,
 WMI_10_4_MCAST_LIST_AGEOUT_EVENTID,
 WMI_10_4_VDEV_GET_KEEPALIVE_EVENTID,
 WMI_10_4_WDS_PEER_EVENTID,
 WMI_10_4_PEER_STA_PS_STATECHG_EVENTID,
 WMI_10_4_PDEV_FIPS_EVENTID,
 WMI_10_4_TT_STATS_EVENTID,
 WMI_10_4_PDEV_CHANNEL_HOPPING_EVENTID,
 WMI_10_4_PDEV_ANI_CCK_LEVEL_EVENTID,
 WMI_10_4_PDEV_ANI_OFDM_LEVEL_EVENTID,
 WMI_10_4_PDEV_RESERVE_AST_ENTRY_EVENTID,
 WMI_10_4_PDEV_NFCAL_POWER_EVENTID,
 WMI_10_4_PDEV_TPC_EVENTID,
 WMI_10_4_PDEV_GET_AST_INFO_EVENTID,
 WMI_10_4_PDEV_TEMPERATURE_EVENTID,
 WMI_10_4_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID,
 WMI_10_4_PDEV_BSS_CHAN_INFO_EVENTID,
 WMI_10_4_MU_REPORT_EVENTID,
 WMI_10_4_TX_DATA_TRAFFIC_CTRL_EVENTID,
 WMI_10_4_PEER_TX_MU_TXMIT_COUNT_EVENTID,
 WMI_10_4_PEER_GID_USERPOS_LIST_EVENTID,
 WMI_10_4_PDEV_CHECK_CAL_VERSION_EVENTID,
 WMI_10_4_ATF_PEER_STATS_EVENTID,
 WMI_10_4_PDEV_GET_RX_FILTER_EVENTID,
 WMI_10_4_NAC_RSSI_EVENTID,
 WMI_10_4_DEBUG_FATAL_CONDITION_EVENTID,
 WMI_10_4_GET_TSF_TIMER_RESP_EVENTID,
 WMI_10_4_PDEV_TPC_TABLE_EVENTID,
 WMI_10_4_PDEV_WDS_ENTRY_LIST_EVENTID,
 WMI_10_4_TDLS_PEER_EVENTID,
 WMI_10_4_HOST_SWFDA_EVENTID,
 WMI_10_4_ESP_ESTIMATE_EVENTID,
 WMI_10_4_DFS_STATUS_CHECK_EVENTID,
 WMI_10_4_PDEV_UTF_EVENTID = WMI_10_4_END_EVENTID - 1,
};

enum wmi_phy_mode {
 MODE_11A        = 0,   /* 11a Mode */
 MODE_11G        = 1,   /* 11b/g Mode */
 MODE_11B        = 2,   /* 11b Mode */
 MODE_11GONLY    = 3,   /* 11g only Mode */
 MODE_11NA_HT20   = 4,  /* 11a HT20 mode */
 MODE_11NG_HT20   = 5,  /* 11g HT20 mode */
 MODE_11NA_HT40   = 6,  /* 11a HT40 mode */
 MODE_11NG_HT40   = 7,  /* 11g HT40 mode */
 MODE_11AC_VHT20 = 8,
 MODE_11AC_VHT40 = 9,
 MODE_11AC_VHT80 = 10,
 /*    MODE_11AC_VHT160 = 11, */
 MODE_11AC_VHT20_2G = 11,
 MODE_11AC_VHT40_2G = 12,
 MODE_11AC_VHT80_2G = 13,
 MODE_11AC_VHT80_80 = 14,
 MODE_11AC_VHT160 = 15,
 MODE_UNKNOWN    = 16,
 MODE_MAX        = 16
};

static inline const char *ath10k_wmi_phymode_str(enum wmi_phy_mode mode)
{
 switch (mode) {
 case MODE_11A:
  return "11a";
 case MODE_11G:
  return "11g";
 case MODE_11B:
  return "11b";
 case MODE_11GONLY:
  return "11gonly";
 case MODE_11NA_HT20:
  return "11na-ht20";
 case MODE_11NG_HT20:
  return "11ng-ht20";
 case MODE_11NA_HT40:
  return "11na-ht40";
 case MODE_11NG_HT40:
  return "11ng-ht40";
 case MODE_11AC_VHT20:
  return "11ac-vht20";
 case MODE_11AC_VHT40:
  return "11ac-vht40";
 case MODE_11AC_VHT80:
  return "11ac-vht80";
 case MODE_11AC_VHT160:
  return "11ac-vht160";
 case MODE_11AC_VHT80_80:
  return "11ac-vht80+80";
 case MODE_11AC_VHT20_2G:
  return "11ac-vht20-2g";
 case MODE_11AC_VHT40_2G:
  return "11ac-vht40-2g";
 case MODE_11AC_VHT80_2G:
  return "11ac-vht80-2g";
 case MODE_UNKNOWN:
  /* skip */
  break;

  /* no default handler to allow compiler to check that the
 * enum is fully handled
 */

 }

 return "";
}

#define WMI_CHAN_LIST_TAG 0x1
#define WMI_SSID_LIST_TAG 0x2
#define WMI_BSSID_LIST_TAG 0x3
#define WMI_IE_TAG  0x4

struct wmi_channel {
 __le32 mhz;
 __le32 band_center_freq1;
 __le32 band_center_freq2; /* valid for 11ac, 80plus80 */
 union {
  __le32 flags; /* WMI_CHAN_FLAG_ */
--> --------------------

--> maximum size reached

--> --------------------

Messung V0.5
C=96 H=88 G=91

¤ Dauer der Verarbeitung: 0.13 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.