diff options
Diffstat (limited to 'include/net/ieee80211.h')
-rw-r--r-- | include/net/ieee80211.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/net/ieee80211.h b/include/net/ieee80211.h index 72bd2b17eeb4..b3815fd810c8 100644 --- a/include/net/ieee80211.h +++ b/include/net/ieee80211.h | |||
@@ -781,6 +781,38 @@ enum ieee80211_state { | |||
781 | #define CFG_IEEE80211_COMPUTE_FCS (1<<1) | 781 | #define CFG_IEEE80211_COMPUTE_FCS (1<<1) |
782 | #define CFG_IEEE80211_RTS (1<<2) | 782 | #define CFG_IEEE80211_RTS (1<<2) |
783 | 783 | ||
784 | #define IEEE80211_24GHZ_MIN_CHANNEL 1 | ||
785 | #define IEEE80211_24GHZ_MAX_CHANNEL 14 | ||
786 | #define IEEE80211_24GHZ_CHANNELS 14 | ||
787 | |||
788 | #define IEEE80211_52GHZ_MIN_CHANNEL 36 | ||
789 | #define IEEE80211_52GHZ_MAX_CHANNEL 165 | ||
790 | #define IEEE80211_52GHZ_CHANNELS 32 | ||
791 | |||
792 | enum { | ||
793 | IEEE80211_CH_PASSIVE_ONLY = (1 << 0), | ||
794 | IEEE80211_CH_B_ONLY = (1 << 2), | ||
795 | IEEE80211_CH_NO_IBSS = (1 << 3), | ||
796 | IEEE80211_CH_UNIFORM_SPREADING = (1 << 4), | ||
797 | IEEE80211_CH_RADAR_DETECT = (1 << 5), | ||
798 | IEEE80211_CH_INVALID = (1 << 6), | ||
799 | }; | ||
800 | |||
801 | struct ieee80211_channel { | ||
802 | u16 freq; | ||
803 | u8 channel; | ||
804 | u8 flags; | ||
805 | u8 max_power; | ||
806 | }; | ||
807 | |||
808 | struct ieee80211_geo { | ||
809 | u8 name[4]; | ||
810 | u8 bg_channels; | ||
811 | u8 a_channels; | ||
812 | struct ieee80211_channel bg[IEEE80211_24GHZ_CHANNELS]; | ||
813 | struct ieee80211_channel a[IEEE80211_52GHZ_CHANNELS]; | ||
814 | }; | ||
815 | |||
784 | struct ieee80211_device { | 816 | struct ieee80211_device { |
785 | struct net_device *dev; | 817 | struct net_device *dev; |
786 | struct ieee80211_security sec; | 818 | struct ieee80211_security sec; |
@@ -789,6 +821,8 @@ struct ieee80211_device { | |||
789 | struct net_device_stats stats; | 821 | struct net_device_stats stats; |
790 | struct ieee80211_stats ieee_stats; | 822 | struct ieee80211_stats ieee_stats; |
791 | 823 | ||
824 | struct ieee80211_geo geo; | ||
825 | |||
792 | /* Probe / Beacon management */ | 826 | /* Probe / Beacon management */ |
793 | struct list_head network_free_list; | 827 | struct list_head network_free_list; |
794 | struct list_head network_list; | 828 | struct list_head network_list; |
@@ -1005,6 +1039,18 @@ extern void ieee80211_rx_mgt(struct ieee80211_device *ieee, | |||
1005 | struct ieee80211_hdr_4addr *header, | 1039 | struct ieee80211_hdr_4addr *header, |
1006 | struct ieee80211_rx_stats *stats); | 1040 | struct ieee80211_rx_stats *stats); |
1007 | 1041 | ||
1042 | /* ieee80211_geo.c */ | ||
1043 | extern const struct ieee80211_geo *ieee80211_get_geo(struct ieee80211_device | ||
1044 | *ieee); | ||
1045 | extern int ieee80211_set_geo(struct ieee80211_device *ieee, | ||
1046 | const struct ieee80211_geo *geo); | ||
1047 | |||
1048 | extern int ieee80211_is_valid_channel(struct ieee80211_device *ieee, | ||
1049 | u8 channel); | ||
1050 | extern int ieee80211_channel_to_index(struct ieee80211_device *ieee, | ||
1051 | u8 channel); | ||
1052 | extern u8 ieee80211_freq_to_channel(struct ieee80211_device *ieee, u32 freq); | ||
1053 | |||
1008 | /* ieee80211_wx.c */ | 1054 | /* ieee80211_wx.c */ |
1009 | extern int ieee80211_wx_get_scan(struct ieee80211_device *ieee, | 1055 | extern int ieee80211_wx_get_scan(struct ieee80211_device *ieee, |
1010 | struct iw_request_info *info, | 1056 | struct iw_request_info *info, |