static unsigned long get_nsec_offset(void) { uint64_t tsc, delta; rdtscll(tsc); delta = tsc - shadow.tsc_timestamp; return scale_delta(delta, shadow.tsc_to_system_mul, shadow.tsc_shift); }
static int64_t raw_trc_val(struct domain *d) { uint64_t tsc; struct time_scale tsc_to_ns; tsc = hvm_get_guest_tsc(pt_global_vcpu_target(d)); /* convert tsc to count of 100ns periods */ set_time_scale(&tsc_to_ns, d->arch.tsc_khz * 1000ul); return scale_delta(tsc, &tsc_to_ns) / 100ul; }