#include <linux/clocksource.h>
#include <linux/kernel.h>
#include <linux/percpu.h>
#include <linux/notifier.h>
#include <linux/sched.h>
#include <linux/gfp.h>
#include <linux/memblock.h>
#include <linux/nmi.h>
#include <asm/fixmap.h>
#include <asm/pvclock.h>
#include <asm/vgtod.h>
static u8 valid_flags __read_mostly = …;
static struct pvclock_vsyscall_time_info *pvti_cpu0_va __read_mostly;
void pvclock_set_flags(u8 flags)
{ … }
unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src)
{ … }
void pvclock_touch_watchdogs(void)
{ … }
static atomic64_t last_value = …;
void pvclock_resume(void)
{ … }
u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src)
{ … }
static __always_inline
u64 __pvclock_clocksource_read(struct pvclock_vcpu_time_info *src, bool dowd)
{ … }
u64 pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
{ … }
noinstr u64 pvclock_clocksource_read_nowd(struct pvclock_vcpu_time_info *src)
{ … }
void pvclock_read_wallclock(struct pvclock_wall_clock *wall_clock,
struct pvclock_vcpu_time_info *vcpu_time,
struct timespec64 *ts)
{ … }
void pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti)
{ … }
struct pvclock_vsyscall_time_info *pvclock_get_pvti_cpu0_va(void)
{ … }
EXPORT_SYMBOL_GPL(…);