Staging: add w35und wifi driver
[linux-2.6/mini2440.git] / drivers / staging / winbond / mlme_s.h
blob58094f61c032dfa17b0ec4eac1a529b6785835cf
1 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 // Mlme.h
3 // Define the related definitions of MLME module
4 // history -- 01/14/03' created
5 //
6 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 #define AUTH_REJECT_REASON_CHALLENGE_FAIL 1
10 //====== the state of MLME module
11 #define INACTIVE 0x0
12 #define IDLE_SCAN 0x1
14 //====== the state of MLME/ESS module
15 #define STATE_1 0x2
16 #define AUTH_REQ 0x3
17 #define AUTH_WEP 0x4
18 #define STATE_2 0x5
19 #define ASSOC_REQ 0x6
20 #define STATE_3 0x7
22 //====== the state of MLME/IBSS module
23 #define IBSS_JOIN_SYNC 0x8
24 #define IBSS_AUTH_REQ 0x9
25 #define IBSS_AUTH_CHANLGE 0xa
26 #define IBSS_AUTH_WEP 0xb
27 #define IBSS_AUTH_IND 0xc
28 #define IBSS_STATE_2 0xd
32 //=========================================
33 //depend on D5C(MAC timing control 03 register): MaxTxMSDULifeTime default 0x80000us
34 #define AUTH_FAIL_TIMEOUT 550
35 #define ASSOC_FAIL_TIMEOUT 550
36 #define REASSOC_FAIL_TIMEOUT 550
41 // MLME task global CONSTANTS, STRUCTURE, variables
45 /////////////////////////////////////////////////////////////
46 // enum_ResultCode --
47 // Result code returned from MLME to SME.
49 /////////////////////////////////////////////////////////////
50 // PD43 20030829 Modifiled
51 //#define SUCCESS 0
52 #define MLME_SUCCESS 0 //follow spec.
53 #define INVALID_PARAMETERS 1 //Not following spec.
54 #define NOT_SUPPPORTED 2
55 #define TIMEOUT 3
56 #define TOO_MANY_SIMULTANEOUS_REQUESTS 4
57 #define REFUSED 5
58 #define BSS_ALREADY_STARTED_OR_JOINED 6
59 #define TRANSMIT_FRAME_FAIL 7
60 #define NO_BSS_FOUND 8
61 #define RETRY 9
62 #define GIVE_UP 10
65 #define OPEN_AUTH 0
66 #define SHARE_AUTH 1
67 #define ANY_AUTH 2
68 #define WPA_AUTH 3 //for WPA
69 #define WPAPSK_AUTH 4
70 #define WPANONE_AUTH 5
71 ///////////////////////////////////////////// added by ws 04/19/04
72 #ifdef _WPA2_
73 #define WPA2_AUTH 6//for WPA2
74 #define WPA2PSK_AUTH 7
75 #endif //end def _WPA2_
77 //////////////////////////////////////////////////////////////////
78 //define the msg type of MLME module
79 //////////////////////////////////////////////////////////////////
80 //--------------------------------------------------------
81 //from SME
83 #define MLMEMSG_AUTH_REQ 0x0b
84 #define MLMEMSG_DEAUTH_REQ 0x0c
85 #define MLMEMSG_ASSOC_REQ 0x0d
86 #define MLMEMSG_REASSOC_REQ 0x0e
87 #define MLMEMSG_DISASSOC_REQ 0x0f
88 #define MLMEMSG_START_IBSS_REQ 0x10
89 #define MLMEMSG_IBSS_NET_CFM 0x11
91 //from RX :
92 #define MLMEMSG_RCV_MLMEFRAME 0x20
93 #define MLMEMSG_RCV_ASSOCRSP 0x22
94 #define MLMEMSG_RCV_REASSOCRSP 0x24
95 #define MLMEMSG_RCV_DISASSOC 0x2b
96 #define MLMEMSG_RCV_AUTH 0x2c
97 #define MLMEMSG_RCV_DEAUTH 0x2d
100 //from TX callback
101 #define MLMEMSG_TX_CALLBACK 0x40
102 #define MLMEMSG_ASSOCREQ_CALLBACK 0x41
103 #define MLMEMSG_REASSOCREQ_CALLBACK 0x43
104 #define MLMEMSG_DISASSOC_CALLBACK 0x4a
105 #define MLMEMSG_AUTH_CALLBACK 0x4c
106 #define MLMEMSG_DEAUTH_CALLBACK 0x4d
108 //#define MLMEMSG_JOIN_FAIL 4
109 //#define MLMEMSG_AUTHEN_FAIL 18
110 #define MLMEMSG_TIMEOUT 0x50
112 ///////////////////////////////////////////////////////////////////////////
113 //Global data structures
114 #define MAX_NUM_TX_MMPDU 2
115 #define MAX_MMPDU_SIZE 1512
116 #define MAX_NUM_RX_MMPDU 6
119 ///////////////////////////////////////////////////////////////////////////
120 //MACRO
121 #define boMLME_InactiveState(_AA_) (_AA_->wState==INACTIVE)
122 #define boMLME_IdleScanState(_BB_) (_BB_->wState==IDLE_SCAN)
123 #define boMLME_FoundSTAinfo(_CC_) (_CC_->wState>=IDLE_SCAN)
125 typedef struct _MLME_FRAME
127 //NDIS_PACKET MLME_Packet;
128 PCHAR pMMPDU;
129 u16 len;
130 u8 DataType;
131 u8 IsInUsed;
133 OS_SPIN_LOCK MLMESpinLock;
135 u8 TxMMPDU[MAX_NUM_TX_MMPDU][MAX_MMPDU_SIZE];
136 u8 TxMMPDUInUse[ (MAX_NUM_TX_MMPDU+3) & ~0x03 ];
138 u16 wNumTxMMPDU;
139 u16 wNumTxMMPDUDiscarded;
141 u8 RxMMPDU[MAX_NUM_RX_MMPDU][MAX_MMPDU_SIZE];
142 u8 SaveRxBufSlotInUse[ (MAX_NUM_RX_MMPDU+3) & ~0x03 ];
144 u16 wNumRxMMPDU;
145 u16 wNumRxMMPDUDiscarded;
147 u16 wNumRxMMPDUInMLME; // Number of the Rx MMPDU
148 u16 reserved_1; // in MLME.
149 // excluding the discarded
150 } MLME_FRAME, *psMLME_FRAME;
152 typedef struct _AUTHREQ {
154 u8 peerMACaddr[MAC_ADDR_LENGTH];
155 u16 wAuthAlgorithm;
157 } MLME_AUTHREQ_PARA, *psMLME_AUTHREQ_PARA;
159 struct _Reason_Code {
161 u8 peerMACaddr[MAC_ADDR_LENGTH];
162 u16 wReasonCode;
164 typedef struct _Reason_Code MLME_DEAUTHREQ_PARA, *psMLME_DEAUTHREQ_PARA;
165 typedef struct _Reason_Code MLME_DISASSOCREQ_PARA, *psMLME_DISASSOCREQ_PARA;
167 typedef struct _ASSOCREQ {
168 u8 PeerSTAAddr[MAC_ADDR_LENGTH];
169 u16 CapabilityInfo;
170 u16 ListenInterval;
172 }__attribute__ ((packed)) MLME_ASSOCREQ_PARA, *psMLME_ASSOCREQ_PARA;
174 typedef struct _REASSOCREQ {
175 u8 NewAPAddr[MAC_ADDR_LENGTH];
176 u16 CapabilityInfo;
177 u16 ListenInterval;
179 }__attribute__ ((packed)) MLME_REASSOCREQ_PARA, *psMLME_REASSOCREQ_PARA;
181 typedef struct _MLMECALLBACK {
183 u8 *psFramePtr;
184 u8 bResult;
186 } MLME_TXCALLBACK, *psMLME_TXCALLBACK;
188 typedef struct _RXDATA
190 s32 FrameLength;
191 u8 __attribute__ ((packed)) *pbFramePtr;
193 }__attribute__ ((packed)) RXDATA, *psRXDATA;