cputimer
static void tsc_cputimer_construct(struct cputimer *, sysclock_t);
static struct cputimer tsc_cputimer = {
tsc_cputimer_construct(struct cputimer *timer, sysclock_t oldclock)
acpi_hpet_early_construct(struct cputimer *timer, sysclock_t oldclock)
acpi_hpet_early_destruct(struct cputimer *timer)
acpi_hpet_construct(struct cputimer *timer, sysclock_t oldclock)
static void acpi_hpet_construct(struct cputimer *, sysclock_t);
static struct cputimer acpi_hpet_timer = {
acpi_timer_construct(struct cputimer *timer, sysclock_t oldclock)
static void acpi_timer_construct(struct cputimer *timer, sysclock_t oldclock);
static struct cputimer acpi_cputimer = {
hyperv_cputimer_construct(struct cputimer *timer, sysclock_t oldclock)
static void hyperv_cputimer_construct(struct cputimer *,
static struct cputimer hyperv_cputimer = {
hyperv_tsc_cputimer_construct(struct cputimer *timer, sysclock_t oldclock)
static void hyperv_tsc_cputimer_construct(struct cputimer *,
static struct cputimer hyperv_tsc_cputimer = {
cputimer_register(struct cputimer *timer)
struct cputimer *scan;
cputimer_deregister(struct cputimer *timer)
struct cputimer *scan;
struct cputimer *best;
SLIST_REMOVE(&cputimerhead, timer, cputimer, next);
cputimer_set_frequency(struct cputimer *timer, sysclock_t freq)
cputimer_default_construct(struct cputimer *cputimer, sysclock_t oldclock)
cputimer->base = oldclock;
cputimer_default_destruct(struct cputimer *cputimer)
struct cputimer *scan;
SYSCTL_NODE(_kern, OID_AUTO, cputimer, CTLFLAG_RW, NULL, "cputimer");
const struct cputimer *timer __unused)
cputimer_intr_config(const struct cputimer *timer)
static struct cputimer dummy_cputimer = {
struct cputimer *sys_cputimer = &dummy_cputimer;
SLIST_HEAD(, cputimer) cputimerhead = SLIST_HEAD_INITIALIZER(&cputimerhead);
cputimer_select(struct cputimer *timer, int pri)
struct cputimer *oldtimer;
static void i8254_cputimer_construct(struct cputimer *cputimer, sysclock_t last);
static void i8254_cputimer_destruct(struct cputimer *cputimer);
static struct cputimer i8254_cputimer = {
static void i8254_intr_config(struct cputimer_intr *, const struct cputimer *);
i8254_intr_config(struct cputimer_intr *cti, const struct cputimer *timer)
i8254_cputimer_construct(struct cputimer *timer, sysclock_t oldclock)
i8254_cputimer_destruct(struct cputimer *timer)
vkernel_timer_construct(struct cputimer *timer, sysclock_t oclock)
static void vkernel_timer_construct(struct cputimer *timer, sysclock_t oclock);
static struct cputimer vkernel_cputimer = {
SLIST_ENTRY(cputimer) next;
void (*construct)(struct cputimer *, sysclock_t);
void (*destruct)(struct cputimer *);
extern struct cputimer *sys_cputimer;
void cputimer_select(struct cputimer *, int);
void cputimer_register(struct cputimer *);
void cputimer_deregister(struct cputimer *);
void cputimer_set_frequency(struct cputimer *, sysclock_t);
void cputimer_default_construct(struct cputimer *, sysclock_t);
void cputimer_default_destruct(struct cputimer *);
(struct cputimer_intr *, const struct cputimer *);
const struct cputimer *);
void cputimer_intr_config(const struct cputimer *);
struct cputimer *which; /* which timer was used? */