blob: 58f31c35fead4752ebf5a85fba968678f8db275d [file]
/*******************************************************************************
*
* This file is provided under a dual license. When you use or
* distribute this software, you may choose to be licensed under
* version 2 of the GNU General Public License ("GPLv2 License")
* or BSD License.
*
* GPLv2 License
*
* Copyright(C) 2016 MediaTek Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See http://www.gnu.org/licenses/gpl-2.0.html for more details.
*
* BSD LICENSE
*
* Copyright(C) 2016 MediaTek Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************/
/*
** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include
* /wlan_oid.h#4
*/
/*! \file "wlan_oid.h"
* \brief This file contains the declairation file of the WLAN OID processing
* routines of Windows driver for MediaTek Inc.
* 802.11 Wireless LAN Adapters.
*/
#ifndef _WLAN_OID_H
#define _WLAN_OID_H
/*******************************************************************************
* C O M P I L E R F L A G S
*******************************************************************************
*/
/*******************************************************************************
* E X T E R N A L R E F E R E N C E S
*******************************************************************************
*/
/*******************************************************************************
* C O N S T A N T S
*******************************************************************************
*/
#define PARAM_MAX_LEN_SSID 32
#define PARAM_MAC_ADDR_LEN 6
#define ETHERNET_HEADER_SZ 14
#define ETHERNET_MIN_PKT_SZ 60
#define ETHERNET_MAX_PKT_SZ 1514
#define PARAM_MAX_LEN_RATES 8
#define PARAM_MAX_LEN_RATES_EX 16
#define PARAM_AUTH_REQUEST_REAUTH 0x01
#define PARAM_AUTH_REQUEST_KEYUPDATE 0x02
#define PARAM_AUTH_REQUEST_PAIRWISE_ERROR 0x06
#define PARAM_AUTH_REQUEST_GROUP_ERROR 0x0E
#define PARAM_EEPROM_READ_METHOD_READ 1
#define PARAM_EEPROM_READ_METHOD_GETSIZE 0
#define PARAM_WHQL_RSSI_MAX_DBM (-10)
#define PARAM_WHQL_RSSI_INITIAL_DBM (-50)
#define PARAM_WHQL_RSSI_MIN_DBM (-200)
#define PARAM_DEVICE_WAKE_UP_ENABLE 0x00000001
#define PARAM_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002
#define PARAM_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004
#define PARAM_WAKE_UP_MAGIC_PACKET 0x00000001
#define PARAM_WAKE_UP_PATTERN_MATCH 0x00000002
#define PARAM_WAKE_UP_LINK_CHANGE 0x00000004
/* Packet filter bit definitioin (UINT_32 bit-wise definition) */
#define PARAM_PACKET_FILTER_DIRECTED 0x00000001
#define PARAM_PACKET_FILTER_MULTICAST 0x00000002
#define PARAM_PACKET_FILTER_ALL_MULTICAST 0x00000004
#define PARAM_PACKET_FILTER_BROADCAST 0x00000008
#define PARAM_PACKET_FILTER_PROMISCUOUS 0x00000020
#define PARAM_PACKET_FILTER_ALL_LOCAL 0x00000080
#if CFG_ENABLE_WIFI_DIRECT_CFG_80211
#define PARAM_PACKET_FILTER_P2P_MASK 0xC0000000
#define PARAM_PACKET_FILTER_PROBE_REQ 0x80000000
#define PARAM_PACKET_FILTER_ACTION_FRAME 0x40000000
#define PARAM_PACKET_FILTER_AUTH 0x20000000
#define PARAM_PACKET_FILTER_ASSOC_REQ 0x10000000
#endif
#if CFG_SLT_SUPPORT
#define PARAM_PACKET_FILTER_SUPPORTED (PARAM_PACKET_FILTER_DIRECTED | \
PARAM_PACKET_FILTER_MULTICAST | \
PARAM_PACKET_FILTER_BROADCAST | \
PARAM_PACKET_FILTER_ALL_MULTICAST)
#else
#define PARAM_PACKET_FILTER_SUPPORTED (PARAM_PACKET_FILTER_DIRECTED | \
PARAM_PACKET_FILTER_MULTICAST | \
PARAM_PACKET_FILTER_BROADCAST | \
PARAM_PACKET_FILTER_ALL_MULTICAST)
#endif
#define PARAM_MEM_DUMP_MAX_SIZE 1536
#if CFG_SUPPORT_CAL_RESULT_BACKUP_TO_HOST
#define PARAM_CAL_DATA_DUMP_MAX_SIZE 1200
#define PARAM_CAL_DATA_DUMP_MAX_NUM 300
#endif
#define BT_PROFILE_PARAM_LEN 8
/* Based on EEPROM layout 20160120 */
#define EFUSE_ADDR_MAX 0x3BF
#if CFG_SUPPORT_BUFFER_MODE
/* For MT7668 */
#define EFUSE_CONTENT_BUFFER_START 0x03A
#define EFUSE_CONTENT_BUFFER_END 0x1D9
#define EFUSE_CONTENT_BUFFER_SIZE (EFUSE_CONTENT_BUFFER_END - \
EFUSE_CONTENT_BUFFER_START + 1)
/* For MT6632 */
#define EFUSE_CONTENT_SIZE 16
#define EFUSE_BLOCK_SIZE 16
#define EEPROM_SIZE 1184
#define MAX_EEPROM_BUFFER_SIZE 1536
#endif /* CFG_SUPPORT_BUFFER_MODE */
#if CFG_SUPPORT_TX_BF
#define TXBF_CMD_NEED_TO_RESPONSE(u4TxBfCmdId) \
(u4TxBfCmdId == BF_PFMU_TAG_READ || \
u4TxBfCmdId == BF_PROFILE_READ)
#endif /* CFG_SUPPORT_TX_BF */
#define MU_CMD_NEED_TO_RESPONSE(u4MuCmdId) \
(u4MuCmdId == MU_GET_CALC_INIT_MCS || \
u4MuCmdId == MU_HQA_GET_QD || \
u4MuCmdId == MU_HQA_GET_CALC_LQ)
#if CFG_SUPPORT_MU_MIMO
/* @NITESH: MACROS For Init MCS calculation (MU Metric Table) */
#define NUM_MUT_FEC 2
#define NUM_MUT_MCS 10
#define NUM_MUT_NR_NUM 3
#define NUM_MUT_INDEX 8
#define NUM_OF_USER 2
#define NUM_OF_MODUL 5
#endif /* CFG_SUPPORT_MU_MIMO */
#define SER_ACTION_QUERY 0
#define SER_ACTION_SET 1
#define SER_ACTION_SET_ENABLE_MASK 2
#define SER_ACTION_RECOVER 3
/* SER_ACTION_SET sub action */
#define SER_SET_DISABLE 0
#define SER_SET_ENABLE 1
/* SER_ACTION_SET_ENABLE_MASK mask define */
#define SER_ENABLE_TRACKING BIT(0)
#define SER_ENABLE_L1_RECOVER BIT(1)
#define SER_ENABLE_L2_RECOVER BIT(2)
#define SER_ENABLE_L3_RX_ABORT BIT(3)
#define SER_ENABLE_L3_TX_ABORT BIT(4)
#define SER_ENABLE_L3_TX_DISABLE BIT(5)
#define SER_ENABLE_L3_BF_RECOVER BIT(6)
/* SER_ACTION_RECOVER recover method */
#define SER_SET_L0_RECOVER 0
#define SER_SET_L1_RECOVER 1
#define SER_SET_L2_RECOVER 2
#define SER_SET_L3_RX_ABORT 3
#define SER_SET_L3_TX_ABORT 4
#define SER_SET_L3_TX_DISABLE 5
#define SER_SET_L3_BF_RECOVER 6
/* SER user command */
#define SER_USER_CMD_DISABLE 0
#define SER_USER_CMD_ENABLE 1
#define SER_USER_CMD_QUERY 99
#define SER_USER_CMD_ENABLE_MASK_TRACKING_ONLY (200)
#define SER_USER_CMD_ENABLE_MASK_L1_RECOVER_ONLY (201)
#define SER_USER_CMD_ENABLE_MASK_L2_RECOVER_ONLY (202)
#define SER_USER_CMD_ENABLE_MASK_L3_RX_ABORT_ONLY (203)
#define SER_USER_CMD_ENABLE_MASK_L3_TX_ABORT_ONLY (204)
#define SER_USER_CMD_ENABLE_MASK_L3_TX_DISABLE_ONLY (205)
#define SER_USER_CMD_ENABLE_MASK_L3_BFRECOVER_ONLY (206)
#define SER_USER_CMD_ENABLE_MASK_RECOVER_ALL (207)
/* Use a magic number to prevent human mistake */
#define SER_USER_CMD_L0_RECOVER 956
#define SER_USER_CMD_L1_RECOVER 995
#define SER_USER_CMD_L2_BN0_RECOVER (300)
#define SER_USER_CMD_L2_BN1_RECOVER (301)
#define SER_USER_CMD_L3_RX0_ABORT (302)
#define SER_USER_CMD_L3_RX1_ABORT (303)
#define SER_USER_CMD_L3_TX0_ABORT (304)
#define SER_USER_CMD_L3_TX1_ABORT (305)
#define SER_USER_CMD_L3_TX0_DISABLE (306)
#define SER_USER_CMD_L3_TX1_DISABLE (307)
#define SER_USER_CMD_L3_BF_RECOVER (308)
#if (CFG_SUPPORT_TXPOWER_INFO == 1)
/* 1M, 2M, 5.5M, 11M */
#define MODULATION_SYSTEM_CCK_NUM 4
/* 6M, 9M, 12M, 18M, 24M, 36M, 48M, 54M */
#define MODULATION_SYSTEM_OFDM_NUM 8
#define MODULATION_SYSTEM_HT20_NUM 8 /* MCS0~7 */
#define MODULATION_SYSTEM_HT40_NUM 9 /* MCS0~7, MCS32 */
#define MODULATION_SYSTEM_VHT20_NUM 10 /* MCS0~9 */
#define MODULATION_SYSTEM_VHT40_NUM MODULATION_SYSTEM_VHT20_NUM
#define MODULATION_SYSTEM_VHT80_NUM MODULATION_SYSTEM_VHT20_NUM
#define MODULATION_SYSTEM_VHT160_NUM MODULATION_SYSTEM_VHT20_NUM
#define TXPOWER_RATE_CCK_OFFSET (0)
#define TXPOWER_RATE_OFDM_OFFSET (TXPOWER_RATE_CCK_OFFSET + \
MODULATION_SYSTEM_CCK_NUM)
#define TXPOWER_RATE_HT20_OFFSET (TXPOWER_RATE_OFDM_OFFSET + \
MODULATION_SYSTEM_OFDM_NUM)
#define TXPOWER_RATE_HT40_OFFSET (TXPOWER_RATE_HT20_OFFSET + \
MODULATION_SYSTEM_HT20_NUM)
#define TXPOWER_RATE_VHT20_OFFSET (TXPOWER_RATE_HT40_OFFSET + \
MODULATION_SYSTEM_HT40_NUM)
#define TXPOWER_RATE_VHT40_OFFSET (TXPOWER_RATE_VHT20_OFFSET + \
MODULATION_SYSTEM_VHT20_NUM)
#define TXPOWER_RATE_VHT80_OFFSET (TXPOWER_RATE_VHT40_OFFSET + \
MODULATION_SYSTEM_VHT40_NUM)
#define TXPOWER_RATE_VHT160_OFFSET (TXPOWER_RATE_VHT80_OFFSET + \
MODULATION_SYSTEM_VHT80_NUM)
#define TXPOWER_RATE_NUM (TXPOWER_RATE_VHT160_OFFSET + \
MODULATION_SYSTEM_VHT160_NUM)
#endif
#if CFG_SUPPORT_LOWLATENCY_MODE
#define GED_EVENT_GAS (1 << 4)
#define GED_EVENT_NETWORK (1 << 11)
#define GED_EVENT_DOPT_WIFI_SCAN (1 << 12)
#endif /* CFG_SUPPORT_LOWLATENCY_MODE */
#define CAL_ARRAY_SIZE 2048
/*******************************************************************************
* D A T A T Y P E S
*******************************************************************************
*/
/*----------------------------------------------------------------------------*/
/* Parameters of User Configuration which match to NDIS5.1 */
/*----------------------------------------------------------------------------*/
/* NDIS_802_11_AUTHENTICATION_MODE */
enum ENUM_PARAM_AUTH_MODE {
AUTH_MODE_NON_RSN_FT, /* Fast Bss Transition in a Non FT */
AUTH_MODE_OPEN, /*!< Open system */
AUTH_MODE_SHARED, /*!< Shared key */
AUTH_MODE_AUTO_SWITCH, /*!< Either open system or shared key */
AUTH_MODE_WPA,
AUTH_MODE_WPA_PSK,
AUTH_MODE_WPA_NONE, /*!< For Ad hoc */
AUTH_MODE_WPA2,
AUTH_MODE_WPA2_PSK,
AUTH_MODE_WPA2_FT, /* Fast Bss Transition for 802.1x */
AUTH_MODE_WPA2_FT_PSK, /* Fast Bss Transition for WPA2 PSK */
AUTH_MODE_WPA_OSEN,
#if CFG_SUPPORT_CFG80211_AUTH
AUTH_MODE_WPA2_SAE,
#endif
AUTH_MODE_NUM /*!< Upper bound, not real case */
};
/* NDIS_802_11_ENCRYPTION_STATUS *//* Encryption types */
enum ENUM_WEP_STATUS {
ENUM_WEP_ENABLED,
ENUM_ENCRYPTION1_ENABLED = ENUM_WEP_ENABLED,
ENUM_WEP_DISABLED,
ENUM_ENCRYPTION_DISABLED = ENUM_WEP_DISABLED,
ENUM_WEP_KEY_ABSENT,
ENUM_ENCRYPTION1_KEY_ABSENT = ENUM_WEP_KEY_ABSENT,
ENUM_WEP_NOT_SUPPORTED,
ENUM_ENCRYPTION_NOT_SUPPORTED = ENUM_WEP_NOT_SUPPORTED,
ENUM_ENCRYPTION2_ENABLED,
ENUM_ENCRYPTION2_KEY_ABSENT,
ENUM_ENCRYPTION3_ENABLED,
ENUM_ENCRYPTION3_KEY_ABSENT,
#if CFG_SUPPORT_SUITB
ENUM_ENCRYPTION4_ENABLED,
ENUM_ENCRYPTION4_KEY_ABSENT,
#endif
ENUM_ENCRYPTION_NUM
};
enum ENUM_PARAM_PHY_TYPE {
PHY_TYPE_802_11ABG = 0, /*!< Can associated with 802.11abg AP,
* Scan dual band.
*/
PHY_TYPE_802_11BG, /*!< Can associated with 802_11bg AP,
* Scan single band and not report 802_11a
* BSSs.
*/
PHY_TYPE_802_11G, /*!< Can associated with 802_11g only AP,
* Scan single band and not report 802_11ab
* BSSs.
*/
PHY_TYPE_802_11A, /*!< Can associated with 802_11a only AP,
* Scan single band and not report 802_11bg
* BSSs.
*/
PHY_TYPE_802_11B, /*!< Can associated with 802_11b only AP
* Scan single band and not report 802_11ag
* BSSs.
*/
PHY_TYPE_NUM /* 5 */
};
enum ENUM_PARAM_OP_MODE {
NET_TYPE_IBSS = 0, /*!< Try to merge/establish an AdHoc,
* do periodic SCAN for merging.
*/
NET_TYPE_INFRA, /*!< Try to join an Infrastructure,
* do periodic SCAN for joining.
*/
NET_TYPE_AUTO_SWITCH, /*!< Try to join an Infrastructure,
* if fail then try to merge or
*/
/* establish an AdHoc, do periodic SCAN for joining or merging. */
NET_TYPE_DEDICATED_IBSS,/*!< Try to merge an AdHoc first, */
/* if fail then establish AdHoc permanently, no more SCAN. */
NET_TYPE_NUM /* 4 */
};
struct PARAM_SSID {
uint32_t u4SsidLen; /*!< SSID length in bytes.
* Zero length is broadcast(any) SSID
*/
uint8_t aucSsid[PARAM_MAX_LEN_SSID];
};
struct PARAM_CONNECT {
uint32_t u4SsidLen; /*!< SSID length in bytes.
* Zero length is broadcast(any) SSID
*/
uint8_t *pucSsid;
uint8_t *pucBssid;
uint8_t *pucBssidHint;
uint32_t u4CenterFreq;
};
/* This is enum defined for user to select an AdHoc Mode */
enum ENUM_PARAM_AD_HOC_MODE {
AD_HOC_MODE_11B = 0, /*!< Create 11b IBSS if we support
* 802.11abg/802.11bg.
*/
AD_HOC_MODE_MIXED_11BG, /*!< Create 11bg mixed IBSS if we support
* 802.11abg/802.11bg/802.11g.
*/
AD_HOC_MODE_11G, /*!< Create 11g only IBSS if we support
* 802.11abg/802.11bg/802.11g.
*/
AD_HOC_MODE_11A, /*!< Create 11a only IBSS if we support
* 802.11abg.
*/
AD_HOC_MODE_NUM /* 4 */
};
enum ENUM_PARAM_MEDIA_STATE {
PARAM_MEDIA_STATE_CONNECTED,
PARAM_MEDIA_STATE_DISCONNECTED,
PARAM_MEDIA_STATE_DISCONNECT_PREV,
/* for following MSDN re-association behavior */
PARAM_MEDIA_STATE_TO_BE_INDICATED
};
enum ENUM_PARAM_NETWORK_TYPE {
PARAM_NETWORK_TYPE_FH,
PARAM_NETWORK_TYPE_DS,
PARAM_NETWORK_TYPE_OFDM5,
PARAM_NETWORK_TYPE_OFDM24,
PARAM_NETWORK_TYPE_AUTOMODE,
PARAM_NETWORK_TYPE_NUM /*!< Upper bound, not real case */
};
struct PARAM_NETWORK_TYPE_LIST {
uint32_t NumberOfItems; /*!< At least 1 */
enum ENUM_PARAM_NETWORK_TYPE eNetworkType[1];
};
enum ENUM_PARAM_PRIVACY_FILTER {
PRIVACY_FILTER_ACCEPT_ALL,
PRIVACY_FILTER_8021xWEP,
PRIVACY_FILTER_NUM
};
enum ENUM_RELOAD_DEFAULTS {
ENUM_RELOAD_WEP_KEYS
};
struct PARAM_PM_PACKET_PATTERN {
uint32_t Priority; /* Importance of the given pattern. */
uint32_t Reserved; /* Context information for transports. */
uint32_t MaskSize; /* Size in bytes of the pattern mask. */
uint32_t PatternOffset; /* Offset from beginning of this */
/* structure to the pattern bytes. */
uint32_t PatternSize; /* Size in bytes of the pattern. */
uint32_t PatternFlags; /* Flags (TBD). */
};
/* Combine ucTpTestMode and ucSigmaTestMode in one flag */
/* ucTpTestMode == 0, for normal driver */
/* ucTpTestMode == 1, for pure throughput test mode (ex: RvR) */
/* ucTpTestMode == 2, for sigma TGn/TGac/PMF */
/* ucTpTestMode == 3, for sigma WMM PS */
enum ENUM_TP_TEST_MODE {
ENUM_TP_TEST_MODE_NORMAL = 0,
ENUM_TP_TEST_MODE_THROUGHPUT,
ENUM_TP_TEST_MODE_SIGMA_AC_N_PMF,
ENUM_TP_TEST_MODE_SIGMA_WMM_PS,
ENUM_TP_TEST_MODE_NUM
};
/*--------------------------------------------------------------*/
/*! \brief Struct definition to indicate specific event. */
/*--------------------------------------------------------------*/
enum ENUM_STATUS_TYPE {
ENUM_STATUS_TYPE_AUTHENTICATION,
ENUM_STATUS_TYPE_MEDIA_STREAM_MODE,
ENUM_STATUS_TYPE_CANDIDATE_LIST,
ENUM_STATUS_TYPE_FT_AUTH_STATUS,
ENUM_STATUS_TYPE_NUM /*!< Upper bound, not real case */
};
struct PARAM_802_11_CONFIG_FH {
uint32_t u4Length; /*!< Length of structure */
uint32_t u4HopPattern; /*!< Defined as 802.11 */
uint32_t u4HopSet; /*!< to one if non-802.11 */
uint32_t u4DwellTime; /*!< In unit of Kusec */
};
struct PARAM_802_11_CONFIG {
uint32_t u4Length; /*!< Length of structure */
uint32_t u4BeaconPeriod; /*!< In unit of Kusec */
uint32_t u4ATIMWindow; /*!< In unit of Kusec */
uint32_t u4DSConfig; /*!< Channel frequency in unit of kHz */
struct PARAM_802_11_CONFIG_FH rFHConfig;
};
struct PARAM_STATUS_INDICATION {
enum ENUM_STATUS_TYPE eStatusType;
};
struct PARAM_AUTH_REQUEST {
uint32_t u4Length; /*!< Length of this struct */
uint8_t arBssid[PARAM_MAC_ADDR_LEN];
uint32_t u4Flags; /*!< Definitions are as follows */
};
struct PARAM_AUTH_EVENT {
struct PARAM_STATUS_INDICATION rStatus;
struct PARAM_AUTH_REQUEST arRequest[1];
};
/*! \brief Capabilities, privacy, rssi and IEs of each BSSID */
struct PARAM_BSSID_EX {
uint32_t u4Length; /*!< Length of structure */
uint8_t arMacAddress[PARAM_MAC_ADDR_LEN]; /*!< BSSID */
uint8_t Reserved[2];
struct PARAM_SSID rSsid; /*!< SSID */
uint32_t u4Privacy; /*!< Need WEP encryption */
int32_t rRssi; /*!< in dBm */
enum ENUM_PARAM_NETWORK_TYPE eNetworkTypeInUse;
struct PARAM_802_11_CONFIG rConfiguration;
enum ENUM_PARAM_OP_MODE eOpMode;
uint8_t rSupportedRates[PARAM_MAX_LEN_RATES_EX];
uint32_t u4IELength;
uint8_t aucIEs[1];
};
struct PARAM_BSSID_LIST_EX {
uint32_t u4NumberOfItems; /*!< at least 1 */
struct PARAM_BSSID_EX arBssid[1];
};
struct PARAM_WEP {
uint32_t u4Length; /*!< Length of structure */
uint32_t u4KeyIndex; /*!< 0: pairwise key, others group keys */
uint32_t u4KeyLength; /*!< Key length in bytes */
uint8_t aucKeyMaterial[32]; /*!< Key content by above setting */
};
/*! \brief Key mapping of BSSID */
struct PARAM_KEY {
uint32_t u4Length; /*!< Length of structure */
uint32_t u4KeyIndex; /*!< KeyID */
uint32_t u4KeyLength; /*!< Key length in bytes */
uint8_t arBSSID[PARAM_MAC_ADDR_LEN]; /*!< MAC address */
uint64_t rKeyRSC;
uint8_t ucBssIdx;
uint8_t ucCipher;
uint8_t aucKeyMaterial[32]; /*!< Key content by above setting */
/* Following add to change the original windows structure */
};
/* for more remove key control (ucCtrlFlag) */
#define FLAG_RM_KEY_CTRL_WO_OID BIT(0) /* not OID operation */
struct PARAM_REMOVE_KEY {
uint32_t u4Length; /*!< Length of structure */
uint32_t u4KeyIndex; /*!< KeyID */
uint8_t arBSSID[PARAM_MAC_ADDR_LEN]; /*!< MAC address */
uint8_t ucBssIdx;
uint8_t ucCtrlFlag; /* Ctrl Flag for RM key CMD */
};
/*! \brief Default key */
struct PARAM_DEFAULT_KEY {
uint8_t ucKeyID;
uint8_t ucUnicast;
uint8_t ucMulticast;
uint8_t ucBssIdx;
};
#if CFG_SUPPORT_WAPI
enum ENUM_KEY_TYPE {
ENUM_WPI_PAIRWISE_KEY = 0,
ENUM_WPI_GROUP_KEY
};
enum ENUM_WPI_PROTECT_TYPE {
ENUM_WPI_NONE,
ENUM_WPI_RX,
ENUM_WPI_TX,
ENUM_WPI_RX_TX
};
struct PARAM_WPI_KEY {
enum ENUM_KEY_TYPE eKeyType;
enum ENUM_WPI_PROTECT_TYPE eDirection;
uint8_t ucKeyID;
uint8_t aucRsv[3];
uint8_t aucAddrIndex[12];
uint32_t u4LenWPIEK;
uint8_t aucWPIEK[256];
uint32_t u4LenWPICK;
uint8_t aucWPICK[256];
uint8_t aucPN[16];
};
#endif
enum PARAM_POWER_MODE {
Param_PowerModeCAM,
Param_PowerModeMAX_PSP,
Param_PowerModeFast_PSP,
Param_PowerModeMax /* Upper bound, not real case */
};
enum PARAM_DEVICE_POWER_STATE {
ParamDeviceStateUnspecified = 0,
ParamDeviceStateD0,
ParamDeviceStateD1,
ParamDeviceStateD2,
ParamDeviceStateD3,
ParamDeviceStateMaximum
};
#if CFG_SUPPORT_FW_DBG_LEVEL_CTRL
/* FW debug control level related definition and enumerations */
#define FW_DBG_LEVEL_DONT_SET 0
#define FW_DBG_LEVEL_ERROR (1 << 0)
#define FW_DBG_LEVEL_WARN (1 << 1)
#define FW_DBG_LEVEL_STATE (1 << 2)
#define FW_DBG_LEVEL_INFO (1 << 3)
#define FW_DBG_LEVEL_LOUD (1 << 4)
#endif
struct PARAM_POWER_MODE_ {
uint8_t ucBssIdx;
enum PARAM_POWER_MODE ePowerMode;
};
#if CFG_SUPPORT_802_11D
/*! \brief The enumeration definitions for OID_IPN_MULTI_DOMAIN_CAPABILITY */
enum PARAM_MULTI_DOMAIN_CAPABILITY {
ParamMultiDomainCapDisabled,
ParamMultiDomainCapEnabled
};
#endif
struct COUNTRY_STRING_ENTRY {
uint8_t aucCountryCode[2];
uint8_t aucEnvironmentCode[2];
};
/* Power management related definition and enumerations */
#define UAPSD_NONE 0
#define UAPSD_AC0 (BIT(0) | BIT(4))
#define UAPSD_AC1 (BIT(1) | BIT(5))
#define UAPSD_AC2 (BIT(2) | BIT(6))
#define UAPSD_AC3 (BIT(3) | BIT(7))
#define UAPSD_ALL (UAPSD_AC0 | UAPSD_AC1 | UAPSD_AC2 | UAPSD_AC3)
enum ENUM_POWER_SAVE_PROFILE {
ENUM_PSP_CONTINUOUS_ACTIVE = 0,
ENUM_PSP_CONTINUOUS_POWER_SAVE,
ENUM_PSP_FAST_SWITCH,
ENUM_PSP_NUM
};
/*--------------------------------------------------------------*/
/*! \brief Set/Query testing type. */
/*--------------------------------------------------------------*/
struct PARAM_802_11_TEST {
uint32_t u4Length;
uint32_t u4Type;
union {
struct PARAM_AUTH_EVENT AuthenticationEvent;
int32_t RssiTrigger;
} u;
};
/*--------------------------------------------------------------*/
/*! \brief Set/Query authentication and encryption capability. */
/*--------------------------------------------------------------*/
struct PARAM_AUTH_ENCRYPTION {
enum ENUM_PARAM_AUTH_MODE eAuthModeSupported;
enum ENUM_WEP_STATUS eEncryptStatusSupported;
};
struct PARAM_CAPABILITY {
uint32_t u4Length;
uint32_t u4Version;
uint32_t u4NoOfPMKIDs;
uint32_t u4NoOfAuthEncryptPairsSupported;
struct PARAM_AUTH_ENCRYPTION
arAuthenticationEncryptionSupported[1];
};
struct PARAM_BSSID_INFO {
uint8_t arBSSID[PARAM_MAC_ADDR_LEN];
uint8_t arPMKID[16];
};
struct PARAM_PMKID {
uint32_t u4Length;
uint32_t u4BSSIDInfoCount;
struct PARAM_BSSID_INFO arBSSIDInfo[1];
};
/*! \brief PMKID candidate lists. */
struct PARAM_PMKID_CANDIDATE {
uint8_t arBSSID[PARAM_MAC_ADDR_LEN];
uint32_t u4Flags;
};
/* #ifdef LINUX */
struct PARAM_PMKID_CANDIDATE_LIST {
uint32_t u4Version; /*!< Version */
uint32_t u4NumCandidates; /*!< How many candidates follow */
struct PARAM_PMKID_CANDIDATE arCandidateList[1];
};
/* #endif */
#define NL80211_KCK_LEN 16
#define NL80211_KEK_LEN 16
#define NL80211_REPLAY_CTR_LEN 8
#define NL80211_KEYRSC_LEN 8
struct PARAM_GTK_REKEY_DATA {
uint8_t aucKek[NL80211_KEK_LEN];
uint8_t aucKck[NL80211_KCK_LEN];
uint8_t aucReplayCtr[NL80211_REPLAY_CTR_LEN];
uint8_t ucBssIndex;
uint8_t ucRekeyMode;
uint8_t ucCurKeyId;
uint8_t ucRsv;
uint32_t u4Proto;
uint32_t u4PairwiseCipher;
uint32_t u4GroupCipher;
uint32_t u4KeyMgmt;
uint32_t u4MgmtGroupCipher;
};
struct PARAM_CUSTOM_MCR_RW_STRUCT {
uint32_t u4McrOffset;
uint32_t u4McrData;
};
#define COEX_CTRL_BUF_LEN 460
/************************************************/
/* uint32_t u4SubCmd : Coex Ctrl Sub Command */
/* uint8_t aucBuffer : Reserve for Sub Command */
/* Data Structure */
/************************************************/
struct PARAM_COEX_HANDLER {
uint32_t u4SubCmd;
uint8_t aucBuffer[COEX_CTRL_BUF_LEN];
};
/************************************************/
/* uint32_t u4IsoPath : WF Path (WF0/WF1) */
/* uint32_t u4Channel : WF Channel */
/* uint32_t u4Isolation : Isolation value */
/************************************************/
struct PARAM_COEX_ISO_DETECT {
uint32_t u4IsoPath;
uint32_t u4Channel;
uint32_t u4Isolation;
};
/************************************************/
/* char cCoexInfo[]; */
/************************************************/
struct PARAM_COEX_GET_INFO {
uint8_t ucCoexInfo[COEX_CTRL_BUF_LEN];
};
#if CFG_SUPPORT_CAL_RESULT_BACKUP_TO_HOST
/*
* Description of Each Parameters :
* ucReason :
* 0 : Query Information of Thermal or Cal Data Length
* 1 : Trigger FW do or don't All Cal
* 2 : Dump Data to Host
* 3 : Send Backupped Cal Data to FW
* 4 : For Debug Use, Tell FW Print Cal Data (Rom or Ram)
* ucAction :
* 0 : Read Thermal Value
* 1 : Ask the Cal Data Total Length (Rom and Ram)
* 2 : Tell FW do All Cal
* 3 : Tell FW don't do Cal
* 4 : Dump Data to Host (Rom or Ram)
* 5 : Send Backupped Cal Data to FW (Rom or Ram)
* 6 : For Debug Use, Tell FW Print Cal Data (Rom or Ram)
* ucNeedResp :
* 0 : FW No Need to Response an EVENT
* 1 : FW Need to Response an EVENT
* ucFragNum :
* Sequence Number
* ucRomRam :
* 0 : Operation for Rom Cal Data
* 1 : Operation for Ram Cal Data
* u4ThermalValue :
* Field for filling the Thermal Value in FW
* u4Address :
* Dumpped Starting Address
* Used for Dump and Send Cal Data Between Driver and FW
* u4Length :
* Memory Size need to allocated in Driver or Data Size in an EVENT
* Used for Dump and Send Cal Data Between Driver and FW
* u4RemainLength :
* Remain Length need to Dump
* Used for Dump and Send Cal Data Between Driver and FW
*/
struct PARAM_CAL_BACKUP_STRUCT_V2 {
uint8_t ucReason;
uint8_t ucAction;
uint8_t ucNeedResp;
uint8_t ucFragNum;
uint8_t ucRomRam;
uint32_t u4ThermalValue;
uint32_t u4Address;
uint32_t u4Length;
uint32_t u4RemainLength;
};
#endif
#if CFG_SUPPORT_QA_TOOL
#if CFG_SUPPORT_BUFFER_MODE
struct BIN_CONTENT {
uint16_t u2Addr;
uint8_t ucValue;
uint8_t ucReserved;
};
struct PARAM_CUSTOM_EFUSE_BUFFER_MODE {
uint8_t ucSourceMode;
uint8_t ucCount;
uint8_t ucCmdType;
uint8_t ucReserved;
uint8_t aBinContent[MAX_EEPROM_BUFFER_SIZE];
};
struct PARAM_CUSTOM_EFUSE_BUFFER_MODE_CONNAC_T {
uint8_t ucSourceMode;
uint8_t ucContentFormat;
uint16_t u2Count;
uint8_t aBinContent[MAX_EEPROM_BUFFER_SIZE];
};
/*#if (CFG_EEPROM_PAGE_ACCESS == 1)*/
struct PARAM_CUSTOM_ACCESS_EFUSE {
uint32_t u4Address;
uint32_t u4Valid;
uint8_t aucData[16];
};
struct PARAM_CUSTOM_EFUSE_FREE_BLOCK {
uint8_t ucGetFreeBlock;
uint8_t aucReserved[3];
};
struct PARAM_CUSTOM_GET_TX_POWER {
uint8_t ucTxPwrType;
uint8_t ucCenterChannel;
uint8_t ucDbdcIdx; /* 0:Band 0, 1: Band1 */
uint8_t ucBand; /* 0:G-band 1: A-band*/
uint8_t ucReserved[4];
};
/*#endif*/
#endif /* CFG_SUPPORT_BUFFER_MODE */
struct PARAM_CUSTOM_SET_TX_TARGET_POWER {
int8_t cTxPwr2G4Cck; /* signed, in unit of 0.5dBm */
int8_t cTxPwr2G4Dsss; /* signed, in unit of 0.5dBm */
uint8_t ucTxTargetPwr; /* Tx target power base for all*/
uint8_t ucReserved;
int8_t cTxPwr2G4OFDM_BPSK;
int8_t cTxPwr2G4OFDM_QPSK;
int8_t cTxPwr2G4OFDM_16QAM;
int8_t cTxPwr2G4OFDM_Reserved;
int8_t cTxPwr2G4OFDM_48Mbps;
int8_t cTxPwr2G4OFDM_54Mbps;
int8_t cTxPwr2G4HT20_BPSK;
int8_t cTxPwr2G4HT20_QPSK;
int8_t cTxPwr2G4HT20_16QAM;
int8_t cTxPwr2G4HT20_MCS5;
int8_t cTxPwr2G4HT20_MCS6;
int8_t cTxPwr2G4HT20_MCS7;
int8_t cTxPwr2G4HT40_BPSK;
int8_t cTxPwr2G4HT40_QPSK;
int8_t cTxPwr2G4HT40_16QAM;
int8_t cTxPwr2G4HT40_MCS5;
int8_t cTxPwr2G4HT40_MCS6;
int8_t cTxPwr2G4HT40_MCS7;
int8_t cTxPwr5GOFDM_BPSK;
int8_t cTxPwr5GOFDM_QPSK;
int8_t cTxPwr5GOFDM_16QAM;
int8_t cTxPwr5GOFDM_Reserved;
int8_t cTxPwr5GOFDM_48Mbps;
int8_t cTxPwr5GOFDM_54Mbps;
int8_t cTxPwr5GHT20_BPSK;
int8_t cTxPwr5GHT20_QPSK;
int8_t cTxPwr5GHT20_16QAM;
int8_t cTxPwr5GHT20_MCS5;
int8_t cTxPwr5GHT20_MCS6;
int8_t cTxPwr5GHT20_MCS7;
int8_t cTxPwr5GHT40_BPSK;
int8_t cTxPwr5GHT40_QPSK;
int8_t cTxPwr5GHT40_16QAM;
int8_t cTxPwr5GHT40_MCS5;
int8_t cTxPwr5GHT40_MCS6;
int8_t cTxPwr5GHT40_MCS7;
};
#if (CFG_SUPPORT_DFS_MASTER == 1)
struct PARAM_CUSTOM_SET_RDD_REPORT {
uint8_t ucDbdcIdx; /* 0:Band 0, 1: Band1 */
};
struct PARAM_CUSTOM_SET_RADAR_DETECT_MODE {
/* 0:Switch channel, 1: Don't switch channel */
uint8_t ucRadarDetectMode;
};
#endif
struct PARAM_CUSTOM_ACCESS_RX_STAT {
uint32_t u4SeqNum;
uint32_t u4TotalNum;
};
/* Ext DevInfo Tag */
enum EXT_ENUM_DEVINFO_TAG_HANDLE {
DEV_INFO_ACTIVE = 0,
DEV_INFO_BSSID,
DEV_INFO_MAX_NUM
};
/* STA record TLV tag */
enum EXT_ENUM_STAREC_TAG_HANDLE {
STA_REC_BASIC = 0,
STA_REC_RA,
STA_REC_RA_COMMON_INFO,
STA_REC_RA_UPDATE,
STA_REC_BF,
STA_REC_MAUNAL_ASSOC,
STA_REC_BA = 6,
STA_REC_MAX_NUM
};
#if CFG_SUPPORT_TX_BF
enum BF_ACTION_CATEGORY {
BF_SOUNDING_OFF = 0,
BF_SOUNDING_ON,
BF_DATA_PACKET_APPLY,
BF_PFMU_MEM_ALLOCATE,
BF_PFMU_MEM_RELEASE,
BF_PFMU_TAG_READ,
BF_PFMU_TAG_WRITE,
BF_PROFILE_READ,
BF_PROFILE_WRITE,
BF_PN_READ,
BF_PN_WRITE,
BF_PFMU_MEM_ALLOC_MAP_READ,
#if CFG_SUPPORT_TX_BF_FPGA
BF_PFMU_SW_TAG_WRITE = 24
#endif
};
enum {
DEVINFO_ACTIVE = 0,
DEVINFO_MAX_NUM = 1,
};
enum {
DEVINFO_ACTIVE_FEATURE = (1 << DEVINFO_ACTIVE),
DEVINFO_MAX_NUM_FEATURE = (1 << DEVINFO_MAX_NUM)
};
enum {
BSS_INFO_OWN_MAC = 0,
BSS_INFO_BASIC = 1,
BSS_INFO_RF_CH = 2,
BSS_INFO_PM = 3,
BSS_INFO_UAPSD = 4,
BSS_INFO_ROAM_DETECTION = 5,
BSS_INFO_LQ_RM = 6,
BSS_INFO_EXT_BSS = 7,
BSS_INFO_BROADCAST_INFO = 8,
BSS_INFO_SYNC_MODE = 9,
BSS_INFO_MAX_NUM
};
union PFMU_PROFILE_TAG1 {
struct {
/* [6:0] : 0 ~ 63 */
uint32_t ucProfileID: 7;
/* [7] : 0: iBF, 1: eBF */
uint32_t ucTxBf: 1;
/* [9:8] : 0/1/2/3: DW20/40/80/160NC */
uint32_t ucDBW: 2;
/* [10] : 0:SU, 1: MU */
uint32_t ucSU_MU: 1;
/* [11] : 0: default, 1: This profile number is invalid by SW */
uint32_t ucInvalidProf: 1;
/* [14:12] : RMSD value from CE */
uint32_t ucRMSD: 3;
/* [17 : 15] : column index : 0 ~ 5 */
uint32_t ucMemAddr1ColIdx: 3;
/* [23 : 18] : row index : 0 ~ 63 */
uint32_t ucMemAddr1RowIdx: 6;
/* [26 : 24] : column index : 0 ~ 5 */
uint32_t ucMemAddr2ColIdx: 3;
/* [31 : 27] : row index : 0 ~ 63 */
uint32_t ucMemAddr2RowIdx: 5;
/* [32] : MSB of row index */
uint32_t ucMemAddr2RowIdxMsb: 1;
/* [35 : 33] : column index : 0 ~ 5 */
uint32_t ucMemAddr3ColIdx: 3;
/* [41 : 36] : row index : 0 ~ 63 */
uint32_t ucMemAddr3RowIdx: 6;
/* [44 : 42] : column index : 0 ~ 5 */
uint32_t ucMemAddr4ColIdx: 3;
/* [50 : 45] : row index : 0 ~ 63 */
uint32_t ucMemAddr4RowIdx: 6;
/* [51] : Reserved */
uint32_t ucReserved: 1;
/* [53 : 52] : Nrow */
uint32_t ucNrow: 2;
/* [55 : 54] : Ncol */
uint32_t ucNcol: 2;
/* [57 : 56] : Ngroup */
uint32_t ucNgroup: 2;
/* [59 : 58] : 0/1/2 */
uint32_t ucLM: 2;
/* [61:60] : Code book */
uint32_t ucCodeBook: 2;
/* [62] : HtcExist */
uint32_t ucHtcExist: 1;
/* [63] : Reserved */
uint32_t ucReserved1: 1;
/* [71:64] : SNR_STS0 */
uint32_t ucSNR_STS0: 8;
/* [79:72] : SNR_STS1 */
uint32_t ucSNR_STS1: 8;
/* [87:80] : SNR_STS2 */
uint32_t ucSNR_STS2: 8;
/* [95:88] : SNR_STS3 */
uint32_t ucSNR_STS3: 8;
/* [103:96] : iBF LNA index */
uint32_t ucIBfLnaIdx: 8;
} rField;
uint32_t au4RawData[4];
};
union PFMU_PROFILE_TAG2 {
struct {
uint32_t u2SmartAnt: 12;/* [11:0] : Smart Ant config */
uint32_t ucReserved0: 3;/* [14:12] : Reserved */
uint32_t ucSEIdx: 5; /* [19:15] : SE index */
uint32_t ucRMSDThd: 3; /* [22:20] : RMSD Threshold */
uint32_t ucReserved1: 1;/* [23] : Reserved */
uint32_t ucMCSThL1SS: 4;/* [27:24] : MCS TH long 1SS */
uint32_t ucMCSThS1SS: 4;/* [31:28] : MCS TH short 1SS */
uint32_t ucMCSThL2SS: 4;/* [35:32] : MCS TH long 2SS */
uint32_t ucMCSThS2SS: 4;/* [39:36] : MCS TH short 2SS */
uint32_t ucMCSThL3SS: 4;/* [43:40] : MCS TH long 3SS */
uint32_t ucMCSThS3SS: 4;/* [47:44] : MCS TH short 3SS */
uint32_t uciBfTimeOut: 8;/* [55:48] : iBF timeout limit */
uint32_t ucReserved2: 8;/* [63:56] : Reserved */
uint32_t ucReserved3: 8;/* [71:64] : Reserved */
uint32_t ucReserved4: 8;/* [79:72] : Reserved */
uint32_t uciBfDBW: 2; /* [81:80] : iBF desired DBW 0/1/2/3 :
* BW20/40/80/160NC
*/
uint32_t uciBfNcol: 2; /* [83:82] : iBF desired Ncol = 1 ~ 3 */
uint32_t uciBfNrow: 2; /* [85:84] : iBF desired Nrow = 1 ~ 4 */
uint32_t u2Reserved5: 10;/* [95:86] : Reserved */
} rField;
uint32_t au4RawData[3];
};
union PFMU_DATA {
struct {
uint32_t u2Phi11: 9;
uint32_t ucPsi21: 7;
uint32_t u2Phi21: 9;
uint32_t ucPsi31: 7;
uint32_t u2Phi31: 9;
uint32_t ucPsi41: 7;
uint32_t u2Phi22: 9;
uint32_t ucPsi32: 7;
uint32_t u2Phi32: 9;
uint32_t ucPsi42: 7;
uint32_t u2Phi33: 9;
uint32_t ucPsi43: 7;
uint32_t u2dSNR00: 4;
uint32_t u2dSNR01: 4;
uint32_t u2dSNR02: 4;
uint32_t u2dSNR03: 4;
uint32_t u2Reserved: 16;
} rField;
uint32_t au4RawData[5];
};
struct PROFILE_TAG_READ {
uint8_t ucTxBfCategory;
uint8_t ucProfileIdx;
u_int8_t fgBfer;
uint8_t ucRsv;
};
struct PROFILE_TAG_WRITE {
uint8_t ucTxBfCategory;
uint8_t ucPfmuId;
uint8_t ucBuffer[28];
};
struct PROFILE_DATA_READ {
uint8_t ucTxBfCategory;
uint8_t ucPfmuIdx;
u_int8_t fgBFer;
uint8_t ucReserved[3];
uint8_t ucSubCarrIdxLsb;
uint8_t ucSubCarrIdxMsb;
};
struct PROFILE_DATA_WRITE {
uint8_t ucTxBfCategory;
uint8_t ucPfmuIdx;
uint8_t u2SubCarrIdxLsb;
uint8_t u2SubCarrIdxMsb;
union PFMU_DATA rTxBfPfmuData;
};
struct PROFILE_PN_READ {
uint8_t ucTxBfCategory;
uint8_t ucPfmuIdx;
uint8_t ucReserved[2];
};
struct PROFILE_PN_WRITE {
uint8_t ucTxBfCategory;
uint8_t ucPfmuIdx;
uint16_t u2bw;
uint8_t ucBuf[32];
};
enum BF_SOUNDING_MODE {
SU_SOUNDING = 0,
MU_SOUNDING,
SU_PERIODIC_SOUNDING,
MU_PERIODIC_SOUNDING,
AUTO_SU_PERIODIC_SOUNDING
};
struct EXT_CMD_ETXBf_SND_PERIODIC_TRIGGER_CTRL {
uint8_t ucCmdCategoryID;
uint8_t ucSuMuSndMode;
uint8_t ucWlanIdx;
uint32_t u4SoundingInterval; /* By ms */
};
struct EXT_CMD_ETXBf_MU_SND_PERIODIC_TRIGGER_CTRL {
uint8_t ucCmdCategoryID;
uint8_t ucSuMuSndMode;
uint8_t ucWlanId[4];
uint8_t ucStaNum;
uint32_t u4SoundingInterval; /* By ms */
};
/* Device information (Tag0) */
struct CMD_DEVINFO_ACTIVE {
uint16_t u2Tag; /* Tag = 0x00 */
uint16_t u2Length;
uint8_t ucActive;
uint8_t ucBandNum;
uint8_t aucOwnMacAddr[6];
uint8_t aucReserve[4];
};
struct BSSINFO_BASIC {
/* Basic BSS information (Tag1) */
uint16_t u2Tag; /* Tag = 0x01 */
uint16_t u2Length;
uint32_t u4NetworkType;
uint8_t ucActive;
uint8_t ucReserve0;
uint16_t u2BcnInterval;
uint8_t aucBSSID[6];
uint8_t ucWmmIdx;
uint8_t ucDtimPeriod;
uint8_t ucBcMcWlanidx; /* indicate which wlan-idx used for MC/BC
* transmission.
*/
uint8_t ucCipherSuit;
uint8_t acuReserve[6];
};
struct TXBF_PFMU_STA_INFO {
uint16_t u2PfmuId; /* 0xFFFF means no access right for PFMU */
uint8_t fgSU_MU; /* 0 : SU, 1 : MU */
uint8_t fgETxBfCap; /* 0 : ITxBf, 1 : ETxBf */
uint8_t ucSoundingPhy; /* 0: legacy, 1: OFDM, 2: HT, 4: VHT */
uint8_t ucNdpaRate;
uint8_t ucNdpRate;
uint8_t ucReptPollRate;
uint8_t ucTxMode; /* 0: legacy, 1: OFDM, 2: HT, 4: VHT */
uint8_t ucNc;
uint8_t ucNr;
uint8_t ucCBW; /* 0 : 20M, 1 : 40M, 2 : 80M, 3 : 80 + 80M */
uint8_t ucTotMemRequire;
uint8_t ucMemRequire20M;
uint8_t ucMemRow0;
uint8_t ucMemCol0;
uint8_t ucMemRow1;
uint8_t ucMemCol1;
uint8_t ucMemRow2;
uint8_t ucMemCol2;
uint8_t ucMemRow3;
uint8_t ucMemCol3;
uint16_t u2SmartAnt;
uint8_t ucSEIdx;
uint8_t ucAutoSoundingCtrl;
uint8_t uciBfTimeOut;
uint8_t uciBfDBW;
uint8_t uciBfNcol;
uint8_t uciBfNrow;
uint8_t aucReserved[2];
};
struct STA_REC_UPD_ENTRY {
struct TXBF_PFMU_STA_INFO rTxBfPfmuStaInfo;
uint8_t aucAddr[PARAM_MAC_ADDR_LEN];
uint8_t ucAid;
uint8_t ucRsv;
};
struct STAREC_COMMON {
/* Basic STA record (Group0) */
uint16_t u2Tag; /* Tag = 0x00 */
uint16_t u2Length;
uint32_t u4ConnectionType;
uint8_t ucConnectionState;
uint8_t ucIsQBSS;
uint16_t u2AID;
uint8_t aucPeerMacAddr[6];
uint16_t u2Reserve1;
};
struct CMD_STAREC_BF {
uint16_t u2Tag; /* Tag = 0x02 */
uint16_t u2Length;
struct TXBF_PFMU_STA_INFO rTxBfPfmuInfo;
uint8_t ucReserved[3];
};
/* QA tool: maunal assoc */
struct CMD_MANUAL_ASSOC_STRUCT {
/*
* uint8_t ucBssIndex;
* uint8_t ucWlanIdx;
* uint16_t u2TotalElementNum;
* uint32_t u4Reserve;
*/
/* extension */
uint16_t u2Tag; /* Tag = 0x05 */
uint16_t u2Length;
uint8_t aucMac[MAC_ADDR_LEN];
uint8_t ucType;
uint8_t ucWtbl;
uint8_t ucOwnmac;
uint8_t ucMode;
uint8_t ucBw;
uint8_t ucNss;
uint8_t ucPfmuId;
uint8_t ucMarate;
uint8_t ucSpeIdx;
uint8_t ucaid;
};
struct TX_BF_SOUNDING_START {
union {
struct EXT_CMD_ETXBf_SND_PERIODIC_TRIGGER_CTRL
rExtCmdExtBfSndPeriodicTriggerCtrl;
struct EXT_CMD_ETXBf_MU_SND_PERIODIC_TRIGGER_CTRL
rExtCmdExtBfMuSndPeriodicTriggerCtrl;
} rTxBfSounding;
};
struct TX_BF_SOUNDING_STOP {
uint8_t ucTxBfCategory;
uint8_t ucSndgStop;
uint8_t ucReserved[2];
};
struct TX_BF_TX_APPLY {
uint8_t ucTxBfCategory;
uint8_t ucWlanId;
uint8_t fgETxBf;
uint8_t fgITxBf;
uint8_t fgMuTxBf;
uint8_t ucReserved[3];
};
struct TX_BF_PFMU_MEM_ALLOC {
uint8_t ucTxBfCategory;
uint8_t ucSuMuMode;
uint8_t ucWlanIdx;
uint8_t ucReserved;
};
struct TX_BF_PFMU_MEM_RLS {
uint8_t ucTxBfCategory;
uint8_t ucWlanId;
uint8_t ucReserved[2];
};
#if CFG_SUPPORT_TX_BF_FPGA
struct TX_BF_PROFILE_SW_TAG_WRITE {
uint8_t ucTxBfCategory;
uint8_t ucLm;
uint8_t ucNr;
uint8_t ucNc;
uint8_t ucBw;
uint8_t ucCodebook;
uint8_t ucgroup;
uint8_t ucReserved;
};
#endif
union PARAM_CUSTOM_TXBF_ACTION_STRUCT {
struct PROFILE_TAG_READ rProfileTagRead;
struct PROFILE_TAG_WRITE rProfileTagWrite;
struct PROFILE_DATA_READ rProfileDataRead;
struct PROFILE_DATA_WRITE rProfileDataWrite;
struct PROFILE_PN_READ rProfilePnRead;
struct PROFILE_PN_WRITE rProfilePnWrite;
struct TX_BF_SOUNDING_START rTxBfSoundingStart;
struct TX_BF_SOUNDING_STOP rTxBfSoundingStop;
struct TX_BF_TX_APPLY rTxBfTxApply;
struct TX_BF_PFMU_MEM_ALLOC rTxBfPfmuMemAlloc;
struct TX_BF_PFMU_MEM_RLS rTxBfPfmuMemRls;
#if CFG_SUPPORT_TX_BF_FPGA
struct TX_BF_PROFILE_SW_TAG_WRITE rTxBfProfileSwTagWrite;
#endif
};
struct PARAM_CUSTOM_STA_REC_UPD_STRUCT {
uint8_t ucBssIndex;
uint8_t ucWlanIdx;
uint16_t u2TotalElementNum;
uint8_t ucAppendCmdTLV;
uint8_t ucMuarIdx;
uint8_t aucReserve[2];
uint32_t *prStaRec;
struct CMD_STAREC_BF rCmdStaRecBf;
};
struct BSSINFO_ARGUMENT {
uint8_t OwnMacIdx;
uint8_t ucBssIndex;
uint8_t Bssid[PARAM_MAC_ADDR_LEN];
uint8_t ucBcMcWlanIdx;
uint8_t ucPeerWlanIdx;
uint32_t NetworkType;
uint32_t u4ConnectionType;
uint8_t CipherSuit;
uint8_t Active;
uint8_t WmmIdx;
uint32_t u4BssInfoFeature;
uint8_t aucBuffer[0];
};
struct PARAM_CUSTOM_PFMU_TAG_READ_STRUCT {
union PFMU_PROFILE_TAG1 ru4TxBfPFMUTag1;
union PFMU_PROFILE_TAG2 ru4TxBfPFMUTag2;
};
#if CFG_SUPPORT_MU_MIMO
struct PARAM_CUSTOM_SHOW_GROUP_TBL_ENTRY_STRUCT {
uint32_t u4EventId;
uint8_t index;
uint8_t numUser: 2;
uint8_t BW: 2;
uint8_t NS0: 2;
uint8_t NS1: 2;
/* UINT_8 NS2:1; */
/* UINT_8 NS3:1; */
uint8_t PFIDUser0;
uint8_t PFIDUser1;
/* UINT_8 PFIDUser2; */
/* UINT_8 PFIDUser3; */
u_int8_t fgIsShortGI;
u_int8_t fgIsUsed;
u_int8_t fgIsDisable;
uint8_t initMcsUser0: 4;
uint8_t initMcsUser1: 4;
/* UINT_8 initMcsUser2:4; */
/* UINT_8 initMcsUser3:4; */
uint8_t dMcsUser0: 4;
uint8_t dMcsUser1: 4;
/* UINT_8 dMcsUser2:4; */
/* UINT_8 dMcsUser3:4; */
};
struct PARAM_CUSTOM_GET_QD_STRUCT {
uint32_t u4EventId;
uint32_t au4RawData[14];
};
struct MU_STRUCT_LQ_REPORT {
int lq_report[NUM_OF_USER][NUM_OF_MODUL];
};
struct PARAM_CUSTOM_GET_MU_CALC_LQ_STRUCT {
uint32_t u4EventId;
struct MU_STRUCT_LQ_REPORT rEntry;
};
struct MU_GET_CALC_INIT_MCS {
uint8_t ucgroupIdx;
uint8_t ucRsv[3];
};
struct MU_SET_INIT_MCS {
uint8_t ucNumOfUser; /* zero-base: 0~3: means 1~2 users */
uint8_t ucBandwidth; /* zero-base: 0:20 hz 1:40 hz 2: 80 hz 3: 160 */
uint8_t ucNssOfUser0; /* zero-base: 0~1 means uesr0 use 1~2 ss,
* if no use keep 0
*/
uint8_t ucNssOfUser1; /* zero-base: 0~1 means uesr0 use 1~2 ss,
* if no use keep 0
*/
uint8_t ucPfMuIdOfUser0;/* zero-base: for now, uesr0 use pf mu id 0 */
uint8_t ucPfMuIdOfUser1;/* zero-base: for now, uesr1 use pf mu id 1 */
uint8_t ucNumOfTxer; /* 0~3: mean use 1~4 anntain, for now,
* should fix 3
*/
uint8_t ucSpeIndex; /* add new field to fill"special extension
* index" which replace reserve
*/
uint32_t u4GroupIndex; /* 0~ :the index of group table entry for
* calculation
*/
};
struct MU_SET_CALC_LQ {
uint8_t ucNumOfUser; /* zero-base: 0~3: means 1~2 users */
uint8_t ucBandwidth; /* zero-base: 0:20 hz 1:40 hz 2: 80 hz 3: 160 */
uint8_t ucNssOfUser0; /* zero-base: 0~1 means uesr0 use 1~2 ss,
* if no use keep 0
*/
uint8_t ucNssOfUser1; /* zero-base: 0~1 means uesr0 use 1~2 ss,
* if no use keep 0
*/
uint8_t ucPfMuIdOfUser0;/* zero-base: for now, uesr0 use pf mu id 0 */
uint8_t ucPfMuIdOfUser1;/* zero-base: for now, uesr1 use pf mu id 1 */
uint8_t ucNumOfTxer; /* 0~3: mean use 1~4 anntain, for now,
* should fix 3
*/
uint8_t ucSpeIndex; /* add new field to fill"special extension
* index" which replace reserve
*/
uint32_t u4GroupIndex; /* 0~ : the index of group table entry for
* calculation
*/
};
struct MU_GET_LQ {
uint8_t ucType;
uint8_t ucRsv[3];
};
struct MU_SET_SNR_OFFSET {
uint8_t ucVal;
uint8_t ucRsv[3];
};
struct MU_SET_ZERO_NSS {
uint8_t ucVal;
uint8_t ucRsv[3];
};
struct MU_SPEED_UP_LQ {
uint32_t u4Val;
};
struct MU_SET_MU_TABLE {
/* UINT_16 u2Type; */
/* UINT_32 u4Length; */
uint8_t aucMetricTable[NUM_MUT_NR_NUM * NUM_MUT_FEC *
NUM_MUT_MCS * NUM_MUT_INDEX];
};
struct MU_SET_GROUP {
uint32_t u4GroupIndex; /* Group Table Idx */
uint32_t u4NumOfUser;
uint32_t u4User0Ldpc;
uint32_t u4User1Ldpc;
uint32_t u4ShortGI;
uint32_t u4Bw;
uint32_t u4User0Nss;
uint32_t u4User1Nss;
uint32_t u4GroupId;
uint32_t u4User0UP;
uint32_t u4User1UP;
uint32_t u4User0MuPfId;
uint32_t u4User1MuPfId;
uint32_t u4User0InitMCS;
uint32_t u4User1InitMCS;
uint8_t aucUser0MacAddr[PARAM_MAC_ADDR_LEN];
uint8_t aucUser1MacAddr[PARAM_MAC_ADDR_LEN];
};
struct MU_GET_QD {
uint8_t ucSubcarrierIndex;
/* UINT_32 u4Length; */
/* UINT_8 *prQd; */
};
struct MU_SET_ENABLE {
uint8_t ucVal;
uint8_t ucRsv[3];
};
struct MU_SET_GID_UP {
uint32_t au4Gid[2];
uint32_t au4Up[4];
};
struct MU_TRIGGER_MU_TX {
uint8_t fgIsRandomPattern; /* is random pattern or not */
uint32_t u4MsduPayloadLength0; /* payload length of the MSDU for
* user 0
*/
uint32_t u4MsduPayloadLength1; /* payload length of the MSDU for
* user 1
*/
uint32_t u4MuPacketCount; /* MU TX count */
uint32_t u4NumOfSTAs; /* number of user in the MU TX */
uint8_t aucMacAddrs[2][6]; /* MAC address of users*/
};
struct PARAM_CUSTOM_MUMIMO_ACTION_STRUCT {
uint8_t ucMuMimoCategory;
uint8_t aucRsv[3];
union {
struct MU_GET_CALC_INIT_MCS rMuGetCalcInitMcs;
struct MU_SET_INIT_MCS rMuSetInitMcs;
struct MU_SET_CALC_LQ rMuSetCalcLq;
struct MU_GET_LQ rMuGetLq;
struct MU_SET_SNR_OFFSET rMuSetSnrOffset;
struct MU_SET_ZERO_NSS rMuSetZeroNss;
struct MU_SPEED_UP_LQ rMuSpeedUpLq;
struct MU_SET_MU_TABLE rMuSetMuTable;
struct MU_SET_GROUP rMuSetGroup;
struct MU_GET_QD rMuGetQd;
struct MU_SET_ENABLE rMuSetEnable;
struct MU_SET_GID_UP rMuSetGidUp;
struct MU_TRIGGER_MU_TX rMuTriggerMuTx;
} unMuMimoParam;
};
#endif /* CFG_SUPPORT_MU_MIMO */
#endif /* CFG_SUPPORT_TX_BF */
#endif /* CFG_SUPPORT_QA_TOOL */
struct PARAM_CUSTOM_MEM_DUMP_STRUCT {
uint32_t u4Address;
uint32_t u4Length;
uint32_t u4RemainLength;
#if CFG_SUPPORT_QA_TOOL
uint32_t u4IcapContent;
#endif /* CFG_SUPPORT_QA_TOOL */
uint8_t ucFragNum;
};
struct PARAM_CUSTOM_SW_CTRL_STRUCT {
uint32_t u4Id;
uint32_t u4Data;
};
struct PARAM_CUSTOM_CHIP_CONFIG_STRUCT {
uint16_t u2Id;
uint8_t ucType;
uint8_t ucRespType;
uint16_t u2MsgSize;
uint8_t aucReserved0[2];
uint8_t aucCmd[CHIP_CONFIG_RESP_SIZE];
};
struct PARAM_CUSTOM_KEY_CFG_STRUCT {
uint8_t aucKey[WLAN_CFG_KEY_LEN_MAX];
uint8_t aucValue[WLAN_CFG_VALUE_LEN_MAX];
};
struct PARAM_CUSTOM_EEPROM_RW_STRUCT {
uint8_t ucEepromMethod; /* For read only read: 1, query size: 0 */
uint8_t ucEepromIndex;
uint8_t reserved;
uint16_t u2EepromData;
};
struct PARAM_CUSTOM_WMM_PS_TEST_STRUCT {
uint8_t bmfgApsdEnAc; /* b0~3: trigger-en AC0~3.
* b4~7: delivery-en AC0~3
*/
uint8_t ucIsEnterPsAtOnce; /* enter PS immediately without 5 second
* guard after connected
*/
uint8_t ucIsDisableUcTrigger; /* not to trigger UC on beacon TIM is
* matched (under U-APSD)
*/
uint8_t reserved;
};
struct PARAM_CUSTOM_NOA_PARAM_STRUCT {
uint32_t u4NoaDurationMs;
uint32_t u4NoaIntervalMs;
uint32_t u4NoaCount;
uint8_t ucBssIdx;
};
struct PARAM_CUSTOM_OPPPS_PARAM_STRUCT {
uint32_t u4CTwindowMs;
uint8_t ucBssIdx;
};
struct PARAM_CUSTOM_UAPSD_PARAM_STRUCT {
uint8_t ucBssIdx;
uint8_t fgEnAPSD;
uint8_t fgEnAPSD_AcBe;
uint8_t fgEnAPSD_AcBk;
uint8_t fgEnAPSD_AcVo;
uint8_t fgEnAPSD_AcVi;
uint8_t ucMaxSpLen;
uint8_t aucResv[2];
};
struct PARAM_CUSTOM_P2P_SET_STRUCT {
uint32_t u4Enable;
uint32_t u4Mode;
};
#define MAX_NUMBER_OF_ACL 20
enum ENUM_PARAM_CUSTOM_ACL_POLICY {
PARAM_CUSTOM_ACL_POLICY_DISABLE,
PARAM_CUSTOM_ACL_POLICY_ACCEPT,
PARAM_CUSTOM_ACL_POLICY_DENY,
PARAM_CUSTOM_ACL_POLICY_NUM
};
struct PARAM_CUSTOM_ACL_ENTRY {
uint8_t aucAddr[MAC_ADDR_LEN];
uint16_t u2Rsv;
};
struct PARAM_CUSTOM_ACL {
enum ENUM_PARAM_CUSTOM_ACL_POLICY ePolicy;
uint32_t u4Num;
struct PARAM_CUSTOM_ACL_ENTRY rEntry[MAX_NUMBER_OF_ACL];
};
enum ENUM_CFG_SRC_TYPE {
CFG_SRC_TYPE_EEPROM,
CFG_SRC_TYPE_NVRAM,
CFG_SRC_TYPE_UNKNOWN,
CFG_SRC_TYPE_NUM
};
enum ENUM_EEPROM_TYPE {
EEPROM_TYPE_NO,
EEPROM_TYPE_PRESENT,
EEPROM_TYPE_NUM
};
struct PARAM_QOS_TSINFO {
uint8_t ucTrafficType; /* Traffic Type: 1 for isochronous 0 for
* asynchronous
*/
uint8_t ucTid; /* TSID: must be between 8 ~ 15 */
uint8_t ucDirection; /* direction */
uint8_t ucAccessPolicy; /* access policy */
uint8_t ucAggregation; /* aggregation */
uint8_t ucApsd; /* APSD */
uint8_t ucuserPriority; /* user priority */
uint8_t ucTsInfoAckPolicy; /* TSINFO ACK policy */
uint8_t ucSchedule; /* Schedule */
};
struct PARAM_QOS_TSPEC {
struct PARAM_QOS_TSINFO rTsInfo; /* TS info field */
uint16_t u2NominalMSDUSize; /* nominal MSDU size */
uint16_t u2MaxMSDUsize; /* maximum MSDU size */
uint32_t u4MinSvcIntv; /* minimum service interval */
uint32_t u4MaxSvcIntv; /* maximum service interval */
uint32_t u4InactIntv; /* inactivity interval */
uint32_t u4SpsIntv; /* suspension interval */
uint32_t u4SvcStartTime; /* service start time */
uint32_t u4MinDataRate; /* minimum Data rate */
uint32_t u4MeanDataRate; /* mean data rate */
uint32_t u4PeakDataRate; /* peak data rate */
uint32_t u4MaxBurstSize; /* maximum burst size */
uint32_t u4DelayBound; /* delay bound */
uint32_t u4MinPHYRate; /* minimum PHY rate */
uint16_t u2Sba; /* surplus bandwidth allowance */
uint16_t u2MediumTime; /* medium time */
uint8_t ucDialogToken;
};
struct PARAM_QOS_ADDTS_REQ_INFO {
struct PARAM_QOS_TSPEC rTspec;
};
struct PARAM_VOIP_CONFIG {
uint32_t u4VoipTrafficInterval; /* 0: disable VOIP configuration */
};
/*802.11 Statistics Struct*/
struct PARAM_802_11_STATISTICS_STRUCT {
uint8_t ucInvalid;
union LARGE_INTEGER rTransmittedFragmentCount;
union LARGE_INTEGER rFailedCount;
union LARGE_INTEGER rRetryCount;
union LARGE_INTEGER rMultipleRetryCount;
union LARGE_INTEGER rACKFailureCount;
union LARGE_INTEGER rReceivedFragmentCount;
union LARGE_INTEGER rFCSErrorCount;
uint32_t u4RstReason;
uint64_t u8RstTime;
uint32_t u4RoamFailCnt;
uint64_t u8RoamFailTime;
uint8_t u2TxDoneDelayIsARP;
uint32_t u4ArriveDrvTick;
uint32_t u4EnQueTick;
uint32_t u4DeQueTick;
uint32_t u4LeaveDrvTick;
uint32_t u4CurrTick;
uint64_t u8CurrTime;
};
/* Linux Network Device Statistics Struct */
struct PARAM_LINUX_NETDEV_STATISTICS {
uint32_t u4RxPackets;
uint32_t u4TxPackets;
uint32_t u4RxBytes;
uint32_t u4TxBytes;
uint32_t u4RxErrors;
uint32_t u4TxErrors;
uint32_t u4Multicast;
};
struct PARAM_MTK_WIFI_TEST_STRUCT {
uint32_t u4FuncIndex;
uint32_t u4FuncData;
};
struct _RBIST_IQ_DATA_T {
int32_t u4IQArray[4][2]; /* IQ_Array[WF][IQ] */
};
struct RECAL_DATA_T {
uint32_t u4CalId;
uint32_t u4CalAddr;
uint32_t u4CalValue;
};
struct RECAL_INFO_T {
u_int8_t fgDumped;
uint32_t u4Count;
struct RECAL_DATA_T *prCalArray;
};
struct ICAP_INFO_T {
u_int8_t fgCaptureDone;
u_int8_t fgIcapEnable;
uint32_t u4CapNode;
#if CFG_SUPPORT_QA_TOOL
/* for MT6632/MT7668 file dump mode */
uint16_t u2DumpIndex;
uint32_t au4Offset[2][2];
uint32_t au4IQData[256];
/* for MT7663/Connad FW parser mode */
uint32_t u4IQArrayIndex;
uint32_t u4ICapEventCnt; /* Count of packet getting from FW */
uint32_t au4ICapDumpIndex[4][2];/* Count of packet sent to QA Tool,
* 4 WF * 2 I/Q
*/
struct _RBIST_IQ_DATA_T *prIQArray;
#endif
};
struct RF_TEST_CALIBRATION_T {
uint32_t u4FuncData;
uint8_t ucDbdcIdx;
uint8_t aucReserved[3];
};
struct TX_TONE_PARAM_T {
uint8_t ucAntIndex;
uint8_t ucToneType;
uint8_t ucToneFreq;
uint8_t ucDbdcIdx;
int32_t i4DcOffsetI;
int32_t i4DcOffsetQ;
uint32_t u4Band;
};
struct CONTINUOUS_TX_PARAM_T {
uint8_t ucCtrlCh;
uint8_t ucCentralCh;
uint8_t ucBW;
uint8_t ucAntIndex;
uint16_t u2RateCode;
uint8_t ucBand;
uint8_t ucTxfdMode;
};
struct TX_TONE_POWER_GAIN_T {
uint8_t ucAntIndex;
uint8_t ucTonePowerGain;
uint8_t ucBand;
uint8_t aucReserved[1];
};
struct EXT_CMD_RDD_ON_OFF_CTRL_T {
uint8_t ucDfsCtrl;
uint8_t ucRddIdx;
uint8_t ucRddRxSel;
uint8_t ucSetVal;
uint8_t aucReserved[4];
};
struct SET_ADC_T {
uint32_t u4ChannelFreq;
uint8_t ucAntIndex;
uint8_t ucBW;
uint8_t ucSX;
uint8_t ucDbdcIdx;
uint8_t ucRunType;
uint8_t ucFType;
uint8_t aucReserved[2]; /* Reserving For future */
};
struct SET_RX_GAIN_T {
uint8_t ucLPFG;
uint8_t ucLNA;
uint8_t ucDbdcIdx;
uint8_t ucAntIndex;
};
struct SET_TTG_T {
uint32_t u4ChannelFreq;
uint32_t u4ToneFreq;
uint8_t ucTTGPwrIdx;
uint8_t ucDbdcIdx;
uint8_t ucXtalFreq;
uint8_t aucReserved[1];
};
struct TTG_ON_OFF_T {
uint8_t ucTTGEnable;
uint8_t ucDbdcIdx;
uint8_t ucAntIndex;
uint8_t aucReserved[1];
};
struct RBIST_CAP_START_T {
uint32_t u4Trigger;
uint32_t u4RingCapEn;
uint32_t u4TriggerEvent;
uint32_t u4CaptureNode;
uint32_t u4CaptureLen; /* Unit : IQ Sample */
uint32_t u4CapStopCycle; /* Unit : IQ Sample */
uint32_t u4MacTriggerEvent;
uint32_t u4SourceAddressLSB;
uint32_t u4SourceAddressMSB;
uint32_t u4BandIdx;
uint32_t u4BW;
uint32_t u4EnBitWidth;/* 0:32bit, 1:96bit, 2:128bit */
uint32_t u4Architech;/* 0:on-chip, 1:on-the-fly */
uint32_t u4PhyIdx;
uint32_t u4EmiStartAddress;
uint32_t u4EmiEndAddress;
uint32_t u4EmiMsbAddress;
uint32_t u4CapSource;
uint32_t u4Reserved[2];
};
struct RBIST_DUMP_RAW_DATA_T {
uint32_t u4Address;
uint32_t u4AddrOffset;
uint32_t u4Bank;
uint32_t u4BankSize;/* Uint:Kbytes */
uint32_t u4Reserved[8];
};
/* FuncIndex */
enum FUNC_IDX {
RE_CALIBRATION = 0x01,
CALIBRATION_BYPASS = 0x02,
TX_TONE_START = 0x03,
TX_TONE_STOP = 0x04,
CONTINUOUS_TX_START = 0x05,
CONTINUOUS_TX_STOP = 0x06,
RF_AT_EXT_FUNCID_TX_TONE_RF_GAIN = 0x07,
RF_AT_EXT_FUNCID_TX_TONE_DIGITAL_GAIN = 0x08,
CAL_RESULT_DUMP_FLAG = 0x09,
RDD_TEST_MODE = 0x0A,
SET_ICAP_CAPTURE_START = 0x0B,
GET_ICAP_CAPTURE_STATUS = 0x0C,
SET_ADC = 0x0D,
SET_RX_GAIN = 0x0E,
SET_TTG = 0x0F,
TTG_ON_OFF = 0x10,
GET_ICAP_RAW_DATA = 0x11
};
struct PARAM_MTK_WIFI_TEST_STRUCT_EXT_T {
uint32_t u4FuncIndex;
union {
uint32_t u4FuncData;
uint32_t u4CalDump;
struct RF_TEST_CALIBRATION_T rCalParam;
struct TX_TONE_PARAM_T rTxToneParam;
struct CONTINUOUS_TX_PARAM_T rConTxParam;
struct TX_TONE_POWER_GAIN_T rTxToneGainParam;
struct RBIST_CAP_START_T rICapInfo;
struct RBIST_DUMP_RAW_DATA_T rICapDump;
struct EXT_CMD_RDD_ON_OFF_CTRL_T rRDDParam;
struct SET_ADC_T rSetADC;
struct SET_RX_GAIN_T rSetRxGain;
struct SET_TTG_T rSetTTG;
struct TTG_ON_OFF_T rTTGOnOff;
} Data;
};
/* 802.11 Media stream constraints */
enum ENUM_MEDIA_STREAM_MODE {
ENUM_MEDIA_STREAM_OFF,
ENUM_MEDIA_STREAM_ON
};
/* for NDIS 5.1 Media Streaming Change */
struct PARAM_MEDIA_STREAMING_INDICATION {
struct PARAM_STATUS_INDICATION rStatus;
enum ENUM_MEDIA_STREAM_MODE eMediaStreamMode;
};
#define PARAM_PROTOCOL_ID_DEFAULT 0x00
#define PARAM_PROTOCOL_ID_TCP_IP 0x02
#define PARAM_PROTOCOL_ID_IPX 0x06
#define PARAM_PROTOCOL_ID_NBF 0x07
#define PARAM_PROTOCOL_ID_MAX 0x0F
#define PARAM_PROTOCOL_ID_MASK 0x0F
/* for NDIS OID_GEN_NETWORK_LAYER_ADDRESSES */
struct PARAM_NETWORK_ADDRESS_IP {
uint16_t sin_port;
uint32_t in_addr;
uint8_t sin_zero[8];
};
struct PARAM_NETWORK_ADDRESS {
uint16_t u2AddressLength;/* length in bytes of Address[] in this */
uint16_t u2AddressType; /* type of this address
* (PARAM_PROTOCOL_ID_XXX above)
*/
uint8_t aucAddress[1]; /* actually AddressLength bytes long */
};
/* The following is used with OID_GEN_NETWORK_LAYER_ADDRESSES to set network
* layer addresses on an interface
*/
struct PARAM_NETWORK_ADDRESS_LIST {
uint8_t ucBssIdx;
uint32_t u4AddressCount;/* number of addresses following */
uint16_t u2AddressType; /* type of this address
* (NDIS_PROTOCOL_ID_XXX above)
*/
struct PARAM_NETWORK_ADDRESS
arAddress[1]; /* actually AddressCount elements long */
};
#if CFG_SLT_SUPPORT
#define FIXED_BW_LG20 0x0000
#define FIXED_BW_UL20 0x2000
#define FIXED_BW_DL40 0x3000
#define FIXED_EXT_CHNL_U20 0x4000 /* For AGG register. */
#define FIXED_EXT_CHNL_L20 0xC000 /* For AGG regsiter. */
enum ENUM_MTK_LP_TEST_MODE {
ENUM_MTK_LP_TEST_NORMAL,
ENUM_MTK_LP_TEST_GOLDEN_SAMPLE,
ENUM_MTK_LP_TEST_DUT,
ENUM_MTK_LP_TEST_MODE_NUM
};
enum ENUM_MTK_SLT_FUNC_IDX {
ENUM_MTK_SLT_FUNC_DO_NOTHING,
ENUM_MTK_SLT_FUNC_INITIAL,
ENUM_MTK_SLT_FUNC_RATE_SET,
ENUM_MTK_SLT_FUNC_LP_SET,
ENUM_MTK_SLT_FUNC_NUM
};
struct PARAM_MTK_SLT_LP_TEST_STRUCT {
enum ENUM_MTK_LP_TEST_MODE rLpTestMode;
uint32_t u4BcnRcvNum;
};
struct PARAM_MTK_SLT_TR_TEST_STRUCT {
enum ENUM_PARAM_NETWORK_TYPE
rNetworkType; /* Network Type OFDM5G or OFDM2.4G */
uint32_t u4FixedRate; /* Fixed Rate including BW */
};
struct PARAM_MTK_SLT_INITIAL_STRUCT {
uint8_t aucTargetMacAddr[PARAM_MAC_ADDR_LEN];
uint16_t u2SiteID;
};
struct PARAM_MTK_SLT_TEST_STRUCT {
enum ENUM_MTK_SLT_FUNC_IDX rSltFuncIdx;
uint32_t u4Length; /* Length of structure, */
/* including myself */
uint32_t u4FuncInfoLen; /* Include following content */
/* field and myself */
union {
struct PARAM_MTK_SLT_INITIAL_STRUCT rMtkInitTest;
struct PARAM_MTK_SLT_LP_TEST_STRUCT rMtkLpTest;
struct PARAM_MTK_SLT_TR_TEST_STRUCT rMtkTRTest;
} unFuncInfoContent;
};
#endif
#if CFG_SUPPORT_MSP
/* Should by chip */
struct PARAM_SEC_CONFIG {
u_int8_t fgWPIFlag;
u_int8_t fgRV;
u_int8_t fgIKV;
u_int8_t fgRKV;
u_int8_t fgRCID;
u_int8_t fgRCA1;
u_int8_t fgRCA2;
u_int8_t fgEvenPN;
uint8_t ucKeyID;
uint8_t ucMUARIdx;
uint8_t ucCipherSuit;
uint8_t aucReserved[1];
};
struct PARAM_TX_CONFIG {
uint8_t aucPA[6];
u_int8_t fgSW;
u_int8_t fgDisRxHdrTran;
u_int8_t fgAADOM;
uint8_t ucPFMUIdx;
uint16_t u2PartialAID;
u_int8_t fgTIBF;
u_int8_t fgTEBF;
u_int8_t fgIsHT;
u_int8_t fgIsVHT;
u_int8_t fgMesh;
u_int8_t fgBAFEn;
u_int8_t fgCFAck;
u_int8_t fgRdgBA;
u_int8_t fgRDG;
u_int8_t fgIsPwrMgt;
u_int8_t fgRTS;
u_int8_t fgSMPS;
u_int8_t fgTxopPS;
u_int8_t fgDonotUpdateIPSM;
u_int8_t fgSkipTx;
u_int8_t fgLDPC;
u_int8_t fgIsQoS;
u_int8_t fgIsFromDS;
u_int8_t fgIsToDS;
u_int8_t fgDynBw;
u_int8_t fgIsAMSDUCrossLG;
u_int8_t fgCheckPER;
u_int8_t fgIsGID63;
uint8_t aucReserved[1];
#if (1 /* CFG_SUPPORT_VHT == 1 */)
u_int8_t fgVhtTIBF;
u_int8_t fgVhtTEBF;
u_int8_t fgVhtLDPC;
uint8_t aucReserved2[1];
#endif
};
struct PARAM_KEY_CONFIG {
uint8_t aucKey[32];
};
struct PARAM_PEER_RATE_INFO {
uint8_t ucCounterMPDUFail;
uint8_t ucCounterMPDUTx;
uint8_t ucRateIdx;
uint8_t ucReserved[1];
uint16_t au2RateCode[AUTO_RATE_NUM];
};
struct PARAM_PEER_BA_CONFIG {
uint8_t ucBaEn;
uint8_t ucRsv[3];
uint32_t u4BaWinSize;
};
struct PARAM_ANT_ID_CONFIG {
uint8_t ucANTIDSts0;
uint8_t ucANTIDSts1;
uint8_t ucANTIDSts2;
uint8_t ucANTIDSts3;
};
struct PARAM_PEER_CAP {
struct PARAM_ANT_ID_CONFIG rAntIDConfig;
uint8_t ucTxPowerOffset;
uint8_t ucCounterBWSelector;
uint8_t ucChangeBWAfterRateN;
uint8_t ucFrequencyCapability;
uint8_t ucSpatialExtensionIndex;
u_int8_t fgG2;
u_int8_t fgG4;
u_int8_t fgG8;
u_int8_t fgG16;
uint8_t ucMMSS;
uint8_t ucAmpduFactor;
uint8_t ucReserved[1];
};
struct PARAM_PEER_RX_COUNTER_ALL {
uint8_t ucRxRcpi0;
uint8_t ucRxRcpi1;
uint8_t ucRxRcpi2;
uint8_t ucRxRcpi3;
uint8_t ucRxCC0;
uint8_t ucRxCC1;
uint8_t ucRxCC2;
uint8_t ucRxCC3;
u_int8_t fgRxCCSel;
uint8_t ucCeRmsd;
uint8_t aucReserved[2];
};
struct PARAM_PEER_TX_COUNTER_ALL {
uint16_t u2Rate1TxCnt;
uint16_t u2Rate1FailCnt;
uint16_t u2Rate2OkCnt;
uint16_t u2Rate3OkCnt;
uint16_t u2CurBwTxCnt;
uint16_t u2CurBwFailCnt;
uint16_t u2OtherBwTxCnt;
uint16_t u2OtherBwFailCnt;
};
struct PARAM_HW_WLAN_INFO {
uint32_t u4Index;
struct PARAM_TX_CONFIG rWtblTxConfig;
struct PARAM_SEC_CONFIG rWtblSecConfig;
struct PARAM_KEY_CONFIG rWtblKeyConfig;
struct PARAM_PEER_RATE_INFO rWtblRateInfo;
struct PARAM_PEER_BA_CONFIG rWtblBaConfig;
struct PARAM_PEER_CAP rWtblPeerCap;
struct PARAM_PEER_RX_COUNTER_ALL rWtblRxCounter;
struct PARAM_PEER_TX_COUNTER_ALL rWtblTxCounter;
};
struct HW_TX_AMPDU_METRICS {
uint32_t u4TxSfCnt;
uint32_t u4TxAckSfCnt;
uint32_t u2TxAmpduCnt;
uint32_t u2TxRspBaCnt;
uint16_t u2TxEarlyStopCnt;
uint16_t u2TxRange1AmpduCnt;
uint16_t u2TxRange2AmpduCnt;
uint16_t u2TxRange3AmpduCnt;
uint16_t u2TxRange4AmpduCnt;
uint16_t u2TxRange5AmpduCnt;
uint16_t u2TxRange6AmpduCnt;
uint16_t u2TxRange7AmpduCnt;
uint16_t u2TxRange8AmpduCnt;
uint16_t u2TxRange9AmpduCnt;
};
struct HW_MIB_COUNTER {
uint32_t u4RxFcsErrCnt;
uint32_t u4RxFifoFullCnt;
uint32_t u4RxMpduCnt;
uint32_t u4RxAMPDUCnt;
uint32_t u4RxTotalByte;
uint32_t u4RxValidAMPDUSF;
uint32_t u4RxValidByte;
uint32_t u4ChannelIdleCnt;
uint32_t u4RxVectorDropCnt;
uint32_t u4DelimiterFailedCnt;
uint32_t u4RxVectorMismatchCnt;
uint32_t u4MdrdyCnt;
uint32_t u4CCKMdrdyCnt;
uint32_t u4OFDMLGMixMdrdy;
uint32_t u4OFDMGreenMdrdy;
uint32_t u4PFDropCnt;
uint32_t u4RxLenMismatchCnt;
uint32_t u4PCcaTime;
uint32_t u4SCcaTime;
uint32_t u4CcaNavTx;
uint32_t u4PEDTime;
uint32_t u4BeaconTxCnt;
uint32_t au4BaMissedCnt[BSSID_NUM];
uint32_t au4RtsTxCnt[BSSID_NUM];
uint32_t au4FrameRetryCnt[BSSID_NUM];
uint32_t au4FrameRetry2Cnt[BSSID_NUM];
uint32_t au4RtsRetryCnt[BSSID_NUM];
uint32_t au4AckFailedCnt[BSSID_NUM];
};
struct HW_MIB2_COUNTER {
uint32_t u4Tx40MHzCnt;
uint32_t u4Tx80MHzCnt;
uint32_t u4Tx160MHzCnt;
};
struct PARAM_HW_MIB_INFO {
uint32_t u4Index;
struct HW_MIB_COUNTER rHwMibCnt;
struct HW_MIB2_COUNTER rHwMib2Cnt;
struct HW_TX_AMPDU_METRICS rHwTxAmpduMts;
};
#endif
struct PARAM_CMD_GET_TXPWR_TBL {
uint8_t ucDbdcIdx;
uint8_t ucCenterCh;
struct POWER_LIMIT tx_pwr_tbl[TXPWR_TBL_NUM];
};
enum ENUM_TXPWR_TYPE {
DSSS = 0,
OFDM_24G,
OFDM_5G,
HT20,
HT40,
VHT20,
VHT40,
VHT80,
VHT160,
TXPWR_TYPE_NUM,
};
enum ENUM_STREAM_MODE {
STREAM_SISO,
STREAM_CDD,
STREAM_MIMO,
STREAM_NUM
};
struct txpwr_table_entry {
char mcs[STREAM_NUM][8];
unsigned int idx;
};
struct txpwr_table {
char phy_mode[8];
struct txpwr_table_entry *tables;
int n_tables;
};
/*--------------------------------------------------------------*/
/*! \brief For Fixed Rate Configuration (Registry) */
/*--------------------------------------------------------------*/
enum ENUM_REGISTRY_FIXED_RATE {
FIXED_RATE_NONE,
FIXED_RATE_1M,
FIXED_RATE_2M,
FIXED_RATE_5_5M,
FIXED_RATE_11M,
FIXED_RATE_6M,
FIXED_RATE_9M,
FIXED_RATE_12M,
FIXED_RATE_18M,
FIXED_RATE_24M,
FIXED_RATE_36M,
FIXED_RATE_48M,
FIXED_RATE_54M,
FIXED_RATE_MCS0_20M_800NS,
FIXED_RATE_MCS1_20M_800NS,
FIXED_RATE_MCS2_20M_800NS,
FIXED_RATE_MCS3_20M_800NS,
FIXED_RATE_MCS4_20M_800NS,
FIXED_RATE_MCS5_20M_800NS,
FIXED_RATE_MCS6_20M_800NS,
FIXED_RATE_MCS7_20M_800NS,
FIXED_RATE_MCS0_20M_400NS,
FIXED_RATE_MCS1_20M_400NS,
FIXED_RATE_MCS2_20M_400NS,
FIXED_RATE_MCS3_20M_400NS,
FIXED_RATE_MCS4_20M_400NS,
FIXED_RATE_MCS5_20M_400NS,
FIXED_RATE_MCS6_20M_400NS,
FIXED_RATE_MCS7_20M_400NS,
FIXED_RATE_MCS0_40M_800NS,
FIXED_RATE_MCS1_40M_800NS,
FIXED_RATE_MCS2_40M_800NS,
FIXED_RATE_MCS3_40M_800NS,
FIXED_RATE_MCS4_40M_800NS,
FIXED_RATE_MCS5_40M_800NS,
FIXED_RATE_MCS6_40M_800NS,
FIXED_RATE_MCS7_40M_800NS,
FIXED_RATE_MCS32_800NS,
FIXED_RATE_MCS0_40M_400NS,
FIXED_RATE_MCS1_40M_400NS,
FIXED_RATE_MCS2_40M_400NS,
FIXED_RATE_MCS3_40M_400NS,
FIXED_RATE_MCS4_40M_400NS,
FIXED_RATE_MCS5_40M_400NS,
FIXED_RATE_MCS6_40M_400NS,
FIXED_RATE_MCS7_40M_400NS,
FIXED_RATE_MCS32_400NS,
FIXED_RATE_NUM
};
enum ENUM_BT_CMD {
BT_CMD_PROFILE = 0,
BT_CMD_UPDATE,
BT_CMD_NUM
};
enum ENUM_BT_PROFILE {
BT_PROFILE_CUSTOM = 0,
BT_PROFILE_SCO,
BT_PROFILE_ACL,
BT_PROFILE_MIXED,
BT_PROFILE_NO_CONNECTION,
BT_PROFILE_NUM
};
struct PTA_PROFILE {
enum ENUM_BT_PROFILE eBtProfile;
union {
uint8_t aucBTPParams[BT_PROFILE_PARAM_LEN];
/* 0: sco reserved slot time,
* 1: sco idle slot time,
* 2: acl throughput,
* 3: bt tx power,
* 4: bt rssi
* 5: VoIP interval
* 6: BIT(0) Use this field, BIT(1) 0 apply single/ 1 dual PTA
* setting.
*/
uint32_t au4Btcr[4];
} u;
};
struct PTA_IPC {
uint8_t ucCmd;
uint8_t ucLen;
union {
struct PTA_PROFILE rProfile;
uint8_t aucBTPParams[BT_PROFILE_PARAM_LEN];
} u;
};
/*--------------------------------------------------------------*/
/*! \brief CFG80211 Scan Request Container */
/*--------------------------------------------------------------*/
struct PARAM_SCAN_REQUEST_EXT {
struct PARAM_SSID rSsid;
uint32_t u4IELength;
uint8_t *pucIE;
};
struct PARAM_SCAN_REQUEST_ADV {
uint32_t u4SsidNum;
struct PARAM_SSID rSsid[CFG_SCAN_SSID_MAX_NUM];
uint8_t ucScanType;
uint32_t u4IELength;
uint8_t *pucIE;
uint32_t u4ChannelNum;
struct RF_CHANNEL_INFO
arChannel[MAXIMUM_OPERATION_CHANNEL_LIST];
uint8_t ucScnFuncMask;
uint8_t aucRandomMac[MAC_ADDR_LEN];
};
/*--------------------------------------------------------------*/
/*! \brief CFG80211 Scheduled Scan Request Container */
/*--------------------------------------------------------------*/
#if CFG_SUPPORT_SCHED_SCAN
struct PARAM_SCHED_SCAN_REQUEST {
uint32_t u4SsidNum; /* passed in the probe_reqs */
struct PARAM_SSID arSsid[CFG_SCAN_HIDDEN_SSID_MAX_NUM];
uint32_t u4MatchSsidNum; /* matched for a scan request */
struct PARAM_SSID arMatchSsid[CFG_SCAN_SSID_MATCH_MAX_NUM];
int32_t ai4RssiThold[CFG_SCAN_SSID_MATCH_MAX_NUM];
int32_t i4MinRssiThold;
uint8_t ucScnFuncMask;
uint8_t aucRandomMac[MAC_ADDR_LEN];
uint8_t aucRandomMacMask[MAC_ADDR_LEN];
uint32_t u4IELength;
uint8_t *pucIE;
uint16_t u2ScanInterval; /* in second */
uint8_t ucChnlNum;
uint8_t *pucChannels;
};
#endif /* CFG_SUPPORT_SCHED_SCAN */
#if CFG_SUPPORT_PASSPOINT
struct PARAM_HS20_SET_BSSID_POOL {
u_int8_t fgIsEnable;
uint8_t ucNumBssidPool;
uint8_t arBSSID[8][PARAM_MAC_ADDR_LEN];
};
#endif /* CFG_SUPPORT_PASSPOINT */
#if CFG_SUPPORT_SNIFFER
struct PARAM_CUSTOM_MONITOR_SET_STRUCT {
uint8_t ucEnable;
uint8_t ucBand;
uint8_t ucPriChannel;
uint8_t ucSco;
uint8_t ucChannelWidth;
uint8_t ucChannelS1;
uint8_t ucChannelS2;
uint8_t aucResv[9];
};
#endif
#if CFG_AUTO_CHANNEL_SEL_SUPPORT
/*--------------------------------------------------------------*/
/*! \brief MTK Auto Channel Selection related Container */
/*--------------------------------------------------------------*/
enum ENUM_SAFE_CH_MASK {
ENUM_SAFE_CH_MASK_BAND_2G4 = 0,
ENUM_SAFE_CH_MASK_BAND_5G_0 = 1,
ENUM_SAFE_CH_MASK_BAND_5G_1 = 2,
ENUM_SAFE_CH_MASK_BAND_5G_2 = 3,
ENUM_SAFE_CH_MASK_MAX_NUM = 4,
};
struct LTE_SAFE_CHN_INFO {
/* ENUM_SAFE_CH_MASK_MAX_NUM */
uint32_t au4SafeChannelBitmask[ENUM_SAFE_CH_MASK_MAX_NUM];
};
struct PARAM_CHN_LOAD_INFO {
/* Per-CHN Load */
uint8_t ucChannel;
uint16_t u2APNum;
uint32_t u4Dirtiness;
uint8_t ucReserved;
};
struct PARAM_CHN_RANK_INFO {
uint8_t ucChannel;
uint32_t u4Dirtiness;
uint8_t ucReserved;
};
struct PARAM_GET_CHN_INFO {
uint8_t ucRoleIndex;
struct LTE_SAFE_CHN_INFO rLteSafeChnList;
struct PARAM_CHN_LOAD_INFO rEachChnLoad[MAX_CHN_NUM];
u_int8_t fgDataReadyBit;
struct PARAM_CHN_RANK_INFO rChnRankList[MAX_CHN_NUM];
uint8_t aucReserved[3];
};
struct PARAM_PREFER_CHN_INFO {
uint8_t ucChannel;
uint16_t u2APNumScore;
uint8_t ucReserved;
uint32_t u4Dirtiness;
};
#endif
struct UMAC_STAT2_GET {
uint16_t u2PleRevPgHif0Group0;
uint16_t u2PleRevPgCpuGroup2;
uint16_t u2PseRevPgHif0Group0;
uint16_t u2PseRevPgHif1Group1;
uint16_t u2PseRevPgCpuGroup2;
uint16_t u2PseRevPgLmac0Group3;
uint16_t u2PseRevPgLmac1Group4;
uint16_t u2PseRevPgLmac2Group5;
uint16_t u2PseRevPgPleGroup6;
uint16_t u2PleSrvPgHif0Group0;
uint16_t u2PleSrvPgCpuGroup2;
uint16_t u2PseSrvPgHif0Group0;
uint16_t u2PseSrvPgHif1Group1;
uint16_t u2PseSrvPgCpuGroup2;
uint16_t u2PseSrvPgLmac0Group3;
uint16_t u2PseSrvPgLmac1Group4;
uint16_t u2PseSrvPgLmac2Group5;
uint16_t u2PseSrvPgPleGroup6;
uint16_t u2PleTotalPageNum;
uint16_t u2PleFreePageNum;
uint16_t u2PleFfaNum;
uint16_t u2PseTotalPageNum;
uint16_t u2PseFreePageNum;
uint16_t u2PseFfaNum;
};
struct CNM_STATUS {
uint8_t fgDbDcModeEn;
uint8_t ucChNumB0;
uint8_t ucChNumB1;
uint8_t usReserved;
};
struct CNM_CH_LIST {
uint8_t ucChNum[4];
};
struct EXT_CMD_SER_T {
uint8_t ucAction;
uint8_t ucSerSet;
uint8_t ucDbdcIdx;
uint8_t aucReserve[1];
};
#if (CFG_SUPPORT_TXPOWER_INFO == 1)
struct HAL_FRAME_POWER_SET_T {
int8_t icFramePowerDbm;
};
struct FRAME_POWER_CONFIG_INFO_T {
struct HAL_FRAME_POWER_SET_T
aicFramePowerConfig[TXPOWER_RATE_NUM];
};
struct PARAM_TXPOWER_ALL_RATE_POWER_INFO_T {
uint8_t ucTxPowerCategory;
uint8_t ucBandIdx;
uint8_t ucChBand;
uint8_t ucReserved;
/* Rate power info */
struct FRAME_POWER_CONFIG_INFO_T rRatePowerInfo;
/* tx Power Max/Min Limit info */
int8_t icPwrMaxBnd;
int8_t icPwrMinBnd;
uint8_t ucReserved2;
};
#endif
#if CFG_SUPPORT_OSHARE
/* OSHARE Mode */
#define MAX_OSHARE_MODE_LENGTH 64
#define OSHARE_MODE_MAGIC_CODE 0x18
#define OSHARE_MODE_CMD_V1 0x1
struct OSHARE_MODE_T {
uint8_t cmdVersion; /* CMD version = OSHARE_MODE_CMD_V1 */
uint8_t cmdType; /* 1-set 0-query */
uint8_t magicCode; /* It's like CRC, OSHARE_MODE_MAGIC_CODE */
uint8_t cmdBufferLen; /* buffer length <= 64 */
uint8_t buffer[MAX_OSHARE_MODE_LENGTH];
};
struct OSHARE_MODE_SETTING_V1_T {
uint8_t osharemode; /* 0: disable, 1:Enable */
uint8_t reserved[7];
};
#endif
struct PARAM_WIFI_LOG_LEVEL_UI {
uint32_t u4Version;
uint32_t u4Module;
uint32_t u4Enable;
};
struct PARAM_WIFI_LOG_LEVEL {
uint32_t u4Version;
uint32_t u4Module;
uint32_t u4Level;
};
enum ENUM_WIFI_LOG_LEVEL_VERSION_T {
ENUM_WIFI_LOG_LEVEL_VERSION_V1 = 1,
ENUM_WIFI_LOG_LEVEL_VERSION_NUM
};
enum ENUM_WIFI_LOG_LEVEL_T {
ENUM_WIFI_LOG_LEVEL_DEFAULT = 0,
ENUM_WIFI_LOG_LEVEL_MORE,
ENUM_WIFI_LOG_LEVEL_EXTREME,
ENUM_WIFI_LOG_LEVEL_NUM
};
enum ENUM_WIFI_LOG_MODULE_T {
ENUM_WIFI_LOG_MODULE_DRIVER = 0,
ENUM_WIFI_LOG_MODULE_FW,
ENUM_WIFI_LOG_MODULE_NUM,
};
enum ENUM_WIFI_LOG_LEVEL_SUPPORT_T {
ENUM_WIFI_LOG_LEVEL_SUPPORT_DISABLE = 0,
ENUM_WIFI_LOG_LEVEL_SUPPORT_ENABLE,
ENUM_WIFI_LOG_LEVEL_SUPPORT_NUM
};
struct PARAM_GET_IPI_INFO_T {
uint32_t u4DurInSec;
uint32_t u4Interval;
uint32_t u4Reserved;
};
#if CFG_SUPPORT_GET_MCS_INFO
struct PARAM_TX_MCS_INFO {
uint8_t ucStaIndex;
uint16_t au2TxRateCode[MCS_INFO_SAMPLE_CNT];
uint8_t aucTxRatePer[MCS_INFO_SAMPLE_CNT];
};
#endif
#ifdef CFG_SUPPORT_TIME_MEASURE
/* TM/11mc */
struct PARAM_TM_T {
uint8_t ucTmCategory;
uint8_t aucRttPeerAddr[6]; /* TM peer address */
uint16_t u2NumOfValidResult;
uint8_t ucFTMNum;
uint8_t ucMinDeltaIn100US;
uint8_t ucFTMBandwidth;
uint8_t fgFtmEnable;
uint32_t u4DistanceCm;
uint64_t u8DistStdevSq;
uint64_t u8Tsf;
int64_t i8ClockOffset;
int64_t i8ClkRateDiffRatioIn10ms;
uint64_t u8LastToA;
};
#endif
#if IS_ENABLED(CFG_CCN7_SAP_EASYMESH)
struct T_MULTI_AP_BSS_METRICS_RESP {
uint32_t uIfIndex;
uint8_t mBssid[MAC_ADDR_LEN];
uint8_t u8Channel;
uint16_t u16AssocStaNum;
uint8_t u8ChanUtil;
int32_t iChanNoise;
};
struct T_MULTI_AP_STA_ASSOC_METRICS_RESP {
uint32_t uIfIndex;
uint8_t mBssid[MAC_ADDR_LEN];
uint8_t mStaMac[MAC_ADDR_LEN];
uint64_t uBytesSent;
uint64_t uBytesRecv;
uint64_t uPktsSent;
uint64_t uPktsRecv;
uint64_t uPktsTxError;
uint32_t uPktsRxError;
uint32_t uRetransCnt;
int32_t iRssi;
uint32_t uPhyTxRate;
uint32_t uPhyRxRate;
uint32_t uAssocRate;
uint32_t uDeltaTime;
};
/* TODO: check this value in user-space */
#define STA_CAP_LEN_MAX 512
struct T_MULTI_AP_STA_EVENT_NOTIFY {
uint8_t mStaMac[MAC_ADDR_LEN];
uint8_t mBssid[MAC_ADDR_LEN];
uint8_t u8Status;
uint32_t uCapLen;
uint8_t u8Cap[STA_CAP_LEN_MAX];
} __KAL_ATTRIB_PACKED__;
#define SAP_HTCAP_TXSTREAMNUM_OFFSET 0
#define SAP_HTCAP_RXSTREAMNUM_OFFSET 2
#define SAP_HTCAP_SGIFOR20M_OFFSET 4
#define SAP_HTCAP_SGIFOR40M_OFFSET 5
#define SAP_HTCAP_HTFOR40M_OFFSET 6
#define SAP_HTCAP_RESERVED BIT(7)
#define SAP_VHTCAP_TXSTREAMNUM_OFFSET 0
#define SAP_VHTCAP_RXSTREAMNUM_OFFSET 3
#define SAP_VHTCAP_SGIFOR80M_OFFSET 6
#define SAP_VHTCAP_SGIFOR160M_OFFSET 7
#define SAP_VHTCAP_VHTFORDUAL80M_OFFSET 8
#define SAP_VHTCAP_VHTFOR160M_OFFSET 9
#define SAP_VHTCAP_SUBEAMFORMER_OFFSET 10
#define SAP_VHTCAP_MUBEAMFORMER_OFFSET 11
#define SAP_VHTCAP_RESERVED BITS(12, 15)
#define SAP_HECAP_TXSTREAMNUM_OFFSET 0
#define SAP_HECAP_RXSTREAMNUM_OFFSET 3
#define SAP_HECAP_HEFORDUAL80M_OFFSET 6
#define SAP_HECAP_HEFOR160M_OFFSET 7
#define SAP_HECAP_SUBEAMFORMER_OFFSET 8
#define SAP_HECAP_MUBEAMFORMER_OFFSET 9
#define SAP_HECAP_ULMUMIMO_OFFSET 10
#define SAP_HECAP_ULMUMIMOOFDMA_OFFSET 11
#define SAP_HECAP_DLMUMIMOOFDMA_OFFSET 12
#define SAP_HECAP_ULOFDMA_OFFSET 13
#define SAP_HECAP_DLOFDMA_OFFSET 14
#define SAP_HECAP_RESERVED BIT(15)
#define SAP_UNASSOC_METRICS_STA_MAX 16
struct T_MULTI_AP_BSS_STATUS_REPORT {
uint32_t uIfIndex;
uint8_t mBssid[MAC_ADDR_LEN];
uint32_t uStatus;
uint8_t u8Channel;
uint8_t u8OperClass;
uint8_t u8Txpower;
uint32_t uBand;
uint8_t uHtCap;
uint16_t u16VhtTxMcs;
uint16_t u16VhtRxMcs;
uint16_t u16VhtCap;
uint8_t u8HeMcsNum;
uint8_t u8HeMcs[16];
uint16_t u16HeCap;
} __KAL_ATTRIB_PACKED__;
struct T_MULTI_AP_STA_UNASSOC_METRICS {
uint8_t mStaMac[MAC_ADDR_LEN];
uint32_t uTime;
int32_t iRssi;
uint8_t u8Channel;
};
struct T_MULTI_AP_STA_UNASSOC_METRICS_RESP {
uint32_t uIfIndex;
uint8_t mBssid[MAC_ADDR_LEN];
uint8_t u8StaNum;
struct T_MULTI_AP_STA_UNASSOC_METRICS
tMetrics[SAP_UNASSOC_METRICS_STA_MAX];
};
#endif /* CFG_CCN7_SAP_EASYMESH */
#if IS_ENABLED(CFG_AP_80211K_SUPPORT)
#define ELEM_LEN_MAX 1024
struct T_MULTI_AP_BEACON_METRICS_RESP {
uint8_t mStaMac[MAC_ADDR_LEN];
uint8_t u8ElemNum;
uint32_t uElemLen;
uint8_t uElem[ELEM_LEN_MAX];
};
struct PARAM_CUSTOM_BCN_REP_REQ_STRUCT {
uint8_t aucPeerMac[MAC_ADDR_LEN];
uint16_t u2Repetition;
uint16_t u2MeasureDuration;
uint8_t ucOperClass;
uint8_t aucBssid[MAC_ADDR_LEN];
uint8_t aucSsid[PARAM_MAX_LEN_SSID + 1];
uint8_t ucChannel;
uint16_t u2RandomInterval;
uint8_t ucMeasurementMode;
uint8_t ucReportCondition;
uint8_t ucReportReference;
uint8_t ucReportingDetail;
uint8_t ucNumberOfRequest;
uint8_t ucRequestElemList[ELEM_LEN_MAX];
uint8_t ucNumberOfAPChanReport;
uint8_t ucChanList[MAX_CHN_NUM];
};
#endif /* CFG_AP_80211K_SUPPORT */
#if IS_ENABLED(CFG_AP_80211V_SUPPORT)
struct T_MAC_CHAN {
uint8_t mMac[MAC_ADDR_LEN];
uint32_t u4BSSIDInfo;
uint8_t ucOperClass;
uint8_t ucChannel;
uint8_t ucPhyType;
uint8_t ucPreference;
};
#define BCN_REQ_PARAM_REQUESTMODE_OFFSET 0
#define BCN_REQ_PARAM_DISIMMINENT_OFFSET 1
#define BCN_REQ_PARAM_ABRIDGED_OFFSET 2
#define BCN_REQ_PARAM_RESERVED BITS(3, 7)
#define STEER_STA_NUM_MAX 32
#define DEST_BSSID_NUM_MAX 32
struct T_MULTI_AP_STA_STEERING_REQ {
uint32_t uIfindex;
uint8_t mBssid[MAC_ADDR_LEN];
uint8_t tReqParam;
uint16_t u16OpptyWin;
uint16_t u16DisassocTimer;
uint8_t u8StaNum;
uint8_t tStaList[MAC_ADDR_LEN][STEER_STA_NUM_MAX];
uint8_t u8BssidNum;
struct T_MAC_CHAN tBssidList[DEST_BSSID_NUM_MAX];
};
struct T_MULTI_AP_STA_STEERING_REPORT {
uint8_t mStaMac[MAC_ADDR_LEN];
uint8_t mBssid[MAC_ADDR_LEN];
uint8_t u8Status;
uint8_t mDestBssid[MAC_ADDR_LEN];
};
struct PARAM_CUSTOM_BTM_REQ_STRUCT {
uint8_t aucPeerMac[MAC_ADDR_LEN];
uint8_t ucEssImm;
uint16_t u2DisassocTimer;
uint8_t ucAbridged;
uint8_t ucValidityInterval;
uint8_t ucTargetBSSIDCnt;
uint8_t aucSessionUrl[256];
struct T_MAC_CHAN ucTargetBSSIDList[DEST_BSSID_NUM_MAX];
};
#endif /* CFG_AP_80211V_SUPPORT */
/*******************************************************************************
* P U B L I C D A T A
*******************************************************************************
*/
/*******************************************************************************
* P R I V A T E D A T A
*******************************************************************************
*/
/*******************************************************************************
* M A C R O S
*******************************************************************************
*/
/*******************************************************************************
* F U N C T I O N D E C L A R A T I O N S
*******************************************************************************
*/
/*--------------------------------------------------------------*/
/* Routines to set parameters or query information. */
/*--------------------------------------------------------------*/
/***** Routines in wlan_oid.c *****/
uint32_t
wlanoidQueryNetworkTypesSupported(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryNetworkTypeInUse(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNetworkTypeInUse(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryBssid(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetBssidListScan(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetBssidListScanExt(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetBssidListScanAdv(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryBssidList(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetBssid(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetConnect(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if CFG_SUPPORT_CFG80211_AUTH
uint32_t
wlanoidSendAuthAssoc(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer, IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t
wlanoidSetSsid(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQuerySsid(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryInfrastructureMode(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetInfrastructureMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryAuthMode(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetAuthMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if 0
uint32_t
wlanoidQueryPrivacyFilter(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetPrivacyFilter(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t
wlanoidSetEncryptionStatus(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryEncryptionStatus(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetAddWep(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetRemoveWep(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetAddKey(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetRemoveKey(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetReloadDefaults(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetTest(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryCapability(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryFrequency(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetFrequency(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryAtimWindow(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetAtimWindow(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetChannel(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidRssiMonitor(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryRssi(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanQueryRssi(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen,
IN uint8_t fgIsOid);
uint32_t
wlanoidQueryRssiTrigger(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetRssiTrigger(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryRtsThreshold(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetRtsThreshold(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQuery802dot11PowerSaveProfile(IN struct ADAPTER
*prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSet802dot11PowerSaveProfile(IN struct ADAPTER
*prAdapter,
IN void *prSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryPmkid(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetPmkid(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQuerySupportedRates(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryDesiredRates(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetDesiredRates(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryPermanentAddr(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuf,
IN uint32_t u4QueryBufLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryCurrentAddr(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuf,
IN uint32_t u4QueryBufLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryPermanentAddr(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuf,
IN uint32_t u4QueryBufLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryLinkSpeed(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#if CFG_SUPPORT_QA_TOOL
#if CFG_SUPPORT_BUFFER_MODE
uint32_t wlanoidSetEfusBufferMode(IN struct ADAPTER
*prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidConnacSetEfusBufferMode(IN struct ADAPTER
*prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
/* #if (CFG_EEPROM_PAGE_ACCESS == 1) */
uint32_t
wlanoidQueryProcessAccessEfuseRead(IN struct ADAPTER
*prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryProcessAccessEfuseWrite(IN struct ADAPTER
*prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryEfuseFreeBlock(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryGetTxPower(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
/*#endif*/
#endif /* CFG_SUPPORT_BUFFER_MODE */
uint32_t
wlanoidQueryRxStatistics(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidBssInfoBasic(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidDevInfoActive(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidManualAssoc(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if CFG_SUPPORT_TX_BF
uint32_t
wlanoidTxBfAction(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidMuMimoAction(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidStaRecUpdate(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidStaRecBFUpdate(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif /* CFG_SUPPORT_TX_BF */
#endif /* CFG_SUPPORT_QA_TOOL */
#if CFG_SUPPORT_CAL_RESULT_BACKUP_TO_HOST
uint32_t
wlanoidSendCalBackupV2Cmd(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen);
uint32_t
wlanoidSetCalBackup(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryCalBackupV2(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#endif
uint32_t
wlanoidQueryMcrRead(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryMemDump(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetMcrWrite(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryDrvMcrRead(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetDrvMcrWrite(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQuerySwCtrlRead(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetSwCtrlWrite(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetChipConfig(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryChipConfig(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetKeyCfg(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryEepromRead(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetEepromWrite(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryRfTestRxStatus(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryRfTestTxStatus(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryOidInterfaceVersion(IN struct ADAPTER
*prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryVendorId(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryMulticastList(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetMulticastList(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryRcvError(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryRcvNoBuffer(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryRcvCrcError(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryStatistics(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryBugReport(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#ifdef LINUX
uint32_t
wlanoidQueryStatisticsForLinux(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#endif
uint32_t
wlanoidQueryMediaStreamMode(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetMediaStreamMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryRcvOk(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryXmitOk(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryXmitError(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryXmitOneCollision(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryXmitMoreCollisions(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryXmitMaxCollisions(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetCurrentPacketFilter(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidSetPacketFilter(struct ADAPTER *prAdapter,
void *pvPacketFiltr,
u_int8_t fgIsOid,
void *pvSetBuffer,
uint32_t u4SetBufferLen);
uint32_t
wlanoidQueryCurrentPacketFilter(IN struct ADAPTER
*prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetAcpiDevicePowerState(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryAcpiDevicePowerState(IN struct ADAPTER
*prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetDisassociate(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryFragThreshold(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetFragThreshold(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryAdHocMode(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetAdHocMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryBeaconInterval(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetBeaconInterval(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetCurrentAddr(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if CFG_TCP_IP_CHKSUM_OFFLOAD
uint32_t
wlanoidSetCSUMOffload(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif /* CFG_TCP_IP_CHKSUM_OFFLOAD */
uint32_t
wlanoidSetNetworkAddress(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryMaxFrameSize(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryMaxTotalSize(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetCurrentLookahead(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
/* RF Test related APIs */
uint32_t
wlanoidRftestSetTestMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidRftestSetTestIcapMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidRftestSetAbortTestMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidRftestQueryAutoTest(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidRftestSetAutoTest(IN struct ADAPTER *prAdapter,
OUT void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidExtRfTestICapStart(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidExtRfTestICapStatus(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
void wlanoidRfTestICapRawDataProc(IN struct ADAPTER *prAdapter,
uint32_t u4CapStartAddr,
uint32_t u4TotalBufferSize);
#if CFG_SUPPORT_WAPI
uint32_t
wlanoidSetWapiMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetWapiAssocInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetWapiKey(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
#if CFG_SUPPORT_WPS2
uint32_t
wlanoidSetWSCAssocInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
#if CFG_ENABLE_WAKEUP_ON_LAN
uint32_t
wlanoidSetAddWakeupPattern(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetRemoveWakeupPattern(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryEnableWakeup(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *u4QueryInfoLen);
uint32_t
wlanoidSetEnableWakeup(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t
wlanoidSetWiFiWmmPsTest(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetTxAmpdu(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetAddbaReject(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNvramRead(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNvramWrite(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryCfgSrcType(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryEepromType(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetCountryCode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetScanMacOui(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanSendMemDumpCmd(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen);
#if CFG_SLT_SUPPORT
uint32_t
wlanoidQuerySLTStatus(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidUpdateSLTMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
#if CFG_SUPPORT_ADVANCE_CONTROL
uint32_t
wlanoidAdvCtrl(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanAdvCtrl(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen,
IN uint8_t fgIsOid);
#endif
uint32_t
wlanoidQueryWlanInfo(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanQueryWlanInfo(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen,
IN uint8_t fgIsOid);
uint32_t
wlanoidQueryMibInfo(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetFwLog2Host(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if 0
uint32_t
wlanoidSetNoaParam(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetOppPsParam(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetUApsdParam(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
/*----------------------------------------------------------------------------*/
uint32_t
wlanoidSetBT(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryBT(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetTxPower(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if 0
uint32_t
wlanoidQueryBtSingleAntenna(
IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetBtSingleAntenna(
IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetPta(
IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryPta(
IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#endif
#if CFG_ENABLE_WIFI_DIRECT
uint32_t
wlanoidSetP2pMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t
wlanoidSetDefaultKey(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetGtkRekeyData(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if CFG_SUPPORT_SCHED_SCAN
uint32_t
wlanoidSetStartSchedScan(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetStopSchedScan(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif /* CFG_SUPPORT_SCHED_SCAN */
#if CFG_M0VE_BA_TO_DRIVER
uint32_t wlanoidResetBAScoreboard(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen);
#endif
#if CFG_SUPPORT_BATCH_SCAN
uint32_t
wlanoidSetBatchScanReq(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryBatchScanResult(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#endif
#if CFG_SUPPORT_PASSPOINT
uint32_t
wlanoidSetHS20Info(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetInterworkingInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetRoamingConsortiumIEInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetHS20BssidPool(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif /* CFG_SUPPORT_PASSPOINT */
#if CFG_SUPPORT_SNIFFER
uint32_t wlanoidSetMonitor(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t
wlanoidNotifyFwSuspend(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryCnm(
IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidPacketKeepAlive(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if CFG_SUPPORT_DBDC
uint32_t
wlanoidSetDbdcEnable(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif /*#if CFG_SUPPORT_DBDC*/
uint32_t
wlanoidQuerySetTxTargetPower(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if (CFG_SUPPORT_DFS_MASTER == 1)
uint32_t
wlanoidQuerySetRddReport(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQuerySetRadarDetectMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
#if CFG_AUTO_CHANNEL_SEL_SUPPORT
uint32_t
wlanoidQueryLteSafeChannel(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanCalculateAllChannelDirtiness(IN struct ADAPTER *prAdapter);
void
wlanInitChnLoadInfoChannelList(IN struct ADAPTER *prAdapter);
uint8_t
wlanGetChannelIndex(IN uint8_t channel);
uint8_t
wlanGetChannelNumFromIndex(IN uint8_t ucIdx);
void
wlanSortChannel(IN struct ADAPTER *prAdapter);
#endif
uint32_t
wlanoidLinkDown(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if CFG_SUPPORT_CSI
uint32_t
wlanoidSetCSIControl(
IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t
wlanoidGetTxPwrTbl(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidDisableTdlsPs(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidSetSer(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidSerExtCmd(IN struct ADAPTER *prAdapter,
uint8_t ucAction,
uint8_t ucSerSet,
uint8_t ucDbdcIdx);
#if CFG_SUPPORT_NCHO
#define NCHO_CMD_MAX_LENGTH 128
uint32_t
wlanoidSetNchoRoamTrigger(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoRoamTrigger(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoRoamDelta(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoRoamDelta(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoRoamScnPeriod(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoRoamScnPeriod(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoRoamScnChnl(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoRoamScnChnl(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoRoamScnCtrl(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoRoamScnCtrl(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoScnChnlTime(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoScnChnlTime(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoScnHomeTime(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoScnHomeTime(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoScnHomeAwayTime(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoScnHomeAwayTime(IN struct ADAPTER
*prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoScnNprobes(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoScnNprobes(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidGetNchoReassocInfo(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSendNchoActionFrameStart(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSendNchoActionFrameEnd(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidSetNchoWesMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoWesMode(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoBand(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoBand(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoDfsScnMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoDfsScnMode(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetNchoEnable(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidQueryNchoEnable(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#endif /* CFG_SUPPORT_NCHO */
uint32_t
wlanoidAbortScan(IN struct ADAPTER *prAdapter,
OUT void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t wlanoidSetDrvSer(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidSetAmsduNum(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidSetAmsduSize(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
/* Show Consys debug information*/
uint32_t
wlanoidShowPdmaInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer, IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidShowPseInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer, IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidShowPleInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer, IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidShowCsrInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer, IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t
wlanoidShowDmaschInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer, IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
/* end Show Consys debug information*/
#if (CFG_SUPPORT_TXPOWER_INFO == 1)
uint32_t
wlanoidQueryTxPowerInfo(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t wlanoidSetDrvRoamingPolicy(IN struct ADAPTER
*prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if CFG_SUPPORT_OSHARE
uint32_t
wlanoidSetOshareMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t
wlanoidQueryWifiLogLevelSupport(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryWifiLogLevel(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidSetWifiLogLevel(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#if CFG_SUPPORT_LOWLATENCY_MODE
uint32_t
wlanoidSetLowLatencyMode(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif /* CFG_SUPPORT_LOWLATENCY_MODE */
uint32_t
wlanoidGetIpiInfo(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t wlanoidUpdateFtIes(IN struct ADAPTER *prAdapter, IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidSync11kCapabilities(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidSendNeighborRequest(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidSendBTMQuery(IN struct ADAPTER *prAdapter, IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
uint32_t wlanoidPktProcessIT(struct ADAPTER *prAdapter, void *pvBuffer,
uint32_t u4BufferLen, uint32_t *pu4InfoLen);
uint32_t wlanoidFwEventIT(struct ADAPTER *prAdapter, void *pvBuffer,
uint32_t u4BufferLen, uint32_t *pu4InfoLen);
uint32_t wlanoidTspecOperation(IN struct ADAPTER *prAdapter, IN void *pvBuffer,
IN uint32_t u4BufferLen,
OUT uint32_t *pu4InfoLen);
uint32_t wlanoidDumpUapsdSetting(struct ADAPTER *prAdapter, void *pvBuffer,
uint32_t u4BufferLen, uint32_t *pu4InfoLen);
#if CFG_SUPPORT_ANT_DIV
uint32_t
wlanoidAntDivCfg(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
uint32_t
wlanoidQueryCoexGetInfo(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t
wlanoidQueryCoexIso(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#ifdef CFG_GET_TEMPURATURE
uint32_t
wlanoidGetTemperature(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#endif
#if (CFG_SUPPORT_GET_MCS_INFO == 1)
uint32_t
wlanoidTxQueryMcsInfo(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#endif
#ifdef CFG_SUPPORT_TIME_MEASURE
uint32_t wlanoidQueryStartFtm(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t wlanoidQueryFtm(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer,
IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
uint32_t wlanoidSetEnableTmr(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
#if CFG_SUPPORT_MDNS_OFFLOAD
uint32_t wlanoidSetMdnsCmdToFw(IN struct ADAPTER *prAdapter,
IN void *pvSetBuffer,
IN uint32_t u4SetBufferLen,
OUT uint32_t *pu4SetInfoLen);
#endif
#if IS_ENABLED(CFG_AP_80211K_SUPPORT)
uint32_t wlanoidSendBeaconReportRequest(struct ADAPTER *prAdapter,
void *pvSetBuffer,
uint32_t u4SetBufferLen,
uint32_t *pu4SetInfoLen);
#endif /* CFG_AP_80211K_SUPPORT */
#if IS_ENABLED(CFG_AP_80211V_SUPPORT)
uint32_t wlanoidSendBTMRequest(struct ADAPTER *prAdapter,
void *pvSetBuffer, uint32_t u4SetBufferLen,
uint32_t *pu4SetInfoLen);
#endif /* CFG_AP_80211V_SUPPORT */
#if (CFG_SUPPORT_TSF_SYNC == 1)
uint32_t
wlanoidLatchTSF(IN struct ADAPTER *prAdapter,
IN void *pvQueryBuffer, IN uint32_t u4QueryBufferLen,
OUT uint32_t *pu4QueryInfoLen);
#endif
#endif /* _WLAN_OID_H */