/* * Copyright (C) 2010 NXP Semiconductors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /*! * \file phLlcNfc_Timer.h * \brief To create, start, stop and destroy timer. * * Project: NFC-FRI-1.1 * * $Date: Thu Jun 10 17:26:41 2010 $ * $Author: ing02260 $ * $Revision: 1.14 $ * $Aliases: NFC_FRI1.1_WK1023_R35_1 $ * */ #ifndef PHLLCNFC_TIMER_H #define PHLLCNFC_TIMER_H /** * \name LLC NFC state machine handling * * File: \ref phLlcNfc_StateMachine.h * */ /*@{*/ #define PH_LLCNFC_TIMER_FILEREVISION "$Revision: 1.14 $" /**< \ingroup grp_hal_nfc_llc_helper */ #define PH_LLCNFC_TIMER_FILEALIASES "$Aliases: NFC_FRI1.1_WK1023_R35_1 $" /**< \ingroup grp_hal_nfc_llc_helper */ /*@}*/ /*************************** Includes *******************************/ /*********************** End of includes ****************************/ /***************************** Macros *******************************/ #define PH_LLCNFC_CONNECTIONTIMER (0x00) /**< Timer for connection time out */ #define PH_LLCNFC_GUARDTIMER (0x01) /**< Timer for guard time out */ #define PH_LLCNFC_ACKTIMER (0x02) /**< Timer for ack time out */ #define PH_LLCNFC_MAX_RETRY_COUNT (0x03) /**< Retries */ /** Resolution value for the timer */ #define PH_LLCNFC_RESOLUTION TIMER_RESOLUTION /**< 0x05 Timer for connection time out value */ #define PH_LLCNFC_CONNECTION_TO_VALUE LINK_CONNECTION_TIMEOUT /**< 0x05 Timer for guard time out value */ #define PH_LLCNFC_GUARD_TO_VALUE LINK_GUARD_TIMEOUT #ifdef PIGGY_BACK #define PH_LLCNFC_ACK_TO_VALUE LINK_ACK_TIMEOUT #endif /* #ifdef PIGGY_BACK */ #ifdef LLC_RESET_DELAY #define LLC_URSET_DELAY_TIME_OUT LLC_RESET_DELAY #else #define LLC_URSET_DELAY_TIME_OUT 50 #endif /* */ /************************ End of macros *****************************/ /********************** Callback functions **************************/ /******************* End of Callback functions **********************/ /********************* Structures and enums *************************/ /****************** End of structures and enums *********************/ /******************** Function declarations *************************/ /** * \ingroup grp_hal_nfc_llc_helper * * \brief LLC timer functions \b Timer Init function * * \copydoc page_reg This is to store LLCs main context structure * * \param[in, out] psLlcCtxt Llc main structure information * * \retval NFCSTATUS_SUCCESS Operation successful. * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function is invalid. * */ NFCSTATUS phLlcNfc_TimerInit ( phLlcNfc_Context_t *psLlcCtxt ); /** * \ingroup grp_hal_nfc_llc_helper * * \brief LLC timer functions \b Timer UnInit function * * \copydoc page_reg This is to uninitialise all timer related information * * \param[in, out] psLlcCtxt Llc main structure information * * \retval NFCSTATUS_SUCCESS Operation successful. * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function is invalid. * */ void phLlcNfc_TimerUnInit ( phLlcNfc_Context_t *psLlcCtxt ); /** * \ingroup grp_hal_nfc_llc_helper * * \brief LLC timer functions \b Create timer function * * \copydoc page_reg creates all the timers in the LLC context * * */ void phLlcNfc_CreateTimers (void); /** * \ingroup grp_hal_nfc_llc_helper * * \brief LLC timer functions \b Start timer function * * \copydoc page_reg starts the timer type given by the user * * \param[in] TimerType Timer type to start * \param[in] ns_value Value of N(S) for which the timer is started * * \retval NFCSTATUS_SUCCESS Operation successful. * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function is invalid. * \retval Others Errors related to OsalNfc. * */ NFCSTATUS phLlcNfc_StartTimers ( uint8_t TimerType, uint8_t ns_value ); /** * \ingroup grp_hal_nfc_llc_helper * * \brief LLC timer functions \b Stop timer function * * \copydoc page_reg stop the timer type given by the user * * \param[in] TimerType Timer type to start * \param[in] no_of_gaurd_to_del Guard time-out count shall be decreased as and when * frame is removed * * */ void phLlcNfc_StopTimers ( uint8_t TimerType, uint8_t no_of_guard_to_del ); /** * \ingroup grp_hal_nfc_llc_helper * * \brief LLC timer functions \b Stop timer function * * \copydoc page_reg stop the timer type given by the user * * * * */ void phLlcNfc_StopAllTimers (void); /** * \ingroup grp_hal_nfc_llc_helper * * \brief LLC timer functions \b Delete timer function * * \copydoc page_reg deletes all the timers in the LLC context * * \retval NFCSTATUS_SUCCESS Operation successful. * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function is invalid. * \retval Others Errors related to OsalNfc. * */ void phLlcNfc_DeleteTimer (void); #ifdef LLC_URSET_NO_DELAY /* NO definition required */ #else /* #ifdef LLC_URSET_NO_DELAY */ void phLlcNfc_URSET_Delay_Notify ( uint32_t delay_id); #endif /* #ifdef LLC_URSET_NO_DELAY */ /****************** End of Function declarations ********************/ #endif /* PHLLCNFC_TIMER_H */