summaryrefslogtreecommitdiff
path: root/arch/i386/xen/xen-ops.h
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@xensource.com>2007-07-17 18:37:07 -0700
committerJeremy Fitzhardinge <jeremy@goop.org>2007-07-18 08:47:45 -0700
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,
int xen_smp_call_function_mask(cpumask_t mask, void (*func)(void *),
void *info, int wait);
+
+/* Declare an asm function, along with symbols needed to make it
+ inlineable */
+#define DECL_ASM(ret, name, ...) \
+ ret name(__VA_ARGS__); \
+ extern char name##_end[]; \
+ extern char name##_reloc[] \
+
+DECL_ASM(void, xen_irq_enable_direct, void);
+DECL_ASM(void, xen_irq_disable_direct, void);
+DECL_ASM(unsigned long, xen_save_fl_direct, void);
+DECL_ASM(void, xen_restore_fl_direct, unsigned long);
+
#endif /* XEN_OPS_H */