Commit | Line | Data |
---|---|---|
1965aae3 PA |
1 | #ifndef _ASM_X86_TIME_H |
2 | #define _ASM_X86_TIME_H | |
ee238e5c | 3 | |
ee238e5c | 4 | extern void hpet_time_init(void); |
d3561b7f | 5 | |
fe599f9f | 6 | #include <asm/mc146818rtc.h> |
ee238e5c GOC |
7 | #ifdef CONFIG_X86_32 |
8 | #include <linux/efi.h> | |
d3561b7f RR |
9 | |
10 | static inline unsigned long native_get_wallclock(void) | |
11 | { | |
12 | unsigned long retval; | |
13 | ||
14 | if (efi_enabled) | |
15 | retval = efi_get_time(); | |
16 | else | |
17 | retval = mach_get_cmos_time(); | |
18 | ||
19 | return retval; | |
20 | } | |
21 | ||
22 | static inline int native_set_wallclock(unsigned long nowtime) | |
23 | { | |
24 | int retval; | |
25 | ||
26 | if (efi_enabled) | |
27 | retval = efi_set_rtc_mmss(nowtime); | |
28 | else | |
29 | retval = mach_set_rtc_mmss(nowtime); | |
30 | ||
31 | return retval; | |
32 | } | |
33 | ||
ee238e5c GOC |
34 | #else |
35 | extern void native_time_init_hook(void); | |
36 | ||
37 | static inline unsigned long native_get_wallclock(void) | |
38 | { | |
39 | return mach_get_cmos_time(); | |
40 | } | |
41 | ||
42 | static inline int native_set_wallclock(unsigned long nowtime) | |
43 | { | |
44 | return mach_set_rtc_mmss(nowtime); | |
45 | } | |
46 | ||
47 | #endif | |
e30fab3a | 48 | |
cc038491 JS |
49 | extern void time_init(void); |
50 | ||
d3561b7f RR |
51 | #ifdef CONFIG_PARAVIRT |
52 | #include <asm/paravirt.h> | |
53 | #else /* !CONFIG_PARAVIRT */ | |
54 | ||
55 | #define get_wallclock() native_get_wallclock() | |
56 | #define set_wallclock(x) native_set_wallclock(x) | |
e30fab3a | 57 | #define choose_time_init() hpet_time_init |
d3561b7f RR |
58 | |
59 | #endif /* CONFIG_PARAVIRT */ | |
60 | ||
8fbbc4b4 AK |
61 | extern unsigned long __init calibrate_cpu(void); |
62 | ||
1965aae3 | 63 | #endif /* _ASM_X86_TIME_H */ |