📄 hostcmd.h
字号:
typedef struct _HostCmd_DS_802_11_DATA_RATE {
u16 Action;
u16 Reserverd;
u8 DataRate[HOSTCMD_SUPPORTED_RATES];
} __ATTRIB_PACK__ HostCmd_DS_802_11_DATA_RATE,
*PHostCmd_DS_802_11_DATA_RATE;
typedef struct _HostCmd_DS_802_11_RATE_ADAPT_RATESET {
u16 Action;
u16 EnableHwAuto;
u16 Bitmap;
} __ATTRIB_PACK__ HostCmd_DS_802_11_RATE_ADAPT_RATESET,
*PHostCmd_DS_802_11_RATE_ADAPT_RATESET;
/* Define data structure for start Command in Ad Hoc mode */
typedef struct _HostCmd_DS_802_11_AD_HOC_START
{
u8 SSID[MRVDRV_MAX_SSID_LENGTH];
u8 BSSType;
u16 BeaconPeriod;
u8 DTIMPeriod;
IEEEtypes_SsParamSet_t SsParamSet;
IEEEtypes_PhyParamSet_t PhyParamSet;
u16 ProbeDelay;
IEEEtypes_CapInfo_t Cap;
u8 DataRate[HOSTCMD_SUPPORTED_RATES];
/*
* New fields after this point should be MRVL TLV types
*/
} __ATTRIB_PACK__ HostCmd_DS_802_11_AD_HOC_START,
*PHostCmd_DS_802_11_AD_HOC_START;
typedef struct AdHoc_BssDesc_t {
u8 BSSID[6];
u8 SSID[32];
u8 BSSType;
u16 BeaconPeriod;
u8 DTIMPeriod;
u8 TimeStamp[8];
u8 LocalTime[8];
IEEEtypes_PhyParamSet_t PhyParamSet;
IEEEtypes_SsParamSet_t SsParamSet;
IEEEtypes_CapInfo_t Cap;
u8 DataRates[HOSTCMD_SUPPORTED_RATES];
/*
* DO NOT ADD ANY FIELDS TO THIS STRUCTURE. It is used below in the
* Adhoc join command and will cause a binary layout mismatch with
* the firmware
*/
} __ATTRIB_PACK__ AdHoc_BssDesc_t, pAdHoc_BssDesc_t;
/* Define data structure for Join Command in Ad Hoc mode */
typedef struct _HostCmd_DS_802_11_AD_HOC_JOIN
{
AdHoc_BssDesc_t BssDescriptor;
u16 FailTimeOut;
u16 ProbeDelay;
/*
* New fields after this point should be MRVL TLV types
*/
} __ATTRIB_PACK__ HostCmd_DS_802_11_AD_HOC_JOIN,
*PHostCmd_DS_802_11_AD_HOC_JOIN;
#ifdef WPA
typedef struct _HostCmd_DS_802_11_QUERY_RSN_OPTION {
u8 RSN_Capable;
u8 Reserved[3];
}__ATTRIB_PACK__ HostCmd_DS_802_11_QUERY_RSN_OPTION,
*PHostCmd_DS_802_11_QUERY_RSN_OPTION;
typedef struct _HostCmd_DS_802_11_ENABLE_RSN {
u16 Action;
u16 Enable;
}__ATTRIB_PACK__ HostCmd_DS_802_11_ENABLE_RSN,
*PHostCmd_DS_802_11_ENABLE_RSN;
typedef struct _HostCmd_DS_802_11_QUERY_TKIP_REPLY_CNTRS {
u16 CmdCode;
u16 Size;
u16 SeqNum;
u16 Result;
u32 NumTkipCntrs;
}__ATTRIB_PACK__ HostCmd_DS_802_11_QUERY_TKIP_REPLY_CNTRS,
*PHostCmd_DS_802_11_QUERY_TKIP_REPLY_CNTRS;
typedef struct _HostCmd_DS_802_11_PAIRWISE_TSC {
u16 CmdCode;
u16 Size;
u16 SeqNum;
u16 Result;
u16 Action;
u32 Txlv32;
u16 Txlv16;
}__ATTRIB_PACK__ HostCmd_DS_802_11_PAIRWISE_TSC,
*PHostCmd_DS_802_11_PAIRWISE_TSC;
typedef struct _HostCmd_DS_802_11_GROUP_TSC {
u16 CmdCode;
u16 Size;
u16 SeqNum;
u16 Result;
u16 Action;
u32 Txlv32;
u16 Txlv16;
}__ATTRIB_PACK__ HostCmd_DS_802_11_GROUP_TSC,
*PHostCmd_DS_802_11_GROUP_TSC;
typedef union _KeyInfo_WEP_t {
u8 Reserved; /* bits 5-15: Reserved */
u8 WepKeyIndex; /* bits 1-4: Specifies the index of key */
u8 isWepDefaultKey; /* bit 0: Specifies that this key is to be used as the default for TX data packets */
} __ATTRIB_PACK__ KeyInfo_WEP_t;
typedef union _KeyInfo_TKIP_t {
u8 Reserved; /* bits 3-15: Reserved */
u8 isKeyEnabled; /* bit 2: Specifies that this key is enabled and valid to use */
u8 isUnicastKey; /* bit 1: Specifies that this key is to be used as the unicast key */
u8 isMulticastKey; /* bit 0: Specifies that this key is to be used as the multicast key */
} __ATTRIB_PACK__ KeyInfo_TKIP_t;
typedef union _KeyInfo_AES_t {
u8 Reserved; /* bits 3-15: Reserved */
u8 isKeyEnabled; /* bit 2: Specifies that this key is enabled and valid to use */
u8 isUnicastKey; /* bit 1: Specifies that this key is to be used as the unicast key */
u8 isMulticastKey; /* bit 0: Specifies that this key is to be used as the multicast key */
} __ATTRIB_PACK__ KeyInfo_AES_t;
typedef struct _KeyMaterial_TKIP_t {
u8 TkipKey[16]; /* TKIP encryption/decryption key */
u8 TkipTxMicKey[16]; /* TKIP TX MIC Key */
u8 TkipRxMicKey[16]; /* TKIP RX MIC Key */
} __ATTRIB_PACK__ KeyMaterial_TKIP_t,
*PKeyMaterial_TKIP_t;
typedef struct _KeyMaterial_AES_t {
u8 AesKey[16]; /* AES encryption/decryption key */
} __ATTRIB_PACK__ KeyMaterial_AES_t,
*PKeyMaterial_AES_t;
typedef struct _MrvlIEtype_KeyParamSet_t {
u16 Type; /* Type ID */
u16 Length; /* Length of Payload */
u16 KeyTypeId; /* Type of Key: WEP=0, TKIP=1, AES=2 */
u16 KeyInfo; /* Key Control Info specific to a KeyTypeId */
u16 KeyLen; /* Length of key */
u8 Key[32]; /* Key material of size KeyLen */
} __ATTRIB_PACK__ MrvlIEtype_KeyParamSet_t,
*PMrvlIEtype_KeyParamSet_t;
typedef struct _HostCmd_DS_802_11_KEY_MATERIAL {
u16 Action; /* ACT_SET
ACT_GET: return all the available keys
*/
MrvlIEtype_KeyParamSet_t KeyParamSet; /* Request:
Specified only with ACT_SET,
as many key parameter set as needed.
Response:
Return valid only for ACT_GET,
return as many as needed.
*/
} __ATTRIB_PACK__ HostCmd_DS_802_11_KEY_MATERIAL,
*PHostCmd_DS_802_11_KEY_MATERIAL;
#endif /* WPA */
#ifdef HOST_WAKEUP
typedef struct _HostCmd_DS_HOST_802_11_WAKE_UP_CFG {
u32 conditions; /* bit0=1: non-unicast data
bit1=1: unicast data
bit2=1: mac events
bit3=1: magic packet */
u8 gpio; /* 0xff if not uesed */
u8 gap; /* in milliseconds */
} __ATTRIB_PACK__ HostCmd_DS_802_11_HOST_WAKE_UP_CFG;
#endif
#ifdef CAL_DATA
typedef struct _HostCmd_DS_802_11_CAL_DATA_EXT {
u16 Action;
u16 Revision;
u16 CalDataLen;
u8 CalData[1024];
} __ATTRIB_PACK__ HostCmd_DS_802_11_CAL_DATA_EXT,
*pHostCmd_DS_802_11_CAL_DATA_EXT;
#endif /* CAL_DATA */
#ifdef MULTI_BANDS
typedef struct _HostCmd_DS_802_11_BAND_CONFIG {
u16 Action; /* 0: GET;
1: SET */
u16 BandSelection; /* Select 802.11b = 0 (2.4GHz) */
/* Select 802.11g = 1 (2.4GHz) */
/* Select 802.11a = 2 (5 GHz ) */
u16 Channel;
} __ATTRIB_PACK__ HostCmd_DS_802_11_BAND_CONFIG,
*pHostCmd_DS_802_11_BAND_CONFIG;
#endif
typedef struct _HostCmd_DS_802_11_EEPROM_ACCESS {
u16 Action; /* ACT_GET / ACT_SET */
u16 Offset; /* Multiple of 4. Example: 0, 4, 8 ... */
u16 ByteCount; /* Multiple of 4. Example: 4, 8, 12 ... */
u8 Value; /* The caller must provide a buffer of atleast
byte count size starting from here */
} __ATTRIB_PACK__ HostCmd_DS_802_11_EEPROM_ACCESS,
*pHostCmd_DS_802_11_EEPROM_ACCESS;
#ifdef GSPI83xx
typedef struct _HostCmd_DS_CMD_GSPI_BUS_CONFIG {
u16 Action; /* ACT_GET / ACT_SET */
u16 BusDelayMode; /* Data format Bit[1:0], Delay method Bit[2] */
u16 HostTimeDelayToReadPort; /* Number of dummy clocks
to wait for read r/w port */
u16 HostTimeDelayToReadregister; /* Number of dummy
clocks to wait for read reg */
} __ATTRIB_PACK__ HostCmd_DS_CMD_GSPI_BUS_CONFIG,
*pHostCmd_DS_CMD_GSPI_BUS_CONFIG;
#endif /* GSPI83xx */
#ifdef BG_SCAN
typedef struct _HostCmd_DS_802_11_BG_SCAN_CONFIG {
u16 Action;
u8 Enable; /* 0 - Disable
1 - Enable */
u8 BssType; /* 1 - Infrastructure
2 - IBSS
3 - any */
u8 ChannelsPerScan; /* No of channels to scan at
one scan */
u8 DiscardWhenFull; /* 0 - Discard old scan results
1 - Discard new scan
results */
u16 Reserved;
u32 ScanInterval; /* Interval b/w consecutive
scan */
u32 StoreCondition; /* - SSID Match
- Exceed RSSI threshold
- SSID Match & Exceed RSSI
Threshold
- Always */
u32 ReportConditions; /* - SSID Match
- Exceed RSSI threshold
- SSID Match & Exceed RSSI
Threshold
- Exceed MaxScanResults
- Entire channel list
scanned once
- Domain Mismatch in
country IE */
u16 MaxScanResults; /* Max scan results that will
trigger a scn completion
event */
// attach TLV based parameters as needed, e.g.
// MrvlIEtypes_SsIdParamSet_t SsIdParamSet;
// MrvlIEtypes_ChanListParamSet_t ChanListParamSet;
/* List Channel of in TLV scan
format */
// MrvlIEtypes_NumProbes_t NumProbes;
} __ATTRIB_PACK__ HostCmd_DS_802_11_BG_SCAN_CONFIG,
*pHostCmd_DS_802_11_BG_SCAN_CONFIG;
typedef struct _HostCmd_DS_802_11_BG_SCAN_QUERY {
u8 Flush;
} __ATTRIB_PACK__ HostCmd_DS_802_11_BG_SCAN_QUERY,
*pHostCmd_DS_802_11_BG_SCAN_QUERY;
typedef struct _HostCmd_DS_802_11_BG_SCAN_QUERY_RSP {
u32 ReportCondition;
HostCmd_DS_802_11_SCAN_RSP scanresp;
} __ATTRIB_PACK__ HostCmd_DS_802_11_BG_SCAN_QUERY_RSP,
*PHostCmd_DS_802_11_BG_SCAN_QUERY_RSP;
#endif /* BG_SCAN */
#ifdef ATIMGEN
typedef struct _HostCmd_DS_802_11_GENERATE_ATIM {
u16 Action;
u16 Enable;
} __ATTRIB_PACK__ HostCmd_DS_802_11_GENERATE_ATIM,
*PHostCmd_DS_802_11_GENERATE_ATIM;
#endif
typedef struct _HostCmd_DS_802_11_TPC_CFG {
u16 Action;
u8 Enable;
char P0;
char P1;
char P2;
u8 UseSNR;
} __ATTRIB_PACK__ HostCmd_DS_802_11_TPC_CFG;
#ifdef LED_GPIO_CTRL
typedef struct _HostCmd_DS_802_11_LED_CTRL {
u16 Action;
u16 NumLed;
u8 data[256];
} __ATTRIB_PACK__ HostCmd_DS_802_11_LED_CTRL;
#endif
typedef struct _HostCmd_DS_802_11_PWR_CFG {
u16 Action;
u8 Enable;
char PA_P0;
char PA_P1;
char PA_P2;
} __ATTRIB_PACK__ HostCmd_DS_802_11_PWR_CFG;
#ifdef AUTO_FREQ_CTRL
typedef struct _HostCmd_DS_802_11_AFC {
u16 afc_auto;
union {
struct {
u16 threshold;
u16 period;
} auto_mode;
struct {
s16 timing_offset;
s16 carrier_offset;
} manual_mode;
} b;
} __ATTRIB_PACK__ HostCmd_DS_802_11_AFC;
#define afc_data b.data
#define afc_thre b.auto_mode.threshold
#define afc_period b.auto_mode.period
#define afc_toff b.manual_mode.timing_offset
#define afc_foff b.manual_mode.carrier_offset
#endif /* AUTO_FREQ_CTRL */
#ifdef CIPHER_TEST
typedef struct _HostCmd_DS_802_11_KEY_ENCRYPT {
u16 Action;
u16 EncType;
u8 KeyIV[16];
u8 KeyEncKey[16];
u16 KeyDataLen;
u8 KeyData[512];
} __ATTRIB_PACK__ HostCmd_DS_802_11_KEY_ENCRYPT;
#define CIPHER_TEST_RC4 (1)
#define CIPHER_TEST_AES (2)
#endif
struct _HostCmd_DS_COMMAND {
u16 Command;
u16 Size;
u16 SeqNum;
u16 Result;
union {
HostCmd_DS_GET_HW_SPEC hwspec;
#ifdef PS_REQUIRED
HostCmd_DS_802_11_PS_MODE psmode;
#endif
HostCmd_DS_802_11_SCAN scan;
HostCmd_DS_802_11_SCAN_RSP scanresp;
HostCmd_DS_MAC_CONTROL macctrl;
HostCmd_DS_802_11_ASSOCIATE associate;
HostCmd_DS_802_11_ASSOCIATE_RSP associatersp;
HostCmd_DS_802_11_DEAUTHENTICATE deauth;
HostCmd_DS_802_11_SET_WEP wep;
HostCmd_DS_802_11_AD_HOC_START ads;
HostCmd_DS_802_11_RESET reset;
HostCmd_DS_802_11_QUERY_TRAFFIC traffic;
HostCmd_DS_802_11_QUERY_STATUS qstatus;
HostCmd_DS_802_11_AD_HOC_RESULT result;
HostCmd_DS_802_11_GET_LOG glog;
HostCmd_DS_802_11_AUTHENTICATE auth;
HostCmd_DS_802_11_AUTHENTICATE_RSP rauth;
HostCmd_DS_802_11_GET_STAT gstat;
HostCmd_DS_802_3_GET_STAT gstat_8023;
HostCmd_DS_802_11_SNMP_MIB smib;
HostCmd_DS_802_11_RF_TX_POWER txp;
HostCmd_DS_802_11_RF_ANTENNA rant;
HostCmd_DS_802_11_DATA_RATE drate;
HostCmd_DS_802_11_RATE_ADAPT_RATESET rateset;
HostCmd_DS_MAC_MULTICAST_ADR madr;
HostCmd_DS_802_11_AD_HOC_JOIN adj;
HostCmd_DS_802_11_RADIO_CONTROL radio;
HostCmd_DS_802_11_RF_CHANNEL rfchannel;
HostCmd_DS_802_11_RSSI rssi;
HostCmd_DS_802_11_RSSI_RSP rssirsp;
HostCmd_DS_802_11_DISASSOCIATE dassociate;
HostCmd_DS_802_11_AD_HOC_STOP adhoc_stop;
HostCmd_DS_802_11_MAC_ADDRESS macadd;
#ifdef WPA
HostCmd_DS_802_11_QUERY_RSN_OPTION qryrsn;
HostCmd_DS_802_11_ENABLE_RSN enbrsn;
HostCmd_DS_802_11_KEY_MATERIAL keymaterial;
#endif //WPA
HostCmd_DS_MAC_REG_ACCESS macreg;
HostCmd_DS_BBP_REG_ACCESS bbpreg;
HostCmd_DS_RF_REG_ACCESS rfreg;
HostCmd_DS_802_11_BEACON_STOP beacon_stop;
#ifdef CAL_DATA
HostCmd_DS_802_11_CAL_DATA_EXT caldataext;
#endif
#ifdef HOST_WAKEUP
HostCmd_DS_802_11_HOST_WAKE_UP_CFG hostwakeupcfg;
#endif
#ifdef MULTI_BANDS
HostCmd_DS_802_11_BAND_CONFIG band;
#endif
HostCmd_DS_802_11_EEPROM_ACCESS rdeeprom;
#ifdef GSPI83xx
HostCmd_DS_CMD_GSPI_BUS_CONFIG gspicfg;
#endif /* GSPI83xx */
#ifdef ATIMGEN
HostCmd_DS_802_11_GENERATE_ATIM genatim;
#endif
#ifdef ENABLE_802_11D
HostCmd_DS_802_11D_DOMAIN_INFO domaininfo;
HostCmd_DS_802_11D_DOMAIN_INFO_RSP domaininforesp;
#endif
#ifdef ENABLE_802_11H_TPC
HostCmd_DS_802_11H_TPC_REQUEST tpcrequest;
HostCmd_DS_802_11H_TPC_REQUEST_RSP tpcrequestresp;
HostCmd_DS_802_11H_TPC_INFO tpcinfo;
HostCmd_DS_802_11H_TPC_INFO_RSP tpcinforesp;
#endif
#ifdef BG_SCAN
HostCmd_DS_802_11_BG_SCAN_CONFIG bgscancfg;
HostCmd_DS_802_11_BG_SCAN_QUERY bgscanquery;
HostCmd_DS_802_11_BG_SCAN_QUERY_RSP bgscanqueryresp;
#endif /* BG_SCAN */
#ifdef WMM
HostCmd_DS_802_11_WMM_TSPEC tspec;
HostCmd_DS_802_11_WMM_ACK_POLICY ackpolicy;
HostCmd_DS_802_11_WMM_GET_STATUS getstatus;
HostCmd_DS_802_11_WMM_PRIO_PKT_AVAIL priopktavail;
#endif /* WMM */
HostCmd_DS_802_11_SLEEP_PARAMS sleep_params;
#ifdef BCA
HostCmd_DS_802_11_BCA_TIMESHARE bca_timeshare;
#endif
HostCmd_DS_802_11_INACTIVITY_TIMEOUT inactivity_timeout;
HostCmd_DS_802_11_SLEEP_PERIOD ps_sleeppd;
HostCmd_DS_802_11_TPC_CFG tpccfg;
HostCmd_DS_802_11_PWR_CFG pwrcfg;
#ifdef AUTO_FREQ_CTRL
HostCmd_DS_802_11_AFC afc;
#endif
#ifdef LED_GPIO_CTRL
HostCmd_DS_802_11_LED_CTRL ledgpio;
#endif
#ifdef PS_REQUIRED
#ifdef FW_WAKEUP_METHOD
HostCmd_DS_802_11_FW_WAKEUP_METHOD fwwakeupmethod;
#endif
#endif
#ifdef SUBSCRIBE_EVENT_CTRL
HostCmd_DS_802_11_SUBSCRIBE_EVENT events;
#endif
#ifdef CIPHER_TEST
HostCmd_DS_802_11_KEY_ENCRYPT key_encrypt;
#endif
} params;
} __ATTRIB_PACK__;
#define S_DS_GEN sizeof(HostCmd_DS_GEN)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -