linux/drivers/staging/rtl8723bs/include/rtw_recv.h

/* SPDX-License-Identifier: GPL-2.0 */
/******************************************************************************
 *
 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
 *
 ******************************************************************************/
#ifndef _RTW_RECV_H_
#define _RTW_RECV_H_

#define NR_RECVBUFF

#define NR_RECVFRAME

#define RXFRAME_ALIGN
#define RXFRAME_ALIGN_SZ

#define DRVINFO_SZ

#define MAX_RX_NUMBLKS
#define RECVFRAME_HDR_ALIGN

#define SNAP_SIZE

#define MAX_SUBFRAME_COUNT

#define LLC_HEADER_LENGTH

/* for Rx reordering buffer control */
struct recv_reorder_ctrl {};

struct	stainfo_rxcache	{};


struct signal_stat {};

struct phy_info {};

#ifdef DBG_RX_SIGNAL_DISPLAY_RAW_DATA
struct rx_raw_rssi {
	u8 data_rate;
	u8 pwdball;
	s8 pwr_all;

	u8 mimo_signal_strength[4];/*  in 0~100 index */
	u8 mimo_signal_quality[4];

	s8 ofdm_pwr[4];
	u8 ofdm_snr[4];

};
#endif

struct rx_pkt_attrib	{};


/* These definition is used for Rx packet reordering. */
#define SN_LESS(a, b)
#define SN_EQUAL(a, b)
/* define REORDER_WIN_SIZE	128 */
/* define REORDER_ENTRY_NUM	128 */
#define REORDER_WAIT_TIME

#define RECVBUFF_ALIGN_SZ

#define RXDESC_SIZE

struct recv_stat {};

/*
accesser of recv_priv: rtw_recv_entry(dispatch / passive level); recv_thread(passive) ; returnpkt(dispatch)
; halt(passive) ;

using enter_critical section to protect
*/
struct recv_priv {};

#define rtw_set_signal_stat_timer(recvpriv)

struct sta_recv_priv {};


struct recv_buf {};


/*
	head  ----->

		data  ----->

			payload

		tail  ----->


	end   ----->

	len = (unsigned int)(tail - data);

*/
struct recv_frame_hdr {};


recv_frame;

enum {};

extern union recv_frame *_rtw_alloc_recvframe(struct __queue *pfree_recv_queue);  /* get a free recv_frame from pfree_recv_queue */
extern union recv_frame *rtw_alloc_recvframe(struct __queue *pfree_recv_queue);  /* get a free recv_frame from pfree_recv_queue */
extern int	 rtw_free_recvframe(union recv_frame *precvframe, struct __queue *pfree_recv_queue);

extern int _rtw_enqueue_recvframe(union recv_frame *precvframe, struct __queue *queue);
extern int rtw_enqueue_recvframe(union recv_frame *precvframe, struct __queue *queue);

extern void rtw_free_recvframe_queue(struct __queue *pframequeue,  struct __queue *pfree_recv_queue);
u32 rtw_free_uc_swdec_pending_queue(struct adapter *adapter);

signed int rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, struct __queue *queue);
signed int rtw_enqueue_recvbuf(struct recv_buf *precvbuf, struct __queue *queue);
struct recv_buf *rtw_dequeue_recvbuf(struct __queue *queue);

void rtw_reordering_ctrl_timeout_handler(struct timer_list *t);

static inline u8 *get_rxmem(union recv_frame *precvframe)
{}

static inline u8 *recvframe_pull(union recv_frame *precvframe, signed int sz)
{}

static inline u8 *recvframe_put(union recv_frame *precvframe, signed int sz)
{}



static inline u8 *recvframe_pull_tail(union recv_frame *precvframe, signed int sz)
{}

static inline union recv_frame *rxmem_to_recvframe(u8 *rxmem)
{}

static inline signed int get_recvframe_len(union recv_frame *precvframe)
{}


static inline s32 translate_percentage_to_dbm(u32 SignalStrengthIndex)
{}


struct sta_info;

extern void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv);

extern void  mgt_dispatcher(struct adapter *padapter, union recv_frame *precv_frame);

#endif