31 */ |
31 */ |
32 |
32 |
33 #ifndef _ASM_X86_XEN_HYPERVISOR_H |
33 #ifndef _ASM_X86_XEN_HYPERVISOR_H |
34 #define _ASM_X86_XEN_HYPERVISOR_H |
34 #define _ASM_X86_XEN_HYPERVISOR_H |
35 |
35 |
36 #include <linux/types.h> |
|
37 #include <linux/kernel.h> |
|
38 |
|
39 #include <xen/interface/xen.h> |
|
40 #include <xen/interface/version.h> |
|
41 |
|
42 #include <asm/ptrace.h> |
|
43 #include <asm/page.h> |
|
44 #include <asm/desc.h> |
|
45 #if defined(__i386__) |
|
46 # ifdef CONFIG_X86_PAE |
|
47 # include <asm-generic/pgtable-nopud.h> |
|
48 # else |
|
49 # include <asm-generic/pgtable-nopmd.h> |
|
50 # endif |
|
51 #endif |
|
52 #include <asm/xen/hypercall.h> |
|
53 |
|
54 /* arch/i386/kernel/setup.c */ |
36 /* arch/i386/kernel/setup.c */ |
55 extern struct shared_info *HYPERVISOR_shared_info; |
37 extern struct shared_info *HYPERVISOR_shared_info; |
56 extern struct start_info *xen_start_info; |
38 extern struct start_info *xen_start_info; |
57 |
|
58 /* arch/i386/mach-xen/evtchn.c */ |
|
59 /* Force a proper event-channel callback from Xen. */ |
|
60 extern void force_evtchn_callback(void); |
|
61 |
|
62 /* Turn jiffies into Xen system time. */ |
|
63 u64 jiffies_to_st(unsigned long jiffies); |
|
64 |
|
65 |
|
66 #define MULTI_UVMFLAGS_INDEX 3 |
|
67 #define MULTI_UVMDOMID_INDEX 4 |
|
68 |
39 |
69 enum xen_domain_type { |
40 enum xen_domain_type { |
70 XEN_NATIVE, |
41 XEN_NATIVE, |
71 XEN_PV_DOMAIN, |
42 XEN_PV_DOMAIN, |
72 XEN_HVM_DOMAIN, |
43 XEN_HVM_DOMAIN, |
73 }; |
44 }; |
74 |
45 |
75 extern enum xen_domain_type xen_domain_type; |
46 extern enum xen_domain_type xen_domain_type; |
76 |
47 |
|
48 #ifdef CONFIG_XEN |
77 #define xen_domain() (xen_domain_type != XEN_NATIVE) |
49 #define xen_domain() (xen_domain_type != XEN_NATIVE) |
78 #define xen_pv_domain() (xen_domain_type == XEN_PV_DOMAIN) |
50 #else |
|
51 #define xen_domain() (0) |
|
52 #endif |
|
53 |
|
54 #define xen_pv_domain() (xen_domain() && xen_domain_type == XEN_PV_DOMAIN) |
|
55 #define xen_hvm_domain() (xen_domain() && xen_domain_type == XEN_HVM_DOMAIN) |
|
56 |
79 #define xen_initial_domain() (xen_pv_domain() && xen_start_info->flags & SIF_INITDOMAIN) |
57 #define xen_initial_domain() (xen_pv_domain() && xen_start_info->flags & SIF_INITDOMAIN) |
80 #define xen_hvm_domain() (xen_domain_type == XEN_HVM_DOMAIN) |
|
81 |
58 |
82 #endif /* _ASM_X86_XEN_HYPERVISOR_H */ |
59 #endif /* _ASM_X86_XEN_HYPERVISOR_H */ |