16 * [MT6620 Wi-Fi][Driver] API and behavior modification for preferred band configuration with corresponding network configuration
17 * add wlanSetPreferBandByNetwork() for glue layer to invoke for setting preferred band configuration corresponding to network type.
20 * [WCXRP00000830] [MT6620 Wi-Fi][Firmware] Use MDRDY counter to detect empty channel for shortening scan time
21 * sparse channel detection:
22 * driver: collect sparse channel information with scan-done event
26 * [WCXRP00000858] [MT5931][Driver][Firmware] Add support for scan to search for more than one SSID in a single scanning request
27 * add framework in driver domain for supporting new SCAN_REQ_V2 for more than 1 SSID support as well as uProbeDelay in NDIS 6.x driver model
30 * [WCXRP00000815] [MT6620 Wi-Fi][Driver] allow single BSSID with multiple SSID settings to work around some tricky AP which use space character as hidden SSID
31 * allow to have a single BSSID with multiple SSID to be presented in scanning result
34 * [WCXRP00000660] [MT6620 Wi-Fi][Driver] Remove flag CFG_WIFI_DIRECT_MOVED
35 * Remove flag CFG_WIFI_DIRECT_MOVED.
38 * [WCXRP00000433] [MT6620 Wi-Fi][Driver] Remove WAPI structure define for avoid P2P module with structure miss-align pointer issue
39 * always pre-allio WAPI related structure for align p2p module.
41 * 01 14 2011 yuche.tsai
42 * [WCXRP00000352] [Volunteer Patch][MT6620][Driver] P2P Statsion Record Client List Issue
47 * use static memory pool for storing IEs of scanning result.
49 * 09 03 2010 kevin.huang
51 * Refine #include sequence and solve recursive/nested #include issue
53 * 08 31 2010 kevin.huang
55 * Use LINK LIST operation to process SCAN result
59 * eliminate klockwork errors
63 * add interface for RLM to trigger OBSS-SCAN.
65 * 08 12 2010 yuche.tsai
67 * Add a functio prototype to find p2p descriptor of a bss descriptor directly.
69 * 08 11 2010 yuche.tsai
71 * Add function prototype for return channel.
72 * modify data structure for scan specific device ID or TYPE. (Move from P2P Connection Settings to Scan Param)
74 * 08 05 2010 yuche.tsai
76 * Check-in P2P Device Discovery Feature.
78 * 08 02 2010 yuche.tsai
80 * P2P Group Negotiation Code Check in.
82 * 07 26 2010 yuche.tsai
84 * Add a option for channel time extention in scan abort command.
86 * 07 21 2010 yuche.tsai
88 * Add for P2P Scan Result Parsing & Saving.
90 * 07 19 2010 yuche.tsai
92 * Scan status "FIND" is used for P2P FSM find state.
96 * [WPD00003833] [MT6620 and MT5931] Driver migration.
97 * SCN module is now able to handle multiple concurrent scanning requests
101 * [WPD00003833] [MT6620 and MT5931] Driver migration.
102 * pass band with channel number information as scan parameter
106 * [WPD00003833] [MT6620 and MT5931] Driver migration.
107 * remove timer in DRV-SCN.
111 * 1) separate AIS_FSM state for two kinds of scanning. (OID triggered scan, and scan-for-connection)
112 * 2) eliminate PRE_BSS_DESC_T, Beacon/PrebResp is now parsed in single pass
113 * 3) implment DRV-SCN module, currently only accepts single scan request, other request will be directly dropped by returning BUSY
117 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
120 * [WPD00003833][MT6620 and MT5931] Driver migration
121 * add scan uninitialization procedure
124 * [WPD00003833][MT6620 and MT5931] Driver migration
125 * implementation of DRV-SCN and related mailbox message handling.
128 * [WPD00003833][MT6620 and MT5931] Driver migration
129 * modify Beacon/ProbeResp to complete parsing,
130 * because host software has looser memory usage restriction
132 * 06 17 2010 yuche.tsai
133 * [WPD00003839][MT6620 5931][P2P] Feature migration
134 * Add P2P related field in SCAN_PARAM_T.
137 * [WPD00003833][MT6620 and MT5931] Driver migration
138 * saa_fsm.c is migrated.
141 * [WPD00003833][MT6620 and MT5931] Driver migration
142 * add management dispatching function table.
145 * [WPD00003833][MT6620 and MT5931] Driver migration
146 * restore utility function invoking via hem_mbox to direct calls
149 * [WPD00003833][MT6620 and MT5931] Driver migration
150 * auth.c is migrated.
153 * [WPD00003833][MT6620 and MT5931] Driver migration
154 * add buildable & linkable ais_fsm.c
156 * related reference are still waiting to be resolved
159 * [WPD00003833][MT6620 and MT5931] Driver migration
160 * add aa_fsm.h, ais_fsm.h, bss.h, mib.h and scan.h.
162 * 05 12 2010 kevin.huang
163 * [BORA00000794][WIFISYS][New Feature]Power Management Support
164 * Add Power Management - Legacy PS-POLL support.
166 * 04 13 2010 kevin.huang
167 * [BORA00000663][WIFISYS][New Feature] AdHoc Mode Support
169 * Add new HW CH macro support
171 * 03 16 2010 kevin.huang
172 * [BORA00000663][WIFISYS][New Feature] AdHoc Mode Support
175 * 03 10 2010 kevin.huang
176 * [BORA00000654][WIFISYS][New Feature] CNM Module - Ch Manager Support
178 * * * * * * Add Channel Manager for arbitration of JOIN and SCAN Req
180 * 02 26 2010 kevin.huang
181 * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
182 * Modify scanBuildProbeReqFrameCommonIEs() to support P2P SCAN
185 * [BORA00000592][MT6620 Wi-Fi] Adding the security related code for driver
186 * refine the scan procedure, reduce the WPA and WAPI IE parsing, and move the parsing to the time for join.
188 * 02 23 2010 kevin.huang
189 * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
190 * Add support scan channel 1~14 and update scan result's frequency infou1rwduu`wvpghlqg|n`slk+mpdkb
192 * 02 04 2010 kevin.huang
193 * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
194 * Add AAA Module Support, Revise Net Type to Net Type Index for array lookup
197 * [BORA00000476][Wi-Fi][firmware] Add the security module initialize code
198 * add and fixed some security function.
200 * 01 07 2010 kevin.huang
201 * [BORA00000018]Integrate WIFI part into BORA for the 1st time
202 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
204 * Simplify the process of Beacon during SCAN and remove redundant variable in PRE_BSS_DESC_T
206 * Dec 7 2009 mtk01088
207 * [BORA00000476] [Wi-Fi][firmware] Add the security module initialize code
208 * adding variable for wapi ap
210 * Dec 4 2009 mtk01088
211 * [BORA00000476] [Wi-Fi][firmware] Add the security module initialize code
212 * remove non-used secuirty variavle
214 * Dec 3 2009 mtk01461
215 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
216 * Refine data structure of BSS_DESC_T and PRE_BSS_DESC_T
218 * Nov 24 2009 mtk01461
219 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
220 * Add eNetType to rScanParam and revise MGMT Handler with Retain Status
222 * Nov 23 2009 mtk01461
223 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
224 * Add ucAvailablePhyTypeSet to BSS_DESC_T
226 * Nov 20 2009 mtk01461
227 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
228 * Add aucSrcAddress to SCAN_PARAM_T for P2P's Device Address
230 * Nov 19 2009 mtk01088
231 * [BORA00000476] [Wi-Fi][firmware] Add the security module initialize code
232 * adding the security related variable
234 * Nov 18 2009 mtk01088
235 * [BORA00000476] [Wi-Fi][firmware] Add the security module initialize code
236 * adding the security ie filed for scan parsing
238 * Nov 16 2009 mtk01461
239 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
240 * Add scanSearchBssDescByPolicy()
242 * Nov 5 2009 mtk01461
243 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
244 * Add function declarations of scan_fsm.c
246 * Oct 30 2009 mtk01461
247 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
248 * Add scan.h to source control
255 /*******************************************************************************
256 * C O M P I L E R F L A G S
257 ********************************************************************************
260 /*******************************************************************************
261 * E X T E R N A L R E F E R E N C E S
262 ********************************************************************************
265 /*******************************************************************************
267 ********************************************************************************
269 /*! Maximum buffer size of SCAN list */
270 #define SCN_MAX_BUFFER_SIZE (CFG_MAX_NUM_BSS_LIST * ALIGN_4(sizeof(BSS_DESC_T)))
272 #define SCN_RM_POLICY_EXCLUDE_CONNECTED BIT(0) // Remove SCAN result except the connected one.
273 #define SCN_RM_POLICY_TIMEOUT BIT(1) // Remove the timeout one
274 #define SCN_RM_POLICY_OLDEST_HIDDEN BIT(2) // Remove the oldest one with hidden ssid
275 #define SCN_RM_POLICY_SMART_WEAKEST BIT(3) /* If there are more than half BSS which has the
276 * same ssid as connection setting, remove the weakest one from them
277 * Else remove the weakest one.
279 #define SCN_RM_POLICY_ENTIRE BIT(4) // Remove entire SCAN result
281 #define SCN_BSS_DESC_SAME_SSID_THRESHOLD 3 /* This is used by POLICY SMART WEAKEST,
282 * If exceed this value, remove weakest BSS_DESC_T
283 * with same SSID first in large network.
286 #define SCN_BSS_DESC_REMOVE_TIMEOUT_SEC 5 // Second.
287 /* This is used by POLICY TIMEOUT,
288 * If exceed this value, remove timeout BSS_DESC_T.
294 #define SCN_PROBE_DELAY_MSEC 0
296 #define SCN_ADHOC_BSS_DESC_TIMEOUT_SEC 5 // Second.
298 /*----------------------------------------------------------------------------*/
299 /* MSG_SCN_SCAN_REQ */
300 /*----------------------------------------------------------------------------*/
301 #define SCAN_REQ_SSID_WILDCARD BIT(0)
302 #define SCAN_REQ_SSID_P2P_WILDCARD BIT(1)
303 #define SCAN_REQ_SSID_SPECIFIED BIT(2)
306 /*----------------------------------------------------------------------------*/
307 /* Support Multiple SSID SCAN */
308 /*----------------------------------------------------------------------------*/
309 #define SCN_SSID_MAX_NUM 4
312 /*******************************************************************************
314 ********************************************************************************
316 typedef enum _ENUM_SCAN_TYPE_T {
317 SCAN_TYPE_PASSIVE_SCAN = 0,
318 SCAN_TYPE_ACTIVE_SCAN,
320 } ENUM_SCAN_TYPE_T, *P_ENUM_SCAN_TYPE_T;
322 typedef enum _ENUM_SCAN_STATE_T {
328 typedef enum _ENUM_SCAN_CHANNEL_T {
329 SCAN_CHANNEL_FULL = 0,
332 SCAN_CHANNEL_P2P_SOCIAL,
333 SCAN_CHANNEL_SPECIFIED,
335 } ENUM_SCAN_CHANNEL, *P_ENUM_SCAN_CHANNEL;
337 typedef struct _MSG_SCN_FSM_T {
338 MSG_HDR_T rMsgHdr; /* Must be the first member */
340 } MSG_SCN_FSM_T, *P_MSG_SCN_FSM_T;
344 /*----------------------------------------------------------------------------*/
345 /* BSS Descriptors */
346 /*----------------------------------------------------------------------------*/
348 LINK_ENTRY_T rLinkEntry;
350 UINT_8 aucBSSID[MAC_ADDR_LEN];
351 UINT_8 aucSrcAddr[MAC_ADDR_LEN]; /* For IBSS, the SrcAddr is different from BSSID */
353 BOOLEAN fgIsConnecting; /* If we are going to connect to this BSS
354 * (JOIN or ROAMING to another BSS), don't
355 * remove this record from BSS List.
357 BOOLEAN fgIsConnected; /* If we have connected to this BSS (NORMAL_TR),
358 * don't removed this record from BSS list.
361 BOOLEAN fgIsHiddenSSID; /* When this flag is TRUE, means the SSID
362 * of this BSS is not known yet.
365 UINT_8 aucSSID[ELEM_MAX_LEN_SSID];
367 OS_SYSTIME rUpdateTime;
369 ENUM_BSS_TYPE_T eBSSType;
373 UINT_16 u2BeaconInterval;
374 UINT_16 u2ATIMWindow;
376 UINT_16 u2OperationalRateSet;
377 UINT_16 u2BSSBasicRateSet;
378 BOOLEAN fgIsUnknownBssBasicRate;
380 BOOLEAN fgIsERPPresent;
381 BOOLEAN fgIsHTPresent;
383 UINT_8 ucPhyTypeSet; /* Available PHY Type Set of this BSS */
387 ENUM_CHNL_EXT_T eSco; /* Record bandwidth for association process
388 Some AP will send association resp by 40MHz BW */
393 BOOLEAN fgIsLargerTSF; /* This BSS's TimeStamp is larger than us(TCL == 1 in RX_STATUS_T) */
397 UINT_8 ucWmmFlag; /* A flag to indicate this BSS's WMM capability */
399 /*! \brief The srbiter Search State will matched the scan result,
400 and saved the selected cipher and akm, and report the score,
401 for arbiter join state, join module will carry this target BSS
402 to rsn generate ie function, for gen wpa/rsn ie */
403 UINT_32 u4RsnSelectedGroupCipher;
404 UINT_32 u4RsnSelectedPairwiseCipher;
405 UINT_32 u4RsnSelectedAKMSuite;
411 #if 1//CFG_SUPPORT_WAPI
418 /*! \brief RSN parameters selected for connection */
419 /*! \brief The Select score for final AP selection,
420 0, no sec, 1,2,3 group cipher is WEP, TKIP, CCMP */
423 #if CFG_ENABLE_WIFI_DIRECT
424 BOOLEAN fgIsP2PPresent;
425 P_P2P_DEVICE_DESC_T prP2pDesc;
427 UINT_8 aucIntendIfAddr[MAC_ADDR_LEN]; /* For IBSS, the SrcAddr is different from BSSID */
428 // UINT_8 ucDevCapabilityBitmap; /* Device Capability Attribute. (P2P_DEV_CAPABILITY_XXXX) */
429 // UINT_8 ucGroupCapabilityBitmap; /* Group Capability Attribute. (P2P_GROUP_CAPABILITY_XXXX) */
431 LINK_T rP2pDeviceList;
433 // P_LINK_T prP2pDeviceList;
437 * 2. P2P Device ID. ( in aucSrcAddr[] )
439 * 4. Extend Listen Timing. (Probe Rsp) (TODO:)
440 * 5. P2P Device Info. (Probe Rsp)
441 * 6. P2P Group Info. (Probe Rsp)
445 BOOLEAN fgIsIEOverflow; /* The received IE length exceed the maximum IE buffer size */
446 UINT_16 u2IELength; /* The byte count of aucIEBuf[] */
448 ULARGE_INTEGER u8TimeStamp; /* Place u8TimeStamp before aucIEBuf[1] to force DW align */
450 UINT_8 aucIEBuf[CFG_IE_BUFFER_SIZE];
454 typedef struct _SCAN_PARAM_T { /* Used by SCAN FSM */
455 /* Active or Passive */
456 ENUM_SCAN_TYPE_T eScanType;
459 ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex;
461 /* Specified SSID Type */
465 /* Length of Specified SSID */
466 UINT_8 ucSpecifiedSSIDLen[SCN_SSID_MAX_NUM];
469 UINT_8 aucSpecifiedSSID[SCN_SSID_MAX_NUM][ELEM_MAX_LEN_SSID];
471 #if CFG_ENABLE_WIFI_DIRECT
472 BOOLEAN fgFindSpecificDev; /* P2P: Discovery Protocol */
473 UINT_8 aucDiscoverDevAddr[MAC_ADDR_LEN];
475 P2P_DEVICE_TYPE_T rDiscoverDevType;
477 UINT_16 u2PassiveListenInterval;
478 // TODO: Find Specific Device Type.
479 #endif /* CFG_SUPPORT_P2P */
481 BOOLEAN fgIsObssScan;
485 UINT_16 u2ProbeDelayTime;
487 /* channel information */
488 ENUM_SCAN_CHANNEL eScanChannel;
489 UINT_8 ucChannelListNum;
490 RF_CHANNEL_INFO_T arChnlInfoList[MAXIMUM_OPERATION_CHANNEL_LIST];
492 /* Feedback information */
495 /* Information Element */
497 UINT_8 aucIE[MAX_IE_LENGTH];
499 } SCAN_PARAM_T, *P_SCAN_PARAM_T;
501 typedef struct _SCAN_INFO_T {
502 ENUM_SCAN_STATE_T eCurrentState; /* Store the STATE variable of SCAN FSM */
504 OS_SYSTIME rLastScanCompletedTime;
506 SCAN_PARAM_T rScanParam;
508 UINT_32 u4NumOfBssDesc;
510 UINT_8 aucScanBuffer[SCN_MAX_BUFFER_SIZE];
514 LINK_T rFreeBSSDescList;
516 LINK_T rPendingMsgList;
518 /* Sparse Channel Detection */
519 BOOLEAN fgIsSparseChannelValid;
520 RF_CHANNEL_INFO_T rSparseChannel;
522 } SCAN_INFO_T, *P_SCAN_INFO_T;
525 /* Incoming Mailbox Messages */
526 typedef struct _MSG_SCN_SCAN_REQ_T {
527 MSG_HDR_T rMsgHdr; /* Must be the first member */
529 UINT_8 ucNetTypeIndex;
530 ENUM_SCAN_TYPE_T eScanType;
531 UINT_8 ucSSIDType; /* BIT(0) wildcard / BIT(1) P2P-wildcard / BIT(2) specific */
533 UINT_8 aucSSID[PARAM_MAX_LEN_SSID];
534 #if CFG_ENABLE_WIFI_DIRECT
535 UINT_16 u2ChannelDwellTime; /* In TU. 1024us. */
537 ENUM_SCAN_CHANNEL eScanChannel;
538 UINT_8 ucChannelListNum;
539 RF_CHANNEL_INFO_T arChnlInfoList[MAXIMUM_OPERATION_CHANNEL_LIST];
541 UINT_8 aucIE[MAX_IE_LENGTH];
542 } MSG_SCN_SCAN_REQ, *P_MSG_SCN_SCAN_REQ;
544 typedef struct _MSG_SCN_SCAN_REQ_V2_T {
545 MSG_HDR_T rMsgHdr; /* Must be the first member */
547 UINT_8 ucNetTypeIndex;
548 ENUM_SCAN_TYPE_T eScanType;
549 UINT_8 ucSSIDType; /* BIT(0) wildcard / BIT(1) P2P-wildcard / BIT(2) specific */
551 P_PARAM_SSID_T prSsid;
552 UINT_16 u2ProbeDelay;
553 UINT_16 u2ChannelDwellTime; /* In TU. 1024us. */
554 ENUM_SCAN_CHANNEL eScanChannel;
555 UINT_8 ucChannelListNum;
556 RF_CHANNEL_INFO_T arChnlInfoList[MAXIMUM_OPERATION_CHANNEL_LIST];
558 UINT_8 aucIE[MAX_IE_LENGTH];
559 } MSG_SCN_SCAN_REQ_V2, *P_MSG_SCN_SCAN_REQ_V2;
562 typedef struct _MSG_SCN_SCAN_CANCEL_T {
563 MSG_HDR_T rMsgHdr; /* Must be the first member */
565 UINT_8 ucNetTypeIndex;
566 #if CFG_ENABLE_WIFI_DIRECT
567 BOOLEAN fgIsChannelExt;
569 } MSG_SCN_SCAN_CANCEL, *P_MSG_SCN_SCAN_CANCEL;
571 /* Outgoing Mailbox Messages */
572 typedef enum _ENUM_SCAN_STATUS_T {
573 SCAN_STATUS_DONE = 0,
574 SCAN_STATUS_CANCELLED,
578 } ENUM_SCAN_STATUS, *P_ENUM_SCAN_STATUS;
580 typedef struct _MSG_SCN_SCAN_DONE_T {
581 MSG_HDR_T rMsgHdr; /* Must be the first member */
583 UINT_8 ucNetTypeIndex;
584 ENUM_SCAN_STATUS eScanStatus;
585 } MSG_SCN_SCAN_DONE, *P_MSG_SCN_SCAN_DONE;
587 /*******************************************************************************
588 * P U B L I C D A T A
589 ********************************************************************************
592 /*******************************************************************************
593 * P R I V A T E D A T A
594 ********************************************************************************
597 /*******************************************************************************
599 ********************************************************************************
602 /*******************************************************************************
603 * F U N C T I O N D E C L A R A T I O N S
604 ********************************************************************************
606 /*----------------------------------------------------------------------------*/
607 /* Routines in scan.c */
608 /*----------------------------------------------------------------------------*/
611 IN P_ADAPTER_T prAdapter
616 IN P_ADAPTER_T prAdapter
619 /* BSS-DESC Search */
621 scanSearchBssDescByBssid (
622 IN P_ADAPTER_T prAdapter,
627 scanSearchBssDescByBssidAndSsid (
628 IN P_ADAPTER_T prAdapter,
629 IN UINT_8 aucBSSID[],
630 IN BOOLEAN fgCheckSsid,
631 IN P_PARAM_SSID_T prSsid
635 scanSearchBssDescByTA (
636 IN P_ADAPTER_T prAdapter,
637 IN UINT_8 aucSrcAddr[]
641 scanSearchBssDescByTAAndSsid (
642 IN P_ADAPTER_T prAdapter,
643 IN UINT_8 aucSrcAddr[],
644 IN BOOLEAN fgCheckSsid,
645 IN P_PARAM_SSID_T prSsid
649 /* BSS-DESC Search - Alternative */
651 scanSearchExistingBssDesc (
652 IN P_ADAPTER_T prAdapter,
653 IN ENUM_BSS_TYPE_T eBSSType,
654 IN UINT_8 aucBSSID[],
655 IN UINT_8 aucSrcAddr[]
659 scanSearchExistingBssDescWithSsid (
660 IN P_ADAPTER_T prAdapter,
661 IN ENUM_BSS_TYPE_T eBSSType,
662 IN UINT_8 aucBSSID[],
663 IN UINT_8 aucSrcAddr[],
664 IN BOOLEAN fgCheckSsid,
665 IN P_PARAM_SSID_T prSsid
669 /* BSS-DESC Allocation */
671 scanAllocateBssDesc (
672 IN P_ADAPTER_T prAdapter
675 /* BSS-DESC Removal */
677 scanRemoveBssDescsByPolicy (
678 IN P_ADAPTER_T prAdapter,
679 IN UINT_32 u4RemovePolicy
683 scanRemoveBssDescByBssid (
684 IN P_ADAPTER_T prAdapter,
689 scanRemoveBssDescByBandAndNetwork (
690 IN P_ADAPTER_T prAdapter,
691 IN ENUM_BAND_T eBand,
692 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
695 /* BSS-DESC State Change */
697 scanRemoveConnFlagOfBssDescByBssid (
698 IN P_ADAPTER_T prAdapter,
703 /* BSS-DESC Insertion */
705 scanAddToInternalScanResult (
706 IN P_ADAPTER_T prAdapter,
707 IN P_SW_RFB_T prSWRfb,
708 IN P_BSS_DESC_T prBssDesc
712 /* BSS-DESC Insertion - ALTERNATIVE */
715 IN P_ADAPTER_T prAdapter,
716 IN P_SW_RFB_T prSwRfb
720 scanProcessBeaconAndProbeResp (
721 IN P_ADAPTER_T prAdapter,
722 IN P_SW_RFB_T prSWRfb
726 scanBuildProbeReqFrameCommonIEs (
727 IN P_MSDU_INFO_T prMsduInfo,
728 IN PUINT_8 pucDesiredSsid,
729 IN UINT_32 u4DesiredSsidLen,
730 IN UINT_16 u2SupportedRateSet
734 scanSendProbeReqFrames (
735 IN P_ADAPTER_T prAdapter,
736 IN P_SCAN_PARAM_T prScanParam
740 scanUpdateBssDescForSearch (
741 IN P_ADAPTER_T prAdapter,
742 IN P_BSS_DESC_T prBssDesc
746 scanSearchBssDescByPolicy (
747 IN P_ADAPTER_T prAdapter,
748 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
753 IN P_ADAPTER_T prAdapter,
754 IN P_BSS_DESC_T prBssDesc,
755 IN P_SW_RFB_T prSwRfb
758 /*----------------------------------------------------------------------------*/
759 /* Routines in scan_fsm.c */
760 /*----------------------------------------------------------------------------*/
763 IN P_ADAPTER_T prAdapter,
764 IN ENUM_SCAN_STATE_T eNextState
767 /*----------------------------------------------------------------------------*/
768 /* Command Routines */
769 /*----------------------------------------------------------------------------*/
772 IN P_ADAPTER_T prAdapter
777 IN P_ADAPTER_T prAdapter
780 /*----------------------------------------------------------------------------*/
781 /* RX Event Handling */
782 /*----------------------------------------------------------------------------*/
785 IN P_ADAPTER_T prAdapter,
786 IN P_EVENT_SCAN_DONE prScanDone
789 /*----------------------------------------------------------------------------*/
790 /* Mailbox Message Handling */
791 /*----------------------------------------------------------------------------*/
794 IN P_ADAPTER_T prAdapter,
795 IN P_MSG_HDR_T prMsgHdr
800 IN P_ADAPTER_T prAdapter,
801 IN P_MSG_HDR_T prMsgHdr
805 scnFsmHandleScanMsg (
806 IN P_ADAPTER_T prAdapter,
807 IN P_MSG_SCN_SCAN_REQ prScanReqMsg
811 scnFsmHandleScanMsgV2 (
812 IN P_ADAPTER_T prAdapter,
813 IN P_MSG_SCN_SCAN_REQ_V2 prScanReqMsg
817 scnFsmRemovePendingMsg (
818 IN P_ADAPTER_T prAdapter,
820 IN UINT_8 ucNetTypeIndex
823 /*----------------------------------------------------------------------------*/
824 /* Mailbox Message Generation */
825 /*----------------------------------------------------------------------------*/
827 scnFsmGenerateScanDoneMsg (
828 IN P_ADAPTER_T prAdapter,
830 IN UINT_8 ucNetTypeIndex,
831 IN ENUM_SCAN_STATUS eScanStatus
834 /*----------------------------------------------------------------------------*/
835 /* Query for sparse channel */
836 /*----------------------------------------------------------------------------*/
838 scnQuerySparseChannel (
839 IN P_ADAPTER_T prAdapter,
840 P_ENUM_BAND_T prSparseBand,
841 PUINT_8 pucSparseChannel