aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/xen-ops.h
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-03-17 19:37:17 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-24 17:57:31 -0400
commite2a81baf6604a2e08e10c7405b0349106f77c8af (patch)
tree3eaf386316be1f499d92fae213493ec3d6b5b576 /arch/x86/xen/xen-ops.h
parentaa380c82b83252754a8c11bfc92359bd87cbf710 (diff)
xen: support sysenter/sysexit if hypervisor does
64-bit Xen supports sysenter for 32-bit guests, so support its use. (sysenter is faster than int $0x80 in 32-on-64.) sysexit is still not supported, so we fake it up using iret. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/xen/xen-ops.h')
-rw-r--r--arch/x86/xen/xen-ops.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 956a491ea998..01d4ff2ce404 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -19,6 +19,7 @@ extern struct shared_info *HYPERVISOR_shared_info;
19char * __init xen_memory_setup(void); 19char * __init xen_memory_setup(void);
20void __init xen_arch_setup(void); 20void __init xen_arch_setup(void);
21void __init xen_init_IRQ(void); 21void __init xen_init_IRQ(void);
22void xen_enable_sysenter(void);
22 23
23void xen_setup_timer(int cpu); 24void xen_setup_timer(int cpu);
24void xen_setup_cpu_clockevents(void); 25void xen_setup_cpu_clockevents(void);
@@ -64,4 +65,6 @@ DECL_ASM(unsigned long, xen_save_fl_direct, void);
64DECL_ASM(void, xen_restore_fl_direct, unsigned long); 65DECL_ASM(void, xen_restore_fl_direct, unsigned long);
65 66
66void xen_iret(void); 67void xen_iret(void);
68void xen_sysexit(void);
69
67#endif /* XEN_OPS_H */ 70#endif /* XEN_OPS_H */