|
@@ -48,20 +48,16 @@
|
|
|
|
|
|
#include <linux/linkage.h>
|
|
|
#include <asm/assembler.h>
|
|
|
+#include <asm/opcodes-virt.h>
|
|
|
#include <xen/interface/xen.h>
|
|
|
|
|
|
|
|
|
-/* HVC 0xEA1 */
|
|
|
-#ifdef CONFIG_THUMB2_KERNEL
|
|
|
-#define xen_hvc .word 0xf7e08ea1
|
|
|
-#else
|
|
|
-#define xen_hvc .word 0xe140ea71
|
|
|
-#endif
|
|
|
+#define XEN_IMM 0xEA1
|
|
|
|
|
|
#define HYPERCALL_SIMPLE(hypercall) \
|
|
|
ENTRY(HYPERVISOR_##hypercall) \
|
|
|
mov r12, #__HYPERVISOR_##hypercall; \
|
|
|
- xen_hvc; \
|
|
|
+ __HVC(XEN_IMM); \
|
|
|
mov pc, lr; \
|
|
|
ENDPROC(HYPERVISOR_##hypercall)
|
|
|
|
|
@@ -76,7 +72,7 @@ ENTRY(HYPERVISOR_##hypercall) \
|
|
|
stmdb sp!, {r4} \
|
|
|
ldr r4, [sp, #4] \
|
|
|
mov r12, #__HYPERVISOR_##hypercall; \
|
|
|
- xen_hvc \
|
|
|
+ __HVC(XEN_IMM); \
|
|
|
ldm sp!, {r4} \
|
|
|
mov pc, lr \
|
|
|
ENDPROC(HYPERVISOR_##hypercall)
|
|
@@ -100,7 +96,7 @@ ENTRY(privcmd_call)
|
|
|
mov r2, r3
|
|
|
ldr r3, [sp, #8]
|
|
|
ldr r4, [sp, #4]
|
|
|
- xen_hvc
|
|
|
+ __HVC(XEN_IMM)
|
|
|
ldm sp!, {r4}
|
|
|
mov pc, lr
|
|
|
ENDPROC(privcmd_call);
|