diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:32:39 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:32:39 -0500 |
commit | cdc7957d1954908a39a6964e9c6f643916e76c4b (patch) | |
tree | f2ab54704a12d7ebeb782b3a539682254d9dc5f9 | |
parent | fde1b3fa947c2512e3715962ebb1d3a6a9b9bb7d (diff) |
x86: move native_read_tsc() offline
move native_read_tsc() offline.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | arch/x86/kernel/rtc.c | 10 | ||||
-rw-r--r-- | include/asm-x86/msr.h | 8 |
2 files changed, 11 insertions, 7 deletions
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c index d040840ff1b6..c42cf1263882 100644 --- a/arch/x86/kernel/rtc.c +++ b/arch/x86/kernel/rtc.c | |||
@@ -6,6 +6,7 @@ | |||
6 | #include <linux/mc146818rtc.h> | 6 | #include <linux/mc146818rtc.h> |
7 | 7 | ||
8 | #include <asm/time.h> | 8 | #include <asm/time.h> |
9 | #include <asm/vsyscall.h> | ||
9 | 10 | ||
10 | #ifdef CONFIG_X86_32 | 11 | #ifdef CONFIG_X86_32 |
11 | # define CMOS_YEARS_OFFS 1900 | 12 | # define CMOS_YEARS_OFFS 1900 |
@@ -194,3 +195,12 @@ int update_persistent_clock(struct timespec now) | |||
194 | { | 195 | { |
195 | return set_rtc_mmss(now.tv_sec); | 196 | return set_rtc_mmss(now.tv_sec); |
196 | } | 197 | } |
198 | |||
199 | unsigned long long __vsyscall_fn native_read_tsc(void) | ||
200 | { | ||
201 | DECLARE_ARGS(val, low, high); | ||
202 | |||
203 | asm volatile("rdtsc" : EAX_EDX_RET(val, low, high)); | ||
204 | return EAX_EDX_VAL(val, low, high); | ||
205 | } | ||
206 | EXPORT_SYMBOL_GPL(native_read_tsc); | ||
diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h index bca8c3950132..decfec4ab17c 100644 --- a/include/asm-x86/msr.h +++ b/include/asm-x86/msr.h | |||
@@ -91,13 +91,7 @@ static inline int native_write_msr_safe(unsigned int msr, | |||
91 | return err; | 91 | return err; |
92 | } | 92 | } |
93 | 93 | ||
94 | static inline unsigned long long native_read_tsc(void) | 94 | extern unsigned long long native_read_tsc(void); |
95 | { | ||
96 | DECLARE_ARGS(val, low, high); | ||
97 | |||
98 | asm volatile("rdtsc" : EAX_EDX_RET(val, low, high)); | ||
99 | return EAX_EDX_VAL(val, low, high); | ||
100 | } | ||
101 | 95 | ||
102 | static inline unsigned long long native_read_pmc(int counter) | 96 | static inline unsigned long long native_read_pmc(int counter) |
103 | { | 97 | { |