/**
 * \fn     scanCncnSm_Init
 * \brief  Initialize a scan concentartor client object
 *
 * Initialize a scan concentartor client object - store handles and specific SM functions
 *
 * \note   Some of the values (e.g. scan result CB( are initialized from the main scan concentartor object)
 * \param  hScanCncnClient - handle to the scan concnentrator client object
 * \param  hReport - handle to the report object
 * \param  hTWD - handle to the TWD object
 * \param  hSCR - handle to the SCR object
 * \param  hApConn - handle to the AP connection object
 * \param  hMlme - handle to the MLME object
 * \param  fScrRequest - SM specific SCR request finction
 * \param  fScrRelease - SM specific SCR release finction
 * \param  fStartScan - SM specific scan start finction
 * \param  fStopScan - SM specific scan stop finction
 * \param  fRecovery - SM specific recovery handling function
 * \param  pScanSmName - state machine name
 * \return None
 * \sa     scanCncnSm_Cretae
 */
void scanCncnSm_Init (TI_HANDLE hScanCncnClient, TI_HANDLE hReport, TI_HANDLE hTWD, TI_HANDLE hSCR,
                      TI_HANDLE hApConn, TI_HANDLE hMlme, TI_HANDLE hScanCncn, TScanPrivateSMFunction fScrRequest,
                      TScanPrivateSMFunction fScrRelease, TScanPrivateSMFunction fStartScan,
                      TScanPrivateSMFunction fStopScan, TScanPrivateSMFunction fRecovery, TI_INT8* pScanSmName)
{
	TScanCncnClient *pScanCncnClient = (TScanCncnClient*)hScanCncnClient;

	/* store handles */
	pScanCncnClient->hReport = hReport;
	pScanCncnClient->hTWD = hTWD;
	pScanCncnClient->hSCR = hSCR;
	pScanCncnClient->hApConn = hApConn;
	pScanCncnClient->hMlme = hMlme;
	pScanCncnClient->hScanCncn = hScanCncn;

	/* store private functions */
	pScanCncnClient->fScrRequest = fScrRequest;
	pScanCncnClient->fScrRelease = fScrRelease;
	pScanCncnClient->fStartScan = fStartScan;
	pScanCncnClient->fStopScan = fStopScan;
	pScanCncnClient->fRecovery = fRecovery;

	/* store SM name */
	pScanCncnClient->pScanSmName = pScanSmName;

	/* initialize the state-machine */
	genSM_Init (pScanCncnClient->hGenSM, hReport);
	genSM_SetDefaults (pScanCncnClient->hGenSM, SCAN_CNCN_SM_NUMBER_OF_STATES, SCAN_CNCN_SM_NUMBER_OF_EVENTS,
	                   (TGenSM_matrix)tSmMatrix, SCAN_CNCN_SM_STATE_IDLE, pScanCncnClient->pScanSmName, uStateDescription,
	                   uEventDescription, __FILE_ID__);
}
/** 
 * \fn     scanCncnOsSm_Init
 * \brief  Initialize the OS scan state-machine
 * 
 * Initialize the OS scan state-machine
 * 
 * \param  hScanCncn - handle to the scan concentrator object
 * \return None
 * \sa     scanCncnOsSm_Create
 */
void scanCncnOsSm_Init (TI_HANDLE hScanCncn)
{
    TScanCncn       *pScanCncn = (TScanCncn*)hScanCncn;

    /* initialize the state-machine */
    genSM_Init (pScanCncn->hOSScanSm, pScanCncn->hReport);
    genSM_SetDefaults (pScanCncn->hOSScanSm, SCAN_CNCN_OS_SM_NUMBER_OF_STATES, SCAN_CNCN_OS_SM_NUMBER_OF_EVENTS,
                       (TGenSM_matrix)tSmMatrix, SCAN_CNCN_OS_SM_STATE_IDLE, "OS scan SM", uStateDescription, 
                       uEventDescription, __FILE_ID__);
}
示例#3
0
文件: mlme.c 项目: nadlabak/tiwlan
void mlme_init (TStadHandlesList *pStadHandles)
{
    mlme_t *pHandle = (mlme_t *)(pStadHandles->hMlme);

    pHandle->currentState = MLME_SM_STATE_IDLE;
    pHandle->legacyAuthType = AUTH_LEGACY_NONE;
    pHandle->reAssoc = TI_FALSE;
    pHandle->disConnType = DISCONNECT_IMMEDIATE;
    pHandle->disConnReason = STATUS_UNSPECIFIED;

    pHandle->hSiteMgr          = pStadHandles->hSiteMgr;
    pHandle->hCtrlData         = pStadHandles->hCtrlData;
    pHandle->hTxMgmtQ          = pStadHandles->hTxMgmtQ;
    pHandle->hMeasurementMgr   = pStadHandles->hMeasurementMgr;
    pHandle->hSwitchChannel    = pStadHandles->hSwitchChannel;
    pHandle->hRegulatoryDomain = pStadHandles->hRegulatoryDomain;
    pHandle->hReport           = pStadHandles->hReport;
    pHandle->hOs               = pStadHandles->hOs;
    pHandle->hConn             = pStadHandles->hConn;
    pHandle->hCurrBss          = pStadHandles->hCurrBss;
    pHandle->hApConn           = pStadHandles->hAPConnection;
    pHandle->hScanCncn         = pStadHandles->hScanCncn;
    pHandle->hQosMngr          = pStadHandles->hQosMngr;
    pHandle->hTWD              = pStadHandles->hTWD;
    pHandle->hTxCtrl           = pStadHandles->hTxCtrl;
	pHandle->hRsn              = pStadHandles->hRsn;
	pHandle->hStaCap           = pStadHandles->hStaCap;
	pHandle->hSme			   = pStadHandles->hSme;
	pHandle->hTimer            = pStadHandles->hTimer;
#ifdef XCC_MODULE_INCLUDED
    pHandle->hXCCMngr          = pStadHandles->hXCCMngr;
#endif

    /*
    debug info
    */
    pHandle->debug_lastProbeRspTSFTime = 0;
    pHandle->debug_lastDtimBcnTSFTime = 0;
    pHandle->debug_lastBeaconTSFTime = 0;
    pHandle->debug_isFunctionFirstTime = TI_TRUE;
    pHandle->BeaconsCounterPS = 0;

	genSM_Init(pHandle->hMlmeSm, pHandle->hReport);

	os_memoryZero(pHandle->hOs, &(pHandle->authInfo), sizeof(auth_t));
	os_memoryZero(pHandle->hOs, &(pHandle->assocInfo), sizeof(assoc_t));
	os_memoryZero(pHandle->hOs, (TI_UINT8*)pHandle->extraIes, MAX_EXTRA_IES_LEN);

	pHandle->extraIesLen = 0;
}
void roamingMngr_init (TStadHandlesList *pStadHandles)
{
	roamingMngr_t    *pRoamingMngr = (roamingMngr_t*)(pStadHandles->hRoamingMngr);

	/* Update handlers */
	pRoamingMngr->hReport       = pStadHandles->hReport;
	pRoamingMngr->hScanMngr     = pStadHandles->hScanMngr;
	pRoamingMngr->hAPConnection = pStadHandles->hAPConnection;
	pRoamingMngr->hTWD          = pStadHandles->hTWD;
	pRoamingMngr->hEvHandler    = pStadHandles->hEvHandler;
	pRoamingMngr->hCurrBss      = pStadHandles->hCurrBss;

	genSM_Init(pRoamingMngr->hRoamingSm,pRoamingMngr->hReport);
}
示例#5
0
/** 
 * \fn     sme_Init
 * \brief  Initializes the SME object. Store module handles
 * 
 * Initializes the SME object. Store module handles
 * 
 * \param  pStadHandles - pointer to the handles structure
 * \return None
 * \sa     sme_Create, sme_SetDefaults
 */ 
void sme_Init (TStadHandlesList *pStadHandles)
{
    TSme        *pSme = pStadHandles->hSme;

    /* Store object handles */
    pSme->hReport       = pStadHandles->hReport;
    pSme->hScanCncn     = pStadHandles->hScanCncn;
    pSme->hApConn       = pStadHandles->hAPConnection;
    pSme->hConn         = pStadHandles->hConn;
    pSme->hScr          = pStadHandles->hSCR;
    pSme->hRegDomain    = pStadHandles->hRegulatoryDomain;
    pSme->hEvHandler    = pStadHandles->hEvHandler;
    pSme->hSiteMgr      = pStadHandles->hSiteMgr;
    pSme->hRsn          = pStadHandles->hRsn;
    pSme->hDrvMain      = pStadHandles->hDrvMain;
    pSme->hTwd          = pStadHandles->hTWD;


    /* Initialize the scan result table object */
    scanResultTable_Init (pSme->hScanResultTable, pStadHandles);

    /* Initialize the SME state-machine object */
    genSM_Init (pSme->hSmeSm, pStadHandles->hReport);
}