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 
18 struct 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 
45 struct 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