Home | History | Annotate | Download | only in MacServices
      1 /*
      2  * ScanSrvSM.h
      3  *
      4  * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
      5  * All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  *
     11  *  * Redistributions of source code must retain the above copyright
     12  *    notice, this list of conditions and the following disclaimer.
     13  *  * Redistributions in binary form must reproduce the above copyright
     14  *    notice, this list of conditions and the following disclaimer in
     15  *    the documentation and/or other materials provided with the
     16  *    distribution.
     17  *  * Neither the name Texas Instruments nor the names of its
     18  *    contributors may be used to endorse or promote products derived
     19  *    from this software without specific prior written permission.
     20  *
     21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32  */
     33 
     34 /** \file ScanSrvSM.h
     35  *  \brief This file include definitions for the scan SRV SM module.
     36  *  \author Ronen Kalish
     37  *  \date 10-Jan-2005
     38  */
     39 
     40 #ifndef __SCANSRVSM_H__
     41 #define __SCANSRVSM_H__
     42 
     43 #include "fsm.h"
     44 
     45 /*
     46  ***********************************************************************
     47  *	Constant definitions.
     48  ***********************************************************************
     49  */
     50 
     51 /*
     52  ***********************************************************************
     53  *	Enums.
     54  ***********************************************************************
     55  */
     56 
     57 /** \enum scan_SRVSMEvents_e
     58  * \brief enumerates the different scan SRV SM events
     59  */
     60 typedef enum
     61 {
     62     SCAN_SRV_EVENT_REQUEST_PS = 0,
     63     SCAN_SRV_EVENT_PS_FAIL,
     64     SCAN_SRV_EVENT_PS_SUCCESS,
     65     SCAN_SRV_EVENT_PS_PEND,
     66     SCAN_SRV_EVENT_STOP_SCAN,
     67     SCAN_SRV_EVENT_FW_RESET,
     68     SCAN_SRV_EVENT_TIMER_EXPIRED,
     69     SCAN_SRV_EVENT_SCAN_COMPLETE,
     70     SCAN_SRV_NUM_OF_EVENTS
     71 } scan_SRVSMEvents_e;
     72 
     73 /** \enum scan_SRVSMStates_e
     74  * \brief enumerates the different scan SRV SM states
     75  */
     76 typedef enum
     77 {
     78 	SCAN_SRV_STATE_IDLE = 0,
     79     SCAN_SRV_STATE_PS_WAIT,
     80 	SCAN_SRV_STATE_SCANNING,
     81 	SCAN_SRV_STATE_STOPPING,
     82 	SCAN_SRV_STATE_PS_EXIT,
     83 	SCAN_SRV_NUM_OF_STATES
     84 } scan_SRVSMStates_e;
     85 
     86 /*
     87  ***********************************************************************
     88  *	Typedefs.
     89  ***********************************************************************
     90  */
     91 
     92 /*
     93  ***********************************************************************
     94  *	Structure definitions.
     95  ***********************************************************************
     96  */
     97 
     98 /*
     99  ***********************************************************************
    100  *	External data definitions.
    101  ***********************************************************************
    102  */
    103 
    104 /*
    105  ***********************************************************************
    106  *	External functions definitions
    107  ***********************************************************************
    108  */
    109 
    110 /**
    111  * \author Ronen Kalish\n
    112  * \date 10-Jan-2005\n
    113  * \brief Initialize the scan SRV SM.
    114  *
    115  * Function Scope \e Public.\n
    116  * \param hScanSrv - handle to the scan SRV object.\n
    117  * \return TI_OK if successful, TI_NOK otherwise.\n
    118  */
    119 TI_STATUS scanSRVSM_init( TI_HANDLE hScanSrv );
    120 
    121 /**
    122  * \author Ronen Kalish\n
    123  * \date 10-Jan-2005\n
    124  * \brief Processes an event.
    125  *
    126  * Function Scope \e Public.\n
    127  * \param hScanSrv - handle to the scan SRV object.\n
    128  * \param currentState - the current scan SRV SM state.\n
    129  * \param event - the event to handle.\n
    130  * \return TI_OK if successful, TI_NOK otherwise.\n
    131  */
    132 TI_STATUS scanSRVSM_SMEvent( TI_HANDLE hScanSrv, scan_SRVSMStates_e* currentState,
    133                              scan_SRVSMEvents_e event );
    134 
    135 /**
    136  * \author Ronen Kalish\n
    137  * \date 10-Jan-2005\n
    138  * \brief Request to enter driver mode from the power manager module.\n
    139  *
    140  * Function Scope \e Private.\n
    141  * \param hScanSrv - handle to the scan SRV object.\n
    142  * \return TI_OK if successful, TI_NOK otherwise.\n
    143  */
    144 TI_STATUS scanSRVSM_requestPS( TI_HANDLE hScanSrv );
    145 
    146 /**
    147  * \author Yuval Adler\n
    148  * \date 6-Oct-2005\n
    149  * \brief Request to release PS mode from the PowerSRV , and wait for answer.\n
    150  *
    151  * Function Scope \e Private.\n
    152  * \param hScanSrv - handle to the scan SRV object.\n
    153  * \return TI_OK if successful, TI_NOK otherwise.\n
    154  */
    155 TI_STATUS scanSRVSM_releasePS( TI_HANDLE hScanSrv );
    156 
    157 /**
    158  * \author Ronen Kalish\n
    159  * \date 10-Jan-2005\n
    160  * \brief Send the scan command to the firmware.\n
    161  *
    162  * Function Scope \e Private.\n
    163  * \param hScanSrv - handle to the scan SRV object.\n
    164  * \return TI_OK if successful, TI_NOK otherwise.\n
    165  */
    166 TI_STATUS scanSRVSM_startActualScan( TI_HANDLE hScanSrv );
    167 
    168 /**
    169  * \author Ronen Kalish\n
    170  * \date 10-Jan-2005\n
    171  * \brief Send a stop scan command to the firmware.\n
    172  *
    173  * Function Scope \e Private.\n
    174  * \param hScanSrv - handle to the scan SRV object.\n
    175  * \return TI_OK if successful, TI_NOK otherwise.\n
    176  */
    177 TI_STATUS scanSRVSM_stopActualScan( TI_HANDLE hScanSrv );
    178 
    179 /**
    180  * \author Ronen Kalish\n
    181  * \date 10-Jan-2005\n
    182  * \brief Notifies scan complete to upper layer.\n
    183  *
    184  * Function Scope \e Private.\n
    185  * \param hScanSrv - handle to the scan SRV object.\n
    186  * \return TI_OK if successful, TI_NOK otherwise.\n
    187  */
    188 TI_STATUS scanSRVSM_notifyScanComplete( TI_HANDLE hScanSrv );
    189 
    190 /**
    191  * \author Ronen Kalish\n
    192  * \date 10-Jan-2005\n
    193  * \brief Handles a timer expiry event - starts a recovery process.
    194  *
    195  * Function Scope \e Private.\n
    196  * \param hScanSrv - handle to the scan SRV object.\n
    197  * \return TI_OK if successful, TI_NOK otherwise.\n
    198  */
    199 TI_STATUS scanSRVSM_handleTimerExpiry( TI_HANDLE hScanSrv );
    200 
    201 /**
    202  * \author Ronen Kalish\n
    203  * \date 17-Jan-2005\n
    204  * \brief Handles a FW reset event (one that was detected outside the scan SRV) by stopping the timer.
    205  *
    206  * Function Scope \e Private.\n
    207  * \param hScanSrv - handle to the scan SRV object.\n
    208  * \return TI_OK if successful, TI_NOK otherwise.\n
    209  */
    210 TI_STATUS scanSRVSM_handleRecovery( TI_HANDLE hScanSrv );
    211 
    212 #endif /* __SCANSRVSM_H__ */
    213