[ARM] pxa: Gumstix Verdex PCMCIA support
[linux-2.6/verdex.git] / drivers / net / wireless / libertas / 11d.h
blobfb75d3e321a05a64fcd5c7e0736a562f47c83fd1
1 /**
2 * This header file contains data structures and
3 * function declarations of 802.11d
4 */
5 #ifndef _LBS_11D_
6 #define _LBS_11D_
8 #include "types.h"
9 #include "defs.h"
11 #define UNIVERSAL_REGION_CODE 0xff
13 /** (Beaconsize(256)-5(IEId,len,contrystr(3))/3(FirstChan,NoOfChan,MaxPwr)
15 #define MRVDRV_MAX_SUBBAND_802_11D 83
17 #define COUNTRY_CODE_LEN 3
18 #define MAX_NO_OF_CHAN 40
20 struct cmd_ds_command;
22 /** Data structure for Country IE*/
23 struct ieee_subbandset {
24 u8 firstchan;
25 u8 nrchan;
26 u8 maxtxpwr;
27 } __attribute__ ((packed));
29 struct ieee_ie_country_info_set {
30 struct ieee_ie_header header;
32 u8 countrycode[COUNTRY_CODE_LEN];
33 struct ieee_subbandset subband[1];
36 struct ieee_ie_country_info_full_set {
37 struct ieee_ie_header header;
39 u8 countrycode[COUNTRY_CODE_LEN];
40 struct ieee_subbandset subband[MRVDRV_MAX_SUBBAND_802_11D];
41 } __attribute__ ((packed));
43 struct mrvl_ie_domain_param_set {
44 struct mrvl_ie_header header;
46 u8 countrycode[COUNTRY_CODE_LEN];
47 struct ieee_subbandset subband[1];
48 } __attribute__ ((packed));
50 struct cmd_ds_802_11d_domain_info {
51 __le16 action;
52 struct mrvl_ie_domain_param_set domain;
53 } __attribute__ ((packed));
55 /** domain regulatory information */
56 struct lbs_802_11d_domain_reg {
57 /** country Code*/
58 u8 countrycode[COUNTRY_CODE_LEN];
59 /** No. of subband*/
60 u8 nr_subband;
61 struct ieee_subbandset subband[MRVDRV_MAX_SUBBAND_802_11D];
64 struct chan_power_11d {
65 u8 chan;
66 u8 pwr;
67 } __attribute__ ((packed));
69 struct parsed_region_chan_11d {
70 u8 band;
71 u8 region;
72 s8 countrycode[COUNTRY_CODE_LEN];
73 struct chan_power_11d chanpwr[MAX_NO_OF_CHAN];
74 u8 nr_chan;
75 } __attribute__ ((packed));
77 struct region_code_mapping {
78 u8 region[COUNTRY_CODE_LEN];
79 u8 code;
82 struct lbs_private;
84 u8 lbs_get_scan_type_11d(u8 chan,
85 struct parsed_region_chan_11d *parsed_region_chan);
87 u32 lbs_chan_2_freq(u8 chan);
89 void lbs_init_11d(struct lbs_private *priv);
91 int lbs_set_universaltable(struct lbs_private *priv, u8 band);
93 int lbs_cmd_802_11d_domain_info(struct lbs_private *priv,
94 struct cmd_ds_command *cmd, u16 cmdno,
95 u16 cmdOption);
97 int lbs_ret_802_11d_domain_info(struct cmd_ds_command *resp);
99 struct bss_descriptor;
100 int lbs_parse_dnld_countryinfo_11d(struct lbs_private *priv,
101 struct bss_descriptor * bss);
103 int lbs_create_dnld_countryinfo_11d(struct lbs_private *priv);
105 #endif