1#ifndef __WINBOND_CORE_H
2#define __WINBOND_CORE_H
3
4#include <linux/wireless.h>
5#include <linux/types.h>
6#include <linux/delay.h>
7
8#include "wbhal.h"
9#include "mto.h"
10
11#include "mac_structures.h"
12#include "mds_s.h"
13
14#define MAX_NUM_TX_MMPDU		2
15#define MAX_MMPDU_SIZE			1512
16#define MAX_NUM_RX_MMPDU		6
17
18struct mlme_frame {
19	s8		*pMMPDU;
20	u16		len;
21	u8		DataType;
22	u8		IsInUsed;
23
24	u8		TxMMPDU[MAX_NUM_TX_MMPDU][MAX_MMPDU_SIZE];
25	u8		TxMMPDUInUse[(MAX_NUM_TX_MMPDU + 3) & ~0x03];
26
27	u16		wNumTxMMPDU;
28	u16		wNumTxMMPDUDiscarded;
29
30	u8		RxMMPDU[MAX_NUM_RX_MMPDU][MAX_MMPDU_SIZE];
31	u8		SaveRxBufSlotInUse[(MAX_NUM_RX_MMPDU + 3) & ~0x03];
32
33	u16		wNumRxMMPDU;
34	u16		wNumRxMMPDUDiscarded;
35
36	u16		wNumRxMMPDUInMLME;	/* Number of the Rx MMPDU */
37	u16		reserved_1;		/*  in MLME. */
38						/*  excluding the discarded */
39};
40
41#define WBLINUX_PACKET_ARRAY_SIZE (ETHERNET_TX_DESCRIPTORS*4)
42
43#define WB_MAX_LINK_NAME_LEN 40
44
45struct wbsoft_priv {
46	struct wb_local_para sLocalPara;	/* Myself connected
47							parameters */
48
49	struct mlme_frame sMlmeFrame;	/* connect to peerSTA parameters */
50
51	struct wb35_mto_params sMtoPara;	/* MTO_struct ... */
52	struct hw_data sHwData;	/*For HAL */
53	struct wb35_mds Mds;
54
55	atomic_t ThreadCount;
56
57	u32 RxByteCount;
58	u32 TxByteCount;
59
60	u8 LinkName[WB_MAX_LINK_NAME_LEN];
61
62	bool enabled;
63};
64
65#endif /* __WINBOND_CORE_H */
66