#ifndef _RTW_XMIT_H_
#define _RTW_XMIT_H_
#include <linux/completion.h>
#define MAX_XMITBUF_SZ …
#define NR_XMITBUFF …
#define XMITBUF_ALIGN_SZ …
#define MAX_XMIT_EXTBUF_SZ …
#define NR_XMIT_EXTBUFF …
#define MAX_CMDBUF_SZ …
#define MAX_NUMBLKS …
#define XMIT_VO_QUEUE …
#define XMIT_VI_QUEUE …
#define XMIT_BE_QUEUE …
#define XMIT_BK_QUEUE …
#define VO_QUEUE_INX …
#define VI_QUEUE_INX …
#define BE_QUEUE_INX …
#define BK_QUEUE_INX …
#define BCN_QUEUE_INX …
#define MGT_QUEUE_INX …
#define HIGH_QUEUE_INX …
#define HW_QUEUE_ENTRY …
#define WEP_IV(pattrib_iv, dot11txpn, keyidx) …
#define TKIP_IV(pattrib_iv, dot11txpn, keyidx) …
#define AES_IV(pattrib_iv, dot11txpn, keyidx) …
#define HWXMIT_ENTRY …
#define TXDESC_SIZE …
#define TXDESC_OFFSET …
#define TXDESC_40_BYTES
struct tx_desc { … };
txdesc;
struct hw_xmit { … };
struct pkt_attrib { … };
#define WLANHDR_OFFSET …
#define NULL_FRAMETAG …
#define DATA_FRAMETAG …
#define MGNT_FRAMETAG …
enum { … };
struct submit_ctx { … };
enum { … };
void rtw_sctx_init(struct submit_ctx *sctx, int timeout_ms);
int rtw_sctx_wait(struct submit_ctx *sctx);
void rtw_sctx_done_err(struct submit_ctx **sctx, int status);
void rtw_sctx_done(struct submit_ctx **sctx);
struct xmit_buf { … };
struct xmit_frame { … };
struct tx_servq { … };
struct sta_xmit_priv { … };
struct hw_txqueue { … };
enum cmdbuf_type { … };
struct xmit_priv { … };
extern struct xmit_frame *__rtw_alloc_cmdxmitframe(struct xmit_priv *pxmitpriv,
enum cmdbuf_type buf_type);
#define rtw_alloc_cmdxmitframe(p) …
#define rtw_alloc_bcnxmitframe(p) …
extern struct xmit_buf *rtw_alloc_xmitbuf_ext(struct xmit_priv *pxmitpriv);
extern s32 rtw_free_xmitbuf_ext(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
extern struct xmit_buf *rtw_alloc_xmitbuf(struct xmit_priv *pxmitpriv);
extern s32 rtw_free_xmitbuf(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
void rtw_count_tx_stats(struct adapter *padapter, struct xmit_frame *pxmitframe, int sz);
extern void rtw_update_protection(struct adapter *padapter, u8 *ie, uint ie_len);
extern s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattrib);
extern s32 rtw_put_snap(u8 *data, u16 h_proto);
extern struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv);
struct xmit_frame *rtw_alloc_xmitframe_ext(struct xmit_priv *pxmitpriv);
struct xmit_frame *rtw_alloc_xmitframe_once(struct xmit_priv *pxmitpriv);
extern s32 rtw_free_xmitframe(struct xmit_priv *pxmitpriv, struct xmit_frame *pxmitframe);
extern void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pframequeue);
struct tx_servq *rtw_get_sta_pending(struct adapter *padapter, struct sta_info *psta, signed int up, u8 *ac);
extern s32 rtw_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframe);
extern s32 rtw_xmit_classifier(struct adapter *padapter, struct xmit_frame *pxmitframe);
extern u32 rtw_calculate_wlan_pkt_size_by_attribue(struct pkt_attrib *pattrib);
#define rtw_wlan_pkt_size(f) …
extern s32 rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct xmit_frame *pxmitframe);
extern s32 rtw_mgmt_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct xmit_frame *pxmitframe);
s32 _rtw_init_hw_txqueue(struct hw_txqueue *phw_txqueue, u8 ac_tag);
void _rtw_init_sta_xmit_priv(struct sta_xmit_priv *psta_xmitpriv);
s32 rtw_txframes_pending(struct adapter *padapter);
void rtw_init_hwxmits(struct hw_xmit *phwxmit, signed int entry);
s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter);
void _rtw_free_xmit_priv(struct xmit_priv *pxmitpriv);
s32 rtw_alloc_hwxmits(struct adapter *padapter);
void rtw_free_hwxmits(struct adapter *padapter);
s32 rtw_xmit(struct adapter *padapter, struct sk_buff **pkt);
bool xmitframe_hiq_filter(struct xmit_frame *xmitframe);
signed int xmitframe_enqueue_for_sleeping_sta(struct adapter *padapter, struct xmit_frame *pxmitframe);
void stop_sta_xmit(struct adapter *padapter, struct sta_info *psta);
void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta);
void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *psta);
u8 query_ra_short_GI(struct sta_info *psta);
u8 qos_acm(u8 acm_mask, u8 priority);
void enqueue_pending_xmitbuf(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
void enqueue_pending_xmitbuf_to_head(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
struct xmit_buf *dequeue_pending_xmitbuf(struct xmit_priv *pxmitpriv);
struct xmit_buf *dequeue_pending_xmitbuf_under_survey(struct xmit_priv *pxmitpriv);
signed int check_pending_xmitbuf(struct xmit_priv *pxmitpriv);
int rtw_xmit_thread(void *context);
u32 rtw_get_ff_hwaddr(struct xmit_frame *pxmitframe);
int rtw_ack_tx_wait(struct xmit_priv *pxmitpriv, u32 timeout_ms);
void rtw_ack_tx_done(struct xmit_priv *pxmitpriv, int status);
#include <xmit_osdep.h>
#endif