staging/gdm72xx: Remove unused variable in gdm_qos.c
[cascardo/linux.git] / drivers / staging / csr / csr_wifi_nme_ap_lib.h
1 /*****************************************************************************
2
3             (c) Cambridge Silicon Radio Limited 2012
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_AP_LIB_H__
14 #define CSR_WIFI_NME_AP_LIB_H__
15
16 #include "csr_sched.h"
17 #include "csr_macro.h"
18 #include "csr_msg_transport.h"
19
20 #include "csr_wifi_lib.h"
21
22 #include "csr_wifi_nme_ap_prim.h"
23 #include "csr_wifi_nme_task.h"
24
25 #ifndef CSR_WIFI_NME_ENABLE
26 #error CSR_WIFI_NME_ENABLE MUST be defined inorder to use csr_wifi_nme_ap_lib.h
27 #endif
28 #ifndef CSR_WIFI_AP_ENABLE
29 #error CSR_WIFI_AP_ENABLE MUST be defined inorder to use csr_wifi_nme_ap_lib.h
30 #endif
31
32 /*----------------------------------------------------------------------------*
33  *  CsrWifiNmeApFreeUpstreamMessageContents
34  *
35  *  DESCRIPTION
36  *      Free the allocated memory in a CSR_WIFI_NME_AP upstream message. Does not
37  *      free the message itself, and can only be used for upstream messages.
38  *
39  *  PARAMETERS
40  *      Deallocates the resources in a CSR_WIFI_NME_AP upstream message
41  *----------------------------------------------------------------------------*/
42 void CsrWifiNmeApFreeUpstreamMessageContents(u16 eventClass, void *message);
43
44 /*----------------------------------------------------------------------------*
45  *  CsrWifiNmeApFreeDownstreamMessageContents
46  *
47  *  DESCRIPTION
48  *      Free the allocated memory in a CSR_WIFI_NME_AP downstream message. Does not
49  *      free the message itself, and can only be used for downstream messages.
50  *
51  *  PARAMETERS
52  *      Deallocates the resources in a CSR_WIFI_NME_AP downstream message
53  *----------------------------------------------------------------------------*/
54 void CsrWifiNmeApFreeDownstreamMessageContents(u16 eventClass, void *message);
55
56 /*******************************************************************************
57
58   NAME
59     CsrWifiNmeApConfigSetReqSend
60
61   DESCRIPTION
62     This primitive passes AP configuration info for NME. This can be sent at
63     any time but will be acted upon when the AP is started again. This
64     information is common to both P2P GO and AP
65
66   PARAMETERS
67     queue       - Message Source Task Queue (Cfm's will be sent to this Queue)
68     apConfig    - AP configuration for the NME.
69     apMacConfig - MAC configuration to be acted on when
70                   CSR_WIFI_NME_AP_START.request is sent.
71
72 *******************************************************************************/
73 #define CsrWifiNmeApConfigSetReqCreate(msg__, dst__, src__, apConfig__, apMacConfig__) \
74     msg__ = kmalloc(sizeof(CsrWifiNmeApConfigSetReq), GFP_KERNEL); \
75     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_CONFIG_SET_REQ, dst__, src__); \
76     msg__->apConfig = (apConfig__); \
77     msg__->apMacConfig = (apMacConfig__);
78
79 #define CsrWifiNmeApConfigSetReqSendTo(dst__, src__, apConfig__, apMacConfig__) \
80     { \
81         CsrWifiNmeApConfigSetReq *msg__; \
82         CsrWifiNmeApConfigSetReqCreate(msg__, dst__, src__, apConfig__, apMacConfig__); \
83         CsrMsgTransport(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
84     }
85
86 #define CsrWifiNmeApConfigSetReqSend(src__, apConfig__, apMacConfig__) \
87     CsrWifiNmeApConfigSetReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, apConfig__, apMacConfig__)
88
89 /*******************************************************************************
90
91   NAME
92     CsrWifiNmeApConfigSetCfmSend
93
94   DESCRIPTION
95     This primitive reports the result of the request.
96
97   PARAMETERS
98     queue  - Destination Task Queue
99     status - Status of the request.
100
101 *******************************************************************************/
102 #define CsrWifiNmeApConfigSetCfmCreate(msg__, dst__, src__, status__) \
103     msg__ = kmalloc(sizeof(CsrWifiNmeApConfigSetCfm), GFP_KERNEL); \
104     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_CONFIG_SET_CFM, dst__, src__); \
105     msg__->status = (status__);
106
107 #define CsrWifiNmeApConfigSetCfmSendTo(dst__, src__, status__) \
108     { \
109         CsrWifiNmeApConfigSetCfm *msg__; \
110         CsrWifiNmeApConfigSetCfmCreate(msg__, dst__, src__, status__); \
111         CsrSchedMessagePut(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
112     }
113
114 #define CsrWifiNmeApConfigSetCfmSend(dst__, status__) \
115     CsrWifiNmeApConfigSetCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, status__)
116
117 /*******************************************************************************
118
119   NAME
120     CsrWifiNmeApStaRemoveReqSend
121
122   DESCRIPTION
123     This primitive disconnects a connected station. If keepBlocking is set to
124     TRUE, the station with the specified MAC address is not allowed to
125     connect. If the requested station is not already connected,it may be
126     blocked based on keepBlocking parameter.
127
128   PARAMETERS
129     queue         - Message Source Task Queue (Cfm's will be sent to this Queue)
130     interfaceTag  - Interface Identifier; unique identifier of an interface
131     staMacAddress - Mac Address of the station to be disconnected or blocked
132     keepBlocking  - If TRUE, the station is blocked. If FALSE and the station is
133                     connected, disconnect the station. If FALSE and the station
134                     is not connected, no action is taken.
135
136 *******************************************************************************/
137 #define CsrWifiNmeApStaRemoveReqCreate(msg__, dst__, src__, interfaceTag__, staMacAddress__, keepBlocking__) \
138     msg__ = kmalloc(sizeof(CsrWifiNmeApStaRemoveReq), GFP_KERNEL); \
139     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_STA_REMOVE_REQ, dst__, src__); \
140     msg__->interfaceTag = (interfaceTag__); \
141     msg__->staMacAddress = (staMacAddress__); \
142     msg__->keepBlocking = (keepBlocking__);
143
144 #define CsrWifiNmeApStaRemoveReqSendTo(dst__, src__, interfaceTag__, staMacAddress__, keepBlocking__) \
145     { \
146         CsrWifiNmeApStaRemoveReq *msg__; \
147         CsrWifiNmeApStaRemoveReqCreate(msg__, dst__, src__, interfaceTag__, staMacAddress__, keepBlocking__); \
148         CsrMsgTransport(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
149     }
150
151 #define CsrWifiNmeApStaRemoveReqSend(src__, interfaceTag__, staMacAddress__, keepBlocking__) \
152     CsrWifiNmeApStaRemoveReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__, staMacAddress__, keepBlocking__)
153
154 /*******************************************************************************
155
156   NAME
157     CsrWifiNmeApStartReqSend
158
159   DESCRIPTION
160     This primitive requests NME to started the AP operation.
161
162   PARAMETERS
163     queue          - Message Source Task Queue (Cfm's will be sent to this Queue)
164     interfaceTag   - Interface identifier; unique identifier of an interface
165     apType         - AP Type specifies the Legacy AP or P2P GO operation
166     cloakSsid      - Indicates whether the SSID should be cloaked (hidden and
167                      not broadcast in beacon) or not
168     ssid           - Service Set Identifier
169     ifIndex        - Radio interface
170     channel        - Channel number of the channel to use
171     apCredentials  - Security credential configuration.
172     maxConnections - Maximum number of stations/P2P clients allowed
173     p2pGoParam     - P2P specific GO parameters.
174     wpsEnabled     - Indicates whether WPS should be enabled or not
175
176 *******************************************************************************/
177 #define CsrWifiNmeApStartReqCreate(msg__, dst__, src__, interfaceTag__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, apCredentials__, maxConnections__, p2pGoParam__, wpsEnabled__) \
178     msg__ = kmalloc(sizeof(CsrWifiNmeApStartReq), GFP_KERNEL); \
179     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_START_REQ, dst__, src__); \
180     msg__->interfaceTag = (interfaceTag__); \
181     msg__->apType = (apType__); \
182     msg__->cloakSsid = (cloakSsid__); \
183     msg__->ssid = (ssid__); \
184     msg__->ifIndex = (ifIndex__); \
185     msg__->channel = (channel__); \
186     msg__->apCredentials = (apCredentials__); \
187     msg__->maxConnections = (maxConnections__); \
188     msg__->p2pGoParam = (p2pGoParam__); \
189     msg__->wpsEnabled = (wpsEnabled__);
190
191 #define CsrWifiNmeApStartReqSendTo(dst__, src__, interfaceTag__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, apCredentials__, maxConnections__, p2pGoParam__, wpsEnabled__) \
192     { \
193         CsrWifiNmeApStartReq *msg__; \
194         CsrWifiNmeApStartReqCreate(msg__, dst__, src__, interfaceTag__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, apCredentials__, maxConnections__, p2pGoParam__, wpsEnabled__); \
195         CsrMsgTransport(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
196     }
197
198 #define CsrWifiNmeApStartReqSend(src__, interfaceTag__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, apCredentials__, maxConnections__, p2pGoParam__, wpsEnabled__) \
199     CsrWifiNmeApStartReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, apCredentials__, maxConnections__, p2pGoParam__, wpsEnabled__)
200
201 /*******************************************************************************
202
203   NAME
204     CsrWifiNmeApStartCfmSend
205
206   DESCRIPTION
207     This primitive reports the result of CSR_WIFI_NME_AP_START.request.
208
209   PARAMETERS
210     queue        - Destination Task Queue
211     interfaceTag - Interface identifier; unique identifier of an interface
212     status       - Status of the request.
213     ssid         - Service Set Identifier
214
215 *******************************************************************************/
216 #define CsrWifiNmeApStartCfmCreate(msg__, dst__, src__, interfaceTag__, status__, ssid__) \
217     msg__ = kmalloc(sizeof(CsrWifiNmeApStartCfm), GFP_KERNEL); \
218     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_START_CFM, dst__, src__); \
219     msg__->interfaceTag = (interfaceTag__); \
220     msg__->status = (status__); \
221     msg__->ssid = (ssid__);
222
223 #define CsrWifiNmeApStartCfmSendTo(dst__, src__, interfaceTag__, status__, ssid__) \
224     { \
225         CsrWifiNmeApStartCfm *msg__; \
226         CsrWifiNmeApStartCfmCreate(msg__, dst__, src__, interfaceTag__, status__, ssid__); \
227         CsrSchedMessagePut(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
228     }
229
230 #define CsrWifiNmeApStartCfmSend(dst__, interfaceTag__, status__, ssid__) \
231     CsrWifiNmeApStartCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, status__, ssid__)
232
233 /*******************************************************************************
234
235   NAME
236     CsrWifiNmeApStationIndSend
237
238   DESCRIPTION
239     This primitive indicates that a station has joined or a previously joined
240     station has left the BSS/group
241
242   PARAMETERS
243     queue             - Destination Task Queue
244     interfaceTag      - Interface Identifier; unique identifier of an interface
245     mediaStatus       - Indicates whether the station is connected or
246                         disconnected
247     peerMacAddress    - MAC address of the station
248     peerDeviceAddress - P2P Device Address
249
250 *******************************************************************************/
251 #define CsrWifiNmeApStationIndCreate(msg__, dst__, src__, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__) \
252     msg__ = kmalloc(sizeof(CsrWifiNmeApStationInd), GFP_KERNEL); \
253     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_STATION_IND, dst__, src__); \
254     msg__->interfaceTag = (interfaceTag__); \
255     msg__->mediaStatus = (mediaStatus__); \
256     msg__->peerMacAddress = (peerMacAddress__); \
257     msg__->peerDeviceAddress = (peerDeviceAddress__);
258
259 #define CsrWifiNmeApStationIndSendTo(dst__, src__, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__) \
260     { \
261         CsrWifiNmeApStationInd *msg__; \
262         CsrWifiNmeApStationIndCreate(msg__, dst__, src__, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__); \
263         CsrSchedMessagePut(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
264     }
265
266 #define CsrWifiNmeApStationIndSend(dst__, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__) \
267     CsrWifiNmeApStationIndSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__)
268
269 /*******************************************************************************
270
271   NAME
272     CsrWifiNmeApStopReqSend
273
274   DESCRIPTION
275     This primitive requests NME to stop the AP operation.
276
277   PARAMETERS
278     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
279     interfaceTag - Interface identifier; unique identifier of an interface
280
281 *******************************************************************************/
282 #define CsrWifiNmeApStopReqCreate(msg__, dst__, src__, interfaceTag__) \
283     msg__ = kmalloc(sizeof(CsrWifiNmeApStopReq), GFP_KERNEL); \
284     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_STOP_REQ, dst__, src__); \
285     msg__->interfaceTag = (interfaceTag__);
286
287 #define CsrWifiNmeApStopReqSendTo(dst__, src__, interfaceTag__) \
288     { \
289         CsrWifiNmeApStopReq *msg__; \
290         CsrWifiNmeApStopReqCreate(msg__, dst__, src__, interfaceTag__); \
291         CsrMsgTransport(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
292     }
293
294 #define CsrWifiNmeApStopReqSend(src__, interfaceTag__) \
295     CsrWifiNmeApStopReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__)
296
297 /*******************************************************************************
298
299   NAME
300     CsrWifiNmeApStopIndSend
301
302   DESCRIPTION
303     Indicates that AP operation had stopped because of some unrecoverable
304     error after AP operation was started successfully. NME sends this signal
305     after failing to restart the AP operation internally following an error
306
307   PARAMETERS
308     queue        - Destination Task Queue
309     interfaceTag - Interface Identifier; unique identifier of an interface
310     apType       - Reports AP Type (P2PGO or AP)
311     status       - Error Status
312
313 *******************************************************************************/
314 #define CsrWifiNmeApStopIndCreate(msg__, dst__, src__, interfaceTag__, apType__, status__) \
315     msg__ = kmalloc(sizeof(CsrWifiNmeApStopInd), GFP_KERNEL); \
316     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_STOP_IND, dst__, src__); \
317     msg__->interfaceTag = (interfaceTag__); \
318     msg__->apType = (apType__); \
319     msg__->status = (status__);
320
321 #define CsrWifiNmeApStopIndSendTo(dst__, src__, interfaceTag__, apType__, status__) \
322     { \
323         CsrWifiNmeApStopInd *msg__; \
324         CsrWifiNmeApStopIndCreate(msg__, dst__, src__, interfaceTag__, apType__, status__); \
325         CsrSchedMessagePut(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
326     }
327
328 #define CsrWifiNmeApStopIndSend(dst__, interfaceTag__, apType__, status__) \
329     CsrWifiNmeApStopIndSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, apType__, status__)
330
331 /*******************************************************************************
332
333   NAME
334     CsrWifiNmeApStopCfmSend
335
336   DESCRIPTION
337     This primitive confirms that the AP operation is stopped. NME shall send
338     this primitive in response to the request even if AP operation has
339     already been stopped
340
341   PARAMETERS
342     queue        - Destination Task Queue
343     interfaceTag - Interface identifier; unique identifier of an interface
344     status       - Status of the request.
345
346 *******************************************************************************/
347 #define CsrWifiNmeApStopCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
348     msg__ = kmalloc(sizeof(CsrWifiNmeApStopCfm), GFP_KERNEL); \
349     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_STOP_CFM, dst__, src__); \
350     msg__->interfaceTag = (interfaceTag__); \
351     msg__->status = (status__);
352
353 #define CsrWifiNmeApStopCfmSendTo(dst__, src__, interfaceTag__, status__) \
354     { \
355         CsrWifiNmeApStopCfm *msg__; \
356         CsrWifiNmeApStopCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
357         CsrSchedMessagePut(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
358     }
359
360 #define CsrWifiNmeApStopCfmSend(dst__, interfaceTag__, status__) \
361     CsrWifiNmeApStopCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, status__)
362
363 /*******************************************************************************
364
365   NAME
366     CsrWifiNmeApWmmParamUpdateReqSend
367
368   DESCRIPTION
369     Application uses this primitive to update the WMM parameters
370
371   PARAMETERS
372     queue         - Message Source Task Queue (Cfm's will be sent to this Queue)
373     wmmApParams   - WMM Access point parameters per access category. The array
374                     index corresponds to the ACI
375     wmmApBcParams - WMM station parameters per access category to be advertised
376                     in the beacons and probe response The array index
377                     corresponds to the ACI
378
379 *******************************************************************************/
380 #define CsrWifiNmeApWmmParamUpdateReqCreate(msg__, dst__, src__, wmmApParams__, wmmApBcParams__) \
381     msg__ = kmalloc(sizeof(CsrWifiNmeApWmmParamUpdateReq), GFP_KERNEL); \
382     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_WMM_PARAM_UPDATE_REQ, dst__, src__); \
383     memcpy(msg__->wmmApParams, (wmmApParams__), sizeof(CsrWifiSmeWmmAcParams) * 4); \
384     memcpy(msg__->wmmApBcParams, (wmmApBcParams__), sizeof(CsrWifiSmeWmmAcParams) * 4);
385
386 #define CsrWifiNmeApWmmParamUpdateReqSendTo(dst__, src__, wmmApParams__, wmmApBcParams__) \
387     { \
388         CsrWifiNmeApWmmParamUpdateReq *msg__; \
389         CsrWifiNmeApWmmParamUpdateReqCreate(msg__, dst__, src__, wmmApParams__, wmmApBcParams__); \
390         CsrMsgTransport(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
391     }
392
393 #define CsrWifiNmeApWmmParamUpdateReqSend(src__, wmmApParams__, wmmApBcParams__) \
394     CsrWifiNmeApWmmParamUpdateReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, wmmApParams__, wmmApBcParams__)
395
396 /*******************************************************************************
397
398   NAME
399     CsrWifiNmeApWmmParamUpdateCfmSend
400
401   DESCRIPTION
402     A confirm for for the WMM parameters update
403
404   PARAMETERS
405     queue  - Destination Task Queue
406     status - Status of the request.
407
408 *******************************************************************************/
409 #define CsrWifiNmeApWmmParamUpdateCfmCreate(msg__, dst__, src__, status__) \
410     msg__ = kmalloc(sizeof(CsrWifiNmeApWmmParamUpdateCfm), GFP_KERNEL); \
411     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_WMM_PARAM_UPDATE_CFM, dst__, src__); \
412     msg__->status = (status__);
413
414 #define CsrWifiNmeApWmmParamUpdateCfmSendTo(dst__, src__, status__) \
415     { \
416         CsrWifiNmeApWmmParamUpdateCfm *msg__; \
417         CsrWifiNmeApWmmParamUpdateCfmCreate(msg__, dst__, src__, status__); \
418         CsrSchedMessagePut(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
419     }
420
421 #define CsrWifiNmeApWmmParamUpdateCfmSend(dst__, status__) \
422     CsrWifiNmeApWmmParamUpdateCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, status__)
423
424 /*******************************************************************************
425
426   NAME
427     CsrWifiNmeApWpsRegisterReqSend
428
429   DESCRIPTION
430     This primitive allows the NME to accept the WPS registration from an
431     enrollee. Such registration procedure can be cancelled by sending
432     CSR_WIFI_NME_WPS_CANCEL.request.
433
434   PARAMETERS
435     queue                    - Message Source Task Queue (Cfm's will be sent to this Queue)
436     interfaceTag             - Interface Identifier; unique identifier of an
437                                interface
438     selectedDevicePasswordId - Selected password type
439     selectedConfigMethod     - Selected WPS configuration method type
440     pin                      - PIN value.
441                                Relevant if selected device password ID is PIN.4
442                                digit pin is passed by sending the pin digits in
443                                pin[0]..pin[3] and rest of the contents filled
444                                with '-'.
445
446 *******************************************************************************/
447 #define CsrWifiNmeApWpsRegisterReqCreate(msg__, dst__, src__, interfaceTag__, selectedDevicePasswordId__, selectedConfigMethod__, pin__) \
448     msg__ = kmalloc(sizeof(CsrWifiNmeApWpsRegisterReq), GFP_KERNEL); \
449     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_WPS_REGISTER_REQ, dst__, src__); \
450     msg__->interfaceTag = (interfaceTag__); \
451     msg__->selectedDevicePasswordId = (selectedDevicePasswordId__); \
452     msg__->selectedConfigMethod = (selectedConfigMethod__); \
453     memcpy(msg__->pin, (pin__), sizeof(u8) * 8);
454
455 #define CsrWifiNmeApWpsRegisterReqSendTo(dst__, src__, interfaceTag__, selectedDevicePasswordId__, selectedConfigMethod__, pin__) \
456     { \
457         CsrWifiNmeApWpsRegisterReq *msg__; \
458         CsrWifiNmeApWpsRegisterReqCreate(msg__, dst__, src__, interfaceTag__, selectedDevicePasswordId__, selectedConfigMethod__, pin__); \
459         CsrMsgTransport(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
460     }
461
462 #define CsrWifiNmeApWpsRegisterReqSend(src__, interfaceTag__, selectedDevicePasswordId__, selectedConfigMethod__, pin__) \
463     CsrWifiNmeApWpsRegisterReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__, selectedDevicePasswordId__, selectedConfigMethod__, pin__)
464
465 /*******************************************************************************
466
467   NAME
468     CsrWifiNmeApWpsRegisterCfmSend
469
470   DESCRIPTION
471     This primitive reports the result of WPS procedure.
472
473   PARAMETERS
474     queue        - Destination Task Queue
475     interfaceTag - Interface identifier; unique identifier of an interface
476     status       - Status of the request.
477
478 *******************************************************************************/
479 #define CsrWifiNmeApWpsRegisterCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
480     msg__ = kmalloc(sizeof(CsrWifiNmeApWpsRegisterCfm), GFP_KERNEL); \
481     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_AP_PRIM, CSR_WIFI_NME_AP_WPS_REGISTER_CFM, dst__, src__); \
482     msg__->interfaceTag = (interfaceTag__); \
483     msg__->status = (status__);
484
485 #define CsrWifiNmeApWpsRegisterCfmSendTo(dst__, src__, interfaceTag__, status__) \
486     { \
487         CsrWifiNmeApWpsRegisterCfm *msg__; \
488         CsrWifiNmeApWpsRegisterCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
489         CsrSchedMessagePut(dst__, CSR_WIFI_NME_AP_PRIM, msg__); \
490     }
491
492 #define CsrWifiNmeApWpsRegisterCfmSend(dst__, interfaceTag__, status__) \
493     CsrWifiNmeApWpsRegisterCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, status__)
494
495 #endif /* CSR_WIFI_NME_AP_LIB_H__ */