cfg80211: Add new wireless regulatory infrastructure
[pandora-kernel.git] / net / wireless / reg.h
1 #ifndef __NET_WIRELESS_REG_H
2 #define __NET_WIRELESS_REG_H
3
4 extern const struct ieee80211_regdomain world_regdom;
5 #ifdef CONFIG_WIRELESS_OLD_REGULATORY
6 extern const struct ieee80211_regdomain us_regdom;
7 extern const struct ieee80211_regdomain jp_regdom;
8 extern const struct ieee80211_regdomain eu_regdom;
9 #endif
10
11 extern struct ieee80211_regdomain *cfg80211_regdomain;
12 extern struct ieee80211_regdomain *cfg80211_world_regdom;
13 extern struct list_head regulatory_requests;
14
15 struct regdom_last_setby {
16         struct wiphy *wiphy;
17         u8 initiator;
18 };
19
20 /* wiphy is set if this request's initiator is REGDOM_SET_BY_DRIVER */
21 struct regulatory_request {
22         struct list_head list;
23         struct wiphy *wiphy;
24         int granted;
25         enum reg_set_by initiator;
26         char alpha2[2];
27 };
28
29 bool is_world_regdom(char *alpha2);
30 bool reg_is_valid_request(char *alpha2);
31
32 int set_regdom(struct ieee80211_regdomain *rd);
33 int __regulatory_hint_alpha2(struct wiphy *wiphy, enum reg_set_by set_by,
34                       const char *alpha2);
35
36 int regulatory_init(void);
37 void regulatory_exit(void);
38
39 void print_regdomain_info(struct ieee80211_regdomain *);
40
41 /* If a char is A-Z */
42 #define IS_ALPHA(letter) (letter >= 65 && letter <= 90)
43
44 #endif  /* __NET_WIRELESS_REG_H */