// SPDX-License-Identifier: GPL-2.0-only /* * * Authors: * Alexander Aring <[email protected]> * * Based on: net/mac80211/util.c */ #include "ieee802154_i.h" #include "driver-ops.h" /* privid for wpan_phys to determine whether they belong to us or not */ const void *const mac802154_wpan_phy_privid = …; /** * ieee802154_wake_queue - wake ieee802154 queue * @hw: main hardware object * * Tranceivers usually have either one transmit framebuffer or one framebuffer * for both transmitting and receiving. Hence, the core currently only handles * one frame at a time for each phy, which means we had to stop the queue to * avoid new skb to come during the transmission. The queue then needs to be * woken up after the operation. */ static void ieee802154_wake_queue(struct ieee802154_hw *hw) { … } /** * ieee802154_stop_queue - stop ieee802154 queue * @hw: main hardware object * * Tranceivers usually have either one transmit framebuffer or one framebuffer * for both transmitting and receiving. Hence, the core currently only handles * one frame at a time for each phy, which means we need to tell upper layers to * stop giving us new skbs while we are busy with the transmitted one. The queue * must then be stopped before transmitting. */ static void ieee802154_stop_queue(struct ieee802154_hw *hw) { … } void ieee802154_hold_queue(struct ieee802154_local *local) { … } void ieee802154_release_queue(struct ieee802154_local *local) { … } void ieee802154_disable_queue(struct ieee802154_local *local) { … } enum hrtimer_restart ieee802154_xmit_ifs_timer(struct hrtimer *timer) { … } void ieee802154_xmit_complete(struct ieee802154_hw *hw, struct sk_buff *skb, bool ifs_handling) { … } EXPORT_SYMBOL(…); void ieee802154_xmit_error(struct ieee802154_hw *hw, struct sk_buff *skb, int reason) { … } EXPORT_SYMBOL(…); void ieee802154_xmit_hw_error(struct ieee802154_hw *hw, struct sk_buff *skb) { … } EXPORT_SYMBOL(…); void ieee802154_stop_device(struct ieee802154_local *local) { … }