aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-06-02 07:01:41 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-06-03 14:06:14 -0400
commit1f87f7d3a3b42b20f34cb03f0fd1a41c3d0e27f3 (patch)
tree642882153a48e910a415e6bb23bcfb79fadef6dd /include/net/mac80211.h
parent6081162e2ed78dfcf149b076b047078ab1445cc2 (diff)
cfg80211: add rfkill support
To be easier on drivers and users, have cfg80211 register an rfkill structure that drivers can access. When soft-killed, simply take down all interfaces; when hard-killed the driver needs to notify us and we will take down the interfaces after the fact. While rfkilled, interfaces cannot be set UP. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 0270aa6e08f..17d61d19d91 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -526,7 +526,7 @@ enum ieee80211_conf_flags {
526/** 526/**
527 * enum ieee80211_conf_changed - denotes which configuration changed 527 * enum ieee80211_conf_changed - denotes which configuration changed
528 * 528 *
529 * @IEEE80211_CONF_CHANGE_RADIO_ENABLED: the value of radio_enabled changed 529 * @_IEEE80211_CONF_CHANGE_RADIO_ENABLED: DEPRECATED
530 * @IEEE80211_CONF_CHANGE_LISTEN_INTERVAL: the listen interval changed 530 * @IEEE80211_CONF_CHANGE_LISTEN_INTERVAL: the listen interval changed
531 * @IEEE80211_CONF_CHANGE_RADIOTAP: the radiotap flag changed 531 * @IEEE80211_CONF_CHANGE_RADIOTAP: the radiotap flag changed
532 * @IEEE80211_CONF_CHANGE_PS: the PS flag or dynamic PS timeout changed 532 * @IEEE80211_CONF_CHANGE_PS: the PS flag or dynamic PS timeout changed
@@ -536,7 +536,7 @@ enum ieee80211_conf_flags {
536 * @IEEE80211_CONF_CHANGE_IDLE: Idle flag changed 536 * @IEEE80211_CONF_CHANGE_IDLE: Idle flag changed
537 */ 537 */
538enum ieee80211_conf_changed { 538enum ieee80211_conf_changed {
539 IEEE80211_CONF_CHANGE_RADIO_ENABLED = BIT(0), 539 _IEEE80211_CONF_CHANGE_RADIO_ENABLED = BIT(0),
540 IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = BIT(2), 540 IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = BIT(2),
541 IEEE80211_CONF_CHANGE_RADIOTAP = BIT(3), 541 IEEE80211_CONF_CHANGE_RADIOTAP = BIT(3),
542 IEEE80211_CONF_CHANGE_PS = BIT(4), 542 IEEE80211_CONF_CHANGE_PS = BIT(4),
@@ -546,6 +546,14 @@ enum ieee80211_conf_changed {
546 IEEE80211_CONF_CHANGE_IDLE = BIT(8), 546 IEEE80211_CONF_CHANGE_IDLE = BIT(8),
547}; 547};
548 548
549static inline __deprecated enum ieee80211_conf_changed
550__IEEE80211_CONF_CHANGE_RADIO_ENABLED(void)
551{
552 return _IEEE80211_CONF_CHANGE_RADIO_ENABLED;
553}
554#define IEEE80211_CONF_CHANGE_RADIO_ENABLED \
555 __IEEE80211_CONF_CHANGE_RADIO_ENABLED()
556
549/** 557/**
550 * struct ieee80211_conf - configuration of the device 558 * struct ieee80211_conf - configuration of the device
551 * 559 *
@@ -585,7 +593,7 @@ struct ieee80211_conf {
585 int max_sleep_period; 593 int max_sleep_period;
586 594
587 u16 listen_interval; 595 u16 listen_interval;
588 bool radio_enabled; 596 bool __deprecated radio_enabled;
589 597
590 u8 long_frame_max_tx_count, short_frame_max_tx_count; 598 u8 long_frame_max_tx_count, short_frame_max_tx_count;
591 599
@@ -1396,6 +1404,10 @@ enum ieee80211_ampdu_mlme_action {
1396 * is the first frame we expect to perform the action on. Notice 1404 * is the first frame we expect to perform the action on. Notice
1397 * that TX/RX_STOP can pass NULL for this parameter. 1405 * that TX/RX_STOP can pass NULL for this parameter.
1398 * Returns a negative error code on failure. 1406 * Returns a negative error code on failure.
1407 *
1408 * @rfkill_poll: Poll rfkill hardware state. If you need this, you also
1409 * need to set wiphy->rfkill_poll to %true before registration,
1410 * and need to call wiphy_rfkill_set_hw_state() in the callback.
1399 */ 1411 */
1400struct ieee80211_ops { 1412struct ieee80211_ops {
1401 int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); 1413 int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb);
@@ -1444,6 +1456,8 @@ struct ieee80211_ops {
1444 int (*ampdu_action)(struct ieee80211_hw *hw, 1456 int (*ampdu_action)(struct ieee80211_hw *hw,
1445 enum ieee80211_ampdu_mlme_action action, 1457 enum ieee80211_ampdu_mlme_action action,
1446 struct ieee80211_sta *sta, u16 tid, u16 *ssn); 1458 struct ieee80211_sta *sta, u16 tid, u16 *ssn);
1459
1460 void (*rfkill_poll)(struct ieee80211_hw *hw);
1447}; 1461};
1448 1462
1449/** 1463/**