diff options
Diffstat (limited to 'wl1271/TWD/Ctrl/CmdBldCmdIE.c')
-rw-r--r-- | wl1271/TWD/Ctrl/CmdBldCmdIE.c | 1100 |
1 files changed, 0 insertions, 1100 deletions
diff --git a/wl1271/TWD/Ctrl/CmdBldCmdIE.c b/wl1271/TWD/Ctrl/CmdBldCmdIE.c deleted file mode 100644 index f5edb52..0000000 --- a/wl1271/TWD/Ctrl/CmdBldCmdIE.c +++ /dev/null @@ -1,1100 +0,0 @@ -/* - * CmdBldCmdIE.c - * - * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * * Neither the name Texas Instruments nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - -/** \file CmdBldCmdIE.c - * \brief Command builder. Command information elements - * - * \see CmdBldCmdIE.h - */ -#define __FILE_ID__ FILE_ID_94 -#include "osApi.h" -#include "tidef.h" -#include "report.h" -#include "TWDriver.h" -#include "CmdQueue_api.h" -#include "CmdBld.h" - - -/* Local Macros */ - -#define MAC_TO_VENDOR_PREAMBLE(mac) ((mac[0] << 16) | (mac[1] << 8) | mac[2]) - -/******************************************* - * Wlan hardware Test (BIT) - * ================= - * - * Tests description: - * ================== - * FCC = Continuous modulated transmission (should not emit carrier) - * TELEC = Continuous unmodulated carrier transmission (carrier only) - * PER_TX_STOP = Stops the TX test in progress (FCC or TELEC). - * ReadRegister = Read a register value. - * WriteRegister = Sets a register value. -* -* Rx PER test -* ======== -* PerRxStart = Start or resume the PER measurement. This function will put the device in promiscuous mode, and resume counters update. -* PerRxStop = Stop Rx PER measurements. This function stop counters update and make it is safe to read the PER test result. -* PerRxGetResults = Get the last Rx PER test results. -* PerRxClear = Clear the Rx PER test results. - */ - -enum -{ -/* 0 */ TEST_MOD_QPSK, -/* 1 */ TEST_MOD_CCK, -/* 2 */ TEST_MOD_PBCC, - TEST_MOD_NUMOF -}; - -enum -{ -/* 0 */ TEST_MOD_LONG_PREAMBLE, -/* 1 */ TEST_MOD_SHORT_PREAMBLE -}; - -enum -{ -/* 0 */ TEST_BAND_2_4GHZ, -/* 1 */ TEST_BAND_5GHZ, -/* 2 */ TEST_BAND_4_9GHZ -}; - - -enum -{ - MOD_PBCC = 1, - MOD_CCK, - MOD_OFDM -}; - - -#define TEST_MOD_MIN_GAP 200 -#define TEST_MOD_MIN_TX_BODYLEN 0 -#define TEST_MOD_MAX_TX_BODYLEN 2304 - -#define TEST_RX_CAL_SAFE_TIME 5000 /*uSec*/ - -#define TEST_MOD_IS_GAP_OK(gap) ((gap) >= TEST_MOD_MIN_GAP) - -#define TEST_MOD_IS_TX_BODYLEN_OK(len) \ - (INRANGE((len), TEST_MOD_MIN_TX_BODYLEN, TEST_MOD_MAX_TX_BODYLEN) && \ - (((len) & 3) == 0) ) - -#define TEST_MOD_IS_PREAMBLE_OK(p) \ - INRANGE((p), TEST_MOD_LONG_PREAMBLE, TEST_MOD_SHORT_PREAMBLE) - - -#define RESEARVED_SIZE_FOR_RESPONSE 4 - - -/**************************************************************************** - * cmdBld_CmdIeStartBss() - **************************************************************************** - * DESCRIPTION: Construct the StartBss command fileds and send it to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeStartBss (TI_HANDLE hCmdBld, BSS_e BssType, void *fJoinCompleteCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - StartJoinRequest_t AcxCmd_StartBss; - StartJoinRequest_t *pCmd = &AcxCmd_StartBss; - TSsid *pSsid = &DB_BSS(hCmdBld).tSsid; - TBssInfoParams *pBssInfoParams = &DB_BSS(hCmdBld); - TI_UINT8 *BssId; - TI_UINT8 *cmdBssId; - EHwRateBitFiled HwBasicRatesBitmap; - TI_UINT32 i; - - os_memoryZero (pCmdBld->hOs, (void *)pCmd, sizeof(StartJoinRequest_t)); - - /* - * Set RxCfg and RxFilterCfg values - */ - pCmd->rxFilter.ConfigOptions = ENDIAN_HANDLE_LONG (DB_WLAN(hCmdBld).RxConfigOption); - pCmd->rxFilter.FilterOptions = ENDIAN_HANDLE_LONG (DB_WLAN(hCmdBld).RxFilterOption); - pCmd->beaconInterval = ENDIAN_HANDLE_WORD (DB_BSS(hCmdBld).BeaconInterval); - pCmd->dtimInterval = DB_BSS(hCmdBld).DtimInterval; - pCmd->channelNumber = DB_BSS(hCmdBld).RadioChannel; - pCmd->bssType = BssType; - /* Add radio band */ - pCmd->bssType |= DB_WLAN(hCmdBld).RadioBand << 4; - /* Bits 0-2: Tx-Session-Count. bit 7: indicates if to flush the Tx queues */ - pCmd->ctrl = pBssInfoParams->Ctrl; - - /* - * BasicRateSet - * The wlan hardware uses pHwMboxCmd field to determine the rate at which to transmit - * control frame responses (such as ACK or CTS frames) - */ - cmdBld_ConvertAppRatesBitmap (pBssInfoParams->BasicRateSet, 0, &HwBasicRatesBitmap); - pCmd->basicRateSet = ENDIAN_HANDLE_LONG(HwBasicRatesBitmap); - - /* BSS ID - reversed order (see wlan hardware spec) */ - BssId = DB_BSS(hCmdBld).BssId; - cmdBssId = (TI_UINT8*)&pCmd->bssIdL; - for (i = 0; i < MAC_ADDR_LEN; i++) - cmdBssId[i] = BssId[MAC_ADDR_LEN - 1 - i]; - - /* SSID string */ - pCmd->ssidLength = pSsid->len; - os_memoryCopy (pCmdBld->hOs, (void *)pCmd->ssidStr, (void *)pSsid->str, pSsid->len); - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_START_JOIN, - (TI_CHAR *)pCmd, - sizeof(*pCmd), - fJoinCompleteCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeEnableRx() - **************************************************************************** - * DESCRIPTION: Construct the EnableRx command fileds and send it to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeEnableRx (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - TI_UINT8 aEnableRx_buf[4]; - - aEnableRx_buf[0] = DB_DEFAULT_CHANNEL (hCmdBld); - aEnableRx_buf[1] = 0; /* padding */ - aEnableRx_buf[2] = 0; /* padding */ - aEnableRx_buf[3] = 0; /* padding */ - - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_ENABLE_RX, - (TI_CHAR *)aEnableRx_buf, - sizeof(aEnableRx_buf), - fCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeEnableTx() - **************************************************************************** - * DESCRIPTION: Construct the EnableTx command fileds and send it to the mailbox - * Note: This Enable_TX command is used also for changing the serving - * channel. - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeEnableTx (TI_HANDLE hCmdBld, TI_UINT8 channel, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - TI_UINT8 aEnableTx_buf[4]; - - aEnableTx_buf[0] = channel; - aEnableTx_buf[1] = 0; /* padding */ - aEnableTx_buf[2] = 0; /* padding */ - aEnableTx_buf[3] = 0; /* padding */ - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_ENABLE_TX, - (TI_CHAR *)aEnableTx_buf, - sizeof(aEnableTx_buf), - fCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeDisableRx() - **************************************************************************** - * DESCRIPTION: Construct the DisableRx command fileds and send it to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeDisableRx (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_DISABLE_RX, NULL, 0, fCb, hCb, NULL); -} - -/**************************************************************************** - * cmdBld_CmdIeDisableTx() - **************************************************************************** - * DESCRIPTION: Construct the DisableTx command fileds and send it to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeDisableTx (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_DISABLE_TX, NULL, 0, fCb, hCb, NULL); -} - -/**************************************************************************** - * cmdBld_CmdIeConfigureTemplateFrame() - **************************************************************************** - * DESCRIPTION: Generic function which sets the Fw with a template frame according - * to the given template type. - * - * INPUTS: templateType - CMD_BEACON, CMD_PROBE_REQ, CMD_PROBE_RESP etc. - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeConfigureTemplateFrame (TI_HANDLE hCmdBld, - TTemplateParams *pTemplate, - TI_UINT16 uFrameSize, - TemplateType_e eTemplateType, - TI_UINT8 uIndex, - void * fCb, - TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - PktTemplate_t AcxCmd_PktTemplate; - PktTemplate_t *pCmd = &AcxCmd_PktTemplate; - - /* If the frame size is too big - we truncate the frame template */ - if (uFrameSize > MAX_TEMPLATES_SIZE) - { - EReportSeverity eReportSeverity = (pTemplate == NULL) ? REPORT_SEVERITY_WARNING : REPORT_SEVERITY_ERROR; - - /* Report as error only if this is the actual template and not just a space holder */ - TRACE3(pCmdBld->hReport, eReportSeverity, "cmdBld_CmdIeConfigureTemplateFrame: Frame size (=%d) of CmdType (=%d) is bigger than MAX_TEMPLATES_SIZE(=%d) !!!\n", uFrameSize, eTemplateType, MAX_TEMPLATES_SIZE); - - /* Truncate length to the template size limit */ - uFrameSize = MAX_TEMPLATES_SIZE; - } - /* WLAN_OS_REPORT(("DloadTempl type =%d size=%d\n", eTemplateType, uFrameSize)); */ - /* if pTemplate is NULL than it means that we just want to reserve place in Fw, and there is no need to copy */ - if (pTemplate != NULL) - { - os_memoryCopy(pCmdBld->hOs, (void *)&pCmd->templateStart, (void *)(pTemplate->Buffer), uFrameSize); - pCmd->templateTxAttribute.enabledRates = pTemplate->uRateMask; - } - pCmd->len = ENDIAN_HANDLE_WORD(uFrameSize); - pCmd->index = uIndex; - pCmd->templateType = eTemplateType; - pCmd->templateTxAttribute.shortRetryLimit = 10; - pCmd->templateTxAttribute.longRetryLimit = 10; - -#ifdef TI_DBG - if (pCmdBld->uDbgTemplatesRateMask != 0) - { - pCmd->templateTxAttribute.enabledRates = pCmdBld->uDbgTemplatesRateMask; - } -#endif - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_SET_TEMPLATE, - (TI_CHAR *)pCmd, - sizeof (PktTemplate_t), - fCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeSetKey() - **************************************************************************** - * DESCRIPTION: Construct the SetKey command fileds and send it to the mailbox - * - * INPUTS: - * Action - add/remove key - * MacAddr - relevant only for mapping keys - * KeySize - key size - * KeyType - default/mapping/TKIP - * KeyId - relevant only for default keys - * Key - key data - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeSetKey (TI_HANDLE hCmdBld, - TI_UINT32 action, - TI_UINT8 *pMacAddr, - TI_UINT32 uKeySize, - TI_UINT32 uKeyType, - TI_UINT32 uKeyId, - TI_UINT8 *pKey, - TI_UINT32 uSecuritySeqNumLow, - TI_UINT32 uSecuritySeqNumHigh, - void *fCb, - TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - SetKey_t AcxCmd_SetKey; - SetKey_t *pCmd = &AcxCmd_SetKey; - - os_memoryZero (pCmdBld->hOs, (void *)pCmd, sizeof(*pCmd)); - - MAC_COPY (pCmd->addr, pMacAddr); - - if (uKeySize > MAX_KEY_SIZE) - { - os_memoryCopy (pCmdBld->hOs, (void *)pCmd->key, (void *)pKey, MAX_KEY_SIZE); - } - else - { - os_memoryCopy (pCmdBld->hOs, (void *)pCmd->key, (void *)pKey, uKeySize); - } - - pCmd->action = ENDIAN_HANDLE_WORD((TI_UINT16)action); - pCmd->keySize = (TI_UINT8)uKeySize; - pCmd->type = (TI_UINT8)uKeyType; - pCmd->id = (TI_UINT8)uKeyId; - pCmd->ssidProfile = 0; - - /* - * Preserve TKIP/AES security sequence number after recovery. - * If not in reconfig set to 0 so the FW will ignore it and keep its own number. - * Note that our STA Tx is currently using only one sequence-counter - * for all ACs (unlike the Rx which is separated per AC). - */ - if (pCmdBld->bReconfigInProgress == TI_FALSE) - { - uSecuritySeqNumLow = uSecuritySeqNumHigh = 0; - } - pCmd->AcSeqNum16[0] = ENDIAN_HANDLE_WORD((TI_UINT16)uSecuritySeqNumLow); - pCmd->AcSeqNum16[1] = 0; - pCmd->AcSeqNum16[2] = 0; - pCmd->AcSeqNum16[3] = 0; - - pCmd->AcSeqNum32[0] = ENDIAN_HANDLE_LONG(uSecuritySeqNumHigh); - pCmd->AcSeqNum32[1] = 0; - pCmd->AcSeqNum32[2] = 0; - pCmd->AcSeqNum32[3] = 0; - - -TRACE6(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "Addr: %02x:%02x:%02x:%02x:%02x:%02x\n", pCmd->addr[0],pCmd->addr[1],pCmd->addr[2],pCmd->addr[3],pCmd->addr[4],pCmd->addr[5]); - -TRACE7(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "Action=%x,keySize=0x%x,type=%x, id=%x, ssidProfile=%x, AcSeqNum16[0]=%x, AcSeqNum32[0]=%x\n", pCmd->action,pCmd->keySize, pCmd->type,pCmd->id,pCmd->ssidProfile,pCmd->AcSeqNum16[0],pCmd->AcSeqNum32[0] ); - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_SET_KEYS, (char *)pCmd, sizeof(*pCmd), fCb, hCb, NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeStartScan () - **************************************************************************** - * DESCRIPTION: Send SCAN Command - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeStartScan (TI_HANDLE hCmdBld, ScanParameters_t* pScanParams, void *fScanResponseCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_SCAN, - (TI_CHAR *)pScanParams, - sizeof(ScanParameters_t), - fScanResponseCb, - hCb, - NULL); -} - -/**************************************************************************** - * cmdBld_CmdIeStartSPSScan () - **************************************************************************** - * DESCRIPTION: Send SPS SCAN Command - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeStartSPSScan (TI_HANDLE hCmdBld, ScheduledScanParameters_t* pScanParams, void* fScanResponseCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_SPS_SCAN, - (TI_CHAR *)pScanParams, - sizeof(ScheduledScanParameters_t), - fScanResponseCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeStopScan () - **************************************************************************** - * DESCRIPTION: Construct the STOP_SCAN command fields and send it to the - * mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeStopScan (TI_HANDLE hCmdBld, void *fScanResponseCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CmdIeStopScan: -------------- \n"); - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_STOP_SCAN, 0, 0, fScanResponseCb, hCb, NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeStopSPSScan () - **************************************************************************** - * DESCRIPTION: Construct the STOP_SPS_SCAN command fields and send it to the - * mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeStopSPSScan (TI_HANDLE hCmdBld, void* fScanResponseCB, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CmdIeStopSPSScan: -------------- \n"); - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_STOP_SPS_SCAN, 0, 0, fScanResponseCB, hCb, NULL); -} - - -TI_STATUS cmdBld_CmdIeSetSplitScanTimeOut (TI_HANDLE hCmdBld, TI_UINT32 uTimeOut, void *fCB, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - enhancedTriggerTO_t Cmd_enhancedTrigger; - enhancedTriggerTO_t *pCmd = &Cmd_enhancedTrigger; - -TRACE1(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CmdIeSetSplitScanTimeOut: uTimeOut=%d -------------- \n", uTimeOut); - - pCmd->slicedScanTimeOut = uTimeOut; - - return cmdQueue_SendCommand(pCmdBld->hCmdQueue, CMD_TRIGGER_SCAN_TO, (char *)pCmd, sizeof(*pCmd), fCB, hCb, NULL); -} - -/** - * \fn cmdBld_CmdIeScanSsidList - * \brief Sets SSID list for periodic scan - * - * Sets SSID list for periodic scan - * - * \param hCmdBld - handle to command builder object - * \param pSsidList - command data - * \param fScanResponseCB - command complete function callback - * \param hCb - command complete callback handle - * \return TI_OK on success, any other code on error - * \sa cmdBld_CmdIePeriodicScanParams, cmdBld_CmdIeStartPeriodicScan, cmdBld_CmdIeStopPeriodicScan - */ -TI_STATUS cmdBld_CmdIeScanSsidList (TI_HANDLE hCmdBld, ConnScanSSIDList_t *pSsidList, - void* fScanResponseCB, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_CONNECTION_SCAN_SSID_CFG, - (char *)pSsidList, - sizeof(ConnScanSSIDList_t), - fScanResponseCB, - hCb, - NULL); -} - -/** - * \fn cmdBld_CmdIePeriodicScanParams - * \brief Sets periodic scan parameters - * - * Sets periodic scan parameters - * - * \param hCmdBld - handle to command builder object - * \param pPeriodicScanParams - command data - * \param fScanResponseCB - command complete function callback - * \param hCb - command complete callback handle - * \return TI_OK on success, any other code on error - * \sa cmdBld_CmdIeScanSsidList, cmdBld_CmdIeStartPeriodicScan, cmdBld_CmdIeStopPeriodicScan - */ -TI_STATUS cmdBld_CmdIePeriodicScanParams (TI_HANDLE hCmdBld, ConnScanParameters_t *pPeriodicScanParams, - void* fScanResponseCB, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_CONNECTION_SCAN_CFG, - (char *)pPeriodicScanParams, - sizeof(ConnScanParameters_t), - fScanResponseCB, - hCb, - NULL); -} - -/** - * \fn cmdBld_CmdIeStartPeriodicScan - * \brief Starts a periodic scan operation - * - * Starts a periodic scan operation - * - * \param hCmdBld - handle to command builder object - * \param pPeriodicScanStart - command data - * \param fScanResponseCB - command complete function callback - * \param hCb - command complete callback handle - * \return TI_OK on success, any other code on error - * \sa cmdBld_CmdIeScanSsidList, cmdBld_CmdIePeriodicScanParams, cmdBld_CmdIeStopPeriodicScan - */ -TI_STATUS cmdBld_CmdIeStartPeriodicScan (TI_HANDLE hCmdBld, PeriodicScanTag* pPeriodicScanStart, - void* fScanResponseCB, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_START_PERIODIC_SCAN, - pPeriodicScanStart, sizeof (PeriodicScanTag), - fScanResponseCB, - hCb, - NULL); -} - -/** - * \fn cmdBld_CmdIeStopPeriodicScan - * \brief Stops an on-going periodic scan operation - * - * Stops an on-going periodic scan operation - * - * \param hCmdBld - handle to command builder object - * \param fScanResponseCB - command complete function callback - * \param hCb - command complete callback handle - * \return TI_OK on success, any other code on error - * \sa cmdBld_CmdIeScanSsidList, cmdBld_CmdIePeriodicScanParams, cmdBld_CmdIeStartPeriodicScan - */ -TI_STATUS cmdBld_CmdIeStopPeriodicScan (TI_HANDLE hCmdBld, - PeriodicScanTag* pPeriodicScanStop, - void* fScanResponseCB, - TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_STOP_PERIODIC_SCAN, - pPeriodicScanStop, - sizeof(pPeriodicScanStop), - fScanResponseCB, - hCb, - NULL); -} - -/**************************************************************************** - * cmdBld_CmdIeNoiseHistogram () - **************************************************************************** - * DESCRIPTION: Send NOISE_HISTOGRAM Command - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeNoiseHistogram (TI_HANDLE hCmdBld, TNoiseHistogram *pNoiseHistParams, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - NoiseHistRequest_t AcxCmd_NoiseHistogram; - NoiseHistRequest_t *pCmd = &AcxCmd_NoiseHistogram; - - os_memoryZero(pCmdBld->hOs, (void *)pCmd, sizeof(*pCmd)); - - pCmd->mode = ENDIAN_HANDLE_WORD((TI_UINT16)pNoiseHistParams->cmd); - pCmd->sampleIntervalUSec = ENDIAN_HANDLE_WORD(pNoiseHistParams->sampleInterval); - - os_memoryCopy (pCmdBld->hOs, (void *)&(pCmd->thresholds[0]), (void *)&(pNoiseHistParams->ranges[0]), MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES); - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_NOISE_HIST, (TI_CHAR *)pCmd, sizeof(*pCmd), fCb, hCb, NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeSetPsMode() - **************************************************************************** - * DESCRIPTION: send Command for Power Management configuration - * to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeSetPsMode (TI_HANDLE hCmdBld, TPowerSaveParams* powerSaveParams, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - PSModeParameters_t Cmd_PowerMgmtCnf; - PSModeParameters_t * pCmd = &Cmd_PowerMgmtCnf; - - os_memoryZero(pCmdBld->hOs, (void *)pCmd, sizeof(*pCmd)); - - if (powerSaveParams->ps802_11Enable) - { - pCmd->mode = 1; - } - else - { - pCmd->mode = 0; - } - - pCmd->hangOverPeriod = powerSaveParams->hangOverPeriod; - pCmd->needToSendNullData = powerSaveParams->needToSendNullData; - pCmd->rateToTransmitNullData = ENDIAN_HANDLE_LONG(powerSaveParams->NullPktRateModulation); - pCmd->numberOfRetries = powerSaveParams->numNullPktRetries; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_SET_PS_MODE, (TI_CHAR *)pCmd, sizeof(*pCmd), fCb, hCb, NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeSwitchChannel () - **************************************************************************** - * DESCRIPTION: Send CMD_SWITCH_CHANNEL Command - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeSwitchChannel (TI_HANDLE hCmdBld, TSwitchChannelParams *pSwitchChannelCmd, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - ChannelSwitchParameters_t AcxCmd_SwitchChannel; - ChannelSwitchParameters_t *pCmd = &AcxCmd_SwitchChannel; - - os_memoryZero (pCmdBld->hOs, (void *)pCmd, sizeof(*pCmd)); - - pCmd->channel = pSwitchChannelCmd->channelNumber; - pCmd->switchTime = pSwitchChannelCmd->switchTime; - pCmd->txSuspend = pSwitchChannelCmd->txFlag; - pCmd->flush = pSwitchChannelCmd->flush; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CHANNEL_SWITCH, (TI_CHAR *)pCmd, sizeof(*pCmd), fCb, hCb, NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeSwitchChannelCancel () - **************************************************************************** - * DESCRIPTION: Send CMD_SWITCH_CHANNEL_CANCEL Command - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeSwitchChannelCancel (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_STOP_CHANNEL_SWICTH, 0, 0, fCb, hCb, NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeFwDisconnect() - **************************************************************************** - * DESCRIPTION: Construct the Disconnect command fileds and send it to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeFwDisconnect (TI_HANDLE hCmdBld, TI_UINT32 uConfigOptions, TI_UINT32 uFilterOptions, DisconnectType_e uDisconType, TI_UINT16 uDisconReason, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - DisconnectParameters_t AcxCmd_Disconnect; - - AcxCmd_Disconnect.rxFilter.ConfigOptions = ENDIAN_HANDLE_LONG(uConfigOptions); - AcxCmd_Disconnect.rxFilter.FilterOptions = ENDIAN_HANDLE_LONG(uFilterOptions); - AcxCmd_Disconnect.disconnectReason = ENDIAN_HANDLE_LONG(uDisconReason); - AcxCmd_Disconnect.disconnectType = uDisconType; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_DISCONNECT, - (void *)&AcxCmd_Disconnect, - sizeof(AcxCmd_Disconnect), - fCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeMeasurement() - **************************************************************************** - * DESCRIPTION: send Command for measurement configuration - * to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeMeasurement (TI_HANDLE hCmdBld, - TMeasurementParams *pMeasurementParams, - void *fMeasureResponseCb, - TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - MeasurementParameters_t Cmd_MeasurementParam; - MeasurementParameters_t *pCmd = &Cmd_MeasurementParam; - - os_memoryZero (pCmdBld->hOs, (void *)pCmd, sizeof(*pCmd)); - - pCmd->band = pMeasurementParams->band; - pCmd->channel = pMeasurementParams->channel; - pCmd->duration = ENDIAN_HANDLE_LONG(pMeasurementParams->duration); - pCmd->rxFilter.ConfigOptions = ENDIAN_HANDLE_LONG(pMeasurementParams->ConfigOptions); - pCmd->rxFilter.FilterOptions = ENDIAN_HANDLE_LONG(pMeasurementParams->FilterOptions); - pCmd->scanTag = (TI_UINT8)pMeasurementParams->eTag; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_MEASUREMENT, - (TI_CHAR *)pCmd, - sizeof(*pCmd), - fMeasureResponseCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeMeasurementStop() - **************************************************************************** - * DESCRIPTION: send Command for stoping measurement - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeMeasurementStop (TI_HANDLE hCmdBld, void* fMeasureResponseCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_STOP_MEASUREMENT, - 0, - 0, - fMeasureResponseCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeApDiscovery() - **************************************************************************** - * DESCRIPTION: send Command for AP Discovery - * to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeApDiscovery (TI_HANDLE hCmdBld, TApDiscoveryParams *pApDiscoveryParams, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - ApDiscoveryParameters_t Cmd_ApDiscovery; - ApDiscoveryParameters_t *pCmd = &Cmd_ApDiscovery; - - os_memoryZero (pCmdBld->hOs, (void *)pCmd, sizeof(*pCmd)); - - pCmd->txPowerAttenuation = pApDiscoveryParams->txPowerDbm; - pCmd->numOfProbRqst = pApDiscoveryParams->numOfProbRqst; - pCmd->scanDuration = ENDIAN_HANDLE_LONG(pApDiscoveryParams->scanDuration); - pCmd->scanOptions = ENDIAN_HANDLE_WORD(pApDiscoveryParams->scanOptions); - pCmd->txdRateSet = ENDIAN_HANDLE_LONG(pApDiscoveryParams->txdRateSet); - pCmd->rxFilter.ConfigOptions = ENDIAN_HANDLE_LONG(pApDiscoveryParams->ConfigOptions); - pCmd->rxFilter.FilterOptions = ENDIAN_HANDLE_LONG(pApDiscoveryParams->FilterOptions); - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_AP_DISCOVERY, - (void *)pCmd, - sizeof(*pCmd), - fCb, - hCb, - NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeApDiscoveryStop() - **************************************************************************** - * DESCRIPTION: send Command for stoping AP Discovery - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeApDiscoveryStop (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_STOP_AP_DISCOVERY, 0, 0, fCb, hCb, NULL); -} - - -/**************************************************************************** - * cmdBld_CmdIeHealthCheck() - **************************************************************************** - * DESCRIPTION: - * - * INPUTS: - * - * OUTPUT: - * - * RETURNS: - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeHealthCheck (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_HEALTH_CHECK, NULL, 0, fCb, hCb, NULL); -} - -/**************************************************************************** - * cmdBld_CmdIeSetStaState() - **************************************************************************** - * DESCRIPTION: Construct the Disconnect command fileds and send it to the mailbox - * - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeSetStaState (TI_HANDLE hCmdBld, TI_UINT8 staState, void *fCb, TI_HANDLE hCb) -{ - TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; - SetStaState_t AcxCmd_SetStaState; - - AcxCmd_SetStaState.staState = staState; - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_SET_STA_STATE, - (void *)&AcxCmd_SetStaState, - sizeof(AcxCmd_SetStaState), - fCb, - hCb, - NULL); -} - -/**************************************************************************** - * cmdBld_BitIeTestCmd() - **************************************************************************** - * DESCRIPTION: - * INPUTS: None - * - * OUTPUT: None - * - * RETURNS: TI_OK or TI_NOK - ****************************************************************************/ -TI_STATUS cmdBld_CmdIeTest (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb, TTestCmd* pTestCmd) -{ - TCmdBld *pCmdBld = (TI_HANDLE)hCmdBld; - TI_UINT32 paramLength; - TI_BOOL bIsCBfuncNecessary = TI_TRUE; - - if (NULL == pTestCmd) - { - TRACE0(pCmdBld->hReport, REPORT_SEVERITY_ERROR, " pTestCmd_Buf = NULL!!!\n"); - return TI_NOK; - } - - if ( (TestCmdID_enum)pTestCmd->testCmdId < MAX_TEST_CMD_ID ) - { - bIsCBfuncNecessary = TI_TRUE; - } - else - { - TRACE1(pCmdBld->hReport, REPORT_SEVERITY_WARNING, " Unsupported testCmdId (%d)\n", pTestCmd->testCmdId); - } - - if (bIsCBfuncNecessary && fCb == NULL) - { - return TI_OK; - } - - switch( pTestCmd->testCmdId ) - { - case TEST_CMD_PD_BUFFER_CAL: - paramLength = sizeof(TTestCmdPdBufferCal); - break; - - case TEST_CMD_P2G_CAL: - paramLength = sizeof(TTestCmdP2GCal); - break; - - case TEST_CMD_RX_STAT_GET: - paramLength = sizeof(RadioRxStatistics); - break; - - /* packet */ - case TEST_CMD_FCC: - paramLength = sizeof(TPacketParam); - break; - - /* tone */ - case TEST_CMD_TELEC: - paramLength = sizeof(TToneParam); - break; - - case TEST_CMD_PLT_TEMPLATE: - paramLength = sizeof(TTxTemplate); - break; - - /* channel tune */ - case TEST_CMD_CHANNEL_TUNE: - paramLength = sizeof(TTestCmdChannel); - break; - - case TEST_CMD_GET_FW_VERSIONS: - paramLength = sizeof(TFWVerisons); - break; - - case TEST_CMD_INI_FILE_RADIO_PARAM: - paramLength = sizeof(IniFileRadioParam); - break; - - case TEST_CMD_INI_FILE_GENERAL_PARAM: - paramLength = sizeof(IniFileGeneralParam); - break; - - case TEST_CMD_PLT_GAIN_ADJUST: - paramLength = sizeof(uint32); - break; - - case TEST_CMD_RUN_CALIBRATION_TYPE: - paramLength = sizeof(TTestCmdRunCalibration); - break; - - case TEST_CMD_TX_GAIN_ADJUST: - paramLength = sizeof(TTxGainAdjust); - break; - case TEST_CMD_TEST_TONE: - paramLength = sizeof(TestToneParams_t); - break; - - case TEST_CMD_SET_EFUSE: - paramLength = sizeof(EfuseParameters_t); - break; - case TEST_CMD_GET_EFUSE: - paramLength = sizeof(EfuseParameters_t); - break; - - case TEST_CMD_RX_PLT_CAL: - paramLength = sizeof(RadioRxPltCal); - break; - - case TEST_CMD_UPDATE_PD_REFERENCE_POINT: - paramLength = sizeof(TTestCmdUpdateReferncePoint); - break; - - case TEST_CMD_UPDATE_PD_BUFFER_ERRORS: - paramLength = sizeof(TTestCmdPdBufferErrors); - break; - - case TEST_CMD_POWER_MODE: - paramLength = sizeof(TTestCmdPowerMode); - break; - - case TEST_CMD_STOP_TX: - case TEST_CMD_RX_STAT_STOP: - case TEST_CMD_RX_STAT_START: - case TEST_CMD_RX_STAT_RESET: - case TEST_CMD_RX_PLT_ENTER: - case TEST_CMD_RX_PLT_EXIT: - paramLength = 0; - break; - - default: - paramLength = sizeof(pTestCmd->testCmd_u); - } - - return cmdQueue_SendCommand (pCmdBld->hCmdQueue, - CMD_TEST, - (void *)pTestCmd, - paramLength + RESEARVED_SIZE_FOR_RESPONSE, - fCb, - hCb, - (void*)pTestCmd); -} |