| /* | |
| * CPU timers state API | |
| * | |
| * Copyright 2020 SUSE LLC | |
| * | |
| * This work is licensed under the terms of the GNU GPL, version 2 or later. | |
| * See the COPYING file in the top-level directory. | |
| * | |
| */ | |
| #ifndef SYSTEM_CPU_TIMERS_H | |
| #define SYSTEM_CPU_TIMERS_H | |
| #include "qemu/timer.h" | |
| /* init the whole cpu timers API, including icount, ticks, and cpu_throttle */ | |
| void cpu_timers_init(void); | |
| /* | |
| * CPU Ticks and Clock | |
| */ | |
| /* Caller must hold BQL */ | |
| void cpu_enable_ticks(void); | |
| /* Caller must hold BQL */ | |
| void cpu_disable_ticks(void); | |
| /* | |
| * return the time elapsed in VM between vm_start and vm_stop. | |
| * cpu_get_ticks() uses units of the host CPU cycle counter. | |
| */ | |
| int64_t cpu_get_ticks(void); | |
| /* | |
| * Returns the monotonic time elapsed in VM, i.e., | |
| * the time between vm_start and vm_stop | |
| */ | |
| int64_t cpu_get_clock(void); | |
| void qemu_timer_notify_cb(void *opaque, QEMUClockType type); | |
| /* get/set VIRTUAL clock and VM elapsed ticks via the cpus accel interface */ | |
| int64_t cpus_get_virtual_clock(void); | |
| void cpus_set_virtual_clock(int64_t new_time); | |
| int64_t cpus_get_elapsed_ticks(void); | |
| #endif /* SYSTEM_CPU_TIMERS_H */ |