/****************************************************************************** * * Copyright (C) 2003-2014 Broadcom Corporation * * 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. * ******************************************************************************/ /****************************************************************************** * * Protocol timer services. * ******************************************************************************/ #ifndef NFA_SYS_PTIM_H #define NFA_SYS_PTIM_H #include "gki.h" /***************************************************************************** ** Constants and data types *****************************************************************************/ typedef struct { TIMER_LIST_Q timer_queue; /* GKI timer queue */ int32_t period; /* Timer period in milliseconds */ uint32_t last_gki_ticks; /* GKI ticks since last time update called */ uint8_t timer_id; /* GKI timer id */ } tPTIM_CB; /***************************************************************************** ** Function Declarations *****************************************************************************/ /******************************************************************************* ** ** Function nfa_sys_ptim_init ** ** Description Initialize a protocol timer service control block. ** ** Returns void ** *******************************************************************************/ extern void nfa_sys_ptim_init(tPTIM_CB* p_cb, uint16_t period, uint8_t timer_id); /******************************************************************************* ** ** Function nfa_sys_ptim_timer_update ** ** Description Update the protocol timer list and handle expired timers. ** ** Returns void ** *******************************************************************************/ extern void nfa_sys_ptim_timer_update(tPTIM_CB* p_cb); /******************************************************************************* ** ** Function nfa_sys_ptim_start_timer ** ** Description Start a protocol timer for the specified amount ** of time in milliseconds. ** ** Returns void ** *******************************************************************************/ extern void nfa_sys_ptim_start_timer(tPTIM_CB* p_cb, TIMER_LIST_ENT* p_tle, uint16_t type, int32_t timeout); /******************************************************************************* ** ** Function nfa_sys_ptim_stop_timer ** ** Description Stop a protocol timer. ** ** Returns void ** *******************************************************************************/ extern void nfa_sys_ptim_stop_timer(tPTIM_CB* p_cb, TIMER_LIST_ENT* p_tle); #endif /* NFA_SYS_PTIM_H */