blob: 158201221700e86e6727ea874031efd83ce1f771 [file] [log] [blame]
nxpandroidc7611652015-09-23 16:42:05 +05301/******************************************************************************
2 *
3 * Copyright (C) 2003-2014 Broadcom Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at:
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 ******************************************************************************/
18
nxpandroidc7611652015-09-23 16:42:05 +053019/******************************************************************************
20 *
21 * Protocol timer services.
22 *
23 ******************************************************************************/
24#ifndef NFA_SYS_PTIM_H
25#define NFA_SYS_PTIM_H
26
27#include "gki.h"
28
29/*****************************************************************************
30** Constants and data types
31*****************************************************************************/
32
nxpandroid8f6d0532017-07-12 18:25:30 +053033typedef struct {
34 TIMER_LIST_Q timer_queue; /* GKI timer queue */
35 int32_t period; /* Timer period in milliseconds */
36 uint32_t last_gki_ticks; /* GKI ticks since last time update called */
37 uint8_t timer_id; /* GKI timer id */
nxpandroidc7611652015-09-23 16:42:05 +053038} tPTIM_CB;
39
nxpandroidc7611652015-09-23 16:42:05 +053040/*****************************************************************************
41** Function Declarations
42*****************************************************************************/
43
44/*******************************************************************************
45**
46** Function nfa_sys_ptim_init
47**
48** Description Initialize a protocol timer service control block.
49**
50** Returns void
51**
52*******************************************************************************/
nxpandroid8f6d0532017-07-12 18:25:30 +053053extern void nfa_sys_ptim_init(tPTIM_CB* p_cb, uint16_t period,
54 uint8_t timer_id);
nxpandroidc7611652015-09-23 16:42:05 +053055
56/*******************************************************************************
57**
58** Function nfa_sys_ptim_timer_update
59**
60** Description Update the protocol timer list and handle expired timers.
61**
62** Returns void
63**
64*******************************************************************************/
nxpandroid8f6d0532017-07-12 18:25:30 +053065extern void nfa_sys_ptim_timer_update(tPTIM_CB* p_cb);
nxpandroidc7611652015-09-23 16:42:05 +053066
67/*******************************************************************************
68**
69** Function nfa_sys_ptim_start_timer
70**
71** Description Start a protocol timer for the specified amount
72** of time in milliseconds.
73**
74** Returns void
75**
76*******************************************************************************/
nxpandroid8f6d0532017-07-12 18:25:30 +053077extern void nfa_sys_ptim_start_timer(tPTIM_CB* p_cb, TIMER_LIST_ENT* p_tle,
78 uint16_t type, int32_t timeout);
nxpandroidc7611652015-09-23 16:42:05 +053079
80/*******************************************************************************
81**
82** Function nfa_sys_ptim_stop_timer
83**
84** Description Stop a protocol timer.
85**
86** Returns void
87**
88*******************************************************************************/
nxpandroid8f6d0532017-07-12 18:25:30 +053089extern void nfa_sys_ptim_stop_timer(tPTIM_CB* p_cb, TIMER_LIST_ENT* p_tle);
nxpandroidc7611652015-09-23 16:42:05 +053090
nxpandroidc7611652015-09-23 16:42:05 +053091#endif /* NFA_SYS_PTIM_H */