linux/drivers/staging/rtl8712/rtl871x_xmit.h

/* SPDX-License-Identifier: GPL-2.0 */
/******************************************************************************
 *
 * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
 *
 * Modifications for inclusion into the Linux staging tree are
 * Copyright(c) 2010 Larry Finger. All rights reserved.
 *
 * Contact information:
 * WLAN FAE <[email protected]>
 * Larry Finger <[email protected]>
 *
 ******************************************************************************/
#ifndef _RTL871X_XMIT_H_
#define _RTL871X_XMIT_H_

#include "osdep_service.h"
#include "drv_types.h"
#include "xmit_osdep.h"

#ifdef CONFIG_R8712_TX_AGGR
#define MAX_XMITBUF_SZ
#else
#define MAX_XMITBUF_SZ
#endif

#define NR_XMITBUFF

#ifdef CONFIG_R8712_TX_AGGR
#define AGGR_NR_HIGH_BOUND
#define AGGR_NR_LOW_BOUND
#endif

#define XMITBUF_ALIGN_SZ
#define TX_GUARD_BAND
#define MAX_NUMBLKS

/* Fixed the Big Endian bug when using the software driver encryption.*/
#define WEP_IV(pattrib_iv, txpn, keyidx)

/* Fixed the Big Endian bug when doing the Tx.
 * The Linksys WRH54G will check this.
 */
#define TKIP_IV(pattrib_iv, txpn, keyidx)

#define AES_IV(pattrib_iv, txpn, keyidx)

struct hw_xmit {};

struct pkt_attrib {};

#define WLANHDR_OFFSET
#define DATA_FRAMETAG
#define L2_FRAMETAG
#define MGNT_FRAMETAG
#define AMSDU_FRAMETAG
#define EII_FRAMETAG
#define IEEE8023_FRAMETAG
#define MP_FRAMETAG
#define TXAGG_FRAMETAG

struct xmit_buf {};

struct xmit_frame {};

struct tx_servq {};

struct sta_xmit_priv {};

struct	hw_txqueue {};

struct	xmit_priv {};

void r8712_free_xmitbuf(struct xmit_priv *pxmitpriv,
			struct xmit_buf *pxmitbuf);
struct xmit_buf *r8712_alloc_xmitbuf(struct xmit_priv *pxmitpriv);
void r8712_update_protection(struct _adapter *padapter, u8 *ie, uint ie_len);
struct xmit_frame *r8712_alloc_xmitframe(struct xmit_priv *pxmitpriv);
void r8712_free_xmitframe(struct xmit_priv *pxmitpriv,
			  struct xmit_frame *pxmitframe);
void r8712_free_xmitframe_queue(struct xmit_priv *pxmitpriv,
				struct  __queue *pframequeue);
int r8712_xmit_classifier(struct _adapter *padapter,
			  struct xmit_frame *pxmitframe);
sint r8712_xmitframe_coalesce(struct _adapter *padapter, _pkt *pkt,
			      struct xmit_frame *pxmitframe);
sint _r8712_init_hw_txqueue(struct hw_txqueue *phw_txqueue, u8 ac_tag);
void _r8712_init_sta_xmit_priv(struct sta_xmit_priv *psta_xmitpriv);
int r8712_update_attrib(struct _adapter *padapter, _pkt *pkt,
			struct pkt_attrib *pattrib);
int r8712_txframes_sta_ac_pending(struct _adapter *padapter,
				  struct pkt_attrib *pattrib);
int _r8712_init_xmit_priv(struct xmit_priv *pxmitpriv,
			  struct _adapter *padapter);
void _free_xmit_priv(struct xmit_priv *pxmitpriv);
void r8712_free_xmitframe_ex(struct xmit_priv *pxmitpriv,
			     struct xmit_frame *pxmitframe);
int r8712_pre_xmit(struct _adapter *padapter, struct xmit_frame *pxmitframe);
int r8712_xmit_enqueue(struct _adapter *padapter,
		       struct xmit_frame *pxmitframe);
void r8712_xmit_direct(struct _adapter *padapter, struct xmit_frame *pxmitframe);
void r8712_xmit_bh(struct tasklet_struct *t);

void xmitframe_xmitbuf_attach(struct xmit_frame *pxmitframe,
			      struct xmit_buf *pxmitbuf);

#include "rtl8712_xmit.h"

#endif	/*_RTL871X_XMIT_H_*/