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