164064216a8433360745f69edddce19a606659163The Android Open Source Project/** \file ScanCncnRoamingContSM.h
264064216a8433360745f69edddce19a606659163The Android Open Source Project *  \brief This file include definitions for the scan concentrator continuous scan for roaming SM module.
364064216a8433360745f69edddce19a606659163The Android Open Source Project *  \author Ronen Kalish
464064216a8433360745f69edddce19a606659163The Android Open Source Project *  \date 02-Jan-2005
564064216a8433360745f69edddce19a606659163The Android Open Source Project */
664064216a8433360745f69edddce19a606659163The Android Open Source Project /****************************************************************************
764064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+**
864064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
964064216a8433360745f69edddce19a606659163The Android Open Source Project**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
1064064216a8433360745f69edddce19a606659163The Android Open Source Project**| All rights reserved.                                                  |**
1164064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
1264064216a8433360745f69edddce19a606659163The Android Open Source Project**| Redistribution and use in source and binary forms, with or without    |**
1364064216a8433360745f69edddce19a606659163The Android Open Source Project**| modification, are permitted provided that the following conditions    |**
1464064216a8433360745f69edddce19a606659163The Android Open Source Project**| are met:                                                              |**
1564064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
1664064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Redistributions of source code must retain the above copyright     |**
1764064216a8433360745f69edddce19a606659163The Android Open Source Project**|    notice, this list of conditions and the following disclaimer.      |**
1864064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Redistributions in binary form must reproduce the above copyright  |**
1964064216a8433360745f69edddce19a606659163The Android Open Source Project**|    notice, this list of conditions and the following disclaimer in    |**
2064064216a8433360745f69edddce19a606659163The Android Open Source Project**|    the documentation and/or other materials provided with the         |**
2164064216a8433360745f69edddce19a606659163The Android Open Source Project**|    distribution.                                                      |**
2264064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Neither the name Texas Instruments nor the names of its            |**
2364064216a8433360745f69edddce19a606659163The Android Open Source Project**|    contributors may be used to endorse or promote products derived    |**
2464064216a8433360745f69edddce19a606659163The Android Open Source Project**|    from this software without specific prior written permission.      |**
2564064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
2664064216a8433360745f69edddce19a606659163The Android Open Source Project**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
2764064216a8433360745f69edddce19a606659163The Android Open Source Project**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
2864064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
2964064216a8433360745f69edddce19a606659163The Android Open Source Project**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
3064064216a8433360745f69edddce19a606659163The Android Open Source Project**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
3164064216a8433360745f69edddce19a606659163The Android Open Source Project**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
3264064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
3364064216a8433360745f69edddce19a606659163The Android Open Source Project**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
3464064216a8433360745f69edddce19a606659163The Android Open Source Project**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
3564064216a8433360745f69edddce19a606659163The Android Open Source Project**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
3664064216a8433360745f69edddce19a606659163The Android Open Source Project**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
3764064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
3864064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+**
3964064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/
4064064216a8433360745f69edddce19a606659163The Android Open Source Project
4164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef __SCANCNCNROAMINGCONTSM_H__
4264064216a8433360745f69edddce19a606659163The Android Open Source Project#define __SCANCNCNROAMINGCONTSM_H__
4364064216a8433360745f69edddce19a606659163The Android Open Source Project
4464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "osApi.h"
4564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "ScanCncn.h"
4664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "fsm.h"
4764064216a8433360745f69edddce19a606659163The Android Open Source Project
4864064216a8433360745f69edddce19a606659163The Android Open Source Project/*
4964064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
5064064216a8433360745f69edddce19a606659163The Android Open Source Project *	Constant definitions.
5164064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
5264064216a8433360745f69edddce19a606659163The Android Open Source Project */
5364064216a8433360745f69edddce19a606659163The Android Open Source Project
5464064216a8433360745f69edddce19a606659163The Android Open Source Project/*
5564064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
5664064216a8433360745f69edddce19a606659163The Android Open Source Project *	Enums.
5764064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
5864064216a8433360745f69edddce19a606659163The Android Open Source Project */
5964064216a8433360745f69edddce19a606659163The Android Open Source Project
6064064216a8433360745f69edddce19a606659163The Android Open Source Project/** \enum scan_contSMEvents_e
6164064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief enumerates the different continuous scan for roaming SM events
6264064216a8433360745f69edddce19a606659163The Android Open Source Project */
6364064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef enum
6464064216a8433360745f69edddce19a606659163The Android Open Source Project{
6564064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_EVENT_START_SCAN = 0,
6664064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_EVENT_SCR_RUN,
6764064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_EVENT_SCR_PEND,
6864064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_EVENT_SCR_REJECT,
6964064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_EVENT_ABORT_SCAN,
7064064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_EVENT_FW_RESET,
7164064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_EVENT_STOP_SCAN,
7264064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_EVENT_SCAN_COMPLETE,
7364064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_NUM_OF_EVENTS
7464064216a8433360745f69edddce19a606659163The Android Open Source Project} scan_contSMEvents_e;
7564064216a8433360745f69edddce19a606659163The Android Open Source Project
7664064216a8433360745f69edddce19a606659163The Android Open Source Project/** \enum scan_contSMEvents_e
7764064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief enumerates the different continuous scan for roaming SM states
7864064216a8433360745f69edddce19a606659163The Android Open Source Project */
7964064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef enum
8064064216a8433360745f69edddce19a606659163The Android Open Source Project{
8164064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_STATE_IDLE = 0,
8264064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_STATE_SCR_REQUEST,
8364064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_STATE_SCR_WAIT,
8464064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_STATE_SCANNING,
8564064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_STATE_STOPPING,
8664064216a8433360745f69edddce19a606659163The Android Open Source Project    CONT_SCAN_NUM_OF_STATES
8764064216a8433360745f69edddce19a606659163The Android Open Source Project} scan_contSMStates_e;
8864064216a8433360745f69edddce19a606659163The Android Open Source Project
8964064216a8433360745f69edddce19a606659163The Android Open Source Project/*
9064064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
9164064216a8433360745f69edddce19a606659163The Android Open Source Project *	Typedefs.
9264064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
9364064216a8433360745f69edddce19a606659163The Android Open Source Project */
9464064216a8433360745f69edddce19a606659163The Android Open Source Project
9564064216a8433360745f69edddce19a606659163The Android Open Source Project/*
9664064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
9764064216a8433360745f69edddce19a606659163The Android Open Source Project *	Structure definitions.
9864064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
9964064216a8433360745f69edddce19a606659163The Android Open Source Project */
10064064216a8433360745f69edddce19a606659163The Android Open Source Project
10164064216a8433360745f69edddce19a606659163The Android Open Source Project/*
10264064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
10364064216a8433360745f69edddce19a606659163The Android Open Source Project *	External data definitions.
10464064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
10564064216a8433360745f69edddce19a606659163The Android Open Source Project */
10664064216a8433360745f69edddce19a606659163The Android Open Source Project
10764064216a8433360745f69edddce19a606659163The Android Open Source Project/*
10864064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
10964064216a8433360745f69edddce19a606659163The Android Open Source Project *	External functions definitions
11064064216a8433360745f69edddce19a606659163The Android Open Source Project ***********************************************************************
11164064216a8433360745f69edddce19a606659163The Android Open Source Project */
11264064216a8433360745f69edddce19a606659163The Android Open Source Project
11364064216a8433360745f69edddce19a606659163The Android Open Source Project/**
11464064216a8433360745f69edddce19a606659163The Android Open Source Project * \author Ronen Kalish\n
11564064216a8433360745f69edddce19a606659163The Android Open Source Project * \date 02-Jan-2005\n
11664064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief Initialize the scan concentrator continuous scan for roaming SM.
11764064216a8433360745f69edddce19a606659163The Android Open Source Project *
11864064216a8433360745f69edddce19a606659163The Android Open Source Project * Function Scope \e Public.\n
11964064216a8433360745f69edddce19a606659163The Android Open Source Project * \param hScanCncn - handle to the scan concentrator object.\n
12064064216a8433360745f69edddce19a606659163The Android Open Source Project * \return OK if successful, NOK otherwise.\n
12164064216a8433360745f69edddce19a606659163The Android Open Source Project */
12264064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS scanConcentratorRoamingContSM_init( TI_HANDLE hScanCncn );
12364064216a8433360745f69edddce19a606659163The Android Open Source Project
12464064216a8433360745f69edddce19a606659163The Android Open Source Project/**
12564064216a8433360745f69edddce19a606659163The Android Open Source Project * \author Ronen Kalish\n
12664064216a8433360745f69edddce19a606659163The Android Open Source Project * \date 02-Jan-2005\n
12764064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief Processes an event.
12864064216a8433360745f69edddce19a606659163The Android Open Source Project *
12964064216a8433360745f69edddce19a606659163The Android Open Source Project * Function Scope \e Public.\n
13064064216a8433360745f69edddce19a606659163The Android Open Source Project * \param hScanCncn - handle to the scan concentrator object.\n
13164064216a8433360745f69edddce19a606659163The Android Open Source Project * \param currentState - the current continuous scan for roaming SM state.\n
13264064216a8433360745f69edddce19a606659163The Android Open Source Project * \param event - the event to handle.\n
13364064216a8433360745f69edddce19a606659163The Android Open Source Project * \return OK if successful, NOK otherwise.\n
13464064216a8433360745f69edddce19a606659163The Android Open Source Project */
13564064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS scanConcentratorRoamingContSM_SMEvent( TI_HANDLE hScanCncn, scan_contSMStates_e* currentState,
13664064216a8433360745f69edddce19a606659163The Android Open Source Project                                         scan_contSMEvents_e event );
13764064216a8433360745f69edddce19a606659163The Android Open Source Project
13864064216a8433360745f69edddce19a606659163The Android Open Source Project/**
13964064216a8433360745f69edddce19a606659163The Android Open Source Project * \author Ronen Kalish\n
14064064216a8433360745f69edddce19a606659163The Android Open Source Project * \date 02-Jan-2005\n
14164064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief SM action - handles a start scan event (by requesting the SCR)
14264064216a8433360745f69edddce19a606659163The Android Open Source Project *
14364064216a8433360745f69edddce19a606659163The Android Open Source Project * Function Scope \e Public.\n
14464064216a8433360745f69edddce19a606659163The Android Open Source Project * \param hScanCncn - handle to the scan concentrator object.\n
14564064216a8433360745f69edddce19a606659163The Android Open Source Project * \return OK if successful, NOK otherwise.\n
14664064216a8433360745f69edddce19a606659163The Android Open Source Project */
14764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS scanConcentratorRoamingContSM_requestSCR( TI_HANDLE hScanCncn );
14864064216a8433360745f69edddce19a606659163The Android Open Source Project
14964064216a8433360745f69edddce19a606659163The Android Open Source Project/**
15064064216a8433360745f69edddce19a606659163The Android Open Source Project * \author Ronen Kalish\n
15164064216a8433360745f69edddce19a606659163The Android Open Source Project * \date 02-Jan-2005\n
15264064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief SM action - handles a scr run event (by starting the actual scan)
15364064216a8433360745f69edddce19a606659163The Android Open Source Project *
15464064216a8433360745f69edddce19a606659163The Android Open Source Project * Function Scope \e Public.\n
15564064216a8433360745f69edddce19a606659163The Android Open Source Project * \param hScanCncn - handle to the scan concentrator object.\n
15664064216a8433360745f69edddce19a606659163The Android Open Source Project * \return OK if successful, NOK otherwise.\n
15764064216a8433360745f69edddce19a606659163The Android Open Source Project */
15864064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS scanConcentratorRoamingContSM_startScan( TI_HANDLE hScanCncn );
15964064216a8433360745f69edddce19a606659163The Android Open Source Project
16064064216a8433360745f69edddce19a606659163The Android Open Source Project/**
16164064216a8433360745f69edddce19a606659163The Android Open Source Project * \author Ronen Kalish\n
16264064216a8433360745f69edddce19a606659163The Android Open Source Project * \date 02-Jan-2005\n
16364064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief SM action - handles a stop scan or abort scan event (by stopping the actual scan)
16464064216a8433360745f69edddce19a606659163The Android Open Source Project *
16564064216a8433360745f69edddce19a606659163The Android Open Source Project * Function Scope \e Public.\n
16664064216a8433360745f69edddce19a606659163The Android Open Source Project * \param hScanCncn - handle to the scan concentrator object.\n
16764064216a8433360745f69edddce19a606659163The Android Open Source Project * \return OK if successful, NOK otherwise.\n
16864064216a8433360745f69edddce19a606659163The Android Open Source Project */
16964064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS scanConcentratorRoamingContSM_abortScan( TI_HANDLE hScanCncn );
17064064216a8433360745f69edddce19a606659163The Android Open Source Project
17164064216a8433360745f69edddce19a606659163The Android Open Source Project/**
17264064216a8433360745f69edddce19a606659163The Android Open Source Project * \author Ronen Kalish\n
17364064216a8433360745f69edddce19a606659163The Android Open Source Project * \date 10-July-2005\n
17464064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief SM action - handles a recovery event (calls the scan SRV abort on FW reset and than finishes scan)
17564064216a8433360745f69edddce19a606659163The Android Open Source Project *
17664064216a8433360745f69edddce19a606659163The Android Open Source Project * Function Scope \e Public.\n
17764064216a8433360745f69edddce19a606659163The Android Open Source Project * \param hScanCncn - handle to the scan concentrator object.\n
17864064216a8433360745f69edddce19a606659163The Android Open Source Project * \return OK if successful, NOK otherwise.\n
17964064216a8433360745f69edddce19a606659163The Android Open Source Project */
18064064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS scanConcentratorRoamingContSM_recoveryDuringScan( TI_HANDLE hScanCncn );
18164064216a8433360745f69edddce19a606659163The Android Open Source Project
18264064216a8433360745f69edddce19a606659163The Android Open Source Project/**
18364064216a8433360745f69edddce19a606659163The Android Open Source Project * \author Ronen Kalish\n
18464064216a8433360745f69edddce19a606659163The Android Open Source Project * \date 02-Jan-2005\n
18564064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief SM action - handles a scan complete event (by releasing the SCR and calling the scan complete CB).
18664064216a8433360745f69edddce19a606659163The Android Open Source Project *
18764064216a8433360745f69edddce19a606659163The Android Open Source Project * Function Scope \e Public.\n
18864064216a8433360745f69edddce19a606659163The Android Open Source Project * \param hScanCncn - handle to the scan concentrator object.\n
18964064216a8433360745f69edddce19a606659163The Android Open Source Project * \return OK if successful, NOK otherwise.\n
19064064216a8433360745f69edddce19a606659163The Android Open Source Project */
19164064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS scanConcentratorRoamingContSM_scanComplete( TI_HANDLE hScanCncn );
19264064216a8433360745f69edddce19a606659163The Android Open Source Project
19364064216a8433360745f69edddce19a606659163The Android Open Source Project/**
19464064216a8433360745f69edddce19a606659163The Android Open Source Project * \author Ronen Kalish\n
19564064216a8433360745f69edddce19a606659163The Android Open Source Project * \date 02-Jan-2005\n
19664064216a8433360745f69edddce19a606659163The Android Open Source Project * \brief SM action - handles a scan reject event (abort scan before scan acrually started)\n
19764064216a8433360745f69edddce19a606659163The Android Open Source Project *
19864064216a8433360745f69edddce19a606659163The Android Open Source Project * Function Scope \e Public.\n
19964064216a8433360745f69edddce19a606659163The Android Open Source Project * \param hScanCncn - handle to the scan concentrator object.\n
20064064216a8433360745f69edddce19a606659163The Android Open Source Project * \return OK if successful, NOK otherwise.\n
20164064216a8433360745f69edddce19a606659163The Android Open Source Project */
20264064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS scanConcentratorRoamingContSM_scanRejected( TI_HANDLE hScanCncn );
20364064216a8433360745f69edddce19a606659163The Android Open Source Project
20464064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* __SCANCNCNROAMINGCONTSM_H__ */
20564064216a8433360745f69edddce19a606659163The Android Open Source Project
206