Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/time.h
Line
Count
Source (jump to first uncovered line)
1
2
#ifndef __X86_TIME_H__
3
#define __X86_TIME_H__
4
5
#include <asm/msr.h>
6
7
/*
8
 *  PV TSC emulation modes:
9
 *    0 = guest rdtsc/p executed natively when monotonicity can be guaranteed
10
 *         and emulated otherwise (with frequency scaled if necessary)
11
 *    1 = guest rdtsc/p always emulated at 1GHz (kernel and user)
12
 *    2 = guest rdtsc always executed natively (no monotonicity/frequency
13
 *         guarantees); guest rdtscp emulated at native frequency if
14
 *         unsupported by h/w, else executed natively
15
 *    3 = same as 2, except xen manages TSC_AUX register so guest can
16
 *         determine when a restore/migration has occurred and assumes
17
 *         guest obtains/uses pvclock-like mechanism to adjust for
18
 *         monotonicity and frequency changes
19
 */
20
2
#define TSC_MODE_DEFAULT          0
21
0
#define TSC_MODE_ALWAYS_EMULATE   1
22
0
#define TSC_MODE_NEVER_EMULATE    2
23
37.0k
#define TSC_MODE_PVRDTSCP         3
24
25
typedef u64 cycles_t;
26
27
extern bool disable_tsc_sync;
28
29
static inline cycles_t get_cycles(void)
30
0
{
31
0
    return rdtsc();
32
0
}
Unexecuted instantiation: cpu.c:get_cycles
Unexecuted instantiation: cpupool.c:get_cycles
Unexecuted instantiation: domctl.c:get_cycles
Unexecuted instantiation: domain.c:get_cycles
Unexecuted instantiation: event_2l.c:get_cycles
Unexecuted instantiation: event_channel.c:get_cycles
Unexecuted instantiation: event_fifo.c:get_cycles
Unexecuted instantiation: grant_table.c:get_cycles
Unexecuted instantiation: guestcopy.c:get_cycles
Unexecuted instantiation: irq.c:get_cycles
Unexecuted instantiation: kernel.c:get_cycles
Unexecuted instantiation: keyhandler.c:get_cycles
Unexecuted instantiation: kexec.c:get_cycles
Unexecuted instantiation: kimage.c:get_cycles
Unexecuted instantiation: mem_access.c:get_cycles
Unexecuted instantiation: memory.c:get_cycles
Unexecuted instantiation: monitor.c:get_cycles
Unexecuted instantiation: multicall.c:get_cycles
Unexecuted instantiation: page_alloc.c:get_cycles
Unexecuted instantiation: preempt.c:get_cycles
Unexecuted instantiation: random.c:get_cycles
Unexecuted instantiation: rangeset.c:get_cycles
Unexecuted instantiation: rcupdate.c:get_cycles
Unexecuted instantiation: rwlock.c:get_cycles
Unexecuted instantiation: sched_arinc653.c:get_cycles
Unexecuted instantiation: sched_credit.c:get_cycles
Unexecuted instantiation: sched_credit2.c:get_cycles
Unexecuted instantiation: sched_rt.c:get_cycles
Unexecuted instantiation: sched_null.c:get_cycles
Unexecuted instantiation: schedule.c:get_cycles
Unexecuted instantiation: shutdown.c:get_cycles
Unexecuted instantiation: softirq.c:get_cycles
Unexecuted instantiation: spinlock.c:get_cycles
Unexecuted instantiation: stop_machine.c:get_cycles
Unexecuted instantiation: symbols.c:get_cycles
Unexecuted instantiation: sysctl.c:get_cycles
Unexecuted instantiation: tasklet.c:get_cycles
Unexecuted instantiation: time.c:get_cycles
Unexecuted instantiation: timer.c:get_cycles
Unexecuted instantiation: trace.c:get_cycles
Unexecuted instantiation: vm_event.c:get_cycles
Unexecuted instantiation: vsprintf.c:get_cycles
Unexecuted instantiation: wait.c:get_cycles
Unexecuted instantiation: xenoprof.c:get_cycles
Unexecuted instantiation: xmalloc_tlsf.c:get_cycles
Unexecuted instantiation: tmem.c:get_cycles
Unexecuted instantiation: tmem_xen.c:get_cycles
Unexecuted instantiation: tmem_control.c:get_cycles
Unexecuted instantiation: llvm.c:get_cycles
Unexecuted instantiation: libelf-loader.c:get_cycles
Unexecuted instantiation: console.c:get_cycles
Unexecuted instantiation: ns16550.c:get_cycles
Unexecuted instantiation: ehci-dbgp.c:get_cycles
Unexecuted instantiation: cpufreq.c:get_cycles
Unexecuted instantiation: cpufreq_ondemand.c:get_cycles
Unexecuted instantiation: cpufreq_misc_governors.c:get_cycles
Unexecuted instantiation: utility.c:get_cycles
Unexecuted instantiation: pci.c:get_cycles
Unexecuted instantiation: vpci.c:get_cycles
Unexecuted instantiation: header.c:get_cycles
Unexecuted instantiation: msi.c:get_cycles
Unexecuted instantiation: msix.c:get_cycles
Unexecuted instantiation: iommu.c:get_cycles
Unexecuted instantiation: io.c:get_cycles
Unexecuted instantiation: dmar.c:get_cycles
Unexecuted instantiation: utils.c:get_cycles
Unexecuted instantiation: qinval.c:get_cycles
Unexecuted instantiation: intremap.c:get_cycles
Unexecuted instantiation: quirks.c:get_cycles
Unexecuted instantiation: vtd.c:get_cycles
Unexecuted instantiation: ats.c:get_cycles
Unexecuted instantiation: iommu_init.c:get_cycles
Unexecuted instantiation: iommu_map.c:get_cycles
Unexecuted instantiation: pci_amd_iommu.c:get_cycles
Unexecuted instantiation: iommu_intr.c:get_cycles
Unexecuted instantiation: iommu_cmd.c:get_cycles
Unexecuted instantiation: iommu_guest.c:get_cycles
Unexecuted instantiation: pmstat.c:get_cycles
Unexecuted instantiation: reboot.c:get_cycles
Unexecuted instantiation: erst.c:get_cycles
Unexecuted instantiation: apei-io.c:get_cycles
Unexecuted instantiation: vga.c:get_cycles
Unexecuted instantiation: xsm_core.c:get_cycles
Unexecuted instantiation: apic.c:get_cycles
Unexecuted instantiation: cpuid.c:get_cycles
Unexecuted instantiation: compat.c:get_cycles
Unexecuted instantiation: crash.c:get_cycles
Unexecuted instantiation: debug.c:get_cycles
Unexecuted instantiation: delay.c:get_cycles
Unexecuted instantiation: domain_page.c:get_cycles
Unexecuted instantiation: flushtlb.c:get_cycles
Unexecuted instantiation: hypercall.c:get_cycles
Unexecuted instantiation: i387.c:get_cycles
Unexecuted instantiation: i8259.c:get_cycles
Unexecuted instantiation: io_apic.c:get_cycles
Unexecuted instantiation: msr.c:get_cycles
Unexecuted instantiation: ioport_emulate.c:get_cycles
Unexecuted instantiation: machine_kexec.c:get_cycles
Unexecuted instantiation: microcode_amd.c:get_cycles
Unexecuted instantiation: microcode_intel.c:get_cycles
Unexecuted instantiation: microcode.c:get_cycles
Unexecuted instantiation: mm.c:get_cycles
Unexecuted instantiation: mpparse.c:get_cycles
Unexecuted instantiation: nmi.c:get_cycles
Unexecuted instantiation: numa.c:get_cycles
Unexecuted instantiation: physdev.c:get_cycles
Unexecuted instantiation: platform_hypercall.c:get_cycles
Unexecuted instantiation: psr.c:get_cycles
Unexecuted instantiation: setup.c:get_cycles
Unexecuted instantiation: smp.c:get_cycles
Unexecuted instantiation: smpboot.c:get_cycles
Unexecuted instantiation: traps.c:get_cycles
Unexecuted instantiation: usercopy.c:get_cycles
Unexecuted instantiation: x86_emulate.c:get_cycles
Unexecuted instantiation: tboot.c:get_cycles
Unexecuted instantiation: hpet.c:get_cycles
Unexecuted instantiation: xstate.c:get_cycles
Unexecuted instantiation: lib.c:get_cycles
Unexecuted instantiation: power.c:get_cycles
Unexecuted instantiation: suspend.c:get_cycles
Unexecuted instantiation: cpu_idle.c:get_cycles
Unexecuted instantiation: cpuidle_menu.c:get_cycles
Unexecuted instantiation: powernow.c:get_cycles
Unexecuted instantiation: amd.c:get_cycles
Unexecuted instantiation: common.c:get_cycles
Unexecuted instantiation: intel.c:get_cycles
Unexecuted instantiation: mwait-idle.c:get_cycles
Unexecuted instantiation: vpmu.c:get_cycles
Unexecuted instantiation: vpmu_amd.c:get_cycles
Unexecuted instantiation: vpmu_intel.c:get_cycles
Unexecuted instantiation: amd_nonfatal.c:get_cycles
Unexecuted instantiation: mce_amd.c:get_cycles
Unexecuted instantiation: mcaction.c:get_cycles
Unexecuted instantiation: barrier.c:get_cycles
Unexecuted instantiation: mctelem.c:get_cycles
Unexecuted instantiation: mce.c:get_cycles
Unexecuted instantiation: mce-apei.c:get_cycles
Unexecuted instantiation: mce_intel.c:get_cycles
Unexecuted instantiation: non-fatal.c:get_cycles
Unexecuted instantiation: util.c:get_cycles
Unexecuted instantiation: vmce.c:get_cycles
Unexecuted instantiation: bigsmp.c:get_cycles
Unexecuted instantiation: x2apic.c:get_cycles
Unexecuted instantiation: default.c:get_cycles
Unexecuted instantiation: delivery.c:get_cycles
Unexecuted instantiation: probe.c:get_cycles
Unexecuted instantiation: asid.c:get_cycles
Unexecuted instantiation: dm.c:get_cycles
Unexecuted instantiation: emulate.c:get_cycles
Unexecuted instantiation: hvm.c:get_cycles
Unexecuted instantiation: i8254.c:get_cycles
Unexecuted instantiation: intercept.c:get_cycles
Unexecuted instantiation: ioreq.c:get_cycles
Unexecuted instantiation: mtrr.c:get_cycles
Unexecuted instantiation: nestedhvm.c:get_cycles
Unexecuted instantiation: pmtimer.c:get_cycles
Unexecuted instantiation: rtc.c:get_cycles
Unexecuted instantiation: save.c:get_cycles
Unexecuted instantiation: stdvga.c:get_cycles
Unexecuted instantiation: vioapic.c:get_cycles
Unexecuted instantiation: viridian.c:get_cycles
Unexecuted instantiation: vlapic.c:get_cycles
Unexecuted instantiation: vmsi.c:get_cycles
Unexecuted instantiation: vpic.c:get_cycles
Unexecuted instantiation: vpt.c:get_cycles
Unexecuted instantiation: intr.c:get_cycles
Unexecuted instantiation: nestedsvm.c:get_cycles
Unexecuted instantiation: svm.c:get_cycles
Unexecuted instantiation: svmdebug.c:get_cycles
Unexecuted instantiation: vmcb.c:get_cycles
Unexecuted instantiation: realmode.c:get_cycles
Unexecuted instantiation: vmcs.c:get_cycles
Unexecuted instantiation: vmx.c:get_cycles
Unexecuted instantiation: vvmx.c:get_cycles
Unexecuted instantiation: paging.c:get_cycles
Unexecuted instantiation: p2m.c:get_cycles
Unexecuted instantiation: p2m-pt.c:get_cycles
Unexecuted instantiation: p2m-ept.c:get_cycles
Unexecuted instantiation: p2m-pod.c:get_cycles
Unexecuted instantiation: altp2m.c:get_cycles
Unexecuted instantiation: guest_walk.c:get_cycles
Unexecuted instantiation: mem_paging.c:get_cycles
Unexecuted instantiation: mem_sharing.c:get_cycles
Unexecuted instantiation: multi.c:get_cycles
Unexecuted instantiation: hap.c:get_cycles
Unexecuted instantiation: nested_hap.c:get_cycles
Unexecuted instantiation: nested_ept.c:get_cycles
Unexecuted instantiation: nmi_int.c:get_cycles
Unexecuted instantiation: op_model_p4.c:get_cycles
Unexecuted instantiation: op_model_ppro.c:get_cycles
Unexecuted instantiation: op_model_athlon.c:get_cycles
Unexecuted instantiation: backtrace.c:get_cycles
Unexecuted instantiation: callback.c:get_cycles
Unexecuted instantiation: descriptor-tables.c:get_cycles
Unexecuted instantiation: emul-gate-op.c:get_cycles
Unexecuted instantiation: emul-inv-op.c:get_cycles
Unexecuted instantiation: emul-priv-op.c:get_cycles
Unexecuted instantiation: iret.c:get_cycles
Unexecuted instantiation: misc-hypercalls.c:get_cycles
Unexecuted instantiation: ro-page-fault.c:get_cycles
Unexecuted instantiation: acpi_mmcfg.c:get_cycles
Unexecuted instantiation: mmconf-fam10h.c:get_cycles
Unexecuted instantiation: mmconfig_64.c:get_cycles
Unexecuted instantiation: mmconfig-shared.c:get_cycles
33
34
unsigned long
35
mktime (unsigned int year, unsigned int mon,
36
        unsigned int day, unsigned int hour,
37
        unsigned int min, unsigned int sec);
38
39
int time_suspend(void);
40
int time_resume(void);
41
42
void init_percpu_time(void);
43
void time_latch_stamps(void);
44
45
struct ioreq;
46
int hwdom_pit_access(struct ioreq *ioreq);
47
48
int cpu_frequency_change(u64 freq);
49
50
void pit_broadcast_enter(void);
51
void pit_broadcast_exit(void);
52
int pit_broadcast_is_available(void);
53
54
uint64_t acpi_pm_tick_to_ns(uint64_t ticks);
55
uint64_t ns_to_acpi_pm_tick(uint64_t ns);
56
57
uint64_t tsc_ticks2ns(uint64_t ticks);
58
59
void pv_soft_rdtsc(struct vcpu *v, struct cpu_user_regs *regs, int rdtscp);
60
u64 gtime_to_gtsc(struct domain *d, u64 time);
61
u64 gtsc_to_gtime(struct domain *d, u64 tsc);
62
63
void tsc_set_info(struct domain *d, uint32_t tsc_mode, uint64_t elapsed_nsec,
64
                  uint32_t gtsc_khz, uint32_t incarnation);
65
   
66
void tsc_get_info(struct domain *d, uint32_t *tsc_mode, uint64_t *elapsed_nsec,
67
                  uint32_t *gtsc_khz, uint32_t *incarnation);
68
   
69
70
void force_update_vcpu_system_time(struct vcpu *v);
71
72
bool clocksource_is_tsc(void);
73
int host_tsc_is_safe(void);
74
u64 stime2tsc(s_time_t stime);
75
76
struct time_scale;
77
void set_time_scale(struct time_scale *ts, u64 ticks_per_sec);
78
u64 scale_delta(u64 delta, const struct time_scale *scale);
79
80
#endif /* __X86_TIME_H__ */