blob: 294d371e60d284e582014d83c7bdbf65a5109308 [file] [log] [blame]
Pekka Enbergcc180712008-10-30 16:14:35 +02001#ifndef __WINBOND_CORE_H
2#define __WINBOND_CORE_H
3
Pekka Enberg3c093862010-09-19 12:28:41 +03004#include <linux/spinlock.h>
Pekka Enberg1e8a2b62008-10-30 16:14:38 +02005#include <linux/wireless.h>
Pekka Enberg3c093862010-09-19 12:28:41 +03006#include <linux/types.h>
Pekka Enberg1e8a2b62008-10-30 16:14:38 +02007
Pekka Enberg1e8a2b62008-10-30 16:14:38 +02008#include "wbhal_s.h"
Pekka Enberg64328c82009-01-07 17:33:45 +02009#include "mto.h"
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020010
Pekka Enberg3c093862010-09-19 12:28:41 +030011#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 spinlock_t MLMESpinLock;
25
26 u8 TxMMPDU[MAX_NUM_TX_MMPDU][MAX_MMPDU_SIZE];
27 u8 TxMMPDUInUse[(MAX_NUM_TX_MMPDU + 3) & ~0x03];
28
29 u16 wNumTxMMPDU;
30 u16 wNumTxMMPDUDiscarded;
31
32 u8 RxMMPDU[MAX_NUM_RX_MMPDU][MAX_MMPDU_SIZE];
33 u8 SaveRxBufSlotInUse[(MAX_NUM_RX_MMPDU + 3) & ~0x03];
34
35 u16 wNumRxMMPDU;
36 u16 wNumRxMMPDUDiscarded;
37
38 u16 wNumRxMMPDUInMLME; /* Number of the Rx MMPDU */
39 u16 reserved_1; /* in MLME. */
40 /* excluding the discarded */
41};
42
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020043#define WBLINUX_PACKET_ARRAY_SIZE (ETHERNET_TX_DESCRIPTORS*4)
44
45#define WB_MAX_LINK_NAME_LEN 40
Pekka Enbergcc180712008-10-30 16:14:35 +020046
47struct wbsoft_priv {
Ruslan Pisarev5dcf8f62010-03-20 15:37:21 +020048 u32 adapterIndex; /* 20060703.4 Add for using padapterContext
49 global adapter point */
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020050
Ruslan Pisarev5dcf8f62010-03-20 15:37:21 +020051 struct wb_local_para sLocalPara; /* Myself connected
52 parameters */
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020053
Pekka Enbergc4d562a2010-09-19 12:28:38 +030054 struct mlme_frame sMlmeFrame; /* connect to peerSTA parameters */
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020055
Ruslan Pisarev5dcf8f62010-03-20 15:37:21 +020056 struct wb35_mto_params sMtoPara; /* MTO_struct ... */
57 struct hw_data sHwData; /*For HAL */
Pekka Enbergb7caf942009-08-12 11:03:33 +030058 struct wb35_mds Mds;
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020059
60 spinlock_t SpinLock;
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020061
62 atomic_t ThreadCount;
63
64 u32 RxByteCount;
65 u32 TxByteCount;
66
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020067 struct sk_buff *packet_return;
Ruslan Pisarev5dcf8f62010-03-20 15:37:21 +020068 s32 netif_state_stop; /* 1: stop 0: normal */
Pekka Enberg1e8a2b62008-10-30 16:14:38 +020069 struct iw_statistics iw_stats;
70
71 u8 LinkName[WB_MAX_LINK_NAME_LEN];
Pekka Enbergc930e0c02008-10-30 18:12:04 +020072
73 bool enabled;
Pekka Enbergcc180712008-10-30 16:14:35 +020074};
75
76#endif /* __WINBOND_CORE_H */