diff options
Diffstat (limited to 'drivers/net/wireless/libertas/11d.h')
-rw-r--r-- | drivers/net/wireless/libertas/11d.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/11d.h b/drivers/net/wireless/libertas/11d.h new file mode 100644 index 000000000000..db2ebea9f231 --- /dev/null +++ b/drivers/net/wireless/libertas/11d.h | |||
@@ -0,0 +1,105 @@ | |||
1 | /** | ||
2 | * This header file contains data structures and | ||
3 | * function declarations of 802.11d | ||
4 | */ | ||
5 | #ifndef _WLAN_11D_ | ||
6 | #define _WLAN_11D_ | ||
7 | |||
8 | #include "types.h" | ||
9 | #include "defs.h" | ||
10 | |||
11 | #define UNIVERSAL_REGION_CODE 0xff | ||
12 | |||
13 | /** (Beaconsize(256)-5(IEId,len,contrystr(3))/3(FirstChan,NoOfChan,MaxPwr) | ||
14 | */ | ||
15 | #define MRVDRV_MAX_SUBBAND_802_11D 83 | ||
16 | |||
17 | #define COUNTRY_CODE_LEN 3 | ||
18 | #define MAX_NO_OF_CHAN 40 | ||
19 | |||
20 | struct cmd_ds_command; | ||
21 | |||
22 | /** Data structure for Country IE*/ | ||
23 | struct ieeetypes_subbandset { | ||
24 | u8 firstchan; | ||
25 | u8 nrchan; | ||
26 | u8 maxtxpwr; | ||
27 | } __attribute__ ((packed)); | ||
28 | |||
29 | struct ieeetypes_countryinfoset { | ||
30 | u8 element_id; | ||
31 | u8 len; | ||
32 | u8 countrycode[COUNTRY_CODE_LEN]; | ||
33 | struct ieeetypes_subbandset subband[1]; | ||
34 | }; | ||
35 | |||
36 | struct ieeetypes_countryinfofullset { | ||
37 | u8 element_id; | ||
38 | u8 len; | ||
39 | u8 countrycode[COUNTRY_CODE_LEN]; | ||
40 | struct ieeetypes_subbandset subband[MRVDRV_MAX_SUBBAND_802_11D]; | ||
41 | } __attribute__ ((packed)); | ||
42 | |||
43 | struct mrvlietypes_domainparamset { | ||
44 | struct mrvlietypesheader header; | ||
45 | u8 countrycode[COUNTRY_CODE_LEN]; | ||
46 | struct ieeetypes_subbandset subband[1]; | ||
47 | } __attribute__ ((packed)); | ||
48 | |||
49 | struct cmd_ds_802_11d_domain_info { | ||
50 | u16 action; | ||
51 | struct mrvlietypes_domainparamset domain; | ||
52 | } __attribute__ ((packed)); | ||
53 | |||
54 | /** domain regulatory information */ | ||
55 | struct wlan_802_11d_domain_reg { | ||
56 | /** country Code*/ | ||
57 | u8 countrycode[COUNTRY_CODE_LEN]; | ||
58 | /** No. of subband*/ | ||
59 | u8 nr_subband; | ||
60 | struct ieeetypes_subbandset subband[MRVDRV_MAX_SUBBAND_802_11D]; | ||
61 | }; | ||
62 | |||
63 | struct chan_power_11d { | ||
64 | u8 chan; | ||
65 | u8 pwr; | ||
66 | } __attribute__ ((packed)); | ||
67 | |||
68 | struct parsed_region_chan_11d { | ||
69 | u8 band; | ||
70 | u8 region; | ||
71 | s8 countrycode[COUNTRY_CODE_LEN]; | ||
72 | struct chan_power_11d chanpwr[MAX_NO_OF_CHAN]; | ||
73 | u8 nr_chan; | ||
74 | } __attribute__ ((packed)); | ||
75 | |||
76 | struct region_code_mapping { | ||
77 | u8 region[COUNTRY_CODE_LEN]; | ||
78 | u8 code; | ||
79 | }; | ||
80 | |||
81 | u8 libertas_get_scan_type_11d(u8 chan, | ||
82 | struct parsed_region_chan_11d *parsed_region_chan); | ||
83 | |||
84 | u32 libertas_chan_2_freq(u8 chan, u8 band); | ||
85 | |||
86 | enum state_11d libertas_get_state_11d(wlan_private * priv); | ||
87 | |||
88 | void libertas_init_11d(wlan_private * priv); | ||
89 | |||
90 | int libertas_set_universaltable(wlan_private * priv, u8 band); | ||
91 | |||
92 | int libertas_cmd_802_11d_domain_info(wlan_private * priv, | ||
93 | struct cmd_ds_command *cmd, u16 cmdno, | ||
94 | u16 cmdOption); | ||
95 | |||
96 | int libertas_cmd_enable_11d(wlan_private * priv, struct iwreq *wrq); | ||
97 | |||
98 | int libertas_ret_802_11d_domain_info(wlan_private * priv, | ||
99 | struct cmd_ds_command *resp); | ||
100 | |||
101 | int libertas_parse_dnld_countryinfo_11d(wlan_private * priv); | ||
102 | |||
103 | int libertas_create_dnld_countryinfo_11d(wlan_private * priv); | ||
104 | |||
105 | #endif /* _WLAN_11D_ */ | ||