diff options
Diffstat (limited to 'drivers/staging/rt2860/spectrum_def.h')
-rw-r--r-- | drivers/staging/rt2860/spectrum_def.h | 189 |
1 files changed, 148 insertions, 41 deletions
diff --git a/drivers/staging/rt2860/spectrum_def.h b/drivers/staging/rt2860/spectrum_def.h index 4ca4817bba0..8ffcfb0d04f 100644 --- a/drivers/staging/rt2860/spectrum_def.h +++ b/drivers/staging/rt2860/spectrum_def.h @@ -39,57 +39,164 @@ #ifndef __SPECTRUM_DEF_H__ #define __SPECTRUM_DEF_H__ -#define MAX_MEASURE_REQ_TAB_SIZE 3 +#define MAX_MEASURE_REQ_TAB_SIZE 32 #define MAX_HASH_MEASURE_REQ_TAB_SIZE MAX_MEASURE_REQ_TAB_SIZE -#define MAX_TPC_REQ_TAB_SIZE 3 +#define MAX_TPC_REQ_TAB_SIZE 32 #define MAX_HASH_TPC_REQ_TAB_SIZE MAX_TPC_REQ_TAB_SIZE -#define MIN_RCV_PWR 100 /* Negative value ((dBm) */ +#define MIN_RCV_PWR 100 /* Negative value ((dBm) */ -#define RM_TPC_REQ 0 -#define RM_MEASURE_REQ 1 - -#define RM_BASIC 0 -#define RM_CCA 1 -#define RM_RPI_HISTOGRAM 2 - -#define TPC_REQ_AGE_OUT 500 /* ms */ -#define MQ_REQ_AGE_OUT 500 /* ms */ +#define TPC_REQ_AGE_OUT 500 /* ms */ +#define MQ_REQ_AGE_OUT 500 /* ms */ #define TPC_DIALOGTOKEN_HASH_INDEX(_DialogToken) ((_DialogToken) % MAX_HASH_TPC_REQ_TAB_SIZE) #define MQ_DIALOGTOKEN_HASH_INDEX(_DialogToken) ((_DialogToken) % MAX_MEASURE_REQ_TAB_SIZE) -typedef struct _MEASURE_REQ_ENTRY -{ - struct _MEASURE_REQ_ENTRY *pNext; - ULONG lastTime; - BOOLEAN Valid; - UINT8 DialogToken; - UINT8 MeasureDialogToken[3]; // 0:basic measure, 1: CCA measure, 2: RPI_Histogram measure. -} MEASURE_REQ_ENTRY, *PMEASURE_REQ_ENTRY; - -typedef struct _MEASURE_REQ_TAB -{ - UCHAR Size; - PMEASURE_REQ_ENTRY Hash[MAX_HASH_MEASURE_REQ_TAB_SIZE]; - MEASURE_REQ_ENTRY Content[MAX_MEASURE_REQ_TAB_SIZE]; -} MEASURE_REQ_TAB, *PMEASURE_REQ_TAB; - -typedef struct _TPC_REQ_ENTRY -{ - struct _TPC_REQ_ENTRY *pNext; - ULONG lastTime; +struct rt_measure_req_entry; + +struct rt_measure_req_entry { + struct rt_measure_req_entry *pNext; + unsigned long lastTime; BOOLEAN Valid; - UINT8 DialogToken; -} TPC_REQ_ENTRY, *PTPC_REQ_ENTRY; + u8 DialogToken; + u8 MeasureDialogToken[3]; /* 0:basic measure, 1: CCA measure, 2: RPI_Histogram measure. */ +}; -typedef struct _TPC_REQ_TAB -{ - UCHAR Size; - PTPC_REQ_ENTRY Hash[MAX_HASH_TPC_REQ_TAB_SIZE]; - TPC_REQ_ENTRY Content[MAX_TPC_REQ_TAB_SIZE]; -} TPC_REQ_TAB, *PTPC_REQ_TAB; +struct rt_measure_req_tab { + u8 Size; + struct rt_measure_req_entry *Hash[MAX_HASH_MEASURE_REQ_TAB_SIZE]; + struct rt_measure_req_entry Content[MAX_MEASURE_REQ_TAB_SIZE]; +}; -#endif // __SPECTRUM_DEF_H__ // +struct rt_tpc_req_entry; +struct rt_tpc_req_entry { + struct rt_tpc_req_entry *pNext; + unsigned long lastTime; + BOOLEAN Valid; + u8 DialogToken; +}; + +struct rt_tpc_req_tab { + u8 Size; + struct rt_tpc_req_entry *Hash[MAX_HASH_TPC_REQ_TAB_SIZE]; + struct rt_tpc_req_entry Content[MAX_TPC_REQ_TAB_SIZE]; +}; + +/* The regulatory information */ +struct rt_dot11_channel_set { + u8 NumberOfChannels; + u8 MaxTxPwr; + u8 ChannelList[16]; +}; + +struct rt_dot11_regulatory_information { + u8 RegulatoryClass; + struct rt_dot11_channel_set ChannelSet; +}; + +#define RM_TPC_REQ 0 +#define RM_MEASURE_REQ 1 + +#define RM_BASIC 0 +#define RM_CCA 1 +#define RM_RPI_HISTOGRAM 2 +#define RM_CH_LOAD 3 +#define RM_NOISE_HISTOGRAM 4 + +struct PACKED rt_tpc_report_info { + u8 TxPwr; + u8 LinkMargin; +}; + +struct PACKED rt_ch_sw_ann_info { + u8 ChSwMode; + u8 Channel; + u8 ChSwCnt; +}; + +typedef union PACKED _MEASURE_REQ_MODE { + struct PACKED { + u8 Parallel:1; + u8 Enable:1; + u8 Request:1; + u8 Report:1; + u8 DurationMandatory:1; + u8:3; + } field; + u8 word; +} MEASURE_REQ_MODE, *PMEASURE_REQ_MODE; + +struct PACKED rt_measure_req { + u8 ChNum; + u64 MeasureStartTime; + u16 MeasureDuration; +}; + +struct PACKED rt_measure_req_info { + u8 Token; + MEASURE_REQ_MODE ReqMode; + u8 ReqType; + u8 Oct[0]; +}; + +typedef union PACKED _MEASURE_BASIC_REPORT_MAP { + struct PACKED { + u8 BSS:1; + + u8 OfdmPreamble:1; + u8 UnidentifiedSignal:1; + u8 Radar:1; + u8 Unmeasure:1; + u8 Rev:3; + } field; + u8 word; +} MEASURE_BASIC_REPORT_MAP, *PMEASURE_BASIC_REPORT_MAP; + +struct PACKED rt_measure_basic_report { + u8 ChNum; + u64 MeasureStartTime; + u16 MeasureDuration; + MEASURE_BASIC_REPORT_MAP Map; +}; + +struct PACKED rt_measure_cca_report { + u8 ChNum; + u64 MeasureStartTime; + u16 MeasureDuration; + u8 CCA_Busy_Fraction; +}; + +struct PACKED rt_measure_rpi_report { + u8 ChNum; + u64 MeasureStartTime; + u16 MeasureDuration; + u8 RPI_Density[8]; +}; + +typedef union PACKED _MEASURE_REPORT_MODE { + struct PACKED { + u8 Late:1; + u8 Incapable:1; + u8 Refused:1; + u8 Rev:5; + } field; + u8 word; +} MEASURE_REPORT_MODE, *PMEASURE_REPORT_MODE; + +struct PACKED rt_measure_report_info { + u8 Token; + u8 ReportMode; + u8 ReportType; + u8 Octect[0]; +}; + +struct PACKED rt_quiet_info { + u8 QuietCnt; + u8 QuietPeriod; + u16 QuietDuration; + u16 QuietOffset; +}; + +#endif /* __SPECTRUM_DEF_H__ // */ |