diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-03-17 19:37:17 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-24 17:57:31 -0400 |
commit | e2a81baf6604a2e08e10c7405b0349106f77c8af (patch) | |
tree | 3eaf386316be1f499d92fae213493ec3d6b5b576 /arch/x86/xen/xen-ops.h | |
parent | aa380c82b83252754a8c11bfc92359bd87cbf710 (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.h | 3 |
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; | |||
19 | char * __init xen_memory_setup(void); | 19 | char * __init xen_memory_setup(void); |
20 | void __init xen_arch_setup(void); | 20 | void __init xen_arch_setup(void); |
21 | void __init xen_init_IRQ(void); | 21 | void __init xen_init_IRQ(void); |
22 | void xen_enable_sysenter(void); | ||
22 | 23 | ||
23 | void xen_setup_timer(int cpu); | 24 | void xen_setup_timer(int cpu); |
24 | void xen_setup_cpu_clockevents(void); | 25 | void xen_setup_cpu_clockevents(void); |
@@ -64,4 +65,6 @@ DECL_ASM(unsigned long, xen_save_fl_direct, void); | |||
64 | DECL_ASM(void, xen_restore_fl_direct, unsigned long); | 65 | DECL_ASM(void, xen_restore_fl_direct, unsigned long); |
65 | 66 | ||
66 | void xen_iret(void); | 67 | void xen_iret(void); |
68 | void xen_sysexit(void); | ||
69 | |||
67 | #endif /* XEN_OPS_H */ | 70 | #endif /* XEN_OPS_H */ |