Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes...
[linux-2.6] / arch / x86 / include / asm / time.h
1 #ifndef _ASM_X86_TIME_H
2 #define _ASM_X86_TIME_H
3
4 extern void hpet_time_init(void);
5
6 #include <asm/mc146818rtc.h>
7 #ifdef CONFIG_X86_32
8 #include <linux/efi.h>
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
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
48
49 extern void time_init(void);
50
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)
57 #define choose_time_init() hpet_time_init
58
59 #endif /* CONFIG_PARAVIRT */
60
61 extern unsigned long __init calibrate_cpu(void);
62
63 #endif /* _ASM_X86_TIME_H */