import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / connectivity / combo / drv_wlan / mt6620 / wlan / include / mgmt / ais_fsm.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/mgmt/ais_fsm.h#1 $
3 */
4
5 /*! \file ais_fsm.h
6 \brief Declaration of functions and finite state machine for AIS Module.
7
8 Declaration of functions and finite state machine for AIS Module.
9 */
10
11
12
13 /*
14 ** $Log: ais_fsm.h $
15 **
16 ** 02 07 2014 yuche.tsai
17 ** [ALPS01425175] [6589][6628][KK][S5/Altai][W] MT6589 Roaming???20?, Pass Criteria?14?
18 ** Shorten Beacon Timeout indication time from 3 sec to 1 sec.
19 ** Shorten Disconnect indication time to supplicant from 10 sec to 2 sec.
20 ** Davinci Label:
21 ** MT6620 E3: 20140207_ALPS_WIFI_FW_MT6620E3_V1_19.
22 ** MT6628: 20140207_ALPS_WIFI_FW_MT6628_V1_30.
23 *
24 * 11 22 2011 cp.wu
25 * [WCXRP00001120] [MT6620 Wi-Fi][Driver] Modify roaming to AIS state transition from synchronous to asynchronous approach to avoid incomplete state termination
26 * 1. change RDD related compile option brace position.
27 * 2. when roaming is triggered, ask AIS to transit immediately only when AIS is in Normal TR state without join timeout timer ticking
28 * 3. otherwise, insert AIS_REQUEST into pending request queue
29 *
30 * 04 25 2011 cp.wu
31 * [WCXRP00000676] [MT6620 Wi-Fi][Driver] AIS to reduce request channel period from 5 seconds to 2 seconds
32 * channel interval for joining is shortened to 2 seconds to avoid interruption of concurrent operating network.
33 *
34 * 02 26 2011 tsaiyuan.hsu
35 * [WCXRP00000391] [MT6620 Wi-Fi][FW] Add Roaming Support
36 * not send disassoc or deauth to leaving AP so as to improve performace of roaming.
37 *
38 * 02 22 2011 cp.wu
39 * [WCXRP00000487] [MT6620 Wi-Fi][Driver][AIS] Serve scan and connect request with a queue-based approach to improve response time for scanning request
40 * handle SCAN and RECONNECT with a FIFO approach.
41 *
42 * 01 27 2011 tsaiyuan.hsu
43 * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
44 * add roaming fsm
45 * 1. not support 11r, only use strength of signal to determine roaming.
46 * 2. not enable CFG_SUPPORT_ROAMING until completion of full test.
47 * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw
48 * 4. assume that change of link quality in smooth way.
49 *
50 * 01 14 2011 cp.wu
51 * [WCXRP00000359] [MT6620 Wi-Fi][Driver] add an extra state to ensure DEAUTH frame is always sent
52 * Add an extra state to guarantee DEAUTH frame is sent then connect to new BSS.
53 * This change is due to WAPI AP needs DEAUTH frame as a necessary step in handshaking protocol.
54 *
55 * 11 25 2010 cp.wu
56 * [WCXRP00000208] [MT6620 Wi-Fi][Driver] Add scanning with specified SSID to AIS FSM
57 * add scanning with specified SSID facility to AIS-FSM
58 *
59 * 11 01 2010 cp.wu
60 * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000150] [MT6620 Wi-Fi][Driver] Add implementation for querying current TX rate from firmware auto rate module
61 * 1) Query link speed (TX rate) from firmware directly with buffering mechanism to reduce overhead
62 * 2) Remove CNM CH-RECOVER event handling
63 * 3) cfg read/write API renamed with kal prefix for unified naming rules.
64 *
65 * 09 06 2010 cp.wu
66 * NULL
67 * 1) initialize for correct parameter even for disassociation.
68 * 2) AIS-FSM should have a limit on trials to build connection
69 *
70 * 09 03 2010 kevin.huang
71 * NULL
72 * Refine #include sequence and solve recursive/nested #include issue
73 *
74 * 08 25 2010 cp.wu
75 * NULL
76 * [AIS-FSM] IBSS no longer needs to acquire channel for beaconing, RLM/CNM will handle the channel switching when BSS information is updated
77 *
78 * 08 12 2010 kevin.huang
79 * NULL
80 * Refine bssProcessProbeRequest() and bssSendBeaconProbeResponse()
81 *
82 * 08 12 2010 cp.wu
83 * NULL
84 * [AIS-FSM] honor registry setting for adhoc running mode. (A/B/G)
85 *
86 * 08 03 2010 cp.wu
87 * NULL
88 * surpress compilation warning.
89 *
90 * 07 30 2010 cp.wu
91 * NULL
92 * 1) BoW wrapper: use definitions instead of hard-coded constant for error code
93 * 2) AIS-FSM: eliminate use of desired RF parameters, use prTargetBssDesc instead
94 * 3) add handling for RX_PKT_DESTINATION_HOST_WITH_FORWARD for GO-broadcast frames
95 *
96 * 07 26 2010 cp.wu
97 *
98 * AIS-FSM: when scan request is coming in the 1st 5 seconds of channel privilege period, just pend it til 5-sec. period finishes
99 *
100 * 07 26 2010 cp.wu
101 *
102 * AIS-FSM FIX: return channel privilege even when the privilege is not granted yet
103 * QM: qmGetFrameAction() won't assert when corresponding STA-REC index is not found
104 *
105 * 07 23 2010 cp.wu
106 *
107 * add AIS-FSM handling for beacon timeout event.
108 *
109 * 07 21 2010 cp.wu
110 *
111 * separate AIS-FSM states into different cases of channel request.
112 *
113 * 07 21 2010 cp.wu
114 *
115 * 1) change BG_SCAN to ONLINE_SCAN for consistent term
116 * 2) only clear scanning result when scan is permitted to do
117 *
118 * 07 19 2010 cp.wu
119 *
120 * [WPD00003833] [MT6620 and MT5931] Driver migration.
121 * Add Ad-Hoc support to AIS-FSM
122 *
123 * 07 14 2010 cp.wu
124 *
125 * [WPD00003833] [MT6620 and MT5931] Driver migration.
126 * Refine AIS-FSM by divided into more states
127 *
128 * 07 09 2010 cp.wu
129 *
130 * 1) separate AIS_FSM state for two kinds of scanning. (OID triggered scan, and scan-for-connection)
131 * 2) eliminate PRE_BSS_DESC_T, Beacon/PrebResp is now parsed in single pass
132 * 3) implment DRV-SCN module, currently only accepts single scan request, other request will be directly dropped by returning BUSY
133 *
134 * 07 08 2010 cp.wu
135 *
136 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
137 *
138 * 07 01 2010 cp.wu
139 * [WPD00003833][MT6620 and MT5931] Driver migration
140 * AIS-FSM integration with CNM channel request messages
141 *
142 * 07 01 2010 cp.wu
143 * [WPD00003833][MT6620 and MT5931] Driver migration
144 * implementation of DRV-SCN and related mailbox message handling.
145 *
146 * 06 10 2010 cp.wu
147 * [WPD00003833][MT6620 and MT5931] Driver migration
148 * add buildable & linkable ais_fsm.c
149 *
150 * related reference are still waiting to be resolved
151 *
152 * 06 09 2010 cp.wu
153 * [WPD00003833][MT6620 and MT5931] Driver migration
154 * add definitions for module migration.
155 *
156 * 06 07 2010 cp.wu
157 * [WPD00003833][MT6620 and MT5931] Driver migration
158 * add aa_fsm.h, ais_fsm.h, bss.h, mib.h and scan.h.
159 *
160 * 05 12 2010 kevin.huang
161 * [BORA00000794][WIFISYS][New Feature]Power Management Support
162 * Add Power Management - Legacy PS-POLL support.
163 *
164 * 04 23 2010 wh.su
165 * [BORA00000605][WIFISYS] Phase3 Integration
166 * reduce the backgroud ssid idle time min and max value
167 *
168 * 04 19 2010 kevin.huang
169 * [BORA00000714][WIFISYS][New Feature]Beacon Timeout Support
170 * Add Beacon Timeout Support
171 * * and will send Null frame to diagnose connection
172 *
173 * 03 16 2010 kevin.huang
174 * [BORA00000663][WIFISYS][New Feature] AdHoc Mode Support
175 * Add AdHoc Mode
176 *
177 * 03 10 2010 kevin.huang
178 * [BORA00000654][WIFISYS][New Feature] CNM Module - Ch Manager Support
179 *
180 * * Add Channel Manager for arbitration of JOIN and SCAN Req
181 *
182 * 02 26 2010 kevin.huang
183 * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
184 * Remove CFG_TEST_VIRTUAL_CMD and add support of Driver STA_RECORD_T activation
185 *
186 * 02 23 2010 kevin.huang
187 * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
188 * Support dynamic channel selection
189 *
190 * 02 04 2010 kevin.huang
191 * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
192 * Add AAA Module Support, Revise Net Type to Net Type Index for array lookup
193 *
194 * 01 11 2010 kevin.huang
195 * [BORA00000018]Integrate WIFI part into BORA for the 1st time
196 * Add Deauth and Disassoc Handler
197 *
198 * 01 07 2010 kevin.huang
199 * [BORA00000018]Integrate WIFI part into BORA for the 1st time
200 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
201 * Add Media disconnect indication and related postpone functions
202 *
203 * Dec 3 2009 mtk01461
204 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
205 * Add aisFsmRunEventJoinComplete()
206 *
207 * Nov 25 2009 mtk01461
208 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
209 * Add Virtual CMD & RESP for testing CMD PATH
210 *
211 * Nov 23 2009 mtk01461
212 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
213 * add aisFsmInitializeConnectionSettings()
214 *
215 * Nov 20 2009 mtk01461
216 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
217 * Add CFG_TEST_MGMT_FSM for aisFsmTest()
218 *
219 * Nov 18 2009 mtk01104
220 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
221 * Add function prototype of aisFsmInit()
222 *
223 * Nov 16 2009 mtk01461
224 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
225 *
226 */
227
228 #ifndef _AIS_FSM_H
229 #define _AIS_FSM_H
230
231 /*******************************************************************************
232 * C O M P I L E R F L A G S
233 ********************************************************************************
234 */
235
236 /*******************************************************************************
237 * E X T E R N A L R E F E R E N C E S
238 ********************************************************************************
239 */
240
241 /*******************************************************************************
242 * C O N S T A N T S
243 ********************************************************************************
244 */
245 #define AIS_BG_SCAN_INTERVAL_MIN_SEC 2 /* 30 // exponential to 960 */
246 #define AIS_BG_SCAN_INTERVAL_MAX_SEC 2 /* 960 // 16min */
247
248 #define AIS_DELAY_TIME_OF_DISCONNECT_SEC 2
249
250 #define AIS_IBSS_ALONE_TIMEOUT_SEC 20 /* seconds */
251
252 #define AIS_BEACON_TIMEOUT_COUNT_ADHOC 30
253 #define AIS_BEACON_TIMEOUT_COUNT_INFRA 10
254 #define AIS_BEACON_TIMEOUT_GUARD_TIME_SEC 1 /* Second */
255
256 #define AIS_BEACON_MAX_TIMEOUT_TU 100
257 #define AIS_BEACON_MIN_TIMEOUT_TU 5
258 #define AIS_BEACON_MAX_TIMEOUT_VALID TRUE
259 #define AIS_BEACON_MIN_TIMEOUT_VALID TRUE
260
261 #define AIS_BMC_MAX_TIMEOUT_TU 100
262 #define AIS_BMC_MIN_TIMEOUT_TU 5
263 #define AIS_BMC_MAX_TIMEOUT_VALID TRUE
264 #define AIS_BMC_MIN_TIMEOUT_VALID TRUE
265
266 #define AIS_JOIN_CH_GRANT_THRESHOLD 10
267 #define AIS_JOIN_CH_REQUEST_INTERVAL 2000
268
269 /*******************************************************************************
270 * D A T A T Y P E S
271 ********************************************************************************
272 */
273 typedef enum _ENUM_AIS_STATE_T {
274 AIS_STATE_IDLE = 0,
275 AIS_STATE_SEARCH,
276 AIS_STATE_SCAN,
277 AIS_STATE_ONLINE_SCAN,
278 AIS_STATE_LOOKING_FOR,
279 AIS_STATE_WAIT_FOR_NEXT_SCAN,
280 AIS_STATE_REQ_CHANNEL_JOIN,
281 AIS_STATE_JOIN,
282 AIS_STATE_IBSS_ALONE,
283 AIS_STATE_IBSS_MERGE,
284 AIS_STATE_NORMAL_TR,
285 AIS_STATE_DISCONNECTING,
286 AIS_STATE_NUM
287 } ENUM_AIS_STATE_T;
288
289
290 typedef struct _MSG_AIS_ABORT_T {
291 MSG_HDR_T rMsgHdr; /* Must be the first member */
292 UINT_8 ucReasonOfDisconnect;
293 BOOLEAN fgDelayIndication;
294 } MSG_AIS_ABORT_T, *P_MSG_AIS_ABORT_T;
295
296
297 typedef struct _MSG_AIS_IBSS_PEER_FOUND_T {
298 MSG_HDR_T rMsgHdr; /* Must be the first member */
299 UINT_8 ucNetTypeIndex;
300 BOOLEAN fgIsMergeIn; /* TRUE: Merge In, FALSE: Merge Out */
301 P_STA_RECORD_T prStaRec;
302 } MSG_AIS_IBSS_PEER_FOUND_T, *P_MSG_AIS_IBSS_PEER_FOUND_T;
303
304 typedef enum _ENUM_AIS_REQUEST_TYPE_T {
305 AIS_REQUEST_SCAN,
306 AIS_REQUEST_RECONNECT,
307 AIS_REQUEST_ROAMING_SEARCH,
308 AIS_REQUEST_ROAMING_CONNECT,
309 AIS_REQUEST_NUM
310 } ENUM_AIS_REQUEST_TYPE_T;
311
312 typedef struct _AIS_REQ_HDR_T {
313 LINK_ENTRY_T rLinkEntry;
314 ENUM_AIS_REQUEST_TYPE_T eReqType;
315 } AIS_REQ_HDR_T, *P_AIS_REQ_HDR_T;
316
317
318 typedef struct _AIS_FSM_INFO_T {
319 ENUM_AIS_STATE_T ePreviousState;
320 ENUM_AIS_STATE_T eCurrentState;
321
322 BOOLEAN fgTryScan;
323
324 BOOLEAN fgIsInfraChannelFinished;
325 BOOLEAN fgIsChannelRequested;
326 BOOLEAN fgIsChannelGranted;
327
328 #if CFG_SUPPORT_ROAMING
329 BOOLEAN fgIsRoamingScanPending;
330 #endif /* CFG_SUPPORT_ROAMING */
331
332 UINT_8 ucAvailableAuthTypes; /* Used for AUTH_MODE_AUTO_SWITCH */
333
334 P_BSS_DESC_T prTargetBssDesc; /* For destination */
335
336 P_STA_RECORD_T prTargetStaRec; /* For JOIN Abort */
337
338 UINT_32 u4SleepInterval;
339
340 TIMER_T rBGScanTimer;
341
342 TIMER_T rIbssAloneTimer;
343
344 TIMER_T rIndicationOfDisconnectTimer;
345
346 TIMER_T rJoinTimeoutTimer;
347
348 UINT_8 ucSeqNumOfReqMsg;
349 UINT_8 ucSeqNumOfChReq;
350 UINT_8 ucSeqNumOfScanReq;
351
352 UINT_32 u4ChGrantedInterval;
353
354 UINT_8 ucConnTrialCount;
355
356 UINT_8 ucScanSSIDLen;
357 UINT_8 aucScanSSID[ELEM_MAX_LEN_SSID];
358
359 UINT_32 u4ScanIELength;
360 UINT_8 aucScanIEBuf[MAX_IE_LENGTH];
361
362 /* Pending Request List */
363 LINK_T rPendingReqList;
364
365 } AIS_FSM_INFO_T, *P_AIS_FSM_INFO_T;
366
367
368 /*******************************************************************************
369 * P U B L I C D A T A
370 ********************************************************************************
371 */
372
373 /*******************************************************************************
374 * P R I V A T E D A T A
375 ********************************************************************************
376 */
377
378 /*******************************************************************************
379 * M A C R O S
380 ********************************************************************************
381 */
382 #define aisChangeMediaState(_prAdapter, _eNewMediaState) \
383 (_prAdapter->rWifiVar.arBssInfo[NETWORK_TYPE_AIS_INDEX].eConnectionState = (_eNewMediaState));
384
385
386 /*******************************************************************************
387 * F U N C T I O N D E C L A R A T I O N S
388 ********************************************************************************
389 */
390 VOID aisInitializeConnectionSettings(IN P_ADAPTER_T prAdapter, IN P_REG_INFO_T prRegInfo);
391
392 VOID aisFsmInit(IN P_ADAPTER_T prAdapter);
393
394 VOID aisFsmUninit(IN P_ADAPTER_T prAdapter);
395
396 VOID aisFsmStateInit_JOIN(IN P_ADAPTER_T prAdapter, P_BSS_DESC_T prBssDesc);
397
398 BOOLEAN aisFsmStateInit_RetryJOIN(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
399
400 VOID aisFsmStateInit_IBSS_ALONE(IN P_ADAPTER_T prAdapter);
401
402 VOID aisFsmStateInit_IBSS_MERGE(IN P_ADAPTER_T prAdapter, P_BSS_DESC_T prBssDesc);
403
404 VOID
405 aisFsmStateAbort(IN P_ADAPTER_T prAdapter, UINT_8 ucReasonOfDisconnect, BOOLEAN fgDelayIndication);
406
407 VOID aisFsmStateAbort_JOIN(IN P_ADAPTER_T prAdapter);
408
409 VOID aisFsmStateAbort_SCAN(IN P_ADAPTER_T prAdapter);
410
411 VOID aisFsmStateAbort_NORMAL_TR(IN P_ADAPTER_T prAdapter);
412
413 VOID aisFsmStateAbort_IBSS(IN P_ADAPTER_T prAdapter);
414
415 VOID aisFsmSteps(IN P_ADAPTER_T prAdapter, ENUM_AIS_STATE_T eNextState);
416
417 /*----------------------------------------------------------------------------*/
418 /* Mailbox Message Handling */
419 /*----------------------------------------------------------------------------*/
420 VOID aisFsmRunEventScanDone(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
421
422 VOID aisFsmRunEventAbort(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
423
424 VOID aisFsmRunEventJoinComplete(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
425
426 VOID aisFsmRunEventFoundIBSSPeer(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
427
428 /*----------------------------------------------------------------------------*/
429 /* Handling for Ad-Hoc Network */
430 /*----------------------------------------------------------------------------*/
431 VOID aisFsmCreateIBSS(IN P_ADAPTER_T prAdapter);
432
433 VOID aisFsmMergeIBSS(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
434
435 /*----------------------------------------------------------------------------*/
436 /* Handling of Incoming Mailbox Message from CNM */
437 /*----------------------------------------------------------------------------*/
438 VOID aisFsmRunEventChGrant(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
439
440
441 /*----------------------------------------------------------------------------*/
442 /* Generating Outgoing Mailbox Message to CNM */
443 /*----------------------------------------------------------------------------*/
444 VOID aisFsmReleaseCh(IN P_ADAPTER_T prAdapter);
445
446
447 /*----------------------------------------------------------------------------*/
448 /* Event Indication */
449 /*----------------------------------------------------------------------------*/
450 VOID
451 aisIndicationOfMediaStateToHost(IN P_ADAPTER_T prAdapter,
452 ENUM_PARAM_MEDIA_STATE_T eConnectionState,
453 BOOLEAN fgDelayIndication);
454
455 VOID aisPostponedEventOfDisconnTimeout(IN P_ADAPTER_T prAdapter, UINT_32 u4Param);
456
457 VOID
458 aisUpdateBssInfoForJOIN(IN P_ADAPTER_T prAdapter,
459 P_STA_RECORD_T prStaRec, P_SW_RFB_T prAssocRspSwRfb);
460
461 VOID aisUpdateBssInfoForCreateIBSS(IN P_ADAPTER_T prAdapter);
462
463 VOID aisUpdateBssInfoForMergeIBSS(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
464
465 BOOLEAN
466 aisValidateProbeReq(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb, OUT PUINT_32 pu4ControlFlags);
467
468 /*----------------------------------------------------------------------------*/
469 /* Disconnection Handling */
470 /*----------------------------------------------------------------------------*/
471 VOID aisFsmDisconnect(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgDelayIndication);
472
473
474 /*----------------------------------------------------------------------------*/
475 /* Event Handling */
476 /*----------------------------------------------------------------------------*/
477 VOID aisBssBeaconTimeout(IN P_ADAPTER_T prAdapter);
478
479 WLAN_STATUS
480 aisDeauthXmitComplete(IN P_ADAPTER_T prAdapter,
481 IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
482
483 #if CFG_SUPPORT_ROAMING
484 VOID aisFsmRunEventRoamingDiscovery(IN P_ADAPTER_T prAdapter, UINT_32 u4ReqScan);
485
486 ENUM_AIS_STATE_T aisFsmRoamingScanResultsUpdate(IN P_ADAPTER_T prAdapter);
487
488 VOID aisFsmRoamingDisconnectPrevAP(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prTargetStaRec);
489
490 VOID
491 aisUpdateBssInfoForRoamingAP(IN P_ADAPTER_T prAdapter,
492 IN P_STA_RECORD_T prStaRec, IN P_SW_RFB_T prAssocRspSwRfb);
493 #endif /*CFG_SUPPORT_ROAMING */
494
495 /*----------------------------------------------------------------------------*/
496 /* Timeout Handling */
497 /*----------------------------------------------------------------------------*/
498 VOID aisFsmRunEventBGSleepTimeOut(IN P_ADAPTER_T prAdapter, UINT_32 u4Param);
499
500 VOID aisFsmRunEventIbssAloneTimeOut(IN P_ADAPTER_T prAdapter, UINT_32 u4Param);
501
502 VOID aisFsmRunEventJoinTimeout(IN P_ADAPTER_T prAdapter, UINT_32 u4Param);
503
504 /*----------------------------------------------------------------------------*/
505 /* OID/IOCTL Handling */
506 /*----------------------------------------------------------------------------*/
507 VOID
508 aisFsmScanRequest(IN P_ADAPTER_T prAdapter,
509 IN P_PARAM_SSID_T prSsid, IN PUINT_8 pucIe, IN UINT_32 u4IeLength);
510
511 /*----------------------------------------------------------------------------*/
512 /* Internal State Checking */
513 /*----------------------------------------------------------------------------*/
514 BOOLEAN
515 aisFsmIsRequestPending(IN P_ADAPTER_T prAdapter,
516 IN ENUM_AIS_REQUEST_TYPE_T eReqType, IN BOOLEAN bRemove);
517
518 P_AIS_REQ_HDR_T aisFsmGetNextRequest(IN P_ADAPTER_T prAdapter);
519
520 BOOLEAN aisFsmInsertRequest(IN P_ADAPTER_T prAdapter, IN ENUM_AIS_REQUEST_TYPE_T eReqType);
521
522 VOID aisFsmFlushRequest(IN P_ADAPTER_T prAdapter);
523
524
525 #if defined(CFG_TEST_MGMT_FSM) && (CFG_TEST_MGMT_FSM != 0)
526 VOID aisTest(VOID);
527 #endif /* CFG_TEST_MGMT_FSM */
528 /*******************************************************************************
529 * F U N C T I O N S
530 ********************************************************************************
531 */
532
533 #endif /* _AIS_FSM_H */