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