aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/xen/xen-ops.h
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@xensource.com>2007-07-17 21:37:07 -0400
committerJeremy Fitzhardinge <jeremy@goop.org>2007-07-18 11:47:45 -0400
commit6487673b8a858f99a5348e1078b3f5aec700f9e0 (patch)
tree2c96da8fde879561f36678691ef997f3fdb7b3f0 /arch/i386/xen/xen-ops.h
parent60223a326fc8fa6e90e2c3fd28ae6de4a311d731 (diff)
xen: Attempt to patch inline versions of common operations
This patchs adds the mechanism to allow us to patch inline versions of common operations. The implementations of the direct-access versions save_fl, restore_fl, irq_enable and irq_disable are now in assembler, and the same code is used for both out of line and inline uses. Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Cc: Chris Wright <chrisw@sous-sol.org> Cc: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'arch/i386/xen/xen-ops.h')
-rw-r--r--arch/i386/xen/xen-ops.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/i386/xen/xen-ops.h b/arch/i386/xen/xen-ops.h
index 5b56f7fecd19..33e4c8a16289 100644
--- a/arch/i386/xen/xen-ops.h
+++ b/arch/i386/xen/xen-ops.h
@@ -54,4 +54,17 @@ int xen_smp_call_function_single(int cpu, void (*func) (void *info), void *info,
54int xen_smp_call_function_mask(cpumask_t mask, void (*func)(void *), 54int xen_smp_call_function_mask(cpumask_t mask, void (*func)(void *),
55 void *info, int wait); 55 void *info, int wait);
56 56
57
58/* Declare an asm function, along with symbols needed to make it
59 inlineable */
60#define DECL_ASM(ret, name, ...) \
61 ret name(__VA_ARGS__); \
62 extern char name##_end[]; \
63 extern char name##_reloc[] \
64
65DECL_ASM(void, xen_irq_enable_direct, void);
66DECL_ASM(void, xen_irq_disable_direct, void);
67DECL_ASM(unsigned long, xen_save_fl_direct, void);
68DECL_ASM(void, xen_restore_fl_direct, unsigned long);
69
57#endif /* XEN_OPS_H */ 70#endif /* XEN_OPS_H */