aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h34
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
400static 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 */
1415struct ieee80211_ops { 1422struct 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 */
1607void ieee80211_restart_hw(struct ieee80211_hw *hw); 1617void ieee80211_restart_hw(struct ieee80211_hw *hw);
1608 1618
1609/* trick to avoid symbol clashes with the ieee80211 subsystem */ 1619/*
1610void __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 */
1623void __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 */
1630static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, 1640static 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 */
1651void ieee80211_rx_irqsafe(struct ieee80211_hw *hw, 1657void 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