zram: don't grab mutex in zram_slot_free_noity
[firefly-linux-kernel-4.4.55.git] / drivers / staging / csr / csr_wifi_nme_prim.h
1 /*****************************************************************************
2
3             (c) Cambridge Silicon Radio Limited 2011
4             All rights reserved and confidential information of CSR
5
6             Refer to LICENSE.txt included with this source for details
7             on the license terms.
8
9 *****************************************************************************/
10
11 /* Note: this is an auto-generated file. */
12
13 #ifndef CSR_WIFI_NME_PRIM_H__
14 #define CSR_WIFI_NME_PRIM_H__
15
16 #include <linux/types.h>
17 #include "csr_prim_defs.h"
18 #include "csr_sched.h"
19 #include "csr_wifi_common.h"
20 #include "csr_result.h"
21 #include "csr_wifi_fsm_event.h"
22 #include "csr_wifi_sme_prim.h"
23
24 #ifndef CSR_WIFI_NME_ENABLE
25 #error CSR_WIFI_NME_ENABLE MUST be defined inorder to use csr_wifi_nme_prim.h
26 #endif
27
28 #define CSR_WIFI_NME_PRIM                                               (0x0424)
29
30 typedef CsrPrim CsrWifiNmePrim;
31
32 typedef void (*CsrWifiNmeFrameFreeFunction)(void *frame);
33
34 /*******************************************************************************
35
36   NAME
37     CsrWifiNmeAuthMode
38
39   DESCRIPTION
40     WiFi Authentication Mode
41
42  VALUES
43     CSR_WIFI_NME_AUTH_MODE_80211_OPEN
44                    - Connects to an open system network (i.e. no authentication,
45                      no encryption) or to a WEP enabled network.
46     CSR_WIFI_NME_AUTH_MODE_80211_SHARED
47                    - Connect to a WEP enabled network.
48     CSR_WIFI_NME_AUTH_MODE_8021X_WPA
49                    - Connects to a WPA Enterprise enabled network.
50     CSR_WIFI_NME_AUTH_MODE_8021X_WPAPSK
51                    - Connects to a WPA with Pre-Shared Key enabled network.
52     CSR_WIFI_NME_AUTH_MODE_8021X_WPA2
53                    - Connects to a WPA2 Enterprise enabled network.
54     CSR_WIFI_NME_AUTH_MODE_8021X_WPA2PSK
55                    - Connects to a WPA2 with Pre-Shared Key enabled network.
56     CSR_WIFI_NME_AUTH_MODE_8021X_CCKM
57                    - Connects to a CCKM enabled network.
58     CSR_WIFI_NME_AUTH_MODE_WAPI_WAI
59                    - Connects to a WAPI Enterprise enabled network.
60     CSR_WIFI_NME_AUTH_MODE_WAPI_WAIPSK
61                    - Connects to a WAPI with Pre-Shared Key enabled network.
62     CSR_WIFI_NME_AUTH_MODE_8021X_OTHER1X
63                    - For future use.
64
65 *******************************************************************************/
66 typedef u16 CsrWifiNmeAuthMode;
67 #define CSR_WIFI_NME_AUTH_MODE_80211_OPEN      ((CsrWifiNmeAuthMode) 0x0001)
68 #define CSR_WIFI_NME_AUTH_MODE_80211_SHARED    ((CsrWifiNmeAuthMode) 0x0002)
69 #define CSR_WIFI_NME_AUTH_MODE_8021X_WPA       ((CsrWifiNmeAuthMode) 0x0004)
70 #define CSR_WIFI_NME_AUTH_MODE_8021X_WPAPSK    ((CsrWifiNmeAuthMode) 0x0008)
71 #define CSR_WIFI_NME_AUTH_MODE_8021X_WPA2      ((CsrWifiNmeAuthMode) 0x0010)
72 #define CSR_WIFI_NME_AUTH_MODE_8021X_WPA2PSK   ((CsrWifiNmeAuthMode) 0x0020)
73 #define CSR_WIFI_NME_AUTH_MODE_8021X_CCKM      ((CsrWifiNmeAuthMode) 0x0040)
74 #define CSR_WIFI_NME_AUTH_MODE_WAPI_WAI        ((CsrWifiNmeAuthMode) 0x0080)
75 #define CSR_WIFI_NME_AUTH_MODE_WAPI_WAIPSK     ((CsrWifiNmeAuthMode) 0x0100)
76 #define CSR_WIFI_NME_AUTH_MODE_8021X_OTHER1X   ((CsrWifiNmeAuthMode) 0x0200)
77
78 /*******************************************************************************
79
80   NAME
81     CsrWifiNmeBssType
82
83   DESCRIPTION
84     Type of BSS
85
86  VALUES
87     CSR_WIFI_NME_BSS_TYPE_INFRASTRUCTURE
88                    - Infrastructure BSS type where access to the network is via
89                      one or several Access Points.
90     CSR_WIFI_NME_BSS_TYPE_ADHOC
91                    - Adhoc or Independent BSS Type where one Station acts as a
92                      host and future stations can join the adhoc network without
93                      needing an access point.
94     CSR_WIFI_NME_BSS_TYPE_RESERVED
95                    - To be in sync with SME.This is not used.
96     CSR_WIFI_NME_BSS_TYPE_P2P
97                    - P2P mode of operation.
98
99 *******************************************************************************/
100 typedef u8 CsrWifiNmeBssType;
101 #define CSR_WIFI_NME_BSS_TYPE_INFRASTRUCTURE   ((CsrWifiNmeBssType) 0x00)
102 #define CSR_WIFI_NME_BSS_TYPE_ADHOC            ((CsrWifiNmeBssType) 0x01)
103 #define CSR_WIFI_NME_BSS_TYPE_RESERVED         ((CsrWifiNmeBssType) 0x02)
104 #define CSR_WIFI_NME_BSS_TYPE_P2P              ((CsrWifiNmeBssType) 0x03)
105
106 /*******************************************************************************
107
108   NAME
109     CsrWifiNmeCcxOptionsMask
110
111   DESCRIPTION
112     Enumeration type defining possible mask values for setting CCX options.
113
114  VALUES
115     CSR_WIFI_NME_CCX_OPTION_NONE - No CCX option is set.
116     CSR_WIFI_NME_CCX_OPTION_CCKM - CCX option cckm is set.
117
118 *******************************************************************************/
119 typedef u8 CsrWifiNmeCcxOptionsMask;
120 #define CSR_WIFI_NME_CCX_OPTION_NONE   ((CsrWifiNmeCcxOptionsMask) 0x00)
121 #define CSR_WIFI_NME_CCX_OPTION_CCKM   ((CsrWifiNmeCcxOptionsMask) 0x01)
122
123 /*******************************************************************************
124
125   NAME
126     CsrWifiNmeConfigAction
127
128   DESCRIPTION
129
130  VALUES
131     CSR_WIFI_PIN_ENTRY_PUSH_BUTTON -
132     CSR_WIFI_PIN_ENTRY_DISPLAY_PIN -
133     CSR_WIFI_PIN_ENTRY_ENTER_PIN   -
134
135 *******************************************************************************/
136 typedef u8 CsrWifiNmeConfigAction;
137 #define CSR_WIFI_PIN_ENTRY_PUSH_BUTTON   ((CsrWifiNmeConfigAction) 0x00)
138 #define CSR_WIFI_PIN_ENTRY_DISPLAY_PIN   ((CsrWifiNmeConfigAction) 0x01)
139 #define CSR_WIFI_PIN_ENTRY_ENTER_PIN     ((CsrWifiNmeConfigAction) 0x02)
140
141 /*******************************************************************************
142
143   NAME
144     CsrWifiNmeConnectionStatus
145
146   DESCRIPTION
147     Indicate the NME Connection Status when connecting or when disconnecting
148
149  VALUES
150     CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTED
151                    - NME is disconnected.
152     CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTING
153                    - NME is in the process of connecting.
154     CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_AUTHENTICATING
155                    - NME is in the authentication stage of a connection attempt.
156     CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTED
157                    - NME is connected.
158     CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTING
159                    - NME is in the process of disconnecting.
160
161 *******************************************************************************/
162 typedef u8 CsrWifiNmeConnectionStatus;
163 #define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTED     ((CsrWifiNmeConnectionStatus) 0x00)
164 #define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTING       ((CsrWifiNmeConnectionStatus) 0x01)
165 #define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_AUTHENTICATING   ((CsrWifiNmeConnectionStatus) 0x02)
166 #define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTED        ((CsrWifiNmeConnectionStatus) 0x03)
167 #define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTING    ((CsrWifiNmeConnectionStatus) 0x04)
168
169 /*******************************************************************************
170
171   NAME
172     CsrWifiNmeCredentialType
173
174   DESCRIPTION
175     NME Credential Types
176
177  VALUES
178     CSR_WIFI_NME_CREDENTIAL_TYPE_OPEN_SYSTEM
179                    - Credential Type Open System.
180     CSR_WIFI_NME_CREDENTIAL_TYPE_WEP64
181                    - Credential Type WEP-64
182     CSR_WIFI_NME_CREDENTIAL_TYPE_WEP128
183                    - Credential Type WEP-128
184     CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PSK
185                    - Credential Type WPA Pre-Shared Key
186     CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PASSPHRASE
187                    - Credential Type WPA pass phrase
188     CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PSK
189                    - Credential Type WPA2 Pre-Shared Key.
190     CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PASSPHRASE
191                    - Credential Type WPA2 pass phrase
192     CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PSK
193                    - Credential Type WAPI Pre-Shared Key.
194     CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PASSPHRASE
195                    - Credential Type WAPI pass phrase
196     CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI
197                    - Credential Type WAPI certificates
198     CSR_WIFI_NME_CREDENTIAL_TYPE_8021X
199                    - Credential Type 802.1X: the associated type supports
200                      FAST/LEAP/TLS/TTLS/PEAP/etc.
201
202 *******************************************************************************/
203 typedef u16 CsrWifiNmeCredentialType;
204 #define CSR_WIFI_NME_CREDENTIAL_TYPE_OPEN_SYSTEM       ((CsrWifiNmeCredentialType) 0x0000)
205 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WEP64             ((CsrWifiNmeCredentialType) 0x0001)
206 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WEP128            ((CsrWifiNmeCredentialType) 0x0002)
207 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PSK           ((CsrWifiNmeCredentialType) 0x0003)
208 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PASSPHRASE    ((CsrWifiNmeCredentialType) 0x0004)
209 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PSK          ((CsrWifiNmeCredentialType) 0x0005)
210 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PASSPHRASE   ((CsrWifiNmeCredentialType) 0x0006)
211 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PSK          ((CsrWifiNmeCredentialType) 0x0007)
212 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PASSPHRASE   ((CsrWifiNmeCredentialType) 0x0008)
213 #define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI              ((CsrWifiNmeCredentialType) 0x0009)
214 #define CSR_WIFI_NME_CREDENTIAL_TYPE_8021X             ((CsrWifiNmeCredentialType) 0x000A)
215
216 /*******************************************************************************
217
218   NAME
219     CsrWifiNmeEapMethod
220
221   DESCRIPTION
222     Outer EAP method with possibly inner method.
223
224  VALUES
225     CSR_WIFI_NME_EAP_METHOD_TLS
226                    - EAP-TLS Method.
227     CSR_WIFI_NME_EAP_METHOD_TTLS_MSCHAPV2
228                    - EAP-TTLS Method with MSCHAPV2.
229     CSR_WIFI_NME_EAP_METHOD_PEAP_GTC
230                    - EAP-PEAP Method with GTC.
231     CSR_WIFI_NME_EAP_METHOD_PEAP_MSCHAPV2
232                    - EAP-PEAP Method with MSCHAPV2.
233     CSR_WIFI_NME_EAP_METHOD_SIM
234                    - EAP-SIM Method.
235     CSR_WIFI_NME_EAP_METHOD_AKA
236                    - EAP-AKA Method.
237     CSR_WIFI_NME_EAP_METHOD_FAST_GTC
238                    - EAP-FAST Method with GTC.
239     CSR_WIFI_NME_EAP_METHOD_FAST_MSCHAPV2
240                    - EAP-FAST Method with MSCHAPV2.
241     CSR_WIFI_NME_EAP_METHOD_LEAP
242                    - EAP-LEAP Method.
243
244 *******************************************************************************/
245 typedef u16 CsrWifiNmeEapMethod;
246 #define CSR_WIFI_NME_EAP_METHOD_TLS             ((CsrWifiNmeEapMethod) 0x0001)
247 #define CSR_WIFI_NME_EAP_METHOD_TTLS_MSCHAPV2   ((CsrWifiNmeEapMethod) 0x0002)
248 #define CSR_WIFI_NME_EAP_METHOD_PEAP_GTC        ((CsrWifiNmeEapMethod) 0x0004)
249 #define CSR_WIFI_NME_EAP_METHOD_PEAP_MSCHAPV2   ((CsrWifiNmeEapMethod) 0x0008)
250 #define CSR_WIFI_NME_EAP_METHOD_SIM             ((CsrWifiNmeEapMethod) 0x0010)
251 #define CSR_WIFI_NME_EAP_METHOD_AKA             ((CsrWifiNmeEapMethod) 0x0020)
252 #define CSR_WIFI_NME_EAP_METHOD_FAST_GTC        ((CsrWifiNmeEapMethod) 0x0040)
253 #define CSR_WIFI_NME_EAP_METHOD_FAST_MSCHAPV2   ((CsrWifiNmeEapMethod) 0x0080)
254 #define CSR_WIFI_NME_EAP_METHOD_LEAP            ((CsrWifiNmeEapMethod) 0x0100)
255
256 /*******************************************************************************
257
258   NAME
259     CsrWifiNmeEncryption
260
261   DESCRIPTION
262     WiFi Encryption method
263
264  VALUES
265     CSR_WIFI_NME_ENCRYPTION_CIPHER_NONE
266                    - No encryprion set.
267     CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP40
268                    - 40 bytes WEP key for peer to peer communication.
269     CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP104
270                    - 104 bytes WEP key for peer to peer communication.
271     CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_TKIP
272                    - TKIP key for peer to peer communication.
273     CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_CCMP
274                    - CCMP key for peer to peer communication.
275     CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_SMS4
276                    - SMS4 key for peer to peer communication.
277     CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP40
278                    - 40 bytes WEP key for broadcast messages.
279     CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP104
280                    - 104 bytes WEP key for broadcast messages.
281     CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_TKIP
282                    - TKIP key for broadcast messages.
283     CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_CCMP
284                    - CCMP key for broadcast messages
285     CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_SMS4
286                    - SMS4 key for broadcast messages.
287
288 *******************************************************************************/
289 typedef u16 CsrWifiNmeEncryption;
290 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_NONE              ((CsrWifiNmeEncryption) 0x0000)
291 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP40    ((CsrWifiNmeEncryption) 0x0001)
292 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP104   ((CsrWifiNmeEncryption) 0x0002)
293 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_TKIP     ((CsrWifiNmeEncryption) 0x0004)
294 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_CCMP     ((CsrWifiNmeEncryption) 0x0008)
295 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_SMS4     ((CsrWifiNmeEncryption) 0x0010)
296 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP40       ((CsrWifiNmeEncryption) 0x0020)
297 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP104      ((CsrWifiNmeEncryption) 0x0040)
298 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_TKIP        ((CsrWifiNmeEncryption) 0x0080)
299 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_CCMP        ((CsrWifiNmeEncryption) 0x0100)
300 #define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_SMS4        ((CsrWifiNmeEncryption) 0x0200)
301
302 /*******************************************************************************
303
304   NAME
305     CsrWifiNmeIndications
306
307   DESCRIPTION
308     NME indications
309
310  VALUES
311     CSR_WIFI_NME_INDICATIONS_IND_AP_STATION
312                    - NME AP Station Indication.
313     CSR_WIFI_NME_INDICATIONS_IND_AP_STOP
314                    - NME AP Stop Indication.
315     CSR_WIFI_NME_INDICATIONS_IND_SIM_UMTS_AUTH
316                    - NME UMTS Authentication Indication.
317     CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_START
318                    - NME P2P Group Start Indication.
319     CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_STATUS
320                    - NME P2P Group Status Indication.
321     CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_ROLE
322                    - NME P2P Group Role Indication.
323     CSR_WIFI_NME_INDICATIONS_IND_PROFILE_DISCONNECT
324                    - NME Profile Disconnect Indication.
325     CSR_WIFI_NME_INDICATIONS_IND_PROFILE_UPDATE
326                    - NME Profile Update Indication.
327     CSR_WIFI_NME_INDICATIONS_IND_SIM_IMSI_GET
328                    - NME GET IMSI Indication.
329     CSR_WIFI_NME_INDICATIONS_IND_SIM_GSM_AUTH
330                    - NME GSM Authentication Indication.
331     CSR_WIFI_NME_INDICATIONS_ALL
332                    - Used to register for all available indications
333
334 *******************************************************************************/
335 typedef u32 CsrWifiNmeIndications;
336 #define CSR_WIFI_NME_INDICATIONS_IND_AP_STATION           ((CsrWifiNmeIndications) 0x00100000)
337 #define CSR_WIFI_NME_INDICATIONS_IND_AP_STOP              ((CsrWifiNmeIndications) 0x00200000)
338 #define CSR_WIFI_NME_INDICATIONS_IND_SIM_UMTS_AUTH        ((CsrWifiNmeIndications) 0x01000000)
339 #define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_START      ((CsrWifiNmeIndications) 0x02000000)
340 #define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_STATUS     ((CsrWifiNmeIndications) 0x04000000)
341 #define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_ROLE       ((CsrWifiNmeIndications) 0x08000000)
342 #define CSR_WIFI_NME_INDICATIONS_IND_PROFILE_DISCONNECT   ((CsrWifiNmeIndications) 0x10000000)
343 #define CSR_WIFI_NME_INDICATIONS_IND_PROFILE_UPDATE       ((CsrWifiNmeIndications) 0x20000000)
344 #define CSR_WIFI_NME_INDICATIONS_IND_SIM_IMSI_GET         ((CsrWifiNmeIndications) 0x40000000)
345 #define CSR_WIFI_NME_INDICATIONS_IND_SIM_GSM_AUTH         ((CsrWifiNmeIndications) 0x80000000)
346 #define CSR_WIFI_NME_INDICATIONS_ALL                      ((CsrWifiNmeIndications) 0xFFFFFFFF)
347
348 /*******************************************************************************
349
350   NAME
351     CsrWifiNmeSecError
352
353   DESCRIPTION
354     NME Security Errors
355     place holder for the security library abort reason
356
357  VALUES
358     CSR_WIFI_NME_SEC_ERROR_SEC_ERROR_UNKNOWN
359                    - Unknown Security Error.
360
361 *******************************************************************************/
362 typedef u8 CsrWifiNmeSecError;
363 #define CSR_WIFI_NME_SEC_ERROR_SEC_ERROR_UNKNOWN   ((CsrWifiNmeSecError) 0x00)
364
365 /*******************************************************************************
366
367   NAME
368     CsrWifiNmeSimCardType
369
370   DESCRIPTION
371     (U)SIM Card (or UICC) types
372
373  VALUES
374     CSR_WIFI_NME_SIM_CARD_TYPE_2G   - 2G SIM card, capable of performing GSM
375                                       authentication only.
376     CSR_WIFI_NME_SIM_CARD_TYPE_3G   - UICC supporting USIM application, capable
377                                       of performing UMTS authentication only.
378     CSR_WIFI_NME_SIM_CARD_TYPE_2G3G - UICC supporting both USIM and SIM
379                                       applications, capable of performing both
380                                       UMTS and GSM authentications.
381
382 *******************************************************************************/
383 typedef u8 CsrWifiNmeSimCardType;
384 #define CSR_WIFI_NME_SIM_CARD_TYPE_2G     ((CsrWifiNmeSimCardType) 0x01)
385 #define CSR_WIFI_NME_SIM_CARD_TYPE_3G     ((CsrWifiNmeSimCardType) 0x02)
386 #define CSR_WIFI_NME_SIM_CARD_TYPE_2G3G   ((CsrWifiNmeSimCardType) 0x03)
387
388 /*******************************************************************************
389
390   NAME
391     CsrWifiNmeUmtsAuthResult
392
393   DESCRIPTION
394     Only relevant for UMTS Authentication. It indicates if the UICC has
395     successfully authenticated the network or otherwise.
396
397  VALUES
398     CSR_WIFI_NME_UMTS_AUTH_RESULT_SUCCESS
399                    - Successful outcome from USIM indicating that the card has
400                      successfully authenticated the network.
401     CSR_WIFI_NME_UMTS_AUTH_RESULT_SYNC_FAIL
402                    - Unsuccessful outcome from USIM indicating that the card is
403                      requesting the network to synchronise and re-try again. If
404                      no further request is received an NME timer will expire and
405                      the authentication is aborted.
406     CSR_WIFI_NME_UMTS_AUTH_RESULT_REJECT
407                    - Unsuccessful outcome from USIM indicating that the card has
408                      rejected the network and that the authentication is
409                      aborted.
410
411 *******************************************************************************/
412 typedef u8 CsrWifiNmeUmtsAuthResult;
413 #define CSR_WIFI_NME_UMTS_AUTH_RESULT_SUCCESS     ((CsrWifiNmeUmtsAuthResult) 0x00)
414 #define CSR_WIFI_NME_UMTS_AUTH_RESULT_SYNC_FAIL   ((CsrWifiNmeUmtsAuthResult) 0x01)
415 #define CSR_WIFI_NME_UMTS_AUTH_RESULT_REJECT      ((CsrWifiNmeUmtsAuthResult) 0x02)
416
417 /*******************************************************************************
418
419   NAME
420     CsrWifiNmeWmmQosInfo
421
422   DESCRIPTION
423     Defines bits for the QoS Info octect as defined in the WMM specification.
424     The values of this type are used across the NME/SME/Router API's and they
425     must be kept consistent with the corresponding types in the .xml of the
426     other interfaces
427
428  VALUES
429     CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_ALL
430                    - WMM AP may deliver all buffered frames.
431     CSR_WIFI_NME_WMM_QOS_INFO_AC_VO
432                    - To enable the triggering and delivery of QoS Voice.
433     CSR_WIFI_NME_WMM_QOS_INFO_AC_VI
434                    - To enable the triggering and delivery of QoS Video.
435     CSR_WIFI_NME_WMM_QOS_INFO_AC_BK
436                    - To enable the triggering and delivery of QoS Background.
437     CSR_WIFI_NME_WMM_QOS_INFO_AC_BE
438                    - To enable the triggering and delivery of QoS Best Effort.
439     CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_TWO
440                    - WMM AP may deliver a maximum of 2 buffered frames per
441                      Unscheduled Service Period (USP).
442     CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_FOUR
443                    - WMM AP may deliver a maximum of 4 buffered frames per USP.
444     CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_SIX
445                    - WMM AP may deliver a maximum of 6 buffered frames per USP.
446
447 *******************************************************************************/
448 typedef u8 CsrWifiNmeWmmQosInfo;
449 #define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_ALL    ((CsrWifiNmeWmmQosInfo) 0x00)
450 #define CSR_WIFI_NME_WMM_QOS_INFO_AC_VO            ((CsrWifiNmeWmmQosInfo) 0x01)
451 #define CSR_WIFI_NME_WMM_QOS_INFO_AC_VI            ((CsrWifiNmeWmmQosInfo) 0x02)
452 #define CSR_WIFI_NME_WMM_QOS_INFO_AC_BK            ((CsrWifiNmeWmmQosInfo) 0x04)
453 #define CSR_WIFI_NME_WMM_QOS_INFO_AC_BE            ((CsrWifiNmeWmmQosInfo) 0x08)
454 #define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_TWO    ((CsrWifiNmeWmmQosInfo) 0x20)
455 #define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_FOUR   ((CsrWifiNmeWmmQosInfo) 0x40)
456 #define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_SIX    ((CsrWifiNmeWmmQosInfo) 0x60)
457
458
459 /*******************************************************************************
460
461   NAME
462     CsrWifiNmeEapMethodMask
463
464   DESCRIPTION
465     Mask type for use with the values defined by CsrWifiNmeEapMethod.
466
467 *******************************************************************************/
468 typedef u16 CsrWifiNmeEapMethodMask;
469 /*******************************************************************************
470
471   NAME
472     CsrWifiNmeEncryptionMask
473
474   DESCRIPTION
475     Mask type for use with the values defined by CsrWifiNmeEncryption
476
477 *******************************************************************************/
478 typedef u16 CsrWifiNmeEncryptionMask;
479 /*******************************************************************************
480
481   NAME
482     CsrWifiNmeIndicationsMask
483
484   DESCRIPTION
485     Mask type for use with the values defined by CsrWifiNmeIndications
486
487 *******************************************************************************/
488 typedef u32 CsrWifiNmeIndicationsMask;
489 /*******************************************************************************
490
491   NAME
492     CsrWifiNmeNmeIndicationsMask
493
494   DESCRIPTION
495     Mask type for use with the values defined by CsrWifiNmeNmeIndications.
496     Used to overlap the unused portion of the unifi_IndicationsMask For NME
497     specific indications
498
499 *******************************************************************************/
500 typedef u32 CsrWifiNmeNmeIndicationsMask;
501 /*******************************************************************************
502
503   NAME
504     CsrWifiNmeWmmQosInfoMask
505
506   DESCRIPTION
507     Mask type for use with the values defined by CsrWifiNmeWmmQosInfo
508
509 *******************************************************************************/
510 typedef u8 CsrWifiNmeWmmQosInfoMask;
511
512
513 /*******************************************************************************
514
515   NAME
516     CsrWifiNmeEmpty
517
518   DESCRIPTION
519     Empty Structure to indicate that no credentials are available.
520
521   MEMBERS
522     empty  - Only element of the empty structure (always set to 0).
523
524 *******************************************************************************/
525 typedef struct
526 {
527     u8 empty;
528 } CsrWifiNmeEmpty;
529
530 /*******************************************************************************
531
532   NAME
533     CsrWifiNmePassphrase
534
535   DESCRIPTION
536     Structure holding the ASCII Pass Phrase data.
537
538   MEMBERS
539     encryptionMode - Encryption type as defined in CsrWifiSmeEncryption.
540     passphrase     - Pass phrase ASCII value.
541
542 *******************************************************************************/
543 typedef struct
544 {
545     u16      encryptionMode;
546     char *passphrase;
547 } CsrWifiNmePassphrase;
548
549 /*******************************************************************************
550
551   NAME
552     CsrWifiNmePsk
553
554   DESCRIPTION
555     Structure holding the Pre-Shared Key data.
556
557   MEMBERS
558     encryptionMode - Encryption type as defined in CsrWifiSmeEncryption.
559     psk            - Pre-Shared Key value.
560
561 *******************************************************************************/
562 typedef struct
563 {
564     u16 encryptionMode;
565     u8  psk[32];
566 } CsrWifiNmePsk;
567
568 /*******************************************************************************
569
570   NAME
571     CsrWifiNmeWapiCredentials
572
573   DESCRIPTION
574     Structure holding WAPI credentials data.
575
576   MEMBERS
577     certificateLength   - Length in bytes of the following client certificate.
578     certificate         - The actual client certificate data (if present).
579                           DER/PEM format supported.
580     privateKeyLength    - Length in bytes of the following private key.
581     privateKey          - The actual private key. DER/PEM format.
582     caCertificateLength - Length in bytes of the following certificate authority
583                           certificate.
584     caCertificate       - The actual certificate authority certificate data. If
585                           not supplied the received certificate authority
586                           certificate is assumed to be validate, if present the
587                           received certificate is validated against it. DER/PEM
588                           format supported.
589
590 *******************************************************************************/
591 typedef struct
592 {
593     u32 certificateLength;
594     u8 *certificate;
595     u16 privateKeyLength;
596     u8 *privateKey;
597     u32 caCertificateLength;
598     u8 *caCertificate;
599 } CsrWifiNmeWapiCredentials;
600
601 /*******************************************************************************
602
603   NAME
604     CsrWifiNmeConnectAttempt
605
606   DESCRIPTION
607     Structure holding Connection attempt data.
608
609   MEMBERS
610     bssid         - Id of Basic Service Set connections attempt have been made
611                     to.
612     status        - Status returned to indicate the success or otherwise of the
613                     connection attempt.
614     securityError - Security error status indicating the nature of the failure
615                     to connect.
616
617 *******************************************************************************/
618 typedef struct
619 {
620     CsrWifiMacAddress  bssid;
621     CsrResult          status;
622     CsrWifiNmeSecError securityError;
623 } CsrWifiNmeConnectAttempt;
624
625 /*******************************************************************************
626
627   NAME
628     CsrWifiNmeEapCredentials
629
630   DESCRIPTION
631     Supports the use of multiple EAP methods via a single structure. The
632     methods required are indicated by the value set in the eapMethodMask
633
634   MEMBERS
635     eapMethodMask
636                    - Bit mask of supported EAP methods
637                      Currently only supports the setting of one bit.
638                      Required for all the EAP methods.
639     authMode
640                    - Bit mask representing the authentication types that may be
641                      supported by a suitable AP. An AP must support at least one
642                      of the authentication types specified to be considered for
643                      connection. Required for all EAP methods.
644     encryptionMode
645                    - Bit mask representing the encryption types that may be
646                      supported by a suitable AP. An AP must support a suitable
647                      mix of the pairwise and group encryption types requested to
648                      be considered for connection. Required for all EAP methods.
649     userName
650                    - User name. Required for all EAP methods except: SIM or AKA.
651     userPassword
652                    - User Password. Required for all EAP methods except: TLS,
653                      SIM or AKA.
654     authServerUserIdentity
655                    - Authentication server user Identity. Required for all EAP
656                      methods except: TLS, SIM, AKA or FAST.
657     clientCertificateLength
658                    - Length in bytes of the following client certificate (if
659                      present). Only required for TLS.
660     clientCertificate
661                    - The actual client certificate data (if present). Only
662                      required for TLS. DER/PEM format supported.
663     certificateAuthorityCertificateLength
664                    - Length in bytes of the following certificate authority
665                      certificate (if present). Optional for TLS, TTLS, PEAP.
666     certificateAuthorityCertificate
667                    - The actual certificate authority certificate data (if
668                      present). If not supplied the received certificate
669                      authority certificate is assumed to be valid, if present
670                      the received certificate is validated against it. Optional
671                      for TLS, TTLS, PEAP. DER/PEM format supported.
672     privateKeyLength
673                    - Length in bytes of the following private key (if present).
674                      Only required for TLS.
675     privateKey
676                    - The actual private key (if present). Only required for TLS.
677                      DER/PEM format, maybe password protected.
678     privateKeyPassword
679                    - Optional password to protect the private key.
680     sessionLength
681                    - Length in bytes of the following session field Supported
682                      for all EAP methods except: SIM or AKA.
683     session
684                    - Session information to support faster re-authentication.
685                      Supported for all EAP methods except: SIM or AKA.
686     allowPacProvisioning
687                    - If TRUE: PAC provisioning is allowed 'over-the_air';
688                      If FALSE: a PAC must be supplied.
689                      Only required for FAST.
690     pacLength
691                    - Length the following PAC field. If allowPacProvisioning is
692                      FALSE then the PAC MUST be supplied (i.e. non-zero). Only
693                      required for FAST.
694     pac
695                    - The actual PAC data. If allowPacProvisioning is FALSE then
696                      the PAC MUST be supplied. Only required for FAST.
697     pacPassword
698                    - Optional password to protect the PAC. Only required for
699                      FAST.
700
701 *******************************************************************************/
702 typedef struct
703 {
704     CsrWifiNmeEapMethodMask  eapMethodMask;
705     CsrWifiSmeAuthModeMask   authMode;
706     CsrWifiNmeEncryptionMask encryptionMode;
707     char           *userName;
708     char           *userPassword;
709     char           *authServerUserIdentity;
710     u32                clientCertificateLength;
711     u8                *clientCertificate;
712     u32                certificateAuthorityCertificateLength;
713     u8                *certificateAuthorityCertificate;
714     u16                privateKeyLength;
715     u8                *privateKey;
716     char           *privateKeyPassword;
717     u32                sessionLength;
718     u8                *session;
719     u8                  allowPacProvisioning;
720     u32                pacLength;
721     u8                *pac;
722     char           *pacPassword;
723 } CsrWifiNmeEapCredentials;
724
725 /*******************************************************************************
726
727   NAME
728     CsrWifiNmePeerConfig
729
730   DESCRIPTION
731     Structure holding Peer Config data.
732
733   MEMBERS
734     p2pDeviceId         -
735     groupCapabilityMask -
736     groupOwnerIntent    -
737
738 *******************************************************************************/
739 typedef struct
740 {
741     CsrWifiMacAddress                p2pDeviceId;
742     CsrWifiSmeP2pGroupCapabilityMask groupCapabilityMask;
743     u8                         groupOwnerIntent;
744 } CsrWifiNmePeerConfig;
745
746 /*******************************************************************************
747
748   NAME
749     CsrWifiNmeProfileIdentity
750
751   DESCRIPTION
752     The identity of a profile is defined as the unique combination the BSSID
753     and SSID.
754
755   MEMBERS
756     bssid  - ID of Basic Service Set for or the P2pDevice address of the GO for
757              which a connection attempt was made.
758     ssid   - Service Set Id.
759
760 *******************************************************************************/
761 typedef struct
762 {
763     CsrWifiMacAddress bssid;
764     CsrWifiSsid       ssid;
765 } CsrWifiNmeProfileIdentity;
766
767 /*******************************************************************************
768
769   NAME
770     CsrWifiNmeWep128Keys
771
772   DESCRIPTION
773     Structure holding WEP Authentication Type and WEP keys that can be used
774     when using WEP128.
775
776   MEMBERS
777     wepAuthType    - Mask to select the WEP authentication type (Open or Shared)
778     selectedWepKey - Index to one of the four keys below indicating the
779                      currently used WEP key.
780     key1           - Value for key number 1.
781     key2           - Value for key number 2.
782     key3           - Value for key number 3.
783     key4           - Value for key number 4.
784
785 *******************************************************************************/
786 typedef struct
787 {
788     CsrWifiSmeAuthModeMask wepAuthType;
789     u8               selectedWepKey;
790     u8               key1[13];
791     u8               key2[13];
792     u8               key3[13];
793     u8               key4[13];
794 } CsrWifiNmeWep128Keys;
795
796 /*******************************************************************************
797
798   NAME
799     CsrWifiNmeWep64Keys
800
801   DESCRIPTION
802     Structure for holding WEP Authentication Type and WEP keys that can be
803     used when using WEP64.
804
805   MEMBERS
806     wepAuthType    - Mask to select the WEP authentication type (Open or Shared)
807     selectedWepKey - Index to one of the four keys below indicating the
808                      currently used WEP key.
809     key1           - Value for key number 1.
810     key2           - Value for key number 2.
811     key3           - Value for key number 3.
812     key4           - Value for key number 4.
813
814 *******************************************************************************/
815 typedef struct
816 {
817     CsrWifiSmeAuthModeMask wepAuthType;
818     u8               selectedWepKey;
819     u8               key1[5];
820     u8               key2[5];
821     u8               key3[5];
822     u8               key4[5];
823 } CsrWifiNmeWep64Keys;
824
825 /*******************************************************************************
826
827   NAME
828     CsrWifiNmeCredentials
829
830   DESCRIPTION
831     Structure containing the Credentials data.
832
833   MEMBERS
834     credentialType            - Credential type value (as defined in the
835                                 enumeration type).
836     credential                - Union containing credentials which depends on
837                                 credentialType parameter.
838     credentialeap             -
839     credentialwapiPassphrase  -
840     credentialwpa2Passphrase  -
841     credentialwpa2Psk         -
842     credentialwapiPsk         -
843     credentialwpaPassphrase   -
844     credentialwapi            -
845     credentialwep128Key       -
846     credentialwpaPsk          -
847     credentialopenSystem      -
848     credentialwep64Key        -
849
850 *******************************************************************************/
851 typedef struct
852 {
853     CsrWifiNmeCredentialType credentialType;
854     union {
855         CsrWifiNmeEapCredentials  eap;
856         CsrWifiNmePassphrase      wapiPassphrase;
857         CsrWifiNmePassphrase      wpa2Passphrase;
858         CsrWifiNmePsk             wpa2Psk;
859         CsrWifiNmePsk             wapiPsk;
860         CsrWifiNmePassphrase      wpaPassphrase;
861         CsrWifiNmeWapiCredentials wapi;
862         CsrWifiNmeWep128Keys      wep128Key;
863         CsrWifiNmePsk             wpaPsk;
864         CsrWifiNmeEmpty           openSystem;
865         CsrWifiNmeWep64Keys       wep64Key;
866     } credential;
867 } CsrWifiNmeCredentials;
868
869 /*******************************************************************************
870
871   NAME
872     CsrWifiNmeProfile
873
874   DESCRIPTION
875     Structure containing the Profile data.
876
877   MEMBERS
878     profileIdentity - Profile Identity.
879     wmmQosInfoMask  - Mask for WMM QoS information.
880     bssType         - Type of BSS (Infrastructure or Adhoc).
881     channelNo       - Channel Number.
882     ccxOptionsMask  - Options mask for Cisco Compatible Extentions.
883     cloakedSsid     - Flag to decide whether the SSID is cloaked (not
884                       transmitted) or not.
885     credentials     - Credentials data.
886
887 *******************************************************************************/
888 typedef struct
889 {
890     CsrWifiNmeProfileIdentity profileIdentity;
891     CsrWifiNmeWmmQosInfoMask  wmmQosInfoMask;
892     CsrWifiNmeBssType         bssType;
893     u8                  channelNo;
894     u8                  ccxOptionsMask;
895     u8                   cloakedSsid;
896     CsrWifiNmeCredentials     credentials;
897 } CsrWifiNmeProfile;
898
899
900 /* Downstream */
901 #define CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST            (0x0000)
902
903 #define CSR_WIFI_NME_PROFILE_SET_REQ                      ((CsrWifiNmePrim) (0x0000 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
904 #define CSR_WIFI_NME_PROFILE_DELETE_REQ                   ((CsrWifiNmePrim) (0x0001 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
905 #define CSR_WIFI_NME_PROFILE_DELETE_ALL_REQ               ((CsrWifiNmePrim) (0x0002 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
906 #define CSR_WIFI_NME_PROFILE_ORDER_SET_REQ                ((CsrWifiNmePrim) (0x0003 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
907 #define CSR_WIFI_NME_PROFILE_CONNECT_REQ                  ((CsrWifiNmePrim) (0x0004 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
908 #define CSR_WIFI_NME_WPS_REQ                              ((CsrWifiNmePrim) (0x0005 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
909 #define CSR_WIFI_NME_WPS_CANCEL_REQ                       ((CsrWifiNmePrim) (0x0006 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
910 #define CSR_WIFI_NME_CONNECTION_STATUS_GET_REQ            ((CsrWifiNmePrim) (0x0007 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
911 #define CSR_WIFI_NME_SIM_IMSI_GET_RES                     ((CsrWifiNmePrim) (0x0008 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
912 #define CSR_WIFI_NME_SIM_GSM_AUTH_RES                     ((CsrWifiNmePrim) (0x0009 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
913 #define CSR_WIFI_NME_SIM_UMTS_AUTH_RES                    ((CsrWifiNmePrim) (0x000A + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
914 #define CSR_WIFI_NME_WPS_CONFIG_SET_REQ                   ((CsrWifiNmePrim) (0x000B + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
915 #define CSR_WIFI_NME_EVENT_MASK_SET_REQ                   ((CsrWifiNmePrim) (0x000C + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
916
917
918 #define CSR_WIFI_NME_PRIM_DOWNSTREAM_HIGHEST           (0x000C + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST)
919
920 /* Upstream */
921 #define CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST              (0x0000 + CSR_PRIM_UPSTREAM)
922
923 #define CSR_WIFI_NME_PROFILE_SET_CFM                      ((CsrWifiNmePrim)(0x0000 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
924 #define CSR_WIFI_NME_PROFILE_DELETE_CFM                   ((CsrWifiNmePrim)(0x0001 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
925 #define CSR_WIFI_NME_PROFILE_DELETE_ALL_CFM               ((CsrWifiNmePrim)(0x0002 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
926 #define CSR_WIFI_NME_PROFILE_ORDER_SET_CFM                ((CsrWifiNmePrim)(0x0003 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
927 #define CSR_WIFI_NME_PROFILE_CONNECT_CFM                  ((CsrWifiNmePrim)(0x0004 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
928 #define CSR_WIFI_NME_WPS_CFM                              ((CsrWifiNmePrim)(0x0005 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
929 #define CSR_WIFI_NME_WPS_CANCEL_CFM                       ((CsrWifiNmePrim)(0x0006 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
930 #define CSR_WIFI_NME_CONNECTION_STATUS_GET_CFM            ((CsrWifiNmePrim)(0x0007 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
931 #define CSR_WIFI_NME_PROFILE_UPDATE_IND                   ((CsrWifiNmePrim)(0x0008 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
932 #define CSR_WIFI_NME_PROFILE_DISCONNECT_IND               ((CsrWifiNmePrim)(0x0009 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
933 #define CSR_WIFI_NME_SIM_IMSI_GET_IND                     ((CsrWifiNmePrim)(0x000A + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
934 #define CSR_WIFI_NME_SIM_GSM_AUTH_IND                     ((CsrWifiNmePrim)(0x000B + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
935 #define CSR_WIFI_NME_SIM_UMTS_AUTH_IND                    ((CsrWifiNmePrim)(0x000C + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
936 #define CSR_WIFI_NME_WPS_CONFIG_SET_CFM                   ((CsrWifiNmePrim)(0x000D + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
937 #define CSR_WIFI_NME_EVENT_MASK_SET_CFM                   ((CsrWifiNmePrim)(0x000E + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
938
939 #define CSR_WIFI_NME_PRIM_UPSTREAM_HIGHEST             (0x000E + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST)
940
941 #define CSR_WIFI_NME_PRIM_DOWNSTREAM_COUNT             (CSR_WIFI_NME_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST)
942 #define CSR_WIFI_NME_PRIM_UPSTREAM_COUNT               (CSR_WIFI_NME_PRIM_UPSTREAM_HIGHEST   + 1 - CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST)
943
944 /*******************************************************************************
945
946   NAME
947     CsrWifiNmeProfileSetReq
948
949   DESCRIPTION
950     Creates or updates an existing profile in the NME that matches the unique
951     identity of the profile. Each profile is identified by the combination of
952     BSSID and SSID. The profile contains all the required credentials for
953     attempting to connect to the network. Creating or updating a profile via
954     the NME PROFILE SET REQ does NOT add the profile to the preferred profile
955     list within the NME used for the NME auto-connect behaviour.
956
957   MEMBERS
958     common  - Common header for use with the CsrWifiFsm Module
959     profile - Specifies the identity and credentials of the network.
960
961 *******************************************************************************/
962 typedef struct
963 {
964     CsrWifiFsmEvent   common;
965     CsrWifiNmeProfile profile;
966 } CsrWifiNmeProfileSetReq;
967
968 /*******************************************************************************
969
970   NAME
971     CsrWifiNmeProfileDeleteReq
972
973   DESCRIPTION
974     Will delete the profile with a matching identity, but does NOT modify the
975     preferred profile list.
976
977   MEMBERS
978     common          - Common header for use with the CsrWifiFsm Module
979     profileIdentity - Identity (BSSID, SSID) of profile to be deleted.
980
981 *******************************************************************************/
982 typedef struct
983 {
984     CsrWifiFsmEvent           common;
985     CsrWifiNmeProfileIdentity profileIdentity;
986 } CsrWifiNmeProfileDeleteReq;
987
988 /*******************************************************************************
989
990   NAME
991     CsrWifiNmeProfileDeleteAllReq
992
993   DESCRIPTION
994     Deletes all profiles present in the NME, but does NOT modify the
995     preferred profile list.
996
997   MEMBERS
998     common - Common header for use with the CsrWifiFsm Module
999
1000 *******************************************************************************/
1001 typedef struct
1002 {
1003     CsrWifiFsmEvent common;
1004 } CsrWifiNmeProfileDeleteAllReq;
1005
1006 /*******************************************************************************
1007
1008   NAME
1009     CsrWifiNmeProfileOrderSetReq
1010
1011   DESCRIPTION
1012     Defines the preferred order that profiles present in the NME should be
1013     used during the NME auto-connect behaviour.
1014     If profileIdentitysCount == 0, it removes any existing preferred profile
1015     list already present in the NME, effectively disabling the auto-connect
1016     behaviour.
1017     NOTE: Profile identities that do not match any profile stored in the NME
1018     are ignored during the auto-connect procedure.
1019     NOTE: during auto-connect the NME will only attempt to join an existing
1020     adhoc network and it will never attempt to host an adhoc network; for
1021     hosting and adhoc network, use CSR_WIFI_NME_PROFILE_CONNECT_REQ
1022
1023   MEMBERS
1024     common                - Common header for use with the CsrWifiFsm Module
1025     interfaceTag          - Interface Identifier; unique identifier of an
1026                             interface
1027     profileIdentitysCount - The number of profiles identities in the list.
1028     profileIdentitys      - Points to the list of profile identities.
1029
1030 *******************************************************************************/
1031 typedef struct
1032 {
1033     CsrWifiFsmEvent            common;
1034     u16                  interfaceTag;
1035     u8                   profileIdentitysCount;
1036     CsrWifiNmeProfileIdentity *profileIdentitys;
1037 } CsrWifiNmeProfileOrderSetReq;
1038
1039 /*******************************************************************************
1040
1041   NAME
1042     CsrWifiNmeProfileConnectReq
1043
1044   DESCRIPTION
1045     Requests the NME to attempt to connect to the specified profile.
1046     Overrides any current connection attempt.
1047
1048   MEMBERS
1049     common          - Common header for use with the CsrWifiFsm Module
1050     interfaceTag    - Interface Identifier; unique identifier of an interface
1051     profileIdentity - Identity (BSSID, SSID) of profile to be connected to.
1052                       It must match an existing profile in the NME.
1053
1054 *******************************************************************************/
1055 typedef struct
1056 {
1057     CsrWifiFsmEvent           common;
1058     u16                 interfaceTag;
1059     CsrWifiNmeProfileIdentity profileIdentity;
1060 } CsrWifiNmeProfileConnectReq;
1061
1062 /*******************************************************************************
1063
1064   NAME
1065     CsrWifiNmeWpsReq
1066
1067   DESCRIPTION
1068     Requests the NME to look for WPS enabled APs and attempt to perform WPS
1069     to determine the appropriate security credentials to connect to the AP.
1070     If the PIN == '00000000' then 'push button mode' is indicated, otherwise
1071     the PIN has to match that of the AP. 4 digit pin is passed by sending the
1072     pin digits in pin[0]..pin[3] and rest of the contents filled with '-'.
1073
1074   MEMBERS
1075     common       - Common header for use with the CsrWifiFsm Module
1076     interfaceTag - Interface Identifier; unique identifier of an interface
1077     pin          - PIN value.
1078     ssid         - Service Set identifier
1079     bssid        - ID of Basic Service Set for which a WPS connection attempt is
1080                    being made.
1081
1082 *******************************************************************************/
1083 typedef struct
1084 {
1085     CsrWifiFsmEvent   common;
1086     u16         interfaceTag;
1087     u8          pin[8];
1088     CsrWifiSsid       ssid;
1089     CsrWifiMacAddress bssid;
1090 } CsrWifiNmeWpsReq;
1091
1092 /*******************************************************************************
1093
1094   NAME
1095     CsrWifiNmeWpsCancelReq
1096
1097   DESCRIPTION
1098     Requests the NME to cancel any WPS procedure that it is currently
1099     performing. This includes WPS registrar activities started because of
1100     CSR_WIFI_NME_AP_REGISTER.request
1101
1102   MEMBERS
1103     common       - Common header for use with the CsrWifiFsm Module
1104     interfaceTag - Interface Identifier; unique identifier of an interface
1105
1106 *******************************************************************************/
1107 typedef struct
1108 {
1109     CsrWifiFsmEvent common;
1110     u16       interfaceTag;
1111 } CsrWifiNmeWpsCancelReq;
1112
1113 /*******************************************************************************
1114
1115   NAME
1116     CsrWifiNmeConnectionStatusGetReq
1117
1118   DESCRIPTION
1119     Requests the current connection status of the NME.
1120
1121   MEMBERS
1122     common       - Common header for use with the CsrWifiFsm Module
1123     interfaceTag - Interface Identifier; unique identifier of an interface
1124
1125 *******************************************************************************/
1126 typedef struct
1127 {
1128     CsrWifiFsmEvent common;
1129     u16       interfaceTag;
1130 } CsrWifiNmeConnectionStatusGetReq;
1131
1132 /*******************************************************************************
1133
1134   NAME
1135     CsrWifiNmeSimImsiGetRes
1136
1137   DESCRIPTION
1138     Response from the application that received the NME SIM IMSI GET IND.
1139
1140   MEMBERS
1141     common   - Common header for use with the CsrWifiFsm Module
1142     status   - Indicates the outcome of the requested operation: STATUS_SUCCESS
1143                or STATUS_ERROR.
1144     imsi     - The value of the IMSI obtained from the UICC.
1145     cardType - The UICC type (GSM only (SIM), UMTS only (USIM), Both).
1146
1147 *******************************************************************************/
1148 typedef struct
1149 {
1150     CsrWifiFsmEvent       common;
1151     CsrResult             status;
1152     char        *imsi;
1153     CsrWifiNmeSimCardType cardType;
1154 } CsrWifiNmeSimImsiGetRes;
1155
1156 /*******************************************************************************
1157
1158   NAME
1159     CsrWifiNmeSimGsmAuthRes
1160
1161   DESCRIPTION
1162     Response from the application that received the NME SIM GSM AUTH IND. For
1163     each GSM authentication round a GSM Ciphering key (Kc) and a signed
1164     response (SRES) are produced. Since 2 or 3 GSM authentication rounds are
1165     used the 2 or 3 Kc's obtained respectively are combined into one buffer
1166     and similarly the 2 or 3 SRES's obtained are combined into another
1167     buffer. The order of Kc values (SRES values respectively) in their buffer
1168     is the same as that of their corresponding RAND values in the incoming
1169     indication.
1170
1171   MEMBERS
1172     common     - Common header for use with the CsrWifiFsm Module
1173     status     - Indicates the outcome of the requested operation:
1174                  STATUS_SUCCESS or STATUS_ERROR
1175     kcsLength  - Length in Bytes of Kc buffer. Legal values are: 16 or 24.
1176     kcs        - Kc buffer holding 2 or 3 Kc values.
1177     sresLength - Length in Bytes of SRES buffer. Legal values are: 8 or 12.
1178     sres       - SRES buffer holding 2 or 3 SRES values.
1179
1180 *******************************************************************************/
1181 typedef struct
1182 {
1183     CsrWifiFsmEvent common;
1184     CsrResult       status;
1185     u8        kcsLength;
1186     u8       *kcs;
1187     u8        sresLength;
1188     u8       *sres;
1189 } CsrWifiNmeSimGsmAuthRes;
1190
1191 /*******************************************************************************
1192
1193   NAME
1194     CsrWifiNmeSimUmtsAuthRes
1195
1196   DESCRIPTION
1197     Response from the application that received the NME SIM UMTS AUTH IND.
1198     The values of umtsCipherKey, umtsIntegrityKey, resParameterLength and
1199     resParameter are only meanigful when result = UMTS_AUTH_RESULT_SUCCESS.
1200     The value of auts is only meaningful when
1201     result=UMTS_AUTH_RESULT_SYNC_FAIL.
1202
1203   MEMBERS
1204     common             - Common header for use with the CsrWifiFsm Module
1205     status             - Indicates the outcome of the requested operation:
1206                          STATUS_SUCCESS or STATUS_ERROR.
1207     result             - The result of UMTS authentication as performed by the
1208                          UICC which could be: Success, Authentication Reject or
1209                          Synchronisation Failure. For all these 3 outcomes the
1210                          value of status is success.
1211     umtsCipherKey      - The UMTS Cipher Key as calculated and returned by the
1212                          UICC.
1213     umtsIntegrityKey   - The UMTS Integrity Key as calculated and returned by
1214                          the UICC.
1215     resParameterLength - The length (in bytes) of the RES parameter (min=4; max
1216                          = 16).
1217     resParameter       - The RES parameter as calculated and returned by the
1218                          UICC.
1219     auts               - The AUTS parameter as calculated and returned by the
1220                          UICC.
1221
1222 *******************************************************************************/
1223 typedef struct
1224 {
1225     CsrWifiFsmEvent          common;
1226     CsrResult                status;
1227     CsrWifiNmeUmtsAuthResult result;
1228     u8                 umtsCipherKey[16];
1229     u8                 umtsIntegrityKey[16];
1230     u8                 resParameterLength;
1231     u8                *resParameter;
1232     u8                 auts[14];
1233 } CsrWifiNmeSimUmtsAuthRes;
1234
1235 /*******************************************************************************
1236
1237   NAME
1238     CsrWifiNmeWpsConfigSetReq
1239
1240   DESCRIPTION
1241     This primitive passes the WPS information for the device to NME. This may
1242     be accepted only if no interface is active.
1243
1244   MEMBERS
1245     common    - Common header for use with the CsrWifiFsm Module
1246     wpsConfig - WPS config.
1247
1248 *******************************************************************************/
1249 typedef struct
1250 {
1251     CsrWifiFsmEvent     common;
1252     CsrWifiSmeWpsConfig wpsConfig;
1253 } CsrWifiNmeWpsConfigSetReq;
1254
1255 /*******************************************************************************
1256
1257   NAME
1258     CsrWifiNmeEventMaskSetReq
1259
1260   DESCRIPTION
1261     The wireless manager application may register with the NME to receive
1262     notification of interesting events. Indications will be sent only if the
1263     wireless manager explicitly registers to be notified of that event.
1264     indMask is a bit mask of values defined in CsrWifiNmeIndicationsMask.
1265
1266   MEMBERS
1267     common  - Common header for use with the CsrWifiFsm Module
1268     indMask - Set mask with values from CsrWifiNmeIndications
1269
1270 *******************************************************************************/
1271 typedef struct
1272 {
1273     CsrWifiFsmEvent           common;
1274     CsrWifiNmeIndicationsMask indMask;
1275 } CsrWifiNmeEventMaskSetReq;
1276
1277 /*******************************************************************************
1278
1279   NAME
1280     CsrWifiNmeProfileSetCfm
1281
1282   DESCRIPTION
1283     Reports the status of the NME PROFILE SET REQ; the request will only fail
1284     if the details specified in the profile contains an invalid combination
1285     of parameters for example specifying the profile as cloaked but not
1286     specifying the SSID. The NME doesn't limit the number of profiles that
1287     may be created. The NME assumes that the entity configuring it is aware
1288     of the appropriate limits.
1289
1290   MEMBERS
1291     common - Common header for use with the CsrWifiFsm Module
1292     status - Indicates the success or otherwise of the requested operation.
1293
1294 *******************************************************************************/
1295 typedef struct
1296 {
1297     CsrWifiFsmEvent common;
1298     CsrResult       status;
1299 } CsrWifiNmeProfileSetCfm;
1300
1301 /*******************************************************************************
1302
1303   NAME
1304     CsrWifiNmeProfileDeleteCfm
1305
1306   DESCRIPTION
1307     Reports the status of the CSR_WIFI_NME_PROFILE_DELETE_REQ.
1308     Returns CSR_WIFI_NME_STATUS_NOT_FOUND if there is no matching profile.
1309
1310   MEMBERS
1311     common - Common header for use with the CsrWifiFsm Module
1312     status - Indicates the success or otherwise of the requested operation.
1313
1314 *******************************************************************************/
1315 typedef struct
1316 {
1317     CsrWifiFsmEvent common;
1318     CsrResult       status;
1319 } CsrWifiNmeProfileDeleteCfm;
1320
1321 /*******************************************************************************
1322
1323   NAME
1324     CsrWifiNmeProfileDeleteAllCfm
1325
1326   DESCRIPTION
1327     Reports the status of the CSR_WIFI_NME_PROFILE_DELETE_ALL_REQ.
1328     Returns always CSR_WIFI_NME_STATUS_SUCCESS.
1329
1330   MEMBERS
1331     common - Common header for use with the CsrWifiFsm Module
1332     status - Indicates the success or otherwise of the requested operation, but
1333              in this case it always set to success.
1334
1335 *******************************************************************************/
1336 typedef struct
1337 {
1338     CsrWifiFsmEvent common;
1339     CsrResult       status;
1340 } CsrWifiNmeProfileDeleteAllCfm;
1341
1342 /*******************************************************************************
1343
1344   NAME
1345     CsrWifiNmeProfileOrderSetCfm
1346
1347   DESCRIPTION
1348     Confirmation to UNIFI_NME_PROFILE_ORDER_SET.request.
1349
1350   MEMBERS
1351     common       - Common header for use with the CsrWifiFsm Module
1352     interfaceTag - Interface Identifier; unique identifier of an interface
1353     status       - Indicates the success or otherwise of the requested
1354                    operation.
1355
1356 *******************************************************************************/
1357 typedef struct
1358 {
1359     CsrWifiFsmEvent common;
1360     u16       interfaceTag;
1361     CsrResult       status;
1362 } CsrWifiNmeProfileOrderSetCfm;
1363
1364 /*******************************************************************************
1365
1366   NAME
1367     CsrWifiNmeProfileConnectCfm
1368
1369   DESCRIPTION
1370     Reports the status of the NME PROFILE CONNECT REQ. If unsuccessful the
1371     connectAttempt parameters contain details of the APs that the NME
1372     attempted to connect to before reporting the failure of the request.
1373
1374   MEMBERS
1375     common               - Common header for use with the CsrWifiFsm Module
1376     interfaceTag         - Interface Identifier; unique identifier of an
1377                            interface
1378     status               - Indicates the success or otherwise of the requested
1379                            operation.
1380     connectAttemptsCount - This parameter is relevant only if
1381                            status!=CSR_WIFI_NME_STATUS_SUCCESS.
1382                            Number of connection attempt elements provided with
1383                            this primitive
1384     connectAttempts      - This parameter is relevant only if
1385                            status!=CSR_WIFI_NME_STATUS_SUCCESS.
1386                            Points to the list of connection attempt elements
1387                            provided with this primitive
1388                            Each element of the list provides information about
1389                            an AP on which the connection attempt was made and
1390                            the error that occurred during the attempt.
1391
1392 *******************************************************************************/
1393 typedef struct
1394 {
1395     CsrWifiFsmEvent           common;
1396     u16                 interfaceTag;
1397     CsrResult                 status;
1398     u8                  connectAttemptsCount;
1399     CsrWifiNmeConnectAttempt *connectAttempts;
1400 } CsrWifiNmeProfileConnectCfm;
1401
1402 /*******************************************************************************
1403
1404   NAME
1405     CsrWifiNmeWpsCfm
1406
1407   DESCRIPTION
1408     Reports the status of the NME WPS REQ.
1409     If CSR_WIFI_NME_STATUS_SUCCESS, the profile parameter contains the
1410     identity and credentials of the AP.
1411
1412   MEMBERS
1413     common       - Common header for use with the CsrWifiFsm Module
1414     interfaceTag - Interface Identifier; unique identifier of an interface
1415     status       - Indicates the success or otherwise of the requested
1416                    operation.
1417     profile      - This parameter is relevant only if
1418                    status==CSR_WIFI_NME_STATUS_SUCCESS.
1419                    The identity and credentials of the network.
1420
1421 *******************************************************************************/
1422 typedef struct
1423 {
1424     CsrWifiFsmEvent   common;
1425     u16         interfaceTag;
1426     CsrResult         status;
1427     CsrWifiNmeProfile profile;
1428 } CsrWifiNmeWpsCfm;
1429
1430 /*******************************************************************************
1431
1432   NAME
1433     CsrWifiNmeWpsCancelCfm
1434
1435   DESCRIPTION
1436     Reports the status of the NME WPS REQ, the request is always SUCCESSFUL.
1437
1438   MEMBERS
1439     common       - Common header for use with the CsrWifiFsm Module
1440     interfaceTag - Interface Identifier; unique identifier of an interface
1441     status       - Only returns CSR_WIFI_NME_STATUS_SUCCESS
1442
1443 *******************************************************************************/
1444 typedef struct
1445 {
1446     CsrWifiFsmEvent common;
1447     u16       interfaceTag;
1448     CsrResult       status;
1449 } CsrWifiNmeWpsCancelCfm;
1450
1451 /*******************************************************************************
1452
1453   NAME
1454     CsrWifiNmeConnectionStatusGetCfm
1455
1456   DESCRIPTION
1457     Reports the connection status of the NME.
1458
1459   MEMBERS
1460     common           - Common header for use with the CsrWifiFsm Module
1461     interfaceTag     - Interface Identifier; unique identifier of an interface
1462     status           - Indicates the success or otherwise of the requested
1463                        operation.
1464     connectionStatus - NME current connection status
1465
1466 *******************************************************************************/
1467 typedef struct
1468 {
1469     CsrWifiFsmEvent            common;
1470     u16                  interfaceTag;
1471     CsrResult                  status;
1472     CsrWifiNmeConnectionStatus connectionStatus;
1473 } CsrWifiNmeConnectionStatusGetCfm;
1474
1475 /*******************************************************************************
1476
1477   NAME
1478     CsrWifiNmeProfileUpdateInd
1479
1480   DESCRIPTION
1481     Indication generated from the NME (if an application subscribes to
1482     receive it) that informs that application that the contained profile has
1483     changed.
1484     For example, either the credentials EAP-FAST PAC file or the session data
1485     within the profile has changed.
1486     It is up to the application whether it stores this updated profile or
1487     not.
1488
1489   MEMBERS
1490     common       - Common header for use with the CsrWifiFsm Module
1491     interfaceTag - Interface Identifier; unique identifier of an interface
1492     profile      - The identity and credentials of the network.
1493
1494 *******************************************************************************/
1495 typedef struct
1496 {
1497     CsrWifiFsmEvent   common;
1498     u16         interfaceTag;
1499     CsrWifiNmeProfile profile;
1500 } CsrWifiNmeProfileUpdateInd;
1501
1502 /*******************************************************************************
1503
1504   NAME
1505     CsrWifiNmeProfileDisconnectInd
1506
1507   DESCRIPTION
1508     Indication generated from the NME (if an application subscribes to
1509     receive it) that informs that application that the current profile
1510     connection has disconnected. The indication will contain information
1511     about APs that it attempted to maintain the connection via i.e. in the
1512     case of failed roaming.
1513
1514   MEMBERS
1515     common               - Common header for use with the CsrWifiFsm Module
1516     interfaceTag         - Interface Identifier; unique identifier of an
1517                            interface
1518     connectAttemptsCount - Number of connection attempt elements provided with
1519                            this primitive
1520     connectAttempts      - Points to the list of connection attempt elements
1521                            provided with this primitive
1522                            Each element of the list provides information about
1523                            an AP on which the connection attempt was made and
1524                            the error occurred during the attempt.
1525
1526 *******************************************************************************/
1527 typedef struct
1528 {
1529     CsrWifiFsmEvent           common;
1530     u16                 interfaceTag;
1531     u8                  connectAttemptsCount;
1532     CsrWifiNmeConnectAttempt *connectAttempts;
1533 } CsrWifiNmeProfileDisconnectInd;
1534
1535 /*******************************************************************************
1536
1537   NAME
1538     CsrWifiNmeSimImsiGetInd
1539
1540   DESCRIPTION
1541     Indication generated from the NME (if an application subscribes to
1542     receive it) that requests the IMSI and UICC type from the UICC Manager.
1543     This indication is generated when the NME is attempting to connect to a
1544     profile configured for EAP-SIM/AKA. An application MUST register to
1545     receive this indication for the NME to support the EAP-SIM/AKA credential
1546     types. Otherwise the NME has no route to obtain the information from the
1547     UICC.
1548
1549   MEMBERS
1550     common - Common header for use with the CsrWifiFsm Module
1551
1552 *******************************************************************************/
1553 typedef struct
1554 {
1555     CsrWifiFsmEvent common;
1556 } CsrWifiNmeSimImsiGetInd;
1557
1558 /*******************************************************************************
1559
1560   NAME
1561     CsrWifiNmeSimGsmAuthInd
1562
1563   DESCRIPTION
1564     Indication generated from the NME (if an application subscribes to
1565     receive it) that requests the UICC Manager to perform a GSM
1566     authentication on behalf of the NME. This indication is generated when
1567     the NME is attempting to connect to a profile configured for EAP-SIM. An
1568     application MUST register to receive this indication for the NME to
1569     support the EAP-SIM credential types. Otherwise the NME has no route to
1570     obtain the information from the UICC. EAP-SIM authentication requires 2
1571     or 3 GSM authentication rounds and therefore 2 or 3 RANDS (GSM Random
1572     Challenges) are included.
1573
1574   MEMBERS
1575     common      - Common header for use with the CsrWifiFsm Module
1576     randsLength - GSM RAND is 16 bytes long hence valid values are 32 (2 RANDS)
1577                   or 48 (3 RANDs).
1578     rands       - 2 or 3 RANDs values.
1579
1580 *******************************************************************************/
1581 typedef struct
1582 {
1583     CsrWifiFsmEvent common;
1584     u8        randsLength;
1585     u8       *rands;
1586 } CsrWifiNmeSimGsmAuthInd;
1587
1588 /*******************************************************************************
1589
1590   NAME
1591     CsrWifiNmeSimUmtsAuthInd
1592
1593   DESCRIPTION
1594     Indication generated from the NME (if an application subscribes to
1595     receive it) that requests the UICC Manager to perform a UMTS
1596     authentication on behalf of the NME. This indication is generated when
1597     the NME is attempting to connect to a profile configured for EAP-AKA. An
1598     application MUST register to receive this indication for the NME to
1599     support the EAP-AKA credential types. Otherwise the NME has no route to
1600     obtain the information from the USIM. EAP-AKA requires one UMTS
1601     authentication round and therefore only one RAND and one AUTN values are
1602     included.
1603
1604   MEMBERS
1605     common - Common header for use with the CsrWifiFsm Module
1606     rand   - UMTS RAND value.
1607     autn   - UMTS AUTN value.
1608
1609 *******************************************************************************/
1610 typedef struct
1611 {
1612     CsrWifiFsmEvent common;
1613     u8        rand[16];
1614     u8        autn[16];
1615 } CsrWifiNmeSimUmtsAuthInd;
1616
1617 /*******************************************************************************
1618
1619   NAME
1620     CsrWifiNmeWpsConfigSetCfm
1621
1622   DESCRIPTION
1623     Confirm.
1624
1625   MEMBERS
1626     common - Common header for use with the CsrWifiFsm Module
1627     status - Status of the request.
1628
1629 *******************************************************************************/
1630 typedef struct
1631 {
1632     CsrWifiFsmEvent common;
1633     CsrResult       status;
1634 } CsrWifiNmeWpsConfigSetCfm;
1635
1636 /*******************************************************************************
1637
1638   NAME
1639     CsrWifiNmeEventMaskSetCfm
1640
1641   DESCRIPTION
1642     The NME calls the primitive to report the result of the request
1643     primitive.
1644
1645   MEMBERS
1646     common - Common header for use with the CsrWifiFsm Module
1647     status - Reports the result of the request
1648
1649 *******************************************************************************/
1650 typedef struct
1651 {
1652     CsrWifiFsmEvent common;
1653     CsrResult       status;
1654 } CsrWifiNmeEventMaskSetCfm;
1655
1656 #endif /* CSR_WIFI_NME_PRIM_H__ */
1657