]> err.no Git - linux-2.6/blob - include/asm-x86/time.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireles...
[linux-2.6] / include / asm-x86 / time.h
1 #ifndef _ASMX86_TIME_H
2 #define _ASMX86_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 #ifdef CONFIG_PARAVIRT
50 #include <asm/paravirt.h>
51 #else /* !CONFIG_PARAVIRT */
52
53 #define get_wallclock() native_get_wallclock()
54 #define set_wallclock(x) native_set_wallclock(x)
55 #define choose_time_init() hpet_time_init
56
57 #endif /* CONFIG_PARAVIRT */
58
59 #endif