| /***************************************************************************** |
| |
| (c) Cambridge Silicon Radio Limited 2012 |
| 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_SME_AP_LIB_H__ |
| #define CSR_WIFI_SME_AP_LIB_H__ |
| |
| #include "csr_sched.h" |
| #include "csr_macro.h" |
| #include "csr_msg_transport.h" |
| |
| #include "csr_wifi_lib.h" |
| |
| #include "csr_wifi_sme_ap_prim.h" |
| #include "csr_wifi_sme_task.h" |
| |
| #ifndef CSR_WIFI_AP_ENABLE |
| #error CSR_WIFI_AP_ENABLE MUST be defined inorder to use csr_wifi_sme_ap_lib.h |
| #endif |
| |
| /*----------------------------------------------------------------------------* |
| * CsrWifiSmeApFreeUpstreamMessageContents |
| * |
| * DESCRIPTION |
| * Free the allocated memory in a CSR_WIFI_SME_AP upstream message. Does not |
| * free the message itself, and can only be used for upstream messages. |
| * |
| * PARAMETERS |
| * Deallocates the resources in a CSR_WIFI_SME_AP upstream message |
| *----------------------------------------------------------------------------*/ |
| void CsrWifiSmeApFreeUpstreamMessageContents(u16 eventClass, void *message); |
| |
| /*----------------------------------------------------------------------------* |
| * CsrWifiSmeApFreeDownstreamMessageContents |
| * |
| * DESCRIPTION |
| * Free the allocated memory in a CSR_WIFI_SME_AP downstream message. Does not |
| * free the message itself, and can only be used for downstream messages. |
| * |
| * PARAMETERS |
| * Deallocates the resources in a CSR_WIFI_SME_AP downstream message |
| *----------------------------------------------------------------------------*/ |
| void CsrWifiSmeApFreeDownstreamMessageContents(u16 eventClass, void *message); |
| |
| /*----------------------------------------------------------------------------* |
| * Enum to string functions |
| *----------------------------------------------------------------------------*/ |
| const char* CsrWifiSmeApAccessTypeToString(CsrWifiSmeApAccessType value); |
| const char* CsrWifiSmeApAuthSupportToString(CsrWifiSmeApAuthSupport value); |
| const char* CsrWifiSmeApAuthTypeToString(CsrWifiSmeApAuthType value); |
| const char* CsrWifiSmeApDirectionToString(CsrWifiSmeApDirection value); |
| const char* CsrWifiSmeApPhySupportToString(CsrWifiSmeApPhySupport value); |
| const char* CsrWifiSmeApTypeToString(CsrWifiSmeApType value); |
| |
| |
| /*----------------------------------------------------------------------------* |
| * CsrPrim Type toString function. |
| * Converts a message type to the String name of the Message |
| *----------------------------------------------------------------------------*/ |
| const char* CsrWifiSmeApPrimTypeToString(CsrPrim msgType); |
| |
| /*----------------------------------------------------------------------------* |
| * Lookup arrays for PrimType name Strings |
| *----------------------------------------------------------------------------*/ |
| extern const char *CsrWifiSmeApUpstreamPrimNames[CSR_WIFI_SME_AP_PRIM_UPSTREAM_COUNT]; |
| extern const char *CsrWifiSmeApDownstreamPrimNames[CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_COUNT]; |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApActiveBaGetReqSend |
| |
| DESCRIPTION |
| This primitive used to retrieve information related to the active block |
| ack sessions |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApActiveBaGetReqCreate(msg__, dst__, src__, interfaceTag__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApActiveBaGetReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_ACTIVE_BA_GET_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); |
| |
| #define CsrWifiSmeApActiveBaGetReqSendTo(dst__, src__, interfaceTag__) \ |
| { \ |
| CsrWifiSmeApActiveBaGetReq *msg__; \ |
| CsrWifiSmeApActiveBaGetReqCreate(msg__, dst__, src__, interfaceTag__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApActiveBaGetReqSend(src__, interfaceTag__) \ |
| CsrWifiSmeApActiveBaGetReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, interfaceTag__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApActiveBaGetCfmSend |
| |
| DESCRIPTION |
| This primitive carries the information related to the active ba sessions |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| status - Reports the result of the request |
| activeBaCount - Number of active block ack session |
| activeBaSessions - Points to a buffer containing an array of |
| CsrWifiSmeApBaSession structures. |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApActiveBaGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, activeBaCount__, activeBaSessions__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApActiveBaGetCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_ACTIVE_BA_GET_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); \ |
| msg__->activeBaCount = (activeBaCount__); \ |
| msg__->activeBaSessions = (activeBaSessions__); |
| |
| #define CsrWifiSmeApActiveBaGetCfmSendTo(dst__, src__, interfaceTag__, status__, activeBaCount__, activeBaSessions__) \ |
| { \ |
| CsrWifiSmeApActiveBaGetCfm *msg__; \ |
| CsrWifiSmeApActiveBaGetCfmCreate(msg__, dst__, src__, interfaceTag__, status__, activeBaCount__, activeBaSessions__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApActiveBaGetCfmSend(dst__, interfaceTag__, status__, activeBaCount__, activeBaSessions__) \ |
| CsrWifiSmeApActiveBaGetCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, activeBaCount__, activeBaSessions__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApBaDeleteReqSend |
| |
| DESCRIPTION |
| This primitive is used to delete an active block ack session |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - |
| reason - |
| baSession - BA session to be deleted |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApBaDeleteReqCreate(msg__, dst__, src__, interfaceTag__, reason__, baSession__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApBaDeleteReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_BA_DELETE_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->reason = (reason__); \ |
| msg__->baSession = (baSession__); |
| |
| #define CsrWifiSmeApBaDeleteReqSendTo(dst__, src__, interfaceTag__, reason__, baSession__) \ |
| { \ |
| CsrWifiSmeApBaDeleteReq *msg__; \ |
| CsrWifiSmeApBaDeleteReqCreate(msg__, dst__, src__, interfaceTag__, reason__, baSession__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApBaDeleteReqSend(src__, interfaceTag__, reason__, baSession__) \ |
| CsrWifiSmeApBaDeleteReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, interfaceTag__, reason__, baSession__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApBaDeleteCfmSend |
| |
| DESCRIPTION |
| This primitive confirms the BA is deleted |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| status - Reports the result of the request |
| baSession - deleted BA session |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApBaDeleteCfmCreate(msg__, dst__, src__, interfaceTag__, status__, baSession__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApBaDeleteCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_BA_DELETE_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); \ |
| msg__->baSession = (baSession__); |
| |
| #define CsrWifiSmeApBaDeleteCfmSendTo(dst__, src__, interfaceTag__, status__, baSession__) \ |
| { \ |
| CsrWifiSmeApBaDeleteCfm *msg__; \ |
| CsrWifiSmeApBaDeleteCfmCreate(msg__, dst__, src__, interfaceTag__, status__, baSession__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApBaDeleteCfmSend(dst__, interfaceTag__, status__, baSession__) \ |
| CsrWifiSmeApBaDeleteCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, baSession__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApBeaconingStartReqSend |
| |
| DESCRIPTION |
| This primitive requests the SME to start AP or GO functionality |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - |
| initialPresence - Set to 0, if Not in a group fomration phase, set to 1 , |
| during group formation phase |
| apType - apType : Legacy AP or P2PGO |
| cloakSsid - cloakSsid flag. |
| ssid - ssid. |
| ifIndex - Radio Interface |
| channel - channel. |
| maxConnections - Maximum Stations + P2PClients allowed |
| apCredentials - AP security credeitals used to advertise in beacon /probe |
| response |
| smeApConfig - AP configuration |
| p2pGoParam - P2P specific GO parameters. Ignored if it is a leagacy AP |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApBeaconingStartReqCreate(msg__, dst__, src__, interfaceTag__, initialPresence__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, maxConnections__, apCredentials__, smeApConfig__, p2pGoParam__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApBeaconingStartReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_BEACONING_START_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->initialPresence = (initialPresence__); \ |
| msg__->apType = (apType__); \ |
| msg__->cloakSsid = (cloakSsid__); \ |
| msg__->ssid = (ssid__); \ |
| msg__->ifIndex = (ifIndex__); \ |
| msg__->channel = (channel__); \ |
| msg__->maxConnections = (maxConnections__); \ |
| msg__->apCredentials = (apCredentials__); \ |
| msg__->smeApConfig = (smeApConfig__); \ |
| msg__->p2pGoParam = (p2pGoParam__); |
| |
| #define CsrWifiSmeApBeaconingStartReqSendTo(dst__, src__, interfaceTag__, initialPresence__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, maxConnections__, apCredentials__, smeApConfig__, p2pGoParam__) \ |
| { \ |
| CsrWifiSmeApBeaconingStartReq *msg__; \ |
| CsrWifiSmeApBeaconingStartReqCreate(msg__, dst__, src__, interfaceTag__, initialPresence__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, maxConnections__, apCredentials__, smeApConfig__, p2pGoParam__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApBeaconingStartReqSend(src__, interfaceTag__, initialPresence__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, maxConnections__, apCredentials__, smeApConfig__, p2pGoParam__) \ |
| CsrWifiSmeApBeaconingStartReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, interfaceTag__, initialPresence__, apType__, cloakSsid__, ssid__, ifIndex__, channel__, maxConnections__, apCredentials__, smeApConfig__, p2pGoParam__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApBeaconingStartCfmSend |
| |
| DESCRIPTION |
| This primitive confirms the completion of the request along with the |
| status |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| status - |
| secIeLength - |
| secIe - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApBeaconingStartCfmCreate(msg__, dst__, src__, interfaceTag__, status__, secIeLength__, secIe__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApBeaconingStartCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_BEACONING_START_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); \ |
| msg__->secIeLength = (secIeLength__); \ |
| msg__->secIe = (secIe__); |
| |
| #define CsrWifiSmeApBeaconingStartCfmSendTo(dst__, src__, interfaceTag__, status__, secIeLength__, secIe__) \ |
| { \ |
| CsrWifiSmeApBeaconingStartCfm *msg__; \ |
| CsrWifiSmeApBeaconingStartCfmCreate(msg__, dst__, src__, interfaceTag__, status__, secIeLength__, secIe__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApBeaconingStartCfmSend(dst__, interfaceTag__, status__, secIeLength__, secIe__) \ |
| CsrWifiSmeApBeaconingStartCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, secIeLength__, secIe__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApBeaconingStopReqSend |
| |
| DESCRIPTION |
| This primitive requests the SME to STOP AP or P2PGO operation |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApBeaconingStopReqCreate(msg__, dst__, src__, interfaceTag__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApBeaconingStopReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_BEACONING_STOP_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); |
| |
| #define CsrWifiSmeApBeaconingStopReqSendTo(dst__, src__, interfaceTag__) \ |
| { \ |
| CsrWifiSmeApBeaconingStopReq *msg__; \ |
| CsrWifiSmeApBeaconingStopReqCreate(msg__, dst__, src__, interfaceTag__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApBeaconingStopReqSend(src__, interfaceTag__) \ |
| CsrWifiSmeApBeaconingStopReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, interfaceTag__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApBeaconingStopCfmSend |
| |
| DESCRIPTION |
| This primitive confirms AP or P2PGO operation is terminated |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| status - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApBeaconingStopCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApBeaconingStopCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_BEACONING_STOP_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiSmeApBeaconingStopCfmSendTo(dst__, src__, interfaceTag__, status__) \ |
| { \ |
| CsrWifiSmeApBeaconingStopCfm *msg__; \ |
| CsrWifiSmeApBeaconingStopCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApBeaconingStopCfmSend(dst__, interfaceTag__, status__) \ |
| CsrWifiSmeApBeaconingStopCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApErrorIndSend |
| |
| DESCRIPTION |
| This primitve is sent by SME to indicate some error in AP operationi |
| after AP operations were started successfully and continuing the AP |
| operation may lead to undesired behaviour. It is the responsibility of |
| the upper layers to stop AP operation if needed |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - Range 0-1 |
| apType - |
| status - Contains the error status |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApErrorIndCreate(msg__, dst__, src__, interfaceTag__, apType__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApErrorInd), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_ERROR_IND, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->apType = (apType__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiSmeApErrorIndSendTo(dst__, src__, interfaceTag__, apType__, status__) \ |
| { \ |
| CsrWifiSmeApErrorInd *msg__; \ |
| CsrWifiSmeApErrorIndCreate(msg__, dst__, src__, interfaceTag__, apType__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApErrorIndSend(dst__, interfaceTag__, apType__, status__) \ |
| CsrWifiSmeApErrorIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, apType__, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApStaConnectStartIndSend |
| |
| DESCRIPTION |
| This primitive indicates that a stations request to join the group/BSS is |
| accepted |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| peerMacAddress - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApStaConnectStartIndCreate(msg__, dst__, src__, interfaceTag__, peerMacAddress__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApStaConnectStartInd), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_STA_CONNECT_START_IND, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->peerMacAddress = (peerMacAddress__); |
| |
| #define CsrWifiSmeApStaConnectStartIndSendTo(dst__, src__, interfaceTag__, peerMacAddress__) \ |
| { \ |
| CsrWifiSmeApStaConnectStartInd *msg__; \ |
| CsrWifiSmeApStaConnectStartIndCreate(msg__, dst__, src__, interfaceTag__, peerMacAddress__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApStaConnectStartIndSend(dst__, interfaceTag__, peerMacAddress__) \ |
| CsrWifiSmeApStaConnectStartIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, peerMacAddress__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApStaDisconnectReqSend |
| |
| DESCRIPTION |
| This primitive tells SME to deauth ot disassociate a particular station |
| within BSS |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - |
| deauthReason - |
| disassocReason - |
| peerMacaddress - |
| keepBlocking - If TRUE, the station is blocked. If FALSE and the station |
| is connected, disconnect the station. If FALSE and the |
| station is not connected, no action is taken. |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApStaDisconnectReqCreate(msg__, dst__, src__, interfaceTag__, deauthReason__, disassocReason__, peerMacaddress__, keepBlocking__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApStaDisconnectReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_STA_DISCONNECT_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->deauthReason = (deauthReason__); \ |
| msg__->disassocReason = (disassocReason__); \ |
| msg__->peerMacaddress = (peerMacaddress__); \ |
| msg__->keepBlocking = (keepBlocking__); |
| |
| #define CsrWifiSmeApStaDisconnectReqSendTo(dst__, src__, interfaceTag__, deauthReason__, disassocReason__, peerMacaddress__, keepBlocking__) \ |
| { \ |
| CsrWifiSmeApStaDisconnectReq *msg__; \ |
| CsrWifiSmeApStaDisconnectReqCreate(msg__, dst__, src__, interfaceTag__, deauthReason__, disassocReason__, peerMacaddress__, keepBlocking__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApStaDisconnectReqSend(src__, interfaceTag__, deauthReason__, disassocReason__, peerMacaddress__, keepBlocking__) \ |
| CsrWifiSmeApStaDisconnectReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, interfaceTag__, deauthReason__, disassocReason__, peerMacaddress__, keepBlocking__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApStaDisconnectCfmSend |
| |
| DESCRIPTION |
| This primitive confirms the station is disconnected |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| status - |
| peerMacaddress - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApStaDisconnectCfmCreate(msg__, dst__, src__, interfaceTag__, status__, peerMacaddress__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApStaDisconnectCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_STA_DISCONNECT_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); \ |
| msg__->peerMacaddress = (peerMacaddress__); |
| |
| #define CsrWifiSmeApStaDisconnectCfmSendTo(dst__, src__, interfaceTag__, status__, peerMacaddress__) \ |
| { \ |
| CsrWifiSmeApStaDisconnectCfm *msg__; \ |
| CsrWifiSmeApStaDisconnectCfmCreate(msg__, dst__, src__, interfaceTag__, status__, peerMacaddress__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApStaDisconnectCfmSend(dst__, interfaceTag__, status__, peerMacaddress__) \ |
| CsrWifiSmeApStaDisconnectCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__, peerMacaddress__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApStaNotifyIndSend |
| |
| DESCRIPTION |
| This primitive indicates that a station has joined or a previously joined |
| station has left the BSS/group |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| mediaStatus - |
| peerMacAddress - |
| peerDeviceAddress - |
| disassocReason - |
| deauthReason - |
| WpsRegistration - |
| secIeLength - |
| secIe - |
| groupKeyId - |
| seqNumber - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApStaNotifyIndCreate(msg__, dst__, src__, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__, disassocReason__, deauthReason__, WpsRegistration__, secIeLength__, secIe__, groupKeyId__, seqNumber__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApStaNotifyInd), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_STA_NOTIFY_IND, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->mediaStatus = (mediaStatus__); \ |
| msg__->peerMacAddress = (peerMacAddress__); \ |
| msg__->peerDeviceAddress = (peerDeviceAddress__); \ |
| msg__->disassocReason = (disassocReason__); \ |
| msg__->deauthReason = (deauthReason__); \ |
| msg__->WpsRegistration = (WpsRegistration__); \ |
| msg__->secIeLength = (secIeLength__); \ |
| msg__->secIe = (secIe__); \ |
| msg__->groupKeyId = (groupKeyId__); \ |
| memcpy(msg__->seqNumber, (seqNumber__), sizeof(u16) * 8); |
| |
| #define CsrWifiSmeApStaNotifyIndSendTo(dst__, src__, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__, disassocReason__, deauthReason__, WpsRegistration__, secIeLength__, secIe__, groupKeyId__, seqNumber__) \ |
| { \ |
| CsrWifiSmeApStaNotifyInd *msg__; \ |
| CsrWifiSmeApStaNotifyIndCreate(msg__, dst__, src__, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__, disassocReason__, deauthReason__, WpsRegistration__, secIeLength__, secIe__, groupKeyId__, seqNumber__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApStaNotifyIndSend(dst__, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__, disassocReason__, deauthReason__, WpsRegistration__, secIeLength__, secIe__, groupKeyId__, seqNumber__) \ |
| CsrWifiSmeApStaNotifyIndSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, mediaStatus__, peerMacAddress__, peerDeviceAddress__, disassocReason__, deauthReason__, WpsRegistration__, secIeLength__, secIe__, groupKeyId__, seqNumber__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApWmmParamUpdateReqSend |
| |
| DESCRIPTION |
| Application uses this primitive to update the WMM parameters on the fly |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - |
| wmmApParams - WMM parameters to be used for local firmware queue |
| configuration |
| wmmApBcParams - WMM parameters to be advertised in beacon/probe response |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApWmmParamUpdateReqCreate(msg__, dst__, src__, interfaceTag__, wmmApParams__, wmmApBcParams__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApWmmParamUpdateReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_WMM_PARAM_UPDATE_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| memcpy(msg__->wmmApParams, (wmmApParams__), sizeof(CsrWifiSmeWmmAcParams) * 4); \ |
| memcpy(msg__->wmmApBcParams, (wmmApBcParams__), sizeof(CsrWifiSmeWmmAcParams) * 4); |
| |
| #define CsrWifiSmeApWmmParamUpdateReqSendTo(dst__, src__, interfaceTag__, wmmApParams__, wmmApBcParams__) \ |
| { \ |
| CsrWifiSmeApWmmParamUpdateReq *msg__; \ |
| CsrWifiSmeApWmmParamUpdateReqCreate(msg__, dst__, src__, interfaceTag__, wmmApParams__, wmmApBcParams__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApWmmParamUpdateReqSend(src__, interfaceTag__, wmmApParams__, wmmApBcParams__) \ |
| CsrWifiSmeApWmmParamUpdateReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, interfaceTag__, wmmApParams__, wmmApBcParams__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApWmmParamUpdateCfmSend |
| |
| DESCRIPTION |
| A confirm for CSR_WIFI_SME_AP_WMM_PARAM_UPDATE.request |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| status - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApWmmParamUpdateCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApWmmParamUpdateCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_WMM_PARAM_UPDATE_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiSmeApWmmParamUpdateCfmSendTo(dst__, src__, interfaceTag__, status__) \ |
| { \ |
| CsrWifiSmeApWmmParamUpdateCfm *msg__; \ |
| CsrWifiSmeApWmmParamUpdateCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApWmmParamUpdateCfmSend(dst__, interfaceTag__, status__) \ |
| CsrWifiSmeApWmmParamUpdateCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApWpsConfigurationReqSend |
| |
| DESCRIPTION |
| This primitive passes the WPS information for the device to SME. 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 CsrWifiSmeApWpsConfigurationReqCreate(msg__, dst__, src__, wpsConfig__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApWpsConfigurationReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_WPS_CONFIGURATION_REQ, dst__, src__); \ |
| msg__->wpsConfig = (wpsConfig__); |
| |
| #define CsrWifiSmeApWpsConfigurationReqSendTo(dst__, src__, wpsConfig__) \ |
| { \ |
| CsrWifiSmeApWpsConfigurationReq *msg__; \ |
| CsrWifiSmeApWpsConfigurationReqCreate(msg__, dst__, src__, wpsConfig__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApWpsConfigurationReqSend(src__, wpsConfig__) \ |
| CsrWifiSmeApWpsConfigurationReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, wpsConfig__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApWpsConfigurationCfmSend |
| |
| DESCRIPTION |
| Confirm. |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| status - Status of the request. |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApWpsConfigurationCfmCreate(msg__, dst__, src__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApWpsConfigurationCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_WPS_CONFIGURATION_CFM, dst__, src__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiSmeApWpsConfigurationCfmSendTo(dst__, src__, status__) \ |
| { \ |
| CsrWifiSmeApWpsConfigurationCfm *msg__; \ |
| CsrWifiSmeApWpsConfigurationCfmCreate(msg__, dst__, src__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApWpsConfigurationCfmSend(dst__, status__) \ |
| CsrWifiSmeApWpsConfigurationCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApWpsRegistrationFinishedReqSend |
| |
| DESCRIPTION |
| This primitive tells SME that WPS registration procedure has finished |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApWpsRegistrationFinishedReqCreate(msg__, dst__, src__, interfaceTag__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApWpsRegistrationFinishedReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_WPS_REGISTRATION_FINISHED_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); |
| |
| #define CsrWifiSmeApWpsRegistrationFinishedReqSendTo(dst__, src__, interfaceTag__) \ |
| { \ |
| CsrWifiSmeApWpsRegistrationFinishedReq *msg__; \ |
| CsrWifiSmeApWpsRegistrationFinishedReqCreate(msg__, dst__, src__, interfaceTag__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApWpsRegistrationFinishedReqSend(src__, interfaceTag__) \ |
| CsrWifiSmeApWpsRegistrationFinishedReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, interfaceTag__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApWpsRegistrationFinishedCfmSend |
| |
| DESCRIPTION |
| A confirm for UNIFI_MGT_AP_WPS_REGISTRATION_FINISHED.request |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| status - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApWpsRegistrationFinishedCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApWpsRegistrationFinishedCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_WPS_REGISTRATION_FINISHED_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiSmeApWpsRegistrationFinishedCfmSendTo(dst__, src__, interfaceTag__, status__) \ |
| { \ |
| CsrWifiSmeApWpsRegistrationFinishedCfm *msg__; \ |
| CsrWifiSmeApWpsRegistrationFinishedCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApWpsRegistrationFinishedCfmSend(dst__, interfaceTag__, status__) \ |
| CsrWifiSmeApWpsRegistrationFinishedCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApWpsRegistrationStartedReqSend |
| |
| DESCRIPTION |
| This primitive tells SME that WPS registration procedure has started |
| |
| PARAMETERS |
| queue - Message Source Task Queue (Cfm's will be sent to this Queue) |
| interfaceTag - |
| SelectedDevicePasswordId - |
| SelectedconfigMethod - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApWpsRegistrationStartedReqCreate(msg__, dst__, src__, interfaceTag__, SelectedDevicePasswordId__, SelectedconfigMethod__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApWpsRegistrationStartedReq), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_WPS_REGISTRATION_STARTED_REQ, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->SelectedDevicePasswordId = (SelectedDevicePasswordId__); \ |
| msg__->SelectedconfigMethod = (SelectedconfigMethod__); |
| |
| #define CsrWifiSmeApWpsRegistrationStartedReqSendTo(dst__, src__, interfaceTag__, SelectedDevicePasswordId__, SelectedconfigMethod__) \ |
| { \ |
| CsrWifiSmeApWpsRegistrationStartedReq *msg__; \ |
| CsrWifiSmeApWpsRegistrationStartedReqCreate(msg__, dst__, src__, interfaceTag__, SelectedDevicePasswordId__, SelectedconfigMethod__); \ |
| CsrMsgTransport(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApWpsRegistrationStartedReqSend(src__, interfaceTag__, SelectedDevicePasswordId__, SelectedconfigMethod__) \ |
| CsrWifiSmeApWpsRegistrationStartedReqSendTo(CSR_WIFI_SME_IFACEQUEUE, src__, interfaceTag__, SelectedDevicePasswordId__, SelectedconfigMethod__) |
| |
| /******************************************************************************* |
| |
| NAME |
| CsrWifiSmeApWpsRegistrationStartedCfmSend |
| |
| DESCRIPTION |
| A confirm for UNIFI_MGT_AP_WPS_REGISTRATION_STARTED.request |
| |
| PARAMETERS |
| queue - Destination Task Queue |
| interfaceTag - |
| status - |
| |
| *******************************************************************************/ |
| #define CsrWifiSmeApWpsRegistrationStartedCfmCreate(msg__, dst__, src__, interfaceTag__, status__) \ |
| msg__ = kmalloc(sizeof(CsrWifiSmeApWpsRegistrationStartedCfm), GFP_KERNEL); \ |
| CsrWifiFsmEventInit(&msg__->common, CSR_WIFI_SME_AP_PRIM, CSR_WIFI_SME_AP_WPS_REGISTRATION_STARTED_CFM, dst__, src__); \ |
| msg__->interfaceTag = (interfaceTag__); \ |
| msg__->status = (status__); |
| |
| #define CsrWifiSmeApWpsRegistrationStartedCfmSendTo(dst__, src__, interfaceTag__, status__) \ |
| { \ |
| CsrWifiSmeApWpsRegistrationStartedCfm *msg__; \ |
| CsrWifiSmeApWpsRegistrationStartedCfmCreate(msg__, dst__, src__, interfaceTag__, status__); \ |
| CsrSchedMessagePut(dst__, CSR_WIFI_SME_AP_PRIM, msg__); \ |
| } |
| |
| #define CsrWifiSmeApWpsRegistrationStartedCfmSend(dst__, interfaceTag__, status__) \ |
| CsrWifiSmeApWpsRegistrationStartedCfmSendTo(dst__, CSR_WIFI_SME_IFACEQUEUE, interfaceTag__, status__) |
| |
| |
| #endif /* CSR_WIFI_SME_AP_LIB_H__ */ |