Changeset View
Changeset View
Standalone View
Standalone View
sys/x86/x86/pvclock.c
Show First 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | |||||
void | void | ||||
pvclock_resume(void) | pvclock_resume(void) | ||||
{ | { | ||||
atomic_store_rel_64(&pvclock_last_cycles, 0); | atomic_store_rel_64(&pvclock_last_cycles, 0); | ||||
} | } | ||||
uint64_t | |||||
pvclock_tsc_freq(struct pvclock_vcpu_time_info *ti) | |||||
{ | |||||
uint64_t freq; | |||||
freq = (1000000000ULL << 32) / ti->tsc_to_system_mul; | |||||
if (ti->tsc_shift < 0) | |||||
freq <<= -ti->tsc_shift; | |||||
else | |||||
freq >>= ti->tsc_shift; | |||||
return (freq); | |||||
} | |||||
/* | /* | ||||
* Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction, | * Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction, | ||||
* yielding a 64-bit result. | * yielding a 64-bit result. | ||||
*/ | */ | ||||
static inline uint64_t | static inline uint64_t | ||||
pvclock_scale_delta(uint64_t delta, uint32_t mul_frac, int shift) | pvclock_scale_delta(uint64_t delta, uint32_t mul_frac, int shift) | ||||
{ | { | ||||
uint64_t product; | uint64_t product; | ||||
▲ Show 20 Lines • Show All 121 Lines • Show Last 20 Lines |