]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - include/asm-x86/time.h
Merge branches 'release' and 'ppc-workaround' into release
[mirror_ubuntu-artful-kernel.git] / include / asm-x86 / time.h
1 #ifndef _ASMX86_TIME_H
2 #define _ASMX86_TIME_H
3
4 extern void (*late_time_init)(void);
5 extern void hpet_time_init(void);
6
7 #include <asm/mc146818rtc.h>
8 #ifdef CONFIG_X86_32
9 #include <linux/efi.h>
10
11 static inline unsigned long native_get_wallclock(void)
12 {
13 unsigned long retval;
14
15 if (efi_enabled)
16 retval = efi_get_time();
17 else
18 retval = mach_get_cmos_time();
19
20 return retval;
21 }
22
23 static inline int native_set_wallclock(unsigned long nowtime)
24 {
25 int retval;
26
27 if (efi_enabled)
28 retval = efi_set_rtc_mmss(nowtime);
29 else
30 retval = mach_set_rtc_mmss(nowtime);
31
32 return retval;
33 }
34
35 #else
36 extern void native_time_init_hook(void);
37
38 static inline unsigned long native_get_wallclock(void)
39 {
40 return mach_get_cmos_time();
41 }
42
43 static inline int native_set_wallclock(unsigned long nowtime)
44 {
45 return mach_set_rtc_mmss(nowtime);
46 }
47
48 #endif
49
50 #ifdef CONFIG_PARAVIRT
51 #include <asm/paravirt.h>
52 #else /* !CONFIG_PARAVIRT */
53
54 #define get_wallclock() native_get_wallclock()
55 #define set_wallclock(x) native_set_wallclock(x)
56 #define choose_time_init() hpet_time_init
57
58 #endif /* CONFIG_PARAVIRT */
59
60 #endif