📄 oid.h
字号:
// minmum roaming period is 30 seconds
#define MRVL_L2ROAMING_MIN_PERIOD 30
//typedef struct _OID_MRVL_DS_LED_CONTROL
//{
// NDIS_OID Oid;
// ULONG GpioNum; // GPIO number for LED(=0, 0-7)
// ULONG LedCycle; // LED Cycle: 0-5, or ON/OFF
// ULONG DutyCycle; // LED Duty Cycle: 0-4
//} OID_MRVL_DS_LED_CONTROL, *POID_MRVL_DS_LED_CONTROL;
// Define LED cycles
#define MRVL_LED_CONTROL_LED_CYCLE_37MS 0x0
#define MRVL_LED_CONTROL_LED_CYCLE_74MS 0x1
#define MRVL_LED_CONTROL_LED_CYCLE_149MS 0x2
#define MRVL_LED_CONTROL_LED_CYCLE_298MS 0x3
#define MRVL_LED_CONTROL_LED_CYCLE_596MS 0x4
#define MRVL_LED_CONTROL_LED_CYCLE_1192MS 0x5
#define MRVL_LED_CONTROL_LED_ON 0xfffd // LED ON
#define MRVL_LED_CONTROL_LED_OFF 0xffff // LED OFF
/*
Define LED duty cycles
*/
#define MRVL_LED_CONTROL_LED_DUTY_CYCLE_2 0x0 // 1/2
#define MRVL_LED_CONTROL_LED_DUTY_CYCLE_4 0x1 // 1/4
#define MRVL_LED_CONTROL_LED_DUTY_CYCLE_8 0x2 // 1/8
#define MRVL_LED_CONTROL_LED_DUTY_CYCLE_16 0x3 // 1/16
#define MRVL_LED_CONTROL_LED_DUTY_CYCLE_32 0x4 // 1/32
typedef struct _OID_MRVL_DS_MULTIPLE_DTIM
{
NDIS_OID Oid;
#ifdef MRVL_USE_MULTIPLE_DTIM
USHORT DtimNum;
#else
UCHAR DtimNum; // multiple of DTIM from AP
#endif
} OID_MRVL_DS_MULTIPLE_DTIM, *POID_MRVL_DS_MULTIPLE_DTIM;
#ifdef DEEP_SLEEP
typedef struct _OID_MRVL_DS_DEEP_SLEEP
{
ULONG ulEnterDeepSleep;
} OID_MRVL_DS_DEEP_SLEEP, *POID_MRVL_DS_DEEP_SLEEP;
#endif
#ifdef HOST_WAKEUP
#pragma pack(1)
typedef struct _OID_MRVL_DS_HOST_WAKEUP_FILTER
{
MrvlIEtypesHeader_t Header;
USHORT AddressType;
USHORT EthType;
ULONG Ipv4Addr;
} OID_MRVL_DS_HOST_WAKEUP_FILTER, *POID_MRVL_DS_HOST_WAKEUP_FILTER;
typedef struct _OID_MRVL_DS_HOST_WAKEUP
{
// NDIS_OID OId;
// USHORT CmdLen;
ULONG ulCriteria;
UCHAR ucGPIO;
UCHAR ucGap;
OID_MRVL_DS_HOST_WAKEUP_FILTER pFilter[1];
} OID_MRVL_DS_HOST_WAKEUP, *POID_MRVL_DS_HOST_WAKEUP;
typedef struct _OID_MRVL_DS_HOST_WAKEUP_STATUS
{
ULONG hwState;
ULONG psState;
} OID_MRVL_DS_HOST_WAKEUP_STATUS, *POID_MRVL_DS_HOST_WAKEUP_STATUS;
#pragma pack()
#endif
#ifdef MRVL_SLEEPPARAMS
typedef struct _OID_MRVL_DS_SLEEP_PARAMS
{
USHORT Error;
USHORT Offset;
USHORT StableTime;
UCHAR CalControl;
UCHAR ExternalSleepClk;
USHORT Reserved;
} OID_MRVL_DS_SLEEP_PARAMS, *POID_MRVL_DS_SLEEP_PARAMS;
#endif
typedef struct
{
UCHAR Led;
UCHAR Pin;
} Led_Pin;
typedef struct _MrvlIEtypes_LedGpio_t
{
MrvlIEtypesHeader_t Header;
Led_Pin LedPin[1];
} MrvlIEtypes_LedGpio_t;
typedef struct _OID_MRVL_DS_LED_CONTROL
{
NDIS_OID Oid;
USHORT NumLed;
union {
MrvlIEtypes_LedGpio_t LedGpio;
UCHAR data[256]; //TLV format
} Param;
} OID_MRVL_DS_LED_CONTROL, *POID_MRVL_DS_LED_CONTROL;
typedef struct _OID_MRVL_DS_CAL_DATA
{
NDIS_OID Oid;
UCHAR Reserved1[9];
UCHAR PAOption; // PA calibration options
UCHAR ExtPA; // type of external PA
UCHAR Ant; // Antenna selection
USHORT IntPA[14]; // channel calibration
UCHAR PAConfig[4]; // RF register calibration
UCHAR Reserved2[4];
USHORT Domain; // Regulatory Domain
UCHAR ECO; // ECO present or not
UCHAR LCT_cal; // VGA capacitor calibration
UCHAR Reserved3[12];
} OID_MRVL_DS_CAL_DATA, *POID_MRVL_DS_CAL_DATA;
typedef struct _OID_MRVL_DS_CAL_DATA_EXT
{
NDIS_OID Oid;
USHORT Revision;
USHORT CalDataLen;
UCHAR CalData[1024];
} OID_MRVL_DS_CAL_DATA_EXT, *POID_MRVL_DS_CAL_DATA_EXT;
typedef struct _OID_MRVL_DS_PWR_CFG
{
NDIS_OID Oid;
UCHAR Enable;
UCHAR P0;
UCHAR P1;
UCHAR P2;
} OID_MRVL_DS_PWR_CFG, *POID_MRVL_DS_PWR_CFG;
typedef struct _OID_MRVL_DS_TPC_CFG
{
NDIS_OID Oid;
UCHAR Enable;
UCHAR P0;
UCHAR P1;
UCHAR P2;
UCHAR UseSNR;
} OID_MRVL_DS_TPC_CFG, *POID_MRVL_DS_TPC_CFG;
typedef struct _OID_MRVL_DS_RATE_ADAPT_RATESET
{
NDIS_OID Oid;
USHORT EnableHwAuto; // 1: enable
USHORT Bitmap;
} OID_MRVL_DS_RATE_ADAPT_RATESET, *POID_MRVL_DS_RATE_ADAPT_RATESET;
typedef struct _OID_MRVL_DS_SUBSCRIBE_EVENT
{
USHORT Events;
union{
MrvlIEtypes_EventTLV_t TLVData;
MrvlIEtypes_RssiParamSet_t LowRssi;
MrvlIEtypes_SnrThreshold_t LowSnr;
MrvlIEtypes_FailureCount_t FailCnt;
MrvlIEtypes_BeaconsMissed_t BcnMiss;
MrvlIEtypes_RssiParamSet_t HighRssi;
MrvlIEtypes_SnrThreshold_t HighSnr;
} Param;
} OID_MRVL_DS_SUBSCRIBE_EVENT, *POID_MRVL_DS_SUBSCRIBE_EVENT;
#ifdef BG_SCAN
#define MAX_LEN_OF_CHANNEL_LIST_STR 100
#define MAX_BG_SCAN_SSID 6
#pragma pack(1)
typedef struct _REG_BG_SCAN_CONFIG
{
ULONG Enable;
ULONG ScanInterval;
ULONG StoreCondition;
ULONG ReportCondition;
ULONG ScanPriority;
ULONG NumProbes;
ULONG BcastProbe;
ULONG NumSSIDProbe;
ULONG SnrValue;
ULONG SnrFreq;
UCHAR ChannelList[MAX_LEN_OF_CHANNEL_LIST_STR];
ULONG ScanTime;
UCHAR Ssids[MAX_BG_SCAN_SSID][NDIS_802_11_LENGTH_SSID]; // SSID string will be terminated by a 0 or it's len is equale to 32.
} REG_BG_SCAN_CONFIG, *PREG_BG_SCAN_CONFIG;
typedef struct _OID_MRVL_DS_BG_SCAN_CONFIG
{
NDIS_OID Oid;
USHORT CmdLen;
USHORT Action;
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];
} OID_MRVL_DS_BG_SCAN_CONFIG, *POID_MRVL_DS_BG_SCAN_CONFIG;
typedef struct _OID_MRVL_DS_BG_SCAN_QUERY
{
NDIS_OID Oid;
UCHAR Flush;
} OID_MRVL_DS_BG_SCAN_QUERY, *POID_MRVL_DS_BG_SCAN_QUERY;
#pragma pack()
#endif
#endif // _MRVL_OID_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -