ACPI / dock: fix error return code in dock_add()
[firefly-linux-kernel-4.4.55.git] / drivers / staging / csr / csr_wifi_router_ctrl_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_ROUTER_CTRL_LIB_H__
14 #define CSR_WIFI_ROUTER_CTRL_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_router_ctrl_prim.h"
23 #include "csr_wifi_router_task.h"
24
25 /*----------------------------------------------------------------------------*
26  *  CsrWifiRouterCtrlFreeUpstreamMessageContents
27  *
28  *  DESCRIPTION
29  *      Free the allocated memory in a CSR_WIFI_ROUTER_CTRL upstream message. Does not
30  *      free the message itself, and can only be used for upstream messages.
31  *
32  *  PARAMETERS
33  *      Deallocates the resources in a CSR_WIFI_ROUTER_CTRL upstream message
34  *----------------------------------------------------------------------------*/
35 void CsrWifiRouterCtrlFreeUpstreamMessageContents(u16 eventClass, void *message);
36
37 /*----------------------------------------------------------------------------*
38  *  CsrWifiRouterCtrlFreeDownstreamMessageContents
39  *
40  *  DESCRIPTION
41  *      Free the allocated memory in a CSR_WIFI_ROUTER_CTRL downstream message. Does not
42  *      free the message itself, and can only be used for downstream messages.
43  *
44  *  PARAMETERS
45  *      Deallocates the resources in a CSR_WIFI_ROUTER_CTRL downstream message
46  *----------------------------------------------------------------------------*/
47 void CsrWifiRouterCtrlFreeDownstreamMessageContents(u16 eventClass, void *message);
48
49 /*----------------------------------------------------------------------------*
50  * Enum to string functions
51  *----------------------------------------------------------------------------*/
52 const char* CsrWifiRouterCtrlBlockAckRoleToString(CsrWifiRouterCtrlBlockAckRole value);
53 const char* CsrWifiRouterCtrlControlIndicationToString(CsrWifiRouterCtrlControlIndication value);
54 const char* CsrWifiRouterCtrlListActionToString(CsrWifiRouterCtrlListAction value);
55 const char* CsrWifiRouterCtrlLowPowerModeToString(CsrWifiRouterCtrlLowPowerMode value);
56 const char* CsrWifiRouterCtrlMediaStatusToString(CsrWifiRouterCtrlMediaStatus value);
57 const char* CsrWifiRouterCtrlModeToString(CsrWifiRouterCtrlMode value);
58 const char* CsrWifiRouterCtrlPeerStatusToString(CsrWifiRouterCtrlPeerStatus value);
59 const char* CsrWifiRouterCtrlPortActionToString(CsrWifiRouterCtrlPortAction value);
60 const char* CsrWifiRouterCtrlPowersaveTypeToString(CsrWifiRouterCtrlPowersaveType value);
61 const char* CsrWifiRouterCtrlProtocolDirectionToString(CsrWifiRouterCtrlProtocolDirection value);
62 const char* CsrWifiRouterCtrlQoSControlToString(CsrWifiRouterCtrlQoSControl value);
63 const char* CsrWifiRouterCtrlQueueConfigToString(CsrWifiRouterCtrlQueueConfig value);
64 const char* CsrWifiRouterCtrlTrafficConfigTypeToString(CsrWifiRouterCtrlTrafficConfigType value);
65 const char* CsrWifiRouterCtrlTrafficPacketTypeToString(CsrWifiRouterCtrlTrafficPacketType value);
66 const char* CsrWifiRouterCtrlTrafficTypeToString(CsrWifiRouterCtrlTrafficType value);
67
68
69 /*----------------------------------------------------------------------------*
70  * CsrPrim Type toString function.
71  * Converts a message type to the String name of the Message
72  *----------------------------------------------------------------------------*/
73 const char* CsrWifiRouterCtrlPrimTypeToString(CsrPrim msgType);
74
75 /*----------------------------------------------------------------------------*
76  * Lookup arrays for PrimType name Strings
77  *----------------------------------------------------------------------------*/
78 extern const char *CsrWifiRouterCtrlUpstreamPrimNames[CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_COUNT];
79 extern const char *CsrWifiRouterCtrlDownstreamPrimNames[CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_COUNT];
80
81 /*******************************************************************************
82
83   NAME
84     CsrWifiRouterCtrlBlockAckDisableReqSend
85
86   DESCRIPTION
87
88   PARAMETERS
89     queue           - Message Source Task Queue (Cfm's will be sent to this Queue)
90     interfaceTag    -
91     clientData      -
92     macAddress      -
93     trafficStreamID -
94     role            -
95
96 *******************************************************************************/
97 #define CsrWifiRouterCtrlBlockAckDisableReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__) \
98     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlBlockAckDisableReq), GFP_KERNEL); \
99     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_DISABLE_REQ, dst__, src__); \
100     msg__->interfaceTag = (interfaceTag__); \
101     msg__->clientData = (clientData__); \
102     msg__->macAddress = (macAddress__); \
103     msg__->trafficStreamID = (trafficStreamID__); \
104     msg__->role = (role__);
105
106 #define CsrWifiRouterCtrlBlockAckDisableReqSendTo(dst__, src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__) \
107     { \
108         CsrWifiRouterCtrlBlockAckDisableReq *msg__; \
109         CsrWifiRouterCtrlBlockAckDisableReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__); \
110         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
111     }
112
113 #define CsrWifiRouterCtrlBlockAckDisableReqSend(src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__) \
114     CsrWifiRouterCtrlBlockAckDisableReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__)
115
116 /*******************************************************************************
117
118   NAME
119     CsrWifiRouterCtrlBlockAckDisableCfmSend
120
121   DESCRIPTION
122
123   PARAMETERS
124     queue        - Destination Task Queue
125     clientData   -
126     interfaceTag -
127     status       -
128
129 *******************************************************************************/
130 #define CsrWifiRouterCtrlBlockAckDisableCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__) \
131     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlBlockAckDisableCfm), GFP_KERNEL); \
132     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_DISABLE_CFM, dst__, src__); \
133     msg__->clientData = (clientData__); \
134     msg__->interfaceTag = (interfaceTag__); \
135     msg__->status = (status__);
136
137 #define CsrWifiRouterCtrlBlockAckDisableCfmSendTo(dst__, src__, clientData__, interfaceTag__, status__) \
138     { \
139         CsrWifiRouterCtrlBlockAckDisableCfm *msg__; \
140         CsrWifiRouterCtrlBlockAckDisableCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__); \
141         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
142     }
143
144 #define CsrWifiRouterCtrlBlockAckDisableCfmSend(dst__, clientData__, interfaceTag__, status__) \
145     CsrWifiRouterCtrlBlockAckDisableCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, status__)
146
147 /*******************************************************************************
148
149   NAME
150     CsrWifiRouterCtrlBlockAckEnableReqSend
151
152   DESCRIPTION
153
154   PARAMETERS
155     queue           - Message Source Task Queue (Cfm's will be sent to this Queue)
156     interfaceTag    -
157     clientData      -
158     macAddress      -
159     trafficStreamID -
160     role            -
161     bufferSize      -
162     timeout         -
163     ssn             -
164
165 *******************************************************************************/
166 #define CsrWifiRouterCtrlBlockAckEnableReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__, bufferSize__, timeout__, ssn__) \
167     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlBlockAckEnableReq), GFP_KERNEL); \
168     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_ENABLE_REQ, dst__, src__); \
169     msg__->interfaceTag = (interfaceTag__); \
170     msg__->clientData = (clientData__); \
171     msg__->macAddress = (macAddress__); \
172     msg__->trafficStreamID = (trafficStreamID__); \
173     msg__->role = (role__); \
174     msg__->bufferSize = (bufferSize__); \
175     msg__->timeout = (timeout__); \
176     msg__->ssn = (ssn__);
177
178 #define CsrWifiRouterCtrlBlockAckEnableReqSendTo(dst__, src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__, bufferSize__, timeout__, ssn__) \
179     { \
180         CsrWifiRouterCtrlBlockAckEnableReq *msg__; \
181         CsrWifiRouterCtrlBlockAckEnableReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__, bufferSize__, timeout__, ssn__); \
182         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
183     }
184
185 #define CsrWifiRouterCtrlBlockAckEnableReqSend(src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__, bufferSize__, timeout__, ssn__) \
186     CsrWifiRouterCtrlBlockAckEnableReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, macAddress__, trafficStreamID__, role__, bufferSize__, timeout__, ssn__)
187
188 /*******************************************************************************
189
190   NAME
191     CsrWifiRouterCtrlBlockAckEnableCfmSend
192
193   DESCRIPTION
194
195   PARAMETERS
196     queue        - Destination Task Queue
197     clientData   -
198     interfaceTag -
199     status       -
200
201 *******************************************************************************/
202 #define CsrWifiRouterCtrlBlockAckEnableCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__) \
203     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlBlockAckEnableCfm), GFP_KERNEL); \
204     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_ENABLE_CFM, dst__, src__); \
205     msg__->clientData = (clientData__); \
206     msg__->interfaceTag = (interfaceTag__); \
207     msg__->status = (status__);
208
209 #define CsrWifiRouterCtrlBlockAckEnableCfmSendTo(dst__, src__, clientData__, interfaceTag__, status__) \
210     { \
211         CsrWifiRouterCtrlBlockAckEnableCfm *msg__; \
212         CsrWifiRouterCtrlBlockAckEnableCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__); \
213         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
214     }
215
216 #define CsrWifiRouterCtrlBlockAckEnableCfmSend(dst__, clientData__, interfaceTag__, status__) \
217     CsrWifiRouterCtrlBlockAckEnableCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, status__)
218
219 /*******************************************************************************
220
221   NAME
222     CsrWifiRouterCtrlBlockAckErrorIndSend
223
224   DESCRIPTION
225
226   PARAMETERS
227     queue           - Destination Task Queue
228     clientData      -
229     interfaceTag    -
230     trafficStreamID -
231     peerMacAddress  -
232     status          -
233
234 *******************************************************************************/
235 #define CsrWifiRouterCtrlBlockAckErrorIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, trafficStreamID__, peerMacAddress__, status__) \
236     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlBlockAckErrorInd), GFP_KERNEL); \
237     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_ERROR_IND, dst__, src__); \
238     msg__->clientData = (clientData__); \
239     msg__->interfaceTag = (interfaceTag__); \
240     msg__->trafficStreamID = (trafficStreamID__); \
241     msg__->peerMacAddress = (peerMacAddress__); \
242     msg__->status = (status__);
243
244 #define CsrWifiRouterCtrlBlockAckErrorIndSendTo(dst__, src__, clientData__, interfaceTag__, trafficStreamID__, peerMacAddress__, status__) \
245     { \
246         CsrWifiRouterCtrlBlockAckErrorInd *msg__; \
247         CsrWifiRouterCtrlBlockAckErrorIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, trafficStreamID__, peerMacAddress__, status__); \
248         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
249     }
250
251 #define CsrWifiRouterCtrlBlockAckErrorIndSend(dst__, clientData__, interfaceTag__, trafficStreamID__, peerMacAddress__, status__) \
252     CsrWifiRouterCtrlBlockAckErrorIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, trafficStreamID__, peerMacAddress__, status__)
253
254 /*******************************************************************************
255
256   NAME
257     CsrWifiRouterCtrlCapabilitiesReqSend
258
259   DESCRIPTION
260
261   PARAMETERS
262     queue      - Message Source Task Queue (Cfm's will be sent to this Queue)
263     clientData -
264
265 *******************************************************************************/
266 #define CsrWifiRouterCtrlCapabilitiesReqCreate(msg__, dst__, src__, clientData__) \
267     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlCapabilitiesReq), GFP_KERNEL); \
268     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_CAPABILITIES_REQ, dst__, src__); \
269     msg__->clientData = (clientData__);
270
271 #define CsrWifiRouterCtrlCapabilitiesReqSendTo(dst__, src__, clientData__) \
272     { \
273         CsrWifiRouterCtrlCapabilitiesReq *msg__; \
274         CsrWifiRouterCtrlCapabilitiesReqCreate(msg__, dst__, src__, clientData__); \
275         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
276     }
277
278 #define CsrWifiRouterCtrlCapabilitiesReqSend(src__, clientData__) \
279     CsrWifiRouterCtrlCapabilitiesReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__)
280
281 /*******************************************************************************
282
283   NAME
284     CsrWifiRouterCtrlCapabilitiesCfmSend
285
286   DESCRIPTION
287     The router sends this primitive to confirm the size of the queues of the
288     HIP.
289
290   PARAMETERS
291     queue            - Destination Task Queue
292     clientData       -
293     commandQueueSize - Size of command queue
294     trafficQueueSize - Size of traffic queue (per AC)
295
296 *******************************************************************************/
297 #define CsrWifiRouterCtrlCapabilitiesCfmCreate(msg__, dst__, src__, clientData__, commandQueueSize__, trafficQueueSize__) \
298     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlCapabilitiesCfm), GFP_KERNEL); \
299     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_CAPABILITIES_CFM, dst__, src__); \
300     msg__->clientData = (clientData__); \
301     msg__->commandQueueSize = (commandQueueSize__); \
302     msg__->trafficQueueSize = (trafficQueueSize__);
303
304 #define CsrWifiRouterCtrlCapabilitiesCfmSendTo(dst__, src__, clientData__, commandQueueSize__, trafficQueueSize__) \
305     { \
306         CsrWifiRouterCtrlCapabilitiesCfm *msg__; \
307         CsrWifiRouterCtrlCapabilitiesCfmCreate(msg__, dst__, src__, clientData__, commandQueueSize__, trafficQueueSize__); \
308         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
309     }
310
311 #define CsrWifiRouterCtrlCapabilitiesCfmSend(dst__, clientData__, commandQueueSize__, trafficQueueSize__) \
312     CsrWifiRouterCtrlCapabilitiesCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, commandQueueSize__, trafficQueueSize__)
313
314 /*******************************************************************************
315
316   NAME
317     CsrWifiRouterCtrlConfigurePowerModeReqSend
318
319   DESCRIPTION
320
321   PARAMETERS
322     queue      - Message Source Task Queue (Cfm's will be sent to this Queue)
323     clientData -
324     mode       -
325     wakeHost   -
326
327 *******************************************************************************/
328 #define CsrWifiRouterCtrlConfigurePowerModeReqCreate(msg__, dst__, src__, clientData__, mode__, wakeHost__) \
329     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlConfigurePowerModeReq), GFP_KERNEL); \
330     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_CONFIGURE_POWER_MODE_REQ, dst__, src__); \
331     msg__->clientData = (clientData__); \
332     msg__->mode = (mode__); \
333     msg__->wakeHost = (wakeHost__);
334
335 #define CsrWifiRouterCtrlConfigurePowerModeReqSendTo(dst__, src__, clientData__, mode__, wakeHost__) \
336     { \
337         CsrWifiRouterCtrlConfigurePowerModeReq *msg__; \
338         CsrWifiRouterCtrlConfigurePowerModeReqCreate(msg__, dst__, src__, clientData__, mode__, wakeHost__); \
339         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
340     }
341
342 #define CsrWifiRouterCtrlConfigurePowerModeReqSend(src__, clientData__, mode__, wakeHost__) \
343     CsrWifiRouterCtrlConfigurePowerModeReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__, mode__, wakeHost__)
344
345 /*******************************************************************************
346
347   NAME
348     CsrWifiRouterCtrlConnectedIndSend
349
350   DESCRIPTION
351
352   PARAMETERS
353     queue          - Destination Task Queue
354     clientData     -
355     interfaceTag   -
356     peerMacAddress -
357     peerStatus     -
358
359 *******************************************************************************/
360 #define CsrWifiRouterCtrlConnectedIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__, peerStatus__) \
361     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlConnectedInd), GFP_KERNEL); \
362     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_CONNECTED_IND, dst__, src__); \
363     msg__->clientData = (clientData__); \
364     msg__->interfaceTag = (interfaceTag__); \
365     msg__->peerMacAddress = (peerMacAddress__); \
366     msg__->peerStatus = (peerStatus__);
367
368 #define CsrWifiRouterCtrlConnectedIndSendTo(dst__, src__, clientData__, interfaceTag__, peerMacAddress__, peerStatus__) \
369     { \
370         CsrWifiRouterCtrlConnectedInd *msg__; \
371         CsrWifiRouterCtrlConnectedIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__, peerStatus__); \
372         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
373     }
374
375 #define CsrWifiRouterCtrlConnectedIndSend(dst__, clientData__, interfaceTag__, peerMacAddress__, peerStatus__) \
376     CsrWifiRouterCtrlConnectedIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, peerMacAddress__, peerStatus__)
377
378 /*******************************************************************************
379
380   NAME
381     CsrWifiRouterCtrlHipReqSend
382
383   DESCRIPTION
384     This primitive is used for transferring MLME messages to the HIP.
385
386   PARAMETERS
387     queue             - Message Source Task Queue (Cfm's will be sent to this Queue)
388     mlmeCommandLength - Length of the MLME signal
389     mlmeCommand       - Pointer to the MLME signal
390     dataRef1Length    - Length of the dataRef1 bulk data
391     dataRef1          - Pointer to the bulk data 1
392     dataRef2Length    - Length of the dataRef2 bulk data
393     dataRef2          - Pointer to the bulk data 2
394
395 *******************************************************************************/
396 #define CsrWifiRouterCtrlHipReqCreate(msg__, dst__, src__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__) \
397     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlHipReq), GFP_KERNEL); \
398     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_HIP_REQ, dst__, src__); \
399     msg__->mlmeCommandLength = (mlmeCommandLength__); \
400     msg__->mlmeCommand = (mlmeCommand__); \
401     msg__->dataRef1Length = (dataRef1Length__); \
402     msg__->dataRef1 = (dataRef1__); \
403     msg__->dataRef2Length = (dataRef2Length__); \
404     msg__->dataRef2 = (dataRef2__);
405
406 #define CsrWifiRouterCtrlHipReqSendTo(dst__, src__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__) \
407     { \
408         CsrWifiRouterCtrlHipReq *msg__; \
409         CsrWifiRouterCtrlHipReqCreate(msg__, dst__, src__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__); \
410         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
411     }
412
413 #define CsrWifiRouterCtrlHipReqSend(src__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__) \
414     CsrWifiRouterCtrlHipReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__)
415
416 /*******************************************************************************
417
418   NAME
419     CsrWifiRouterCtrlHipIndSend
420
421   DESCRIPTION
422     This primitive is used for transferring MLME messages from the HIP.
423
424   PARAMETERS
425     queue             - Destination Task Queue
426     mlmeCommandLength - Length of the MLME signal
427     mlmeCommand       - Pointer to the MLME signal
428     dataRef1Length    - Length of the dataRef1 bulk data
429     dataRef1          - Pointer to the bulk data 1
430     dataRef2Length    - Length of the dataRef2 bulk data
431     dataRef2          - Pointer to the bulk data 2
432
433 *******************************************************************************/
434 #define CsrWifiRouterCtrlHipIndCreate(msg__, dst__, src__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__) \
435     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlHipInd), GFP_KERNEL); \
436     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_HIP_IND, dst__, src__); \
437     msg__->mlmeCommandLength = (mlmeCommandLength__); \
438     msg__->mlmeCommand = (mlmeCommand__); \
439     msg__->dataRef1Length = (dataRef1Length__); \
440     msg__->dataRef1 = (dataRef1__); \
441     msg__->dataRef2Length = (dataRef2Length__); \
442     msg__->dataRef2 = (dataRef2__);
443
444 #define CsrWifiRouterCtrlHipIndSendTo(dst__, src__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__) \
445     { \
446         CsrWifiRouterCtrlHipInd *msg__; \
447         CsrWifiRouterCtrlHipIndCreate(msg__, dst__, src__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__); \
448         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
449     }
450
451 #define CsrWifiRouterCtrlHipIndSend(dst__, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__) \
452     CsrWifiRouterCtrlHipIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, mlmeCommandLength__, mlmeCommand__, dataRef1Length__, dataRef1__, dataRef2Length__, dataRef2__)
453
454 /*******************************************************************************
455
456   NAME
457     CsrWifiRouterCtrlM4ReadyToSendIndSend
458
459   DESCRIPTION
460
461   PARAMETERS
462     queue          - Destination Task Queue
463     clientData     -
464     interfaceTag   -
465     peerMacAddress -
466
467 *******************************************************************************/
468 #define CsrWifiRouterCtrlM4ReadyToSendIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__) \
469     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlM4ReadyToSendInd), GFP_KERNEL); \
470     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_M4_READY_TO_SEND_IND, dst__, src__); \
471     msg__->clientData = (clientData__); \
472     msg__->interfaceTag = (interfaceTag__); \
473     msg__->peerMacAddress = (peerMacAddress__);
474
475 #define CsrWifiRouterCtrlM4ReadyToSendIndSendTo(dst__, src__, clientData__, interfaceTag__, peerMacAddress__) \
476     { \
477         CsrWifiRouterCtrlM4ReadyToSendInd *msg__; \
478         CsrWifiRouterCtrlM4ReadyToSendIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__); \
479         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
480     }
481
482 #define CsrWifiRouterCtrlM4ReadyToSendIndSend(dst__, clientData__, interfaceTag__, peerMacAddress__) \
483     CsrWifiRouterCtrlM4ReadyToSendIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, peerMacAddress__)
484
485 /*******************************************************************************
486
487   NAME
488     CsrWifiRouterCtrlM4TransmitReqSend
489
490   DESCRIPTION
491
492   PARAMETERS
493     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
494     interfaceTag -
495     clientData   -
496
497 *******************************************************************************/
498 #define CsrWifiRouterCtrlM4TransmitReqCreate(msg__, dst__, src__, interfaceTag__, clientData__) \
499     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlM4TransmitReq), GFP_KERNEL); \
500     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_M4_TRANSMIT_REQ, dst__, src__); \
501     msg__->interfaceTag = (interfaceTag__); \
502     msg__->clientData = (clientData__);
503
504 #define CsrWifiRouterCtrlM4TransmitReqSendTo(dst__, src__, interfaceTag__, clientData__) \
505     { \
506         CsrWifiRouterCtrlM4TransmitReq *msg__; \
507         CsrWifiRouterCtrlM4TransmitReqCreate(msg__, dst__, src__, interfaceTag__, clientData__); \
508         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
509     }
510
511 #define CsrWifiRouterCtrlM4TransmitReqSend(src__, interfaceTag__, clientData__) \
512     CsrWifiRouterCtrlM4TransmitReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__)
513
514 /*******************************************************************************
515
516   NAME
517     CsrWifiRouterCtrlM4TransmittedIndSend
518
519   DESCRIPTION
520
521   PARAMETERS
522     queue          - Destination Task Queue
523     clientData     -
524     interfaceTag   -
525     peerMacAddress -
526     status         -
527
528 *******************************************************************************/
529 #define CsrWifiRouterCtrlM4TransmittedIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__, status__) \
530     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlM4TransmittedInd), GFP_KERNEL); \
531     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_M4_TRANSMITTED_IND, dst__, src__); \
532     msg__->clientData = (clientData__); \
533     msg__->interfaceTag = (interfaceTag__); \
534     msg__->peerMacAddress = (peerMacAddress__); \
535     msg__->status = (status__);
536
537 #define CsrWifiRouterCtrlM4TransmittedIndSendTo(dst__, src__, clientData__, interfaceTag__, peerMacAddress__, status__) \
538     { \
539         CsrWifiRouterCtrlM4TransmittedInd *msg__; \
540         CsrWifiRouterCtrlM4TransmittedIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__, status__); \
541         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
542     }
543
544 #define CsrWifiRouterCtrlM4TransmittedIndSend(dst__, clientData__, interfaceTag__, peerMacAddress__, status__) \
545     CsrWifiRouterCtrlM4TransmittedIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, peerMacAddress__, status__)
546
547 /*******************************************************************************
548
549   NAME
550     CsrWifiRouterCtrlMediaStatusReqSend
551
552   DESCRIPTION
553
554   PARAMETERS
555     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
556     interfaceTag -
557     clientData   -
558     mediaStatus  -
559
560 *******************************************************************************/
561 #define CsrWifiRouterCtrlMediaStatusReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, mediaStatus__) \
562     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlMediaStatusReq), GFP_KERNEL); \
563     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_MEDIA_STATUS_REQ, dst__, src__); \
564     msg__->interfaceTag = (interfaceTag__); \
565     msg__->clientData = (clientData__); \
566     msg__->mediaStatus = (mediaStatus__);
567
568 #define CsrWifiRouterCtrlMediaStatusReqSendTo(dst__, src__, interfaceTag__, clientData__, mediaStatus__) \
569     { \
570         CsrWifiRouterCtrlMediaStatusReq *msg__; \
571         CsrWifiRouterCtrlMediaStatusReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, mediaStatus__); \
572         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
573     }
574
575 #define CsrWifiRouterCtrlMediaStatusReqSend(src__, interfaceTag__, clientData__, mediaStatus__) \
576     CsrWifiRouterCtrlMediaStatusReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, mediaStatus__)
577
578 /*******************************************************************************
579
580   NAME
581     CsrWifiRouterCtrlMicFailureIndSend
582
583   DESCRIPTION
584
585   PARAMETERS
586     queue          - Destination Task Queue
587     clientData     -
588     interfaceTag   -
589     peerMacAddress -
590     unicastPdu     -
591
592 *******************************************************************************/
593 #define CsrWifiRouterCtrlMicFailureIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__, unicastPdu__) \
594     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlMicFailureInd), GFP_KERNEL); \
595     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_MIC_FAILURE_IND, dst__, src__); \
596     msg__->clientData = (clientData__); \
597     msg__->interfaceTag = (interfaceTag__); \
598     msg__->peerMacAddress = (peerMacAddress__); \
599     msg__->unicastPdu = (unicastPdu__);
600
601 #define CsrWifiRouterCtrlMicFailureIndSendTo(dst__, src__, clientData__, interfaceTag__, peerMacAddress__, unicastPdu__) \
602     { \
603         CsrWifiRouterCtrlMicFailureInd *msg__; \
604         CsrWifiRouterCtrlMicFailureIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__, unicastPdu__); \
605         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
606     }
607
608 #define CsrWifiRouterCtrlMicFailureIndSend(dst__, clientData__, interfaceTag__, peerMacAddress__, unicastPdu__) \
609     CsrWifiRouterCtrlMicFailureIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, peerMacAddress__, unicastPdu__)
610
611 /*******************************************************************************
612
613   NAME
614     CsrWifiRouterCtrlModeSetReqSend
615
616   DESCRIPTION
617
618   PARAMETERS
619     queue               - Message Source Task Queue (Cfm's will be sent to this Queue)
620     interfaceTag        -
621     clientData          -
622     mode                -
623     bssid               - BSSID of the network the device is going to be a part
624                           of
625     protection          - Set to TRUE if encryption is enabled for the
626                           connection/broadcast frames
627     intraBssDistEnabled - If set to TRUE, intra BSS destribution will be
628                           enabled. If set to FALSE, any unicast PDU which does
629                           not have the RA as the the local MAC address, shall be
630                           ignored. This field is interpreted by the receive if
631                           mode is set to CSR_WIFI_ROUTER_CTRL_MODE_P2PGO
632
633 *******************************************************************************/
634 #define CsrWifiRouterCtrlModeSetReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, mode__, bssid__, protection__, intraBssDistEnabled__) \
635     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlModeSetReq), GFP_KERNEL); \
636     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_MODE_SET_REQ, dst__, src__); \
637     msg__->interfaceTag = (interfaceTag__); \
638     msg__->clientData = (clientData__); \
639     msg__->mode = (mode__); \
640     msg__->bssid = (bssid__); \
641     msg__->protection = (protection__); \
642     msg__->intraBssDistEnabled = (intraBssDistEnabled__);
643
644 #define CsrWifiRouterCtrlModeSetReqSendTo(dst__, src__, interfaceTag__, clientData__, mode__, bssid__, protection__, intraBssDistEnabled__) \
645     { \
646         CsrWifiRouterCtrlModeSetReq *msg__; \
647         CsrWifiRouterCtrlModeSetReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, mode__, bssid__, protection__, intraBssDistEnabled__); \
648         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
649     }
650
651 #define CsrWifiRouterCtrlModeSetReqSend(src__, interfaceTag__, clientData__, mode__, bssid__, protection__, intraBssDistEnabled__) \
652     CsrWifiRouterCtrlModeSetReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, mode__, bssid__, protection__, intraBssDistEnabled__)
653
654 /*******************************************************************************
655
656   NAME
657     CsrWifiRouterCtrlModeSetCfmSend
658
659   DESCRIPTION
660
661   PARAMETERS
662     queue        - Destination Task Queue
663     clientData   -
664     interfaceTag -
665     mode         -
666     status       -
667
668 *******************************************************************************/
669 #define CsrWifiRouterCtrlModeSetCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, mode__, status__) \
670     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlModeSetCfm), GFP_KERNEL); \
671     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_MODE_SET_CFM, dst__, src__); \
672     msg__->clientData = (clientData__); \
673     msg__->interfaceTag = (interfaceTag__); \
674     msg__->mode = (mode__); \
675     msg__->status = (status__);
676
677 #define CsrWifiRouterCtrlModeSetCfmSendTo(dst__, src__, clientData__, interfaceTag__, mode__, status__) \
678     { \
679         CsrWifiRouterCtrlModeSetCfm *msg__; \
680         CsrWifiRouterCtrlModeSetCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, mode__, status__); \
681         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
682     }
683
684 #define CsrWifiRouterCtrlModeSetCfmSend(dst__, clientData__, interfaceTag__, mode__, status__) \
685     CsrWifiRouterCtrlModeSetCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, mode__, status__)
686
687 /*******************************************************************************
688
689   NAME
690     CsrWifiRouterCtrlMulticastAddressIndSend
691
692   DESCRIPTION
693
694   PARAMETERS
695     queue             - Destination Task Queue
696     clientData        -
697     interfaceTag      -
698     action            -
699     setAddressesCount -
700     setAddresses      -
701
702 *******************************************************************************/
703 #define CsrWifiRouterCtrlMulticastAddressIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, action__, setAddressesCount__, setAddresses__) \
704     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlMulticastAddressInd), GFP_KERNEL); \
705     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_MULTICAST_ADDRESS_IND, dst__, src__); \
706     msg__->clientData = (clientData__); \
707     msg__->interfaceTag = (interfaceTag__); \
708     msg__->action = (action__); \
709     msg__->setAddressesCount = (setAddressesCount__); \
710     msg__->setAddresses = (setAddresses__);
711
712 #define CsrWifiRouterCtrlMulticastAddressIndSendTo(dst__, src__, clientData__, interfaceTag__, action__, setAddressesCount__, setAddresses__) \
713     { \
714         CsrWifiRouterCtrlMulticastAddressInd *msg__; \
715         CsrWifiRouterCtrlMulticastAddressIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, action__, setAddressesCount__, setAddresses__); \
716         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
717     }
718
719 #define CsrWifiRouterCtrlMulticastAddressIndSend(dst__, clientData__, interfaceTag__, action__, setAddressesCount__, setAddresses__) \
720     CsrWifiRouterCtrlMulticastAddressIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, action__, setAddressesCount__, setAddresses__)
721
722 /*******************************************************************************
723
724   NAME
725     CsrWifiRouterCtrlMulticastAddressResSend
726
727   DESCRIPTION
728
729   PARAMETERS
730     interfaceTag      -
731     clientData        -
732     status            -
733     action            -
734     getAddressesCount -
735     getAddresses      -
736
737 *******************************************************************************/
738 #define CsrWifiRouterCtrlMulticastAddressResCreate(msg__, dst__, src__, interfaceTag__, clientData__, status__, action__, getAddressesCount__, getAddresses__) \
739     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlMulticastAddressRes), GFP_KERNEL); \
740     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_MULTICAST_ADDRESS_RES, dst__, src__); \
741     msg__->interfaceTag = (interfaceTag__); \
742     msg__->clientData = (clientData__); \
743     msg__->status = (status__); \
744     msg__->action = (action__); \
745     msg__->getAddressesCount = (getAddressesCount__); \
746     msg__->getAddresses = (getAddresses__);
747
748 #define CsrWifiRouterCtrlMulticastAddressResSendTo(dst__, src__, interfaceTag__, clientData__, status__, action__, getAddressesCount__, getAddresses__) \
749     { \
750         CsrWifiRouterCtrlMulticastAddressRes *msg__; \
751         CsrWifiRouterCtrlMulticastAddressResCreate(msg__, dst__, src__, interfaceTag__, clientData__, status__, action__, getAddressesCount__, getAddresses__); \
752         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
753     }
754
755 #define CsrWifiRouterCtrlMulticastAddressResSend(src__, interfaceTag__, clientData__, status__, action__, getAddressesCount__, getAddresses__) \
756     CsrWifiRouterCtrlMulticastAddressResSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, status__, action__, getAddressesCount__, getAddresses__)
757
758 /*******************************************************************************
759
760   NAME
761     CsrWifiRouterCtrlPeerAddReqSend
762
763   DESCRIPTION
764
765   PARAMETERS
766     queue          - Message Source Task Queue (Cfm's will be sent to this Queue)
767     interfaceTag   -
768     clientData     -
769     peerMacAddress -
770     associationId  -
771     staInfo        -
772
773 *******************************************************************************/
774 #define CsrWifiRouterCtrlPeerAddReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, peerMacAddress__, associationId__, staInfo__) \
775     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlPeerAddReq), GFP_KERNEL); \
776     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_PEER_ADD_REQ, dst__, src__); \
777     msg__->interfaceTag = (interfaceTag__); \
778     msg__->clientData = (clientData__); \
779     msg__->peerMacAddress = (peerMacAddress__); \
780     msg__->associationId = (associationId__); \
781     msg__->staInfo = (staInfo__);
782
783 #define CsrWifiRouterCtrlPeerAddReqSendTo(dst__, src__, interfaceTag__, clientData__, peerMacAddress__, associationId__, staInfo__) \
784     { \
785         CsrWifiRouterCtrlPeerAddReq *msg__; \
786         CsrWifiRouterCtrlPeerAddReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, peerMacAddress__, associationId__, staInfo__); \
787         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
788     }
789
790 #define CsrWifiRouterCtrlPeerAddReqSend(src__, interfaceTag__, clientData__, peerMacAddress__, associationId__, staInfo__) \
791     CsrWifiRouterCtrlPeerAddReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, peerMacAddress__, associationId__, staInfo__)
792
793 /*******************************************************************************
794
795   NAME
796     CsrWifiRouterCtrlPeerAddCfmSend
797
798   DESCRIPTION
799
800   PARAMETERS
801     queue            - Destination Task Queue
802     clientData       -
803     interfaceTag     -
804     peerMacAddress   -
805     peerRecordHandle -
806     status           -
807
808 *******************************************************************************/
809 #define CsrWifiRouterCtrlPeerAddCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__, peerRecordHandle__, status__) \
810     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlPeerAddCfm), GFP_KERNEL); \
811     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_PEER_ADD_CFM, dst__, src__); \
812     msg__->clientData = (clientData__); \
813     msg__->interfaceTag = (interfaceTag__); \
814     msg__->peerMacAddress = (peerMacAddress__); \
815     msg__->peerRecordHandle = (peerRecordHandle__); \
816     msg__->status = (status__);
817
818 #define CsrWifiRouterCtrlPeerAddCfmSendTo(dst__, src__, clientData__, interfaceTag__, peerMacAddress__, peerRecordHandle__, status__) \
819     { \
820         CsrWifiRouterCtrlPeerAddCfm *msg__; \
821         CsrWifiRouterCtrlPeerAddCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__, peerRecordHandle__, status__); \
822         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
823     }
824
825 #define CsrWifiRouterCtrlPeerAddCfmSend(dst__, clientData__, interfaceTag__, peerMacAddress__, peerRecordHandle__, status__) \
826     CsrWifiRouterCtrlPeerAddCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, peerMacAddress__, peerRecordHandle__, status__)
827
828 /*******************************************************************************
829
830   NAME
831     CsrWifiRouterCtrlPeerDelReqSend
832
833   DESCRIPTION
834
835   PARAMETERS
836     queue            - Message Source Task Queue (Cfm's will be sent to this Queue)
837     interfaceTag     -
838     clientData       -
839     peerRecordHandle -
840
841 *******************************************************************************/
842 #define CsrWifiRouterCtrlPeerDelReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, peerRecordHandle__) \
843     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlPeerDelReq), GFP_KERNEL); \
844     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_PEER_DEL_REQ, dst__, src__); \
845     msg__->interfaceTag = (interfaceTag__); \
846     msg__->clientData = (clientData__); \
847     msg__->peerRecordHandle = (peerRecordHandle__);
848
849 #define CsrWifiRouterCtrlPeerDelReqSendTo(dst__, src__, interfaceTag__, clientData__, peerRecordHandle__) \
850     { \
851         CsrWifiRouterCtrlPeerDelReq *msg__; \
852         CsrWifiRouterCtrlPeerDelReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, peerRecordHandle__); \
853         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
854     }
855
856 #define CsrWifiRouterCtrlPeerDelReqSend(src__, interfaceTag__, clientData__, peerRecordHandle__) \
857     CsrWifiRouterCtrlPeerDelReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, peerRecordHandle__)
858
859 /*******************************************************************************
860
861   NAME
862     CsrWifiRouterCtrlPeerDelCfmSend
863
864   DESCRIPTION
865
866   PARAMETERS
867     queue        - Destination Task Queue
868     clientData   -
869     interfaceTag -
870     status       -
871
872 *******************************************************************************/
873 #define CsrWifiRouterCtrlPeerDelCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__) \
874     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlPeerDelCfm), GFP_KERNEL); \
875     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_PEER_DEL_CFM, dst__, src__); \
876     msg__->clientData = (clientData__); \
877     msg__->interfaceTag = (interfaceTag__); \
878     msg__->status = (status__);
879
880 #define CsrWifiRouterCtrlPeerDelCfmSendTo(dst__, src__, clientData__, interfaceTag__, status__) \
881     { \
882         CsrWifiRouterCtrlPeerDelCfm *msg__; \
883         CsrWifiRouterCtrlPeerDelCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__); \
884         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
885     }
886
887 #define CsrWifiRouterCtrlPeerDelCfmSend(dst__, clientData__, interfaceTag__, status__) \
888     CsrWifiRouterCtrlPeerDelCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, status__)
889
890 /*******************************************************************************
891
892   NAME
893     CsrWifiRouterCtrlPeerUpdateReqSend
894
895   DESCRIPTION
896
897   PARAMETERS
898     queue            - Message Source Task Queue (Cfm's will be sent to this Queue)
899     interfaceTag     -
900     clientData       -
901     peerRecordHandle -
902     powersaveMode    -
903
904 *******************************************************************************/
905 #define CsrWifiRouterCtrlPeerUpdateReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, peerRecordHandle__, powersaveMode__) \
906     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlPeerUpdateReq), GFP_KERNEL); \
907     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_PEER_UPDATE_REQ, dst__, src__); \
908     msg__->interfaceTag = (interfaceTag__); \
909     msg__->clientData = (clientData__); \
910     msg__->peerRecordHandle = (peerRecordHandle__); \
911     msg__->powersaveMode = (powersaveMode__);
912
913 #define CsrWifiRouterCtrlPeerUpdateReqSendTo(dst__, src__, interfaceTag__, clientData__, peerRecordHandle__, powersaveMode__) \
914     { \
915         CsrWifiRouterCtrlPeerUpdateReq *msg__; \
916         CsrWifiRouterCtrlPeerUpdateReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, peerRecordHandle__, powersaveMode__); \
917         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
918     }
919
920 #define CsrWifiRouterCtrlPeerUpdateReqSend(src__, interfaceTag__, clientData__, peerRecordHandle__, powersaveMode__) \
921     CsrWifiRouterCtrlPeerUpdateReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, peerRecordHandle__, powersaveMode__)
922
923 /*******************************************************************************
924
925   NAME
926     CsrWifiRouterCtrlPeerUpdateCfmSend
927
928   DESCRIPTION
929
930   PARAMETERS
931     queue        - Destination Task Queue
932     clientData   -
933     interfaceTag -
934     status       -
935
936 *******************************************************************************/
937 #define CsrWifiRouterCtrlPeerUpdateCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__) \
938     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlPeerUpdateCfm), GFP_KERNEL); \
939     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_PEER_UPDATE_CFM, dst__, src__); \
940     msg__->clientData = (clientData__); \
941     msg__->interfaceTag = (interfaceTag__); \
942     msg__->status = (status__);
943
944 #define CsrWifiRouterCtrlPeerUpdateCfmSendTo(dst__, src__, clientData__, interfaceTag__, status__) \
945     { \
946         CsrWifiRouterCtrlPeerUpdateCfm *msg__; \
947         CsrWifiRouterCtrlPeerUpdateCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__); \
948         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
949     }
950
951 #define CsrWifiRouterCtrlPeerUpdateCfmSend(dst__, clientData__, interfaceTag__, status__) \
952     CsrWifiRouterCtrlPeerUpdateCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, status__)
953
954 /*******************************************************************************
955
956   NAME
957     CsrWifiRouterCtrlPortConfigureReqSend
958
959   DESCRIPTION
960
961   PARAMETERS
962     queue                  - Message Source Task Queue (Cfm's will be sent to this Queue)
963     interfaceTag           -
964     clientData             -
965     uncontrolledPortAction -
966     controlledPortAction   -
967     macAddress             -
968     setProtection          -
969
970 *******************************************************************************/
971 #define CsrWifiRouterCtrlPortConfigureReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, uncontrolledPortAction__, controlledPortAction__, macAddress__, setProtection__) \
972     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlPortConfigureReq), GFP_KERNEL); \
973     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_PORT_CONFIGURE_REQ, dst__, src__); \
974     msg__->interfaceTag = (interfaceTag__); \
975     msg__->clientData = (clientData__); \
976     msg__->uncontrolledPortAction = (uncontrolledPortAction__); \
977     msg__->controlledPortAction = (controlledPortAction__); \
978     msg__->macAddress = (macAddress__); \
979     msg__->setProtection = (setProtection__);
980
981 #define CsrWifiRouterCtrlPortConfigureReqSendTo(dst__, src__, interfaceTag__, clientData__, uncontrolledPortAction__, controlledPortAction__, macAddress__, setProtection__) \
982     { \
983         CsrWifiRouterCtrlPortConfigureReq *msg__; \
984         CsrWifiRouterCtrlPortConfigureReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, uncontrolledPortAction__, controlledPortAction__, macAddress__, setProtection__); \
985         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
986     }
987
988 #define CsrWifiRouterCtrlPortConfigureReqSend(src__, interfaceTag__, clientData__, uncontrolledPortAction__, controlledPortAction__, macAddress__, setProtection__) \
989     CsrWifiRouterCtrlPortConfigureReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, uncontrolledPortAction__, controlledPortAction__, macAddress__, setProtection__)
990
991 /*******************************************************************************
992
993   NAME
994     CsrWifiRouterCtrlPortConfigureCfmSend
995
996   DESCRIPTION
997
998   PARAMETERS
999     queue        - Destination Task Queue
1000     clientData   -
1001     interfaceTag -
1002     status       -
1003     macAddress   -
1004
1005 *******************************************************************************/
1006 #define CsrWifiRouterCtrlPortConfigureCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__, macAddress__) \
1007     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlPortConfigureCfm), GFP_KERNEL); \
1008     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_PORT_CONFIGURE_CFM, dst__, src__); \
1009     msg__->clientData = (clientData__); \
1010     msg__->interfaceTag = (interfaceTag__); \
1011     msg__->status = (status__); \
1012     msg__->macAddress = (macAddress__);
1013
1014 #define CsrWifiRouterCtrlPortConfigureCfmSendTo(dst__, src__, clientData__, interfaceTag__, status__, macAddress__) \
1015     { \
1016         CsrWifiRouterCtrlPortConfigureCfm *msg__; \
1017         CsrWifiRouterCtrlPortConfigureCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__, macAddress__); \
1018         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1019     }
1020
1021 #define CsrWifiRouterCtrlPortConfigureCfmSend(dst__, clientData__, interfaceTag__, status__, macAddress__) \
1022     CsrWifiRouterCtrlPortConfigureCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, status__, macAddress__)
1023
1024 /*******************************************************************************
1025
1026   NAME
1027     CsrWifiRouterCtrlQosControlReqSend
1028
1029   DESCRIPTION
1030
1031   PARAMETERS
1032     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
1033     interfaceTag -
1034     clientData   -
1035     control      -
1036     queueConfig  -
1037
1038 *******************************************************************************/
1039 #define CsrWifiRouterCtrlQosControlReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, control__, queueConfig__) \
1040     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlQosControlReq), GFP_KERNEL); \
1041     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_QOS_CONTROL_REQ, dst__, src__); \
1042     msg__->interfaceTag = (interfaceTag__); \
1043     msg__->clientData = (clientData__); \
1044     msg__->control = (control__); \
1045     msg__->queueConfig = (queueConfig__);
1046
1047 #define CsrWifiRouterCtrlQosControlReqSendTo(dst__, src__, interfaceTag__, clientData__, control__, queueConfig__) \
1048     { \
1049         CsrWifiRouterCtrlQosControlReq *msg__; \
1050         CsrWifiRouterCtrlQosControlReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, control__, queueConfig__); \
1051         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1052     }
1053
1054 #define CsrWifiRouterCtrlQosControlReqSend(src__, interfaceTag__, clientData__, control__, queueConfig__) \
1055     CsrWifiRouterCtrlQosControlReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, control__, queueConfig__)
1056
1057 /*******************************************************************************
1058
1059   NAME
1060     CsrWifiRouterCtrlRawSdioDeinitialiseReqSend
1061
1062   DESCRIPTION
1063
1064   PARAMETERS
1065     queue      - Message Source Task Queue (Cfm's will be sent to this Queue)
1066     clientData -
1067
1068 *******************************************************************************/
1069 #define CsrWifiRouterCtrlRawSdioDeinitialiseReqCreate(msg__, dst__, src__, clientData__) \
1070     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlRawSdioDeinitialiseReq), GFP_KERNEL); \
1071     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_RAW_SDIO_DEINITIALISE_REQ, dst__, src__); \
1072     msg__->clientData = (clientData__);
1073
1074 #define CsrWifiRouterCtrlRawSdioDeinitialiseReqSendTo(dst__, src__, clientData__) \
1075     { \
1076         CsrWifiRouterCtrlRawSdioDeinitialiseReq *msg__; \
1077         CsrWifiRouterCtrlRawSdioDeinitialiseReqCreate(msg__, dst__, src__, clientData__); \
1078         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1079     }
1080
1081 #define CsrWifiRouterCtrlRawSdioDeinitialiseReqSend(src__, clientData__) \
1082     CsrWifiRouterCtrlRawSdioDeinitialiseReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__)
1083
1084 /*******************************************************************************
1085
1086   NAME
1087     CsrWifiRouterCtrlRawSdioDeinitialiseCfmSend
1088
1089   DESCRIPTION
1090
1091   PARAMETERS
1092     queue      - Destination Task Queue
1093     clientData -
1094     result     -
1095
1096 *******************************************************************************/
1097 #define CsrWifiRouterCtrlRawSdioDeinitialiseCfmCreate(msg__, dst__, src__, clientData__, result__) \
1098     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlRawSdioDeinitialiseCfm), GFP_KERNEL); \
1099     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_RAW_SDIO_DEINITIALISE_CFM, dst__, src__); \
1100     msg__->clientData = (clientData__); \
1101     msg__->result = (result__);
1102
1103 #define CsrWifiRouterCtrlRawSdioDeinitialiseCfmSendTo(dst__, src__, clientData__, result__) \
1104     { \
1105         CsrWifiRouterCtrlRawSdioDeinitialiseCfm *msg__; \
1106         CsrWifiRouterCtrlRawSdioDeinitialiseCfmCreate(msg__, dst__, src__, clientData__, result__); \
1107         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1108     }
1109
1110 #define CsrWifiRouterCtrlRawSdioDeinitialiseCfmSend(dst__, clientData__, result__) \
1111     CsrWifiRouterCtrlRawSdioDeinitialiseCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, result__)
1112
1113 /*******************************************************************************
1114
1115   NAME
1116     CsrWifiRouterCtrlRawSdioInitialiseReqSend
1117
1118   DESCRIPTION
1119
1120   PARAMETERS
1121     queue      - Message Source Task Queue (Cfm's will be sent to this Queue)
1122     clientData -
1123
1124 *******************************************************************************/
1125 #define CsrWifiRouterCtrlRawSdioInitialiseReqCreate(msg__, dst__, src__, clientData__) \
1126     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlRawSdioInitialiseReq), GFP_KERNEL); \
1127     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_RAW_SDIO_INITIALISE_REQ, dst__, src__); \
1128     msg__->clientData = (clientData__);
1129
1130 #define CsrWifiRouterCtrlRawSdioInitialiseReqSendTo(dst__, src__, clientData__) \
1131     { \
1132         CsrWifiRouterCtrlRawSdioInitialiseReq *msg__; \
1133         CsrWifiRouterCtrlRawSdioInitialiseReqCreate(msg__, dst__, src__, clientData__); \
1134         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1135     }
1136
1137 #define CsrWifiRouterCtrlRawSdioInitialiseReqSend(src__, clientData__) \
1138     CsrWifiRouterCtrlRawSdioInitialiseReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__)
1139
1140 /*******************************************************************************
1141
1142   NAME
1143     CsrWifiRouterCtrlRawSdioInitialiseCfmSend
1144
1145   DESCRIPTION
1146
1147   PARAMETERS
1148     queue            - Destination Task Queue
1149     clientData       -
1150     result           -
1151     byteRead         -
1152     byteWrite        -
1153     firmwareDownload -
1154     reset            -
1155     coreDumpPrepare  -
1156     byteBlockRead    -
1157     gpRead16         -
1158     gpWrite16        -
1159
1160 *******************************************************************************/
1161 #define CsrWifiRouterCtrlRawSdioInitialiseCfmCreate(msg__, dst__, src__, clientData__, result__, byteRead__, byteWrite__, firmwareDownload__, reset__, coreDumpPrepare__, byteBlockRead__, gpRead16__, gpWrite16__) \
1162     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlRawSdioInitialiseCfm), GFP_KERNEL); \
1163     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_RAW_SDIO_INITIALISE_CFM, dst__, src__); \
1164     msg__->clientData = (clientData__); \
1165     msg__->result = (result__); \
1166     msg__->byteRead = (byteRead__); \
1167     msg__->byteWrite = (byteWrite__); \
1168     msg__->firmwareDownload = (firmwareDownload__); \
1169     msg__->reset = (reset__); \
1170     msg__->coreDumpPrepare = (coreDumpPrepare__); \
1171     msg__->byteBlockRead = (byteBlockRead__); \
1172     msg__->gpRead16 = (gpRead16__); \
1173     msg__->gpWrite16 = (gpWrite16__);
1174
1175 #define CsrWifiRouterCtrlRawSdioInitialiseCfmSendTo(dst__, src__, clientData__, result__, byteRead__, byteWrite__, firmwareDownload__, reset__, coreDumpPrepare__, byteBlockRead__, gpRead16__, gpWrite16__) \
1176     { \
1177         CsrWifiRouterCtrlRawSdioInitialiseCfm *msg__; \
1178         CsrWifiRouterCtrlRawSdioInitialiseCfmCreate(msg__, dst__, src__, clientData__, result__, byteRead__, byteWrite__, firmwareDownload__, reset__, coreDumpPrepare__, byteBlockRead__, gpRead16__, gpWrite16__); \
1179         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1180     }
1181
1182 #define CsrWifiRouterCtrlRawSdioInitialiseCfmSend(dst__, clientData__, result__, byteRead__, byteWrite__, firmwareDownload__, reset__, coreDumpPrepare__, byteBlockRead__, gpRead16__, gpWrite16__) \
1183     CsrWifiRouterCtrlRawSdioInitialiseCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, result__, byteRead__, byteWrite__, firmwareDownload__, reset__, coreDumpPrepare__, byteBlockRead__, gpRead16__, gpWrite16__)
1184
1185 /*******************************************************************************
1186
1187   NAME
1188     CsrWifiRouterCtrlResumeIndSend
1189
1190   DESCRIPTION
1191
1192   PARAMETERS
1193     queue           - Destination Task Queue
1194     clientData      -
1195     powerMaintained -
1196
1197 *******************************************************************************/
1198 #define CsrWifiRouterCtrlResumeIndCreate(msg__, dst__, src__, clientData__, powerMaintained__) \
1199     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlResumeInd), GFP_KERNEL); \
1200     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_RESUME_IND, dst__, src__); \
1201     msg__->clientData = (clientData__); \
1202     msg__->powerMaintained = (powerMaintained__);
1203
1204 #define CsrWifiRouterCtrlResumeIndSendTo(dst__, src__, clientData__, powerMaintained__) \
1205     { \
1206         CsrWifiRouterCtrlResumeInd *msg__; \
1207         CsrWifiRouterCtrlResumeIndCreate(msg__, dst__, src__, clientData__, powerMaintained__); \
1208         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1209     }
1210
1211 #define CsrWifiRouterCtrlResumeIndSend(dst__, clientData__, powerMaintained__) \
1212     CsrWifiRouterCtrlResumeIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, powerMaintained__)
1213
1214 /*******************************************************************************
1215
1216   NAME
1217     CsrWifiRouterCtrlResumeResSend
1218
1219   DESCRIPTION
1220
1221   PARAMETERS
1222     clientData -
1223     status     -
1224
1225 *******************************************************************************/
1226 #define CsrWifiRouterCtrlResumeResCreate(msg__, dst__, src__, clientData__, status__) \
1227     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlResumeRes), GFP_KERNEL); \
1228     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_RESUME_RES, dst__, src__); \
1229     msg__->clientData = (clientData__); \
1230     msg__->status = (status__);
1231
1232 #define CsrWifiRouterCtrlResumeResSendTo(dst__, src__, clientData__, status__) \
1233     { \
1234         CsrWifiRouterCtrlResumeRes *msg__; \
1235         CsrWifiRouterCtrlResumeResCreate(msg__, dst__, src__, clientData__, status__); \
1236         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1237     }
1238
1239 #define CsrWifiRouterCtrlResumeResSend(src__, clientData__, status__) \
1240     CsrWifiRouterCtrlResumeResSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__, status__)
1241
1242 /*******************************************************************************
1243
1244   NAME
1245     CsrWifiRouterCtrlStaInactiveIndSend
1246
1247   DESCRIPTION
1248
1249   PARAMETERS
1250     queue        - Destination Task Queue
1251     clientData   -
1252     interfaceTag -
1253     staAddress   -
1254
1255 *******************************************************************************/
1256 #define CsrWifiRouterCtrlStaInactiveIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, staAddress__) \
1257     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlStaInactiveInd), GFP_KERNEL); \
1258     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_STA_INACTIVE_IND, dst__, src__); \
1259     msg__->clientData = (clientData__); \
1260     msg__->interfaceTag = (interfaceTag__); \
1261     msg__->staAddress = (staAddress__);
1262
1263 #define CsrWifiRouterCtrlStaInactiveIndSendTo(dst__, src__, clientData__, interfaceTag__, staAddress__) \
1264     { \
1265         CsrWifiRouterCtrlStaInactiveInd *msg__; \
1266         CsrWifiRouterCtrlStaInactiveIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, staAddress__); \
1267         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1268     }
1269
1270 #define CsrWifiRouterCtrlStaInactiveIndSend(dst__, clientData__, interfaceTag__, staAddress__) \
1271     CsrWifiRouterCtrlStaInactiveIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, staAddress__)
1272
1273 /*******************************************************************************
1274
1275   NAME
1276     CsrWifiRouterCtrlSuspendIndSend
1277
1278   DESCRIPTION
1279
1280   PARAMETERS
1281     queue       - Destination Task Queue
1282     clientData  -
1283     hardSuspend -
1284     d3Suspend   -
1285
1286 *******************************************************************************/
1287 #define CsrWifiRouterCtrlSuspendIndCreate(msg__, dst__, src__, clientData__, hardSuspend__, d3Suspend__) \
1288     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlSuspendInd), GFP_KERNEL); \
1289     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_SUSPEND_IND, dst__, src__); \
1290     msg__->clientData = (clientData__); \
1291     msg__->hardSuspend = (hardSuspend__); \
1292     msg__->d3Suspend = (d3Suspend__);
1293
1294 #define CsrWifiRouterCtrlSuspendIndSendTo(dst__, src__, clientData__, hardSuspend__, d3Suspend__) \
1295     { \
1296         CsrWifiRouterCtrlSuspendInd *msg__; \
1297         CsrWifiRouterCtrlSuspendIndCreate(msg__, dst__, src__, clientData__, hardSuspend__, d3Suspend__); \
1298         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1299     }
1300
1301 #define CsrWifiRouterCtrlSuspendIndSend(dst__, clientData__, hardSuspend__, d3Suspend__) \
1302     CsrWifiRouterCtrlSuspendIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, hardSuspend__, d3Suspend__)
1303
1304 /*******************************************************************************
1305
1306   NAME
1307     CsrWifiRouterCtrlSuspendResSend
1308
1309   DESCRIPTION
1310
1311   PARAMETERS
1312     clientData -
1313     status     -
1314
1315 *******************************************************************************/
1316 #define CsrWifiRouterCtrlSuspendResCreate(msg__, dst__, src__, clientData__, status__) \
1317     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlSuspendRes), GFP_KERNEL); \
1318     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_SUSPEND_RES, dst__, src__); \
1319     msg__->clientData = (clientData__); \
1320     msg__->status = (status__);
1321
1322 #define CsrWifiRouterCtrlSuspendResSendTo(dst__, src__, clientData__, status__) \
1323     { \
1324         CsrWifiRouterCtrlSuspendRes *msg__; \
1325         CsrWifiRouterCtrlSuspendResCreate(msg__, dst__, src__, clientData__, status__); \
1326         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1327     }
1328
1329 #define CsrWifiRouterCtrlSuspendResSend(src__, clientData__, status__) \
1330     CsrWifiRouterCtrlSuspendResSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__, status__)
1331
1332 /*******************************************************************************
1333
1334   NAME
1335     CsrWifiRouterCtrlTclasAddReqSend
1336
1337   DESCRIPTION
1338
1339   PARAMETERS
1340     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
1341     interfaceTag -
1342     clientData   -
1343     tclasLength  -
1344     tclas        -
1345
1346 *******************************************************************************/
1347 #define CsrWifiRouterCtrlTclasAddReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, tclasLength__, tclas__) \
1348     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlTclasAddReq), GFP_KERNEL); \
1349     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_TCLAS_ADD_REQ, dst__, src__); \
1350     msg__->interfaceTag = (interfaceTag__); \
1351     msg__->clientData = (clientData__); \
1352     msg__->tclasLength = (tclasLength__); \
1353     msg__->tclas = (tclas__);
1354
1355 #define CsrWifiRouterCtrlTclasAddReqSendTo(dst__, src__, interfaceTag__, clientData__, tclasLength__, tclas__) \
1356     { \
1357         CsrWifiRouterCtrlTclasAddReq *msg__; \
1358         CsrWifiRouterCtrlTclasAddReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, tclasLength__, tclas__); \
1359         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1360     }
1361
1362 #define CsrWifiRouterCtrlTclasAddReqSend(src__, interfaceTag__, clientData__, tclasLength__, tclas__) \
1363     CsrWifiRouterCtrlTclasAddReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, tclasLength__, tclas__)
1364
1365 /*******************************************************************************
1366
1367   NAME
1368     CsrWifiRouterCtrlTclasAddCfmSend
1369
1370   DESCRIPTION
1371
1372   PARAMETERS
1373     queue        - Destination Task Queue
1374     clientData   -
1375     interfaceTag -
1376     status       -
1377
1378 *******************************************************************************/
1379 #define CsrWifiRouterCtrlTclasAddCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__) \
1380     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlTclasAddCfm), GFP_KERNEL); \
1381     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_TCLAS_ADD_CFM, dst__, src__); \
1382     msg__->clientData = (clientData__); \
1383     msg__->interfaceTag = (interfaceTag__); \
1384     msg__->status = (status__);
1385
1386 #define CsrWifiRouterCtrlTclasAddCfmSendTo(dst__, src__, clientData__, interfaceTag__, status__) \
1387     { \
1388         CsrWifiRouterCtrlTclasAddCfm *msg__; \
1389         CsrWifiRouterCtrlTclasAddCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__); \
1390         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1391     }
1392
1393 #define CsrWifiRouterCtrlTclasAddCfmSend(dst__, clientData__, interfaceTag__, status__) \
1394     CsrWifiRouterCtrlTclasAddCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, status__)
1395
1396 /*******************************************************************************
1397
1398   NAME
1399     CsrWifiRouterCtrlTclasDelReqSend
1400
1401   DESCRIPTION
1402
1403   PARAMETERS
1404     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
1405     interfaceTag -
1406     clientData   -
1407     tclasLength  -
1408     tclas        -
1409
1410 *******************************************************************************/
1411 #define CsrWifiRouterCtrlTclasDelReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, tclasLength__, tclas__) \
1412     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlTclasDelReq), GFP_KERNEL); \
1413     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_TCLAS_DEL_REQ, dst__, src__); \
1414     msg__->interfaceTag = (interfaceTag__); \
1415     msg__->clientData = (clientData__); \
1416     msg__->tclasLength = (tclasLength__); \
1417     msg__->tclas = (tclas__);
1418
1419 #define CsrWifiRouterCtrlTclasDelReqSendTo(dst__, src__, interfaceTag__, clientData__, tclasLength__, tclas__) \
1420     { \
1421         CsrWifiRouterCtrlTclasDelReq *msg__; \
1422         CsrWifiRouterCtrlTclasDelReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, tclasLength__, tclas__); \
1423         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1424     }
1425
1426 #define CsrWifiRouterCtrlTclasDelReqSend(src__, interfaceTag__, clientData__, tclasLength__, tclas__) \
1427     CsrWifiRouterCtrlTclasDelReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, tclasLength__, tclas__)
1428
1429 /*******************************************************************************
1430
1431   NAME
1432     CsrWifiRouterCtrlTclasDelCfmSend
1433
1434   DESCRIPTION
1435
1436   PARAMETERS
1437     queue        - Destination Task Queue
1438     clientData   -
1439     interfaceTag -
1440     status       -
1441
1442 *******************************************************************************/
1443 #define CsrWifiRouterCtrlTclasDelCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__) \
1444     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlTclasDelCfm), GFP_KERNEL); \
1445     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_TCLAS_DEL_CFM, dst__, src__); \
1446     msg__->clientData = (clientData__); \
1447     msg__->interfaceTag = (interfaceTag__); \
1448     msg__->status = (status__);
1449
1450 #define CsrWifiRouterCtrlTclasDelCfmSendTo(dst__, src__, clientData__, interfaceTag__, status__) \
1451     { \
1452         CsrWifiRouterCtrlTclasDelCfm *msg__; \
1453         CsrWifiRouterCtrlTclasDelCfmCreate(msg__, dst__, src__, clientData__, interfaceTag__, status__); \
1454         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1455     }
1456
1457 #define CsrWifiRouterCtrlTclasDelCfmSend(dst__, clientData__, interfaceTag__, status__) \
1458     CsrWifiRouterCtrlTclasDelCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, status__)
1459
1460 /*******************************************************************************
1461
1462   NAME
1463     CsrWifiRouterCtrlTrafficClassificationReqSend
1464
1465   DESCRIPTION
1466
1467   PARAMETERS
1468     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
1469     interfaceTag -
1470     clientData   -
1471     trafficType  -
1472     period       -
1473
1474 *******************************************************************************/
1475 #define CsrWifiRouterCtrlTrafficClassificationReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, trafficType__, period__) \
1476     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlTrafficClassificationReq), GFP_KERNEL); \
1477     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_TRAFFIC_CLASSIFICATION_REQ, dst__, src__); \
1478     msg__->interfaceTag = (interfaceTag__); \
1479     msg__->clientData = (clientData__); \
1480     msg__->trafficType = (trafficType__); \
1481     msg__->period = (period__);
1482
1483 #define CsrWifiRouterCtrlTrafficClassificationReqSendTo(dst__, src__, interfaceTag__, clientData__, trafficType__, period__) \
1484     { \
1485         CsrWifiRouterCtrlTrafficClassificationReq *msg__; \
1486         CsrWifiRouterCtrlTrafficClassificationReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, trafficType__, period__); \
1487         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1488     }
1489
1490 #define CsrWifiRouterCtrlTrafficClassificationReqSend(src__, interfaceTag__, clientData__, trafficType__, period__) \
1491     CsrWifiRouterCtrlTrafficClassificationReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, trafficType__, period__)
1492
1493 /*******************************************************************************
1494
1495   NAME
1496     CsrWifiRouterCtrlTrafficConfigReqSend
1497
1498   DESCRIPTION
1499
1500   PARAMETERS
1501     queue             - Message Source Task Queue (Cfm's will be sent to this Queue)
1502     interfaceTag      -
1503     clientData        -
1504     trafficConfigType -
1505     config            -
1506
1507 *******************************************************************************/
1508 #define CsrWifiRouterCtrlTrafficConfigReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, trafficConfigType__, config__) \
1509     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlTrafficConfigReq), GFP_KERNEL); \
1510     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_TRAFFIC_CONFIG_REQ, dst__, src__); \
1511     msg__->interfaceTag = (interfaceTag__); \
1512     msg__->clientData = (clientData__); \
1513     msg__->trafficConfigType = (trafficConfigType__); \
1514     msg__->config = (config__);
1515
1516 #define CsrWifiRouterCtrlTrafficConfigReqSendTo(dst__, src__, interfaceTag__, clientData__, trafficConfigType__, config__) \
1517     { \
1518         CsrWifiRouterCtrlTrafficConfigReq *msg__; \
1519         CsrWifiRouterCtrlTrafficConfigReqCreate(msg__, dst__, src__, interfaceTag__, clientData__, trafficConfigType__, config__); \
1520         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1521     }
1522
1523 #define CsrWifiRouterCtrlTrafficConfigReqSend(src__, interfaceTag__, clientData__, trafficConfigType__, config__) \
1524     CsrWifiRouterCtrlTrafficConfigReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, clientData__, trafficConfigType__, config__)
1525
1526 /*******************************************************************************
1527
1528   NAME
1529     CsrWifiRouterCtrlTrafficProtocolIndSend
1530
1531   DESCRIPTION
1532
1533   PARAMETERS
1534     queue        - Destination Task Queue
1535     clientData   -
1536     interfaceTag -
1537     packetType   -
1538     direction    -
1539     srcAddress   -
1540
1541 *******************************************************************************/
1542 #define CsrWifiRouterCtrlTrafficProtocolIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, packetType__, direction__, srcAddress__) \
1543     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlTrafficProtocolInd), GFP_KERNEL); \
1544     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_TRAFFIC_PROTOCOL_IND, dst__, src__); \
1545     msg__->clientData = (clientData__); \
1546     msg__->interfaceTag = (interfaceTag__); \
1547     msg__->packetType = (packetType__); \
1548     msg__->direction = (direction__); \
1549     msg__->srcAddress = (srcAddress__);
1550
1551 #define CsrWifiRouterCtrlTrafficProtocolIndSendTo(dst__, src__, clientData__, interfaceTag__, packetType__, direction__, srcAddress__) \
1552     { \
1553         CsrWifiRouterCtrlTrafficProtocolInd *msg__; \
1554         CsrWifiRouterCtrlTrafficProtocolIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, packetType__, direction__, srcAddress__); \
1555         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1556     }
1557
1558 #define CsrWifiRouterCtrlTrafficProtocolIndSend(dst__, clientData__, interfaceTag__, packetType__, direction__, srcAddress__) \
1559     CsrWifiRouterCtrlTrafficProtocolIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, packetType__, direction__, srcAddress__)
1560
1561 /*******************************************************************************
1562
1563   NAME
1564     CsrWifiRouterCtrlTrafficSampleIndSend
1565
1566   DESCRIPTION
1567
1568   PARAMETERS
1569     queue        - Destination Task Queue
1570     clientData   -
1571     interfaceTag -
1572     stats        -
1573
1574 *******************************************************************************/
1575 #define CsrWifiRouterCtrlTrafficSampleIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, stats__) \
1576     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlTrafficSampleInd), GFP_KERNEL); \
1577     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_TRAFFIC_SAMPLE_IND, dst__, src__); \
1578     msg__->clientData = (clientData__); \
1579     msg__->interfaceTag = (interfaceTag__); \
1580     msg__->stats = (stats__);
1581
1582 #define CsrWifiRouterCtrlTrafficSampleIndSendTo(dst__, src__, clientData__, interfaceTag__, stats__) \
1583     { \
1584         CsrWifiRouterCtrlTrafficSampleInd *msg__; \
1585         CsrWifiRouterCtrlTrafficSampleIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, stats__); \
1586         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1587     }
1588
1589 #define CsrWifiRouterCtrlTrafficSampleIndSend(dst__, clientData__, interfaceTag__, stats__) \
1590     CsrWifiRouterCtrlTrafficSampleIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, stats__)
1591
1592 /*******************************************************************************
1593
1594   NAME
1595     CsrWifiRouterCtrlUnexpectedFrameIndSend
1596
1597   DESCRIPTION
1598
1599   PARAMETERS
1600     queue          - Destination Task Queue
1601     clientData     -
1602     interfaceTag   -
1603     peerMacAddress -
1604
1605 *******************************************************************************/
1606 #define CsrWifiRouterCtrlUnexpectedFrameIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__) \
1607     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlUnexpectedFrameInd), GFP_KERNEL); \
1608     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_UNEXPECTED_FRAME_IND, dst__, src__); \
1609     msg__->clientData = (clientData__); \
1610     msg__->interfaceTag = (interfaceTag__); \
1611     msg__->peerMacAddress = (peerMacAddress__);
1612
1613 #define CsrWifiRouterCtrlUnexpectedFrameIndSendTo(dst__, src__, clientData__, interfaceTag__, peerMacAddress__) \
1614     { \
1615         CsrWifiRouterCtrlUnexpectedFrameInd *msg__; \
1616         CsrWifiRouterCtrlUnexpectedFrameIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, peerMacAddress__); \
1617         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1618     }
1619
1620 #define CsrWifiRouterCtrlUnexpectedFrameIndSend(dst__, clientData__, interfaceTag__, peerMacAddress__) \
1621     CsrWifiRouterCtrlUnexpectedFrameIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, peerMacAddress__)
1622
1623 /*******************************************************************************
1624
1625   NAME
1626     CsrWifiRouterCtrlWapiFilterReqSend
1627
1628   DESCRIPTION
1629
1630   PARAMETERS
1631     queue           - Message Source Task Queue (Cfm's will be sent to this Queue)
1632     interfaceTag    -
1633     isWapiConnected -
1634
1635 *******************************************************************************/
1636 #define CsrWifiRouterCtrlWapiFilterReqCreate(msg__, dst__, src__, interfaceTag__, isWapiConnected__) \
1637     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWapiFilterReq), GFP_KERNEL); \
1638     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WAPI_FILTER_REQ, dst__, src__); \
1639     msg__->interfaceTag = (interfaceTag__); \
1640     msg__->isWapiConnected = (isWapiConnected__);
1641
1642 #define CsrWifiRouterCtrlWapiFilterReqSendTo(dst__, src__, interfaceTag__, isWapiConnected__) \
1643     { \
1644         CsrWifiRouterCtrlWapiFilterReq *msg__; \
1645         CsrWifiRouterCtrlWapiFilterReqCreate(msg__, dst__, src__, interfaceTag__, isWapiConnected__); \
1646         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1647     }
1648
1649 #define CsrWifiRouterCtrlWapiFilterReqSend(src__, interfaceTag__, isWapiConnected__) \
1650     CsrWifiRouterCtrlWapiFilterReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, isWapiConnected__)
1651
1652 /*******************************************************************************
1653
1654   NAME
1655     CsrWifiRouterCtrlWapiMulticastFilterReqSend
1656
1657   DESCRIPTION
1658
1659   PARAMETERS
1660     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
1661     interfaceTag -
1662     status       -
1663
1664 *******************************************************************************/
1665 #define CsrWifiRouterCtrlWapiMulticastFilterReqCreate(msg__, dst__, src__, interfaceTag__, status__) \
1666     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWapiMulticastFilterReq), GFP_KERNEL); \
1667     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WAPI_MULTICAST_FILTER_REQ, dst__, src__); \
1668     msg__->interfaceTag = (interfaceTag__); \
1669     msg__->status = (status__);
1670
1671 #define CsrWifiRouterCtrlWapiMulticastFilterReqSendTo(dst__, src__, interfaceTag__, status__) \
1672     { \
1673         CsrWifiRouterCtrlWapiMulticastFilterReq *msg__; \
1674         CsrWifiRouterCtrlWapiMulticastFilterReqCreate(msg__, dst__, src__, interfaceTag__, status__); \
1675         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1676     }
1677
1678 #define CsrWifiRouterCtrlWapiMulticastFilterReqSend(src__, interfaceTag__, status__) \
1679     CsrWifiRouterCtrlWapiMulticastFilterReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, status__)
1680
1681 /*******************************************************************************
1682
1683   NAME
1684     CsrWifiRouterCtrlWapiRxMicCheckIndSend
1685
1686   DESCRIPTION
1687
1688   PARAMETERS
1689     queue        - Destination Task Queue
1690     clientData   -
1691     interfaceTag -
1692     signalLength -
1693     signal       -
1694     dataLength   -
1695     data         -
1696
1697 *******************************************************************************/
1698 #define CsrWifiRouterCtrlWapiRxMicCheckIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, signalLength__, signal__, dataLength__, data__) \
1699     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWapiRxMicCheckInd), GFP_KERNEL); \
1700     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WAPI_RX_MIC_CHECK_IND, dst__, src__); \
1701     msg__->clientData = (clientData__); \
1702     msg__->interfaceTag = (interfaceTag__); \
1703     msg__->signalLength = (signalLength__); \
1704     msg__->signal = (signal__); \
1705     msg__->dataLength = (dataLength__); \
1706     msg__->data = (data__);
1707
1708 #define CsrWifiRouterCtrlWapiRxMicCheckIndSendTo(dst__, src__, clientData__, interfaceTag__, signalLength__, signal__, dataLength__, data__) \
1709     { \
1710         CsrWifiRouterCtrlWapiRxMicCheckInd *msg__; \
1711         CsrWifiRouterCtrlWapiRxMicCheckIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, signalLength__, signal__, dataLength__, data__); \
1712         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1713     }
1714
1715 #define CsrWifiRouterCtrlWapiRxMicCheckIndSend(dst__, clientData__, interfaceTag__, signalLength__, signal__, dataLength__, data__) \
1716     CsrWifiRouterCtrlWapiRxMicCheckIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, signalLength__, signal__, dataLength__, data__)
1717
1718 /*******************************************************************************
1719
1720   NAME
1721     CsrWifiRouterCtrlWapiRxPktReqSend
1722
1723   DESCRIPTION
1724
1725   PARAMETERS
1726     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
1727     interfaceTag -
1728     signalLength -
1729     signal       -
1730     dataLength   -
1731     data         -
1732
1733 *******************************************************************************/
1734 #define CsrWifiRouterCtrlWapiRxPktReqCreate(msg__, dst__, src__, interfaceTag__, signalLength__, signal__, dataLength__, data__) \
1735     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWapiRxPktReq), GFP_KERNEL); \
1736     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WAPI_RX_PKT_REQ, dst__, src__); \
1737     msg__->interfaceTag = (interfaceTag__); \
1738     msg__->signalLength = (signalLength__); \
1739     msg__->signal = (signal__); \
1740     msg__->dataLength = (dataLength__); \
1741     msg__->data = (data__);
1742
1743 #define CsrWifiRouterCtrlWapiRxPktReqSendTo(dst__, src__, interfaceTag__, signalLength__, signal__, dataLength__, data__) \
1744     { \
1745         CsrWifiRouterCtrlWapiRxPktReq *msg__; \
1746         CsrWifiRouterCtrlWapiRxPktReqCreate(msg__, dst__, src__, interfaceTag__, signalLength__, signal__, dataLength__, data__); \
1747         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1748     }
1749
1750 #define CsrWifiRouterCtrlWapiRxPktReqSend(src__, interfaceTag__, signalLength__, signal__, dataLength__, data__) \
1751     CsrWifiRouterCtrlWapiRxPktReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, signalLength__, signal__, dataLength__, data__)
1752
1753 /*******************************************************************************
1754
1755   NAME
1756     CsrWifiRouterCtrlWapiUnicastFilterReqSend
1757
1758   DESCRIPTION
1759
1760   PARAMETERS
1761     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
1762     interfaceTag -
1763     status       -
1764
1765 *******************************************************************************/
1766 #define CsrWifiRouterCtrlWapiUnicastFilterReqCreate(msg__, dst__, src__, interfaceTag__, status__) \
1767     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWapiUnicastFilterReq), GFP_KERNEL); \
1768     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WAPI_UNICAST_FILTER_REQ, dst__, src__); \
1769     msg__->interfaceTag = (interfaceTag__); \
1770     msg__->status = (status__);
1771
1772 #define CsrWifiRouterCtrlWapiUnicastFilterReqSendTo(dst__, src__, interfaceTag__, status__) \
1773     { \
1774         CsrWifiRouterCtrlWapiUnicastFilterReq *msg__; \
1775         CsrWifiRouterCtrlWapiUnicastFilterReqCreate(msg__, dst__, src__, interfaceTag__, status__); \
1776         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1777     }
1778
1779 #define CsrWifiRouterCtrlWapiUnicastFilterReqSend(src__, interfaceTag__, status__) \
1780     CsrWifiRouterCtrlWapiUnicastFilterReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, status__)
1781
1782 /*******************************************************************************
1783
1784   NAME
1785     CsrWifiRouterCtrlWapiUnicastTxEncryptIndSend
1786
1787   DESCRIPTION
1788
1789   PARAMETERS
1790     queue        - Destination Task Queue
1791     clientData   -
1792     interfaceTag -
1793     dataLength   -
1794     data         -
1795
1796 *******************************************************************************/
1797 #define CsrWifiRouterCtrlWapiUnicastTxEncryptIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, dataLength__, data__) \
1798     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWapiUnicastTxEncryptInd), GFP_KERNEL); \
1799     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WAPI_UNICAST_TX_ENCRYPT_IND, dst__, src__); \
1800     msg__->clientData = (clientData__); \
1801     msg__->interfaceTag = (interfaceTag__); \
1802     msg__->dataLength = (dataLength__); \
1803     msg__->data = (data__);
1804
1805 #define CsrWifiRouterCtrlWapiUnicastTxEncryptIndSendTo(dst__, src__, clientData__, interfaceTag__, dataLength__, data__) \
1806     { \
1807         CsrWifiRouterCtrlWapiUnicastTxEncryptInd *msg__; \
1808         CsrWifiRouterCtrlWapiUnicastTxEncryptIndCreate(msg__, dst__, src__, clientData__, interfaceTag__, dataLength__, data__); \
1809         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1810     }
1811
1812 #define CsrWifiRouterCtrlWapiUnicastTxEncryptIndSend(dst__, clientData__, interfaceTag__, dataLength__, data__) \
1813     CsrWifiRouterCtrlWapiUnicastTxEncryptIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, interfaceTag__, dataLength__, data__)
1814
1815 /*******************************************************************************
1816
1817   NAME
1818     CsrWifiRouterCtrlWapiUnicastTxPktReqSend
1819
1820   DESCRIPTION
1821
1822   PARAMETERS
1823     queue        - Message Source Task Queue (Cfm's will be sent to this Queue)
1824     interfaceTag -
1825     dataLength   -
1826     data         -
1827
1828 *******************************************************************************/
1829 #define CsrWifiRouterCtrlWapiUnicastTxPktReqCreate(msg__, dst__, src__, interfaceTag__, dataLength__, data__) \
1830     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWapiUnicastTxPktReq), GFP_KERNEL); \
1831     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WAPI_UNICAST_TX_PKT_REQ, dst__, src__); \
1832     msg__->interfaceTag = (interfaceTag__); \
1833     msg__->dataLength = (dataLength__); \
1834     msg__->data = (data__);
1835
1836 #define CsrWifiRouterCtrlWapiUnicastTxPktReqSendTo(dst__, src__, interfaceTag__, dataLength__, data__) \
1837     { \
1838         CsrWifiRouterCtrlWapiUnicastTxPktReq *msg__; \
1839         CsrWifiRouterCtrlWapiUnicastTxPktReqCreate(msg__, dst__, src__, interfaceTag__, dataLength__, data__); \
1840         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1841     }
1842
1843 #define CsrWifiRouterCtrlWapiUnicastTxPktReqSend(src__, interfaceTag__, dataLength__, data__) \
1844     CsrWifiRouterCtrlWapiUnicastTxPktReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, interfaceTag__, dataLength__, data__)
1845
1846 /*******************************************************************************
1847
1848   NAME
1849     CsrWifiRouterCtrlWifiOffReqSend
1850
1851   DESCRIPTION
1852
1853   PARAMETERS
1854     queue      - Message Source Task Queue (Cfm's will be sent to this Queue)
1855     clientData -
1856
1857 *******************************************************************************/
1858 #define CsrWifiRouterCtrlWifiOffReqCreate(msg__, dst__, src__, clientData__) \
1859     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWifiOffReq), GFP_KERNEL); \
1860     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WIFI_OFF_REQ, dst__, src__); \
1861     msg__->clientData = (clientData__);
1862
1863 #define CsrWifiRouterCtrlWifiOffReqSendTo(dst__, src__, clientData__) \
1864     { \
1865         CsrWifiRouterCtrlWifiOffReq *msg__; \
1866         CsrWifiRouterCtrlWifiOffReqCreate(msg__, dst__, src__, clientData__); \
1867         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1868     }
1869
1870 #define CsrWifiRouterCtrlWifiOffReqSend(src__, clientData__) \
1871     CsrWifiRouterCtrlWifiOffReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__)
1872
1873 /*******************************************************************************
1874
1875   NAME
1876     CsrWifiRouterCtrlWifiOffIndSend
1877
1878   DESCRIPTION
1879
1880   PARAMETERS
1881     queue             - Destination Task Queue
1882     clientData        -
1883     controlIndication -
1884
1885 *******************************************************************************/
1886 #define CsrWifiRouterCtrlWifiOffIndCreate(msg__, dst__, src__, clientData__, controlIndication__) \
1887     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWifiOffInd), GFP_KERNEL); \
1888     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WIFI_OFF_IND, dst__, src__); \
1889     msg__->clientData = (clientData__); \
1890     msg__->controlIndication = (controlIndication__);
1891
1892 #define CsrWifiRouterCtrlWifiOffIndSendTo(dst__, src__, clientData__, controlIndication__) \
1893     { \
1894         CsrWifiRouterCtrlWifiOffInd *msg__; \
1895         CsrWifiRouterCtrlWifiOffIndCreate(msg__, dst__, src__, clientData__, controlIndication__); \
1896         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1897     }
1898
1899 #define CsrWifiRouterCtrlWifiOffIndSend(dst__, clientData__, controlIndication__) \
1900     CsrWifiRouterCtrlWifiOffIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, controlIndication__)
1901
1902 /*******************************************************************************
1903
1904   NAME
1905     CsrWifiRouterCtrlWifiOffResSend
1906
1907   DESCRIPTION
1908
1909   PARAMETERS
1910     clientData -
1911
1912 *******************************************************************************/
1913 #define CsrWifiRouterCtrlWifiOffResCreate(msg__, dst__, src__, clientData__) \
1914     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWifiOffRes), GFP_KERNEL); \
1915     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WIFI_OFF_RES, dst__, src__); \
1916     msg__->clientData = (clientData__);
1917
1918 #define CsrWifiRouterCtrlWifiOffResSendTo(dst__, src__, clientData__) \
1919     { \
1920         CsrWifiRouterCtrlWifiOffRes *msg__; \
1921         CsrWifiRouterCtrlWifiOffResCreate(msg__, dst__, src__, clientData__); \
1922         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1923     }
1924
1925 #define CsrWifiRouterCtrlWifiOffResSend(src__, clientData__) \
1926     CsrWifiRouterCtrlWifiOffResSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__)
1927
1928 /*******************************************************************************
1929
1930   NAME
1931     CsrWifiRouterCtrlWifiOffCfmSend
1932
1933   DESCRIPTION
1934
1935   PARAMETERS
1936     queue      - Destination Task Queue
1937     clientData -
1938
1939 *******************************************************************************/
1940 #define CsrWifiRouterCtrlWifiOffCfmCreate(msg__, dst__, src__, clientData__) \
1941     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWifiOffCfm), GFP_KERNEL); \
1942     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WIFI_OFF_CFM, dst__, src__); \
1943     msg__->clientData = (clientData__);
1944
1945 #define CsrWifiRouterCtrlWifiOffCfmSendTo(dst__, src__, clientData__) \
1946     { \
1947         CsrWifiRouterCtrlWifiOffCfm *msg__; \
1948         CsrWifiRouterCtrlWifiOffCfmCreate(msg__, dst__, src__, clientData__); \
1949         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1950     }
1951
1952 #define CsrWifiRouterCtrlWifiOffCfmSend(dst__, clientData__) \
1953     CsrWifiRouterCtrlWifiOffCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__)
1954
1955 /*******************************************************************************
1956
1957   NAME
1958     CsrWifiRouterCtrlWifiOnReqSend
1959
1960   DESCRIPTION
1961
1962   PARAMETERS
1963     queue      - Message Source Task Queue (Cfm's will be sent to this Queue)
1964     clientData -
1965     dataLength - Number of bytes in the buffer pointed to by 'data'
1966     data       - Pointer to the buffer containing 'dataLength' bytes
1967
1968 *******************************************************************************/
1969 #define CsrWifiRouterCtrlWifiOnReqCreate(msg__, dst__, src__, clientData__, dataLength__, data__) \
1970     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWifiOnReq), GFP_KERNEL); \
1971     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WIFI_ON_REQ, dst__, src__); \
1972     msg__->clientData = (clientData__); \
1973     msg__->dataLength = (dataLength__); \
1974     msg__->data = (data__);
1975
1976 #define CsrWifiRouterCtrlWifiOnReqSendTo(dst__, src__, clientData__, dataLength__, data__) \
1977     { \
1978         CsrWifiRouterCtrlWifiOnReq *msg__; \
1979         CsrWifiRouterCtrlWifiOnReqCreate(msg__, dst__, src__, clientData__, dataLength__, data__); \
1980         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
1981     }
1982
1983 #define CsrWifiRouterCtrlWifiOnReqSend(src__, clientData__, dataLength__, data__) \
1984     CsrWifiRouterCtrlWifiOnReqSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__, dataLength__, data__)
1985
1986 /*******************************************************************************
1987
1988   NAME
1989     CsrWifiRouterCtrlWifiOnIndSend
1990
1991   DESCRIPTION
1992
1993   PARAMETERS
1994     queue      - Destination Task Queue
1995     clientData -
1996     status     -
1997     versions   -
1998
1999 *******************************************************************************/
2000 #define CsrWifiRouterCtrlWifiOnIndCreate(msg__, dst__, src__, clientData__, status__, versions__) \
2001     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWifiOnInd), GFP_KERNEL); \
2002     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WIFI_ON_IND, dst__, src__); \
2003     msg__->clientData = (clientData__); \
2004     msg__->status = (status__); \
2005     msg__->versions = (versions__);
2006
2007 #define CsrWifiRouterCtrlWifiOnIndSendTo(dst__, src__, clientData__, status__, versions__) \
2008     { \
2009         CsrWifiRouterCtrlWifiOnInd *msg__; \
2010         CsrWifiRouterCtrlWifiOnIndCreate(msg__, dst__, src__, clientData__, status__, versions__); \
2011         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
2012     }
2013
2014 #define CsrWifiRouterCtrlWifiOnIndSend(dst__, clientData__, status__, versions__) \
2015     CsrWifiRouterCtrlWifiOnIndSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, status__, versions__)
2016
2017 /*******************************************************************************
2018
2019   NAME
2020     CsrWifiRouterCtrlWifiOnResSend
2021
2022   DESCRIPTION
2023
2024   PARAMETERS
2025     clientData          -
2026     status              -
2027     numInterfaceAddress -
2028     stationMacAddress   - array size 1 MUST match CSR_WIFI_NUM_INTERFACES
2029     smeVersions         -
2030     scheduledInterrupt  -
2031
2032 *******************************************************************************/
2033 #define CsrWifiRouterCtrlWifiOnResCreate(msg__, dst__, src__, clientData__, status__, numInterfaceAddress__, stationMacAddress__, smeVersions__, scheduledInterrupt__) \
2034     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWifiOnRes), GFP_KERNEL); \
2035     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WIFI_ON_RES, dst__, src__); \
2036     msg__->clientData = (clientData__); \
2037     msg__->status = (status__); \
2038     msg__->numInterfaceAddress = (numInterfaceAddress__); \
2039     memcpy(msg__->stationMacAddress, (stationMacAddress__), sizeof(CsrWifiMacAddress) * 2); \
2040     msg__->smeVersions = (smeVersions__); \
2041     msg__->scheduledInterrupt = (scheduledInterrupt__);
2042
2043 #define CsrWifiRouterCtrlWifiOnResSendTo(dst__, src__, clientData__, status__, numInterfaceAddress__, stationMacAddress__, smeVersions__, scheduledInterrupt__) \
2044     { \
2045         CsrWifiRouterCtrlWifiOnRes *msg__; \
2046         CsrWifiRouterCtrlWifiOnResCreate(msg__, dst__, src__, clientData__, status__, numInterfaceAddress__, stationMacAddress__, smeVersions__, scheduledInterrupt__); \
2047         CsrMsgTransport(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
2048     }
2049
2050 #define CsrWifiRouterCtrlWifiOnResSend(src__, clientData__, status__, numInterfaceAddress__, stationMacAddress__, smeVersions__, scheduledInterrupt__) \
2051     CsrWifiRouterCtrlWifiOnResSendTo(CSR_WIFI_ROUTER_IFACEQUEUE, src__, clientData__, status__, numInterfaceAddress__, stationMacAddress__, smeVersions__, scheduledInterrupt__)
2052
2053 /*******************************************************************************
2054
2055   NAME
2056     CsrWifiRouterCtrlWifiOnCfmSend
2057
2058   DESCRIPTION
2059
2060   PARAMETERS
2061     queue      - Destination Task Queue
2062     clientData -
2063     status     -
2064
2065 *******************************************************************************/
2066 #define CsrWifiRouterCtrlWifiOnCfmCreate(msg__, dst__, src__, clientData__, status__) \
2067     msg__ = kmalloc(sizeof(CsrWifiRouterCtrlWifiOnCfm), GFP_KERNEL); \
2068     CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_ROUTER_CTRL_PRIM, CSR_WIFI_ROUTER_CTRL_WIFI_ON_CFM, dst__, src__); \
2069     msg__->clientData = (clientData__); \
2070     msg__->status = (status__);
2071
2072 #define CsrWifiRouterCtrlWifiOnCfmSendTo(dst__, src__, clientData__, status__) \
2073     { \
2074         CsrWifiRouterCtrlWifiOnCfm *msg__; \
2075         CsrWifiRouterCtrlWifiOnCfmCreate(msg__, dst__, src__, clientData__, status__); \
2076         CsrSchedMessagePut(dst__, CSR_WIFI_ROUTER_CTRL_PRIM, msg__); \
2077     }
2078
2079 #define CsrWifiRouterCtrlWifiOnCfmSend(dst__, clientData__, status__) \
2080     CsrWifiRouterCtrlWifiOnCfmSendTo(dst__, CSR_WIFI_ROUTER_IFACEQUEUE, clientData__, status__)
2081
2082 #endif /* CSR_WIFI_ROUTER_CTRL_LIB_H__ */