hv: timer: restruct add_timer/del_timer API

add initialize_timer to initialize or reset a timer;
add_timer add timer to corresponding physical cpu timer list.
del_timer delete timer from corresponding physical cpu timer list.

Signed-off-by: Li, Fei1 <fei1.li@intel.com>
This commit is contained in:
Li, Fei1
2018-04-25 14:26:33 +08:00
committed by Jack Ren
parent be9f4ee9e6
commit 9bfa574a27
5 changed files with 97 additions and 258 deletions

View File

@@ -33,10 +33,27 @@
typedef int (*timer_handle_t)(void *);
long add_timer(timer_handle_t func, void *data, uint64_t deadline);
bool cancel_timer(long handle, int pcpu_id);
long update_timer(long handle, timer_handle_t func, void *data,
uint64_t deadline);
struct timer {
struct list_head node; /* link all timers */
uint64_t fire_tsc; /* tsc deadline to interrupt */
timer_handle_t func; /* callback if time reached */
void *priv_data; /* func private data */
};
static inline void initialize_timer(struct timer *timer,
timer_handle_t func,
void *priv_data,
uint64_t fire_tsc)
{
if (timer) {
timer->func = func;
timer->priv_data = priv_data;
timer->fire_tsc = fire_tsc;
}
}
int add_timer(struct timer *timer);
void del_timer(struct timer *timer);
int timer_softirq(int pcpu_id);
void timer_init(void);