diff options
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index c06104476973..ce7cb1b5d453 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -397,6 +397,11 @@ static inline struct ieee80211_tx_info *IEEE80211_SKB_CB(struct sk_buff *skb) | |||
397 | return (struct ieee80211_tx_info *)skb->cb; | 397 | return (struct ieee80211_tx_info *)skb->cb; |
398 | } | 398 | } |
399 | 399 | ||
400 | static inline struct ieee80211_rx_status *IEEE80211_SKB_RXCB(struct sk_buff *skb) | ||
401 | { | ||
402 | return (struct ieee80211_rx_status *)skb->cb; | ||
403 | } | ||
404 | |||
400 | /** | 405 | /** |
401 | * ieee80211_tx_info_clear_status - clear TX status | 406 | * ieee80211_tx_info_clear_status - clear TX status |
402 | * | 407 | * |
@@ -478,7 +483,7 @@ enum mac80211_rx_flags { | |||
478 | * | 483 | * |
479 | * The low-level driver should provide this information (the subset | 484 | * The low-level driver should provide this information (the subset |
480 | * supported by hardware) to the 802.11 code with each received | 485 | * supported by hardware) to the 802.11 code with each received |
481 | * frame. | 486 | * frame, in the skb's control buffer (cb). |
482 | * | 487 | * |
483 | * @mactime: value in microseconds of the 64-bit Time Synchronization Function | 488 | * @mactime: value in microseconds of the 64-bit Time Synchronization Function |
484 | * (TSF) timer when the first data symbol (MPDU) arrived at the hardware. | 489 | * (TSF) timer when the first data symbol (MPDU) arrived at the hardware. |
@@ -1411,6 +1416,8 @@ enum ieee80211_ampdu_mlme_action { | |||
1411 | * @rfkill_poll: Poll rfkill hardware state. If you need this, you also | 1416 | * @rfkill_poll: Poll rfkill hardware state. If you need this, you also |
1412 | * need to set wiphy->rfkill_poll to %true before registration, | 1417 | * need to set wiphy->rfkill_poll to %true before registration, |
1413 | * and need to call wiphy_rfkill_set_hw_state() in the callback. | 1418 | * and need to call wiphy_rfkill_set_hw_state() in the callback. |
1419 | * | ||
1420 | * @testmode_cmd: Implement a cfg80211 test mode command. | ||
1414 | */ | 1421 | */ |
1415 | struct ieee80211_ops { | 1422 | struct ieee80211_ops { |
1416 | int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); | 1423 | int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); |
@@ -1461,6 +1468,9 @@ struct ieee80211_ops { | |||
1461 | struct ieee80211_sta *sta, u16 tid, u16 *ssn); | 1468 | struct ieee80211_sta *sta, u16 tid, u16 *ssn); |
1462 | 1469 | ||
1463 | void (*rfkill_poll)(struct ieee80211_hw *hw); | 1470 | void (*rfkill_poll)(struct ieee80211_hw *hw); |
1471 | #ifdef CONFIG_NL80211_TESTMODE | ||
1472 | int (*testmode_cmd)(struct ieee80211_hw *hw, void *data, int len); | ||
1473 | #endif | ||
1464 | }; | 1474 | }; |
1465 | 1475 | ||
1466 | /** | 1476 | /** |
@@ -1606,9 +1616,11 @@ void ieee80211_free_hw(struct ieee80211_hw *hw); | |||
1606 | */ | 1616 | */ |
1607 | void ieee80211_restart_hw(struct ieee80211_hw *hw); | 1617 | void ieee80211_restart_hw(struct ieee80211_hw *hw); |
1608 | 1618 | ||
1609 | /* trick to avoid symbol clashes with the ieee80211 subsystem */ | 1619 | /* |
1610 | void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, | 1620 | * trick to avoid symbol clashes with the ieee80211 subsystem, |
1611 | struct ieee80211_rx_status *status); | 1621 | * use the inline below instead |
1622 | */ | ||
1623 | void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb); | ||
1612 | 1624 | ||
1613 | /** | 1625 | /** |
1614 | * ieee80211_rx - receive frame | 1626 | * ieee80211_rx - receive frame |
@@ -1624,13 +1636,10 @@ void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
1624 | * | 1636 | * |
1625 | * @hw: the hardware this frame came in on | 1637 | * @hw: the hardware this frame came in on |
1626 | * @skb: the buffer to receive, owned by mac80211 after this call | 1638 | * @skb: the buffer to receive, owned by mac80211 after this call |
1627 | * @status: status of this frame; the status pointer need not be valid | ||
1628 | * after this function returns | ||
1629 | */ | 1639 | */ |
1630 | static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, | 1640 | static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) |
1631 | struct ieee80211_rx_status *status) | ||
1632 | { | 1641 | { |
1633 | __ieee80211_rx(hw, skb, status); | 1642 | __ieee80211_rx(hw, skb); |
1634 | } | 1643 | } |
1635 | 1644 | ||
1636 | /** | 1645 | /** |
@@ -1644,13 +1653,8 @@ static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
1644 | * | 1653 | * |
1645 | * @hw: the hardware this frame came in on | 1654 | * @hw: the hardware this frame came in on |
1646 | * @skb: the buffer to receive, owned by mac80211 after this call | 1655 | * @skb: the buffer to receive, owned by mac80211 after this call |
1647 | * @status: status of this frame; the status pointer need not be valid | ||
1648 | * after this function returns and is not freed by mac80211, | ||
1649 | * it is recommended that it points to a stack area | ||
1650 | */ | 1656 | */ |
1651 | void ieee80211_rx_irqsafe(struct ieee80211_hw *hw, | 1657 | void ieee80211_rx_irqsafe(struct ieee80211_hw *hw, struct sk_buff *skb); |
1652 | struct sk_buff *skb, | ||
1653 | struct ieee80211_rx_status *status); | ||
1654 | 1658 | ||
1655 | /** | 1659 | /** |
1656 | * ieee80211_tx_status - transmit status callback | 1660 | * ieee80211_tx_status - transmit status callback |