提交 cdc7957d 编写于 作者: I Ingo Molnar

x86: move native_read_tsc() offline

move native_read_tsc() offline.
Signed-off-by: NIngo Molnar <mingo@elte.hu>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 fde1b3fa
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include <linux/mc146818rtc.h> #include <linux/mc146818rtc.h>
#include <asm/time.h> #include <asm/time.h>
#include <asm/vsyscall.h>
#ifdef CONFIG_X86_32 #ifdef CONFIG_X86_32
# define CMOS_YEARS_OFFS 1900 # define CMOS_YEARS_OFFS 1900
...@@ -194,3 +195,12 @@ int update_persistent_clock(struct timespec now) ...@@ -194,3 +195,12 @@ int update_persistent_clock(struct timespec now)
{ {
return set_rtc_mmss(now.tv_sec); return set_rtc_mmss(now.tv_sec);
} }
unsigned long long __vsyscall_fn native_read_tsc(void)
{
DECLARE_ARGS(val, low, high);
asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
return EAX_EDX_VAL(val, low, high);
}
EXPORT_SYMBOL_GPL(native_read_tsc);
...@@ -91,13 +91,7 @@ static inline int native_write_msr_safe(unsigned int msr, ...@@ -91,13 +91,7 @@ static inline int native_write_msr_safe(unsigned int msr,
return err; return err;
} }
static inline unsigned long long native_read_tsc(void) extern unsigned long long native_read_tsc(void);
{
DECLARE_ARGS(val, low, high);
asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
return EAX_EDX_VAL(val, low, high);
}
static inline unsigned long long native_read_pmc(int counter) static inline unsigned long long native_read_pmc(int counter)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册