blob: 08f2cce1eac45719538298e8a8118cddf2fb7aee [file] [log] [blame]
/******************************************************************************
*
* 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_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
#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
#define EFUSE_ADDR_MAX 0x3BF /* Based on EEPROM layout 20160120 */
#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)
#define DEFAULT_EFUSE_MACADDR_OFFSET 4
/* For MT6632 */
#define EFUSE_CONTENT_SIZE 16
#define EFUSE_BLOCK_SIZE 16
#define EEPROM_SIZE 1184
#define MAX_EEPROM_BUFFER_SIZE 1200
#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 */
/*******************************************************************************
* D A T A T Y P E S
********************************************************************************
*/
/*----------------------------------------------------------------------------*/
/* Parameters of User Configuration which match to NDIS5.1 */
/*----------------------------------------------------------------------------*/
/* NDIS_802_11_AUTHENTICATION_MODE */
typedef enum _ENUM_PARAM_AUTH_MODE_T {
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_NUM /*!< Upper bound, not real case */
} ENUM_PARAM_AUTH_MODE_T, *P_ENUM_PARAM_AUTH_MODE_T;
/* NDIS_802_11_ENCRYPTION_STATUS *//* Encryption types */
typedef enum _ENUM_WEP_STATUS_T {
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
} ENUM_PARAM_ENCRYPTION_STATUS_T, *P_ENUM_PARAM_ENCRYPTION_STATUS_T;
typedef UINT_8 PARAM_MAC_ADDRESS[PARAM_MAC_ADDR_LEN];
typedef UINT_32 PARAM_KEY_INDEX;
typedef UINT_64 PARAM_KEY_RSC;
typedef INT_32 PARAM_RSSI;
typedef UINT_32 PARAM_FRAGMENTATION_THRESHOLD;
typedef UINT_32 PARAM_RTS_THRESHOLD;
typedef UINT_8 PARAM_RATES[PARAM_MAX_LEN_RATES];
typedef UINT_8 PARAM_RATES_EX[PARAM_MAX_LEN_RATES_EX];
typedef enum _ENUM_PARAM_PHY_TYPE_T {
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_PARAM_PHY_TYPE_T, *P_ENUM_PARAM_PHY_TYPE_T;
typedef enum _ENUM_PARAM_OP_MODE_T {
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 */
} ENUM_PARAM_OP_MODE_T, *P_ENUM_PARAM_OP_MODE_T;
typedef struct _PARAM_SSID_T {
UINT_32 u4SsidLen; /*!< SSID length in bytes. Zero length is broadcast(any) SSID */
UINT_8 aucSsid[PARAM_MAX_LEN_SSID];
} PARAM_SSID_T, *P_PARAM_SSID_T;
typedef struct _PARAM_CONNECT_T {
UINT_32 u4SsidLen; /*!< SSID length in bytes. Zero length is broadcast(any) SSID */
UINT_8 *pucSsid;
UINT_8 *pucBssid;
UINT_32 u4CenterFreq;
} PARAM_CONNECT_T, *P_PARAM_CONNECT_T;
/* This is enum defined for user to select an AdHoc Mode */
typedef enum _ENUM_PARAM_AD_HOC_MODE_T {
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_PARAM_AD_HOC_MODE_T, *P_ENUM_PARAM_AD_HOC_MODE_T;
typedef enum _ENUM_PARAM_MEDIA_STATE_T {
PARAM_MEDIA_STATE_CONNECTED,
PARAM_MEDIA_STATE_DISCONNECTED,
PARAM_MEDIA_STATE_TO_BE_INDICATED /* for following MSDN re-association behavior */
} ENUM_PARAM_MEDIA_STATE_T, *P_ENUM_PARAM_MEDIA_STATE_T;
typedef enum _ENUM_PARAM_NETWORK_TYPE_T {
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 */
} ENUM_PARAM_NETWORK_TYPE_T, *P_ENUM_PARAM_NETWORK_TYPE_T;
typedef struct _PARAM_NETWORK_TYPE_LIST {
UINT_32 NumberOfItems; /*!< At least 1 */
ENUM_PARAM_NETWORK_TYPE_T eNetworkType[1];
} PARAM_NETWORK_TYPE_LIST, *PPARAM_NETWORK_TYPE_LIST;
typedef enum _ENUM_PARAM_PRIVACY_FILTER_T {
PRIVACY_FILTER_ACCEPT_ALL,
PRIVACY_FILTER_8021xWEP,
PRIVACY_FILTER_NUM
} ENUM_PARAM_PRIVACY_FILTER_T, *P_ENUM_PARAM_PRIVACY_FILTER_T;
typedef enum _ENUM_RELOAD_DEFAULTS {
ENUM_RELOAD_WEP_KEYS
} PARAM_RELOAD_DEFAULTS, *P_PARAM_RELOAD_DEFAULTS;
typedef struct _PARAM_PM_PACKET_PATTERN {
UINT_32 Priority; /* Importance of the given pattern. */
UINT_32 Reserved; /* Context information for transports. */
UINT_32 MaskSize; /* Size in bytes of the pattern mask. */
UINT_32 PatternOffset; /* Offset from beginning of this */
/* structure to the pattern bytes. */
UINT_32 PatternSize; /* Size in bytes of the pattern. */
UINT_32 PatternFlags; /* Flags (TBD). */
} PARAM_PM_PACKET_PATTERN, *P_PARAM_PM_PACKET_PATTERN;
/* 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 */
typedef enum _ENUM_TP_TEST_MODE_T {
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
} ENUM_TP_TEST_MODE_T, *P_ENUM_TP_TEST_MODE_T;
/*--------------------------------------------------------------*/
/*! \brief Struct definition to indicate specific event. */
/*--------------------------------------------------------------*/
typedef enum _ENUM_STATUS_TYPE_T {
ENUM_STATUS_TYPE_AUTHENTICATION,
ENUM_STATUS_TYPE_MEDIA_STREAM_MODE,
ENUM_STATUS_TYPE_CANDIDATE_LIST,
ENUM_STATUS_TYPE_NUM /*!< Upper bound, not real case */
} ENUM_STATUS_TYPE_T, *P_ENUM_STATUS_TYPE_T;
typedef struct _PARAM_802_11_CONFIG_FH_T {
UINT_32 u4Length; /*!< Length of structure */
UINT_32 u4HopPattern; /*!< Defined as 802.11 */
UINT_32 u4HopSet; /*!< to one if non-802.11 */
UINT_32 u4DwellTime; /*!< In unit of Kusec */
} PARAM_802_11_CONFIG_FH_T, *P_PARAM_802_11_CONFIG_FH_T;
typedef struct _PARAM_802_11_CONFIG_T {
UINT_32 u4Length; /*!< Length of structure */
UINT_32 u4BeaconPeriod; /*!< In unit of Kusec */
UINT_32 u4ATIMWindow; /*!< In unit of Kusec */
UINT_32 u4DSConfig; /*!< Channel frequency in unit of kHz */
PARAM_802_11_CONFIG_FH_T rFHConfig;
} PARAM_802_11_CONFIG_T, *P_PARAM_802_11_CONFIG_T;
typedef struct _PARAM_STATUS_INDICATION_T {
ENUM_STATUS_TYPE_T eStatusType;
} PARAM_STATUS_INDICATION_T, *P_PARAM_STATUS_INDICATION_T;
typedef struct _PARAM_AUTH_REQUEST_T {
UINT_32 u4Length; /*!< Length of this struct */
PARAM_MAC_ADDRESS arBssid;
UINT_32 u4Flags; /*!< Definitions are as follows */
} PARAM_AUTH_REQUEST_T, *P_PARAM_AUTH_REQUEST_T;
typedef struct _PARAM_AUTH_EVENT_T {
PARAM_STATUS_INDICATION_T rStatus;
PARAM_AUTH_REQUEST_T arRequest[1];
} PARAM_AUTH_EVENT_T, *P_PARAM_AUTH_EVENT_T;
/*! \brief Capabilities, privacy, rssi and IEs of each BSSID */
typedef struct _PARAM_BSSID_EX_T {
UINT_32 u4Length; /*!< Length of structure */
PARAM_MAC_ADDRESS arMacAddress; /*!< BSSID */
UINT_8 Reserved[2];
PARAM_SSID_T rSsid; /*!< SSID */
UINT_32 u4Privacy; /*!< Need WEP encryption */
PARAM_RSSI rRssi; /*!< in dBm */
ENUM_PARAM_NETWORK_TYPE_T eNetworkTypeInUse;
PARAM_802_11_CONFIG_T rConfiguration;
ENUM_PARAM_OP_MODE_T eOpMode;
PARAM_RATES_EX rSupportedRates;
UINT_32 u4IELength;
UINT_8 aucIEs[1];
} PARAM_BSSID_EX_T, *P_PARAM_BSSID_EX_T;
typedef struct _PARAM_BSSID_LIST_EX {
UINT_32 u4NumberOfItems; /*!< at least 1 */
PARAM_BSSID_EX_T arBssid[1];
} PARAM_BSSID_LIST_EX_T, *P_PARAM_BSSID_LIST_EX_T;
typedef struct _PARAM_WEP_T {
UINT_32 u4Length; /*!< Length of structure */
UINT_32 u4KeyIndex; /*!< 0: pairwise key, others group keys */
UINT_32 u4KeyLength; /*!< Key length in bytes */
UINT_8 aucKeyMaterial[32]; /*!< Key content by above setting */
} PARAM_WEP_T, *P_PARAM_WEP_T;
/*! \brief Key mapping of BSSID */
typedef struct _PARAM_KEY_T {
UINT_32 u4Length; /*!< Length of structure */
UINT_32 u4KeyIndex; /*!< KeyID */
UINT_32 u4KeyLength; /*!< Key length in bytes */
PARAM_MAC_ADDRESS arBSSID; /*!< MAC address */
PARAM_KEY_RSC rKeyRSC;
UINT_8 ucBssIdx;
UINT_8 ucCipher;
UINT_8 aucKeyMaterial[32]; /*!< Key content by above setting */
/* Following add to change the original windows structure */
} PARAM_KEY_T, *P_PARAM_KEY_T;
typedef struct _PARAM_REMOVE_KEY_T {
UINT_32 u4Length; /*!< Length of structure */
UINT_32 u4KeyIndex; /*!< KeyID */
PARAM_MAC_ADDRESS arBSSID; /*!< MAC address */
UINT_8 ucBssIdx;
} PARAM_REMOVE_KEY_T, *P_PARAM_REMOVE_KEY_T;
/*! \brief Default key */
typedef struct _PARAM_DEFAULT_KEY_T {
UINT_8 ucKeyID;
UINT_8 ucUnicast;
UINT_8 ucMulticast;
UINT_8 ucBssIdx;
} PARAM_DEFAULT_KEY_T, *P_PARAM_DEFAULT_KEY_T;
#if CFG_SUPPORT_WAPI
typedef enum _ENUM_KEY_TYPE {
ENUM_WPI_PAIRWISE_KEY = 0,
ENUM_WPI_GROUP_KEY
} ENUM_KEY_TYPE;
typedef enum _ENUM_WPI_PROTECT_TYPE {
ENUM_WPI_NONE,
ENUM_WPI_RX,
ENUM_WPI_TX,
ENUM_WPI_RX_TX
} ENUM_WPI_PROTECT_TYPE;
typedef struct _PARAM_WPI_KEY_T {
ENUM_KEY_TYPE eKeyType;
ENUM_WPI_PROTECT_TYPE eDirection;
UINT_8 ucKeyID;
UINT_8 aucRsv[3];
UINT_8 aucAddrIndex[12];
UINT_32 u4LenWPIEK;
UINT_8 aucWPIEK[256];
UINT_32 u4LenWPICK;
UINT_8 aucWPICK[256];
UINT_8 aucPN[16];
} PARAM_WPI_KEY_T, *P_PARAM_WPI_KEY_T;
#endif
typedef enum _PARAM_POWER_MODE {
Param_PowerModeCAM,
Param_PowerModeMAX_PSP,
Param_PowerModeFast_PSP,
Param_PowerModeMax /* Upper bound, not real case */
} PARAM_POWER_MODE, *PPARAM_POWER_MODE;
typedef enum _PARAM_DEVICE_POWER_STATE {
ParamDeviceStateUnspecified = 0,
ParamDeviceStateD0,
ParamDeviceStateD1,
ParamDeviceStateD2,
ParamDeviceStateD3,
ParamDeviceStateMaximum
} PARAM_DEVICE_POWER_STATE, *PPARAM_DEVICE_POWER_STATE;
#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
typedef struct _PARAM_POWER_MODE_T {
UINT_8 ucBssIdx;
PARAM_POWER_MODE ePowerMode;
} PARAM_POWER_MODE_T, *P_PARAM_POWER_MODE_T;
#if CFG_SUPPORT_802_11D
/*! \brief The enumeration definitions for OID_IPN_MULTI_DOMAIN_CAPABILITY */
typedef enum _PARAM_MULTI_DOMAIN_CAPABILITY {
ParamMultiDomainCapDisabled,
ParamMultiDomainCapEnabled
} PARAM_MULTI_DOMAIN_CAPABILITY, *P_PARAM_MULTI_DOMAIN_CAPABILITY;
#endif
typedef struct _COUNTRY_STRING_ENTRY {
UINT_8 aucCountryCode[2];
UINT_8 aucEnvironmentCode[2];
} COUNTRY_STRING_ENTRY, *P_COUNTRY_STRING_ENTRY;
/* 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)
typedef enum _ENUM_POWER_SAVE_PROFILE_T {
ENUM_PSP_CONTINUOUS_ACTIVE = 0,
ENUM_PSP_CONTINUOUS_POWER_SAVE,
ENUM_PSP_FAST_SWITCH,
ENUM_PSP_NUM
} ENUM_POWER_SAVE_PROFILE_T, *PENUM_POWER_SAVE_PROFILE_T;
/*--------------------------------------------------------------*/
/*! \brief Set/Query testing type. */
/*--------------------------------------------------------------*/
typedef struct _PARAM_802_11_TEST_T {
UINT_32 u4Length;
UINT_32 u4Type;
union {
PARAM_AUTH_EVENT_T AuthenticationEvent;
PARAM_RSSI RssiTrigger;
} u;
} PARAM_802_11_TEST_T, *P_PARAM_802_11_TEST_T;
/*--------------------------------------------------------------*/
/*! \brief Set/Query authentication and encryption capability. */
/*--------------------------------------------------------------*/
typedef struct _PARAM_AUTH_ENCRYPTION_T {
ENUM_PARAM_AUTH_MODE_T eAuthModeSupported;
ENUM_PARAM_ENCRYPTION_STATUS_T eEncryptStatusSupported;
} PARAM_AUTH_ENCRYPTION_T, *P_PARAM_AUTH_ENCRYPTION_T;
typedef struct _PARAM_CAPABILITY_T {
UINT_32 u4Length;
UINT_32 u4Version;
UINT_32 u4NoOfPMKIDs;
UINT_32 u4NoOfAuthEncryptPairsSupported;
PARAM_AUTH_ENCRYPTION_T arAuthenticationEncryptionSupported[1];
} PARAM_CAPABILITY_T, *P_PARAM_CAPABILITY_T;
typedef UINT_8 PARAM_PMKID_VALUE[16];
typedef struct _PARAM_BSSID_INFO_T {
PARAM_MAC_ADDRESS arBSSID;
PARAM_PMKID_VALUE arPMKID;
} PARAM_BSSID_INFO_T, *P_PARAM_BSSID_INFO_T;
typedef struct _PARAM_PMKID_T {
UINT_32 u4Length;
UINT_32 u4BSSIDInfoCount;
PARAM_BSSID_INFO_T arBSSIDInfo[1];
} PARAM_PMKID_T, *P_PARAM_PMKID_T;
/*! \brief PMKID candidate lists. */
typedef struct _PARAM_PMKID_CANDIDATE_T {
PARAM_MAC_ADDRESS arBSSID;
UINT_32 u4Flags;
} PARAM_PMKID_CANDIDATE_T, *P_PARAM_PMKID_CANDIDATE_T;
/* #ifdef LINUX */
typedef struct _PARAM_PMKID_CANDIDATE_LIST_T {
UINT_32 u4Version; /*!< Version */
UINT_32 u4NumCandidates; /*!< How many candidates follow */
PARAM_PMKID_CANDIDATE_T arCandidateList[1];
} PARAM_PMKID_CANDIDATE_LIST_T, *P_PARAM_PMKID_CANDIDATE_LIST_T;
/* #endif */
#define NL80211_KCK_LEN 16
#define NL80211_KEK_LEN 16
#define NL80211_REPLAY_CTR_LEN 8
#define NL80211_KEYRSC_LEN 8
typedef struct _PARAM_GTK_REKEY_DATA {
UINT_8 aucKek[NL80211_KEK_LEN];
UINT_8 aucKck[NL80211_KCK_LEN];
UINT_8 aucReplayCtr[NL80211_REPLAY_CTR_LEN];
UINT_8 ucBssIndex;
UINT_8 ucRekeyMode;
UINT_8 ucCurKeyId;
UINT_8 ucRsv;
UINT_32 u4Proto;
UINT_32 u4PairwiseCipher;
UINT_32 u4GroupCipher;
UINT_32 u4KeyMgmt;
UINT_32 u4MgmtGroupCipher;
} PARAM_GTK_REKEY_DATA, *P_PARAM_GTK_REKEY_DATA;
typedef struct _PARAM_CUSTOM_MCR_RW_STRUCT_T {
UINT_32 u4McrOffset;
UINT_32 u4McrData;
} PARAM_CUSTOM_MCR_RW_STRUCT_T, *P_PARAM_CUSTOM_MCR_RW_STRUCT_T;
/* CMD_COEX_CTRL & EVENT_COEX_CTRL */
/************************************************/
/* UINT_32 u4SubCmd : Coex Ctrl Sub Command */
/* UINT_8 aucBuffer : Reserve for Sub Command */
/* Data Structure */
/************************************************/
struct PARAM_COEX_CTRL {
UINT_32 u4SubCmd;
UINT_8 aucBuffer[64];
};
/* Isolation Structure */
/************************************************/
/* UINT_32 u4IsoPath : WF Path (WF0/WF1) */
/* UINT_32 u4Channel : WF Channel */
/* UINT_32 u4Band : WF Band (Band0/Band1)(Not used now) */
/* UINT_32 u4Isolation : Isolation value */
/************************************************/
struct PARAM_COEX_ISO_DETECT {
UINT_32 u4IsoPath;
UINT_32 u4Channel;
/*UINT_32 u4Band;*/
UINT_32 u4Isolation;
};
#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
*/
typedef struct _PARAM_CAL_BACKUP_STRUCT_V2_T {
UINT_8 ucReason;
UINT_8 ucAction;
UINT_8 ucNeedResp;
UINT_8 ucFragNum;
UINT_8 ucRomRam;
UINT_32 u4ThermalValue;
UINT_32 u4Address;
UINT_32 u4Length;
UINT_32 u4RemainLength;
} PARAM_CAL_BACKUP_STRUCT_V2_T, *P_PARAM_CAL_BACKUP_STRUCT_V2_T;
#endif
#if CFG_SUPPORT_QA_TOOL
#if CFG_SUPPORT_BUFFER_MODE
typedef struct _BIN_CONTENT_T {
UINT_16 u2Addr;
UINT_8 ucValue;
UINT_8 ucReserved;
} BIN_CONTENT_T, *P_BIN_CONTENT_T;
typedef struct _PARAM_CUSTOM_EFUSE_BUFFER_MODE_T {
UINT_8 ucSourceMode;
UINT_8 ucCount;
UINT_8 ucCmdType;
UINT_8 ucReserved;
UINT_8 aBinContent[MAX_EEPROM_BUFFER_SIZE];
} PARAM_CUSTOM_EFUSE_BUFFER_MODE_T, *P_PARAM_CUSTOM_EFUSE_BUFFER_MODE_T;
/*#if (CFG_EEPROM_PAGE_ACCESS == 1)*/
typedef struct _PARAM_CUSTOM_ACCESS_EFUSE_T {
UINT_32 u4Address;
UINT_32 u4Valid;
UINT_8 aucData[16];
} PARAM_CUSTOM_ACCESS_EFUSE_T, *P_PARAM_CUSTOM_ACCESS_EFUSE_T;
typedef struct _PARAM_CUSTOM_EFUSE_FREE_BLOCK_T {
UINT_8 ucGetFreeBlock;
UINT_8 aucReserved[3];
} PARAM_CUSTOM_EFUSE_FREE_BLOCK_T, *P_PARAM_CUSTOM_EFUSE_FREE_BLOCK_T;
typedef struct _PARAM_CUSTOM_GET_TX_POWER_T {
UINT_8 ucTxPwrType;
UINT_8 ucCenterChannel;
UINT_8 ucDbdcIdx; /* 0:Band 0, 1: Band1 */
UINT_8 ucBand; /* 0:G-band 1: A-band*/
UINT_8 ucReserved[4];
} PARAM_CUSTOM_GET_TX_POWER_T, *P_PARAM_CUSTOM_GET_TX_POWER_T;
/*#endif*/
#endif /* CFG_SUPPORT_BUFFER_MODE */
typedef struct _PARAM_CUSTOM_SET_TX_TARGET_POWER_T {
INT_8 cTxPwr2G4Cck; /* signed, in unit of 0.5dBm */
INT_8 cTxPwr2G4Dsss; /* signed, in unit of 0.5dBm */
UINT_8 ucTxTargetPwr; /* Tx target power base for all*/
UINT_8 ucReserved;
INT_8 cTxPwr2G4OFDM_BPSK;
INT_8 cTxPwr2G4OFDM_QPSK;
INT_8 cTxPwr2G4OFDM_16QAM;
INT_8 cTxPwr2G4OFDM_Reserved;
INT_8 cTxPwr2G4OFDM_48Mbps;
INT_8 cTxPwr2G4OFDM_54Mbps;
INT_8 cTxPwr2G4HT20_BPSK;
INT_8 cTxPwr2G4HT20_QPSK;
INT_8 cTxPwr2G4HT20_16QAM;
INT_8 cTxPwr2G4HT20_MCS5;
INT_8 cTxPwr2G4HT20_MCS6;
INT_8 cTxPwr2G4HT20_MCS7;
INT_8 cTxPwr2G4HT40_BPSK;
INT_8 cTxPwr2G4HT40_QPSK;
INT_8 cTxPwr2G4HT40_16QAM;
INT_8 cTxPwr2G4HT40_MCS5;
INT_8 cTxPwr2G4HT40_MCS6;
INT_8 cTxPwr2G4HT40_MCS7;
INT_8 cTxPwr5GOFDM_BPSK;
INT_8 cTxPwr5GOFDM_QPSK;
INT_8 cTxPwr5GOFDM_16QAM;
INT_8 cTxPwr5GOFDM_Reserved;
INT_8 cTxPwr5GOFDM_48Mbps;
INT_8 cTxPwr5GOFDM_54Mbps;
INT_8 cTxPwr5GHT20_BPSK;
INT_8 cTxPwr5GHT20_QPSK;
INT_8 cTxPwr5GHT20_16QAM;
INT_8 cTxPwr5GHT20_MCS5;
INT_8 cTxPwr5GHT20_MCS6;
INT_8 cTxPwr5GHT20_MCS7;
INT_8 cTxPwr5GHT40_BPSK;
INT_8 cTxPwr5GHT40_QPSK;
INT_8 cTxPwr5GHT40_16QAM;
INT_8 cTxPwr5GHT40_MCS5;
INT_8 cTxPwr5GHT40_MCS6;
INT_8 cTxPwr5GHT40_MCS7;
} PARAM_CUSTOM_SET_TX_TARGET_POWER_T, *P_PARAM_CUSTOM_SET_TX_TARGET_POWER_T;
#if (CFG_SUPPORT_DFS_MASTER == 1)
typedef struct _PARAM_CUSTOM_SET_RDD_REPORT_T {
UINT_8 ucDbdcIdx; /* 0:Band 0, 1: Band1 */
} PARAM_CUSTOM_SET_RDD_REPORT_T, *P_PARAM_CUSTOM_SET_RDD_REPORT_T;
struct PARAM_CUSTOM_SET_RADAR_DETECT_MODE {
UINT_8 ucRadarDetectMode; /* 0:Switch channel, 1: Don't switch channel */
};
#endif
typedef struct _PARAM_CUSTOM_ACCESS_RX_STAT {
UINT_32 u4SeqNum;
UINT_32 u4TotalNum;
} PARAM_CUSTOM_ACCESS_RX_STAT, *P_PARAM_CUSTOM_ACCESS_RX_STAT;
/* Ext DevInfo Tag */
typedef enum _EXT_ENUM_DEVINFO_TAG_HANDLE_T {
DEV_INFO_ACTIVE = 0,
DEV_INFO_BSSID,
DEV_INFO_MAX_NUM
} EXT_ENUM_TAG_DEVINFO_HANDLE_T;
/* STA record TLV tag */
typedef enum _EXT_ENUM_STAREC_TAG_HANDLE_T {
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
} EXT_ENUM_TAG_STAREC_HANDLE_T;
#if CFG_SUPPORT_TX_BF
typedef enum _BF_ACTION_CATEGORY {
BF_SOUNDING_OFF = 0,
BF_SOUNDING_ON,
BF_HW_CTRL,
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
} BF_ACTION_CATEGORY;
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
};
typedef union _PFMU_PROFILE_TAG1 {
struct {
UINT_32 ucProfileID:7; /* [6:0] : 0 ~ 63 */
UINT_32 ucTxBf:1; /* [7] : 0: iBF, 1: eBF */
UINT_32 ucDBW:2; /* [9:8] : 0/1/2/3: DW20/40/80/160NC */
UINT_32 ucSU_MU:1; /* [10] : 0:SU, 1: MU */
UINT_32 ucInvalidProf:1; /* [11] : 0:default, 1: This profile number is invalid by SW */
UINT_32 ucRMSD:3; /* [14:12] : RMSD value from CE */
UINT_32 ucMemAddr1ColIdx:3; /* [17 : 15] : column index : 0 ~ 5 */
UINT_32 ucMemAddr1RowIdx:6; /* [23 : 18] : row index : 0 ~ 63 */
UINT_32 ucMemAddr2ColIdx:3; /* [26 : 24] : column index : 0 ~ 5 */
UINT_32 ucMemAddr2RowIdx:5; /* [31 : 27] : row index : 0 ~ 63 */
UINT_32 ucMemAddr2RowIdxMsb:1; /* [32] : MSB of row index */
UINT_32 ucMemAddr3ColIdx:3; /* [35 : 33] : column index : 0 ~ 5 */
UINT_32 ucMemAddr3RowIdx:6; /* [41 : 36] : row index : 0 ~ 63 */
UINT_32 ucMemAddr4ColIdx:3; /* [44 : 42] : column index : 0 ~ 5 */
UINT_32 ucMemAddr4RowIdx:6; /* [50 : 45] : row index : 0 ~ 63 */
UINT_32 ucReserved:1; /* [51] : Reserved */
UINT_32 ucNrow:2; /* [53 : 52] : Nrow */
UINT_32 ucNcol:2; /* [55 : 54] : Ncol */
UINT_32 ucNgroup:2; /* [57 : 56] : Ngroup */
UINT_32 ucLM:2; /* [59 : 58] : 0/1/2 */
UINT_32 ucCodeBook:2; /* [61:60] : Code book */
UINT_32 ucHtcExist:1; /* [62] : HtcExist */
UINT_32 ucReserved1:1; /* [63] : Reserved */
UINT_32 ucSNR_STS0:8; /* [71:64] : SNR_STS0 */
UINT_32 ucSNR_STS1:8; /* [79:72] : SNR_STS1 */
UINT_32 ucSNR_STS2:8; /* [87:80] : SNR_STS2 */
UINT_32 ucSNR_STS3:8; /* [95:88] : SNR_STS3 */
UINT_32 ucIBfLnaIdx:8; /* [103:96] : iBF LNA index */
} rField;
UINT_32 au4RawData[4];
} PFMU_PROFILE_TAG1, *P_PFMU_PROFILE_TAG1;
typedef union _PFMU_PROFILE_TAG2 {
struct {
UINT_32 u2SmartAnt:12; /* [11:0] : Smart Ant config */
UINT_32 ucReserved0:3; /* [14:12] : Reserved */
UINT_32 ucSEIdx:5; /* [19:15] : SE index */
UINT_32 ucRMSDThd:3; /* [22:20] : RMSD Threshold */
UINT_32 ucReserved1:1; /* [23] : Reserved */
UINT_32 ucMCSThL1SS:4; /* [27:24] : MCS TH long 1SS */
UINT_32 ucMCSThS1SS:4; /* [31:28] : MCS TH short 1SS */
UINT_32 ucMCSThL2SS:4; /* [35:32] : MCS TH long 2SS */
UINT_32 ucMCSThS2SS:4; /* [39:36] : MCS TH short 2SS */
UINT_32 ucMCSThL3SS:4; /* [43:40] : MCS TH long 3SS */
UINT_32 ucMCSThS3SS:4; /* [47:44] : MCS TH short 3SS */
UINT_32 uciBfTimeOut:8; /* [55:48] : iBF timeout limit */
UINT_32 ucReserved2:8; /* [63:56] : Reserved */
UINT_32 ucReserved3:8; /* [71:64] : Reserved */
UINT_32 ucReserved4:8; /* [79:72] : Reserved */
UINT_32 uciBfDBW:2; /* [81:80] : iBF desired DBW 0/1/2/3 : BW20/40/80/160NC */
UINT_32 uciBfNcol:2; /* [83:82] : iBF desired Ncol = 1 ~ 3 */
UINT_32 uciBfNrow:2; /* [85:84] : iBF desired Nrow = 1 ~ 4 */
UINT_32 u2Reserved5:10; /* [95:86] : Reserved */
} rField;
UINT_32 au4RawData[3];
} PFMU_PROFILE_TAG2, *P_PFMU_PROFILE_TAG2;
typedef union _PFMU_DATA {
struct {
UINT_32 u2Phi11:9;
UINT_32 ucPsi21:7;
UINT_32 u2Phi21:9;
UINT_32 ucPsi31:7;
UINT_32 u2Phi31:9;
UINT_32 ucPsi41:7;
UINT_32 u2Phi22:9;
UINT_32 ucPsi32:7;
UINT_32 u2Phi32:9;
UINT_32 ucPsi42:7;
UINT_32 u2Phi33:9;
UINT_32 ucPsi43:7;
UINT_32 u2dSNR00:4;
UINT_32 u2dSNR01:4;
UINT_32 u2dSNR02:4;
UINT_32 u2dSNR03:4;
UINT_32 u2Reserved:16;
} rField;
UINT_32 au4RawData[5];
} PFMU_DATA, *P_PFMU_DATA;
typedef struct _PROFILE_TAG_READ_T {
UINT_8 ucTxBfCategory;
UINT_8 ucProfileIdx;
BOOLEAN fgBfer;
UINT_8 ucRsv;
} PROFILE_TAG_READ_T, *P_PROFILE_TAG_READ_T;
typedef struct _PROFILE_TAG_WRITE_T {
UINT_8 ucTxBfCategory;
UINT_8 ucPfmuId;
UINT_8 ucBuffer[28];
} PROFILE_TAG_WRITE_T, *P_PROFILE_TAG_WRITE_T;
typedef struct _PROFILE_DATA_READ_T {
UINT_8 ucTxBfCategory;
UINT_8 ucPfmuIdx;
BOOLEAN fgBFer;
UINT_8 ucReserved[3];
UINT_8 ucSubCarrIdxLsb;
UINT_8 ucSubCarrIdxMsb;
} PROFILE_DATA_READ_T, *P_PROFILE_DATA_READ_T;
typedef struct _PROFILE_DATA_WRITE_T {
UINT_8 ucTxBfCategory;
UINT_8 ucPfmuIdx;
UINT_8 u2SubCarrIdxLsb;
UINT_8 u2SubCarrIdxMsb;
PFMU_DATA rTxBfPfmuData;
} PROFILE_DATA_WRITE_T, *P_PROFILE_DATA_WRITE_T;
typedef struct _PROFILE_PN_READ_T {
UINT_8 ucTxBfCategory;
UINT_8 ucPfmuIdx;
UINT_8 ucReserved[2];
} PROFILE_PN_READ_T, *P_PROFILE_PN_READ_T;
typedef struct _PROFILE_PN_WRITE_T {
UINT_8 ucTxBfCategory;
UINT_8 ucPfmuIdx;
UINT_16 u2bw;
UINT_8 ucBuf[32];
} PROFILE_PN_WRITE_T, *P_PROFILE_PN_WRITE_T;
typedef enum _BF_SOUNDING_MODE {
SU_SOUNDING = 0,
MU_SOUNDING,
SU_PERIODIC_SOUNDING,
MU_PERIODIC_SOUNDING
} BF_SOUNDING_MODE;
typedef struct _EXT_CMD_ETXBf_SND_PERIODIC_TRIGGER_CTRL_T {
UINT_8 ucCmdCategoryID;
UINT_8 ucSuMuSndMode;
UINT_8 ucWlanIdx;
UINT_32 u4SoundingInterval; /* By ms */
} EXT_CMD_ETXBf_SND_PERIODIC_TRIGGER_CTRL_T, *P_EXT_CMD_ETXBf_SND_PERIODIC_TRIGGER_CTRL_T;
typedef struct _EXT_CMD_ETXBf_MU_SND_PERIODIC_TRIGGER_CTRL_T {
UINT_8 ucCmdCategoryID;
UINT_8 ucSuMuSndMode;
UINT_8 ucWlanId[4];
UINT_8 ucStaNum;
UINT_32 u4SoundingInterval; /* By ms */
} EXT_CMD_ETXBf_MU_SND_PERIODIC_TRIGGER_CTRL_T, *P_EXT_CMD_ETXBf_MU_SND_PERIODIC_TRIGGER_CTRL_T;
/* Device information (Tag0) */
typedef struct _CMD_DEVINFO_ACTIVE_T {
UINT_16 u2Tag; /* Tag = 0x00 */
UINT_16 u2Length;
UINT_8 ucActive;
UINT_8 ucBandNum;
UINT_8 aucOwnMacAddr[6];
UINT_8 aucReserve[4];
} CMD_DEVINFO_ACTIVE_T, *P_CMD_DEVINFO_ACTIVE_T;
typedef struct _BSSINFO_BASIC_T {
/* Basic BSS information (Tag1) */
UINT_16 u2Tag; /* Tag = 0x01 */
UINT_16 u2Length;
UINT_32 u4NetworkType;
UINT_8 ucActive;
UINT_8 ucReserve0;
UINT_16 u2BcnInterval;
UINT_8 aucBSSID[6];
UINT_8 ucWmmIdx;
UINT_8 ucDtimPeriod;
UINT_8 ucBcMcWlanidx; /* indicate which wlan-idx used for MC/BC transmission. */
UINT_8 ucCipherSuit;
UINT_8 acuReserve[6];
} CMD_BSSINFO_BASIC_T, *P_CMD_BSSINFO_BASIC_T;
typedef struct _TXBF_PFMU_STA_INFO {
UINT_16 u2PfmuId; /* 0xFFFF means no access right for PFMU */
UINT_8 fgSU_MU; /* 0 : SU, 1 : MU */
UINT_8 fgETxBfCap; /* 0 : ITxBf, 1 : ETxBf */
UINT_8 ucSoundingPhy; /* 0: legacy, 1: OFDM, 2: HT, 4: VHT */
UINT_8 ucNdpaRate;
UINT_8 ucNdpRate;
UINT_8 ucReptPollRate;
UINT_8 ucTxMode; /* 0: legacy, 1: OFDM, 2: HT, 4: VHT */
UINT_8 ucNc;
UINT_8 ucNr;
UINT_8 ucCBW; /* 0 : 20M, 1 : 40M, 2 : 80M, 3 : 80 + 80M */
UINT_8 ucTotMemRequire;
UINT_8 ucMemRequire20M;
UINT_8 ucMemRow0;
UINT_8 ucMemCol0;
UINT_8 ucMemRow1;
UINT_8 ucMemCol1;
UINT_8 ucMemRow2;
UINT_8 ucMemCol2;
UINT_8 ucMemRow3;
UINT_8 ucMemCol3;
UINT_16 u2SmartAnt;
UINT_8 ucSEIdx;
UINT_8 uciBfTimeOut;
UINT_8 uciBfDBW;
UINT_8 uciBfNcol;
UINT_8 uciBfNrow;
UINT_8 aucReserved[3];
} TXBF_PFMU_STA_INFO, *P_TXBF_PFMU_STA_INFO;
typedef struct _STA_REC_UPD_ENTRY_T {
TXBF_PFMU_STA_INFO rTxBfPfmuStaInfo;
UINT_8 aucAddr[PARAM_MAC_ADDR_LEN];
UINT_8 ucAid;
UINT_8 ucRsv;
} STA_REC_UPD_ENTRY_T, *P_STA_REC_UPD_ENTRY_T;
typedef struct _STAREC_COMMON_T {
/* Basic STA record (Group0) */
UINT_16 u2Tag; /* Tag = 0x00 */
UINT_16 u2Length;
UINT_32 u4ConnectionType;
UINT_8 ucConnectionState;
UINT_8 ucIsQBSS;
UINT_16 u2AID;
UINT_8 aucPeerMacAddr[6];
UINT_16 u2Reserve1;
} CMD_STAREC_COMMON_T, *P_CMD_STAREC_COMMON_T;
typedef struct _CMD_STAREC_BF {
UINT_16 u2Tag; /* Tag = 0x02 */
UINT_16 u2Length;
TXBF_PFMU_STA_INFO rTxBfPfmuInfo;
UINT_8 ucReserved[3];
} CMD_STAREC_BF, *P_CMD_STAREC_BF;
/* QA tool: maunal assoc */
typedef struct _CMD_MANUAL_ASSOC_STRUCT_T {
/*
* UINT_8 ucBssIndex;
* UINT_8 ucWlanIdx;
* UINT_16 u2TotalElementNum;
* UINT_32 u4Reserve;
*/
/* extension */
UINT_16 u2Tag; /* Tag = 0x05 */
UINT_16 u2Length;
UINT_8 aucMac[MAC_ADDR_LEN];
UINT_8 ucType;
UINT_8 ucWtbl;
UINT_8 ucOwnmac;
UINT_8 ucMode;
UINT_8 ucBw;
UINT_8 ucNss;
UINT_8 ucPfmuId;
UINT_8 ucMarate;
UINT_8 ucSpeIdx;
UINT_8 ucaid;
} CMD_MANUAL_ASSOC_STRUCT_T, *P_CMD_MANUAL_ASSOC_STRUCT_T;
typedef struct _TX_BF_SOUNDING_START_T {
union {
EXT_CMD_ETXBf_SND_PERIODIC_TRIGGER_CTRL_T rExtCmdExtBfSndPeriodicTriggerCtrl;
EXT_CMD_ETXBf_MU_SND_PERIODIC_TRIGGER_CTRL_T rExtCmdExtBfMuSndPeriodicTriggerCtrl;
} rTxBfSounding;
} TX_BF_SOUNDING_START_T, *P_TX_BF_SOUNDING_START_T;
typedef struct _TX_BF_SOUNDING_STOP_T {
UINT_8 ucTxBfCategory;
UINT_8 ucSndgStop;
UINT_8 ucReserved[2];
} TX_BF_SOUNDING_STOP_T, *P_TX_BF_SOUNDING_STOP_T;
typedef struct _TX_BF_TX_APPLY_T {
UINT_8 ucTxBfCategory;
UINT_8 ucWlanId;
UINT_8 fgETxBf;
UINT_8 fgITxBf;
UINT_8 fgMuTxBf;
UINT_8 ucReserved[3];
} TX_BF_TX_APPLY_T, *P_TX_BF_TX_APPLY_T;
typedef struct _TX_BF_PFMU_MEM_ALLOC_T {
UINT_8 ucTxBfCategory;
UINT_8 ucSuMuMode;
UINT_8 ucWlanIdx;
UINT_8 ucReserved;
} TX_BF_PFMU_MEM_ALLOC_T, *P_TX_BF_PFMU_MEM_ALLOC_T;
typedef struct _TX_BF_PFMU_MEM_RLS_T {
UINT_8 ucTxBfCategory;
UINT_8 ucWlanId;
UINT_8 ucReserved[2];
} TX_BF_PFMU_MEM_RLS_T, *P_TX_BF_PFMU_MEM_RLS_T;
typedef union _PARAM_CUSTOM_TXBF_ACTION_STRUCT_T {
PROFILE_TAG_READ_T rProfileTagRead;
PROFILE_TAG_WRITE_T rProfileTagWrite;
PROFILE_DATA_READ_T rProfileDataRead;
PROFILE_DATA_WRITE_T rProfileDataWrite;
PROFILE_PN_READ_T rProfilePnRead;
PROFILE_PN_WRITE_T rProfilePnWrite;
TX_BF_SOUNDING_START_T rTxBfSoundingStart;
TX_BF_SOUNDING_STOP_T rTxBfSoundingStop;
TX_BF_TX_APPLY_T rTxBfTxApply;
TX_BF_PFMU_MEM_ALLOC_T rTxBfPfmuMemAlloc;
TX_BF_PFMU_MEM_RLS_T rTxBfPfmuMemRls;
} PARAM_CUSTOM_TXBF_ACTION_STRUCT_T, *P_PARAM_CUSTOM_TXBF_ACTION_STRUCT_T;
typedef struct _PARAM_CUSTOM_STA_REC_UPD_STRUCT_T {
UINT_8 ucBssIndex;
UINT_8 ucWlanIdx;
UINT_16 u2TotalElementNum;
UINT_8 ucAppendCmdTLV;
UINT_8 ucMuarIdx;
UINT_8 aucReserve[2];
UINT_32 *prStaRec;
CMD_STAREC_BF rCmdStaRecBf;
} PARAM_CUSTOM_STA_REC_UPD_STRUCT_T, *P_PARAM_CUSTOM_STA_REC_UPD_STRUCT_T;
typedef struct _BSSINFO_ARGUMENT_T {
UCHAR OwnMacIdx;
UINT_8 ucBssIndex;
UINT_8 Bssid[PARAM_MAC_ADDR_LEN];
UINT_8 ucBcMcWlanIdx;
UINT_8 ucPeerWlanIdx;
UINT_32 NetworkType;
UINT_32 u4ConnectionType;
UINT_8 CipherSuit;
UINT_8 Active;
UINT_8 WmmIdx;
UINT_32 u4BssInfoFeature;
UINT_8 aucBuffer[0];
} BSSINFO_ARGUMENT_T, *P_BSSINFO_ARGUMENT_T;
typedef struct _PARAM_CUSTOM_PFMU_TAG_READ_STRUCT_T {
PFMU_PROFILE_TAG1 ru4TxBfPFMUTag1;
PFMU_PROFILE_TAG2 ru4TxBfPFMUTag2;
} PARAM_CUSTOM_PFMU_TAG_READ_STRUCT_T, *P_PARAM_CUSTOM_PFMU_TAG_READ_STRUCT_T;
#if CFG_SUPPORT_MU_MIMO
typedef struct _PARAM_CUSTOM_SHOW_GROUP_TBL_ENTRY_STRUCT_T {
UINT_32 u4EventId;
UINT_8 index;
UINT_8 numUser:2;
UINT_8 BW:2;
UINT_8 NS0:2;
UINT_8 NS1:2;
/* UINT_8 NS2:1; */
/* UINT_8 NS3:1; */
UINT_8 PFIDUser0;
UINT_8 PFIDUser1;
/* UINT_8 PFIDUser2; */
/* UINT_8 PFIDUser3; */
BOOLEAN fgIsShortGI;
BOOLEAN fgIsUsed;
BOOLEAN fgIsDisable;
UINT_8 initMcsUser0:4;
UINT_8 initMcsUser1:4;
/* UINT_8 initMcsUser2:4; */
/* UINT_8 initMcsUser3:4; */
UINT_8 dMcsUser0:4;
UINT_8 dMcsUser1:4;
/* UINT_8 dMcsUser2:4; */
/* UINT_8 dMcsUser3:4; */
} PARAM_CUSTOM_SHOW_GROUP_TBL_ENTRY_STRUCT_T, *P_PARAM_CUSTOM_SHOW_GROUP_TBL_ENTRY_STRUCT_T;
typedef struct _PARAM_CUSTOM_GET_QD_STRUCT_T {
UINT_32 u4EventId;
UINT_32 au4RawData[14];
} PARAM_CUSTOM_GET_QD_STRUCT_T, *P_PARAM_CUSTOM_GET_QD_STRUCT_T;
typedef struct _MU_STRUCT_LQ_REPORT {
int lq_report[NUM_OF_USER][NUM_OF_MODUL];
} MU_STRUCT_LQ_REPORT, *P_MU_STRUCT_LQ_REPORT;
typedef struct _PARAM_CUSTOM_GET_MU_CALC_LQ_STRUCT_T {
UINT_32 u4EventId;
MU_STRUCT_LQ_REPORT rEntry;
} PARAM_CUSTOM_GET_MU_CALC_LQ_STRUCT_T, *P_PARAM_CUSTOM_GET_MU_CALC_LQ_STRUCT_T;
typedef struct _MU_GET_CALC_INIT_MCS_T {
UINT_8 ucgroupIdx;
UINT_8 ucRsv[3];
} MU_GET_CALC_INIT_MCS_T, *P_MU_GET_CALC_INIT_MCS_T;
typedef struct _MU_SET_INIT_MCS_T {
UINT_8 ucNumOfUser; /* zero-base : 0~3: means 1~2 users */
UINT_8 ucBandwidth; /* zero-base : 0:20 hz 1:40 hz 2: 80 hz 3: 160 */
UINT_8 ucNssOfUser0; /* zero-base : 0~1 means uesr0 use 1~2 ss , if no use keep 0 */
UINT_8 ucNssOfUser1; /* zero-base : 0~1 means uesr0 use 1~2 ss , if no use keep 0 */
UINT_8 ucPfMuIdOfUser0; /* zero-base : for now, uesr0 use pf mu id 0 */
UINT_8 ucPfMuIdOfUser1; /* zero-base : for now, uesr1 use pf mu id 1 */
UINT_8 ucNumOfTxer; /* 0~3: mean use 1~4 anntain, for now, should fix 3 */
UINT_8 ucSpeIndex; /*add new field to fill special extension index which replace reserve */
UINT_32 u4GroupIndex; /* 0~ :the index of group table entry for calculation */
} MU_SET_INIT_MCS_T, *P_MU_SET_INIT_MCS_T;
typedef struct _MU_SET_CALC_LQ_T {
UINT_8 ucNumOfUser; /* zero-base : 0~3: means 1~2 users */
UINT_8 ucBandwidth; /* zero-base : 0:20 hz 1:40 hz 2: 80 hz 3: 160 */
UINT_8 ucNssOfUser0; /* zero-base : 0~1 means uesr0 use 1~2 ss , if no use keep 0 */
UINT_8 ucNssOfUser1; /* zero-base : 0~1 means uesr0 use 1~2 ss , if no use keep 0 */
UINT_8 ucPfMuIdOfUser0; /* zero-base : for now, uesr0 use pf mu id 0 */
UINT_8 ucPfMuIdOfUser1; /* zero-base : for now, uesr1 use pf mu id 1 */
UINT_8 ucNumOfTxer; /* 0~3: mean use 1~4 anntain, for now, should fix 3 */
UINT_8 ucSpeIndex; /*add new field to fill special extension index which replace reserve */
UINT_32 u4GroupIndex; /* 0~ :the index of group table entry for calculation */
} MU_SET_CALC_LQ_T, *P_MU_SET_CALC_LQ_T;
typedef struct _MU_GET_LQ_T {
UINT_8 ucType;
UINT_8 ucRsv[3];
} MU_GET_LQ_T, *P_MU_GET_LQ_T;
typedef struct _MU_SET_SNR_OFFSET_T {
UINT_8 ucVal;
UINT_8 ucRsv[3];
} MU_SET_SNR_OFFSET_T, *P_MU_SET_SNR_OFFSET_T;
typedef struct _MU_SET_ZERO_NSS_T {
UINT_8 ucVal;
UINT_8 ucRsv[3];
} MU_SET_ZERO_NSS_T, *P_MU_SET_ZERO_NSS_T;
typedef struct _MU_SPEED_UP_LQ_T {
UINT_32 u4Val;
} MU_SPEED_UP_LQ_T, *P_MU_SPEED_UP_LQ_T;
typedef struct _MU_SET_MU_TABLE_T {
/* UINT_16 u2Type; */
/* UINT_32 u4Length; */
UINT_8 aucMetricTable[NUM_MUT_NR_NUM * NUM_MUT_FEC * NUM_MUT_MCS * NUM_MUT_INDEX];
} MU_SET_MU_TABLE_T, *P_MU_SET_MU_TABLE_T;
typedef struct _MU_SET_GROUP_T {
UINT_32 u4GroupIndex; /* Group Table Idx */
UINT_32 u4NumOfUser;
UINT_32 u4User0Ldpc;
UINT_32 u4User1Ldpc;
UINT_32 u4ShortGI;
UINT_32 u4Bw;
UINT_32 u4User0Nss;
UINT_32 u4User1Nss;
UINT_32 u4GroupId;
UINT_32 u4User0UP;
UINT_32 u4User1UP;
UINT_32 u4User0MuPfId;
UINT_32 u4User1MuPfId;
UINT_32 u4User0InitMCS;
UINT_32 u4User1InitMCS;
UINT_8 aucUser0MacAddr[PARAM_MAC_ADDR_LEN];
UINT_8 aucUser1MacAddr[PARAM_MAC_ADDR_LEN];
} MU_SET_GROUP_T, *P_MU_SET_GROUP_T;
typedef struct _MU_GET_QD_T {
UINT_8 ucSubcarrierIndex;
/* UINT_32 u4Length; */
/* UINT_8 *prQd; */
} MU_GET_QD_T, *P_MU_GET_QD_T;
typedef struct _MU_SET_ENABLE_T {
UINT_8 ucVal;
UINT_8 ucRsv[3];
} MU_SET_ENABLE_T, *P_MU_SET_ENABLE_T;
typedef struct _MU_SET_GID_UP_T {
UINT_32 au4Gid[2];
UINT_32 au4Up[4];
} MU_SET_GID_UP_T, *P_MU_SET_GID_UP_T;
typedef struct _MU_TRIGGER_MU_TX_T {
UINT_8 fgIsRandomPattern; /* is random pattern or not */
UINT_32 u4MsduPayloadLength0; /* payload length of the MSDU for user 0 */
UINT_32 u4MsduPayloadLength1; /* payload length of the MSDU for user 1 */
UINT_32 u4MuPacketCount; /* MU TX count */
UINT_32 u4NumOfSTAs; /* number of user in the MU TX */
UINT_8 aucMacAddrs[2][6]; /* MAC address of users*/
} MU_TRIGGER_MU_TX_T, *P_MU_TRIGGER_MU_TX_T;
typedef struct _PARAM_CUSTOM_MUMIMO_ACTION_STRUCT_T {
UINT_8 ucMuMimoCategory;
UINT_8 aucRsv[3];
union {
MU_GET_CALC_INIT_MCS_T rMuGetCalcInitMcs;
MU_SET_INIT_MCS_T rMuSetInitMcs;
MU_SET_CALC_LQ_T rMuSetCalcLq;
MU_GET_LQ_T rMuGetLq;
MU_SET_SNR_OFFSET_T rMuSetSnrOffset;
MU_SET_ZERO_NSS_T rMuSetZeroNss;
MU_SPEED_UP_LQ_T rMuSpeedUpLq;
MU_SET_MU_TABLE_T rMuSetMuTable;
MU_SET_GROUP_T rMuSetGroup;
MU_GET_QD_T rMuGetQd;
MU_SET_ENABLE_T rMuSetEnable;
MU_SET_GID_UP_T rMuSetGidUp;
MU_TRIGGER_MU_TX_T rMuTriggerMuTx;
} unMuMimoParam;
} PARAM_CUSTOM_MUMIMO_ACTION_STRUCT_T, *P_PARAM_CUSTOM_MUMIMO_ACTION_STRUCT_T;
#endif /* CFG_SUPPORT_MU_MIMO */
#endif /* CFG_SUPPORT_TX_BF */
#endif /* CFG_SUPPORT_QA_TOOL */
typedef struct _PARAM_CUSTOM_MEM_DUMP_STRUCT_T {
UINT_32 u4Address;
UINT_32 u4Length;
UINT_32 u4RemainLength;
#if CFG_SUPPORT_QA_TOOL
UINT_32 u4IcapContent;
#endif /* CFG_SUPPORT_QA_TOOL */
UINT_8 ucFragNum;
} PARAM_CUSTOM_MEM_DUMP_STRUCT_T, *P_PARAM_CUSTOM_MEM_DUMP_STRUCT_T;
typedef struct _PARAM_CUSTOM_SW_CTRL_STRUCT_T {
UINT_32 u4Id;
UINT_32 u4Data;
} PARAM_CUSTOM_SW_CTRL_STRUCT_T, *P_PARAM_CUSTOM_SW_CTRL_STRUCT_T;
typedef struct _PARAM_CUSTOM_CHIP_CONFIG_STRUCT_T {
UINT_16 u2Id;
UINT_8 ucType;
UINT_8 ucRespType;
UINT_16 u2MsgSize;
UINT_8 aucReserved0[2];
UINT_8 aucCmd[CHIP_CONFIG_RESP_SIZE];
} PARAM_CUSTOM_CHIP_CONFIG_STRUCT_T, *P_PARAM_CUSTOM_CHIP_CONFIG_STRUCT_T;
typedef struct _PARAM_CUSTOM_KEY_CFG_STRUCT_T {
UINT_8 aucKey[WLAN_CFG_KEY_LEN_MAX];
UINT_8 aucValue[WLAN_CFG_VALUE_LEN_MAX];
} PARAM_CUSTOM_KEY_CFG_STRUCT_T, *P_PARAM_CUSTOM_KEY_CFG_STRUCT_T;
typedef struct _PARAM_CUSTOM_EEPROM_RW_STRUCT_T {
UINT_8 ucEepromMethod; /* For read only read: 1, query size: 0 */
UINT_8 ucEepromIndex;
UINT_8 reserved;
UINT_16 u2EepromData;
} PARAM_CUSTOM_EEPROM_RW_STRUCT_T, *P_PARAM_CUSTOM_EEPROM_RW_STRUCT_T,
PARAM_CUSTOM_NVRAM_RW_STRUCT_T, *P_PARAM_CUSTOM_NVRAM_RW_STRUCT_T;
typedef struct _PARAM_CUSTOM_WMM_PS_TEST_STRUCT_T {
UINT_8 bmfgApsdEnAc; /* b0~3: trigger-en AC0~3. b4~7: delivery-en AC0~3 */
UINT_8 ucIsEnterPsAtOnce; /* enter PS immediately without 5 second guard after connected */
UINT_8 ucIsDisableUcTrigger; /* not to trigger UC on beacon TIM is matched (under U-APSD) */
UINT_8 reserved;
} PARAM_CUSTOM_WMM_PS_TEST_STRUCT_T, *P_PARAM_CUSTOM_WMM_PS_TEST_STRUCT_T;
typedef struct _PARAM_CUSTOM_NOA_PARAM_STRUCT_T {
UINT_32 u4NoaDurationMs;
UINT_32 u4NoaIntervalMs;
UINT_32 u4NoaCount;
UINT_8 ucBssIdx;
} PARAM_CUSTOM_NOA_PARAM_STRUCT_T, *P_PARAM_CUSTOM_NOA_PARAM_STRUCT_T;
typedef struct _PARAM_CUSTOM_OPPPS_PARAM_STRUCT_T {
UINT_8 ucBssIdx;
UINT_8 ucLegcyPS;
UINT_8 ucOppPs;
UINT_8 aucResv[1];
UINT_32 u4CTwindowMs;
} PARAM_CUSTOM_OPPPS_PARAM_STRUCT_T, *P_PARAM_CUSTOM_OPPPS_PARAM_STRUCT_T;
typedef struct _PARAM_CUSTOM_UAPSD_PARAM_STRUCT_T {
UINT_8 ucBssIdx;
UINT_8 fgEnAPSD;
UINT_8 fgEnAPSD_AcBe;
UINT_8 fgEnAPSD_AcBk;
UINT_8 fgEnAPSD_AcVo;
UINT_8 fgEnAPSD_AcVi;
UINT_8 ucMaxSpLen;
UINT_8 aucResv[2];
} PARAM_CUSTOM_UAPSD_PARAM_STRUCT_T, *P_PARAM_CUSTOM_UAPSD_PARAM_STRUCT_T;
typedef struct _PARAM_CUSTOM_P2P_SET_STRUCT_T {
UINT_32 u4Enable;
UINT_32 u4Mode;
} PARAM_CUSTOM_P2P_SET_STRUCT_T, *P_PARAM_CUSTOM_P2P_SET_STRUCT_T;
#define MAX_NUMBER_OF_ACL 20
typedef enum _ENUM_PARAM_CUSTOM_ACL_POLICY_T {
PARAM_CUSTOM_ACL_POLICY_DISABLE,
PARAM_CUSTOM_ACL_POLICY_ACCEPT,
PARAM_CUSTOM_ACL_POLICY_DENY,
PARAM_CUSTOM_ACL_POLICY_NUM
} ENUM_PARAM_CUSTOM_ACL_POLICY_T, *P_ENUM_PARAM_CUSTOM_ACL_POLICY_T;
typedef struct _PARAM_CUSTOM_ACL_ENTRY {
UINT_8 aucAddr[MAC_ADDR_LEN];
UINT_16 u2Rsv;
} PARAM_CUSTOM_ACL_ENTRY, *PPARAM_CUSTOM_ACL_ENTRY;
typedef struct _PARAM_CUSTOM_ACL {
ENUM_PARAM_CUSTOM_ACL_POLICY_T ePolicy;
UINT_32 u4Num;
PARAM_CUSTOM_ACL_ENTRY rEntry[MAX_NUMBER_OF_ACL];
} PARAM_CUSTOM_ACL, *PPARAM_CUSTOM_ACL;
typedef enum _ENUM_CFG_SRC_TYPE_T {
CFG_SRC_TYPE_EEPROM,
CFG_SRC_TYPE_NVRAM,
CFG_SRC_TYPE_UNKNOWN,
CFG_SRC_TYPE_NUM
} ENUM_CFG_SRC_TYPE_T, *P_ENUM_CFG_SRC_TYPE_T;
typedef enum _ENUM_EEPROM_TYPE_T {
EEPROM_TYPE_NO,
EEPROM_TYPE_PRESENT,
EEPROM_TYPE_NUM
} ENUM_EEPROM_TYPE_T, *P_ENUM_EEPROM_TYPE_T;
typedef struct _PARAM_QOS_TSINFO {
UINT_8 ucTrafficType; /* Traffic Type: 1 for isochronous 0 for asynchronous */
UINT_8 ucTid; /* TSID: must be between 8 ~ 15 */
UINT_8 ucDirection; /* direction */
UINT_8 ucAccessPolicy; /* access policy */
UINT_8 ucAggregation; /* aggregation */
UINT_8 ucApsd; /* APSD */
UINT_8 ucuserPriority; /* user priority */
UINT_8 ucTsInfoAckPolicy; /* TSINFO ACK policy */
UINT_8 ucSchedule; /* Schedule */
} PARAM_QOS_TSINFO, *P_PARAM_QOS_TSINFO;
typedef struct _PARAM_QOS_TSPEC {
PARAM_QOS_TSINFO rTsInfo; /* TS info field */
UINT_16 u2NominalMSDUSize; /* nominal MSDU size */
UINT_16 u2MaxMSDUsize; /* maximum MSDU size */
UINT_32 u4MinSvcIntv; /* minimum service interval */
UINT_32 u4MaxSvcIntv; /* maximum service interval */
UINT_32 u4InactIntv; /* inactivity interval */
UINT_32 u4SpsIntv; /* suspension interval */
UINT_32 u4SvcStartTime; /* service start time */
UINT_32 u4MinDataRate; /* minimum Data rate */
UINT_32 u4MeanDataRate; /* mean data rate */
UINT_32 u4PeakDataRate; /* peak data rate */
UINT_32 u4MaxBurstSize; /* maximum burst size */
UINT_32 u4DelayBound; /* delay bound */
UINT_32 u4MinPHYRate; /* minimum PHY rate */
UINT_16 u2Sba; /* surplus bandwidth allowance */
UINT_16 u2MediumTime; /* medium time */
} PARAM_QOS_TSPEC, *P_PARAM_QOS_TSPEC;
typedef struct _PARAM_QOS_ADDTS_REQ_INFO {
PARAM_QOS_TSPEC rTspec;
} PARAM_QOS_ADDTS_REQ_INFO, *P_PARAM_QOS_ADDTS_REQ_INFO;
typedef struct _PARAM_VOIP_CONFIG {
UINT_32 u4VoipTrafficInterval; /* 0: disable VOIP configuration */
} PARAM_VOIP_CONFIG, *P_PARAM_VOIP_CONFIG;
/*802.11 Statistics Struct*/
typedef struct _PARAM_802_11_STATISTICS_STRUCT_T {
UINT_32 u4Length; /* Length of structure */
LARGE_INTEGER rTransmittedFragmentCount;
LARGE_INTEGER rMulticastTransmittedFrameCount;
LARGE_INTEGER rFailedCount;
LARGE_INTEGER rRetryCount;
LARGE_INTEGER rMultipleRetryCount;
LARGE_INTEGER rRTSSuccessCount;
LARGE_INTEGER rRTSFailureCount;
LARGE_INTEGER rACKFailureCount;
LARGE_INTEGER rFrameDuplicateCount;
LARGE_INTEGER rReceivedFragmentCount;
LARGE_INTEGER rMulticastReceivedFrameCount;
LARGE_INTEGER rFCSErrorCount;
LARGE_INTEGER rTKIPLocalMICFailures;
LARGE_INTEGER rTKIPICVErrors;
LARGE_INTEGER rTKIPCounterMeasuresInvoked;
LARGE_INTEGER rTKIPReplays;
LARGE_INTEGER rCCMPFormatErrors;
LARGE_INTEGER rCCMPReplays;
LARGE_INTEGER rCCMPDecryptErrors;
LARGE_INTEGER rFourWayHandshakeFailures;
LARGE_INTEGER rWEPUndecryptableCount;
LARGE_INTEGER rWEPICVErrorCount;
LARGE_INTEGER rDecryptSuccessCount;
LARGE_INTEGER rDecryptFailureCount;
} PARAM_802_11_STATISTICS_STRUCT_T, *P_PARAM_802_11_STATISTICS_STRUCT_T;
/* Linux Network Device Statistics Struct */
typedef struct _PARAM_LINUX_NETDEV_STATISTICS_T {
UINT_32 u4RxPackets;
UINT_32 u4TxPackets;
UINT_32 u4RxBytes;
UINT_32 u4TxBytes;
UINT_32 u4RxErrors;
UINT_32 u4TxErrors;
UINT_32 u4Multicast;
} PARAM_LINUX_NETDEV_STATISTICS_T, *P_PARAM_LINUX_NETDEV_STATISTICS_T;
typedef struct _PARAM_MTK_WIFI_TEST_STRUCT_T {
UINT_32 u4FuncIndex;
UINT_32 u4FuncData;
} PARAM_MTK_WIFI_TEST_STRUCT_T, *P_PARAM_MTK_WIFI_TEST_STRUCT_T;
/* 802.11 Media stream constraints */
typedef enum _ENUM_MEDIA_STREAM_MODE {
ENUM_MEDIA_STREAM_OFF,
ENUM_MEDIA_STREAM_ON
} ENUM_MEDIA_STREAM_MODE, *P_ENUM_MEDIA_STREAM_MODE;
/* for NDIS 5.1 Media Streaming Change */
typedef struct _PARAM_MEDIA_STREAMING_INDICATION {
PARAM_STATUS_INDICATION_T rStatus;
ENUM_MEDIA_STREAM_MODE eMediaStreamMode;
} PARAM_MEDIA_STREAMING_INDICATION, *P_PARAM_MEDIA_STREAMING_INDICATION;
#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 */
typedef struct _PARAM_NETWORK_ADDRESS_IP {
UINT_16 sin_port;
UINT_32 in_addr;
UINT_8 sin_zero[8];
} PARAM_NETWORK_ADDRESS_IP, *P_PARAM_NETWORK_ADDRESS_IP;
typedef struct _PARAM_NETWORK_ADDRESS {
UINT_16 u2AddressLength; /* length in bytes of Address[] in this */
UINT_16 u2AddressType; /* type of this address (PARAM_PROTOCOL_ID_XXX above) */
UINT_8 aucAddress[1]; /* actually AddressLength bytes long */
} PARAM_NETWORK_ADDRESS, *P_PARAM_NETWORK_ADDRESS;
/* The following is used with OID_GEN_NETWORK_LAYER_ADDRESSES to set network layer addresses on an interface */
typedef struct _PARAM_NETWORK_ADDRESS_LIST {
UINT_8 ucBssIdx;
UINT_32 u4AddressCount; /* number of addresses following */
UINT_16 u2AddressType; /* type of this address (NDIS_PROTOCOL_ID_XXX above) */
PARAM_NETWORK_ADDRESS arAddress[1]; /* actually AddressCount elements long */
} PARAM_NETWORK_ADDRESS_LIST, *P_PARAM_NETWORK_ADDRESS_LIST;
#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. */
typedef enum _ENUM_MTK_LP_TEST_MODE_T {
ENUM_MTK_LP_TEST_NORMAL,
ENUM_MTK_LP_TEST_GOLDEN_SAMPLE,
ENUM_MTK_LP_TEST_DUT,
ENUM_MTK_LP_TEST_MODE_NUM
} ENUM_MTK_LP_TEST_MODE_T, *P_ENUM_MTK_LP_TEST_MODE_T;
typedef enum _ENUM_MTK_SLT_FUNC_IDX_T {
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
} ENUM_MTK_SLT_FUNC_IDX_T, *P_ENUM_MTK_SLT_FUNC_IDX_T;
typedef struct _PARAM_MTK_SLT_LP_TEST_STRUCT_T {
ENUM_MTK_LP_TEST_MODE_T rLpTestMode;
UINT_32 u4BcnRcvNum;
} PARAM_MTK_SLT_LP_TEST_STRUCT_T, *P_PARAM_MTK_SLT_LP_TEST_STRUCT_T;
typedef struct _PARAM_MTK_SLT_TR_TEST_STRUCT_T {
ENUM_PARAM_NETWORK_TYPE_T rNetworkType; /* Network Type OFDM5G or OFDM2.4G */
UINT_32 u4FixedRate; /* Fixed Rate including BW */
} PARAM_MTK_SLT_TR_TEST_STRUCT_T, *P_PARAM_MTK_SLT_TR_TEST_STRUCT_T;
typedef struct _PARAM_MTK_SLT_INITIAL_STRUCT_T {
UINT_8 aucTargetMacAddr[PARAM_MAC_ADDR_LEN];
UINT_16 u2SiteID;
} PARAM_MTK_SLT_INITIAL_STRUCT_T, *P_PARAM_MTK_SLT_INITIAL_STRUCT_T;
typedef struct _PARAM_MTK_SLT_TEST_STRUCT_T {
ENUM_MTK_SLT_FUNC_IDX_T rSltFuncIdx;
UINT_32 u4Length; /* Length of structure, */
/* including myself */
UINT_32 u4FuncInfoLen; /* Include following content */
/* field and myself */
union {
PARAM_MTK_SLT_INITIAL_STRUCT_T rMtkInitTest;
PARAM_MTK_SLT_LP_TEST_STRUCT_T rMtkLpTest;
PARAM_MTK_SLT_TR_TEST_STRUCT_T rMtkTRTest;
} unFuncInfoContent;
} PARAM_MTK_SLT_TEST_STRUCT_T, *P_PARAM_MTK_SLT_TEST_STRUCT_T;
#endif
#if CFG_SUPPORT_MSP
/* Should by chip */
typedef struct _PARAM_SEC_CONFIG_T {
BOOL fgWPIFlag;
BOOL fgRV;
BOOL fgIKV;
BOOL fgRKV;
BOOL fgRCID;
BOOL fgRCA1;
BOOL fgRCA2;
BOOL fgEvenPN;
UINT_8 ucKeyID;
UINT_8 ucMUARIdx;
UINT_8 ucCipherSuit;
UINT_8 aucReserved[1];
} PARAM_SEC_CONFIG_T, *P_PARAM_SEC_CONFIG_T;
typedef struct _PARAM_TX_CONFIG_T {
UINT_8 aucPA[6];
BOOL fgSW;
BOOL fgDisRxHdrTran;
BOOL fgAADOM;
UINT_8 ucPFMUIdx;
UINT_16 u2PartialAID;
BOOL fgTIBF;
BOOL fgTEBF;
BOOL fgIsHT;
BOOL fgIsVHT;
BOOL fgMesh;
BOOL fgBAFEn;
BOOL fgCFAck;
BOOL fgRdgBA;
BOOL fgRDG;
BOOL fgIsPwrMgt;
BOOL fgRTS;
BOOL fgSMPS;
BOOL fgTxopPS;
BOOL fgDonotUpdateIPSM;
BOOL fgSkipTx;
BOOL fgLDPC;
BOOL fgIsQoS;
BOOL fgIsFromDS;
BOOL fgIsToDS;
BOOL fgDynBw;
BOOL fgIsAMSDUCrossLG;
BOOL fgCheckPER;
BOOL fgIsGID63;
UINT_8 aucReserved[1];
#if (1 /* CFG_SUPPORT_VHT == 1 */)
BOOL fgVhtTIBF;
BOOL fgVhtTEBF;
BOOL fgVhtLDPC;
UINT_8 aucReserved2[1];
#endif
} PARAM_TX_CONFIG_T, *P_PARAM_TX_CONFIG_T;
typedef struct _PARAM_KEY_CONFIG_T {
UINT_8 aucKey[32];
} PARAM_KEY_CONFIG_T, *P_PARAM_KEY_CONFIG_T;
typedef struct _PARAM_PEER_RATE_INFO_T {
UINT_8 ucCounterMPDUFail;
UINT_8 ucCounterMPDUTx;
UINT_8 ucRateIdx;
UINT_8 ucReserved[1];
UINT_16 au2RateCode[AUTO_RATE_NUM];
} PARAM_PEER_RATE_INFO_T, *P_PARAM_PEER_RATE_INFO_T;
typedef struct _PARAM_PEER_BA_CONFIG_T {
UINT_8 ucBaEn;
UINT_8 ucRsv[3];
UINT_32 u4BaWinSize;
} PARAM_PEER_BA_CONFIG_T, *P_PARAM_PEER_BA_CONFIG_T;
typedef struct _PARAM_ANT_ID_CONFIG_T {
UINT_8 ucANTIDSts0;
UINT_8 ucANTIDSts1;
UINT_8 ucANTIDSts2;
UINT_8 ucANTIDSts3;
} PARAM_ANT_ID_CONFIG_T, *P_PARAM_ANT_ID_CONFIG_T;
typedef struct _PARAM_PEER_CAP_T {
PARAM_ANT_ID_CONFIG_T rAntIDConfig;
UINT_8 ucTxPowerOffset;
UINT_8 ucCounterBWSelector;
UINT_8 ucChangeBWAfterRateN;
UINT_8 ucFrequencyCapability;
UINT_8 ucSpatialExtensionIndex;
BOOL fgG2;
BOOL fgG4;
BOOL fgG8;
BOOL fgG16;
UINT_8 ucMMSS;
UINT_8 ucAmpduFactor;
UINT_8 ucReserved[1];
} PARAM_PEER_CAP_T, *P_PARAM_PEER_CAP_T;
typedef struct _PARAM_PEER_RX_COUNTER_ALL_T {
UINT_8 ucRxRcpi0;
UINT_8 ucRxRcpi1;
UINT_8 ucRxRcpi2;
UINT_8 ucRxRcpi3;
UINT_8 ucRxCC0;
UINT_8 ucRxCC1;
UINT_8 ucRxCC2;
UINT_8 ucRxCC3;
BOOL fgRxCCSel;
UINT_8 ucCeRmsd;
UINT_8 aucReserved[2];
} PARAM_PEER_RX_COUNTER_ALL_T, *P_PARAM_PEER_RX_COUNTER_ALL_T;
typedef struct _PARAM_PEER_TX_COUNTER_ALL_T {
UINT_16 u2Rate1TxCnt;
UINT_16 u2Rate1FailCnt;
UINT_16 u2Rate2OkCnt;
UINT_16 u2Rate3OkCnt;
UINT_16 u2CurBwTxCnt;
UINT_16 u2CurBwFailCnt;
UINT_16 u2OtherBwTxCnt;
UINT_16 u2OtherBwFailCnt;
} PARAM_PEER_TX_COUNTER_ALL_T, *P_PARAM_PEER_TX_COUNTER_ALL_T;
typedef struct _PARAM_HW_WLAN_INFO_T {
UINT_32 u4Index;
PARAM_TX_CONFIG_T rWtblTxConfig;
PARAM_SEC_CONFIG_T rWtblSecConfig;
PARAM_KEY_CONFIG_T rWtblKeyConfig;
PARAM_PEER_RATE_INFO_T rWtblRateInfo;
PARAM_PEER_BA_CONFIG_T rWtblBaConfig;
PARAM_PEER_CAP_T rWtblPeerCap;
PARAM_PEER_RX_COUNTER_ALL_T rWtblRxCounter;
PARAM_PEER_TX_COUNTER_ALL_T rWtblTxCounter;
} PARAM_HW_WLAN_INFO_T, *P_PARAM_HW_WLAN_INFO_T;
typedef struct _HW_TX_AMPDU_METRICS_T {
UINT_32 u4TxSfCnt;
UINT_32 u4TxAckSfCnt;
UINT_32 u2TxAmpduCnt;
UINT_32 u2TxRspBaCnt;
UINT_16 u2TxEarlyStopCnt;
UINT_16 u2TxRange1AmpduCnt;
UINT_16 u2TxRange2AmpduCnt;
UINT_16 u2TxRange3AmpduCnt;
UINT_16 u2TxRange4AmpduCnt;
UINT_16 u2TxRange5AmpduCnt;
UINT_16 u2TxRange6AmpduCnt;
UINT_16 u2TxRange7AmpduCnt;
UINT_16 u2TxRange8AmpduCnt;
UINT_16 u2TxRange9AmpduCnt;
} HW_TX_AMPDU_METRICS_T, *P_HW_TX_AMPDU_METRICS_T;
typedef struct _HW_MIB_COUNTER_T {
UINT_32 u4RxFcsErrCnt;
UINT_32 u4RxFifoFullCnt;
UINT_32 u4RxMpduCnt;
UINT_32 u4RxAMPDUCnt;
UINT_32 u4RxTotalByte;
UINT_32 u4RxValidAMPDUSF;
UINT_32 u4RxValidByte;
UINT_32 u4ChannelIdleCnt;
UINT_32 u4RxVectorDropCnt;
UINT_32 u4DelimiterFailedCnt;
UINT_32 u4RxVectorMismatchCnt;
UINT_32 u4MdrdyCnt;
UINT_32 u4CCKMdrdyCnt;
UINT_32 u4OFDMLGMixMdrdy;
UINT_32 u4OFDMGreenMdrdy;
UINT_32 u4PFDropCnt;
UINT_32 u4RxLenMismatchCnt;
UINT_32 u4PCcaTime;
UINT_32 u4SCcaTime;
UINT_32 u4CcaNavTx;
UINT_32 u4PEDTime;
UINT_32 u4BeaconTxCnt;
UINT_32 au4BaMissedCnt[BSSID_NUM];
UINT_32 au4RtsTxCnt[BSSID_NUM];
UINT_32 au4FrameRetryCnt[BSSID_NUM];
UINT_32 au4FrameRetry2Cnt[BSSID_NUM];
UINT_32 au4RtsRetryCnt[BSSID_NUM];
UINT_32 au4AckFailedCnt[BSSID_NUM];
} HW_MIB_COUNTER_T, *P_HW_MIB_COUNTER_T;
typedef struct _HW_MIB2_COUNTER_T {
UINT_32 u4Tx40MHzCnt;
UINT_32 u4Tx80MHzCnt;
UINT_32 u4Tx160MHzCnt;
} HW_MIB2_COUNTER_T, *P_HW_MIB2_COUNTER_T;
typedef struct _PARAM_HW_MIB_INFO_T {
UINT_32 u4Index;
HW_MIB_COUNTER_T rHwMibCnt;
HW_MIB2_COUNTER_T rHwMib2Cnt;
HW_TX_AMPDU_METRICS_T rHwTxAmpduMts;
} PARAM_HW_MIB_INFO_T, *P_PARAM_HW_MIB_INFO_T;
#endif
#if CFG_SUPPORT_LAST_SEC_MCS_INFO
struct PARAM_TX_MCS_INFO {
UINT_8 ucStaIndex;
UINT_16 au2TxRateCode[MCS_INFO_SAMPLE_CNT];
UINT_8 aucTxRatePer[MCS_INFO_SAMPLE_CNT];
};
#endif
/*--------------------------------------------------------------*/
/*! \brief For Fixed Rate Configuration (Registry) */
/*--------------------------------------------------------------*/
typedef enum _ENUM_REGISTRY_FIXED_RATE_T {
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_REGISTRY_FIXED_RATE_T, *P_ENUM_REGISTRY_FIXED_RATE_T;
typedef enum _ENUM_BT_CMD_T {
BT_CMD_PROFILE = 0,
BT_CMD_UPDATE,
BT_CMD_NUM
} ENUM_BT_CMD_T;
typedef enum _ENUM_BT_PROFILE_T {
BT_PROFILE_CUSTOM = 0,
BT_PROFILE_SCO,
BT_PROFILE_ACL,
BT_PROFILE_MIXED,
BT_PROFILE_NO_CONNECTION,
BT_PROFILE_NUM
} ENUM_BT_PROFILE_T;
typedef struct _PTA_PROFILE_T {
ENUM_BT_PROFILE_T eBtProfile;
union {
UINT_8 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.
*/
UINT_32 au4Btcr[4];
} u;
} PTA_PROFILE_T, *P_PTA_PROFILE_T;
typedef struct _PTA_IPC_T {
UINT_8 ucCmd;
UINT_8 ucLen;
union {
PTA_PROFILE_T rProfile;
UINT_8 aucBTPParams[BT_PROFILE_PARAM_LEN];
} u;
} PARAM_PTA_IPC_T, *P_PARAM_PTA_IPC_T, PTA_IPC_T, *P_PTA_IPC_T;
/*--------------------------------------------------------------*/
/*! \brief CFG80211 Scan Request Container */
/*--------------------------------------------------------------*/
typedef struct _PARAM_SCAN_REQUEST_EXT_T {
PARAM_SSID_T rSsid;
UINT_32 u4IELength;
PUINT_8 pucIE;
} PARAM_SCAN_REQUEST_EXT_T, *P_PARAM_SCAN_REQUEST_EXT_T;
typedef struct _PARAM_SCAN_REQUEST_ADV_T {
UINT_32 u4SsidNum;
PARAM_SSID_T rSsid[CFG_SCAN_SSID_MAX_NUM];
UINT_32 u4IELength;
PUINT_8 pucIE;
#if CFG_SCAN_CHANNEL_SPECIFIED
UINT_8 ucChannelListNum;
RF_CHANNEL_INFO_T arChnlInfoList[MAXIMUM_OPERATION_CHANNEL_LIST];
#endif
} PARAM_SCAN_REQUEST_ADV_T, *P_PARAM_SCAN_REQUEST_ADV_T;
/*--------------------------------------------------------------*/
/*! \brief CFG80211 Scheduled Scan Request Container */
/*--------------------------------------------------------------*/
typedef struct _PARAM_SCHED_SCAN_REQUEST_T {
UINT_32 u4SsidNum;
PARAM_SSID_T arSsid[CFG_SCAN_SSID_MATCH_MAX_NUM];
UINT_32 u4IELength;
PUINT_8 pucIE;
UINT_16 u2ScanInterval; /* in milliseconds */
} PARAM_SCHED_SCAN_REQUEST, *P_PARAM_SCHED_SCAN_REQUEST;
#if CFG_SUPPORT_PASSPOINT
typedef struct _PARAM_HS20_SET_BSSID_POOL {
BOOLEAN fgIsEnable;
UINT_8 ucNumBssidPool;
PARAM_MAC_ADDRESS arBSSID[8];
} PARAM_HS20_SET_BSSID_POOL, *P_PARAM_HS20_SET_BSSID_POOL;
#endif /* CFG_SUPPORT_PASSPOINT */
#if CFG_SUPPORT_SNIFFER
typedef struct _PARAM_CUSTOM_MONITOR_SET_STRUCT_T {
UINT_8 ucEnable;
UINT_8 ucBand;
UINT_8 ucPriChannel;
UINT_8 ucSco;
UINT_8 ucChannelWidth;
UINT_8 ucChannelS1;
UINT_8 ucChannelS2;
UINT_8 aucResv[9];
} PARAM_CUSTOM_MONITOR_SET_STRUCT_T, *P_PARAM_CUSTOM_MONITOR_SET_STRUCT_T;
#endif
#if CFG_AUTO_CHANNEL_SEL_SUPPORT
/*--------------------------------------------------------------*/
/*! \brief MTK Auto Channel Selection related Container */
/*--------------------------------------------------------------*/
typedef struct _LTE_SAFE_CHN_INFO_T {
UINT_32 au4SafeChannelBitmask[5]; /* NL80211_TESTMODE_AVAILABLE_CHAN_ATTR_MAX */
} LTE_SAFE_CHN_INFO_T, *P_CMD_LTE_SAFE_CHN_INFO_T;
typedef struct _PARAM_CHN_LOAD_INFO {
/* Per-CHN Load */
UINT_8 ucChannel;
UINT_16 u2APNum;
UINT_32 u4Dirtiness;
UINT_8 ucReserved;
} PARAM_CHN_LOAD_INFO, *P_PARAM_CHN_LOAD_INFO;
typedef struct _PARAM_CHN_RANK_INFO {
UINT_8 ucChannel;
UINT_32 u4Dirtiness;
UINT_8 ucReserved;
} PARAM_CHN_RANK_INFO, *P_PARAM_CHN_RANK_INFO;
typedef struct _PARAM_GET_CHN_INFO {
LTE_SAFE_CHN_INFO_T rLteSafeChnList;
PARAM_CHN_LOAD_INFO rEachChnLoad[MAX_CHN_NUM];
BOOLEAN fgDataReadyBit;
PARAM_CHN_RANK_INFO rChnRankList[MAX_CHN_NUM];
UINT_8 aucReserved[3];
} PARAM_GET_CHN_INFO, *P_PARAM_GET_CHN_INFO;
typedef struct _PARAM_PREFER_CHN_INFO {
UINT_8 ucChannel;
UINT_16 u2APNumScore;
UINT_8 ucReserved;
} PARAM_PREFER_CHN_INFO, *P_PARAM_PREFER_CHN_INFO;
#endif
typedef struct _UMAC_STAT2_GET_T {
UINT_16 u2PleRevPgHif0Group0;
UINT_16 u2PleRevPgCpuGroup2;
UINT_16 u2PseRevPgHif0Group0;
UINT_16 u2PseRevPgHif1Group1;
UINT_16 u2PseRevPgCpuGroup2;
UINT_16 u2PseRevPgLmac0Group3;
UINT_16 u2PseRevPgLmac1Group4;
UINT_16 u2PseRevPgLmac2Group5;
UINT_16 u2PseRevPgPleGroup6;
UINT_16 u2PleSrvPgHif0Group0;
UINT_16 u2PleSrvPgCpuGroup2;
UINT_16 u2PseSrvPgHif0Group0;
UINT_16 u2PseSrvPgHif1Group1;
UINT_16 u2PseSrvPgCpuGroup2;
UINT_16 u2PseSrvPgLmac0Group3;
UINT_16 u2PseSrvPgLmac1Group4;
UINT_16 u2PseSrvPgLmac2Group5;
UINT_16 u2PseSrvPgPleGroup6;
UINT_16 u2PleTotalPageNum;
UINT_16 u2PleFreePageNum;
UINT_16 u2PleFfaNum;
UINT_16 u2PseTotalPageNum;
UINT_16 u2PseFreePageNum;
UINT_16 u2PseFfaNum;
} UMAC_STAT2_GET_T, *P_UMAC_STAT2_GET_T;
typedef struct _CNM_STATUS_T {
UINT_8 fgDbDcModeEn;
UINT_8 ucChNumB0;
UINT_8 ucChNumB1;
UINT_8 usReserved;
} CNM_STATUS_T, *P_CNM_STATUS_T;
typedef struct _CNM_CH_LIST_T {
UINT_8 ucChNum[4];
} CNM_CH_LIST_T, *P_CNM_CH_LIST_T;
/*******************************************************************************
* 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 *****/
WLAN_STATUS
wlanoidQueryNetworkTypesSupported(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryNetworkTypeInUse(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetNetworkTypeInUse(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryBssid(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetBssidListScan(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetBssidListScanExt(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetBssidListScanAdv(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryBssidList(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetBssid(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetConnect(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetSsid(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQuerySsid(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryInfrastructureMode(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetInfrastructureMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryAuthMode(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetAuthMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#if 0
WLAN_STATUS
wlanoidQueryPrivacyFilter(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetPrivacyFilter(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
WLAN_STATUS
wlanoidSetEncryptionStatus(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryEncryptionStatus(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetAddWep(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetRemoveWep(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetAddKey(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetRemoveKey(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetReloadDefaults(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetTest(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryCapability(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryFrequency(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetFrequency(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryAtimWindow(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetAtimWindow(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetChannel(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryRssi(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryRssiTrigger(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetRssiTrigger(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryRtsThreshold(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetRtsThreshold(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQuery802dot11PowerSaveProfile(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSet802dot11PowerSaveProfile(IN P_ADAPTER_T prAdapter,
IN PVOID prSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryPmkid(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetPmkid(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQuerySupportedRates(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryDesiredRates(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetDesiredRates(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryPermanentAddr(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuf, IN UINT_32 u4QueryBufLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryCurrentAddr(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuf, IN UINT_32 u4QueryBufLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryPermanentAddr(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuf, IN UINT_32 u4QueryBufLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryLinkSpeed(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#if CFG_SUPPORT_QA_TOOL
#if CFG_SUPPORT_BUFFER_MODE
WLAN_STATUS wlanoidSetEfusBufferMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
/*#if (CFG_EEPROM_PAGE_ACCESS == 1)*/
WLAN_STATUS
wlanoidQueryProcessAccessEfuseRead(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryProcessAccessEfuseWrite(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryEfuseFreeBlock(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryGetTxPower(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
/*#endif*/
#endif /* CFG_SUPPORT_BUFFER_MODE */
WLAN_STATUS
wlanoidQueryRxStatistics(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidBssInfoBasic(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidDevInfoActive(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidManualAssoc(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#if CFG_SUPPORT_TX_BF
WLAN_STATUS
wlanoidTxBfAction(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS wlanoidMuMimoAction(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS wlanoidStaRecUpdate(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS wlanoidStaRecBFUpdate(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
#endif /* CFG_SUPPORT_TX_BF */
#endif /* CFG_SUPPORT_QA_TOOL */
#if CFG_SUPPORT_CAL_RESULT_BACKUP_TO_HOST
WLAN_STATUS
wlanoidSendCalBackupV2Cmd(IN P_ADAPTER_T prAdapter, IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen);
WLAN_STATUS
wlanoidSetCalBackup(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryCalBackupV2(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#endif
WLAN_STATUS
wlanoidQueryMcrRead(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryMemDump(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetMcrWrite(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryDrvMcrRead(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetDrvMcrWrite(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQuerySwCtrlRead(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetSwCtrlWrite(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetChipConfig(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryChipConfig(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetKeyCfg(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryEepromRead(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetEepromWrite(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryRfTestRxStatus(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryRfTestTxStatus(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryOidInterfaceVersion(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryVendorId(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryMulticastList(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetMulticastList(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryRcvError(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryRcvNoBuffer(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryRcvCrcError(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryStatistics(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryCoexIso(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#ifdef LINUX
WLAN_STATUS
wlanoidQueryStatisticsForLinux(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#endif
WLAN_STATUS
wlanoidQueryMediaStreamMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetMediaStreamMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryRcvOk(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryXmitOk(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryXmitError(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryXmitOneCollision(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryXmitMoreCollisions(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryXmitMaxCollisions(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetCurrentPacketFilter(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryCurrentPacketFilter(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetAcpiDevicePowerState(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryAcpiDevicePowerState(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetDisassociate(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryFragThreshold(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetFragThreshold(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryAdHocMode(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetAdHocMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryBeaconInterval(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetBeaconInterval(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetCurrentAddr(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#if CFG_TCP_IP_CHKSUM_OFFLOAD
WLAN_STATUS
wlanoidSetCSUMOffload(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif /* CFG_TCP_IP_CHKSUM_OFFLOAD */
WLAN_STATUS
wlanoidSetNetworkAddress(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryMaxFrameSize(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryMaxTotalSize(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetCurrentLookahead(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
/* RF Test related APIs */
WLAN_STATUS
wlanoidRftestSetTestMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidRftestSetTestIcapMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidRftestSetAbortTestMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidRftestQueryAutoTest(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidRftestSetAutoTest(IN P_ADAPTER_T prAdapter,
OUT PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#if CFG_SUPPORT_WAPI
WLAN_STATUS
wlanoidSetWapiMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetWapiAssocInfo(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetWapiKey(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
#if CFG_SUPPORT_WPS2
WLAN_STATUS
wlanoidSetWSCAssocInfo(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
#if CFG_ENABLE_WAKEUP_ON_LAN
WLAN_STATUS
wlanoidSetAddWakeupPattern(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetRemoveWakeupPattern(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryEnableWakeup(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 u4QueryInfoLen);
WLAN_STATUS
wlanoidSetEnableWakeup(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
WLAN_STATUS
wlanoidSetWiFiWmmPsTest(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetTxAmpdu(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetAddbaReject(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryNvramRead(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetNvramWrite(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryCfgSrcType(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryEepromType(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetCountryCode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS wlanSendMemDumpCmd(IN P_ADAPTER_T prAdapter, IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen);
#if CFG_SLT_SUPPORT
WLAN_STATUS
wlanoidQuerySLTStatus(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidUpdateSLTMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
#if CFG_SUPPORT_ADVANCE_CONTROL
WLAN_STATUS
wlanoidAdvCtrl(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#endif
WLAN_STATUS
wlanoidQueryWlanInfo(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryMibInfo(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#if CFG_SUPPORT_LAST_SEC_MCS_INFO
WLAN_STATUS
wlanoidTxMcsInfo(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#endif
WLAN_STATUS
wlanoidSetFwLog2Host(
IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer,
IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
#if 0
WLAN_STATUS
wlanoidSetNoaParam(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetOppPsParam(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetUApsdParam(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
/*----------------------------------------------------------------------------*/
WLAN_STATUS
wlanoidSetBT(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryBT(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetTxPower(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#if 0
WLAN_STATUS
wlanoidQueryBtSingleAntenna(
IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer,
IN UINT_32 u4QueryBufferLen,
OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetBtSingleAntenna(
IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer,
IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetPta(
IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer,
IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryPta(
IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer,
IN UINT_32 u4QueryBufferLen,
OUT PUINT_32 pu4QueryInfoLen);
#endif
#if CFG_ENABLE_WIFI_DIRECT
WLAN_STATUS
wlanoidSetP2pMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
WLAN_STATUS
wlanoidSetDefaultKey(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetGtkRekeyData(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetStartSchedScan(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetStopSchedScan(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#if CFG_M0VE_BA_TO_DRIVER
WLAN_STATUS wlanoidResetBAScoreboard(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen);
#endif
#if CFG_SUPPORT_BATCH_SCAN
WLAN_STATUS
wlanoidSetBatchScanReq(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryBatchScanResult(IN P_ADAPTER_T prAdapter,
OUT PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#endif
#if CFG_SUPPORT_PASSPOINT
WLAN_STATUS
wlanoidSetHS20Info(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetInterworkingInfo(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetRoamingConsortiumIEInfo(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetHS20BssidPool(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif /* CFG_SUPPORT_PASSPOINT */
#if CFG_SUPPORT_SNIFFER
WLAN_STATUS wlanoidSetMonitor(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
WLAN_STATUS
wlanoidNotifyFwSuspend(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer,
IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
#if CFG_SUPPORT_DBDC
WLAN_STATUS
wlanoidSetDbdcEnable(
IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer,
IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
#endif /*#if CFG_SUPPORT_DBDC*/
WLAN_STATUS
wlanoidQuerySetTxTargetPower(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#if (CFG_SUPPORT_DFS_MASTER == 1)
WLAN_STATUS
wlanoidQuerySetRddReport(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQuerySetRadarDetectMode(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
#if CFG_AUTO_CHANNEL_SEL_SUPPORT
WLAN_STATUS
wlanoidQueryLteSafeChannel(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanCalculateAllChannelDirtiness(IN P_ADAPTER_T prAdapter);
VOID
wlanInitChnLoadInfoChannelList(IN P_ADAPTER_T prAdapter);
UINT_8
wlanGetChannelIndex(IN UINT_8 channel);
UINT_8
wlanGetChannelNumFromIndex(IN UINT_8 ucIdx);
VOID
wlanSortChannel(IN P_ADAPTER_T prAdapter);
#endif
WLAN_STATUS
wlanoidLinkDown(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetCSIControl(
IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer,
IN UINT_32 u4SetBufferLen,
OUT PUINT_32 pu4SetInfoLen);
/*******************************************************************************
* F U N C T I O N S
********************************************************************************
*/
#endif /* _WLAN_OID_H */