| /***************************************************************************** |
| |
| (c) Cambridge Silicon Radio Limited 2011 |
| All rights reserved and confidential information of CSR |
| |
| Refer to LICENSE.txt included with this source for details |
| on the license terms. |
| |
| *****************************************************************************/ |
| |
| /* Note: this is an auto-generated file. */ |
| |
| #ifndef CSR_WIFI_NME_LIB_H__ |
| #define CSR_WIFI_NME_LIB_H__ |
| |
| #include "csr_sched.h" |
| #include "csr_macro.h" |
| #include "csr_msg_transport.h" |
| |
| #include "csr_wifi_lib.h" |
| |
| #include "csr_wifi_nme_prim.h" |
| #include "csr_wifi_nme_task.h" |
| |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef CSR_WIFI_NME_ENABLE |
| #error CSR_WIFI_NME_ENABLE MUST be defined inorder to use csr_wifi_nme_lib.h |
| #endif |
| |
| /*----------------------------------------------------------------------------* |
| * CsrWifiNmeFreeUpstreamMessageContents |
| * |
| * DESCRIPTION |
| * Free the allocated memory in a CSR_WIFI_NME upstream message. Does not |
| * free the message itself, and can only be used for upstream messages. |
| * |
| * PARAMETERS |
| * Deallocates the resources in a CSR_WIFI_NME upstream message |
| *----------------------------------------------------------------------------*/ |
| void CsrWifiNmeFreeUpstreamMessageContents(u16 eventClass, void *message); |
| |
| /*----------------------------------------------------------------------------* |
| * CsrWifiNmeFreeDownstreamMessageContents |
| * |
| * DESCRIPTION |
| * Free the allocated memory in a CSR_WIFI_NME downstream message. Does not |
| * free the message itself, and can only be used for downstream messages. |
| * |
| * PARAMETERS |
| * Deallocates the resources in a CSR_WIFI_NME downstream message |
| *----------------------------------------------------------------------------*/ |
| void CsrWifiNmeFreeDownstreamMessageContents(u16 eventClass, void *message); |
| |
| /*----------------------------------------------------------------------------* |
| * Enum to string functions |
| *----------------------------------------------------------------------------*/ |
| const char* CsrWifiNmeAuthModeToString(CsrWifiNmeAuthMode value); |
| const char* CsrWifiNmeBssTypeToString(CsrWifiNmeBssType value); |
| const char* CsrWifiNmeCcxOptionsMaskToString(CsrWifiNmeCcxOptionsMask value); |
| const char* CsrWifiNmeConfigActionToString(CsrWifiNmeConfigAction value); |
| const char* CsrWifiNmeConnectionStatusToString(CsrWifiNmeConnectionStatus value); |
| const char* CsrWifiNmeCredentialTypeToString(CsrWifiNmeCredentialType value); |
| const char* CsrWifiNmeEapMethodToString(CsrWifiNmeEapMethod value); |
| const char* CsrWifiNmeEncryptionToString(CsrWifiNmeEncryption value); |
| const char* CsrWifiNmeIndicationsToString(CsrWifiNmeIndications value); |
| const char* CsrWifiNmeSecErrorToString(CsrWifiNmeSecError value); |
| const char* CsrWifiNmeSimCardTypeToString(CsrWifiNmeSimCardType value); |
| const char* CsrWifiNmeUmtsAuthResultToString(CsrWifiNmeUmtsAuthResult value); |
| const char* CsrWifiNmeWmmQosInfoToString(CsrWifiNmeWmmQosInfo value); |
| |
| |
| /*----------------------------------------------------------------------------* |
| * CsrPrim Type toString function. |
| * Converts a message type to the String name of the Message |
| *----------------------------------------------------------------------------*/ |
| const char* CsrWifiNmePrimTypeToString(CsrPrim msgType); |
| |
| /*----------------------------------------------------------------------------* |
| * Lookup arrays for PrimType name Strings |
| *----------------------------------------------------------------------------*/ |
| extern const char *CsrWifiNmeUpstreamPrimNames[CSR_WIFI_NME_PRIM_UPSTREAM_COUNT]; |
| extern const char *CsrWifiNmeDownstreamPrimNames[CSR_WIFI_NME_PRIM_DOWNSTREAM_COUNT]; |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeConnectionStatusGetReqSend |
| |
| DESCRIPTION |
| Requests the current connection status of the NME. |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeConnectionStatusGetReqCreate(msg__, dst__, src__, interfaceTag__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeConnectionStatusGetReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_CONNECTION_STATUS_GET_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); |
| |
| #define CsrWifiNmeConnectionStatusGetReqSendTo(dst__, src__, interfaceTag__) \ |
| { \ |
| CsrWifiNmeConnectionStatusGetReq *msg__; \ |
| CsrWifiNmeConnectionStatusGetReqCreate(msg__, dst__, src__, interfaceTag__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeConnectionStatusGetReqSend(src__, interfaceTag__) \ |
| CsrWifiNmeConnectionStatusGetReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeConnectionStatusGetCfmSend |
| |
| DESCRIPTION |
| Reports the connection status of the NME. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| status - Indicates the success or otherwise of the requested |
| operation. |
| connectionStatus - NME current connection status |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeConnectionStatusGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectionStatus__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeConnectionStatusGetCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_CONNECTION_STATUS_GET_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); \ |
| msg__->connectionStatus = (connectionStatus__); |
| |
| #define CsrWifiNmeConnectionStatusGetCfmSendTo(dst__, src__, interfaceTag__, status__, connectionStatus__) \ |
| { \ |
| CsrWifiNmeConnectionStatusGetCfm *msg__; \ |
| CsrWifiNmeConnectionStatusGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectionStatus__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeConnectionStatusGetCfmSend(dst__, interfaceTag__, status__, connectionStatus__) \ |
| CsrWifiNmeConnectionStatusGetCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, status__, connectionStatus__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeEventMaskSetReqSend |
| |
| DESCRIPTION |
| The wireless manager application may register with the NME to receive |
| notification of interesting events. Indications will be sent only if the |
| wireless manager explicitly registers to be notified of that event. |
| indMask is a bit mask of values defined in CsrWifiNmeIndicationsMask. |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| indMask - Set mask with values from CsrWifiNmeIndications |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeEventMaskSetReqCreate(msg__, dst__, src__, indMask__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeEventMaskSetReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_EVENT_MASK_SET_REQ, dst__, src__); \ |
| msg__->indMask = (indMask__); |
| |
| #define CsrWifiNmeEventMaskSetReqSendTo(dst__, src__, indMask__) \ |
| { \ |
| CsrWifiNmeEventMaskSetReq *msg__; \ |
| CsrWifiNmeEventMaskSetReqCreate(msg__, dst__, src__, indMask__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeEventMaskSetReqSend(src__, indMask__) \ |
| CsrWifiNmeEventMaskSetReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, indMask__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeEventMaskSetCfmSend |
| |
| DESCRIPTION |
| The NME calls the primitive to report the result of the request |
| primitive. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| status - Reports the result of the request |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeEventMaskSetCfmCreate(msg__, dst__, src__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeEventMaskSetCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_EVENT_MASK_SET_CFM, dst__, src__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiNmeEventMaskSetCfmSendTo(dst__, src__, status__) \ |
| { \ |
| CsrWifiNmeEventMaskSetCfm *msg__; \ |
| CsrWifiNmeEventMaskSetCfmCreate(msg__, dst__, src__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeEventMaskSetCfmSend(dst__, status__) \ |
| CsrWifiNmeEventMaskSetCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileConnectReqSend |
| |
| DESCRIPTION |
| Requests the NME to attempt to connect to the specified profile. |
| Overrides any current connection attempt. |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| profileIdentity - Identity (BSSID, SSID) of profile to be connected to. |
| It must match an existing profile in the NME. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileConnectReqCreate(msg__, dst__, src__, interfaceTag__, profileIdentity__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileConnectReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_CONNECT_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->profileIdentity = (profileIdentity__); |
| |
| #define CsrWifiNmeProfileConnectReqSendTo(dst__, src__, interfaceTag__, profileIdentity__) \ |
| { \ |
| CsrWifiNmeProfileConnectReq *msg__; \ |
| CsrWifiNmeProfileConnectReqCreate(msg__, dst__, src__, interfaceTag__, profileIdentity__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileConnectReqSend(src__, interfaceTag__, profileIdentity__) \ |
| CsrWifiNmeProfileConnectReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__, profileIdentity__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileConnectCfmSend |
| |
| DESCRIPTION |
| Reports the status of the NME PROFILE CONNECT REQ. If unsuccessful the |
| connectAttempt parameters contain details of the APs that the NME |
| attempted to connect to before reporting the failure of the request. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - Interface Identifier; unique identifier of an |
| interface |
| status - Indicates the success or otherwise of the requested |
| operation. |
| connectAttemptsCount - This parameter is relevant only if |
| status!=CSR_WIFI_NME_STATUS_SUCCESS. |
| Number of connection attempt elements provided with |
| this primitive |
| connectAttempts - This parameter is relevant only if |
| status!=CSR_WIFI_NME_STATUS_SUCCESS. |
| Points to the list of connection attempt elements |
| provided with this primitive |
| Each element of the list provides information about |
| an AP on which the connection attempt was made and |
| the error that occurred during the attempt. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileConnectCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectAttemptsCount__, connectAttempts__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileConnectCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_CONNECT_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); \ |
| msg__->connectAttemptsCount = (connectAttemptsCount__); \ |
| msg__->connectAttempts = (connectAttempts__); |
| |
| #define CsrWifiNmeProfileConnectCfmSendTo(dst__, src__, interfaceTag__, status__, connectAttemptsCount__, connectAttempts__) \ |
| { \ |
| CsrWifiNmeProfileConnectCfm *msg__; \ |
| CsrWifiNmeProfileConnectCfmCreate(msg__, dst__, src__, interfaceTag__, status__, connectAttemptsCount__, connectAttempts__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileConnectCfmSend(dst__, interfaceTag__, status__, connectAttemptsCount__, connectAttempts__) \ |
| CsrWifiNmeProfileConnectCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, status__, connectAttemptsCount__, connectAttempts__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileDeleteAllReqSend |
| |
| DESCRIPTION |
| Deletes all profiles present in the NME, but does NOT modify the |
| preferred profile list. |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileDeleteAllReqCreate(msg__, dst__, src__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileDeleteAllReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_DELETE_ALL_REQ, dst__, src__); |
| |
| #define CsrWifiNmeProfileDeleteAllReqSendTo(dst__, src__) \ |
| { \ |
| CsrWifiNmeProfileDeleteAllReq *msg__; \ |
| CsrWifiNmeProfileDeleteAllReqCreate(msg__, dst__, src__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileDeleteAllReqSend(src__) \ |
| CsrWifiNmeProfileDeleteAllReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileDeleteAllCfmSend |
| |
| DESCRIPTION |
| Reports the status of the CSR_WIFI_NME_PROFILE_DELETE_ALL_REQ. |
| Returns always CSR_WIFI_NME_STATUS_SUCCESS. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| status - Indicates the success or otherwise of the requested operation, but |
| in this case it always set to success. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileDeleteAllCfmCreate(msg__, dst__, src__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileDeleteAllCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_DELETE_ALL_CFM, dst__, src__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiNmeProfileDeleteAllCfmSendTo(dst__, src__, status__) \ |
| { \ |
| CsrWifiNmeProfileDeleteAllCfm *msg__; \ |
| CsrWifiNmeProfileDeleteAllCfmCreate(msg__, dst__, src__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileDeleteAllCfmSend(dst__, status__) \ |
| CsrWifiNmeProfileDeleteAllCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileDeleteReqSend |
| |
| DESCRIPTION |
| Will delete the profile with a matching identity, but does NOT modify the |
| preferred profile list. |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| profileIdentity - Identity (BSSID, SSID) of profile to be deleted. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileDeleteReqCreate(msg__, dst__, src__, profileIdentity__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileDeleteReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_DELETE_REQ, dst__, src__); \ |
| msg__->profileIdentity = (profileIdentity__); |
| |
| #define CsrWifiNmeProfileDeleteReqSendTo(dst__, src__, profileIdentity__) \ |
| { \ |
| CsrWifiNmeProfileDeleteReq *msg__; \ |
| CsrWifiNmeProfileDeleteReqCreate(msg__, dst__, src__, profileIdentity__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileDeleteReqSend(src__, profileIdentity__) \ |
| CsrWifiNmeProfileDeleteReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, profileIdentity__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileDeleteCfmSend |
| |
| DESCRIPTION |
| Reports the status of the CSR_WIFI_NME_PROFILE_DELETE_REQ. |
| Returns CSR_WIFI_NME_STATUS_NOT_FOUND if there is no matching profile. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| status - Indicates the success or otherwise of the requested operation. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileDeleteCfmCreate(msg__, dst__, src__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileDeleteCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_DELETE_CFM, dst__, src__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiNmeProfileDeleteCfmSendTo(dst__, src__, status__) \ |
| { \ |
| CsrWifiNmeProfileDeleteCfm *msg__; \ |
| CsrWifiNmeProfileDeleteCfmCreate(msg__, dst__, src__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileDeleteCfmSend(dst__, status__) \ |
| CsrWifiNmeProfileDeleteCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileDisconnectIndSend |
| |
| DESCRIPTION |
| Indication generated from the NME (if an application subscribes to |
| receive it) that informs that application that the current profile |
| connection has disconnected. The indication will contain information |
| about APs that it attempted to maintain the connection via i.e. in the |
| case of failed roaming. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - Interface Identifier; unique identifier of an |
| interface |
| connectAttemptsCount - Number of connection attempt elements provided with |
| this primitive |
| connectAttempts - Points to the list of connection attempt elements |
| provided with this primitive |
| Each element of the list provides information about |
| an AP on which the connection attempt was made and |
| the error occurred during the attempt. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileDisconnectIndCreate(msg__, dst__, src__, interfaceTag__, connectAttemptsCount__, connectAttempts__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileDisconnectInd), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_DISCONNECT_IND, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->connectAttemptsCount = (connectAttemptsCount__); \ |
| msg__->connectAttempts = (connectAttempts__); |
| |
| #define CsrWifiNmeProfileDisconnectIndSendTo(dst__, src__, interfaceTag__, connectAttemptsCount__, connectAttempts__) \ |
| { \ |
| CsrWifiNmeProfileDisconnectInd *msg__; \ |
| CsrWifiNmeProfileDisconnectIndCreate(msg__, dst__, src__, interfaceTag__, connectAttemptsCount__, connectAttempts__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileDisconnectIndSend(dst__, interfaceTag__, connectAttemptsCount__, connectAttempts__) \ |
| CsrWifiNmeProfileDisconnectIndSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, connectAttemptsCount__, connectAttempts__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileOrderSetReqSend |
| |
| DESCRIPTION |
| Defines the preferred order that profiles present in the NME should be |
| used during the NME auto-connect behaviour. |
| If profileIdentitysCount == 0, it removes any existing preferred profile |
| list already present in the NME, effectively disabling the auto-connect |
| behaviour. |
| NOTE: Profile identities that do not match any profile stored in the NME |
| are ignored during the auto-connect procedure. |
| NOTE: during auto-connect the NME will only attempt to join an existing |
| adhoc network and it will never attempt to host an adhoc network; for |
| hosting and adhoc network, use CSR_WIFI_NME_PROFILE_CONNECT_REQ |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - Interface Identifier; unique identifier of an |
| interface |
| profileIdentitysCount - The number of profiles identities in the list. |
| profileIdentitys - Points to the list of profile identities. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileOrderSetReqCreate(msg__, dst__, src__, interfaceTag__, profileIdentitysCount__, profileIdentitys__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileOrderSetReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_ORDER_SET_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->profileIdentitysCount = (profileIdentitysCount__); \ |
| msg__->profileIdentitys = (profileIdentitys__); |
| |
| #define CsrWifiNmeProfileOrderSetReqSendTo(dst__, src__, interfaceTag__, profileIdentitysCount__, profileIdentitys__) \ |
| { \ |
| CsrWifiNmeProfileOrderSetReq *msg__; \ |
| CsrWifiNmeProfileOrderSetReqCreate(msg__, dst__, src__, interfaceTag__, profileIdentitysCount__, profileIdentitys__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileOrderSetReqSend(src__, interfaceTag__, profileIdentitysCount__, profileIdentitys__) \ |
| CsrWifiNmeProfileOrderSetReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__, profileIdentitysCount__, profileIdentitys__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileOrderSetCfmSend |
| |
| DESCRIPTION |
| Confirmation to UNIFI_NME_PROFILE_ORDER_SET.request. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| status - Indicates the success or otherwise of the requested |
| operation. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileOrderSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileOrderSetCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_ORDER_SET_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiNmeProfileOrderSetCfmSendTo(dst__, src__, interfaceTag__, status__) \ |
| { \ |
| CsrWifiNmeProfileOrderSetCfm *msg__; \ |
| CsrWifiNmeProfileOrderSetCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileOrderSetCfmSend(dst__, interfaceTag__, status__) \ |
| CsrWifiNmeProfileOrderSetCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileSetReqSend |
| |
| DESCRIPTION |
| Creates or updates an existing profile in the NME that matches the unique |
| identity of the profile. Each profile is identified by the combination of |
| BSSID and SSID. The profile contains all the required credentials for |
| attempting to connect to the network. Creating or updating a profile via |
| the NME PROFILE SET REQ does NOT add the profile to the preferred profile |
| list within the NME used for the NME auto-connect behaviour. |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| profile - Specifies the identity and credentials of the network. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileSetReqCreate(msg__, dst__, src__, profile__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileSetReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_SET_REQ, dst__, src__); \ |
| msg__->profile = (profile__); |
| |
| #define CsrWifiNmeProfileSetReqSendTo(dst__, src__, profile__) \ |
| { \ |
| CsrWifiNmeProfileSetReq *msg__; \ |
| CsrWifiNmeProfileSetReqCreate(msg__, dst__, src__, profile__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileSetReqSend(src__, profile__) \ |
| CsrWifiNmeProfileSetReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, profile__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileSetCfmSend |
| |
| DESCRIPTION |
| Reports the status of the NME PROFILE SET REQ; the request will only fail |
| if the details specified in the profile contains an invalid combination |
| of parameters for example specifying the profile as cloaked but not |
| specifying the SSID. The NME doesn't limit the number of profiles that |
| may be created. The NME assumes that the entity configuring it is aware |
| of the appropriate limits. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| status - Indicates the success or otherwise of the requested operation. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileSetCfmCreate(msg__, dst__, src__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileSetCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_SET_CFM, dst__, src__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiNmeProfileSetCfmSendTo(dst__, src__, status__) \ |
| { \ |
| CsrWifiNmeProfileSetCfm *msg__; \ |
| CsrWifiNmeProfileSetCfmCreate(msg__, dst__, src__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileSetCfmSend(dst__, status__) \ |
| CsrWifiNmeProfileSetCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeProfileUpdateIndSend |
| |
| DESCRIPTION |
| Indication generated from the NME (if an application subscribes to |
| receive it) that informs that application that the contained profile has |
| changed. |
| For example, either the credentials EAP-FAST PAC file or the session data |
| within the profile has changed. |
| It is up to the application whether it stores this updated profile or |
| not. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| profile - The identity and credentials of the network. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeProfileUpdateIndCreate(msg__, dst__, src__, interfaceTag__, profile__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeProfileUpdateInd), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_PROFILE_UPDATE_IND, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->profile = (profile__); |
| |
| #define CsrWifiNmeProfileUpdateIndSendTo(dst__, src__, interfaceTag__, profile__) \ |
| { \ |
| CsrWifiNmeProfileUpdateInd *msg__; \ |
| CsrWifiNmeProfileUpdateIndCreate(msg__, dst__, src__, interfaceTag__, profile__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeProfileUpdateIndSend(dst__, interfaceTag__, profile__) \ |
| CsrWifiNmeProfileUpdateIndSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, profile__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeSimGsmAuthIndSend |
| |
| DESCRIPTION |
| Indication generated from the NME (if an application subscribes to |
| receive it) that requests the UICC Manager to perform a GSM |
| authentication on behalf of the NME. This indication is generated when |
| the NME is attempting to connect to a profile configured for EAP-SIM. An |
| application MUST register to receive this indication for the NME to |
| support the EAP-SIM credential types. Otherwise the NME has no route to |
| obtain the information from the UICC. EAP-SIM authentication requires 2 |
| or 3 GSM authentication rounds and therefore 2 or 3 RANDS (GSM Random |
| Challenges) are included. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| randsLength - GSM RAND is 16 bytes long hence valid values are 32 (2 RANDS) |
| or 48 (3 RANDs). |
| rands - 2 or 3 RANDs values. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeSimGsmAuthIndCreate(msg__, dst__, src__, randsLength__, rands__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeSimGsmAuthInd), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_SIM_GSM_AUTH_IND, dst__, src__); \ |
| msg__->randsLength = (randsLength__); \ |
| msg__->rands = (rands__); |
| |
| #define CsrWifiNmeSimGsmAuthIndSendTo(dst__, src__, randsLength__, rands__) \ |
| { \ |
| CsrWifiNmeSimGsmAuthInd *msg__; \ |
| CsrWifiNmeSimGsmAuthIndCreate(msg__, dst__, src__, randsLength__, rands__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeSimGsmAuthIndSend(dst__, randsLength__, rands__) \ |
| CsrWifiNmeSimGsmAuthIndSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, randsLength__, rands__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeSimGsmAuthResSend |
| |
| DESCRIPTION |
| Response from the application that received the NME SIM GSM AUTH IND. For |
| each GSM authentication round a GSM Ciphering key (Kc) and a signed |
| response (SRES) are produced. Since 2 or 3 GSM authentication rounds are |
| used the 2 or 3 Kc's obtained respectively are combined into one buffer |
| and similarly the 2 or 3 SRES's obtained are combined into another |
| buffer. The order of Kc values (SRES values respectively) in their buffer |
| is the same as that of their corresponding RAND values in the incoming |
| indication. |
| |
| PARAMETERS |
| status - Indicates the outcome of the requested operation: |
| STATUS_SUCCESS or STATUS_ERROR |
| kcsLength - Length in Bytes of Kc buffer. Legal values are: 16 or 24. |
| kcs - Kc buffer holding 2 or 3 Kc values. |
| sresLength - Length in Bytes of SRES buffer. Legal values are: 8 or 12. |
| sres - SRES buffer holding 2 or 3 SRES values. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeSimGsmAuthResCreate(msg__, dst__, src__, status__, kcsLength__, kcs__, sresLength__, sres__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeSimGsmAuthRes), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_SIM_GSM_AUTH_RES, dst__, src__); \ |
| msg__->status = (status__); \ |
| msg__->kcsLength = (kcsLength__); \ |
| msg__->kcs = (kcs__); \ |
| msg__->sresLength = (sresLength__); \ |
| msg__->sres = (sres__); |
| |
| #define CsrWifiNmeSimGsmAuthResSendTo(dst__, src__, status__, kcsLength__, kcs__, sresLength__, sres__) \ |
| { \ |
| CsrWifiNmeSimGsmAuthRes *msg__; \ |
| CsrWifiNmeSimGsmAuthResCreate(msg__, dst__, src__, status__, kcsLength__, kcs__, sresLength__, sres__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeSimGsmAuthResSend(src__, status__, kcsLength__, kcs__, sresLength__, sres__) \ |
| CsrWifiNmeSimGsmAuthResSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, status__, kcsLength__, kcs__, sresLength__, sres__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeSimImsiGetIndSend |
| |
| DESCRIPTION |
| Indication generated from the NME (if an application subscribes to |
| receive it) that requests the IMSI and UICC type from the UICC Manager. |
| This indication is generated when the NME is attempting to connect to a |
| profile configured for EAP-SIM/AKA. An application MUST register to |
| receive this indication for the NME to support the EAP-SIM/AKA credential |
| types. Otherwise the NME has no route to obtain the information from the |
| UICC. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeSimImsiGetIndCreate(msg__, dst__, src__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeSimImsiGetInd), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_SIM_IMSI_GET_IND, dst__, src__); |
| |
| #define CsrWifiNmeSimImsiGetIndSendTo(dst__, src__) \ |
| { \ |
| CsrWifiNmeSimImsiGetInd *msg__; \ |
| CsrWifiNmeSimImsiGetIndCreate(msg__, dst__, src__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeSimImsiGetIndSend(dst__) \ |
| CsrWifiNmeSimImsiGetIndSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeSimImsiGetResSend |
| |
| DESCRIPTION |
| Response from the application that received the NME SIM IMSI GET IND. |
| |
| PARAMETERS |
| status - Indicates the outcome of the requested operation: STATUS_SUCCESS |
| or STATUS_ERROR. |
| imsi - The value of the IMSI obtained from the UICC. |
| cardType - The UICC type (GSM only (SIM), UMTS only (USIM), Both). |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeSimImsiGetResCreate(msg__, dst__, src__, status__, imsi__, cardType__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeSimImsiGetRes), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_SIM_IMSI_GET_RES, dst__, src__); \ |
| msg__->status = (status__); \ |
| msg__->imsi = (imsi__); \ |
| msg__->cardType = (cardType__); |
| |
| #define CsrWifiNmeSimImsiGetResSendTo(dst__, src__, status__, imsi__, cardType__) \ |
| { \ |
| CsrWifiNmeSimImsiGetRes *msg__; \ |
| CsrWifiNmeSimImsiGetResCreate(msg__, dst__, src__, status__, imsi__, cardType__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeSimImsiGetResSend(src__, status__, imsi__, cardType__) \ |
| CsrWifiNmeSimImsiGetResSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, status__, imsi__, cardType__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeSimUmtsAuthIndSend |
| |
| DESCRIPTION |
| Indication generated from the NME (if an application subscribes to |
| receive it) that requests the UICC Manager to perform a UMTS |
| authentication on behalf of the NME. This indication is generated when |
| the NME is attempting to connect to a profile configured for EAP-AKA. An |
| application MUST register to receive this indication for the NME to |
| support the EAP-AKA credential types. Otherwise the NME has no route to |
| obtain the information from the USIM. EAP-AKA requires one UMTS |
| authentication round and therefore only one RAND and one AUTN values are |
| included. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| rand - UMTS RAND value. |
| autn - UMTS AUTN value. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeSimUmtsAuthIndCreate(msg__, dst__, src__, rand__, autn__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeSimUmtsAuthInd), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_SIM_UMTS_AUTH_IND, dst__, src__); \ |
| memcpy(msg__->rand, (rand__), sizeof(u8) * 16); \ |
| memcpy(msg__->autn, (autn__), sizeof(u8) * 16); |
| |
| #define CsrWifiNmeSimUmtsAuthIndSendTo(dst__, src__, rand__, autn__) \ |
| { \ |
| CsrWifiNmeSimUmtsAuthInd *msg__; \ |
| CsrWifiNmeSimUmtsAuthIndCreate(msg__, dst__, src__, rand__, autn__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeSimUmtsAuthIndSend(dst__, rand__, autn__) \ |
| CsrWifiNmeSimUmtsAuthIndSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, rand__, autn__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeSimUmtsAuthResSend |
| |
| DESCRIPTION |
| Response from the application that received the NME SIM UMTS AUTH IND. |
| The values of umtsCipherKey, umtsIntegrityKey, resParameterLength and |
| resParameter are only meanigful when result = UMTS_AUTH_RESULT_SUCCESS. |
| The value of auts is only meaningful when |
| result=UMTS_AUTH_RESULT_SYNC_FAIL. |
| |
| PARAMETERS |
| status - Indicates the outcome of the requested operation: |
| STATUS_SUCCESS or STATUS_ERROR. |
| result - The result of UMTS authentication as performed by the |
| UICC which could be: Success, Authentication Reject or |
| Synchronisation Failure. For all these 3 outcomes the |
| value of status is success. |
| umtsCipherKey - The UMTS Cipher Key as calculated and returned by the |
| UICC. |
| umtsIntegrityKey - The UMTS Integrity Key as calculated and returned by |
| the UICC. |
| resParameterLength - The length (in bytes) of the RES parameter (min=4; max |
| = 16). |
| resParameter - The RES parameter as calculated and returned by the |
| UICC. |
| auts - The AUTS parameter as calculated and returned by the |
| UICC. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeSimUmtsAuthResCreate(msg__, dst__, src__, status__, result__, umtsCipherKey__, umtsIntegrityKey__, resParameterLength__, resParameter__, auts__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeSimUmtsAuthRes), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_SIM_UMTS_AUTH_RES, dst__, src__); \ |
| msg__->status = (status__); \ |
| msg__->result = (result__); \ |
| memcpy(msg__->umtsCipherKey, (umtsCipherKey__), sizeof(u8) * 16); \ |
| memcpy(msg__->umtsIntegrityKey, (umtsIntegrityKey__), sizeof(u8) * 16); \ |
| msg__->resParameterLength = (resParameterLength__); \ |
| msg__->resParameter = (resParameter__); \ |
| memcpy(msg__->auts, (auts__), sizeof(u8) * 14); |
| |
| #define CsrWifiNmeSimUmtsAuthResSendTo(dst__, src__, status__, result__, umtsCipherKey__, umtsIntegrityKey__, resParameterLength__, resParameter__, auts__) \ |
| { \ |
| CsrWifiNmeSimUmtsAuthRes *msg__; \ |
| CsrWifiNmeSimUmtsAuthResCreate(msg__, dst__, src__, status__, result__, umtsCipherKey__, umtsIntegrityKey__, resParameterLength__, resParameter__, auts__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeSimUmtsAuthResSend(src__, status__, result__, umtsCipherKey__, umtsIntegrityKey__, resParameterLength__, resParameter__, auts__) \ |
| CsrWifiNmeSimUmtsAuthResSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, status__, result__, umtsCipherKey__, umtsIntegrityKey__, resParameterLength__, resParameter__, auts__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeWpsCancelReqSend |
| |
| DESCRIPTION |
| Requests the NME to cancel any WPS procedure that it is currently |
| performing. This includes WPS registrar activities started because of |
| CSR_WIFI_NME_AP_REGISTER.request |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeWpsCancelReqCreate(msg__, dst__, src__, interfaceTag__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeWpsCancelReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_WPS_CANCEL_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); |
| |
| #define CsrWifiNmeWpsCancelReqSendTo(dst__, src__, interfaceTag__) \ |
| { \ |
| CsrWifiNmeWpsCancelReq *msg__; \ |
| CsrWifiNmeWpsCancelReqCreate(msg__, dst__, src__, interfaceTag__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeWpsCancelReqSend(src__, interfaceTag__) \ |
| CsrWifiNmeWpsCancelReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeWpsCancelCfmSend |
| |
| DESCRIPTION |
| Reports the status of the NME WPS REQ, the request is always SUCCESSFUL. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| status - Only returns CSR_WIFI_NME_STATUS_SUCCESS |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeWpsCancelCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeWpsCancelCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_WPS_CANCEL_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiNmeWpsCancelCfmSendTo(dst__, src__, interfaceTag__, status__) \ |
| { \ |
| CsrWifiNmeWpsCancelCfm *msg__; \ |
| CsrWifiNmeWpsCancelCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeWpsCancelCfmSend(dst__, interfaceTag__, status__) \ |
| CsrWifiNmeWpsCancelCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeWpsCfmSend |
| |
| DESCRIPTION |
| Reports the status of the NME WPS REQ. |
| If CSR_WIFI_NME_STATUS_SUCCESS, the profile parameter contains the |
| identity and credentials of the AP. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| status - Indicates the success or otherwise of the requested |
| operation. |
| profile - This parameter is relevant only if |
| status==CSR_WIFI_NME_STATUS_SUCCESS. |
| The identity and credentials of the network. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeWpsCfmCreate(msg__, dst__, src__, interfaceTag__, status__, profile__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeWpsCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_WPS_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); \ |
| msg__->profile = (profile__); |
| |
| #define CsrWifiNmeWpsCfmSendTo(dst__, src__, interfaceTag__, status__, profile__) \ |
| { \ |
| CsrWifiNmeWpsCfm *msg__; \ |
| CsrWifiNmeWpsCfmCreate(msg__, dst__, src__, interfaceTag__, status__, profile__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeWpsCfmSend(dst__, interfaceTag__, status__, profile__) \ |
| CsrWifiNmeWpsCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, interfaceTag__, status__, profile__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeWpsConfigSetReqSend |
| |
| DESCRIPTION |
| This primitive passes the WPS information for the device to NME. This may |
| be accepted only if no interface is active. |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| wpsConfig - WPS config. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeWpsConfigSetReqCreate(msg__, dst__, src__, wpsConfig__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeWpsConfigSetReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_WPS_CONFIG_SET_REQ, dst__, src__); \ |
| msg__->wpsConfig = (wpsConfig__); |
| |
| #define CsrWifiNmeWpsConfigSetReqSendTo(dst__, src__, wpsConfig__) \ |
| { \ |
| CsrWifiNmeWpsConfigSetReq *msg__; \ |
| CsrWifiNmeWpsConfigSetReqCreate(msg__, dst__, src__, wpsConfig__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeWpsConfigSetReqSend(src__, wpsConfig__) \ |
| CsrWifiNmeWpsConfigSetReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, wpsConfig__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeWpsConfigSetCfmSend |
| |
| DESCRIPTION |
| Confirm. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| status - Status of the request. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeWpsConfigSetCfmCreate(msg__, dst__, src__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeWpsConfigSetCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_WPS_CONFIG_SET_CFM, dst__, src__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiNmeWpsConfigSetCfmSendTo(dst__, src__, status__) \ |
| { \ |
| CsrWifiNmeWpsConfigSetCfm *msg__; \ |
| CsrWifiNmeWpsConfigSetCfmCreate(msg__, dst__, src__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeWpsConfigSetCfmSend(dst__, status__) \ |
| CsrWifiNmeWpsConfigSetCfmSendTo(dst__, CSR_WIFI_NME_IFACEQUEUE, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiNmeWpsReqSend |
| |
| DESCRIPTION |
| Requests the NME to look for WPS enabled APs and attempt to perform WPS |
| to determine the appropriate security credentials to connect to the AP. |
| If the PIN == '00000000' then 'push button mode' is indicated, otherwise |
| the PIN has to match that of the AP. 4 digit pin is passed by sending the |
| pin digits in pin[0]..pin[3] and rest of the contents filled with '-'. |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - Interface Identifier; unique identifier of an interface |
| pin - PIN value. |
| ssid - Service Set identifier |
| bssid - ID of Basic Service Set for which a WPS connection attempt is |
| being made. |
| |
| *******************************************************************************/ |
| #define CsrWifiNmeWpsReqCreate(msg__, dst__, src__, interfaceTag__, pin__, ssid__, bssid__) \ |
| msg__ = kmalloc(sizeof(CsrWifiNmeWpsReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_NME_PRIM, CSR_WIFI_NME_WPS_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| memcpy(msg__->pin, (pin__), sizeof(u8) * 8); \ |
| msg__->ssid = (ssid__); \ |
| msg__->bssid = (bssid__); |
| |
| #define CsrWifiNmeWpsReqSendTo(dst__, src__, interfaceTag__, pin__, ssid__, bssid__) \ |
| { \ |
| CsrWifiNmeWpsReq *msg__; \ |
| CsrWifiNmeWpsReqCreate(msg__, dst__, src__, interfaceTag__, pin__, ssid__, bssid__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_NME_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiNmeWpsReqSend(src__, interfaceTag__, pin__, ssid__, bssid__) \ |
| CsrWifiNmeWpsReqSendTo(CSR_WIFI_NME_IFACEQUEUE, src__, interfaceTag__, pin__, ssid__, bssid__) |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* CSR_WIFI_NME_LIB_H__ */ |