#ifndef __TX_H__
#define __TX_H__
#define TX_HW_MGMT_PKT_LIFETIME_TU …
#define TX_HW_AP_MODE_PKT_LIFETIME_TU …
#define TX_HW_ATTR_SAVE_RETRIES …
#define TX_HW_ATTR_HEADER_PAD …
#define TX_HW_ATTR_SESSION_COUNTER …
#define TX_HW_ATTR_RATE_POLICY …
#define TX_HW_ATTR_LAST_WORD_PAD …
#define TX_HW_ATTR_TX_CMPLT_REQ …
#define TX_HW_ATTR_TX_DUMMY_REQ …
#define TX_HW_ATTR_HOST_ENCRYPT …
#define TX_HW_ATTR_EAPOL_FRAME …
#define TX_HW_ATTR_OFST_SAVE_RETRIES …
#define TX_HW_ATTR_OFST_HEADER_PAD …
#define TX_HW_ATTR_OFST_SESSION_COUNTER …
#define TX_HW_ATTR_OFST_RATE_POLICY …
#define TX_HW_ATTR_OFST_LAST_WORD_PAD …
#define TX_HW_ATTR_OFST_TX_CMPLT_REQ …
#define TX_HW_RESULT_QUEUE_LEN …
#define TX_HW_RESULT_QUEUE_LEN_MASK …
#define WL1271_TX_ALIGN_TO …
#define WL1271_EXTRA_SPACE_TKIP …
#define WL1271_EXTRA_SPACE_AES …
#define WL1271_EXTRA_SPACE_MAX …
#define WL1271_TID_MGMT …
#define WLCORE_PEND_AUTH_ROC_TIMEOUT …
struct wl127x_tx_mem { … } __packed;
struct wl128x_tx_mem { … } __packed;
struct wl18xx_tx_mem { … } __packed;
#define WL12XX_BUS_BLOCK_SIZE …
struct wl1271_tx_hw_descr { … } __packed;
enum wl1271_tx_hw_res_status { … };
struct wl1271_tx_hw_res_descr { … } __packed;
struct wl1271_tx_hw_res_if { … } __packed;
enum wlcore_queue_stop_reason { … };
static inline int wl1271_tx_get_queue(int queue)
{ … }
static inline
int wlcore_tx_get_mac80211_queue(struct wl12xx_vif *wlvif, int queue)
{ … }
static inline int wl1271_tx_total_queue_count(struct wl1271 *wl)
{ … }
void wl1271_tx_work(struct work_struct *work);
int wlcore_tx_work_locked(struct wl1271 *wl);
int wlcore_tx_complete(struct wl1271 *wl);
void wl12xx_tx_reset_wlvif(struct wl1271 *wl, struct wl12xx_vif *wlvif);
void wl12xx_tx_reset(struct wl1271 *wl);
void wl1271_tx_flush(struct wl1271 *wl);
u8 wlcore_rate_to_idx(struct wl1271 *wl, u8 rate, enum nl80211_band band);
u32 wl1271_tx_enabled_rates_get(struct wl1271 *wl, u32 rate_set,
enum nl80211_band rate_band);
u32 wl1271_tx_min_rate_get(struct wl1271 *wl, u32 rate_set);
u8 wl12xx_tx_get_hlid(struct wl1271 *wl, struct wl12xx_vif *wlvif,
struct sk_buff *skb, struct ieee80211_sta *sta);
void wl1271_tx_reset_link_queues(struct wl1271 *wl, u8 hlid);
void wl1271_handle_tx_low_watermark(struct wl1271 *wl);
bool wl12xx_is_dummy_packet(struct wl1271 *wl, struct sk_buff *skb);
void wl12xx_rearm_rx_streaming(struct wl1271 *wl, unsigned long *active_hlids);
unsigned int wlcore_calc_packet_alignment(struct wl1271 *wl,
unsigned int packet_length);
void wl1271_free_tx_id(struct wl1271 *wl, int id);
void wlcore_stop_queue_locked(struct wl1271 *wl, struct wl12xx_vif *wlvif,
u8 queue, enum wlcore_queue_stop_reason reason);
void wlcore_stop_queue(struct wl1271 *wl, struct wl12xx_vif *wlvif, u8 queue,
enum wlcore_queue_stop_reason reason);
void wlcore_wake_queue(struct wl1271 *wl, struct wl12xx_vif *wlvif, u8 queue,
enum wlcore_queue_stop_reason reason);
void wlcore_stop_queues(struct wl1271 *wl,
enum wlcore_queue_stop_reason reason);
void wlcore_wake_queues(struct wl1271 *wl,
enum wlcore_queue_stop_reason reason);
bool wlcore_is_queue_stopped_by_reason(struct wl1271 *wl,
struct wl12xx_vif *wlvif, u8 queue,
enum wlcore_queue_stop_reason reason);
bool
wlcore_is_queue_stopped_by_reason_locked(struct wl1271 *wl,
struct wl12xx_vif *wlvif,
u8 queue,
enum wlcore_queue_stop_reason reason);
bool wlcore_is_queue_stopped_locked(struct wl1271 *wl, struct wl12xx_vif *wlvif,
u8 queue);
void wl1271_free_sta(struct wl1271 *wl, struct wl12xx_vif *wlvif, u8 hlid);
void wl12xx_rearm_tx_watchdog_locked(struct wl1271 *wl);
#endif