diff options
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 9d1514727f6e..c088c46704a3 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -293,6 +293,7 @@ struct ieee80211_if_managed { | |||
293 | int auth_tries; /* retries for auth req */ | 293 | int auth_tries; /* retries for auth req */ |
294 | int assoc_tries; /* retries for assoc req */ | 294 | int assoc_tries; /* retries for assoc req */ |
295 | 295 | ||
296 | unsigned long timers_running; /* used for quiesce/restart */ | ||
296 | bool powersave; /* powersave requested for this iface */ | 297 | bool powersave; /* powersave requested for this iface */ |
297 | 298 | ||
298 | unsigned long request; | 299 | unsigned long request; |
@@ -333,6 +334,9 @@ struct ieee80211_if_ibss { | |||
333 | 334 | ||
334 | unsigned long request; | 335 | unsigned long request; |
335 | unsigned long last_scan_completed; | 336 | unsigned long last_scan_completed; |
337 | |||
338 | bool timer_running; | ||
339 | |||
336 | bool fixed_bssid; | 340 | bool fixed_bssid; |
337 | bool fixed_channel; | 341 | bool fixed_channel; |
338 | 342 | ||
@@ -358,6 +362,8 @@ struct ieee80211_if_mesh { | |||
358 | struct timer_list mesh_path_timer; | 362 | struct timer_list mesh_path_timer; |
359 | struct sk_buff_head skb_queue; | 363 | struct sk_buff_head skb_queue; |
360 | 364 | ||
365 | unsigned long timers_running; | ||
366 | |||
361 | bool housekeeping; | 367 | bool housekeeping; |
362 | 368 | ||
363 | u8 mesh_id[IEEE80211_MAX_MESH_ID_LEN]; | 369 | u8 mesh_id[IEEE80211_MAX_MESH_ID_LEN]; |
@@ -609,6 +615,21 @@ struct ieee80211_local { | |||
609 | unsigned int filter_flags; /* FIF_* */ | 615 | unsigned int filter_flags; /* FIF_* */ |
610 | struct iw_statistics wstats; | 616 | struct iw_statistics wstats; |
611 | bool tim_in_locked_section; /* see ieee80211_beacon_get() */ | 617 | bool tim_in_locked_section; /* see ieee80211_beacon_get() */ |
618 | |||
619 | /* | ||
620 | * suspended is true if we finished all the suspend _and_ we have | ||
621 | * not yet come up from resume. This is to be used by mac80211 | ||
622 | * to ensure driver sanity during suspend and mac80211's own | ||
623 | * sanity. It can eventually be used for WoW as well. | ||
624 | */ | ||
625 | bool suspended; | ||
626 | |||
627 | /* | ||
628 | * quiescing is true during the suspend process _only_ to | ||
629 | * ease timer cancelling etc. | ||
630 | */ | ||
631 | bool quiescing; | ||
632 | |||
612 | int tx_headroom; /* required headroom for hardware/radiotap */ | 633 | int tx_headroom; /* required headroom for hardware/radiotap */ |
613 | 634 | ||
614 | /* Tasklet and skb queue to process calls from IRQ mode. All frames | 635 | /* Tasklet and skb queue to process calls from IRQ mode. All frames |
@@ -758,10 +779,6 @@ struct ieee80211_local { | |||
758 | struct dentry *rcdir; | 779 | struct dentry *rcdir; |
759 | struct dentry *rcname; | 780 | struct dentry *rcname; |
760 | struct dentry *frequency; | 781 | struct dentry *frequency; |
761 | struct dentry *rts_threshold; | ||
762 | struct dentry *fragmentation_threshold; | ||
763 | struct dentry *short_retry_limit; | ||
764 | struct dentry *long_retry_limit; | ||
765 | struct dentry *total_ps_buffered; | 782 | struct dentry *total_ps_buffered; |
766 | struct dentry *wep_iv; | 783 | struct dentry *wep_iv; |
767 | struct dentry *tsf; | 784 | struct dentry *tsf; |
@@ -938,6 +955,11 @@ void ieee80211_send_pspoll(struct ieee80211_local *local, | |||
938 | void ieee80211_recalc_ps(struct ieee80211_local *local, s32 latency); | 955 | void ieee80211_recalc_ps(struct ieee80211_local *local, s32 latency); |
939 | int ieee80211_max_network_latency(struct notifier_block *nb, | 956 | int ieee80211_max_network_latency(struct notifier_block *nb, |
940 | unsigned long data, void *dummy); | 957 | unsigned long data, void *dummy); |
958 | void ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata, | ||
959 | struct ieee80211_channel_sw_ie *sw_elem, | ||
960 | struct ieee80211_bss *bss); | ||
961 | void ieee80211_sta_quiesce(struct ieee80211_sub_if_data *sdata); | ||
962 | void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata); | ||
941 | 963 | ||
942 | /* IBSS code */ | 964 | /* IBSS code */ |
943 | void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local); | 965 | void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local); |
@@ -950,6 +972,8 @@ struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, | |||
950 | int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata, | 972 | int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata, |
951 | struct cfg80211_ibss_params *params); | 973 | struct cfg80211_ibss_params *params); |
952 | int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata); | 974 | int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata); |
975 | void ieee80211_ibss_quiesce(struct ieee80211_sub_if_data *sdata); | ||
976 | void ieee80211_ibss_restart(struct ieee80211_sub_if_data *sdata); | ||
953 | 977 | ||
954 | /* scan/BSS handling */ | 978 | /* scan/BSS handling */ |
955 | void ieee80211_scan_work(struct work_struct *work); | 979 | void ieee80211_scan_work(struct work_struct *work); |
@@ -960,6 +984,7 @@ int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata, | |||
960 | int ieee80211_scan_results(struct ieee80211_local *local, | 984 | int ieee80211_scan_results(struct ieee80211_local *local, |
961 | struct iw_request_info *info, | 985 | struct iw_request_info *info, |
962 | char *buf, size_t len); | 986 | char *buf, size_t len); |
987 | void ieee80211_scan_cancel(struct ieee80211_local *local); | ||
963 | ieee80211_rx_result | 988 | ieee80211_rx_result |
964 | ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, | 989 | ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, |
965 | struct sk_buff *skb, | 990 | struct sk_buff *skb, |
@@ -1035,14 +1060,6 @@ int __ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, | |||
1035 | void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, | 1060 | void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, |
1036 | struct ieee80211_mgmt *mgmt, | 1061 | struct ieee80211_mgmt *mgmt, |
1037 | size_t len); | 1062 | size_t len); |
1038 | void ieee80211_chswitch_timer(unsigned long data); | ||
1039 | void ieee80211_chswitch_work(struct work_struct *work); | ||
1040 | void ieee80211_process_chanswitch(struct ieee80211_sub_if_data *sdata, | ||
1041 | struct ieee80211_channel_sw_ie *sw_elem, | ||
1042 | struct ieee80211_bss *bss); | ||
1043 | void ieee80211_handle_pwr_constr(struct ieee80211_sub_if_data *sdata, | ||
1044 | u16 capab_info, u8 *pwr_constr_elem, | ||
1045 | u8 pwr_constr_elem_len); | ||
1046 | 1063 | ||
1047 | /* Suspend/resume and hw reconfiguration */ | 1064 | /* Suspend/resume and hw reconfiguration */ |
1048 | int ieee80211_reconfig(struct ieee80211_local *local); | 1065 | int ieee80211_reconfig(struct ieee80211_local *local); |
@@ -1068,8 +1085,6 @@ static inline int __ieee80211_resume(struct ieee80211_hw *hw) | |||
1068 | 1085 | ||
1069 | /* utility functions/constants */ | 1086 | /* utility functions/constants */ |
1070 | extern void *mac80211_wiphy_privid; /* for wiphy privid */ | 1087 | extern void *mac80211_wiphy_privid; /* for wiphy privid */ |
1071 | extern const unsigned char rfc1042_header[6]; | ||
1072 | extern const unsigned char bridge_tunnel_header[6]; | ||
1073 | u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len, | 1088 | u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len, |
1074 | enum nl80211_iftype type); | 1089 | enum nl80211_iftype type); |
1075 | int ieee80211_frame_duration(struct ieee80211_local *local, size_t len, | 1090 | int ieee80211_frame_duration(struct ieee80211_local *local, size_t len, |