1981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 2981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * CmdDispatcher.c 3981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 4981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. 5981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * All rights reserved. 6981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 7981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Redistribution and use in source and binary forms, with or without 8981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * modification, are permitted provided that the following conditions 9981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * are met: 10981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 11981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Redistributions of source code must retain the above copyright 12981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * notice, this list of conditions and the following disclaimer. 13981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Redistributions in binary form must reproduce the above copyright 14981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * notice, this list of conditions and the following disclaimer in 15981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * the documentation and/or other materials provided with the 16981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * distribution. 17981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Neither the name Texas Instruments nor the names of its 18981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * contributors may be used to endorse or promote products derived 19981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * from this software without specific prior written permission. 20981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 21981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 33981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 34981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 35981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \file CmdDispatcher.c 36981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief The CmdDispatcher module. Handles user commbands dispatching to the driver modules. 37981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 38981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \see CmdDispatcher.h 39981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 40981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 41981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define __FILE_ID__ FILE_ID_47 42981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "tidef.h" 43981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "osApi.h" 44981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "report.h" 45981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "DrvMain.h" 46981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "connApi.h" 47981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "siteMgrApi.h" 48653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt#include "smeApi.h" 49981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "SoftGeminiApi.h" 50981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "roamingMngrApi.h" 51981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "qosMngr_API.h" 52981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "PowerMgr_API.h" 53981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "ScanCncn.h" 54981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "scanMngrApi.h" 55981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "regulatoryDomainApi.h" 56981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "measurementMgrApi.h" 57981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "TWDriver.h" 58981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "debug.h" 59981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "DrvMainModules.h" 60981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "CmdDispatcher.h" 61981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "healthMonitor.h" 62653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt#include "currBssApi.h" 63981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef XCC_MODULE_INCLUDED 64981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "XCCMngr.h" 65981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 66981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 67981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 68981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Set/get params function prototype */ 69981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef TI_STATUS (*TParamFunc) (TI_HANDLE handle, paramInfo_t *pParam); 70981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 71981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 72981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 73981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TParamFunc set; 74981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TParamFunc get; 75981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE handle; 76981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 77981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} TParamAccess; 78981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 79981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The module's object */ 80981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 81981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 82981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Other modules handles */ 83981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hOs; 84981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hReport; 85981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hAuth; 86981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hAssoc; 87981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hRxData; 88981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hTxCtrl; 89981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hCtrlData; 90981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hSiteMgr; 91981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hConn; 92981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hRsn; 93981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hSme; 94981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hScanCncn; 95981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hScanMngr; 96981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hMlmeSm; 97981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hRegulatoryDomain; 98981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hMeasurementMgr; 99981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hRoamingMngr; 100981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hSoftGemini; 101981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hQosMngr; 102981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hPowerMgr; 103981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hHealthMonitor; 104981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hTWD; 105653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt TI_HANDLE hCurrBss; 106981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef XCC_MODULE_INCLUDED 107981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hXCCMngr; 108981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 109981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 110981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Table of params set/get functions */ 111981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TParamAccess paramAccessTable[MAX_PARAM_MODULE_NUMBER]; 112981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 113981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef TI_DBG 114981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TStadHandlesList *pStadHandles; /* Save modules list pointer just for the debug functions */ 115981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 116981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 117981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} TCmdDispatchObj; 118981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 119981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 120981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* Internal functions prototypes */ 121981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic void cmdDispatch_ConfigParamsAccessTable (TCmdDispatchObj *pCmdDispatch); 122981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS cmdDispatch_SetTwdParam (TI_HANDLE hCmdDispatch, paramInfo_t *pParam); 123981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS cmdDispatch_GetTwdParam (TI_HANDLE hCmdDispatch, paramInfo_t *pParam); 124981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 125981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef TI_DBG 126981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS cmdDispatch_DebugFuncSet (TI_HANDLE hCmdDispatch, paramInfo_t *pParam); 127981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS cmdDispatch_DebugFuncGet (TI_HANDLE hCmdDispatch, paramInfo_t *pParam); /*yael - this function is not in use*/ 128981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 129981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 130981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 131981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 132981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** 133981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \fn cmdDispatch_Create 134981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Create the module 135981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 136981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Create the Command-Dispatcher module 137981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 138981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \note 139981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param hOs - Handle to the Os Abstraction Layer 140981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return Handle to the allocated module (NULL if failed) 141981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa 142981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 143981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_HANDLE cmdDispatch_Create (TI_HANDLE hOs) 144981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 145981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TCmdDispatchObj *pCmdDispatch; 146981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 147981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* allocate CmdDispatcher module */ 148981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch = os_memoryAlloc (hOs, (sizeof(TCmdDispatchObj))); 149981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 150981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if (!pCmdDispatch) 151981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 152981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt WLAN_OS_REPORT(("Error allocating the CmdDispatcher Module\n")); 153981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return NULL; 154981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 155981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 156981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Reset CmdDispatcher module */ 157981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt os_memoryZero (hOs, pCmdDispatch, (sizeof(TCmdDispatchObj))); 158981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 159981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hOs = hOs; 160981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 161981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return (TI_HANDLE)pCmdDispatch; 162981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 163981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 164981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 165981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** 166981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \fn cmdDispatch_Init 167981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Save modules handles and fill the configuration table 168981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 169981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Save other modules handles, and fill the configuration table 170981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * with the Get/Set functions. 171981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 172981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \note 173981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param pStadHandles - The driver modules handles 174981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return void 175981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa 176981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 177981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid cmdDispatch_Init (TStadHandlesList *pStadHandles) 178981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 179981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TCmdDispatchObj *pCmdDispatch = (TCmdDispatchObj *)(pStadHandles->hCmdDispatch); 180981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 181981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Save modules handles */ 182981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hReport = pStadHandles->hReport; 183981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hAuth = pStadHandles->hAuth; 184981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hAssoc = pStadHandles->hAssoc; 185981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hRxData = pStadHandles->hRxData; 186981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hTxCtrl = pStadHandles->hTxCtrl; 187981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hCtrlData = pStadHandles->hCtrlData; 188981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hSiteMgr = pStadHandles->hSiteMgr; 189981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hConn = pStadHandles->hConn; 190981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hRsn = pStadHandles->hRsn; 191981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hSme = pStadHandles->hSme; 192981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hScanCncn = pStadHandles->hScanCncn; 193981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hScanMngr = pStadHandles->hScanMngr; 194981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hMlmeSm = pStadHandles->hMlmeSm; 195981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hRegulatoryDomain = pStadHandles->hRegulatoryDomain; 196981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hMeasurementMgr = pStadHandles->hMeasurementMgr; 197981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hRoamingMngr = pStadHandles->hRoamingMngr; 198981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hSoftGemini = pStadHandles->hSoftGemini; 199981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hQosMngr = pStadHandles->hQosMngr; 200981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hPowerMgr = pStadHandles->hPowerMgr; 201981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hHealthMonitor = pStadHandles->hHealthMonitor; 202981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hTWD = pStadHandles->hTWD; 203653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt pCmdDispatch->hCurrBss = pStadHandles->hCurrBss; 204981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef XCC_MODULE_INCLUDED 205981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->hXCCMngr = pStadHandles->hXCCMngr; 206981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 207981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 208981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef TI_DBG 209981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->pStadHandles = pStadHandles; /* Save modules list pointer just for the debug functions */ 210981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 211981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 212981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Fill the configuration table with the Get/Set functions */ 213981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt cmdDispatch_ConfigParamsAccessTable (pCmdDispatch); 214981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 215981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 216981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 217981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** 218981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \fn cmdDispatch_Destroy 219981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Destroy the module object 220981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 221981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Destroy the module object. 222981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 223981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \note 224981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param hCmdDispatch - The object 225981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK - Unload succesfull, TI_NOK - Unload unsuccesfull 226981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa 227981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 228981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS cmdDispatch_Destroy (TI_HANDLE hCmdDispatch) 229981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 230981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TCmdDispatchObj *pCmdDispatch = (TCmdDispatchObj *)hCmdDispatch; 231981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 232981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Free the module object */ 233981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt os_memoryFree (pCmdDispatch->hOs, pCmdDispatch, sizeof(TCmdDispatchObj)); 234981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 235981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TI_OK; 236981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 237981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 238981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 239981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** 240981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \fn cmdDispatch_ConfigParamsAccessTable 241981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Fill the configuration table with the Get/Set functions 242981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 243981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Called in the configuration phase by the driver, performs the following: 244981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * - for each module that supply a Get/Set services to his parameters, 245981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * fill the corresponding entry in the params access table with the following: 246981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * - Get function 247981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * - Set function 248981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * - Handle to the module 249981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * This table is used when Getting/Setting a parameter from the OS abstraction layer. 250981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 251981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \note 252981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param pCmdDispatch - The object 253981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return void 254981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa 255981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 256981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic void cmdDispatch_ConfigParamsAccessTable (TCmdDispatchObj *pCmdDispatch) 257981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 258981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(AUTH_MODULE_PARAM) - 1].set = auth_setParam; 259981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(AUTH_MODULE_PARAM) - 1].get = auth_getParam; 260981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(AUTH_MODULE_PARAM) - 1].handle = pCmdDispatch->hAuth; 261981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 262981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(ASSOC_MODULE_PARAM) - 1].set = assoc_setParam; 263981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(ASSOC_MODULE_PARAM) - 1].get = assoc_getParam; 264981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(ASSOC_MODULE_PARAM) - 1].handle = pCmdDispatch->hAssoc; 265981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 266981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(RX_DATA_MODULE_PARAM) - 1].set = rxData_setParam; 267981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(RX_DATA_MODULE_PARAM) - 1].get = rxData_getParam; 268981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(RX_DATA_MODULE_PARAM) - 1].handle = pCmdDispatch->hRxData; 269981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 270981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(TX_CTRL_MODULE_PARAM) - 1].set = txCtrlParams_setParam; 271981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(TX_CTRL_MODULE_PARAM) - 1].get = txCtrlParams_getParam; 272981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(TX_CTRL_MODULE_PARAM) - 1].handle = pCmdDispatch->hTxCtrl; 273981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 274981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CTRL_DATA_MODULE_PARAM) - 1].set = ctrlData_setParam; 275981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CTRL_DATA_MODULE_PARAM) - 1].get = ctrlData_getParam; 276981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CTRL_DATA_MODULE_PARAM) - 1].handle = pCmdDispatch->hCtrlData; 277981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 278981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SITE_MGR_MODULE_PARAM) - 1].set = siteMgr_setParam; 279981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SITE_MGR_MODULE_PARAM) - 1].get = siteMgr_getParam; 280981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SITE_MGR_MODULE_PARAM) - 1].handle = pCmdDispatch->hSiteMgr; 281981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 282981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CONN_MODULE_PARAM) - 1].set = conn_setParam; 283981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CONN_MODULE_PARAM) - 1].get = conn_getParam; 284981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CONN_MODULE_PARAM) - 1].handle = pCmdDispatch->hConn; 285981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 286981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(RSN_MODULE_PARAM) - 1].set = (TParamFunc)rsn_setParam; 287981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(RSN_MODULE_PARAM) - 1].get = (TParamFunc)rsn_getParam; 288981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(RSN_MODULE_PARAM) - 1].handle = pCmdDispatch->hRsn; 289981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 290981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(TWD_MODULE_PARAM) - 1].set = cmdDispatch_SetTwdParam; 291981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(TWD_MODULE_PARAM) - 1].get = cmdDispatch_GetTwdParam; 292981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(TWD_MODULE_PARAM) - 1].handle = (TI_HANDLE)pCmdDispatch; 293981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 294981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(REPORT_MODULE_PARAM) - 1].set = (TParamFunc)report_SetParam; 295981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(REPORT_MODULE_PARAM) - 1].get = (TParamFunc)report_GetParam; 296981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(REPORT_MODULE_PARAM) - 1].handle = pCmdDispatch->hReport; 297981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 298981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SME_MODULE_PARAM) - 1].set = sme_SetParam; 299981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SME_MODULE_PARAM) - 1].get = sme_GetParam; 300981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SME_MODULE_PARAM) - 1].handle = pCmdDispatch->hSme; 301981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 302981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_CNCN_PARAM) - 1].set = scanCncnApp_SetParam; 303981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_CNCN_PARAM) - 1].get = scanCncnApp_GetParam; 304981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_CNCN_PARAM) - 1].handle = pCmdDispatch->hScanCncn; 305981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 306981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_MNGR_PARAM) - 1].set = scanMngr_setParam; 307981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_MNGR_PARAM) - 1].get = scanMngr_getParam; 308981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_MNGR_PARAM) - 1].handle = pCmdDispatch->hScanMngr; 309981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 310981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MLME_SM_MODULE_PARAM) - 1].set = mlme_setParam; 311981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MLME_SM_MODULE_PARAM) - 1].get = mlme_getParam; 312981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MLME_SM_MODULE_PARAM) - 1].handle = pCmdDispatch->hMlmeSm; 313981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 314981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(REGULATORY_DOMAIN_MODULE_PARAM) - 1].set = regulatoryDomain_setParam; 315981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(REGULATORY_DOMAIN_MODULE_PARAM) - 1].get = regulatoryDomain_getParam; 316981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(REGULATORY_DOMAIN_MODULE_PARAM) - 1].handle = pCmdDispatch->hRegulatoryDomain; 317981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 318981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MEASUREMENT_MODULE_PARAM) - 1].set = measurementMgr_setParam; 319981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MEASUREMENT_MODULE_PARAM) - 1].get = measurementMgr_getParam; 320981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MEASUREMENT_MODULE_PARAM) - 1].handle = pCmdDispatch->hMeasurementMgr; 321981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 322981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef XCC_MODULE_INCLUDED 323981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(XCC_MANAGER_MODULE_PARAM) - 1].set = XCCMngr_setParam; 324981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(XCC_MANAGER_MODULE_PARAM) - 1].get = XCCMngr_getParam; 325981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(XCC_MANAGER_MODULE_PARAM) - 1].handle = pCmdDispatch->hXCCMngr; 326981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 327981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 328981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(ROAMING_MANAGER_MODULE_PARAM) - 1].set = roamingMngr_setParam; 329981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(ROAMING_MANAGER_MODULE_PARAM) - 1].get = roamingMngr_getParam; 330981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(ROAMING_MANAGER_MODULE_PARAM) - 1].handle = pCmdDispatch->hRoamingMngr; 331981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 332981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SOFT_GEMINI_PARAM) - 1].set = SoftGemini_setParam; 333981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SOFT_GEMINI_PARAM) - 1].get = SoftGemini_getParam; 334981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(SOFT_GEMINI_PARAM) - 1].handle = pCmdDispatch->hSoftGemini; 335981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 336981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(QOS_MANAGER_PARAM) - 1].set = qosMngr_setParams; 337981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(QOS_MANAGER_PARAM) - 1].get = qosMngr_getParams; 338981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(QOS_MANAGER_PARAM) - 1].handle = pCmdDispatch->hQosMngr; 339981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 340981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(POWER_MANAGER_PARAM) - 1].set = powerMgr_setParam; 341981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(POWER_MANAGER_PARAM) - 1].get = powerMgr_getParam; 342981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(POWER_MANAGER_PARAM) - 1].handle = pCmdDispatch->hPowerMgr; 343981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 344981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef TI_DBG 345981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MISC_MODULE_PARAM) - 1].set = cmdDispatch_DebugFuncSet; 346981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MISC_MODULE_PARAM) - 1].get = cmdDispatch_DebugFuncGet; /*yael - this function is not in use*/ 347981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(MISC_MODULE_PARAM) - 1].handle = (TI_HANDLE)pCmdDispatch; 348981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif 349981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 350981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(HEALTH_MONITOR_MODULE_PARAM) - 1].set = healthMonitor_SetParam; 351981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(HEALTH_MONITOR_MODULE_PARAM) - 1].get = healthMonitor_GetParam; 352981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(HEALTH_MONITOR_MODULE_PARAM) - 1].handle = pCmdDispatch->hHealthMonitor; 353653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt 354653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CURR_BSS_MODULE_PARAM) - 1].set = currBSS_setParam; 355653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CURR_BSS_MODULE_PARAM) - 1].get = currBSS_getParam; 356653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt pCmdDispatch->paramAccessTable[GET_PARAM_MODULE_NUMBER(CURR_BSS_MODULE_PARAM) - 1].handle = pCmdDispatch->hCurrBss; 357981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 358981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 359981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 360981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** 361981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \fn cmdDispatch_SetParam 362981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Set a driver parameter 363981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 364981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Called by the OS abstraction layer in order to set a parameter in the driver. 365981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * If the parameter can not be set from outside the driver it returns a failure status. 366981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * The parameters is set to the module that uses as its father in the system 367981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * (refer to the file paramOut.h for more explanations). 368981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 369981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \note 370981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param hCmdDispatch - The object 371981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param param - The parameter information 372981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return result of parameter setting 373981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa 374981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 375981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS cmdDispatch_SetParam (TI_HANDLE hCmdDispatch, void *param) 376981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 377981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TCmdDispatchObj *pCmdDispatch = (TCmdDispatchObj *)hCmdDispatch; 378981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt paramInfo_t *pParam = (paramInfo_t *)param; 379981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 moduleNumber; 380981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 381981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt moduleNumber = GET_PARAM_MODULE_NUMBER(pParam->paramType); 382981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 383981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if (moduleNumber > MAX_PARAM_MODULE_NUMBER) 384981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 385981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return PARAM_MODULE_NUMBER_INVALID; 386981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 387981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 388981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if ((pCmdDispatch->paramAccessTable[moduleNumber - 1].set == 0) || 389981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt (pCmdDispatch->paramAccessTable[moduleNumber - 1].get == 0) || 390981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt (pCmdDispatch->paramAccessTable[moduleNumber - 1].handle == 0)) 391981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 392981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt WLAN_OS_REPORT(("cmdDispatch_SetParam(): NULL pointers!!!, return, ParamType=0x%x\n", pParam->paramType)); 393981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TI_NOK; 394981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 395981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 396981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TRACE2(pCmdDispatch->hReport, REPORT_SEVERITY_INFORMATION , "cmdDispatch_SetParam(): ParamType=0x%x, ModuleNumber=0x%x\n", pParam->paramType, moduleNumber); 397981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 398981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return pCmdDispatch->paramAccessTable[moduleNumber - 1].set(pCmdDispatch->paramAccessTable[moduleNumber - 1].handle, pParam); 399981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 400981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 401981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 402981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** 403981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \fn cmdDispatch_GetParam 404981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Get a driver parameter 405981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 406981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Called by the OS abstraction layer in order to get a parameter the driver. 407981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * If the parameter can not be get from outside the driver it returns a failure status. 408981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * The parameter is get from the module that uses as its father in the system 409981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * (refer to the file paramOut.h for more explanations). 410981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 411981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \note 412981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param hCmdDispatch - The object 413981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param param - The parameter information 414981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return result of parameter getting 415981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa 416981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 417981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS cmdDispatch_GetParam (TI_HANDLE hCmdDispatch, void *param) 418981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 419981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TCmdDispatchObj *pCmdDispatch = (TCmdDispatchObj *) hCmdDispatch; 420981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt paramInfo_t *pParam = (paramInfo_t *) param; 421981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 moduleNumber; 422981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_STATUS status; 423981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 424981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt moduleNumber = GET_PARAM_MODULE_NUMBER(pParam->paramType); 425981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 426981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if (moduleNumber > MAX_PARAM_MODULE_NUMBER) 427981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 428981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return PARAM_MODULE_NUMBER_INVALID; 429981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 430981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 431981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if ((pCmdDispatch->paramAccessTable[moduleNumber - 1].set == 0) || 432981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt (pCmdDispatch->paramAccessTable[moduleNumber - 1].get == 0) || 433981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt (pCmdDispatch->paramAccessTable[moduleNumber - 1].handle == 0)) 434981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 435981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt WLAN_OS_REPORT(("cmdDispatch_GetParam(): NULL pointers!!!, return, ParamType=0x%x\n", pParam->paramType)); 436981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TI_NOK; 437981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 438981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 439981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TRACE2(pCmdDispatch->hReport, REPORT_SEVERITY_INFORMATION , "cmdDispatch_GetParam(): ParamType=0x%x, ModuleNumber=0x%x\n", pParam->paramType, moduleNumber); 440981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 441981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt status = pCmdDispatch->paramAccessTable[moduleNumber - 1].get(pCmdDispatch->paramAccessTable[moduleNumber - 1].handle, pParam); 442981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 443981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return status; 444981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 445981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 446981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 447981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** 448981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \fn cmdDispatch_SetTwdParam / cmdDispatch_GetParam 449981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Set/Get a TWD parameter 450981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 451981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Set/Get a TWD parameter. 452981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 453981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \note 454981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param hCmdDispatch - The object 455981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param param - The parameter information 456981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return parameter set/get result 457981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa 458981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 459981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS cmdDispatch_SetTwdParam (TI_HANDLE hCmdDispatch, paramInfo_t *pParam) 460981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 461981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TCmdDispatchObj *pCmdDispatch = (TCmdDispatchObj *)hCmdDispatch; 462981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 463981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pParam->paramType &= ~(SET_BIT | GET_BIT | TWD_MODULE_PARAM | ASYNC_PARAM | ALLOC_NEEDED_PARAM); 464981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 465981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TWD_SetParam (pCmdDispatch->hTWD, (TTwdParamInfo *)pParam); 466981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 467981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 468981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS cmdDispatch_GetTwdParam (TI_HANDLE hCmdDispatch, paramInfo_t *pParam) 469981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 470981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TCmdDispatchObj *pCmdDispatch = (TCmdDispatchObj *)hCmdDispatch; 471981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 472981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt pParam->paramType &= ~(SET_BIT | GET_BIT | TWD_MODULE_PARAM | ASYNC_PARAM | ALLOC_NEEDED_PARAM); 473981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 474981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TWD_GetParam (pCmdDispatch->hTWD, (TTwdParamInfo *)pParam); 475981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 476981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 477981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 478981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 479981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 480981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** 481981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \fn cmdDispatch_DebugFuncSet / cmdDispatch_DebugFuncGet 482981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Set/Get a debug function parameter 483981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 484981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Set/Get a debug function parameter. 485981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 486981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \note 487981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param hCmdDispatch - The object 488981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param param - The parameter information 489981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return parameter set/get result 490981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa 491981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 492981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 493981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef TI_DBG 494981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 495981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS cmdDispatch_DebugFuncSet (TI_HANDLE hCmdDispatch, paramInfo_t *pParam) 496981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 497981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TCmdDispatchObj *pCmdDispatch = (TCmdDispatchObj *)hCmdDispatch; 498981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 499981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if (hCmdDispatch == NULL || pParam == NULL) 500981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 501981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TI_NOK; 502981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 503981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 504981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt switch (pParam->paramType) 505981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 506981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt case DEBUG_ACTIVATE_FUNCTION: 507981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt debugFunction (pCmdDispatch->pStadHandles, 508981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *(TI_UINT32*)&pParam->content, 509981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt (void*)((TI_UINT32*)&pParam->content + 1)); 510981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt break; 511981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt default: 512981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTRACE1(pCmdDispatch->hReport, REPORT_SEVERITY_ERROR, "cmdDispatch_DebugFuncSet bad param=%X\n", pParam->paramType); 513981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt break; 514981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 515981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TI_OK; 516981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 517981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 518981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 519981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 520981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*yael - this function is not in use*/ 521981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS cmdDispatch_DebugFuncGet (TI_HANDLE hCmdDispatch, paramInfo_t *pParam) 522981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 523981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt if (hCmdDispatch == NULL || pParam == NULL) 524981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt { 525981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TI_NOK; 526981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt } 527981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 528981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /*yael - no use for that function */ 529981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 530981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt return TI_OK; 531981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} 532981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 533981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif /* TI_DBG */ 534981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 535981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 536