📄 hostcmd.h
字号:
} KeyInfo_WEP_t;
typedef union _KeyInfo_TKIP_t
{
UCHAR Reserved; // bits 3-15: Reserved
UCHAR isKeyEnabled; // bit 2: Specifies that this key is enabled and valid to use
UCHAR isUnicastKey; // bit 1: Specifies that this key is to be used as the unicast key
UCHAR isMulticastKey; // bit 0: Specifies that this key is to be used as the multicast key
} KeyInfo_TKIP_t;
typedef union _KeyInfo_AES_t
{
UCHAR Reserved; // bits 3-15: Reserved */
UCHAR isKeyEnabled; // bit 2: Specifies that this key is enabled and valid to use
UCHAR isUnicastKey; // bit 1: Specifies that this key is to be used as the unicast key
UCHAR isMulticastKey; // bit 0: Specifies that this key is to be used as the multicast key
} KeyInfo_AES_t;
typedef struct _KeyMaterial_TKIP_t
{
UCHAR TkipKey[16]; // TKIP encryption/decryption key
UCHAR TkipTxMicKey[8]; // TKIP TX MIC Key
UCHAR TkipRxMicKey[8]; // TKIP RX MIC Key
} KeyMaterial_TKIP_t, *PKeyMaterial_TKIP_t;
typedef struct _KeyMaterial_AES_t
{
UCHAR AesKey[16]; // AES encryption/decryption key
} KeyMaterial_AES_t, *PKeyMaterial_AES_t;
typedef struct _MrvlIEtype_KeyParamSet_t
{
USHORT Type; // Type ID
USHORT Length; // Length of Payload
USHORT KeyTypeId; // Type of Key: WEP=0, TKIP=1, AES=2
USHORT KeyInfo; // Key Control Info specific to a KeyTypeId
USHORT KeyLen; // Length of key
UCHAR Key[32]; // Key material of size KeyLen
} MrvlIEtype_KeyParamSet_t, *PMrvlIEtype_KeyParamSet_t;
typedef struct _HostCmd_DS_802_11_KEY_MATERIAL
{
USHORT Command;
USHORT Size;
USHORT SeqNum;
USHORT Result;
USHORT Action;
MrvlIEtype_KeyParamSet_t KeyParamSet;
} HostCmd_DS_802_11_KEY_MATERIAL, *PHostCmd_DS_802_11_KEY_MATERIAL;
#endif /* WPA2 */
typedef struct IEEEtypes_CfParamSet_t
{
UCHAR ElementId;
UCHAR Len;
UCHAR CfpCnt;
UCHAR CfpPeriod;
USHORT CfpMaxDuration;
USHORT CfpDurationRemaining;
} IEEEtypes_CfParamSet_t;
typedef struct IEEEtypes_IbssParamSet_t
{
UCHAR ElementId;
UCHAR Len;
USHORT AtimWindow;
} IEEEtypes_IbssParamSet_t;
typedef union IEEEtypes_SsParamSet_t
{
IEEEtypes_CfParamSet_t CfParamSet;
IEEEtypes_IbssParamSet_t IbssParamSet;
} IEEEtypes_SsParamSet_t;
typedef struct IEEEtypes_FhParamSet_t
{
UCHAR ElementId;
UCHAR Len;
USHORT DwellTime;
UCHAR HopSet;
UCHAR HopPattern;
UCHAR HopIndex;
} IEEEtypes_FhParamSet_t;
typedef struct IEEEtypes_DsParamSet_t
{
UCHAR ElementId;
UCHAR Len;
UCHAR CurrentChan;
} IEEEtypes_DsParamSet_t;
typedef union IEEEtypes_PhyParamSet_t
{
IEEEtypes_FhParamSet_t FhParamSet;
IEEEtypes_DsParamSet_t DsParamSet;
} IEEEtypes_PhyParamSet_t;
typedef struct _WPA_SUPPLICANT
{
UCHAR Wpa_ie[256];
UCHAR Wpa_ie_len;
} WPA_SUPPLICANT, *PWPA_SUPPLICANT;
typedef struct _BSS_DESCRIPTION_SET_ALL_FIELDS
{
UCHAR BSSID[MRVDRV_ETH_ADDR_LEN];
UCHAR SSID[MRVDRV_MAX_SSID_LENGTH];
UCHAR BSSType;
USHORT BeaconPeriod;
UCHAR DTIMPeriod;
UCHAR TimeStamp[8];
UCHAR LocalTime[8];
IEEEtypes_PhyParamSet_t PhyParamSet;
IEEEtypes_SsParamSet_t SsParamSet;
IEEEtypes_CapInfo_t Cap;
UCHAR DataRates[NDIS_SUPPORTED_RATES];
USHORT bss_band;
#ifdef ENABLE_802_11D
UCHAR bHaveCountryIE;
IEEEtypes_CountryInfoFullSet_t CountryInfo;
#endif
WPA_SUPPLICANT wpa_supplicant;
#ifdef WPA2
WPA_SUPPLICANT wpa2_supplicant;
#endif
//#ifdef WMM
// UCHAR Wmm_IE[WMM_PARA_IE_LENGTH + 2];
// UCHAR Wmm_ie_len;
//#endif
#ifdef ENABLE_802_11H_TPC
UCHAR Sensed11H;
IEEEtypes_PowerConstraint_t PowerConstraint;
IEEEtypes_PowerCapability_t PowerCapability;
IEEEtypes_TPCReport_t TPCReport;
#endif
#ifdef CCX
CCX_BSS_Info_t ccx_bss_info;
#endif
} BSS_DESCRIPTION_SET_ALL_FIELDS, *PBSS_DESCRIPTION_SET_ALL_FIELDS;
typedef struct _ADHOC_BSS_DESCRIPTION_SET_ALL_FIELDS
{
UCHAR BSSID[MRVDRV_ETH_ADDR_LEN];
UCHAR SSID[MRVDRV_MAX_SSID_LENGTH];
UCHAR BSSType;
USHORT BeaconPeriod;
UCHAR DTIMPeriod;
UCHAR TimeStamp[8];
UCHAR LocalTime[8];
IEEEtypes_PhyParamSet_t PhyParamSet;
IEEEtypes_SsParamSet_t SsParamSet;
IEEEtypes_CapInfo_t Cap;
UCHAR DataRates[HOSTCMD_SUPPORTED_RATES];
} ADHOC_BSS_DESCRIPTION_SET_ALL_FIELDS, *PADHOC_BSS_DESCRIPTION_SET_ALL_FIELDS;
typedef struct _BSS_DESCRIPTION_SET_FIXED_FIELDS
{
UCHAR BSSID[MRVDRV_ETH_ADDR_LEN];
UCHAR SSID[MRVDRV_MAX_SSID_LENGTH];
UCHAR BSSType;
USHORT BeaconPeriod;
UCHAR DTIMPeriod;
UCHAR TimeStamp[8];
UCHAR LocalTime[8];
} BSS_DESCRIPTION_SET_FIXED_FIELDS, *PBSS_DESCRIPTION_SET_FIXED_FIELDS;
#pragma pack()
//=============================================================================
// HOST COMMAND DEFINITIONS
//=============================================================================
#pragma pack(1)
//
// Definition of data structure for each command
//
// Define general data structure
typedef struct _HostCmd_DS_GEN
{
USHORT Command;
USHORT Size;
USHORT SeqNum;
USHORT Result;
} HostCmd_DS_GEN, *PHostCmd_DS_GEN;
#ifdef DEEP_SLEEP
#define HostCmd_DS_802_11_DEEP_SLEEP HostCmd_DS_GEN
#endif
#ifdef HOST_WAKEUP
typedef struct _HostCmd_DS_HOST_WAKEUP_FILTER
{
MrvlIEtypesHeader_t Header;
USHORT AddressType;
USHORT EthType;
ULONG Ipv4Addr;
} HostCmd_DS_HOST_WAKEUP_FILTER, *PHostCmd_DS_HOST_WAKEUP_FILTER;
typedef struct _HostCmd_DS_HOST_WAKEUP
{
USHORT Command;
USHORT Size;
USHORT SeqNum;
USHORT Result;
ULONG Criteria;
UCHAR GPIO;
UCHAR Gap;
HostCmd_DS_HOST_WAKEUP_FILTER Filter[1];
} HostCmd_DS_HOST_WAKEUP, *PHostCmd_DS_HOST_WAKEUP;
#define HostCmd_DS_WAKEUP_CONFIRM HostCmd_DS_GEN
#endif
// Define data structure for HostCmd_CMD_CODE_DNLD
typedef struct _HostCmd_DS_CODE_DNLD
{
UCHAR Code[4096];
} HostCmd_DS_CODE_DNLD, *PHostCmd_DS_CODE_DNLD;
// Define data structure for HostCmd_CMD_OP_PARAM_DNLD
typedef struct _HostCmd_DS_OP_PARAM_DNLD
{
UCHAR OpParam[4096];
} HostCmd_DS_OP_PARAM_DNLD, *PHostCmd_DS_OP_PARAM_DNLD;
#define MRVDRV_FW_CAPINFO_WPA (1 << 0)
#define MRVDRV_FW_CAPINFO_PS (1 << 1)
#define MRVDRV_FW_CAPINFO_GM (1 << 2)
// Define data structure for HostCmd_CMD_GET_HW_SPEC
typedef struct _HostCmd_DS_GET_HW_SPEC
{
USHORT Command; // Command number
USHORT Size; // Size of the data structure
USHORT SeqNum; // Command sequence number
USHORT Result; // Result code
#ifdef INTERFACE20
USHORT HWIfVersion; // version of the hardware interface
#endif
USHORT Version; // HW version
USHORT NumOfWCB; // Max. number of WCB FW can handle
USHORT NumOfMCastAdr; // Max. number of Multicast address FW can handle
UCHAR PermanentAddr[6]; // MAC address
USHORT RegionCode; // Region Code
USHORT NumberOfAntenna; // Number of antenna used
ULONG FWReleaseNumber; // 4 byte of FW release number, example 0x1234=1.2.3.4
ULONG WcbBase;
ULONG RxPdRdPtr;
ULONG RxPdWrPtr;
ULONG fwCapInfo; // Firmware Capability Info
} HostCmd_DS_GET_HW_SPEC, *PHostCmd_DS_GET_HW_SPEC;
// Define data structure for HostCmd_CMD_EEPROM_UPDATE
typedef struct _HostCmd_DS_EEPROM_ACCESS
{
USHORT Command;
USHORT Size;
USHORT SeqNum;
USHORT Result;
USHORT Action; // Detailed action or option
USHORT DataLength;
ULONG Address; // target address
UCHAR Data[0];
} HostCmd_DS_EEPROM_ACCESS, *PHostCmd_DS_EEPROM_ACCESS;
// Define data structure for HostCmd_CMD_802_11_RESET
typedef struct _HostCmd_DS_802_11_RESET
{
USHORT Command;
USHORT Size;
USHORT SeqNum;
USHORT Result;
USHORT Action; // ACT_NOT_REVERT_MIB, ACT_REVERT_MIB or ACT_HALT
USHORT Reserved;
} HostCmd_DS_802_11_RESET, *PHostCmd_DS_802_11_RESET;
#ifdef BG_SCAN
#define BGACTIVE_ROAMING_PERIOD_TIME 120000 // 120 sec
typedef struct _HostCmd_DS_802_11_BG_SCAN_CONFIG
{
USHORT Command;
USHORT Size;
USHORT SeqNum;
USHORT Result;
USHORT Action;
// Enable
// 0 - Disable 1 - Enable
UCHAR Enable;
// bssType
// 1 - Infrastructure
// 2 - IBSS
// 3 - any
UCHAR BssType;
// ChannelsPerScan
// No of channels to scan at one scan
UCHAR ChannelsPerScan;
// 0 - Discard old scan results
// 1 - Discard new scan results
UCHAR DiscardWhenFull;
USHORT Reserved;
// ScanInterval
ULONG ScanInterval;
// StoreCondition
// - SSID Match
// - Exceed RSSI threshold
// - SSID Match & Exceed RSSI Threshold
// - Always
ULONG StoreCondition;
// ReportConditions
// - SSID Match
// - Exceed RSSI threshold
// - SSID Match & Exceed RSSIThreshold
// - Exceed MaxScanResults
// - Entire channel list scanned once
// - Domain Mismatch in country IE
//
ULONG ReportConditions;
// MaxScanResults
// Max scan results that will trigger
// a scn completion event
USHORT MaxScanResults;
// attach TLV based parameters as needed, e.g.
// MrvlIEtypes_SsIdParamSet_t SsIdParamSet;
// MrvlIEtypes_ChanListParamSet_t ChanListParamSet;
// MrvlIEtypes_NumProbes_t NumProbes;
//
UCHAR TlvData[1];
} HostCmd_DS_802_11_BG_SCAN_CONFIG, *PHostCmd_DS_802_11_BG_SCAN_CONFIG;
/** HostCmd_DS_802_11_BG_SCAN_QUERY */
typedef struct _HostCmd_DS_802_11_BG_SCAN_QUERY
{
USHORT Command;
USHORT Size;
USHORT SeqNum;
USHORT Result;
UCHAR Flush;
} HostCmd_DS_802_11_BG_SCAN_QUERY, *PHostCmd_DS_802_11_BG_SCAN_QUERY;
/** HostCmd_DS_802_11_BG_SCAN_QUERY_RSP */
typedef struct _HostCmd_DS_802_11_BG_SCAN_QUERY_RSP
{
USHORT Command;
USHORT Size;
USHORT SeqNum;
USHORT Result;
ULONG ReportCondition;
USHORT BSSDescriptSize;
UCHAR NumberOfSets;
} HostCmd_DS_802_11_BG_SCAN_QUERY_RSP, *PHostCmd_DS_802_11_BG_SCAN_QUERY_RSP;
#endif /* BG_SCAN */
#ifdef TLV_SCAN
typedef struct _MrvlIEtypes_RatesParamSet_t {
MrvlIEtypesHeader_t Header;
UCHAR Rates[1];
} MrvlIEtypes_RatesParamSet_t;
typedef struct _MrvlIEtypes_SsIdParamSet_t {
MrvlIEtypesHeader_t Header;
UCHAR SsId[1];
} MrvlIEtypes_SsIdParamSet_t;
typedef struct _ChanScanParamSet_t {
UCHAR RadioType;
UCHAR ChanNumber;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -