Files
retrobsd/tools/virtualmips/vp_timer.h
2014-04-09 14:27:18 +01:00

40 lines
1011 B
C

/*
* Copyright (C) yajin 2008<yajinzhou@gmail.com >
*
* This file is part of the virtualmips distribution.
* See LICENSE file for terms of the license.
*
*/
#ifndef __VP_TIMER_H__
#define __VP_TIMER_H__
#include "vp_clock.h"
#include "utils.h"
#define VP_TIMER_BASE 1000000000LL
typedef void vp_timer_cb (void *opaque);
struct vp_timer {
vp_clock_t *clock;
m_int64_t expire_time;
m_int64_t set_time;
vp_timer_cb *cb;
void *opaque;
struct vp_timer *next;
};
typedef struct vp_timer vp_timer_t;
extern vp_timer_t *active_timers[2];
vp_timer_t *vp_new_timer (vp_clock_t * clock, vp_timer_cb * cb, void *opaque);
void vp_free_timer (vp_timer_t * ts);
void vp_mod_timer (vp_timer_t * ts, m_int64_t expire_time);
void vp_del_timer (vp_timer_t * ts);
int vp_timer_pending (vp_timer_t * ts);
int vp_timer_expired (vp_timer_t * timer_head, m_int64_t current_time);
void vp_run_timers (vp_timer_t ** ptimer_head, m_int64_t current_time);
void init_timers (void);
#endif