diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2009-02-02 16:55:42 -0500 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2009-02-04 19:59:04 -0500 |
commit | 5393744b71ce797f1b1546fafaed127fc50c2b61 (patch) | |
tree | a974975e907b5e2830721c521965a53c34c10c8b /arch/x86/xen/xen-asm.h | |
parent | 383414322b3b3ced0cbc146801e0cc6c60a6c5f4 (diff) |
xen: make direct versions of irq_enable/disable/save/restore to common code
Now that x86-64 has directly accessible percpu variables, it can also
implement the direct versions of these operations, which operate on a
vcpu_info structure directly embedded in the percpu area.
In fact, the 64-bit versions are more or less identical, and so can be
shared. The only two differences are:
1. xen_restore_fl_direct takes its argument in eax on 32-bit, and rdi on 64-bit.
Unfortunately it isn't possible to directly refer to the 2nd lsb of rdi directly
(as you can with %ah), so the code isn't quite as dense.
2. check_events needs to variants to save different registers.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/xen/xen-asm.h')
-rw-r--r-- | arch/x86/xen/xen-asm.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/xen/xen-asm.h b/arch/x86/xen/xen-asm.h new file mode 100644 index 000000000000..465276467a47 --- /dev/null +++ b/arch/x86/xen/xen-asm.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef _XEN_XEN_ASM_H | ||
2 | #define _XEN_XEN_ASM_H | ||
3 | |||
4 | #include <linux/linkage.h> | ||
5 | |||
6 | #define RELOC(x, v) .globl x##_reloc; x##_reloc=v | ||
7 | #define ENDPATCH(x) .globl x##_end; x##_end=. | ||
8 | |||
9 | /* Pseudo-flag used for virtual NMI, which we don't implement yet */ | ||
10 | #define XEN_EFLAGS_NMI 0x80000000 | ||
11 | |||
12 | #endif | ||