VOID p2pStateAbort_AP_CHANNEL_DETECT(IN P_ADAPTER_T prAdapter, IN P_P2P_FSM_INFO_T prP2pFsmInfo, IN P_P2P_SPECIFIC_BSS_INFO_T prP2pSpecificBssInfo, IN ENUM_P2P_STATE_T eNextState) { P_P2P_CHNL_REQ_INFO_T prChnlReqInfo = (P_P2P_CHNL_REQ_INFO_T) NULL; P_P2P_CONNECTION_SETTINGS_T prP2pConnSettings = (P_P2P_CONNECTION_SETTINGS_T) NULL; do { if (eNextState == P2P_STATE_REQING_CHANNEL) { UINT_8 ucPreferedChnl = 0; ENUM_BAND_T eBand = BAND_NULL; ENUM_CHNL_EXT_T eSco = CHNL_EXT_SCN; prChnlReqInfo = &(prP2pFsmInfo->rChnlReqInfo); /* Determine the channel for AP. */ if (cnmPreferredChannel(prAdapter, &eBand, &ucPreferedChnl, &eSco) == FALSE) { prP2pConnSettings = prAdapter->rWifiVar.prP2PConnSettings; if ((ucPreferedChnl = prP2pConnSettings->ucOperatingChnl) == 0) { if (scnQuerySparseChannel(prAdapter, &eBand, &ucPreferedChnl) == FALSE) { /* What to do? */ ASSERT(FALSE); /* TODO: Pick up a valid channel from channel list. */ ucPreferedChnl = 1; eBand = BAND_2G4; } } } prChnlReqInfo->eChannelReqType = CHANNEL_REQ_TYPE_GO_START_BSS; prChnlReqInfo->ucReqChnlNum = prP2pSpecificBssInfo->ucPreferredChannel = ucPreferedChnl; prChnlReqInfo->eBand = prP2pSpecificBssInfo->eRfBand = eBand; prChnlReqInfo->eChnlSco = prP2pSpecificBssInfo->eRfSco = eSco; } else { p2pFuncCancelScan(prAdapter, &(prP2pFsmInfo->rScanReqInfo)); } } while (FALSE); return; } /* p2pStateAbort_AP_CHANNEL_DETECT */
VOID p2pStateAbort_SCAN(IN P_ADAPTER_T prAdapter, IN P_P2P_FSM_INFO_T prP2pFsmInfo, IN ENUM_P2P_STATE_T eNextState) { do { ASSERT_BREAK(prAdapter != NULL); /* 1. Scan cancel. (Make sure the scan request is invalid. */ p2pFuncCancelScan(prAdapter, &(prP2pFsmInfo->rScanReqInfo)); /* Scan done indication. */ kalP2PIndicateScanDone(prAdapter->prGlueInfo, prP2pFsmInfo->rScanReqInfo.fgIsAbort); } while (FALSE); return; } /* p2pStateAbort_SCAN */
VOID p2pDevStateAbort_SCAN(IN P_ADAPTER_T prAdapter, IN P_P2P_DEV_FSM_INFO_T prP2pDevFsmInfo) { P_P2P_SCAN_REQ_INFO_T prScanInfo = (P_P2P_SCAN_REQ_INFO_T) NULL; do { ASSERT_BREAK((prAdapter != NULL) && (prP2pDevFsmInfo != NULL)); prScanInfo = &(prP2pDevFsmInfo->rScanReqInfo); p2pFuncCancelScan(prAdapter, prP2pDevFsmInfo->ucBssIndex, prScanInfo); kalP2PIndicateScanDone(prAdapter->prGlueInfo, 0xFF, prScanInfo->fgIsAbort); } while (FALSE); return; } /* p2pDevStateAbort_CHNL_ON_HAND */