ARM: AM335x: Fix warning in timer.c
[linux-2.6/btrfs-unstable.git] / drivers / staging / csr / csr_wifi_sme_lib.h
blob53cf1268286e521665204e86315bbc456a4a20c6
1 /*****************************************************************************
3 (c) Cambridge Silicon Radio Limited 2012
4 All rights reserved and confidential information of CSR
6 Refer to LICENSE.txt included with this source for details
7 on the license terms.
9 *****************************************************************************/
11 /* Note: this is an auto-generated file. */
13 #ifndef CSR_WIFI_SME_LIB_H__
14 #define CSR_WIFI_SME_LIB_H__
16 #include "csr_sched.h"
17 #include "csr_macro.h"
18 #include "csr_msg_transport.h"
20 #include "csr_wifi_lib.h"
22 #include "csr_wifi_sme_prim.h"
23 #include "csr_wifi_sme_task.h"
26 #ifndef CSR_WIFI_SME_LIB_DESTINATION_QUEUE
27 # ifdef CSR_WIFI_NME_ENABLE
28 # include "csr_wifi_nme_task.h"
29 # define CSR_WIFI_SME_LIB_DESTINATION_QUEUE CSR_WIFI_NME_IFACEQUEUE
30 # else
31 # define CSR_WIFI_SME_LIB_DESTINATION_QUEUE CSR_WIFI_SME_IFACEQUEUE
32 # endif
33 #endif
35 /*----------------------------------------------------------------------------*
36 * CsrWifiSmeFreeUpstreamMessageContents
38 * DESCRIPTION
39 * Free the allocated memory in a CSR_WIFI_SME upstream message. Does not
40 * free the message itself, and can only be used for upstream messages.
42 * PARAMETERS
43 * Deallocates the resources in a CSR_WIFI_SME upstream message
44 *----------------------------------------------------------------------------*/
45 void CsrWifiSmeFreeUpstreamMessageContents(u16 eventClass, void *message);
47 /*----------------------------------------------------------------------------*
48 * CsrWifiSmeFreeDownstreamMessageContents
50 * DESCRIPTION
51 * Free the allocated memory in a CSR_WIFI_SME downstream message. Does not
52 * free the message itself, and can only be used for downstream messages.
54 * PARAMETERS
55 * Deallocates the resources in a CSR_WIFI_SME downstream message
56 *----------------------------------------------------------------------------*/
57 void CsrWifiSmeFreeDownstreamMessageContents(u16 eventClass, void *message);
59 /*----------------------------------------------------------------------------*
60 * Enum to string functions
61 *----------------------------------------------------------------------------*/
62 const char* CsrWifiSme80211NetworkTypeToString(CsrWifiSme80211NetworkType value);
63 const char* CsrWifiSme80211PrivacyModeToString(CsrWifiSme80211PrivacyMode value);
64 const char* CsrWifiSme80211dTrustLevelToString(CsrWifiSme80211dTrustLevel value);
65 const char* CsrWifiSmeAmpStatusToString(CsrWifiSmeAmpStatus value);
66 const char* CsrWifiSmeAuthModeToString(CsrWifiSmeAuthMode value);
67 const char* CsrWifiSmeBasicUsabilityToString(CsrWifiSmeBasicUsability value);
68 const char* CsrWifiSmeBssTypeToString(CsrWifiSmeBssType value);
69 const char* CsrWifiSmeCoexSchemeToString(CsrWifiSmeCoexScheme value);
70 const char* CsrWifiSmeControlIndicationToString(CsrWifiSmeControlIndication value);
71 const char* CsrWifiSmeCtsProtectionTypeToString(CsrWifiSmeCtsProtectionType value);
72 const char* CsrWifiSmeD3AutoScanModeToString(CsrWifiSmeD3AutoScanMode value);
73 const char* CsrWifiSmeEncryptionToString(CsrWifiSmeEncryption value);
74 const char* CsrWifiSmeFirmwareDriverInterfaceToString(CsrWifiSmeFirmwareDriverInterface value);
75 const char* CsrWifiSmeHostPowerModeToString(CsrWifiSmeHostPowerMode value);
76 const char* CsrWifiSmeIEEE80211ReasonToString(CsrWifiSmeIEEE80211Reason value);
77 const char* CsrWifiSmeIEEE80211ResultToString(CsrWifiSmeIEEE80211Result value);
78 const char* CsrWifiSmeIndicationsToString(CsrWifiSmeIndications value);
79 const char* CsrWifiSmeKeyTypeToString(CsrWifiSmeKeyType value);
80 const char* CsrWifiSmeListActionToString(CsrWifiSmeListAction value);
81 const char* CsrWifiSmeMediaStatusToString(CsrWifiSmeMediaStatus value);
82 const char* CsrWifiSmeP2pCapabilityToString(CsrWifiSmeP2pCapability value);
83 const char* CsrWifiSmeP2pGroupCapabilityToString(CsrWifiSmeP2pGroupCapability value);
84 const char* CsrWifiSmeP2pNoaConfigMethodToString(CsrWifiSmeP2pNoaConfigMethod value);
85 const char* CsrWifiSmeP2pRoleToString(CsrWifiSmeP2pRole value);
86 const char* CsrWifiSmeP2pStatusToString(CsrWifiSmeP2pStatus value);
87 const char* CsrWifiSmePacketFilterModeToString(CsrWifiSmePacketFilterMode value);
88 const char* CsrWifiSmePowerSaveLevelToString(CsrWifiSmePowerSaveLevel value);
89 const char* CsrWifiSmePreambleTypeToString(CsrWifiSmePreambleType value);
90 const char* CsrWifiSmeRadioIFToString(CsrWifiSmeRadioIF value);
91 const char* CsrWifiSmeRegulatoryDomainToString(CsrWifiSmeRegulatoryDomain value);
92 const char* CsrWifiSmeRoamReasonToString(CsrWifiSmeRoamReason value);
93 const char* CsrWifiSmeScanTypeToString(CsrWifiSmeScanType value);
94 const char* CsrWifiSmeTrafficTypeToString(CsrWifiSmeTrafficType value);
95 const char* CsrWifiSmeTspecCtrlToString(CsrWifiSmeTspecCtrl value);
96 const char* CsrWifiSmeTspecResultCodeToString(CsrWifiSmeTspecResultCode value);
97 const char* CsrWifiSmeWepAuthModeToString(CsrWifiSmeWepAuthMode value);
98 const char* CsrWifiSmeWepCredentialTypeToString(CsrWifiSmeWepCredentialType value);
99 const char* CsrWifiSmeWmmModeToString(CsrWifiSmeWmmMode value);
100 const char* CsrWifiSmeWmmQosInfoToString(CsrWifiSmeWmmQosInfo value);
101 const char* CsrWifiSmeWpsConfigTypeToString(CsrWifiSmeWpsConfigType value);
102 const char* CsrWifiSmeWpsDeviceCategoryToString(CsrWifiSmeWpsDeviceCategory value);
103 const char* CsrWifiSmeWpsDeviceSubCategoryToString(CsrWifiSmeWpsDeviceSubCategory value);
104 const char* CsrWifiSmeWpsDpidToString(CsrWifiSmeWpsDpid value);
105 const char* CsrWifiSmeWpsRegistrationToString(CsrWifiSmeWpsRegistration value);
108 /*----------------------------------------------------------------------------*
109 * CsrPrim Type toString function.
110 * Converts a message type to the String name of the Message
111 *----------------------------------------------------------------------------*/
112 const char* CsrWifiSmePrimTypeToString(CsrPrim msgType);
114 /*----------------------------------------------------------------------------*
115 * Lookup arrays for PrimType name Strings
116 *----------------------------------------------------------------------------*/
117 extern const char *CsrWifiSmeUpstreamPrimNames[CSR_WIFI_SME_PRIM_UPSTREAM_COUNT];
118 extern const char *CsrWifiSmeDownstreamPrimNames[CSR_WIFI_SME_PRIM_DOWNSTREAM_COUNT];
120 /*******************************************************************************
122 NAME
123 CsrWifiSmeActivateReqSend
125 DESCRIPTION
126 The WMA sends this primitive to activate the SME.
127 The WMA must activate the SME before it can send any other primitive.
129 PARAMETERS
130 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
132 *******************************************************************************/
133 #define CsrWifiSmeActivateReqCreate(msg__, dst__, src__) \
134 msg__ = kmalloc(sizeof(CsrWifiSmeActivateReq), GFP_KERNEL); \
135 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ACTIVATE_REQ, dst__, src__);
137 #define CsrWifiSmeActivateReqSendTo(dst__, src__) \
139 CsrWifiSmeActivateReq *msg__; \
140 CsrWifiSmeActivateReqCreate(msg__, dst__, src__); \
141 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
144 #define CsrWifiSmeActivateReqSend(src__) \
145 CsrWifiSmeActivateReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
147 /*******************************************************************************
149 NAME
150 CsrWifiSmeActivateCfmSend
152 DESCRIPTION
153 The SME sends this primitive when the activation is complete.
155 PARAMETERS
156 queue - Destination Task Queue
157 status - Reports the result of the request
159 *******************************************************************************/
160 #define CsrWifiSmeActivateCfmCreate(msg__, dst__, src__, status__) \
161 msg__ = kmalloc(sizeof(CsrWifiSmeActivateCfm), GFP_KERNEL); \
162 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ACTIVATE_CFM, dst__, src__); \
163 msg__->status = (status__);
165 #define CsrWifiSmeActivateCfmSendTo(dst__, src__, status__) \
167 CsrWifiSmeActivateCfm *msg__; \
168 CsrWifiSmeActivateCfmCreate(msg__, dst__, src__, status__); \
169 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
172 #define CsrWifiSmeActivateCfmSend(dst__, status__) \
173 CsrWifiSmeActivateCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
175 /*******************************************************************************
177 NAME
178 CsrWifiSmeAdhocConfigGetReqSend
180 DESCRIPTION
181 This primitive gets the value of the adHocConfig parameter.
183 PARAMETERS
184 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
186 *******************************************************************************/
187 #define CsrWifiSmeAdhocConfigGetReqCreate(msg__, dst__, src__) \
188 msg__ = kmalloc(sizeof(CsrWifiSmeAdhocConfigGetReq), GFP_KERNEL); \
189 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ADHOC_CONFIG_GET_REQ, dst__, src__);
191 #define CsrWifiSmeAdhocConfigGetReqSendTo(dst__, src__) \
193 CsrWifiSmeAdhocConfigGetReq *msg__; \
194 CsrWifiSmeAdhocConfigGetReqCreate(msg__, dst__, src__); \
195 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
198 #define CsrWifiSmeAdhocConfigGetReqSend(src__) \
199 CsrWifiSmeAdhocConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
201 /*******************************************************************************
203 NAME
204 CsrWifiSmeAdhocConfigGetCfmSend
206 DESCRIPTION
207 This primitive reports the result of the request.
209 PARAMETERS
210 queue - Destination Task Queue
211 status - Reports the result of the request
212 adHocConfig - Contains the values used when starting an Ad-hoc (IBSS)
213 connection.
215 *******************************************************************************/
216 #define CsrWifiSmeAdhocConfigGetCfmCreate(msg__, dst__, src__, status__, adHocConfig__) \
217 msg__ = kmalloc(sizeof(CsrWifiSmeAdhocConfigGetCfm), GFP_KERNEL); \
218 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ADHOC_CONFIG_GET_CFM, dst__, src__); \
219 msg__->status = (status__); \
220 msg__->adHocConfig = (adHocConfig__);
222 #define CsrWifiSmeAdhocConfigGetCfmSendTo(dst__, src__, status__, adHocConfig__) \
224 CsrWifiSmeAdhocConfigGetCfm *msg__; \
225 CsrWifiSmeAdhocConfigGetCfmCreate(msg__, dst__, src__, status__, adHocConfig__); \
226 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
229 #define CsrWifiSmeAdhocConfigGetCfmSend(dst__, status__, adHocConfig__) \
230 CsrWifiSmeAdhocConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, adHocConfig__)
232 /*******************************************************************************
234 NAME
235 CsrWifiSmeAdhocConfigSetReqSend
237 DESCRIPTION
238 This primitive sets the value of the adHocConfig parameter.
240 PARAMETERS
241 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
242 adHocConfig - Sets the values to use when starting an ad hoc network.
244 *******************************************************************************/
245 #define CsrWifiSmeAdhocConfigSetReqCreate(msg__, dst__, src__, adHocConfig__) \
246 msg__ = kmalloc(sizeof(CsrWifiSmeAdhocConfigSetReq), GFP_KERNEL); \
247 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ADHOC_CONFIG_SET_REQ, dst__, src__); \
248 msg__->adHocConfig = (adHocConfig__);
250 #define CsrWifiSmeAdhocConfigSetReqSendTo(dst__, src__, adHocConfig__) \
252 CsrWifiSmeAdhocConfigSetReq *msg__; \
253 CsrWifiSmeAdhocConfigSetReqCreate(msg__, dst__, src__, adHocConfig__); \
254 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
257 #define CsrWifiSmeAdhocConfigSetReqSend(src__, adHocConfig__) \
258 CsrWifiSmeAdhocConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, adHocConfig__)
260 /*******************************************************************************
262 NAME
263 CsrWifiSmeAdhocConfigSetCfmSend
265 DESCRIPTION
266 This primitive reports the result of the request.
268 PARAMETERS
269 queue - Destination Task Queue
270 status - Reports the result of the request
272 *******************************************************************************/
273 #define CsrWifiSmeAdhocConfigSetCfmCreate(msg__, dst__, src__, status__) \
274 msg__ = kmalloc(sizeof(CsrWifiSmeAdhocConfigSetCfm), GFP_KERNEL); \
275 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ADHOC_CONFIG_SET_CFM, dst__, src__); \
276 msg__->status = (status__);
278 #define CsrWifiSmeAdhocConfigSetCfmSendTo(dst__, src__, status__) \
280 CsrWifiSmeAdhocConfigSetCfm *msg__; \
281 CsrWifiSmeAdhocConfigSetCfmCreate(msg__, dst__, src__, status__); \
282 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
285 #define CsrWifiSmeAdhocConfigSetCfmSend(dst__, status__) \
286 CsrWifiSmeAdhocConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
288 /*******************************************************************************
290 NAME
291 CsrWifiSmeAmpStatusChangeIndSend
293 DESCRIPTION
294 Indication of change to AMP activity.
296 PARAMETERS
297 queue - Destination Task Queue
298 interfaceTag - Interface on which the AMP activity changed.
299 ampStatus - The new status of AMP activity.Range: {AMP_ACTIVE,
300 AMP_INACTIVE}.
302 *******************************************************************************/
303 #define CsrWifiSmeAmpStatusChangeIndCreate(msg__, dst__, src__, interfaceTag__, ampStatus__) \
304 msg__ = kmalloc(sizeof(CsrWifiSmeAmpStatusChangeInd), GFP_KERNEL); \
305 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_AMP_STATUS_CHANGE_IND, dst__, src__); \
306 msg__->interfaceTag = (interfaceTag__); \
307 msg__->ampStatus = (ampStatus__);
309 #define CsrWifiSmeAmpStatusChangeIndSendTo(dst__, src__, interfaceTag__, ampStatus__) \
311 CsrWifiSmeAmpStatusChangeInd *msg__; \
312 CsrWifiSmeAmpStatusChangeIndCreate(msg__, dst__, src__, interfaceTag__, ampStatus__); \
313 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
316 #define CsrWifiSmeAmpStatusChangeIndSend(dst__, interfaceTag__, ampStatus__) \
317 CsrWifiSmeAmpStatusChangeIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, ampStatus__)
319 /*******************************************************************************
321 NAME
322 CsrWifiSmeAssociationCompleteIndSend
324 DESCRIPTION
325 The SME will send this primitive to all the tasks that have registered to
326 receive it whenever it completes an attempt to associate with an AP. If
327 the association was successful, status will be set to
328 CSR_WIFI_SME_STATUS_SUCCESS, otherwise status and deauthReason shall be
329 set to appropriate error codes.
331 PARAMETERS
332 queue - Destination Task Queue
333 interfaceTag - Interface Identifier; unique identifier of an interface
334 status - Reports the result of the association procedure
335 connectionInfo - This parameter is relevant only if result is
336 CSR_WIFI_SME_STATUS_SUCCESS:
337 it points to the connection information for the new network
338 deauthReason - This parameter is relevant only if result is not
339 CSR_WIFI_SME_STATUS_SUCCESS:
340 if the AP deauthorised the station, it gives the reason of
341 the deauthorization
343 *******************************************************************************/
344 #define CsrWifiSmeAssociationCompleteIndCreate(msg__, dst__, src__, interfaceTag__, status__, connectionInfo__, deauthReason__) \
345 msg__ = kmalloc(sizeof(CsrWifiSmeAssociationCompleteInd), GFP_KERNEL); \
346 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ASSOCIATION_COMPLETE_IND, dst__, src__); \
347 msg__->interfaceTag = (interfaceTag__); \
348 msg__->status = (status__); \
349 msg__->connectionInfo = (connectionInfo__); \
350 msg__->deauthReason = (deauthReason__);
352 #define CsrWifiSmeAssociationCompleteIndSendTo(dst__, src__, interfaceTag__, status__, connectionInfo__, deauthReason__) \
354 CsrWifiSmeAssociationCompleteInd *msg__; \
355 CsrWifiSmeAssociationCompleteIndCreate(msg__, dst__, src__, interfaceTag__, status__, connectionInfo__, deauthReason__); \
356 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
359 #define CsrWifiSmeAssociationCompleteIndSend(dst__, interfaceTag__, status__, connectionInfo__, deauthReason__) \
360 CsrWifiSmeAssociationCompleteIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, connectionInfo__, deauthReason__)
362 /*******************************************************************************
364 NAME
365 CsrWifiSmeAssociationStartIndSend
367 DESCRIPTION
368 The SME will send this primitive to all the tasks that have registered to
369 receive it whenever it begins an attempt to associate with an AP.
371 PARAMETERS
372 queue - Destination Task Queue
373 interfaceTag - Interface Identifier; unique identifier of an interface
374 address - BSSID of the associating network
375 ssid - Service Set identifier of the associating network
377 *******************************************************************************/
378 #define CsrWifiSmeAssociationStartIndCreate(msg__, dst__, src__, interfaceTag__, address__, ssid__) \
379 msg__ = kmalloc(sizeof(CsrWifiSmeAssociationStartInd), GFP_KERNEL); \
380 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ASSOCIATION_START_IND, dst__, src__); \
381 msg__->interfaceTag = (interfaceTag__); \
382 msg__->address = (address__); \
383 msg__->ssid = (ssid__);
385 #define CsrWifiSmeAssociationStartIndSendTo(dst__, src__, interfaceTag__, address__, ssid__) \
387 CsrWifiSmeAssociationStartInd *msg__; \
388 CsrWifiSmeAssociationStartIndCreate(msg__, dst__, src__, interfaceTag__, address__, ssid__); \
389 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
392 #define CsrWifiSmeAssociationStartIndSend(dst__, interfaceTag__, address__, ssid__) \
393 CsrWifiSmeAssociationStartIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, address__, ssid__)
395 /*******************************************************************************
397 NAME
398 CsrWifiSmeBlacklistReqSend
400 DESCRIPTION
401 The wireless manager application should call this primitive to notify the
402 driver of any networks that should not be connected to. The interface
403 allows the wireless manager application to query, add, remove, and flush
404 the BSSIDs that the driver may not connect or roam to.
405 When this primitive adds to the black list the BSSID to which the SME is
406 currently connected, the SME will try to roam, if applicable, to another
407 BSSID in the same ESS; if the roaming procedure fails, the SME will
408 disconnect.
410 PARAMETERS
411 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
412 interfaceTag - Interface Identifier; unique identifier of an interface
413 action - The value of the CsrWifiSmeListAction parameter instructs
414 the driver to modify or provide the list of blacklisted
415 networks.
416 setAddressCount - Number of BSSIDs sent with this primitive
417 setAddresses - Pointer to the list of BBSIDs sent with the primitive, set
418 to NULL if none is sent.
420 *******************************************************************************/
421 #define CsrWifiSmeBlacklistReqCreate(msg__, dst__, src__, interfaceTag__, action__, setAddressCount__, setAddresses__) \
422 msg__ = kmalloc(sizeof(CsrWifiSmeBlacklistReq), GFP_KERNEL); \
423 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_BLACKLIST_REQ, dst__, src__); \
424 msg__->interfaceTag = (interfaceTag__); \
425 msg__->action = (action__); \
426 msg__->setAddressCount = (setAddressCount__); \
427 msg__->setAddresses = (setAddresses__);
429 #define CsrWifiSmeBlacklistReqSendTo(dst__, src__, interfaceTag__, action__, setAddressCount__, setAddresses__) \
431 CsrWifiSmeBlacklistReq *msg__; \
432 CsrWifiSmeBlacklistReqCreate(msg__, dst__, src__, interfaceTag__, action__, setAddressCount__, setAddresses__); \
433 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
436 #define CsrWifiSmeBlacklistReqSend(src__, interfaceTag__, action__, setAddressCount__, setAddresses__) \
437 CsrWifiSmeBlacklistReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, action__, setAddressCount__, setAddresses__)
439 /*******************************************************************************
441 NAME
442 CsrWifiSmeBlacklistCfmSend
444 DESCRIPTION
445 The SME will call this primitive when the action on the blacklist has
446 completed. For a GET action, this primitive also reports the list of
447 BBSIDs in the blacklist.
449 PARAMETERS
450 queue - Destination Task Queue
451 interfaceTag - Interface Identifier; unique identifier of an interface
452 status - Reports the result of the request
453 action - Action in the request
454 getAddressCount - This parameter is only relevant if action is
455 CSR_WIFI_SME_LIST_ACTION_GET:
456 number of BSSIDs sent with this primitive
457 getAddresses - Pointer to the list of BBSIDs sent with the primitive, set
458 to NULL if none is sent.
460 *******************************************************************************/
461 #define CsrWifiSmeBlacklistCfmCreate(msg__, dst__, src__, interfaceTag__, status__, action__, getAddressCount__, getAddresses__) \
462 msg__ = kmalloc(sizeof(CsrWifiSmeBlacklistCfm), GFP_KERNEL); \
463 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_BLACKLIST_CFM, dst__, src__); \
464 msg__->interfaceTag = (interfaceTag__); \
465 msg__->status = (status__); \
466 msg__->action = (action__); \
467 msg__->getAddressCount = (getAddressCount__); \
468 msg__->getAddresses = (getAddresses__);
470 #define CsrWifiSmeBlacklistCfmSendTo(dst__, src__, interfaceTag__, status__, action__, getAddressCount__, getAddresses__) \
472 CsrWifiSmeBlacklistCfm *msg__; \
473 CsrWifiSmeBlacklistCfmCreate(msg__, dst__, src__, interfaceTag__, status__, action__, getAddressCount__, getAddresses__); \
474 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
477 #define CsrWifiSmeBlacklistCfmSend(dst__, interfaceTag__, status__, action__, getAddressCount__, getAddresses__) \
478 CsrWifiSmeBlacklistCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, action__, getAddressCount__, getAddresses__)
480 /*******************************************************************************
482 NAME
483 CsrWifiSmeCalibrationDataGetReqSend
485 DESCRIPTION
486 This primitive retrieves the Wi-Fi radio calibration data.
488 PARAMETERS
489 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
491 *******************************************************************************/
492 #define CsrWifiSmeCalibrationDataGetReqCreate(msg__, dst__, src__) \
493 msg__ = kmalloc(sizeof(CsrWifiSmeCalibrationDataGetReq), GFP_KERNEL); \
494 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CALIBRATION_DATA_GET_REQ, dst__, src__);
496 #define CsrWifiSmeCalibrationDataGetReqSendTo(dst__, src__) \
498 CsrWifiSmeCalibrationDataGetReq *msg__; \
499 CsrWifiSmeCalibrationDataGetReqCreate(msg__, dst__, src__); \
500 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
503 #define CsrWifiSmeCalibrationDataGetReqSend(src__) \
504 CsrWifiSmeCalibrationDataGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
506 /*******************************************************************************
508 NAME
509 CsrWifiSmeCalibrationDataGetCfmSend
511 DESCRIPTION
512 This primitive reports the result of the request.
514 PARAMETERS
515 queue - Destination Task Queue
516 status - Reports the result of the request
517 calibrationDataLength - Number of bytes in the buffer pointed by
518 calibrationData
519 calibrationData - Pointer to a buffer of length calibrationDataLength
520 containing the calibration data
522 *******************************************************************************/
523 #define CsrWifiSmeCalibrationDataGetCfmCreate(msg__, dst__, src__, status__, calibrationDataLength__, calibrationData__) \
524 msg__ = kmalloc(sizeof(CsrWifiSmeCalibrationDataGetCfm), GFP_KERNEL); \
525 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CALIBRATION_DATA_GET_CFM, dst__, src__); \
526 msg__->status = (status__); \
527 msg__->calibrationDataLength = (calibrationDataLength__); \
528 msg__->calibrationData = (calibrationData__);
530 #define CsrWifiSmeCalibrationDataGetCfmSendTo(dst__, src__, status__, calibrationDataLength__, calibrationData__) \
532 CsrWifiSmeCalibrationDataGetCfm *msg__; \
533 CsrWifiSmeCalibrationDataGetCfmCreate(msg__, dst__, src__, status__, calibrationDataLength__, calibrationData__); \
534 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
537 #define CsrWifiSmeCalibrationDataGetCfmSend(dst__, status__, calibrationDataLength__, calibrationData__) \
538 CsrWifiSmeCalibrationDataGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, calibrationDataLength__, calibrationData__)
540 /*******************************************************************************
542 NAME
543 CsrWifiSmeCalibrationDataSetReqSend
545 DESCRIPTION
546 This primitive sets the Wi-Fi radio calibration data.
547 The usage of the primitive with proper calibration data will avoid
548 time-consuming configuration after power-up.
550 PARAMETERS
551 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
552 calibrationDataLength - Number of bytes in the buffer pointed by
553 calibrationData
554 calibrationData - Pointer to a buffer of length calibrationDataLength
555 containing the calibration data
557 *******************************************************************************/
558 #define CsrWifiSmeCalibrationDataSetReqCreate(msg__, dst__, src__, calibrationDataLength__, calibrationData__) \
559 msg__ = kmalloc(sizeof(CsrWifiSmeCalibrationDataSetReq), GFP_KERNEL); \
560 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CALIBRATION_DATA_SET_REQ, dst__, src__); \
561 msg__->calibrationDataLength = (calibrationDataLength__); \
562 msg__->calibrationData = (calibrationData__);
564 #define CsrWifiSmeCalibrationDataSetReqSendTo(dst__, src__, calibrationDataLength__, calibrationData__) \
566 CsrWifiSmeCalibrationDataSetReq *msg__; \
567 CsrWifiSmeCalibrationDataSetReqCreate(msg__, dst__, src__, calibrationDataLength__, calibrationData__); \
568 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
571 #define CsrWifiSmeCalibrationDataSetReqSend(src__, calibrationDataLength__, calibrationData__) \
572 CsrWifiSmeCalibrationDataSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, calibrationDataLength__, calibrationData__)
574 /*******************************************************************************
576 NAME
577 CsrWifiSmeCalibrationDataSetCfmSend
579 DESCRIPTION
580 This primitive reports the result of the request.
582 PARAMETERS
583 queue - Destination Task Queue
584 status - Reports the result of the request
586 *******************************************************************************/
587 #define CsrWifiSmeCalibrationDataSetCfmCreate(msg__, dst__, src__, status__) \
588 msg__ = kmalloc(sizeof(CsrWifiSmeCalibrationDataSetCfm), GFP_KERNEL); \
589 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CALIBRATION_DATA_SET_CFM, dst__, src__); \
590 msg__->status = (status__);
592 #define CsrWifiSmeCalibrationDataSetCfmSendTo(dst__, src__, status__) \
594 CsrWifiSmeCalibrationDataSetCfm *msg__; \
595 CsrWifiSmeCalibrationDataSetCfmCreate(msg__, dst__, src__, status__); \
596 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
599 #define CsrWifiSmeCalibrationDataSetCfmSend(dst__, status__) \
600 CsrWifiSmeCalibrationDataSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
602 /*******************************************************************************
604 NAME
605 CsrWifiSmeCcxConfigGetReqSend
607 DESCRIPTION
608 This primitive gets the value of the CcxConfig parameter.
609 CURRENTLY NOT SUPPORTED.
611 PARAMETERS
612 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
613 interfaceTag - Interface Identifier; unique identifier of an interface
615 *******************************************************************************/
616 #define CsrWifiSmeCcxConfigGetReqCreate(msg__, dst__, src__, interfaceTag__) \
617 msg__ = kmalloc(sizeof(CsrWifiSmeCcxConfigGetReq), GFP_KERNEL); \
618 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CCX_CONFIG_GET_REQ, dst__, src__); \
619 msg__->interfaceTag = (interfaceTag__);
621 #define CsrWifiSmeCcxConfigGetReqSendTo(dst__, src__, interfaceTag__) \
623 CsrWifiSmeCcxConfigGetReq *msg__; \
624 CsrWifiSmeCcxConfigGetReqCreate(msg__, dst__, src__, interfaceTag__); \
625 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
628 #define CsrWifiSmeCcxConfigGetReqSend(src__, interfaceTag__) \
629 CsrWifiSmeCcxConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
631 /*******************************************************************************
633 NAME
634 CsrWifiSmeCcxConfigGetCfmSend
636 DESCRIPTION
637 This primitive reports the result of the request.
639 PARAMETERS
640 queue - Destination Task Queue
641 interfaceTag - Interface Identifier; unique identifier of an interface
642 status - Reports the result of the request
643 ccxConfig - Currently not supported
645 *******************************************************************************/
646 #define CsrWifiSmeCcxConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, ccxConfig__) \
647 msg__ = kmalloc(sizeof(CsrWifiSmeCcxConfigGetCfm), GFP_KERNEL); \
648 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CCX_CONFIG_GET_CFM, dst__, src__); \
649 msg__->interfaceTag = (interfaceTag__); \
650 msg__->status = (status__); \
651 msg__->ccxConfig = (ccxConfig__);
653 #define CsrWifiSmeCcxConfigGetCfmSendTo(dst__, src__, interfaceTag__, status__, ccxConfig__) \
655 CsrWifiSmeCcxConfigGetCfm *msg__; \
656 CsrWifiSmeCcxConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, ccxConfig__); \
657 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
660 #define CsrWifiSmeCcxConfigGetCfmSend(dst__, interfaceTag__, status__, ccxConfig__) \
661 CsrWifiSmeCcxConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, ccxConfig__)
663 /*******************************************************************************
665 NAME
666 CsrWifiSmeCcxConfigSetReqSend
668 DESCRIPTION
669 This primitive sets the value of the CcxConfig parameter.
670 CURRENTLY NOT SUPPORTED.
672 PARAMETERS
673 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
674 interfaceTag - Interface Identifier; unique identifier of an interface
675 ccxConfig - Currently not supported
677 *******************************************************************************/
678 #define CsrWifiSmeCcxConfigSetReqCreate(msg__, dst__, src__, interfaceTag__, ccxConfig__) \
679 msg__ = kmalloc(sizeof(CsrWifiSmeCcxConfigSetReq), GFP_KERNEL); \
680 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CCX_CONFIG_SET_REQ, dst__, src__); \
681 msg__->interfaceTag = (interfaceTag__); \
682 msg__->ccxConfig = (ccxConfig__);
684 #define CsrWifiSmeCcxConfigSetReqSendTo(dst__, src__, interfaceTag__, ccxConfig__) \
686 CsrWifiSmeCcxConfigSetReq *msg__; \
687 CsrWifiSmeCcxConfigSetReqCreate(msg__, dst__, src__, interfaceTag__, ccxConfig__); \
688 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
691 #define CsrWifiSmeCcxConfigSetReqSend(src__, interfaceTag__, ccxConfig__) \
692 CsrWifiSmeCcxConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, ccxConfig__)
694 /*******************************************************************************
696 NAME
697 CsrWifiSmeCcxConfigSetCfmSend
699 DESCRIPTION
700 This primitive reports the result of the request.
702 PARAMETERS
703 queue - Destination Task Queue
704 interfaceTag - Interface Identifier; unique identifier of an interface
705 status - Reports the result of the request
707 *******************************************************************************/
708 #define CsrWifiSmeCcxConfigSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
709 msg__ = kmalloc(sizeof(CsrWifiSmeCcxConfigSetCfm), GFP_KERNEL); \
710 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CCX_CONFIG_SET_CFM, dst__, src__); \
711 msg__->interfaceTag = (interfaceTag__); \
712 msg__->status = (status__);
714 #define CsrWifiSmeCcxConfigSetCfmSendTo(dst__, src__, interfaceTag__, status__) \
716 CsrWifiSmeCcxConfigSetCfm *msg__; \
717 CsrWifiSmeCcxConfigSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
718 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
721 #define CsrWifiSmeCcxConfigSetCfmSend(dst__, interfaceTag__, status__) \
722 CsrWifiSmeCcxConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__)
724 /*******************************************************************************
726 NAME
727 CsrWifiSmeCloakedSsidsGetReqSend
729 DESCRIPTION
730 This primitive gets the value of the CloakedSsids parameter.
732 PARAMETERS
733 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
735 *******************************************************************************/
736 #define CsrWifiSmeCloakedSsidsGetReqCreate(msg__, dst__, src__) \
737 msg__ = kmalloc(sizeof(CsrWifiSmeCloakedSsidsGetReq), GFP_KERNEL); \
738 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CLOAKED_SSIDS_GET_REQ, dst__, src__);
740 #define CsrWifiSmeCloakedSsidsGetReqSendTo(dst__, src__) \
742 CsrWifiSmeCloakedSsidsGetReq *msg__; \
743 CsrWifiSmeCloakedSsidsGetReqCreate(msg__, dst__, src__); \
744 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
747 #define CsrWifiSmeCloakedSsidsGetReqSend(src__) \
748 CsrWifiSmeCloakedSsidsGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
750 /*******************************************************************************
752 NAME
753 CsrWifiSmeCloakedSsidsGetCfmSend
755 DESCRIPTION
756 This primitive reports the result of the request.
758 PARAMETERS
759 queue - Destination Task Queue
760 status - Reports the result of the request
761 cloakedSsids - Reports list of cloaked SSIDs that are explicitly scanned for
762 by the driver
764 *******************************************************************************/
765 #define CsrWifiSmeCloakedSsidsGetCfmCreate(msg__, dst__, src__, status__, cloakedSsids__) \
766 msg__ = kmalloc(sizeof(CsrWifiSmeCloakedSsidsGetCfm), GFP_KERNEL); \
767 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CLOAKED_SSIDS_GET_CFM, dst__, src__); \
768 msg__->status = (status__); \
769 msg__->cloakedSsids = (cloakedSsids__);
771 #define CsrWifiSmeCloakedSsidsGetCfmSendTo(dst__, src__, status__, cloakedSsids__) \
773 CsrWifiSmeCloakedSsidsGetCfm *msg__; \
774 CsrWifiSmeCloakedSsidsGetCfmCreate(msg__, dst__, src__, status__, cloakedSsids__); \
775 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
778 #define CsrWifiSmeCloakedSsidsGetCfmSend(dst__, status__, cloakedSsids__) \
779 CsrWifiSmeCloakedSsidsGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, cloakedSsids__)
781 /*******************************************************************************
783 NAME
784 CsrWifiSmeCloakedSsidsSetReqSend
786 DESCRIPTION
787 This primitive sets the list of cloaked SSIDs for which the WMA possesses
788 profiles.
789 When the driver detects a cloaked AP, the SME will explicitly scan for it
790 using the list of cloaked SSIDs provided it, and, if the scan succeeds,
791 it will report the AP to the WMA either via CSR_WIFI_SME_SCAN_RESULT_IND
792 (if registered) or via CSR_WIFI_SCAN_RESULT_GET_CFM.
794 PARAMETERS
795 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
796 cloakedSsids - Sets the list of cloaked SSIDs
798 *******************************************************************************/
799 #define CsrWifiSmeCloakedSsidsSetReqCreate(msg__, dst__, src__, cloakedSsids__) \
800 msg__ = kmalloc(sizeof(CsrWifiSmeCloakedSsidsSetReq), GFP_KERNEL); \
801 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CLOAKED_SSIDS_SET_REQ, dst__, src__); \
802 msg__->cloakedSsids = (cloakedSsids__);
804 #define CsrWifiSmeCloakedSsidsSetReqSendTo(dst__, src__, cloakedSsids__) \
806 CsrWifiSmeCloakedSsidsSetReq *msg__; \
807 CsrWifiSmeCloakedSsidsSetReqCreate(msg__, dst__, src__, cloakedSsids__); \
808 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
811 #define CsrWifiSmeCloakedSsidsSetReqSend(src__, cloakedSsids__) \
812 CsrWifiSmeCloakedSsidsSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, cloakedSsids__)
814 /*******************************************************************************
816 NAME
817 CsrWifiSmeCloakedSsidsSetCfmSend
819 DESCRIPTION
820 This primitive reports the result of the request.
822 PARAMETERS
823 queue - Destination Task Queue
824 status - Reports the result of the request
826 *******************************************************************************/
827 #define CsrWifiSmeCloakedSsidsSetCfmCreate(msg__, dst__, src__, status__) \
828 msg__ = kmalloc(sizeof(CsrWifiSmeCloakedSsidsSetCfm), GFP_KERNEL); \
829 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CLOAKED_SSIDS_SET_CFM, dst__, src__); \
830 msg__->status = (status__);
832 #define CsrWifiSmeCloakedSsidsSetCfmSendTo(dst__, src__, status__) \
834 CsrWifiSmeCloakedSsidsSetCfm *msg__; \
835 CsrWifiSmeCloakedSsidsSetCfmCreate(msg__, dst__, src__, status__); \
836 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
839 #define CsrWifiSmeCloakedSsidsSetCfmSend(dst__, status__) \
840 CsrWifiSmeCloakedSsidsSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
842 /*******************************************************************************
844 NAME
845 CsrWifiSmeCoexConfigGetReqSend
847 DESCRIPTION
848 This primitive gets the value of the CoexConfig parameter.
850 PARAMETERS
851 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
853 *******************************************************************************/
854 #define CsrWifiSmeCoexConfigGetReqCreate(msg__, dst__, src__) \
855 msg__ = kmalloc(sizeof(CsrWifiSmeCoexConfigGetReq), GFP_KERNEL); \
856 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_COEX_CONFIG_GET_REQ, dst__, src__);
858 #define CsrWifiSmeCoexConfigGetReqSendTo(dst__, src__) \
860 CsrWifiSmeCoexConfigGetReq *msg__; \
861 CsrWifiSmeCoexConfigGetReqCreate(msg__, dst__, src__); \
862 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
865 #define CsrWifiSmeCoexConfigGetReqSend(src__) \
866 CsrWifiSmeCoexConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
868 /*******************************************************************************
870 NAME
871 CsrWifiSmeCoexConfigGetCfmSend
873 DESCRIPTION
874 This primitive reports the result of the request.
876 PARAMETERS
877 queue - Destination Task Queue
878 status - Reports the result of the request
879 coexConfig - Reports the parameters used to configure the coexistence
880 behaviour
882 *******************************************************************************/
883 #define CsrWifiSmeCoexConfigGetCfmCreate(msg__, dst__, src__, status__, coexConfig__) \
884 msg__ = kmalloc(sizeof(CsrWifiSmeCoexConfigGetCfm), GFP_KERNEL); \
885 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_COEX_CONFIG_GET_CFM, dst__, src__); \
886 msg__->status = (status__); \
887 msg__->coexConfig = (coexConfig__);
889 #define CsrWifiSmeCoexConfigGetCfmSendTo(dst__, src__, status__, coexConfig__) \
891 CsrWifiSmeCoexConfigGetCfm *msg__; \
892 CsrWifiSmeCoexConfigGetCfmCreate(msg__, dst__, src__, status__, coexConfig__); \
893 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
896 #define CsrWifiSmeCoexConfigGetCfmSend(dst__, status__, coexConfig__) \
897 CsrWifiSmeCoexConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, coexConfig__)
899 /*******************************************************************************
901 NAME
902 CsrWifiSmeCoexConfigSetReqSend
904 DESCRIPTION
905 This primitive sets the value of the CoexConfig parameter.
907 PARAMETERS
908 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
909 coexConfig - Configures the coexistence behaviour
911 *******************************************************************************/
912 #define CsrWifiSmeCoexConfigSetReqCreate(msg__, dst__, src__, coexConfig__) \
913 msg__ = kmalloc(sizeof(CsrWifiSmeCoexConfigSetReq), GFP_KERNEL); \
914 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_COEX_CONFIG_SET_REQ, dst__, src__); \
915 msg__->coexConfig = (coexConfig__);
917 #define CsrWifiSmeCoexConfigSetReqSendTo(dst__, src__, coexConfig__) \
919 CsrWifiSmeCoexConfigSetReq *msg__; \
920 CsrWifiSmeCoexConfigSetReqCreate(msg__, dst__, src__, coexConfig__); \
921 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
924 #define CsrWifiSmeCoexConfigSetReqSend(src__, coexConfig__) \
925 CsrWifiSmeCoexConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, coexConfig__)
927 /*******************************************************************************
929 NAME
930 CsrWifiSmeCoexConfigSetCfmSend
932 DESCRIPTION
933 This primitive reports the result of the request.
935 PARAMETERS
936 queue - Destination Task Queue
937 status - Reports the result of the request
939 *******************************************************************************/
940 #define CsrWifiSmeCoexConfigSetCfmCreate(msg__, dst__, src__, status__) \
941 msg__ = kmalloc(sizeof(CsrWifiSmeCoexConfigSetCfm), GFP_KERNEL); \
942 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_COEX_CONFIG_SET_CFM, dst__, src__); \
943 msg__->status = (status__);
945 #define CsrWifiSmeCoexConfigSetCfmSendTo(dst__, src__, status__) \
947 CsrWifiSmeCoexConfigSetCfm *msg__; \
948 CsrWifiSmeCoexConfigSetCfmCreate(msg__, dst__, src__, status__); \
949 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
952 #define CsrWifiSmeCoexConfigSetCfmSend(dst__, status__) \
953 CsrWifiSmeCoexConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
955 /*******************************************************************************
957 NAME
958 CsrWifiSmeCoexInfoGetReqSend
960 DESCRIPTION
961 This primitive gets the value of the CoexInfo parameter.
963 PARAMETERS
964 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
966 *******************************************************************************/
967 #define CsrWifiSmeCoexInfoGetReqCreate(msg__, dst__, src__) \
968 msg__ = kmalloc(sizeof(CsrWifiSmeCoexInfoGetReq), GFP_KERNEL); \
969 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_COEX_INFO_GET_REQ, dst__, src__);
971 #define CsrWifiSmeCoexInfoGetReqSendTo(dst__, src__) \
973 CsrWifiSmeCoexInfoGetReq *msg__; \
974 CsrWifiSmeCoexInfoGetReqCreate(msg__, dst__, src__); \
975 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
978 #define CsrWifiSmeCoexInfoGetReqSend(src__) \
979 CsrWifiSmeCoexInfoGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
981 /*******************************************************************************
983 NAME
984 CsrWifiSmeCoexInfoGetCfmSend
986 DESCRIPTION
987 This primitive reports the result of the request.
989 PARAMETERS
990 queue - Destination Task Queue
991 status - Reports the result of the request
992 coexInfo - Reports information and state related to coexistence.
994 *******************************************************************************/
995 #define CsrWifiSmeCoexInfoGetCfmCreate(msg__, dst__, src__, status__, coexInfo__) \
996 msg__ = kmalloc(sizeof(CsrWifiSmeCoexInfoGetCfm), GFP_KERNEL); \
997 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_COEX_INFO_GET_CFM, dst__, src__); \
998 msg__->status = (status__); \
999 msg__->coexInfo = (coexInfo__);
1001 #define CsrWifiSmeCoexInfoGetCfmSendTo(dst__, src__, status__, coexInfo__) \
1003 CsrWifiSmeCoexInfoGetCfm *msg__; \
1004 CsrWifiSmeCoexInfoGetCfmCreate(msg__, dst__, src__, status__, coexInfo__); \
1005 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1008 #define CsrWifiSmeCoexInfoGetCfmSend(dst__, status__, coexInfo__) \
1009 CsrWifiSmeCoexInfoGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, coexInfo__)
1011 /*******************************************************************************
1013 NAME
1014 CsrWifiSmeConnectReqSend
1016 DESCRIPTION
1017 The wireless manager application calls this primitive to start the
1018 process of joining an 802.11 wireless network or to start an ad hoc
1019 network.
1020 The structure pointed by connectionConfig contains parameters describing
1021 the network to join or, in case of an ad hoc network, to host or join.
1022 The SME will select a network, perform the IEEE 802.11 Join, Authenticate
1023 and Associate exchanges.
1024 The SME selects the networks from the current scan list that match both
1025 the SSID and BSSID, however either or both of these may be the wildcard
1026 value. Using this rule, the following operations are possible:
1027 * To connect to a network by name, specify the SSID and set the BSSID to
1028 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF. If there are two or more networks visible,
1029 the SME will select the one with the strongest signal.
1030 * To connect to a specific network, specify the BSSID. The SSID is
1031 optional, but if given it must match the SSID of the network. An empty
1032 SSID may be specified by setting the SSID length to zero. Please note
1033 that if the BSSID is specified (i.e. not equal to 0xFF 0xFF 0xFF 0xFF
1034 0xFF 0xFF), the SME will not attempt to roam if signal conditions become
1035 poor, even if there is an alternative AP with an SSID that matches the
1036 current network SSID.
1037 * To connect to any network matching the other parameters (i.e. security,
1038 etc), set the SSID length to zero and set the BSSID to 0xFF 0xFF 0xFF
1039 0xFF 0xFF 0xFF. In this case, the SME will order all available networks
1040 by their signal strengths and will iterate through this list until it
1041 successfully connects.
1042 NOTE: Specifying the BSSID will restrict the selection to one specific
1043 network. If SSID and BSSID are given, they must both match the network
1044 for it to be selected. To select a network based on the SSID only, the
1045 wireless manager application must set the BSSID to 0xFF 0xFF 0xFF 0xFF
1046 0xFF 0xFF.
1047 The SME will try to connect to each network that matches the provided
1048 parameters, one by one, until it succeeds or has tried unsuccessfully
1049 with all the matching networks.
1050 If there is no network that matches the parameters and the request allows
1051 to host an ad hoc network, the SME will advertise a new ad hoc network
1052 instead.
1053 If the SME cannot connect, it will notify the failure in the confirm.
1055 PARAMETERS
1056 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1057 interfaceTag - Interface Identifier; unique identifier of an interface
1058 connectionConfig - Describes the candidate network to join or to host.
1060 *******************************************************************************/
1061 #define CsrWifiSmeConnectReqCreate(msg__, dst__, src__, interfaceTag__, connectionConfig__) \
1062 msg__ = kmalloc(sizeof(CsrWifiSmeConnectReq), GFP_KERNEL); \
1063 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECT_REQ, dst__, src__); \
1064 msg__->interfaceTag = (interfaceTag__); \
1065 msg__->connectionConfig = (connectionConfig__);
1067 #define CsrWifiSmeConnectReqSendTo(dst__, src__, interfaceTag__, connectionConfig__) \
1069 CsrWifiSmeConnectReq *msg__; \
1070 CsrWifiSmeConnectReqCreate(msg__, dst__, src__, interfaceTag__, connectionConfig__); \
1071 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1074 #define CsrWifiSmeConnectReqSend(src__, interfaceTag__, connectionConfig__) \
1075 CsrWifiSmeConnectReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, connectionConfig__)
1077 /*******************************************************************************
1079 NAME
1080 CsrWifiSmeConnectCfmSend
1082 DESCRIPTION
1083 The SME calls this primitive when the connection exchange is complete or
1084 all connection attempts fail.
1086 PARAMETERS
1087 queue - Destination Task Queue
1088 interfaceTag - Interface Identifier; unique identifier of an interface
1089 status - Reports the result of the request.
1090 CSR_WIFI_SME_STATUS_NOT_FOUND: all attempts by the SME to
1091 locate the requested AP failed
1093 *******************************************************************************/
1094 #define CsrWifiSmeConnectCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
1095 msg__ = kmalloc(sizeof(CsrWifiSmeConnectCfm), GFP_KERNEL); \
1096 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECT_CFM, dst__, src__); \
1097 msg__->interfaceTag = (interfaceTag__); \
1098 msg__->status = (status__);
1100 #define CsrWifiSmeConnectCfmSendTo(dst__, src__, interfaceTag__, status__) \
1102 CsrWifiSmeConnectCfm *msg__; \
1103 CsrWifiSmeConnectCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
1104 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1107 #define CsrWifiSmeConnectCfmSend(dst__, interfaceTag__, status__) \
1108 CsrWifiSmeConnectCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__)
1110 /*******************************************************************************
1112 NAME
1113 CsrWifiSmeConnectionConfigGetReqSend
1115 DESCRIPTION
1116 This primitive gets the value of the ConnectionConfig parameter.
1118 PARAMETERS
1119 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1120 interfaceTag - Interface Identifier; unique identifier of an interface
1122 *******************************************************************************/
1123 #define CsrWifiSmeConnectionConfigGetReqCreate(msg__, dst__, src__, interfaceTag__) \
1124 msg__ = kmalloc(sizeof(CsrWifiSmeConnectionConfigGetReq), GFP_KERNEL); \
1125 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECTION_CONFIG_GET_REQ, dst__, src__); \
1126 msg__->interfaceTag = (interfaceTag__);
1128 #define CsrWifiSmeConnectionConfigGetReqSendTo(dst__, src__, interfaceTag__) \
1130 CsrWifiSmeConnectionConfigGetReq *msg__; \
1131 CsrWifiSmeConnectionConfigGetReqCreate(msg__, dst__, src__, interfaceTag__); \
1132 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1135 #define CsrWifiSmeConnectionConfigGetReqSend(src__, interfaceTag__) \
1136 CsrWifiSmeConnectionConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
1138 /*******************************************************************************
1140 NAME
1141 CsrWifiSmeConnectionConfigGetCfmSend
1143 DESCRIPTION
1144 This primitive reports the result of the request.
1146 PARAMETERS
1147 queue - Destination Task Queue
1148 interfaceTag - Interface Identifier; unique identifier of an interface
1149 status - Reports the result of the request
1150 connectionConfig - Parameters used by the SME for selecting a network
1152 *******************************************************************************/
1153 #define CsrWifiSmeConnectionConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectionConfig__) \
1154 msg__ = kmalloc(sizeof(CsrWifiSmeConnectionConfigGetCfm), GFP_KERNEL); \
1155 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECTION_CONFIG_GET_CFM, dst__, src__); \
1156 msg__->interfaceTag = (interfaceTag__); \
1157 msg__->status = (status__); \
1158 msg__->connectionConfig = (connectionConfig__);
1160 #define CsrWifiSmeConnectionConfigGetCfmSendTo(dst__, src__, interfaceTag__, status__, connectionConfig__) \
1162 CsrWifiSmeConnectionConfigGetCfm *msg__; \
1163 CsrWifiSmeConnectionConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectionConfig__); \
1164 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1167 #define CsrWifiSmeConnectionConfigGetCfmSend(dst__, interfaceTag__, status__, connectionConfig__) \
1168 CsrWifiSmeConnectionConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, connectionConfig__)
1170 /*******************************************************************************
1172 NAME
1173 CsrWifiSmeConnectionInfoGetReqSend
1175 DESCRIPTION
1176 This primitive gets the value of the ConnectionInfo parameter.
1178 PARAMETERS
1179 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1180 interfaceTag - Interface Identifier; unique identifier of an interface
1182 *******************************************************************************/
1183 #define CsrWifiSmeConnectionInfoGetReqCreate(msg__, dst__, src__, interfaceTag__) \
1184 msg__ = kmalloc(sizeof(CsrWifiSmeConnectionInfoGetReq), GFP_KERNEL); \
1185 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECTION_INFO_GET_REQ, dst__, src__); \
1186 msg__->interfaceTag = (interfaceTag__);
1188 #define CsrWifiSmeConnectionInfoGetReqSendTo(dst__, src__, interfaceTag__) \
1190 CsrWifiSmeConnectionInfoGetReq *msg__; \
1191 CsrWifiSmeConnectionInfoGetReqCreate(msg__, dst__, src__, interfaceTag__); \
1192 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1195 #define CsrWifiSmeConnectionInfoGetReqSend(src__, interfaceTag__) \
1196 CsrWifiSmeConnectionInfoGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
1198 /*******************************************************************************
1200 NAME
1201 CsrWifiSmeConnectionInfoGetCfmSend
1203 DESCRIPTION
1204 This primitive reports the result of the request.
1206 PARAMETERS
1207 queue - Destination Task Queue
1208 interfaceTag - Interface Identifier; unique identifier of an interface
1209 status - Reports the result of the request
1210 connectionInfo - Information about the current connection
1212 *******************************************************************************/
1213 #define CsrWifiSmeConnectionInfoGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectionInfo__) \
1214 msg__ = kmalloc(sizeof(CsrWifiSmeConnectionInfoGetCfm), GFP_KERNEL); \
1215 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECTION_INFO_GET_CFM, dst__, src__); \
1216 msg__->interfaceTag = (interfaceTag__); \
1217 msg__->status = (status__); \
1218 msg__->connectionInfo = (connectionInfo__);
1220 #define CsrWifiSmeConnectionInfoGetCfmSendTo(dst__, src__, interfaceTag__, status__, connectionInfo__) \
1222 CsrWifiSmeConnectionInfoGetCfm *msg__; \
1223 CsrWifiSmeConnectionInfoGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectionInfo__); \
1224 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1227 #define CsrWifiSmeConnectionInfoGetCfmSend(dst__, interfaceTag__, status__, connectionInfo__) \
1228 CsrWifiSmeConnectionInfoGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, connectionInfo__)
1230 /*******************************************************************************
1232 NAME
1233 CsrWifiSmeConnectionQualityIndSend
1235 DESCRIPTION
1236 The SME sends this primitive to all the tasks that have registered to
1237 receive it whenever the value of the current connection quality
1238 parameters change by more than a certain configurable amount.
1239 The wireless manager application may configure the trigger thresholds for
1240 this indication using the field in smeConfig parameter of
1241 CSR_WIFI_SME_SME_CONFIG_SET_REQ.
1242 Connection quality messages can be suppressed by setting both thresholds
1243 to zero.
1245 PARAMETERS
1246 queue - Destination Task Queue
1247 interfaceTag - Interface Identifier; unique identifier of an interface
1248 linkQuality - Indicates the quality of the link
1250 *******************************************************************************/
1251 #define CsrWifiSmeConnectionQualityIndCreate(msg__, dst__, src__, interfaceTag__, linkQuality__) \
1252 msg__ = kmalloc(sizeof(CsrWifiSmeConnectionQualityInd), GFP_KERNEL); \
1253 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECTION_QUALITY_IND, dst__, src__); \
1254 msg__->interfaceTag = (interfaceTag__); \
1255 msg__->linkQuality = (linkQuality__);
1257 #define CsrWifiSmeConnectionQualityIndSendTo(dst__, src__, interfaceTag__, linkQuality__) \
1259 CsrWifiSmeConnectionQualityInd *msg__; \
1260 CsrWifiSmeConnectionQualityIndCreate(msg__, dst__, src__, interfaceTag__, linkQuality__); \
1261 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1264 #define CsrWifiSmeConnectionQualityIndSend(dst__, interfaceTag__, linkQuality__) \
1265 CsrWifiSmeConnectionQualityIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, linkQuality__)
1267 /*******************************************************************************
1269 NAME
1270 CsrWifiSmeConnectionStatsGetReqSend
1272 DESCRIPTION
1273 This primitive gets the value of the ConnectionStats parameter.
1275 PARAMETERS
1276 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1277 interfaceTag - Interface Identifier; unique identifier of an interface
1279 *******************************************************************************/
1280 #define CsrWifiSmeConnectionStatsGetReqCreate(msg__, dst__, src__, interfaceTag__) \
1281 msg__ = kmalloc(sizeof(CsrWifiSmeConnectionStatsGetReq), GFP_KERNEL); \
1282 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECTION_STATS_GET_REQ, dst__, src__); \
1283 msg__->interfaceTag = (interfaceTag__);
1285 #define CsrWifiSmeConnectionStatsGetReqSendTo(dst__, src__, interfaceTag__) \
1287 CsrWifiSmeConnectionStatsGetReq *msg__; \
1288 CsrWifiSmeConnectionStatsGetReqCreate(msg__, dst__, src__, interfaceTag__); \
1289 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1292 #define CsrWifiSmeConnectionStatsGetReqSend(src__, interfaceTag__) \
1293 CsrWifiSmeConnectionStatsGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
1295 /*******************************************************************************
1297 NAME
1298 CsrWifiSmeConnectionStatsGetCfmSend
1300 DESCRIPTION
1301 This primitive reports the result of the request.
1303 PARAMETERS
1304 queue - Destination Task Queue
1305 interfaceTag - Interface Identifier; unique identifier of an interface
1306 status - Reports the result of the request
1307 connectionStats - Statistics for current connection.
1309 *******************************************************************************/
1310 #define CsrWifiSmeConnectionStatsGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectionStats__) \
1311 msg__ = kmalloc(sizeof(CsrWifiSmeConnectionStatsGetCfm), GFP_KERNEL); \
1312 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CONNECTION_STATS_GET_CFM, dst__, src__); \
1313 msg__->interfaceTag = (interfaceTag__); \
1314 msg__->status = (status__); \
1315 msg__->connectionStats = (connectionStats__);
1317 #define CsrWifiSmeConnectionStatsGetCfmSendTo(dst__, src__, interfaceTag__, status__, connectionStats__) \
1319 CsrWifiSmeConnectionStatsGetCfm *msg__; \
1320 CsrWifiSmeConnectionStatsGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectionStats__); \
1321 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1324 #define CsrWifiSmeConnectionStatsGetCfmSend(dst__, interfaceTag__, status__, connectionStats__) \
1325 CsrWifiSmeConnectionStatsGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, connectionStats__)
1327 /*******************************************************************************
1329 NAME
1330 CsrWifiSmeCoreDumpIndSend
1332 DESCRIPTION
1333 The SME will send this primitive to all the tasks that have registered to
1334 receive Wi-Fi Chip core dump data.
1335 The core dump data may be fragmented and sent using more than one
1336 indication.
1337 To indicate that all the data has been sent, the last indication contains
1338 a 'length' of 0 and 'data' of NULL.
1340 PARAMETERS
1341 queue - Destination Task Queue
1342 dataLength - Number of bytes in the buffer pointed to by 'data'
1343 data - Pointer to the buffer containing 'dataLength' bytes of core
1344 dump data
1346 *******************************************************************************/
1347 #define CsrWifiSmeCoreDumpIndCreate(msg__, dst__, src__, dataLength__, data__) \
1348 msg__ = kmalloc(sizeof(CsrWifiSmeCoreDumpInd), GFP_KERNEL); \
1349 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_CORE_DUMP_IND, dst__, src__); \
1350 msg__->dataLength = (dataLength__); \
1351 msg__->data = (data__);
1353 #define CsrWifiSmeCoreDumpIndSendTo(dst__, src__, dataLength__, data__) \
1355 CsrWifiSmeCoreDumpInd *msg__; \
1356 CsrWifiSmeCoreDumpIndCreate(msg__, dst__, src__, dataLength__, data__); \
1357 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1360 #define CsrWifiSmeCoreDumpIndSend(dst__, dataLength__, data__) \
1361 CsrWifiSmeCoreDumpIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, dataLength__, data__)
1363 /*******************************************************************************
1365 NAME
1366 CsrWifiSmeDeactivateReqSend
1368 DESCRIPTION
1369 The WMA sends this primitive to deactivate the SME.
1371 PARAMETERS
1372 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1374 *******************************************************************************/
1375 #define CsrWifiSmeDeactivateReqCreate(msg__, dst__, src__) \
1376 msg__ = kmalloc(sizeof(CsrWifiSmeDeactivateReq), GFP_KERNEL); \
1377 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_DEACTIVATE_REQ, dst__, src__);
1379 #define CsrWifiSmeDeactivateReqSendTo(dst__, src__) \
1381 CsrWifiSmeDeactivateReq *msg__; \
1382 CsrWifiSmeDeactivateReqCreate(msg__, dst__, src__); \
1383 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1386 #define CsrWifiSmeDeactivateReqSend(src__) \
1387 CsrWifiSmeDeactivateReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
1389 /*******************************************************************************
1391 NAME
1392 CsrWifiSmeDeactivateCfmSend
1394 DESCRIPTION
1395 The SME sends this primitive when the deactivation is complete.
1396 The WMA cannot send any more primitives until it actives the SME again
1397 sending another CSR_WIFI_SME_ACTIVATE_REQ.
1399 PARAMETERS
1400 queue - Destination Task Queue
1401 status - Reports the result of the request
1403 *******************************************************************************/
1404 #define CsrWifiSmeDeactivateCfmCreate(msg__, dst__, src__, status__) \
1405 msg__ = kmalloc(sizeof(CsrWifiSmeDeactivateCfm), GFP_KERNEL); \
1406 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_DEACTIVATE_CFM, dst__, src__); \
1407 msg__->status = (status__);
1409 #define CsrWifiSmeDeactivateCfmSendTo(dst__, src__, status__) \
1411 CsrWifiSmeDeactivateCfm *msg__; \
1412 CsrWifiSmeDeactivateCfmCreate(msg__, dst__, src__, status__); \
1413 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1416 #define CsrWifiSmeDeactivateCfmSend(dst__, status__) \
1417 CsrWifiSmeDeactivateCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
1419 /*******************************************************************************
1421 NAME
1422 CsrWifiSmeDisconnectReqSend
1424 DESCRIPTION
1425 The wireless manager application may disconnect from the current network
1426 by calling this primitive
1428 PARAMETERS
1429 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1430 interfaceTag - Interface Identifier; unique identifier of an interface
1432 *******************************************************************************/
1433 #define CsrWifiSmeDisconnectReqCreate(msg__, dst__, src__, interfaceTag__) \
1434 msg__ = kmalloc(sizeof(CsrWifiSmeDisconnectReq), GFP_KERNEL); \
1435 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_DISCONNECT_REQ, dst__, src__); \
1436 msg__->interfaceTag = (interfaceTag__);
1438 #define CsrWifiSmeDisconnectReqSendTo(dst__, src__, interfaceTag__) \
1440 CsrWifiSmeDisconnectReq *msg__; \
1441 CsrWifiSmeDisconnectReqCreate(msg__, dst__, src__, interfaceTag__); \
1442 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1445 #define CsrWifiSmeDisconnectReqSend(src__, interfaceTag__) \
1446 CsrWifiSmeDisconnectReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
1448 /*******************************************************************************
1450 NAME
1451 CsrWifiSmeDisconnectCfmSend
1453 DESCRIPTION
1454 On reception of CSR_WIFI_SME_DISCONNECT_REQ the SME will perform a
1455 disconnect operation, sending a CsrWifiSmeMediaStatusInd with
1456 CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED and then call this primitive when
1457 disconnection is complete.
1459 PARAMETERS
1460 queue - Destination Task Queue
1461 interfaceTag - Interface Identifier; unique identifier of an interface
1462 status - Reports the result of the request
1464 *******************************************************************************/
1465 #define CsrWifiSmeDisconnectCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
1466 msg__ = kmalloc(sizeof(CsrWifiSmeDisconnectCfm), GFP_KERNEL); \
1467 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_DISCONNECT_CFM, dst__, src__); \
1468 msg__->interfaceTag = (interfaceTag__); \
1469 msg__->status = (status__);
1471 #define CsrWifiSmeDisconnectCfmSendTo(dst__, src__, interfaceTag__, status__) \
1473 CsrWifiSmeDisconnectCfm *msg__; \
1474 CsrWifiSmeDisconnectCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
1475 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1478 #define CsrWifiSmeDisconnectCfmSend(dst__, interfaceTag__, status__) \
1479 CsrWifiSmeDisconnectCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__)
1481 /*******************************************************************************
1483 NAME
1484 CsrWifiSmeErrorIndSend
1486 DESCRIPTION
1487 Important error message indicating a error of some importance
1489 PARAMETERS
1490 queue - Destination Task Queue
1491 errorMessage - Contains the error message.
1493 *******************************************************************************/
1494 #define CsrWifiSmeErrorIndCreate(msg__, dst__, src__, errorMessage__) \
1495 msg__ = kmalloc(sizeof(CsrWifiSmeErrorInd), GFP_KERNEL); \
1496 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ERROR_IND, dst__, src__); \
1497 msg__->errorMessage = (errorMessage__);
1499 #define CsrWifiSmeErrorIndSendTo(dst__, src__, errorMessage__) \
1501 CsrWifiSmeErrorInd *msg__; \
1502 CsrWifiSmeErrorIndCreate(msg__, dst__, src__, errorMessage__); \
1503 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1506 #define CsrWifiSmeErrorIndSend(dst__, errorMessage__) \
1507 CsrWifiSmeErrorIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, errorMessage__)
1509 /*******************************************************************************
1511 NAME
1512 CsrWifiSmeEventMaskSetReqSend
1514 DESCRIPTION
1515 The wireless manager application may register with the SME to receive
1516 notification of interesting events. Indications will be sent only if the
1517 wireless manager explicitly registers to be notified of that event.
1518 indMask is a bit mask of values defined in CsrWifiSmeIndicationsMask.
1520 PARAMETERS
1521 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1522 indMask - Set mask with values from CsrWifiSmeIndications
1524 *******************************************************************************/
1525 #define CsrWifiSmeEventMaskSetReqCreate(msg__, dst__, src__, indMask__) \
1526 msg__ = kmalloc(sizeof(CsrWifiSmeEventMaskSetReq), GFP_KERNEL); \
1527 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_EVENT_MASK_SET_REQ, dst__, src__); \
1528 msg__->indMask = (indMask__);
1530 #define CsrWifiSmeEventMaskSetReqSendTo(dst__, src__, indMask__) \
1532 CsrWifiSmeEventMaskSetReq *msg__; \
1533 CsrWifiSmeEventMaskSetReqCreate(msg__, dst__, src__, indMask__); \
1534 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1537 #define CsrWifiSmeEventMaskSetReqSend(src__, indMask__) \
1538 CsrWifiSmeEventMaskSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, indMask__)
1540 /*******************************************************************************
1542 NAME
1543 CsrWifiSmeEventMaskSetCfmSend
1545 DESCRIPTION
1546 The SME calls the primitive to report the result of the request
1547 primitive.
1549 PARAMETERS
1550 queue - Destination Task Queue
1551 status - Reports the result of the request
1553 *******************************************************************************/
1554 #define CsrWifiSmeEventMaskSetCfmCreate(msg__, dst__, src__, status__) \
1555 msg__ = kmalloc(sizeof(CsrWifiSmeEventMaskSetCfm), GFP_KERNEL); \
1556 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_EVENT_MASK_SET_CFM, dst__, src__); \
1557 msg__->status = (status__);
1559 #define CsrWifiSmeEventMaskSetCfmSendTo(dst__, src__, status__) \
1561 CsrWifiSmeEventMaskSetCfm *msg__; \
1562 CsrWifiSmeEventMaskSetCfmCreate(msg__, dst__, src__, status__); \
1563 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1566 #define CsrWifiSmeEventMaskSetCfmSend(dst__, status__) \
1567 CsrWifiSmeEventMaskSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
1569 /*******************************************************************************
1571 NAME
1572 CsrWifiSmeHostConfigGetReqSend
1574 DESCRIPTION
1575 This primitive gets the value of the hostConfig parameter.
1577 PARAMETERS
1578 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1579 interfaceTag - Interface Identifier; unique identifier of an interface
1581 *******************************************************************************/
1582 #define CsrWifiSmeHostConfigGetReqCreate(msg__, dst__, src__, interfaceTag__) \
1583 msg__ = kmalloc(sizeof(CsrWifiSmeHostConfigGetReq), GFP_KERNEL); \
1584 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_HOST_CONFIG_GET_REQ, dst__, src__); \
1585 msg__->interfaceTag = (interfaceTag__);
1587 #define CsrWifiSmeHostConfigGetReqSendTo(dst__, src__, interfaceTag__) \
1589 CsrWifiSmeHostConfigGetReq *msg__; \
1590 CsrWifiSmeHostConfigGetReqCreate(msg__, dst__, src__, interfaceTag__); \
1591 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1594 #define CsrWifiSmeHostConfigGetReqSend(src__, interfaceTag__) \
1595 CsrWifiSmeHostConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
1597 /*******************************************************************************
1599 NAME
1600 CsrWifiSmeHostConfigGetCfmSend
1602 DESCRIPTION
1603 This primitive reports the result of the request.
1605 PARAMETERS
1606 queue - Destination Task Queue
1607 interfaceTag - Interface Identifier; unique identifier of an interface
1608 status - Reports the result of the request
1609 hostConfig - Current host power state.
1611 *******************************************************************************/
1612 #define CsrWifiSmeHostConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, hostConfig__) \
1613 msg__ = kmalloc(sizeof(CsrWifiSmeHostConfigGetCfm), GFP_KERNEL); \
1614 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_HOST_CONFIG_GET_CFM, dst__, src__); \
1615 msg__->interfaceTag = (interfaceTag__); \
1616 msg__->status = (status__); \
1617 msg__->hostConfig = (hostConfig__);
1619 #define CsrWifiSmeHostConfigGetCfmSendTo(dst__, src__, interfaceTag__, status__, hostConfig__) \
1621 CsrWifiSmeHostConfigGetCfm *msg__; \
1622 CsrWifiSmeHostConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, hostConfig__); \
1623 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1626 #define CsrWifiSmeHostConfigGetCfmSend(dst__, interfaceTag__, status__, hostConfig__) \
1627 CsrWifiSmeHostConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, hostConfig__)
1629 /*******************************************************************************
1631 NAME
1632 CsrWifiSmeHostConfigSetReqSend
1634 DESCRIPTION
1635 This primitive sets the value of the hostConfig parameter.
1637 PARAMETERS
1638 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1639 interfaceTag - Interface Identifier; unique identifier of an interface
1640 hostConfig - Communicates a change of host power state (for example, on
1641 mains power, on battery power etc) and of the periodicity of
1642 traffic data
1644 *******************************************************************************/
1645 #define CsrWifiSmeHostConfigSetReqCreate(msg__, dst__, src__, interfaceTag__, hostConfig__) \
1646 msg__ = kmalloc(sizeof(CsrWifiSmeHostConfigSetReq), GFP_KERNEL); \
1647 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_HOST_CONFIG_SET_REQ, dst__, src__); \
1648 msg__->interfaceTag = (interfaceTag__); \
1649 msg__->hostConfig = (hostConfig__);
1651 #define CsrWifiSmeHostConfigSetReqSendTo(dst__, src__, interfaceTag__, hostConfig__) \
1653 CsrWifiSmeHostConfigSetReq *msg__; \
1654 CsrWifiSmeHostConfigSetReqCreate(msg__, dst__, src__, interfaceTag__, hostConfig__); \
1655 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1658 #define CsrWifiSmeHostConfigSetReqSend(src__, interfaceTag__, hostConfig__) \
1659 CsrWifiSmeHostConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, hostConfig__)
1661 /*******************************************************************************
1663 NAME
1664 CsrWifiSmeHostConfigSetCfmSend
1666 DESCRIPTION
1667 This primitive reports the result of the request.
1669 PARAMETERS
1670 queue - Destination Task Queue
1671 interfaceTag - Interface Identifier; unique identifier of an interface
1672 status - Reports the result of the request
1674 *******************************************************************************/
1675 #define CsrWifiSmeHostConfigSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
1676 msg__ = kmalloc(sizeof(CsrWifiSmeHostConfigSetCfm), GFP_KERNEL); \
1677 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_HOST_CONFIG_SET_CFM, dst__, src__); \
1678 msg__->interfaceTag = (interfaceTag__); \
1679 msg__->status = (status__);
1681 #define CsrWifiSmeHostConfigSetCfmSendTo(dst__, src__, interfaceTag__, status__) \
1683 CsrWifiSmeHostConfigSetCfm *msg__; \
1684 CsrWifiSmeHostConfigSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
1685 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1688 #define CsrWifiSmeHostConfigSetCfmSend(dst__, interfaceTag__, status__) \
1689 CsrWifiSmeHostConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__)
1691 /*******************************************************************************
1693 NAME
1694 CsrWifiSmeIbssStationIndSend
1696 DESCRIPTION
1697 The SME will send this primitive to indicate that a station has joined or
1698 left the ad-hoc network.
1700 PARAMETERS
1701 queue - Destination Task Queue
1702 address - MAC address of the station that has joined or left
1703 isconnected - TRUE if the station joined, FALSE if the station left
1705 *******************************************************************************/
1706 #define CsrWifiSmeIbssStationIndCreate(msg__, dst__, src__, address__, isconnected__) \
1707 msg__ = kmalloc(sizeof(CsrWifiSmeIbssStationInd), GFP_KERNEL); \
1708 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_IBSS_STATION_IND, dst__, src__); \
1709 msg__->address = (address__); \
1710 msg__->isconnected = (isconnected__);
1712 #define CsrWifiSmeIbssStationIndSendTo(dst__, src__, address__, isconnected__) \
1714 CsrWifiSmeIbssStationInd *msg__; \
1715 CsrWifiSmeIbssStationIndCreate(msg__, dst__, src__, address__, isconnected__); \
1716 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1719 #define CsrWifiSmeIbssStationIndSend(dst__, address__, isconnected__) \
1720 CsrWifiSmeIbssStationIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, address__, isconnected__)
1722 /*******************************************************************************
1724 NAME
1725 CsrWifiSmeInfoIndSend
1727 DESCRIPTION
1728 Message indicating a some info about current activity. Mostly of interest
1729 in testing but may be useful in the field.
1731 PARAMETERS
1732 queue - Destination Task Queue
1733 infoMessage - Contains the message.
1735 *******************************************************************************/
1736 #define CsrWifiSmeInfoIndCreate(msg__, dst__, src__, infoMessage__) \
1737 msg__ = kmalloc(sizeof(CsrWifiSmeInfoInd), GFP_KERNEL); \
1738 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_INFO_IND, dst__, src__); \
1739 msg__->infoMessage = (infoMessage__);
1741 #define CsrWifiSmeInfoIndSendTo(dst__, src__, infoMessage__) \
1743 CsrWifiSmeInfoInd *msg__; \
1744 CsrWifiSmeInfoIndCreate(msg__, dst__, src__, infoMessage__); \
1745 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1748 #define CsrWifiSmeInfoIndSend(dst__, infoMessage__) \
1749 CsrWifiSmeInfoIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, infoMessage__)
1751 /*******************************************************************************
1753 NAME
1754 CsrWifiSmeInterfaceCapabilityGetReqSend
1756 DESCRIPTION
1757 The Wireless Manager calls this primitive to ask the SME for the
1758 capabilities of the supported interfaces
1760 PARAMETERS
1761 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1763 *******************************************************************************/
1764 #define CsrWifiSmeInterfaceCapabilityGetReqCreate(msg__, dst__, src__) \
1765 msg__ = kmalloc(sizeof(CsrWifiSmeInterfaceCapabilityGetReq), GFP_KERNEL); \
1766 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_INTERFACE_CAPABILITY_GET_REQ, dst__, src__);
1768 #define CsrWifiSmeInterfaceCapabilityGetReqSendTo(dst__, src__) \
1770 CsrWifiSmeInterfaceCapabilityGetReq *msg__; \
1771 CsrWifiSmeInterfaceCapabilityGetReqCreate(msg__, dst__, src__); \
1772 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1775 #define CsrWifiSmeInterfaceCapabilityGetReqSend(src__) \
1776 CsrWifiSmeInterfaceCapabilityGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
1778 /*******************************************************************************
1780 NAME
1781 CsrWifiSmeInterfaceCapabilityGetCfmSend
1783 DESCRIPTION
1784 This primitive reports the result of the request.
1786 PARAMETERS
1787 queue - Destination Task Queue
1788 status - Result of the request
1789 numInterfaces - Number of the interfaces supported
1790 capBitmap - Points to the list of capabilities bitmaps provided for each
1791 interface.
1792 The bits represent the following capabilities:
1793 -bits 7 to 4-Reserved
1794 -bit 3-AMP
1795 -bit 2-P2P
1796 -bit 1-AP
1797 -bit 0-STA
1799 *******************************************************************************/
1800 #define CsrWifiSmeInterfaceCapabilityGetCfmCreate(msg__, dst__, src__, status__, numInterfaces__, capBitmap__) \
1801 msg__ = kmalloc(sizeof(CsrWifiSmeInterfaceCapabilityGetCfm), GFP_KERNEL); \
1802 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_INTERFACE_CAPABILITY_GET_CFM, dst__, src__); \
1803 msg__->status = (status__); \
1804 msg__->numInterfaces = (numInterfaces__); \
1805 memcpy(msg__->capBitmap, (capBitmap__), sizeof(u8) * 2);
1807 #define CsrWifiSmeInterfaceCapabilityGetCfmSendTo(dst__, src__, status__, numInterfaces__, capBitmap__) \
1809 CsrWifiSmeInterfaceCapabilityGetCfm *msg__; \
1810 CsrWifiSmeInterfaceCapabilityGetCfmCreate(msg__, dst__, src__, status__, numInterfaces__, capBitmap__); \
1811 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1814 #define CsrWifiSmeInterfaceCapabilityGetCfmSend(dst__, status__, numInterfaces__, capBitmap__) \
1815 CsrWifiSmeInterfaceCapabilityGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, numInterfaces__, capBitmap__)
1817 /*******************************************************************************
1819 NAME
1820 CsrWifiSmeKeyReqSend
1822 DESCRIPTION
1823 The wireless manager application calls this primitive to add or remove
1824 keys that the chip should use for encryption of data.
1825 The interface allows the wireless manager application to add and remove
1826 keys according to the specified action.
1828 PARAMETERS
1829 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1830 interfaceTag - Interface Identifier; unique identifier of an interface
1831 action - The value of the CsrWifiSmeListAction parameter instructs the
1832 driver to modify or provide the list of keys.
1833 CSR_WIFI_SME_LIST_ACTION_GET is not supported here.
1834 key - Key to be added or removed
1836 *******************************************************************************/
1837 #define CsrWifiSmeKeyReqCreate(msg__, dst__, src__, interfaceTag__, action__, key__) \
1838 msg__ = kmalloc(sizeof(CsrWifiSmeKeyReq), GFP_KERNEL); \
1839 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_KEY_REQ, dst__, src__); \
1840 msg__->interfaceTag = (interfaceTag__); \
1841 msg__->action = (action__); \
1842 msg__->key = (key__);
1844 #define CsrWifiSmeKeyReqSendTo(dst__, src__, interfaceTag__, action__, key__) \
1846 CsrWifiSmeKeyReq *msg__; \
1847 CsrWifiSmeKeyReqCreate(msg__, dst__, src__, interfaceTag__, action__, key__); \
1848 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1851 #define CsrWifiSmeKeyReqSend(src__, interfaceTag__, action__, key__) \
1852 CsrWifiSmeKeyReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, action__, key__)
1854 /*******************************************************************************
1856 NAME
1857 CsrWifiSmeKeyCfmSend
1859 DESCRIPTION
1860 The SME calls the primitive to report the result of the request
1861 primitive.
1863 PARAMETERS
1864 queue - Destination Task Queue
1865 interfaceTag - Interface Identifier; unique identifier of an interface
1866 status - Reports the result of the request
1867 action - Action in the request
1868 keyType - Type of the key added/deleted
1869 peerMacAddress - Peer MAC Address of the key added/deleted
1871 *******************************************************************************/
1872 #define CsrWifiSmeKeyCfmCreate(msg__, dst__, src__, interfaceTag__, status__, action__, keyType__, peerMacAddress__) \
1873 msg__ = kmalloc(sizeof(CsrWifiSmeKeyCfm), GFP_KERNEL); \
1874 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_KEY_CFM, dst__, src__); \
1875 msg__->interfaceTag = (interfaceTag__); \
1876 msg__->status = (status__); \
1877 msg__->action = (action__); \
1878 msg__->keyType = (keyType__); \
1879 msg__->peerMacAddress = (peerMacAddress__);
1881 #define CsrWifiSmeKeyCfmSendTo(dst__, src__, interfaceTag__, status__, action__, keyType__, peerMacAddress__) \
1883 CsrWifiSmeKeyCfm *msg__; \
1884 CsrWifiSmeKeyCfmCreate(msg__, dst__, src__, interfaceTag__, status__, action__, keyType__, peerMacAddress__); \
1885 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1888 #define CsrWifiSmeKeyCfmSend(dst__, interfaceTag__, status__, action__, keyType__, peerMacAddress__) \
1889 CsrWifiSmeKeyCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, action__, keyType__, peerMacAddress__)
1891 /*******************************************************************************
1893 NAME
1894 CsrWifiSmeLinkQualityGetReqSend
1896 DESCRIPTION
1897 This primitive gets the value of the LinkQuality parameter.
1899 PARAMETERS
1900 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
1901 interfaceTag - Interface Identifier; unique identifier of an interface
1903 *******************************************************************************/
1904 #define CsrWifiSmeLinkQualityGetReqCreate(msg__, dst__, src__, interfaceTag__) \
1905 msg__ = kmalloc(sizeof(CsrWifiSmeLinkQualityGetReq), GFP_KERNEL); \
1906 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_LINK_QUALITY_GET_REQ, dst__, src__); \
1907 msg__->interfaceTag = (interfaceTag__);
1909 #define CsrWifiSmeLinkQualityGetReqSendTo(dst__, src__, interfaceTag__) \
1911 CsrWifiSmeLinkQualityGetReq *msg__; \
1912 CsrWifiSmeLinkQualityGetReqCreate(msg__, dst__, src__, interfaceTag__); \
1913 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
1916 #define CsrWifiSmeLinkQualityGetReqSend(src__, interfaceTag__) \
1917 CsrWifiSmeLinkQualityGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
1919 /*******************************************************************************
1921 NAME
1922 CsrWifiSmeLinkQualityGetCfmSend
1924 DESCRIPTION
1925 This primitive reports the result of the request.
1927 PARAMETERS
1928 queue - Destination Task Queue
1929 interfaceTag - Interface Identifier; unique identifier of an interface
1930 status - Reports the result of the request
1931 linkQuality - Indicates the quality of the link
1933 *******************************************************************************/
1934 #define CsrWifiSmeLinkQualityGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, linkQuality__) \
1935 msg__ = kmalloc(sizeof(CsrWifiSmeLinkQualityGetCfm), GFP_KERNEL); \
1936 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_LINK_QUALITY_GET_CFM, dst__, src__); \
1937 msg__->interfaceTag = (interfaceTag__); \
1938 msg__->status = (status__); \
1939 msg__->linkQuality = (linkQuality__);
1941 #define CsrWifiSmeLinkQualityGetCfmSendTo(dst__, src__, interfaceTag__, status__, linkQuality__) \
1943 CsrWifiSmeLinkQualityGetCfm *msg__; \
1944 CsrWifiSmeLinkQualityGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, linkQuality__); \
1945 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1948 #define CsrWifiSmeLinkQualityGetCfmSend(dst__, interfaceTag__, status__, linkQuality__) \
1949 CsrWifiSmeLinkQualityGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, linkQuality__)
1951 /*******************************************************************************
1953 NAME
1954 CsrWifiSmeMediaStatusIndSend
1956 DESCRIPTION
1957 The SME sends this primitive to all the tasks that have registered to
1958 receive it when a network connection is established, lost or has moved to
1959 another AP.
1961 PARAMETERS
1962 queue - Destination Task Queue
1963 interfaceTag - Interface Identifier; unique identifier of an interface
1964 mediaStatus - Indicates the media status
1965 connectionInfo - This parameter is relevant only if the mediaStatus is
1966 CSR_WIFI_SME_MEDIA_STATUS_CONNECTED:
1967 it points to the connection information for the new network
1968 disassocReason - This parameter is relevant only if the mediaStatus is
1969 CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED:
1970 if a disassociation has occurred it gives the reason of the
1971 disassociation
1972 deauthReason - This parameter is relevant only if the mediaStatus is
1973 CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED:
1974 if a deauthentication has occurred it gives the reason of
1975 the deauthentication
1977 *******************************************************************************/
1978 #define CsrWifiSmeMediaStatusIndCreate(msg__, dst__, src__, interfaceTag__, mediaStatus__, connectionInfo__, disassocReason__, deauthReason__) \
1979 msg__ = kmalloc(sizeof(CsrWifiSmeMediaStatusInd), GFP_KERNEL); \
1980 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MEDIA_STATUS_IND, dst__, src__); \
1981 msg__->interfaceTag = (interfaceTag__); \
1982 msg__->mediaStatus = (mediaStatus__); \
1983 msg__->connectionInfo = (connectionInfo__); \
1984 msg__->disassocReason = (disassocReason__); \
1985 msg__->deauthReason = (deauthReason__);
1987 #define CsrWifiSmeMediaStatusIndSendTo(dst__, src__, interfaceTag__, mediaStatus__, connectionInfo__, disassocReason__, deauthReason__) \
1989 CsrWifiSmeMediaStatusInd *msg__; \
1990 CsrWifiSmeMediaStatusIndCreate(msg__, dst__, src__, interfaceTag__, mediaStatus__, connectionInfo__, disassocReason__, deauthReason__); \
1991 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
1994 #define CsrWifiSmeMediaStatusIndSend(dst__, interfaceTag__, mediaStatus__, connectionInfo__, disassocReason__, deauthReason__) \
1995 CsrWifiSmeMediaStatusIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, mediaStatus__, connectionInfo__, disassocReason__, deauthReason__)
1997 /*******************************************************************************
1999 NAME
2000 CsrWifiSmeMibConfigGetReqSend
2002 DESCRIPTION
2003 This primitive gets the value of the MibConfig parameter.
2005 PARAMETERS
2006 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2008 *******************************************************************************/
2009 #define CsrWifiSmeMibConfigGetReqCreate(msg__, dst__, src__) \
2010 msg__ = kmalloc(sizeof(CsrWifiSmeMibConfigGetReq), GFP_KERNEL); \
2011 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_CONFIG_GET_REQ, dst__, src__);
2013 #define CsrWifiSmeMibConfigGetReqSendTo(dst__, src__) \
2015 CsrWifiSmeMibConfigGetReq *msg__; \
2016 CsrWifiSmeMibConfigGetReqCreate(msg__, dst__, src__); \
2017 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2020 #define CsrWifiSmeMibConfigGetReqSend(src__) \
2021 CsrWifiSmeMibConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
2023 /*******************************************************************************
2025 NAME
2026 CsrWifiSmeMibConfigGetCfmSend
2028 DESCRIPTION
2029 This primitive reports the result of the request.
2031 PARAMETERS
2032 queue - Destination Task Queue
2033 status - Reports the result of the request
2034 mibConfig - Reports various IEEE 802.11 attributes as currently configured
2036 *******************************************************************************/
2037 #define CsrWifiSmeMibConfigGetCfmCreate(msg__, dst__, src__, status__, mibConfig__) \
2038 msg__ = kmalloc(sizeof(CsrWifiSmeMibConfigGetCfm), GFP_KERNEL); \
2039 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_CONFIG_GET_CFM, dst__, src__); \
2040 msg__->status = (status__); \
2041 msg__->mibConfig = (mibConfig__);
2043 #define CsrWifiSmeMibConfigGetCfmSendTo(dst__, src__, status__, mibConfig__) \
2045 CsrWifiSmeMibConfigGetCfm *msg__; \
2046 CsrWifiSmeMibConfigGetCfmCreate(msg__, dst__, src__, status__, mibConfig__); \
2047 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2050 #define CsrWifiSmeMibConfigGetCfmSend(dst__, status__, mibConfig__) \
2051 CsrWifiSmeMibConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, mibConfig__)
2053 /*******************************************************************************
2055 NAME
2056 CsrWifiSmeMibConfigSetReqSend
2058 DESCRIPTION
2059 This primitive sets the value of the MibConfig parameter.
2061 PARAMETERS
2062 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2063 mibConfig - Conveys the desired value of various IEEE 802.11 attributes as
2064 currently configured
2066 *******************************************************************************/
2067 #define CsrWifiSmeMibConfigSetReqCreate(msg__, dst__, src__, mibConfig__) \
2068 msg__ = kmalloc(sizeof(CsrWifiSmeMibConfigSetReq), GFP_KERNEL); \
2069 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_CONFIG_SET_REQ, dst__, src__); \
2070 msg__->mibConfig = (mibConfig__);
2072 #define CsrWifiSmeMibConfigSetReqSendTo(dst__, src__, mibConfig__) \
2074 CsrWifiSmeMibConfigSetReq *msg__; \
2075 CsrWifiSmeMibConfigSetReqCreate(msg__, dst__, src__, mibConfig__); \
2076 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2079 #define CsrWifiSmeMibConfigSetReqSend(src__, mibConfig__) \
2080 CsrWifiSmeMibConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, mibConfig__)
2082 /*******************************************************************************
2084 NAME
2085 CsrWifiSmeMibConfigSetCfmSend
2087 DESCRIPTION
2088 This primitive reports the result of the request.
2090 PARAMETERS
2091 queue - Destination Task Queue
2092 status - Reports the result of the request
2094 *******************************************************************************/
2095 #define CsrWifiSmeMibConfigSetCfmCreate(msg__, dst__, src__, status__) \
2096 msg__ = kmalloc(sizeof(CsrWifiSmeMibConfigSetCfm), GFP_KERNEL); \
2097 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_CONFIG_SET_CFM, dst__, src__); \
2098 msg__->status = (status__);
2100 #define CsrWifiSmeMibConfigSetCfmSendTo(dst__, src__, status__) \
2102 CsrWifiSmeMibConfigSetCfm *msg__; \
2103 CsrWifiSmeMibConfigSetCfmCreate(msg__, dst__, src__, status__); \
2104 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2107 #define CsrWifiSmeMibConfigSetCfmSend(dst__, status__) \
2108 CsrWifiSmeMibConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
2110 /*******************************************************************************
2112 NAME
2113 CsrWifiSmeMibGetCfmSend
2115 DESCRIPTION
2116 The SME calls this primitive to return the requested MIB variable values.
2118 PARAMETERS
2119 queue - Destination Task Queue
2120 status - Reports the result of the request
2121 mibAttributeLength - Length of mibAttribute
2122 mibAttribute - Points to the VarBind or VarBindList containing the
2123 names and values of the MIB variables requested
2125 *******************************************************************************/
2126 #define CsrWifiSmeMibGetCfmCreate(msg__, dst__, src__, status__, mibAttributeLength__, mibAttribute__) \
2127 msg__ = kmalloc(sizeof(CsrWifiSmeMibGetCfm), GFP_KERNEL); \
2128 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_GET_CFM, dst__, src__); \
2129 msg__->status = (status__); \
2130 msg__->mibAttributeLength = (mibAttributeLength__); \
2131 msg__->mibAttribute = (mibAttribute__);
2133 #define CsrWifiSmeMibGetCfmSendTo(dst__, src__, status__, mibAttributeLength__, mibAttribute__) \
2135 CsrWifiSmeMibGetCfm *msg__; \
2136 CsrWifiSmeMibGetCfmCreate(msg__, dst__, src__, status__, mibAttributeLength__, mibAttribute__); \
2137 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2140 #define CsrWifiSmeMibGetCfmSend(dst__, status__, mibAttributeLength__, mibAttribute__) \
2141 CsrWifiSmeMibGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, mibAttributeLength__, mibAttribute__)
2143 /*******************************************************************************
2145 NAME
2146 CsrWifiSmeMibGetNextReqSend
2148 DESCRIPTION
2149 To read a sequence of MIB parameters, for example a table, call this
2150 primitive to find the name of the next MIB variable
2152 PARAMETERS
2153 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2154 mibAttributeLength - Length of mibAttribute
2155 mibAttribute - Points to a VarBind or VarBindList containing the
2156 name(s) of the MIB variable(s) to search from.
2158 *******************************************************************************/
2159 #define CsrWifiSmeMibGetNextReqCreate(msg__, dst__, src__, mibAttributeLength__, mibAttribute__) \
2160 msg__ = kmalloc(sizeof(CsrWifiSmeMibGetNextReq), GFP_KERNEL); \
2161 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_GET_NEXT_REQ, dst__, src__); \
2162 msg__->mibAttributeLength = (mibAttributeLength__); \
2163 msg__->mibAttribute = (mibAttribute__);
2165 #define CsrWifiSmeMibGetNextReqSendTo(dst__, src__, mibAttributeLength__, mibAttribute__) \
2167 CsrWifiSmeMibGetNextReq *msg__; \
2168 CsrWifiSmeMibGetNextReqCreate(msg__, dst__, src__, mibAttributeLength__, mibAttribute__); \
2169 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2172 #define CsrWifiSmeMibGetNextReqSend(src__, mibAttributeLength__, mibAttribute__) \
2173 CsrWifiSmeMibGetNextReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, mibAttributeLength__, mibAttribute__)
2175 /*******************************************************************************
2177 NAME
2178 CsrWifiSmeMibGetNextCfmSend
2180 DESCRIPTION
2181 The SME calls this primitive to return the requested MIB name(s).
2182 The wireless manager application can then read the value of the MIB
2183 variable using CSR_WIFI_SME_MIB_GET_REQ, using the names provided.
2185 PARAMETERS
2186 queue - Destination Task Queue
2187 status - Reports the result of the request
2188 mibAttributeLength - Length of mibAttribute
2189 mibAttribute - Points to a VarBind or VarBindList containing the
2190 name(s) of the MIB variable(s) lexicographically
2191 following the name(s) given in the request
2193 *******************************************************************************/
2194 #define CsrWifiSmeMibGetNextCfmCreate(msg__, dst__, src__, status__, mibAttributeLength__, mibAttribute__) \
2195 msg__ = kmalloc(sizeof(CsrWifiSmeMibGetNextCfm), GFP_KERNEL); \
2196 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_GET_NEXT_CFM, dst__, src__); \
2197 msg__->status = (status__); \
2198 msg__->mibAttributeLength = (mibAttributeLength__); \
2199 msg__->mibAttribute = (mibAttribute__);
2201 #define CsrWifiSmeMibGetNextCfmSendTo(dst__, src__, status__, mibAttributeLength__, mibAttribute__) \
2203 CsrWifiSmeMibGetNextCfm *msg__; \
2204 CsrWifiSmeMibGetNextCfmCreate(msg__, dst__, src__, status__, mibAttributeLength__, mibAttribute__); \
2205 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2208 #define CsrWifiSmeMibGetNextCfmSend(dst__, status__, mibAttributeLength__, mibAttribute__) \
2209 CsrWifiSmeMibGetNextCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, mibAttributeLength__, mibAttribute__)
2211 /*******************************************************************************
2213 NAME
2214 CsrWifiSmeMibGetReqSend
2216 DESCRIPTION
2217 The wireless manager application calls this primitive to retrieve one or
2218 more MIB variables.
2220 PARAMETERS
2221 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2222 mibAttributeLength - Length of mibAttribute
2223 mibAttribute - Points to the VarBind or VarBindList containing the
2224 names of the MIB variables to be retrieved
2226 *******************************************************************************/
2227 #define CsrWifiSmeMibGetReqCreate(msg__, dst__, src__, mibAttributeLength__, mibAttribute__) \
2228 msg__ = kmalloc(sizeof(CsrWifiSmeMibGetReq), GFP_KERNEL); \
2229 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_GET_REQ, dst__, src__); \
2230 msg__->mibAttributeLength = (mibAttributeLength__); \
2231 msg__->mibAttribute = (mibAttribute__);
2233 #define CsrWifiSmeMibGetReqSendTo(dst__, src__, mibAttributeLength__, mibAttribute__) \
2235 CsrWifiSmeMibGetReq *msg__; \
2236 CsrWifiSmeMibGetReqCreate(msg__, dst__, src__, mibAttributeLength__, mibAttribute__); \
2237 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2240 #define CsrWifiSmeMibGetReqSend(src__, mibAttributeLength__, mibAttribute__) \
2241 CsrWifiSmeMibGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, mibAttributeLength__, mibAttribute__)
2243 /*******************************************************************************
2245 NAME
2246 CsrWifiSmeMibSetReqSend
2248 DESCRIPTION
2249 The SME provides raw access to the MIB on the chip, which may be used by
2250 some configuration or diagnostic utilities, but is not normally needed by
2251 the wireless manager application.
2252 The MIB access functions use BER encoded names (OID) of the MIB
2253 parameters and BER encoded values, as described in the chip Host
2254 Interface Protocol Specification.
2255 The MIB parameters are described in 'Wi-Fi 5.0.0 Management Information
2256 Base Reference Guide'.
2257 The wireless manager application calls this primitive to set one or more
2258 MIB variables
2260 PARAMETERS
2261 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2262 mibAttributeLength - Length of mibAttribute
2263 mibAttribute - Points to the VarBind or VarBindList containing the
2264 names and values of the MIB variables to set
2266 *******************************************************************************/
2267 #define CsrWifiSmeMibSetReqCreate(msg__, dst__, src__, mibAttributeLength__, mibAttribute__) \
2268 msg__ = kmalloc(sizeof(CsrWifiSmeMibSetReq), GFP_KERNEL); \
2269 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_SET_REQ, dst__, src__); \
2270 msg__->mibAttributeLength = (mibAttributeLength__); \
2271 msg__->mibAttribute = (mibAttribute__);
2273 #define CsrWifiSmeMibSetReqSendTo(dst__, src__, mibAttributeLength__, mibAttribute__) \
2275 CsrWifiSmeMibSetReq *msg__; \
2276 CsrWifiSmeMibSetReqCreate(msg__, dst__, src__, mibAttributeLength__, mibAttribute__); \
2277 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2280 #define CsrWifiSmeMibSetReqSend(src__, mibAttributeLength__, mibAttribute__) \
2281 CsrWifiSmeMibSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, mibAttributeLength__, mibAttribute__)
2283 /*******************************************************************************
2285 NAME
2286 CsrWifiSmeMibSetCfmSend
2288 DESCRIPTION
2289 The SME calls the primitive to report the result of the set primitive.
2291 PARAMETERS
2292 queue - Destination Task Queue
2293 status - Reports the result of the request
2295 *******************************************************************************/
2296 #define CsrWifiSmeMibSetCfmCreate(msg__, dst__, src__, status__) \
2297 msg__ = kmalloc(sizeof(CsrWifiSmeMibSetCfm), GFP_KERNEL); \
2298 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIB_SET_CFM, dst__, src__); \
2299 msg__->status = (status__);
2301 #define CsrWifiSmeMibSetCfmSendTo(dst__, src__, status__) \
2303 CsrWifiSmeMibSetCfm *msg__; \
2304 CsrWifiSmeMibSetCfmCreate(msg__, dst__, src__, status__); \
2305 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2308 #define CsrWifiSmeMibSetCfmSend(dst__, status__) \
2309 CsrWifiSmeMibSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
2311 /*******************************************************************************
2313 NAME
2314 CsrWifiSmeMicFailureIndSend
2316 DESCRIPTION
2317 The SME sends this primitive to all the tasks that have registered to
2318 receive it whenever the chip firmware reports a MIC failure.
2320 PARAMETERS
2321 queue - Destination Task Queue
2322 interfaceTag - Interface Identifier; unique identifier of an interface
2323 secondFailure - TRUE if this indication is for a second failure in 60
2324 seconds
2325 count - The number of MIC failure events since the connection was
2326 established
2327 address - MAC address of the transmitter that caused the MIC failure
2328 keyType - Type of key for which the failure occurred
2330 *******************************************************************************/
2331 #define CsrWifiSmeMicFailureIndCreate(msg__, dst__, src__, interfaceTag__, secondFailure__, count__, address__, keyType__) \
2332 msg__ = kmalloc(sizeof(CsrWifiSmeMicFailureInd), GFP_KERNEL); \
2333 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MIC_FAILURE_IND, dst__, src__); \
2334 msg__->interfaceTag = (interfaceTag__); \
2335 msg__->secondFailure = (secondFailure__); \
2336 msg__->count = (count__); \
2337 msg__->address = (address__); \
2338 msg__->keyType = (keyType__);
2340 #define CsrWifiSmeMicFailureIndSendTo(dst__, src__, interfaceTag__, secondFailure__, count__, address__, keyType__) \
2342 CsrWifiSmeMicFailureInd *msg__; \
2343 CsrWifiSmeMicFailureIndCreate(msg__, dst__, src__, interfaceTag__, secondFailure__, count__, address__, keyType__); \
2344 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2347 #define CsrWifiSmeMicFailureIndSend(dst__, interfaceTag__, secondFailure__, count__, address__, keyType__) \
2348 CsrWifiSmeMicFailureIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, secondFailure__, count__, address__, keyType__)
2350 /*******************************************************************************
2352 NAME
2353 CsrWifiSmeMulticastAddressReqSend
2355 DESCRIPTION
2356 The wireless manager application calls this primitive to specify the
2357 multicast addresses which the chip should recognise. The interface allows
2358 the wireless manager application to query, add, remove and flush the
2359 multicast addresses for the network interface according to the specified
2360 action.
2362 PARAMETERS
2363 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2364 interfaceTag - Interface Identifier; unique identifier of an interface
2365 action - The value of the CsrWifiSmeListAction parameter
2366 instructs the driver to modify or provide the list of
2367 MAC addresses.
2368 setAddressesCount - Number of MAC addresses sent with the primitive
2369 setAddresses - Pointer to the list of MAC Addresses sent with the
2370 primitive, set to NULL if none is sent.
2372 *******************************************************************************/
2373 #define CsrWifiSmeMulticastAddressReqCreate(msg__, dst__, src__, interfaceTag__, action__, setAddressesCount__, setAddresses__) \
2374 msg__ = kmalloc(sizeof(CsrWifiSmeMulticastAddressReq), GFP_KERNEL); \
2375 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MULTICAST_ADDRESS_REQ, dst__, src__); \
2376 msg__->interfaceTag = (interfaceTag__); \
2377 msg__->action = (action__); \
2378 msg__->setAddressesCount = (setAddressesCount__); \
2379 msg__->setAddresses = (setAddresses__);
2381 #define CsrWifiSmeMulticastAddressReqSendTo(dst__, src__, interfaceTag__, action__, setAddressesCount__, setAddresses__) \
2383 CsrWifiSmeMulticastAddressReq *msg__; \
2384 CsrWifiSmeMulticastAddressReqCreate(msg__, dst__, src__, interfaceTag__, action__, setAddressesCount__, setAddresses__); \
2385 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2388 #define CsrWifiSmeMulticastAddressReqSend(src__, interfaceTag__, action__, setAddressesCount__, setAddresses__) \
2389 CsrWifiSmeMulticastAddressReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, action__, setAddressesCount__, setAddresses__)
2391 /*******************************************************************************
2393 NAME
2394 CsrWifiSmeMulticastAddressCfmSend
2396 DESCRIPTION
2397 The SME will call this primitive when the operation is complete. For a
2398 GET action, this primitive reports the current list of MAC addresses.
2400 PARAMETERS
2401 queue - Destination Task Queue
2402 interfaceTag - Interface Identifier; unique identifier of an interface
2403 status - Reports the result of the request
2404 action - Action in the request
2405 getAddressesCount - This parameter is only relevant if action is
2406 CSR_WIFI_SME_LIST_ACTION_GET:
2407 number of MAC addresses sent with the primitive
2408 getAddresses - Pointer to the list of MAC Addresses sent with the
2409 primitive, set to NULL if none is sent.
2411 *******************************************************************************/
2412 #define CsrWifiSmeMulticastAddressCfmCreate(msg__, dst__, src__, interfaceTag__, status__, action__, getAddressesCount__, getAddresses__) \
2413 msg__ = kmalloc(sizeof(CsrWifiSmeMulticastAddressCfm), GFP_KERNEL); \
2414 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_MULTICAST_ADDRESS_CFM, dst__, src__); \
2415 msg__->interfaceTag = (interfaceTag__); \
2416 msg__->status = (status__); \
2417 msg__->action = (action__); \
2418 msg__->getAddressesCount = (getAddressesCount__); \
2419 msg__->getAddresses = (getAddresses__);
2421 #define CsrWifiSmeMulticastAddressCfmSendTo(dst__, src__, interfaceTag__, status__, action__, getAddressesCount__, getAddresses__) \
2423 CsrWifiSmeMulticastAddressCfm *msg__; \
2424 CsrWifiSmeMulticastAddressCfmCreate(msg__, dst__, src__, interfaceTag__, status__, action__, getAddressesCount__, getAddresses__); \
2425 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2428 #define CsrWifiSmeMulticastAddressCfmSend(dst__, interfaceTag__, status__, action__, getAddressesCount__, getAddresses__) \
2429 CsrWifiSmeMulticastAddressCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, action__, getAddressesCount__, getAddresses__)
2431 /*******************************************************************************
2433 NAME
2434 CsrWifiSmePacketFilterSetReqSend
2436 DESCRIPTION
2437 The wireless manager application should call this primitive to enable or
2438 disable filtering of broadcast packets: uninteresting broadcast packets
2439 will be dropped by the Wi-Fi chip, instead of passing them up to the
2440 host.
2441 This has the advantage of saving power in the host application processor
2442 as it removes the need to process unwanted packets.
2443 All broadcast packets are filtered according to the filter and the filter
2444 mode provided, except ARP packets, which are filtered using
2445 arpFilterAddress.
2446 Filters are not cumulative: only the parameters specified in the most
2447 recent successful request are significant.
2448 For more information, see 'UniFi Firmware API Specification'.
2450 PARAMETERS
2451 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2452 interfaceTag - Interface Identifier; unique identifier of an interface
2453 filterLength - Length of the filter in bytes.
2454 filterLength=0 disables the filter previously set
2455 filter - Points to the first byte of the filter provided, if any.
2456 This shall include zero or more instance of the
2457 information elements of one of these types
2458 * Traffic Classification (TCLAS) elements
2459 * WMM-SA TCLAS elements
2460 mode - Specifies whether the filter selects or excludes packets
2461 matching the filter
2462 arpFilterAddress - IPv4 address to be used for filtering the ARP packets.
2463 * If the specified address is the IPv4 broadcast address
2464 (255.255.255.255), all ARP packets are reported to the
2465 host,
2466 * If the specified address is NOT the IPv4 broadcast
2467 address, only ARP packets with the specified address in
2468 the Source or Target Protocol Address fields are reported
2469 to the host
2471 *******************************************************************************/
2472 #define CsrWifiSmePacketFilterSetReqCreate(msg__, dst__, src__, interfaceTag__, filterLength__, filter__, mode__, arpFilterAddress__) \
2473 msg__ = kmalloc(sizeof(CsrWifiSmePacketFilterSetReq), GFP_KERNEL); \
2474 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_PACKET_FILTER_SET_REQ, dst__, src__); \
2475 msg__->interfaceTag = (interfaceTag__); \
2476 msg__->filterLength = (filterLength__); \
2477 msg__->filter = (filter__); \
2478 msg__->mode = (mode__); \
2479 msg__->arpFilterAddress = (arpFilterAddress__);
2481 #define CsrWifiSmePacketFilterSetReqSendTo(dst__, src__, interfaceTag__, filterLength__, filter__, mode__, arpFilterAddress__) \
2483 CsrWifiSmePacketFilterSetReq *msg__; \
2484 CsrWifiSmePacketFilterSetReqCreate(msg__, dst__, src__, interfaceTag__, filterLength__, filter__, mode__, arpFilterAddress__); \
2485 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2488 #define CsrWifiSmePacketFilterSetReqSend(src__, interfaceTag__, filterLength__, filter__, mode__, arpFilterAddress__) \
2489 CsrWifiSmePacketFilterSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, filterLength__, filter__, mode__, arpFilterAddress__)
2491 /*******************************************************************************
2493 NAME
2494 CsrWifiSmePacketFilterSetCfmSend
2496 DESCRIPTION
2497 The SME calls the primitive to report the result of the set primitive.
2499 PARAMETERS
2500 queue - Destination Task Queue
2501 interfaceTag - Interface Identifier; unique identifier of an interface
2502 status - Reports the result of the request
2504 *******************************************************************************/
2505 #define CsrWifiSmePacketFilterSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
2506 msg__ = kmalloc(sizeof(CsrWifiSmePacketFilterSetCfm), GFP_KERNEL); \
2507 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_PACKET_FILTER_SET_CFM, dst__, src__); \
2508 msg__->interfaceTag = (interfaceTag__); \
2509 msg__->status = (status__);
2511 #define CsrWifiSmePacketFilterSetCfmSendTo(dst__, src__, interfaceTag__, status__) \
2513 CsrWifiSmePacketFilterSetCfm *msg__; \
2514 CsrWifiSmePacketFilterSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
2515 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2518 #define CsrWifiSmePacketFilterSetCfmSend(dst__, interfaceTag__, status__) \
2519 CsrWifiSmePacketFilterSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__)
2521 /*******************************************************************************
2523 NAME
2524 CsrWifiSmePermanentMacAddressGetReqSend
2526 DESCRIPTION
2527 This primitive retrieves the MAC address stored in EEPROM
2529 PARAMETERS
2530 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2532 *******************************************************************************/
2533 #define CsrWifiSmePermanentMacAddressGetReqCreate(msg__, dst__, src__) \
2534 msg__ = kmalloc(sizeof(CsrWifiSmePermanentMacAddressGetReq), GFP_KERNEL); \
2535 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_PERMANENT_MAC_ADDRESS_GET_REQ, dst__, src__);
2537 #define CsrWifiSmePermanentMacAddressGetReqSendTo(dst__, src__) \
2539 CsrWifiSmePermanentMacAddressGetReq *msg__; \
2540 CsrWifiSmePermanentMacAddressGetReqCreate(msg__, dst__, src__); \
2541 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2544 #define CsrWifiSmePermanentMacAddressGetReqSend(src__) \
2545 CsrWifiSmePermanentMacAddressGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
2547 /*******************************************************************************
2549 NAME
2550 CsrWifiSmePermanentMacAddressGetCfmSend
2552 DESCRIPTION
2553 This primitive reports the result of the request.
2555 PARAMETERS
2556 queue - Destination Task Queue
2557 status - Reports the result of the request
2558 permanentMacAddress - MAC address stored in the EEPROM
2560 *******************************************************************************/
2561 #define CsrWifiSmePermanentMacAddressGetCfmCreate(msg__, dst__, src__, status__, permanentMacAddress__) \
2562 msg__ = kmalloc(sizeof(CsrWifiSmePermanentMacAddressGetCfm), GFP_KERNEL); \
2563 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_PERMANENT_MAC_ADDRESS_GET_CFM, dst__, src__); \
2564 msg__->status = (status__); \
2565 msg__->permanentMacAddress = (permanentMacAddress__);
2567 #define CsrWifiSmePermanentMacAddressGetCfmSendTo(dst__, src__, status__, permanentMacAddress__) \
2569 CsrWifiSmePermanentMacAddressGetCfm *msg__; \
2570 CsrWifiSmePermanentMacAddressGetCfmCreate(msg__, dst__, src__, status__, permanentMacAddress__); \
2571 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2574 #define CsrWifiSmePermanentMacAddressGetCfmSend(dst__, status__, permanentMacAddress__) \
2575 CsrWifiSmePermanentMacAddressGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, permanentMacAddress__)
2577 /*******************************************************************************
2579 NAME
2580 CsrWifiSmePmkidCandidateListIndSend
2582 DESCRIPTION
2583 The SME will send this primitive to all the tasks that have registered to
2584 receive it when a new network supporting preauthentication and/or PMK
2585 caching is seen.
2587 PARAMETERS
2588 queue - Destination Task Queue
2589 interfaceTag - Interface Identifier; unique identifier of an
2590 interface
2591 pmkidCandidatesCount - Number of PMKID candidates provided
2592 pmkidCandidates - Points to the first PMKID candidate
2594 *******************************************************************************/
2595 #define CsrWifiSmePmkidCandidateListIndCreate(msg__, dst__, src__, interfaceTag__, pmkidCandidatesCount__, pmkidCandidates__) \
2596 msg__ = kmalloc(sizeof(CsrWifiSmePmkidCandidateListInd), GFP_KERNEL); \
2597 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_PMKID_CANDIDATE_LIST_IND, dst__, src__); \
2598 msg__->interfaceTag = (interfaceTag__); \
2599 msg__->pmkidCandidatesCount = (pmkidCandidatesCount__); \
2600 msg__->pmkidCandidates = (pmkidCandidates__);
2602 #define CsrWifiSmePmkidCandidateListIndSendTo(dst__, src__, interfaceTag__, pmkidCandidatesCount__, pmkidCandidates__) \
2604 CsrWifiSmePmkidCandidateListInd *msg__; \
2605 CsrWifiSmePmkidCandidateListIndCreate(msg__, dst__, src__, interfaceTag__, pmkidCandidatesCount__, pmkidCandidates__); \
2606 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2609 #define CsrWifiSmePmkidCandidateListIndSend(dst__, interfaceTag__, pmkidCandidatesCount__, pmkidCandidates__) \
2610 CsrWifiSmePmkidCandidateListIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, pmkidCandidatesCount__, pmkidCandidates__)
2612 /*******************************************************************************
2614 NAME
2615 CsrWifiSmePmkidReqSend
2617 DESCRIPTION
2618 The wireless manager application calls this primitive to request an
2619 operation on the SME PMKID list.
2620 The action argument specifies the operation to perform.
2621 When the connection is complete, the wireless manager application may
2622 then send and receive EAPOL packets to complete WPA or WPA2
2623 authentication if appropriate.
2624 The wireless manager application can then pass the resulting encryption
2625 keys using this primitive.
2627 PARAMETERS
2628 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2629 interfaceTag - Interface Identifier; unique identifier of an interface
2630 action - The value of the CsrWifiSmeListAction parameter instructs
2631 the driver to modify or provide the list of PMKIDs.
2632 setPmkidsCount - Number of PMKIDs sent with the primitive
2633 setPmkids - Pointer to the list of PMKIDs sent with the primitive, set
2634 to NULL if none is sent.
2636 *******************************************************************************/
2637 #define CsrWifiSmePmkidReqCreate(msg__, dst__, src__, interfaceTag__, action__, setPmkidsCount__, setPmkids__) \
2638 msg__ = kmalloc(sizeof(CsrWifiSmePmkidReq), GFP_KERNEL); \
2639 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_PMKID_REQ, dst__, src__); \
2640 msg__->interfaceTag = (interfaceTag__); \
2641 msg__->action = (action__); \
2642 msg__->setPmkidsCount = (setPmkidsCount__); \
2643 msg__->setPmkids = (setPmkids__);
2645 #define CsrWifiSmePmkidReqSendTo(dst__, src__, interfaceTag__, action__, setPmkidsCount__, setPmkids__) \
2647 CsrWifiSmePmkidReq *msg__; \
2648 CsrWifiSmePmkidReqCreate(msg__, dst__, src__, interfaceTag__, action__, setPmkidsCount__, setPmkids__); \
2649 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2652 #define CsrWifiSmePmkidReqSend(src__, interfaceTag__, action__, setPmkidsCount__, setPmkids__) \
2653 CsrWifiSmePmkidReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, action__, setPmkidsCount__, setPmkids__)
2655 /*******************************************************************************
2657 NAME
2658 CsrWifiSmePmkidCfmSend
2660 DESCRIPTION
2661 The SME will call this primitive when the operation is complete. For a
2662 GET action, this primitive reports the current list of PMKIDs
2664 PARAMETERS
2665 queue - Destination Task Queue
2666 interfaceTag - Interface Identifier; unique identifier of an interface
2667 status - Reports the result of the request
2668 action - Action in the request
2669 getPmkidsCount - This parameter is only relevant if action is
2670 CSR_WIFI_SME_LIST_ACTION_GET:
2671 number of PMKIDs sent with the primitive
2672 getPmkids - Pointer to the list of PMKIDs sent with the primitive, set
2673 to NULL if none is sent.
2675 *******************************************************************************/
2676 #define CsrWifiSmePmkidCfmCreate(msg__, dst__, src__, interfaceTag__, status__, action__, getPmkidsCount__, getPmkids__) \
2677 msg__ = kmalloc(sizeof(CsrWifiSmePmkidCfm), GFP_KERNEL); \
2678 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_PMKID_CFM, dst__, src__); \
2679 msg__->interfaceTag = (interfaceTag__); \
2680 msg__->status = (status__); \
2681 msg__->action = (action__); \
2682 msg__->getPmkidsCount = (getPmkidsCount__); \
2683 msg__->getPmkids = (getPmkids__);
2685 #define CsrWifiSmePmkidCfmSendTo(dst__, src__, interfaceTag__, status__, action__, getPmkidsCount__, getPmkids__) \
2687 CsrWifiSmePmkidCfm *msg__; \
2688 CsrWifiSmePmkidCfmCreate(msg__, dst__, src__, interfaceTag__, status__, action__, getPmkidsCount__, getPmkids__); \
2689 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2692 #define CsrWifiSmePmkidCfmSend(dst__, interfaceTag__, status__, action__, getPmkidsCount__, getPmkids__) \
2693 CsrWifiSmePmkidCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, action__, getPmkidsCount__, getPmkids__)
2695 /*******************************************************************************
2697 NAME
2698 CsrWifiSmePowerConfigGetReqSend
2700 DESCRIPTION
2701 This primitive gets the value of the PowerConfig parameter.
2703 PARAMETERS
2704 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2706 *******************************************************************************/
2707 #define CsrWifiSmePowerConfigGetReqCreate(msg__, dst__, src__) \
2708 msg__ = kmalloc(sizeof(CsrWifiSmePowerConfigGetReq), GFP_KERNEL); \
2709 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_POWER_CONFIG_GET_REQ, dst__, src__);
2711 #define CsrWifiSmePowerConfigGetReqSendTo(dst__, src__) \
2713 CsrWifiSmePowerConfigGetReq *msg__; \
2714 CsrWifiSmePowerConfigGetReqCreate(msg__, dst__, src__); \
2715 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2718 #define CsrWifiSmePowerConfigGetReqSend(src__) \
2719 CsrWifiSmePowerConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
2721 /*******************************************************************************
2723 NAME
2724 CsrWifiSmePowerConfigGetCfmSend
2726 DESCRIPTION
2727 This primitive reports the result of the request.
2729 PARAMETERS
2730 queue - Destination Task Queue
2731 status - Reports the result of the request
2732 powerConfig - Returns the current parameters for the power configuration of
2733 the firmware
2735 *******************************************************************************/
2736 #define CsrWifiSmePowerConfigGetCfmCreate(msg__, dst__, src__, status__, powerConfig__) \
2737 msg__ = kmalloc(sizeof(CsrWifiSmePowerConfigGetCfm), GFP_KERNEL); \
2738 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_POWER_CONFIG_GET_CFM, dst__, src__); \
2739 msg__->status = (status__); \
2740 msg__->powerConfig = (powerConfig__);
2742 #define CsrWifiSmePowerConfigGetCfmSendTo(dst__, src__, status__, powerConfig__) \
2744 CsrWifiSmePowerConfigGetCfm *msg__; \
2745 CsrWifiSmePowerConfigGetCfmCreate(msg__, dst__, src__, status__, powerConfig__); \
2746 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2749 #define CsrWifiSmePowerConfigGetCfmSend(dst__, status__, powerConfig__) \
2750 CsrWifiSmePowerConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, powerConfig__)
2752 /*******************************************************************************
2754 NAME
2755 CsrWifiSmePowerConfigSetReqSend
2757 DESCRIPTION
2758 This primitive sets the value of the PowerConfig parameter.
2760 PARAMETERS
2761 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2762 powerConfig - Power saving configuration
2764 *******************************************************************************/
2765 #define CsrWifiSmePowerConfigSetReqCreate(msg__, dst__, src__, powerConfig__) \
2766 msg__ = kmalloc(sizeof(CsrWifiSmePowerConfigSetReq), GFP_KERNEL); \
2767 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_POWER_CONFIG_SET_REQ, dst__, src__); \
2768 msg__->powerConfig = (powerConfig__);
2770 #define CsrWifiSmePowerConfigSetReqSendTo(dst__, src__, powerConfig__) \
2772 CsrWifiSmePowerConfigSetReq *msg__; \
2773 CsrWifiSmePowerConfigSetReqCreate(msg__, dst__, src__, powerConfig__); \
2774 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2777 #define CsrWifiSmePowerConfigSetReqSend(src__, powerConfig__) \
2778 CsrWifiSmePowerConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, powerConfig__)
2780 /*******************************************************************************
2782 NAME
2783 CsrWifiSmePowerConfigSetCfmSend
2785 DESCRIPTION
2786 This primitive reports the result of the request.
2788 PARAMETERS
2789 queue - Destination Task Queue
2790 status - Reports the result of the request
2792 *******************************************************************************/
2793 #define CsrWifiSmePowerConfigSetCfmCreate(msg__, dst__, src__, status__) \
2794 msg__ = kmalloc(sizeof(CsrWifiSmePowerConfigSetCfm), GFP_KERNEL); \
2795 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_POWER_CONFIG_SET_CFM, dst__, src__); \
2796 msg__->status = (status__);
2798 #define CsrWifiSmePowerConfigSetCfmSendTo(dst__, src__, status__) \
2800 CsrWifiSmePowerConfigSetCfm *msg__; \
2801 CsrWifiSmePowerConfigSetCfmCreate(msg__, dst__, src__, status__); \
2802 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2805 #define CsrWifiSmePowerConfigSetCfmSend(dst__, status__) \
2806 CsrWifiSmePowerConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
2808 /*******************************************************************************
2810 NAME
2811 CsrWifiSmeRegulatoryDomainInfoGetReqSend
2813 DESCRIPTION
2814 This primitive gets the value of the RegulatoryDomainInfo parameter.
2816 PARAMETERS
2817 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2819 *******************************************************************************/
2820 #define CsrWifiSmeRegulatoryDomainInfoGetReqCreate(msg__, dst__, src__) \
2821 msg__ = kmalloc(sizeof(CsrWifiSmeRegulatoryDomainInfoGetReq), GFP_KERNEL); \
2822 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_REGULATORY_DOMAIN_INFO_GET_REQ, dst__, src__);
2824 #define CsrWifiSmeRegulatoryDomainInfoGetReqSendTo(dst__, src__) \
2826 CsrWifiSmeRegulatoryDomainInfoGetReq *msg__; \
2827 CsrWifiSmeRegulatoryDomainInfoGetReqCreate(msg__, dst__, src__); \
2828 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2831 #define CsrWifiSmeRegulatoryDomainInfoGetReqSend(src__) \
2832 CsrWifiSmeRegulatoryDomainInfoGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
2834 /*******************************************************************************
2836 NAME
2837 CsrWifiSmeRegulatoryDomainInfoGetCfmSend
2839 DESCRIPTION
2840 This primitive reports the result of the request.
2842 PARAMETERS
2843 queue - Destination Task Queue
2844 status - Reports the result of the request
2845 regDomInfo - Reports information and state related to regulatory domain
2846 operation.
2848 *******************************************************************************/
2849 #define CsrWifiSmeRegulatoryDomainInfoGetCfmCreate(msg__, dst__, src__, status__, regDomInfo__) \
2850 msg__ = kmalloc(sizeof(CsrWifiSmeRegulatoryDomainInfoGetCfm), GFP_KERNEL); \
2851 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_REGULATORY_DOMAIN_INFO_GET_CFM, dst__, src__); \
2852 msg__->status = (status__); \
2853 msg__->regDomInfo = (regDomInfo__);
2855 #define CsrWifiSmeRegulatoryDomainInfoGetCfmSendTo(dst__, src__, status__, regDomInfo__) \
2857 CsrWifiSmeRegulatoryDomainInfoGetCfm *msg__; \
2858 CsrWifiSmeRegulatoryDomainInfoGetCfmCreate(msg__, dst__, src__, status__, regDomInfo__); \
2859 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2862 #define CsrWifiSmeRegulatoryDomainInfoGetCfmSend(dst__, status__, regDomInfo__) \
2863 CsrWifiSmeRegulatoryDomainInfoGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, regDomInfo__)
2865 /*******************************************************************************
2867 NAME
2868 CsrWifiSmeRoamCompleteIndSend
2870 DESCRIPTION
2871 The SME will send this primitive to all the tasks that have registered to
2872 receive it whenever it completes an attempt to roam to an AP. If the roam
2873 attempt was successful, status will be set to CSR_WIFI_SME_SUCCESS,
2874 otherwise it shall be set to the appropriate error code.
2876 PARAMETERS
2877 queue - Destination Task Queue
2878 interfaceTag - Interface Identifier; unique identifier of an interface
2879 status - Reports the result of the roaming procedure
2881 *******************************************************************************/
2882 #define CsrWifiSmeRoamCompleteIndCreate(msg__, dst__, src__, interfaceTag__, status__) \
2883 msg__ = kmalloc(sizeof(CsrWifiSmeRoamCompleteInd), GFP_KERNEL); \
2884 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ROAM_COMPLETE_IND, dst__, src__); \
2885 msg__->interfaceTag = (interfaceTag__); \
2886 msg__->status = (status__);
2888 #define CsrWifiSmeRoamCompleteIndSendTo(dst__, src__, interfaceTag__, status__) \
2890 CsrWifiSmeRoamCompleteInd *msg__; \
2891 CsrWifiSmeRoamCompleteIndCreate(msg__, dst__, src__, interfaceTag__, status__); \
2892 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2895 #define CsrWifiSmeRoamCompleteIndSend(dst__, interfaceTag__, status__) \
2896 CsrWifiSmeRoamCompleteIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__)
2898 /*******************************************************************************
2900 NAME
2901 CsrWifiSmeRoamStartIndSend
2903 DESCRIPTION
2904 The SME will send this primitive to all the tasks that have registered to
2905 receive it whenever it begins an attempt to roam to an AP.
2906 If the wireless manager application connect request specified the SSID
2907 and the BSSID was set to the broadcast address (0xFF 0xFF 0xFF 0xFF 0xFF
2908 0xFF), the SME monitors the signal quality and maintains a list of
2909 candidates to roam to. When the signal quality of the current connection
2910 falls below a threshold, and there is a candidate with better quality,
2911 the SME will attempt to the candidate AP.
2912 If the roaming procedure succeeds, the SME will also issue a Media
2913 Connect indication to inform the wireless manager application of the
2914 change.
2915 NOTE: to prevent the SME from initiating roaming the WMA must specify the
2916 BSSID in the connection request; this forces the SME to connect only to
2917 that AP.
2918 The wireless manager application can obtain statistics for roaming
2919 purposes using CSR_WIFI_SME_CONNECTION_QUALITY_IND and
2920 CSR_WIFI_SME_CONNECTION_STATS_GET_REQ.
2921 When the wireless manager application wishes to roam to another AP, it
2922 must issue a connection request specifying the BSSID of the desired AP.
2924 PARAMETERS
2925 queue - Destination Task Queue
2926 interfaceTag - Interface Identifier; unique identifier of an interface
2927 roamReason - Indicates the reason for starting the roaming procedure
2928 reason80211 - Indicates the reason for deauthentication or disassociation
2930 *******************************************************************************/
2931 #define CsrWifiSmeRoamStartIndCreate(msg__, dst__, src__, interfaceTag__, roamReason__, reason80211__) \
2932 msg__ = kmalloc(sizeof(CsrWifiSmeRoamStartInd), GFP_KERNEL); \
2933 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ROAM_START_IND, dst__, src__); \
2934 msg__->interfaceTag = (interfaceTag__); \
2935 msg__->roamReason = (roamReason__); \
2936 msg__->reason80211 = (reason80211__);
2938 #define CsrWifiSmeRoamStartIndSendTo(dst__, src__, interfaceTag__, roamReason__, reason80211__) \
2940 CsrWifiSmeRoamStartInd *msg__; \
2941 CsrWifiSmeRoamStartIndCreate(msg__, dst__, src__, interfaceTag__, roamReason__, reason80211__); \
2942 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
2945 #define CsrWifiSmeRoamStartIndSend(dst__, interfaceTag__, roamReason__, reason80211__) \
2946 CsrWifiSmeRoamStartIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, roamReason__, reason80211__)
2948 /*******************************************************************************
2950 NAME
2951 CsrWifiSmeRoamingConfigGetReqSend
2953 DESCRIPTION
2954 This primitive gets the value of the RoamingConfig parameter.
2956 PARAMETERS
2957 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
2958 interfaceTag - Interface Identifier; unique identifier of an interface
2960 *******************************************************************************/
2961 #define CsrWifiSmeRoamingConfigGetReqCreate(msg__, dst__, src__, interfaceTag__) \
2962 msg__ = kmalloc(sizeof(CsrWifiSmeRoamingConfigGetReq), GFP_KERNEL); \
2963 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ROAMING_CONFIG_GET_REQ, dst__, src__); \
2964 msg__->interfaceTag = (interfaceTag__);
2966 #define CsrWifiSmeRoamingConfigGetReqSendTo(dst__, src__, interfaceTag__) \
2968 CsrWifiSmeRoamingConfigGetReq *msg__; \
2969 CsrWifiSmeRoamingConfigGetReqCreate(msg__, dst__, src__, interfaceTag__); \
2970 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
2973 #define CsrWifiSmeRoamingConfigGetReqSend(src__, interfaceTag__) \
2974 CsrWifiSmeRoamingConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
2976 /*******************************************************************************
2978 NAME
2979 CsrWifiSmeRoamingConfigGetCfmSend
2981 DESCRIPTION
2982 This primitive reports the result of the request.
2984 PARAMETERS
2985 queue - Destination Task Queue
2986 interfaceTag - Interface Identifier; unique identifier of an interface
2987 status - Reports the result of the request
2988 roamingConfig - Reports the roaming behaviour of the driver and firmware
2990 *******************************************************************************/
2991 #define CsrWifiSmeRoamingConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, roamingConfig__) \
2992 msg__ = kmalloc(sizeof(CsrWifiSmeRoamingConfigGetCfm), GFP_KERNEL); \
2993 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ROAMING_CONFIG_GET_CFM, dst__, src__); \
2994 msg__->interfaceTag = (interfaceTag__); \
2995 msg__->status = (status__); \
2996 msg__->roamingConfig = (roamingConfig__);
2998 #define CsrWifiSmeRoamingConfigGetCfmSendTo(dst__, src__, interfaceTag__, status__, roamingConfig__) \
3000 CsrWifiSmeRoamingConfigGetCfm *msg__; \
3001 CsrWifiSmeRoamingConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, roamingConfig__); \
3002 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3005 #define CsrWifiSmeRoamingConfigGetCfmSend(dst__, interfaceTag__, status__, roamingConfig__) \
3006 CsrWifiSmeRoamingConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, roamingConfig__)
3008 /*******************************************************************************
3010 NAME
3011 CsrWifiSmeRoamingConfigSetReqSend
3013 DESCRIPTION
3014 This primitive sets the value of the RoamingConfig parameter.
3016 PARAMETERS
3017 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3018 interfaceTag - Interface Identifier; unique identifier of an interface
3019 roamingConfig - Desired roaming behaviour values
3021 *******************************************************************************/
3022 #define CsrWifiSmeRoamingConfigSetReqCreate(msg__, dst__, src__, interfaceTag__, roamingConfig__) \
3023 msg__ = kmalloc(sizeof(CsrWifiSmeRoamingConfigSetReq), GFP_KERNEL); \
3024 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ROAMING_CONFIG_SET_REQ, dst__, src__); \
3025 msg__->interfaceTag = (interfaceTag__); \
3026 msg__->roamingConfig = (roamingConfig__);
3028 #define CsrWifiSmeRoamingConfigSetReqSendTo(dst__, src__, interfaceTag__, roamingConfig__) \
3030 CsrWifiSmeRoamingConfigSetReq *msg__; \
3031 CsrWifiSmeRoamingConfigSetReqCreate(msg__, dst__, src__, interfaceTag__, roamingConfig__); \
3032 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3035 #define CsrWifiSmeRoamingConfigSetReqSend(src__, interfaceTag__, roamingConfig__) \
3036 CsrWifiSmeRoamingConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, roamingConfig__)
3038 /*******************************************************************************
3040 NAME
3041 CsrWifiSmeRoamingConfigSetCfmSend
3043 DESCRIPTION
3044 This primitive sets the value of the RoamingConfig parameter.
3046 PARAMETERS
3047 queue - Destination Task Queue
3048 interfaceTag - Interface Identifier; unique identifier of an interface
3049 status - Reports the result of the request
3051 *******************************************************************************/
3052 #define CsrWifiSmeRoamingConfigSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
3053 msg__ = kmalloc(sizeof(CsrWifiSmeRoamingConfigSetCfm), GFP_KERNEL); \
3054 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_ROAMING_CONFIG_SET_CFM, dst__, src__); \
3055 msg__->interfaceTag = (interfaceTag__); \
3056 msg__->status = (status__);
3058 #define CsrWifiSmeRoamingConfigSetCfmSendTo(dst__, src__, interfaceTag__, status__) \
3060 CsrWifiSmeRoamingConfigSetCfm *msg__; \
3061 CsrWifiSmeRoamingConfigSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
3062 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3065 #define CsrWifiSmeRoamingConfigSetCfmSend(dst__, interfaceTag__, status__) \
3066 CsrWifiSmeRoamingConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__)
3068 /*******************************************************************************
3070 NAME
3071 CsrWifiSmeScanConfigGetReqSend
3073 DESCRIPTION
3074 This primitive gets the value of the ScanConfig parameter.
3076 PARAMETERS
3077 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3079 *******************************************************************************/
3080 #define CsrWifiSmeScanConfigGetReqCreate(msg__, dst__, src__) \
3081 msg__ = kmalloc(sizeof(CsrWifiSmeScanConfigGetReq), GFP_KERNEL); \
3082 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_CONFIG_GET_REQ, dst__, src__);
3084 #define CsrWifiSmeScanConfigGetReqSendTo(dst__, src__) \
3086 CsrWifiSmeScanConfigGetReq *msg__; \
3087 CsrWifiSmeScanConfigGetReqCreate(msg__, dst__, src__); \
3088 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3091 #define CsrWifiSmeScanConfigGetReqSend(src__) \
3092 CsrWifiSmeScanConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
3094 /*******************************************************************************
3096 NAME
3097 CsrWifiSmeScanConfigGetCfmSend
3099 DESCRIPTION
3100 This primitive reports the result of the request.
3102 PARAMETERS
3103 queue - Destination Task Queue
3104 status - Reports the result of the request
3105 scanConfig - Returns the current parameters for the autonomous scanning
3106 behaviour of the firmware
3108 *******************************************************************************/
3109 #define CsrWifiSmeScanConfigGetCfmCreate(msg__, dst__, src__, status__, scanConfig__) \
3110 msg__ = kmalloc(sizeof(CsrWifiSmeScanConfigGetCfm), GFP_KERNEL); \
3111 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_CONFIG_GET_CFM, dst__, src__); \
3112 msg__->status = (status__); \
3113 msg__->scanConfig = (scanConfig__);
3115 #define CsrWifiSmeScanConfigGetCfmSendTo(dst__, src__, status__, scanConfig__) \
3117 CsrWifiSmeScanConfigGetCfm *msg__; \
3118 CsrWifiSmeScanConfigGetCfmCreate(msg__, dst__, src__, status__, scanConfig__); \
3119 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3122 #define CsrWifiSmeScanConfigGetCfmSend(dst__, status__, scanConfig__) \
3123 CsrWifiSmeScanConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, scanConfig__)
3125 /*******************************************************************************
3127 NAME
3128 CsrWifiSmeScanConfigSetReqSend
3130 DESCRIPTION
3131 This primitive sets the value of the ScanConfig parameter.
3132 The SME normally configures the firmware to perform autonomous scanning
3133 without involving the host.
3134 The firmware passes beacon / probe response or indicates loss of beacon
3135 on certain changes of state, for example:
3136 * A new AP is seen for the first time
3137 * An AP is no longer visible
3138 * The signal strength of an AP changes by more than a certain amount, as
3139 configured by the thresholds in the scanConfig parameter
3140 In addition to the autonomous scan, the wireless manager application may
3141 request a scan at any time using CSR_WIFI_SME_SCAN_FULL_REQ.
3143 PARAMETERS
3144 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3145 scanConfig - Reports the configuration for the autonomous scanning behaviour
3146 of the firmware
3148 *******************************************************************************/
3149 #define CsrWifiSmeScanConfigSetReqCreate(msg__, dst__, src__, scanConfig__) \
3150 msg__ = kmalloc(sizeof(CsrWifiSmeScanConfigSetReq), GFP_KERNEL); \
3151 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_CONFIG_SET_REQ, dst__, src__); \
3152 msg__->scanConfig = (scanConfig__);
3154 #define CsrWifiSmeScanConfigSetReqSendTo(dst__, src__, scanConfig__) \
3156 CsrWifiSmeScanConfigSetReq *msg__; \
3157 CsrWifiSmeScanConfigSetReqCreate(msg__, dst__, src__, scanConfig__); \
3158 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3161 #define CsrWifiSmeScanConfigSetReqSend(src__, scanConfig__) \
3162 CsrWifiSmeScanConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, scanConfig__)
3164 /*******************************************************************************
3166 NAME
3167 CsrWifiSmeScanConfigSetCfmSend
3169 DESCRIPTION
3170 This primitive reports the result of the request.
3172 PARAMETERS
3173 queue - Destination Task Queue
3174 status - Reports the result of the request
3176 *******************************************************************************/
3177 #define CsrWifiSmeScanConfigSetCfmCreate(msg__, dst__, src__, status__) \
3178 msg__ = kmalloc(sizeof(CsrWifiSmeScanConfigSetCfm), GFP_KERNEL); \
3179 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_CONFIG_SET_CFM, dst__, src__); \
3180 msg__->status = (status__);
3182 #define CsrWifiSmeScanConfigSetCfmSendTo(dst__, src__, status__) \
3184 CsrWifiSmeScanConfigSetCfm *msg__; \
3185 CsrWifiSmeScanConfigSetCfmCreate(msg__, dst__, src__, status__); \
3186 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3189 #define CsrWifiSmeScanConfigSetCfmSend(dst__, status__) \
3190 CsrWifiSmeScanConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
3192 /*******************************************************************************
3194 NAME
3195 CsrWifiSmeScanFullReqSend
3197 DESCRIPTION
3198 The wireless manager application should call this primitive to request a
3199 full scan.
3200 Channels are scanned actively or passively according to the requirement
3201 set by regulatory domain.
3202 If the SME receives this primitive while a full scan is going on, the new
3203 request is buffered and it will be served after the current full scan is
3204 completed.
3206 PARAMETERS
3207 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3208 ssidCount - Number of SSIDs provided.
3209 If it is 0, the SME will attempt to detect any network
3210 ssid - Points to the first SSID provided, if any.
3211 bssid - BSS identifier.
3212 If it is equal to FF-FF-FF-FF-FF, the SME will listen for
3213 messages from any BSS.
3214 If it is different from FF-FF-FF-FF-FF and any SSID is
3215 provided, one SSID must match the network of the BSS.
3216 forceScan - Forces the scan even if the SME is in a state which would
3217 normally prevent it (e.g. autonomous scan is running).
3218 bssType - Type of BSS to scan for
3219 scanType - Type of scan to perform
3220 channelListCount - Number of channels provided.
3221 If it is 0, the SME will initiate a scan of all the
3222 supported channels that are permitted by the current
3223 regulatory domain.
3224 channelList - Points to the first channel , or NULL if channelListCount
3225 is zero.
3226 probeIeLength - Length of the information element in bytes to be sent
3227 with the probe message.
3228 probeIe - Points to the first byte of the information element to be
3229 sent with the probe message.
3231 *******************************************************************************/
3232 #define CsrWifiSmeScanFullReqCreate(msg__, dst__, src__, ssidCount__, ssid__, bssid__, forceScan__, bssType__, scanType__, channelListCount__, channelList__, probeIeLength__, probeIe__) \
3233 msg__ = kmalloc(sizeof(CsrWifiSmeScanFullReq), GFP_KERNEL); \
3234 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_FULL_REQ, dst__, src__); \
3235 msg__->ssidCount = (ssidCount__); \
3236 msg__->ssid = (ssid__); \
3237 msg__->bssid = (bssid__); \
3238 msg__->forceScan = (forceScan__); \
3239 msg__->bssType = (bssType__); \
3240 msg__->scanType = (scanType__); \
3241 msg__->channelListCount = (channelListCount__); \
3242 msg__->channelList = (channelList__); \
3243 msg__->probeIeLength = (probeIeLength__); \
3244 msg__->probeIe = (probeIe__);
3246 #define CsrWifiSmeScanFullReqSendTo(dst__, src__, ssidCount__, ssid__, bssid__, forceScan__, bssType__, scanType__, channelListCount__, channelList__, probeIeLength__, probeIe__) \
3248 CsrWifiSmeScanFullReq *msg__; \
3249 CsrWifiSmeScanFullReqCreate(msg__, dst__, src__, ssidCount__, ssid__, bssid__, forceScan__, bssType__, scanType__, channelListCount__, channelList__, probeIeLength__, probeIe__); \
3250 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3253 #define CsrWifiSmeScanFullReqSend(src__, ssidCount__, ssid__, bssid__, forceScan__, bssType__, scanType__, channelListCount__, channelList__, probeIeLength__, probeIe__) \
3254 CsrWifiSmeScanFullReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, ssidCount__, ssid__, bssid__, forceScan__, bssType__, scanType__, channelListCount__, channelList__, probeIeLength__, probeIe__)
3256 /*******************************************************************************
3258 NAME
3259 CsrWifiSmeScanFullCfmSend
3261 DESCRIPTION
3262 The SME calls this primitive when the results from the scan are
3263 available.
3265 PARAMETERS
3266 queue - Destination Task Queue
3267 status - Reports the result of the request
3269 *******************************************************************************/
3270 #define CsrWifiSmeScanFullCfmCreate(msg__, dst__, src__, status__) \
3271 msg__ = kmalloc(sizeof(CsrWifiSmeScanFullCfm), GFP_KERNEL); \
3272 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_FULL_CFM, dst__, src__); \
3273 msg__->status = (status__);
3275 #define CsrWifiSmeScanFullCfmSendTo(dst__, src__, status__) \
3277 CsrWifiSmeScanFullCfm *msg__; \
3278 CsrWifiSmeScanFullCfmCreate(msg__, dst__, src__, status__); \
3279 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3282 #define CsrWifiSmeScanFullCfmSend(dst__, status__) \
3283 CsrWifiSmeScanFullCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
3285 /*******************************************************************************
3287 NAME
3288 CsrWifiSmeScanResultIndSend
3290 DESCRIPTION
3291 The SME sends this primitive to all the tasks that have registered to
3292 receive it whenever a scan indication is received from the firmware.
3294 PARAMETERS
3295 queue - Destination Task Queue
3296 result - Points to a buffer containing a scan result.
3298 *******************************************************************************/
3299 #define CsrWifiSmeScanResultIndCreate(msg__, dst__, src__, result__) \
3300 msg__ = kmalloc(sizeof(CsrWifiSmeScanResultInd), GFP_KERNEL); \
3301 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_RESULT_IND, dst__, src__); \
3302 msg__->result = (result__);
3304 #define CsrWifiSmeScanResultIndSendTo(dst__, src__, result__) \
3306 CsrWifiSmeScanResultInd *msg__; \
3307 CsrWifiSmeScanResultIndCreate(msg__, dst__, src__, result__); \
3308 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3311 #define CsrWifiSmeScanResultIndSend(dst__, result__) \
3312 CsrWifiSmeScanResultIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, result__)
3314 /*******************************************************************************
3316 NAME
3317 CsrWifiSmeScanResultsFlushReqSend
3319 DESCRIPTION
3320 The Wireless Manager calls this primitive to ask the SME to delete all
3321 scan results from its cache, except for the scan result of any currently
3322 connected network.
3323 As scan results are received by the SME from the firmware, they are
3324 cached in the SME memory.
3325 Any time the Wireless Manager requests scan results, they are returned
3326 from the SME internal cache.
3327 For some applications it may be desirable to clear this cache prior to
3328 requesting that a scan be performed; this will ensure that the cache then
3329 only contains the networks detected in the most recent scan.
3331 PARAMETERS
3332 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3334 *******************************************************************************/
3335 #define CsrWifiSmeScanResultsFlushReqCreate(msg__, dst__, src__) \
3336 msg__ = kmalloc(sizeof(CsrWifiSmeScanResultsFlushReq), GFP_KERNEL); \
3337 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_RESULTS_FLUSH_REQ, dst__, src__);
3339 #define CsrWifiSmeScanResultsFlushReqSendTo(dst__, src__) \
3341 CsrWifiSmeScanResultsFlushReq *msg__; \
3342 CsrWifiSmeScanResultsFlushReqCreate(msg__, dst__, src__); \
3343 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3346 #define CsrWifiSmeScanResultsFlushReqSend(src__) \
3347 CsrWifiSmeScanResultsFlushReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
3349 /*******************************************************************************
3351 NAME
3352 CsrWifiSmeScanResultsFlushCfmSend
3354 DESCRIPTION
3355 The SME will call this primitive when the cache has been cleared.
3357 PARAMETERS
3358 queue - Destination Task Queue
3359 status - Reports the result of the request
3361 *******************************************************************************/
3362 #define CsrWifiSmeScanResultsFlushCfmCreate(msg__, dst__, src__, status__) \
3363 msg__ = kmalloc(sizeof(CsrWifiSmeScanResultsFlushCfm), GFP_KERNEL); \
3364 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_RESULTS_FLUSH_CFM, dst__, src__); \
3365 msg__->status = (status__);
3367 #define CsrWifiSmeScanResultsFlushCfmSendTo(dst__, src__, status__) \
3369 CsrWifiSmeScanResultsFlushCfm *msg__; \
3370 CsrWifiSmeScanResultsFlushCfmCreate(msg__, dst__, src__, status__); \
3371 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3374 #define CsrWifiSmeScanResultsFlushCfmSend(dst__, status__) \
3375 CsrWifiSmeScanResultsFlushCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
3377 /*******************************************************************************
3379 NAME
3380 CsrWifiSmeScanResultsGetReqSend
3382 DESCRIPTION
3383 The wireless manager application calls this primitive to retrieve the
3384 current set of scan results, either after receiving a successful
3385 CSR_WIFI_SME_SCAN_FULL_CFM, or to get autonomous scan results.
3387 PARAMETERS
3388 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3390 *******************************************************************************/
3391 #define CsrWifiSmeScanResultsGetReqCreate(msg__, dst__, src__) \
3392 msg__ = kmalloc(sizeof(CsrWifiSmeScanResultsGetReq), GFP_KERNEL); \
3393 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_RESULTS_GET_REQ, dst__, src__);
3395 #define CsrWifiSmeScanResultsGetReqSendTo(dst__, src__) \
3397 CsrWifiSmeScanResultsGetReq *msg__; \
3398 CsrWifiSmeScanResultsGetReqCreate(msg__, dst__, src__); \
3399 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3402 #define CsrWifiSmeScanResultsGetReqSend(src__) \
3403 CsrWifiSmeScanResultsGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
3405 /*******************************************************************************
3407 NAME
3408 CsrWifiSmeScanResultsGetCfmSend
3410 DESCRIPTION
3411 The SME sends this primitive to provide the current set of scan results.
3413 PARAMETERS
3414 queue - Destination Task Queue
3415 status - Reports the result of the request
3416 scanResultsCount - Number of scan results
3417 scanResults - Points to a buffer containing an array of
3418 CsrWifiSmeScanResult structures.
3420 *******************************************************************************/
3421 #define CsrWifiSmeScanResultsGetCfmCreate(msg__, dst__, src__, status__, scanResultsCount__, scanResults__) \
3422 msg__ = kmalloc(sizeof(CsrWifiSmeScanResultsGetCfm), GFP_KERNEL); \
3423 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SCAN_RESULTS_GET_CFM, dst__, src__); \
3424 msg__->status = (status__); \
3425 msg__->scanResultsCount = (scanResultsCount__); \
3426 msg__->scanResults = (scanResults__);
3428 #define CsrWifiSmeScanResultsGetCfmSendTo(dst__, src__, status__, scanResultsCount__, scanResults__) \
3430 CsrWifiSmeScanResultsGetCfm *msg__; \
3431 CsrWifiSmeScanResultsGetCfmCreate(msg__, dst__, src__, status__, scanResultsCount__, scanResults__); \
3432 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3435 #define CsrWifiSmeScanResultsGetCfmSend(dst__, status__, scanResultsCount__, scanResults__) \
3436 CsrWifiSmeScanResultsGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, scanResultsCount__, scanResults__)
3438 /*******************************************************************************
3440 NAME
3441 CsrWifiSmeSetReqSend
3443 DESCRIPTION
3444 Used to pass custom data to the SME. Format is the same as 802.11 Info
3445 Elements => | Id | Length | Data
3446 1) Cmanr Test Mode "Id:0 Length:1 Data:0x00 = OFF 0x01 = ON" "0x00 0x01
3447 (0x00|0x01)"
3449 PARAMETERS
3450 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3451 dataLength - Number of bytes in the buffer pointed to by 'data'
3452 data - Pointer to the buffer containing 'dataLength' bytes
3454 *******************************************************************************/
3455 #define CsrWifiSmeSetReqCreate(msg__, dst__, src__, dataLength__, data__) \
3456 msg__ = kmalloc(sizeof(CsrWifiSmeSetReq), GFP_KERNEL); \
3457 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SET_REQ, dst__, src__); \
3458 msg__->dataLength = (dataLength__); \
3459 msg__->data = (data__);
3461 #define CsrWifiSmeSetReqSendTo(dst__, src__, dataLength__, data__) \
3463 CsrWifiSmeSetReq *msg__; \
3464 CsrWifiSmeSetReqCreate(msg__, dst__, src__, dataLength__, data__); \
3465 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3468 #define CsrWifiSmeSetReqSend(src__, dataLength__, data__) \
3469 CsrWifiSmeSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, dataLength__, data__)
3471 /*******************************************************************************
3473 NAME
3474 CsrWifiSmeSmeCommonConfigGetReqSend
3476 DESCRIPTION
3477 This primitive gets the value of the Sme common parameter.
3479 PARAMETERS
3480 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3482 *******************************************************************************/
3483 #define CsrWifiSmeSmeCommonConfigGetReqCreate(msg__, dst__, src__) \
3484 msg__ = kmalloc(sizeof(CsrWifiSmeSmeCommonConfigGetReq), GFP_KERNEL); \
3485 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SME_COMMON_CONFIG_GET_REQ, dst__, src__);
3487 #define CsrWifiSmeSmeCommonConfigGetReqSendTo(dst__, src__) \
3489 CsrWifiSmeSmeCommonConfigGetReq *msg__; \
3490 CsrWifiSmeSmeCommonConfigGetReqCreate(msg__, dst__, src__); \
3491 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3494 #define CsrWifiSmeSmeCommonConfigGetReqSend(src__) \
3495 CsrWifiSmeSmeCommonConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
3497 /*******************************************************************************
3499 NAME
3500 CsrWifiSmeSmeCommonConfigGetCfmSend
3502 DESCRIPTION
3503 This primitive reports the result of the request.
3505 PARAMETERS
3506 queue - Destination Task Queue
3507 status - Reports the result of the request
3508 deviceConfig - Configuration options in the SME
3510 *******************************************************************************/
3511 #define CsrWifiSmeSmeCommonConfigGetCfmCreate(msg__, dst__, src__, status__, deviceConfig__) \
3512 msg__ = kmalloc(sizeof(CsrWifiSmeSmeCommonConfigGetCfm), GFP_KERNEL); \
3513 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SME_COMMON_CONFIG_GET_CFM, dst__, src__); \
3514 msg__->status = (status__); \
3515 msg__->deviceConfig = (deviceConfig__);
3517 #define CsrWifiSmeSmeCommonConfigGetCfmSendTo(dst__, src__, status__, deviceConfig__) \
3519 CsrWifiSmeSmeCommonConfigGetCfm *msg__; \
3520 CsrWifiSmeSmeCommonConfigGetCfmCreate(msg__, dst__, src__, status__, deviceConfig__); \
3521 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3524 #define CsrWifiSmeSmeCommonConfigGetCfmSend(dst__, status__, deviceConfig__) \
3525 CsrWifiSmeSmeCommonConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, deviceConfig__)
3527 /*******************************************************************************
3529 NAME
3530 CsrWifiSmeSmeCommonConfigSetReqSend
3532 DESCRIPTION
3533 This primitive sets the value of the Sme common.
3535 PARAMETERS
3536 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3537 deviceConfig - Configuration options in the SME
3539 *******************************************************************************/
3540 #define CsrWifiSmeSmeCommonConfigSetReqCreate(msg__, dst__, src__, deviceConfig__) \
3541 msg__ = kmalloc(sizeof(CsrWifiSmeSmeCommonConfigSetReq), GFP_KERNEL); \
3542 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SME_COMMON_CONFIG_SET_REQ, dst__, src__); \
3543 msg__->deviceConfig = (deviceConfig__);
3545 #define CsrWifiSmeSmeCommonConfigSetReqSendTo(dst__, src__, deviceConfig__) \
3547 CsrWifiSmeSmeCommonConfigSetReq *msg__; \
3548 CsrWifiSmeSmeCommonConfigSetReqCreate(msg__, dst__, src__, deviceConfig__); \
3549 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3552 #define CsrWifiSmeSmeCommonConfigSetReqSend(src__, deviceConfig__) \
3553 CsrWifiSmeSmeCommonConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, deviceConfig__)
3555 /*******************************************************************************
3557 NAME
3558 CsrWifiSmeSmeCommonConfigSetCfmSend
3560 DESCRIPTION
3561 Reports the result of the request
3563 PARAMETERS
3564 queue - Destination Task Queue
3565 status - Reports the result of the request
3567 *******************************************************************************/
3568 #define CsrWifiSmeSmeCommonConfigSetCfmCreate(msg__, dst__, src__, status__) \
3569 msg__ = kmalloc(sizeof(CsrWifiSmeSmeCommonConfigSetCfm), GFP_KERNEL); \
3570 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SME_COMMON_CONFIG_SET_CFM, dst__, src__); \
3571 msg__->status = (status__);
3573 #define CsrWifiSmeSmeCommonConfigSetCfmSendTo(dst__, src__, status__) \
3575 CsrWifiSmeSmeCommonConfigSetCfm *msg__; \
3576 CsrWifiSmeSmeCommonConfigSetCfmCreate(msg__, dst__, src__, status__); \
3577 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3580 #define CsrWifiSmeSmeCommonConfigSetCfmSend(dst__, status__) \
3581 CsrWifiSmeSmeCommonConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
3583 /*******************************************************************************
3585 NAME
3586 CsrWifiSmeSmeStaConfigGetReqSend
3588 DESCRIPTION
3589 This primitive gets the value of the SmeStaConfig parameter.
3591 PARAMETERS
3592 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3593 interfaceTag - Interface Identifier; unique identifier of an interface
3595 *******************************************************************************/
3596 #define CsrWifiSmeSmeStaConfigGetReqCreate(msg__, dst__, src__, interfaceTag__) \
3597 msg__ = kmalloc(sizeof(CsrWifiSmeSmeStaConfigGetReq), GFP_KERNEL); \
3598 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SME_STA_CONFIG_GET_REQ, dst__, src__); \
3599 msg__->interfaceTag = (interfaceTag__);
3601 #define CsrWifiSmeSmeStaConfigGetReqSendTo(dst__, src__, interfaceTag__) \
3603 CsrWifiSmeSmeStaConfigGetReq *msg__; \
3604 CsrWifiSmeSmeStaConfigGetReqCreate(msg__, dst__, src__, interfaceTag__); \
3605 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3608 #define CsrWifiSmeSmeStaConfigGetReqSend(src__, interfaceTag__) \
3609 CsrWifiSmeSmeStaConfigGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__)
3611 /*******************************************************************************
3613 NAME
3614 CsrWifiSmeSmeStaConfigGetCfmSend
3616 DESCRIPTION
3617 This primitive reports the result of the request.
3619 PARAMETERS
3620 queue - Destination Task Queue
3621 interfaceTag - Interface Identifier; unique identifier of an interface
3622 status - Reports the result of the request
3623 smeConfig - Current SME Station Parameters
3625 *******************************************************************************/
3626 #define CsrWifiSmeSmeStaConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, smeConfig__) \
3627 msg__ = kmalloc(sizeof(CsrWifiSmeSmeStaConfigGetCfm), GFP_KERNEL); \
3628 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SME_STA_CONFIG_GET_CFM, dst__, src__); \
3629 msg__->interfaceTag = (interfaceTag__); \
3630 msg__->status = (status__); \
3631 msg__->smeConfig = (smeConfig__);
3633 #define CsrWifiSmeSmeStaConfigGetCfmSendTo(dst__, src__, interfaceTag__, status__, smeConfig__) \
3635 CsrWifiSmeSmeStaConfigGetCfm *msg__; \
3636 CsrWifiSmeSmeStaConfigGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, smeConfig__); \
3637 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3640 #define CsrWifiSmeSmeStaConfigGetCfmSend(dst__, interfaceTag__, status__, smeConfig__) \
3641 CsrWifiSmeSmeStaConfigGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, smeConfig__)
3643 /*******************************************************************************
3645 NAME
3646 CsrWifiSmeSmeStaConfigSetReqSend
3648 DESCRIPTION
3649 This primitive sets the value of the SmeConfig parameter.
3651 PARAMETERS
3652 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3653 interfaceTag - Interface Identifier; unique identifier of an interface
3654 smeConfig - SME Station Parameters to be set
3656 *******************************************************************************/
3657 #define CsrWifiSmeSmeStaConfigSetReqCreate(msg__, dst__, src__, interfaceTag__, smeConfig__) \
3658 msg__ = kmalloc(sizeof(CsrWifiSmeSmeStaConfigSetReq), GFP_KERNEL); \
3659 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SME_STA_CONFIG_SET_REQ, dst__, src__); \
3660 msg__->interfaceTag = (interfaceTag__); \
3661 msg__->smeConfig = (smeConfig__);
3663 #define CsrWifiSmeSmeStaConfigSetReqSendTo(dst__, src__, interfaceTag__, smeConfig__) \
3665 CsrWifiSmeSmeStaConfigSetReq *msg__; \
3666 CsrWifiSmeSmeStaConfigSetReqCreate(msg__, dst__, src__, interfaceTag__, smeConfig__); \
3667 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3670 #define CsrWifiSmeSmeStaConfigSetReqSend(src__, interfaceTag__, smeConfig__) \
3671 CsrWifiSmeSmeStaConfigSetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, smeConfig__)
3673 /*******************************************************************************
3675 NAME
3676 CsrWifiSmeSmeStaConfigSetCfmSend
3678 DESCRIPTION
3679 This primitive reports the result of the request.
3681 PARAMETERS
3682 queue - Destination Task Queue
3683 interfaceTag - Interface Identifier; unique identifier of an interface
3684 status - Reports the result of the request
3686 *******************************************************************************/
3687 #define CsrWifiSmeSmeStaConfigSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \
3688 msg__ = kmalloc(sizeof(CsrWifiSmeSmeStaConfigSetCfm), GFP_KERNEL); \
3689 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_SME_STA_CONFIG_SET_CFM, dst__, src__); \
3690 msg__->interfaceTag = (interfaceTag__); \
3691 msg__->status = (status__);
3693 #define CsrWifiSmeSmeStaConfigSetCfmSendTo(dst__, src__, interfaceTag__, status__) \
3695 CsrWifiSmeSmeStaConfigSetCfm *msg__; \
3696 CsrWifiSmeSmeStaConfigSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \
3697 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3700 #define CsrWifiSmeSmeStaConfigSetCfmSend(dst__, interfaceTag__, status__) \
3701 CsrWifiSmeSmeStaConfigSetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__)
3703 /*******************************************************************************
3705 NAME
3706 CsrWifiSmeStationMacAddressGetReqSend
3708 DESCRIPTION
3709 This primitives is used to retrieve the current MAC address used by the
3710 station.
3712 PARAMETERS
3713 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3715 *******************************************************************************/
3716 #define CsrWifiSmeStationMacAddressGetReqCreate(msg__, dst__, src__) \
3717 msg__ = kmalloc(sizeof(CsrWifiSmeStationMacAddressGetReq), GFP_KERNEL); \
3718 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_STATION_MAC_ADDRESS_GET_REQ, dst__, src__);
3720 #define CsrWifiSmeStationMacAddressGetReqSendTo(dst__, src__) \
3722 CsrWifiSmeStationMacAddressGetReq *msg__; \
3723 CsrWifiSmeStationMacAddressGetReqCreate(msg__, dst__, src__); \
3724 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3727 #define CsrWifiSmeStationMacAddressGetReqSend(src__) \
3728 CsrWifiSmeStationMacAddressGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
3730 /*******************************************************************************
3732 NAME
3733 CsrWifiSmeStationMacAddressGetCfmSend
3735 DESCRIPTION
3736 This primitive reports the result of the request.
3738 PARAMETERS
3739 queue - Destination Task Queue
3740 status - Reports the result of the request
3741 stationMacAddress - Current MAC address of the station.
3743 *******************************************************************************/
3744 #define CsrWifiSmeStationMacAddressGetCfmCreate(msg__, dst__, src__, status__, stationMacAddress__) \
3745 msg__ = kmalloc(sizeof(CsrWifiSmeStationMacAddressGetCfm), GFP_KERNEL); \
3746 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_STATION_MAC_ADDRESS_GET_CFM, dst__, src__); \
3747 msg__->status = (status__); \
3748 memcpy(msg__->stationMacAddress, (stationMacAddress__), sizeof(CsrWifiMacAddress) * 2);
3750 #define CsrWifiSmeStationMacAddressGetCfmSendTo(dst__, src__, status__, stationMacAddress__) \
3752 CsrWifiSmeStationMacAddressGetCfm *msg__; \
3753 CsrWifiSmeStationMacAddressGetCfmCreate(msg__, dst__, src__, status__, stationMacAddress__); \
3754 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3757 #define CsrWifiSmeStationMacAddressGetCfmSend(dst__, status__, stationMacAddress__) \
3758 CsrWifiSmeStationMacAddressGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, stationMacAddress__)
3760 /*******************************************************************************
3762 NAME
3763 CsrWifiSmeTspecReqSend
3765 DESCRIPTION
3766 The wireless manager application should call this primitive to use the
3767 TSPEC feature.
3768 The chip supports the use of TSPECs and TCLAS for the use of IEEE
3769 802.11/WMM Quality of Service features.
3770 The API allows the wireless manager application to supply a correctly
3771 formatted TSPEC and TCLAS pair to the driver.
3772 After performing basic validation, the driver negotiates the installation
3773 of the TSPEC with the AP as defined by the 802.11 specification.
3774 The driver retains all TSPEC and TCLAS pairs until they are specifically
3775 removed.
3776 It is not compulsory for a TSPEC to have a TCLAS (NULL is used to
3777 indicate that no TCLAS is supplied), while a TCLASS always require a
3778 TSPEC.
3779 The format of the TSPEC element is specified in 'WMM (including WMM Power
3780 Save) Specification - Version 1.1' and 'ANSI/IEEE Std 802.11-REVmb/D3.0'.
3781 For more information, see 'UniFi Configuring WMM and WMM-PS'.
3783 PARAMETERS
3784 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3785 interfaceTag - Interface Identifier; unique identifier of an interface
3786 action - Specifies the action to be carried out on the list of TSPECs.
3787 CSR_WIFI_SME_LIST_ACTION_FLUSH is not applicable here.
3788 transactionId - Unique Transaction ID for the TSPEC, as assigned by the
3789 driver
3790 strict - If it set to false, allows the SME to perform automatic
3791 TSPEC negotiation
3792 ctrlMask - Additional TSPEC configuration for CCX.
3793 Set mask with values from CsrWifiSmeTspecCtrl.
3794 CURRENTLY NOT SUPPORTED
3795 tspecLength - Length of the TSPEC.
3796 tspec - Points to the first byte of the TSPEC
3797 tclasLength - Length of the TCLAS.
3798 If it is equal to 0, no TCLASS is provided for the TSPEC
3799 tclas - Points to the first byte of the TCLAS, if any.
3801 *******************************************************************************/
3802 #define CsrWifiSmeTspecReqCreate(msg__, dst__, src__, interfaceTag__, action__, transactionId__, strict__, ctrlMask__, tspecLength__, tspec__, tclasLength__, tclas__) \
3803 msg__ = kmalloc(sizeof(CsrWifiSmeTspecReq), GFP_KERNEL); \
3804 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_TSPEC_REQ, dst__, src__); \
3805 msg__->interfaceTag = (interfaceTag__); \
3806 msg__->action = (action__); \
3807 msg__->transactionId = (transactionId__); \
3808 msg__->strict = (strict__); \
3809 msg__->ctrlMask = (ctrlMask__); \
3810 msg__->tspecLength = (tspecLength__); \
3811 msg__->tspec = (tspec__); \
3812 msg__->tclasLength = (tclasLength__); \
3813 msg__->tclas = (tclas__);
3815 #define CsrWifiSmeTspecReqSendTo(dst__, src__, interfaceTag__, action__, transactionId__, strict__, ctrlMask__, tspecLength__, tspec__, tclasLength__, tclas__) \
3817 CsrWifiSmeTspecReq *msg__; \
3818 CsrWifiSmeTspecReqCreate(msg__, dst__, src__, interfaceTag__, action__, transactionId__, strict__, ctrlMask__, tspecLength__, tspec__, tclasLength__, tclas__); \
3819 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3822 #define CsrWifiSmeTspecReqSend(src__, interfaceTag__, action__, transactionId__, strict__, ctrlMask__, tspecLength__, tspec__, tclasLength__, tclas__) \
3823 CsrWifiSmeTspecReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, interfaceTag__, action__, transactionId__, strict__, ctrlMask__, tspecLength__, tspec__, tclasLength__, tclas__)
3825 /*******************************************************************************
3827 NAME
3828 CsrWifiSmeTspecIndSend
3830 DESCRIPTION
3831 The SME will send this primitive to all the task that have registered to
3832 receive it when a status change in the TSPEC occurs.
3834 PARAMETERS
3835 queue - Destination Task Queue
3836 interfaceTag - Interface Identifier; unique identifier of an interface
3837 transactionId - Unique Transaction ID for the TSPEC, as assigned by the
3838 driver
3839 tspecResultCode - Specifies the TSPEC operation requested by the peer
3840 station
3841 tspecLength - Length of the TSPEC.
3842 tspec - Points to the first byte of the TSPEC
3844 *******************************************************************************/
3845 #define CsrWifiSmeTspecIndCreate(msg__, dst__, src__, interfaceTag__, transactionId__, tspecResultCode__, tspecLength__, tspec__) \
3846 msg__ = kmalloc(sizeof(CsrWifiSmeTspecInd), GFP_KERNEL); \
3847 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_TSPEC_IND, dst__, src__); \
3848 msg__->interfaceTag = (interfaceTag__); \
3849 msg__->transactionId = (transactionId__); \
3850 msg__->tspecResultCode = (tspecResultCode__); \
3851 msg__->tspecLength = (tspecLength__); \
3852 msg__->tspec = (tspec__);
3854 #define CsrWifiSmeTspecIndSendTo(dst__, src__, interfaceTag__, transactionId__, tspecResultCode__, tspecLength__, tspec__) \
3856 CsrWifiSmeTspecInd *msg__; \
3857 CsrWifiSmeTspecIndCreate(msg__, dst__, src__, interfaceTag__, transactionId__, tspecResultCode__, tspecLength__, tspec__); \
3858 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3861 #define CsrWifiSmeTspecIndSend(dst__, interfaceTag__, transactionId__, tspecResultCode__, tspecLength__, tspec__) \
3862 CsrWifiSmeTspecIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, transactionId__, tspecResultCode__, tspecLength__, tspec__)
3864 /*******************************************************************************
3866 NAME
3867 CsrWifiSmeTspecCfmSend
3869 DESCRIPTION
3870 The SME calls the primitive to report the result of the TSpec primitive
3871 request.
3873 PARAMETERS
3874 queue - Destination Task Queue
3875 interfaceTag - Interface Identifier; unique identifier of an interface
3876 status - Reports the result of the request
3877 transactionId - Unique Transaction ID for the TSPEC, as assigned by the
3878 driver
3879 tspecResultCode - Specifies the result of the negotiated TSPEC operation
3880 tspecLength - Length of the TSPEC.
3881 tspec - Points to the first byte of the TSPEC
3883 *******************************************************************************/
3884 #define CsrWifiSmeTspecCfmCreate(msg__, dst__, src__, interfaceTag__, status__, transactionId__, tspecResultCode__, tspecLength__, tspec__) \
3885 msg__ = kmalloc(sizeof(CsrWifiSmeTspecCfm), GFP_KERNEL); \
3886 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_TSPEC_CFM, dst__, src__); \
3887 msg__->interfaceTag = (interfaceTag__); \
3888 msg__->status = (status__); \
3889 msg__->transactionId = (transactionId__); \
3890 msg__->tspecResultCode = (tspecResultCode__); \
3891 msg__->tspecLength = (tspecLength__); \
3892 msg__->tspec = (tspec__);
3894 #define CsrWifiSmeTspecCfmSendTo(dst__, src__, interfaceTag__, status__, transactionId__, tspecResultCode__, tspecLength__, tspec__) \
3896 CsrWifiSmeTspecCfm *msg__; \
3897 CsrWifiSmeTspecCfmCreate(msg__, dst__, src__, interfaceTag__, status__, transactionId__, tspecResultCode__, tspecLength__, tspec__); \
3898 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3901 #define CsrWifiSmeTspecCfmSend(dst__, interfaceTag__, status__, transactionId__, tspecResultCode__, tspecLength__, tspec__) \
3902 CsrWifiSmeTspecCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, transactionId__, tspecResultCode__, tspecLength__, tspec__)
3904 /*******************************************************************************
3906 NAME
3907 CsrWifiSmeVersionsGetReqSend
3909 DESCRIPTION
3910 This primitive gets the value of the Versions parameter.
3912 PARAMETERS
3913 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3915 *******************************************************************************/
3916 #define CsrWifiSmeVersionsGetReqCreate(msg__, dst__, src__) \
3917 msg__ = kmalloc(sizeof(CsrWifiSmeVersionsGetReq), GFP_KERNEL); \
3918 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_VERSIONS_GET_REQ, dst__, src__);
3920 #define CsrWifiSmeVersionsGetReqSendTo(dst__, src__) \
3922 CsrWifiSmeVersionsGetReq *msg__; \
3923 CsrWifiSmeVersionsGetReqCreate(msg__, dst__, src__); \
3924 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
3927 #define CsrWifiSmeVersionsGetReqSend(src__) \
3928 CsrWifiSmeVersionsGetReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
3930 /*******************************************************************************
3932 NAME
3933 CsrWifiSmeVersionsGetCfmSend
3935 DESCRIPTION
3936 This primitive reports the result of the request.
3938 PARAMETERS
3939 queue - Destination Task Queue
3940 status - Reports the result of the request
3941 versions - Version IDs of the product
3943 *******************************************************************************/
3944 #define CsrWifiSmeVersionsGetCfmCreate(msg__, dst__, src__, status__, versions__) \
3945 msg__ = kmalloc(sizeof(CsrWifiSmeVersionsGetCfm), GFP_KERNEL); \
3946 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_VERSIONS_GET_CFM, dst__, src__); \
3947 msg__->status = (status__); \
3948 msg__->versions = (versions__);
3950 #define CsrWifiSmeVersionsGetCfmSendTo(dst__, src__, status__, versions__) \
3952 CsrWifiSmeVersionsGetCfm *msg__; \
3953 CsrWifiSmeVersionsGetCfmCreate(msg__, dst__, src__, status__, versions__); \
3954 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
3957 #define CsrWifiSmeVersionsGetCfmSend(dst__, status__, versions__) \
3958 CsrWifiSmeVersionsGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__, versions__)
3960 /*******************************************************************************
3962 NAME
3963 CsrWifiSmeWifiFlightmodeReqSend
3965 DESCRIPTION
3966 The wireless manager application may call this primitive on boot-up of
3967 the platform to ensure that the chip is placed in a mode that prevents
3968 any emission of RF energy.
3969 This primitive is an alternative to CSR_WIFI_SME_WIFI_ON_REQ.
3970 As in CSR_WIFI_SME_WIFI_ON_REQ, it causes the download of the patch file
3971 (if any) and the programming of the initial MIB settings (if supplied by
3972 the WMA), but it also ensures that the chip is left in its lowest
3973 possible power-mode with the radio subsystems disabled.
3974 This feature is useful on platforms where power cannot be removed from
3975 the chip (leaving the chip not initialised will cause it to consume more
3976 power so calling this function ensures that the chip is initialised into
3977 a low power mode but without entering a state where it could emit any RF
3978 energy).
3979 NOTE: this primitive does not cause the Wi-Fi to change state: Wi-Fi
3980 stays conceptually off. Configuration primitives can be sent after
3981 CSR_WIFI_SME_WIFI_FLIGHTMODE_REQ and the configuration will be maintained.
3982 Requests that require the state of the Wi-Fi to be ON will return
3983 CSR_WIFI_SME_STATUS_WIFI_OFF in their confirms.
3985 PARAMETERS
3986 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
3987 address - Optionally specifies a station MAC address.
3988 In normal use, the manager should set the address to 0xFF
3989 0xFF 0xFF 0xFF 0xFF 0xFF, which will cause the chip to use
3990 the MAC address in the MIB.
3991 mibFilesCount - Number of provided data blocks with initial MIB values
3992 mibFiles - Points to the first data block with initial MIB values.
3993 These data blocks are typically the contents of the provided
3994 files ufmib.dat and localmib.dat, available from the host
3995 file system, if they exist.
3996 These files typically contain radio tuning and calibration
3997 values.
3998 More values can be created using the Host Tools.
4000 *******************************************************************************/
4001 #define CsrWifiSmeWifiFlightmodeReqCreate(msg__, dst__, src__, address__, mibFilesCount__, mibFiles__) \
4002 msg__ = kmalloc(sizeof(CsrWifiSmeWifiFlightmodeReq), GFP_KERNEL); \
4003 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WIFI_FLIGHTMODE_REQ, dst__, src__); \
4004 msg__->address = (address__); \
4005 msg__->mibFilesCount = (mibFilesCount__); \
4006 msg__->mibFiles = (mibFiles__);
4008 #define CsrWifiSmeWifiFlightmodeReqSendTo(dst__, src__, address__, mibFilesCount__, mibFiles__) \
4010 CsrWifiSmeWifiFlightmodeReq *msg__; \
4011 CsrWifiSmeWifiFlightmodeReqCreate(msg__, dst__, src__, address__, mibFilesCount__, mibFiles__); \
4012 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
4015 #define CsrWifiSmeWifiFlightmodeReqSend(src__, address__, mibFilesCount__, mibFiles__) \
4016 CsrWifiSmeWifiFlightmodeReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, address__, mibFilesCount__, mibFiles__)
4018 /*******************************************************************************
4020 NAME
4021 CsrWifiSmeWifiFlightmodeCfmSend
4023 DESCRIPTION
4024 The SME calls this primitive when the chip is initialised for low power
4025 mode and with the radio subsystem disabled. To leave flight mode, and
4026 enable Wi-Fi, the wireless manager application should call
4027 CSR_WIFI_SME_WIFI_ON_REQ.
4029 PARAMETERS
4030 queue - Destination Task Queue
4031 status - Reports the result of the request
4033 *******************************************************************************/
4034 #define CsrWifiSmeWifiFlightmodeCfmCreate(msg__, dst__, src__, status__) \
4035 msg__ = kmalloc(sizeof(CsrWifiSmeWifiFlightmodeCfm), GFP_KERNEL); \
4036 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WIFI_FLIGHTMODE_CFM, dst__, src__); \
4037 msg__->status = (status__);
4039 #define CsrWifiSmeWifiFlightmodeCfmSendTo(dst__, src__, status__) \
4041 CsrWifiSmeWifiFlightmodeCfm *msg__; \
4042 CsrWifiSmeWifiFlightmodeCfmCreate(msg__, dst__, src__, status__); \
4043 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
4046 #define CsrWifiSmeWifiFlightmodeCfmSend(dst__, status__) \
4047 CsrWifiSmeWifiFlightmodeCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
4049 /*******************************************************************************
4051 NAME
4052 CsrWifiSmeWifiOffReqSend
4054 DESCRIPTION
4055 The wireless manager application calls this primitive to turn off the
4056 chip, thus saving power when Wi-Fi is not in use.
4058 PARAMETERS
4059 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
4061 *******************************************************************************/
4062 #define CsrWifiSmeWifiOffReqCreate(msg__, dst__, src__) \
4063 msg__ = kmalloc(sizeof(CsrWifiSmeWifiOffReq), GFP_KERNEL); \
4064 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WIFI_OFF_REQ, dst__, src__);
4066 #define CsrWifiSmeWifiOffReqSendTo(dst__, src__) \
4068 CsrWifiSmeWifiOffReq *msg__; \
4069 CsrWifiSmeWifiOffReqCreate(msg__, dst__, src__); \
4070 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
4073 #define CsrWifiSmeWifiOffReqSend(src__) \
4074 CsrWifiSmeWifiOffReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__)
4076 /*******************************************************************************
4078 NAME
4079 CsrWifiSmeWifiOffIndSend
4081 DESCRIPTION
4082 The SME sends this primitive to all the tasks that have registered to
4083 receive it to report that the chip has been turned off.
4085 PARAMETERS
4086 queue - Destination Task Queue
4087 reason - Indicates the reason why the Wi-Fi has been switched off.
4089 *******************************************************************************/
4090 #define CsrWifiSmeWifiOffIndCreate(msg__, dst__, src__, reason__) \
4091 msg__ = kmalloc(sizeof(CsrWifiSmeWifiOffInd), GFP_KERNEL); \
4092 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WIFI_OFF_IND, dst__, src__); \
4093 msg__->reason = (reason__);
4095 #define CsrWifiSmeWifiOffIndSendTo(dst__, src__, reason__) \
4097 CsrWifiSmeWifiOffInd *msg__; \
4098 CsrWifiSmeWifiOffIndCreate(msg__, dst__, src__, reason__); \
4099 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
4102 #define CsrWifiSmeWifiOffIndSend(dst__, reason__) \
4103 CsrWifiSmeWifiOffIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, reason__)
4105 /*******************************************************************************
4107 NAME
4108 CsrWifiSmeWifiOffCfmSend
4110 DESCRIPTION
4111 After receiving CSR_WIFI_SME_WIFI_OFF_REQ, if the chip is connected to a
4112 network, the SME will perform a disconnect operation, will send a
4113 CSR_WIFI_SME_MEDIA_STATUS_IND with
4114 CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED, and then will call
4115 CSR_WIFI_SME_WIFI_OFF_CFM when the chip is off.
4117 PARAMETERS
4118 queue - Destination Task Queue
4119 status - Reports the result of the request
4121 *******************************************************************************/
4122 #define CsrWifiSmeWifiOffCfmCreate(msg__, dst__, src__, status__) \
4123 msg__ = kmalloc(sizeof(CsrWifiSmeWifiOffCfm), GFP_KERNEL); \
4124 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WIFI_OFF_CFM, dst__, src__); \
4125 msg__->status = (status__);
4127 #define CsrWifiSmeWifiOffCfmSendTo(dst__, src__, status__) \
4129 CsrWifiSmeWifiOffCfm *msg__; \
4130 CsrWifiSmeWifiOffCfmCreate(msg__, dst__, src__, status__); \
4131 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
4134 #define CsrWifiSmeWifiOffCfmSend(dst__, status__) \
4135 CsrWifiSmeWifiOffCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
4137 /*******************************************************************************
4139 NAME
4140 CsrWifiSmeWifiOnReqSend
4142 DESCRIPTION
4143 The wireless manager application calls this primitive to turn on the
4144 Wi-Fi chip.
4145 If the Wi-Fi chip is currently off, the SME turns the Wi-Fi chip on,
4146 downloads the patch file (if any), and programs the initial MIB settings
4147 (if supplied by the WMA).
4148 The patch file is not provided with the SME API; its downloading is
4149 automatic and handled internally by the system.
4150 The MIB settings, when provided, override the default values that the
4151 firmware loads from EEPROM.
4152 If the Wi-Fi chip is already on, the SME takes no action and returns a
4153 successful status in the confirm.
4155 PARAMETERS
4156 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
4157 address - Optionally specifies a station MAC address.
4158 In normal use, the manager should set the address to 0xFF
4159 0xFF 0xFF 0xFF 0xFF 0xFF, which will cause the chip to use
4160 the MAC address in the MIB
4161 mibFilesCount - Number of provided data blocks with initial MIB values
4162 mibFiles - Points to the first data block with initial MIB values.
4163 These data blocks are typically the contents of the provided
4164 files ufmib.dat and localmib.dat, available from the host
4165 file system, if they exist.
4166 These files typically contain radio tuning and calibration
4167 values.
4168 More values can be created using the Host Tools.
4170 *******************************************************************************/
4171 #define CsrWifiSmeWifiOnReqCreate(msg__, dst__, src__, address__, mibFilesCount__, mibFiles__) \
4172 msg__ = kmalloc(sizeof(CsrWifiSmeWifiOnReq), GFP_KERNEL); \
4173 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WIFI_ON_REQ, dst__, src__); \
4174 msg__->address = (address__); \
4175 msg__->mibFilesCount = (mibFilesCount__); \
4176 msg__->mibFiles = (mibFiles__);
4178 #define CsrWifiSmeWifiOnReqSendTo(dst__, src__, address__, mibFilesCount__, mibFiles__) \
4180 CsrWifiSmeWifiOnReq *msg__; \
4181 CsrWifiSmeWifiOnReqCreate(msg__, dst__, src__, address__, mibFilesCount__, mibFiles__); \
4182 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
4185 #define CsrWifiSmeWifiOnReqSend(src__, address__, mibFilesCount__, mibFiles__) \
4186 CsrWifiSmeWifiOnReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, address__, mibFilesCount__, mibFiles__)
4188 /*******************************************************************************
4190 NAME
4191 CsrWifiSmeWifiOnIndSend
4193 DESCRIPTION
4194 The SME sends this primitive to all tasks that have registered to receive
4195 it once the chip becomes available and ready to use.
4197 PARAMETERS
4198 queue - Destination Task Queue
4199 address - Current MAC address
4201 *******************************************************************************/
4202 #define CsrWifiSmeWifiOnIndCreate(msg__, dst__, src__, address__) \
4203 msg__ = kmalloc(sizeof(CsrWifiSmeWifiOnInd), GFP_KERNEL); \
4204 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WIFI_ON_IND, dst__, src__); \
4205 msg__->address = (address__);
4207 #define CsrWifiSmeWifiOnIndSendTo(dst__, src__, address__) \
4209 CsrWifiSmeWifiOnInd *msg__; \
4210 CsrWifiSmeWifiOnIndCreate(msg__, dst__, src__, address__); \
4211 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
4214 #define CsrWifiSmeWifiOnIndSend(dst__, address__) \
4215 CsrWifiSmeWifiOnIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, address__)
4217 /*******************************************************************************
4219 NAME
4220 CsrWifiSmeWifiOnCfmSend
4222 DESCRIPTION
4223 The SME sends this primitive to the task that has sent the request once
4224 the chip has been initialised and is available for use.
4226 PARAMETERS
4227 queue - Destination Task Queue
4228 status - Reports the result of the request
4230 *******************************************************************************/
4231 #define CsrWifiSmeWifiOnCfmCreate(msg__, dst__, src__, status__) \
4232 msg__ = kmalloc(sizeof(CsrWifiSmeWifiOnCfm), GFP_KERNEL); \
4233 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WIFI_ON_CFM, dst__, src__); \
4234 msg__->status = (status__);
4236 #define CsrWifiSmeWifiOnCfmSendTo(dst__, src__, status__) \
4238 CsrWifiSmeWifiOnCfm *msg__; \
4239 CsrWifiSmeWifiOnCfmCreate(msg__, dst__, src__, status__); \
4240 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
4243 #define CsrWifiSmeWifiOnCfmSend(dst__, status__) \
4244 CsrWifiSmeWifiOnCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
4246 /*******************************************************************************
4248 NAME
4249 CsrWifiSmeWpsConfigurationReqSend
4251 DESCRIPTION
4252 This primitive passes the WPS information for the device to SME. This may
4253 be accepted only if no interface is active.
4255 PARAMETERS
4256 queue - Message Source Task Queue (Cfm's will be sent to this Queue)
4257 wpsConfig - WPS config.
4259 *******************************************************************************/
4260 #define CsrWifiSmeWpsConfigurationReqCreate(msg__, dst__, src__, wpsConfig__) \
4261 msg__ = kmalloc(sizeof(CsrWifiSmeWpsConfigurationReq), GFP_KERNEL); \
4262 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WPS_CONFIGURATION_REQ, dst__, src__); \
4263 msg__->wpsConfig = (wpsConfig__);
4265 #define CsrWifiSmeWpsConfigurationReqSendTo(dst__, src__, wpsConfig__) \
4267 CsrWifiSmeWpsConfigurationReq *msg__; \
4268 CsrWifiSmeWpsConfigurationReqCreate(msg__, dst__, src__, wpsConfig__); \
4269 CsrMsgTransport(dst__, CSR_WIFI_SME_PRIM, msg__); \
4272 #define CsrWifiSmeWpsConfigurationReqSend(src__, wpsConfig__) \
4273 CsrWifiSmeWpsConfigurationReqSendTo(CSR_WIFI_SME_LIB_DESTINATION_QUEUE, src__, wpsConfig__)
4275 /*******************************************************************************
4277 NAME
4278 CsrWifiSmeWpsConfigurationCfmSend
4280 DESCRIPTION
4281 Confirm.
4283 PARAMETERS
4284 queue - Destination Task Queue
4285 status - Status of the request.
4287 *******************************************************************************/
4288 #define CsrWifiSmeWpsConfigurationCfmCreate(msg__, dst__, src__, status__) \
4289 msg__ = kmalloc(sizeof(CsrWifiSmeWpsConfigurationCfm), GFP_KERNEL); \
4290 CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_PRIM, CSR_WIFI_SME_WPS_CONFIGURATION_CFM, dst__, src__); \
4291 msg__->status = (status__);
4293 #define CsrWifiSmeWpsConfigurationCfmSendTo(dst__, src__, status__) \
4295 CsrWifiSmeWpsConfigurationCfm *msg__; \
4296 CsrWifiSmeWpsConfigurationCfmCreate(msg__, dst__, src__, status__); \
4297 CsrSchedMessagePut(dst__, CSR_WIFI_SME_PRIM, msg__); \
4300 #define CsrWifiSmeWpsConfigurationCfmSend(dst__, status__) \
4301 CsrWifiSmeWpsConfigurationCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__)
4303 #endif /* CSR_WIFI_SME_LIB_H__ */