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