# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1170970229 0
# Node ID 9e27245a692e9baa2266415eb2c66d0f0510ea30
# Parent 3050c8339da62896a7d3af07e6095a07545e486b
Fix x86/64 build.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
xen/arch/x86/x86_64/Makefile | 3 ++-
xen/arch/x86/x86_64/compat/entry.S | 27 ++++++++++++++++++++++-----
xen/arch/x86/x86_64/entry.S | 8 ++------
3 files changed, 26 insertions(+), 12 deletions(-)
diff -r 3050c8339da6 -r 9e27245a692e xen/arch/x86/x86_64/Makefile
--- a/xen/arch/x86/x86_64/Makefile Thu Feb 08 18:18:56 2007 +0000
+++ b/xen/arch/x86/x86_64/Makefile Thu Feb 08 21:30:29 2007 +0000
@@ -1,3 +1,5 @@ obj-y += entry.o
+subdir-y += compat
+
obj-y += entry.o
obj-y += compat_kexec.o
obj-y += gpr_switch.o
@@ -13,7 +15,6 @@ ifeq ($(CONFIG_COMPAT),y)
# extra dependencies
compat.o: ../compat.c
domctl.o: ../domctl.c
-entry.o: compat/entry.S
mm.o: compat/mm.c
physdev.o: ../physdev.c
platform_hypercall.o: ../platform_hypercall.c
diff -r 3050c8339da6 -r 9e27245a692e xen/arch/x86/x86_64/compat/entry.S
--- a/xen/arch/x86/x86_64/compat/entry.S Thu Feb 08 18:18:56 2007 +0000
+++ b/xen/arch/x86/x86_64/compat/entry.S Thu Feb 08 21:30:29 2007 +0000
@@ -2,10 +2,27 @@
* Compatibility hypercall routines.
*/
+#include <xen/config.h>
+#include <xen/errno.h>
+#include <xen/softirq.h>
+#include <asm/asm_defns.h>
+#include <asm/apicdef.h>
+#include <asm/page.h>
#include <asm/desc.h>
-
-.text
-
+#include <public/xen.h>
+
+#define GET_GUEST_REGS(reg) \
+ movq $~(STACK_SIZE-1),reg; \
+ andq %rsp,reg; \
+ orq $(STACK_SIZE-CPUINFO_sizeof),reg;
+
+#define GET_CURRENT(reg) \
+ movq $STACK_SIZE-8, reg; \
+ orq %rsp, reg; \
+ andq $~7,reg; \
+ movq (reg),reg;
+
+ ALIGN
ENTRY(compat_hypercall)
pushq $0
movl $TRAP_syscall,4(%rsp)
@@ -62,7 +79,7 @@ compat_skip_clobber:
movl %eax,UREGS_rax(%rsp) # save the return value
/* %rbx: struct vcpu */
-compat_test_all_events:
+ENTRY(compat_test_all_events)
cli # tests must not race interrupts
/*compat_test_softirqs:*/
movl VCPU_processor(%rbx),%eax
@@ -164,7 +181,7 @@ 1:
.previous
/* %rdx: trap_bounce, %rbx: struct vcpu */
-compat_post_handle_exception:
+ENTRY(compat_post_handle_exception)
testb $TBF_EXCEPTION,TRAPBOUNCE_flags(%rdx)
jz compat_test_all_events
call compat_create_bounce_frame
diff -r 3050c8339da6 -r 9e27245a692e xen/arch/x86/x86_64/entry.S
--- a/xen/arch/x86/x86_64/entry.S Thu Feb 08 18:18:56 2007 +0000
+++ b/xen/arch/x86/x86_64/entry.S Thu Feb 08 21:30:29 2007 +0000
@@ -319,7 +319,7 @@ domain_crash_synchronous_string:
domain_crash_synchronous_string:
.asciz "domain_crash_sync called from entry.S\n"
-domain_crash_synchronous:
+ENTRY(domain_crash_synchronous)
# Get out of the guest-save area of the stack.
GET_GUEST_REGS(%rax)
movq %rax,%rsp
@@ -357,7 +357,7 @@ ENTRY(ret_from_intr)
ALIGN
/* No special register assumptions. */
-handle_exception:
+ENTRY(handle_exception)
SAVE_ALL
testb $X86_EFLAGS_IF>>8,UREGS_eflags+1(%rsp)
jz exception_with_ints_disabled
@@ -633,7 +633,3 @@ ENTRY(hypercall_args_table)
.rept NR_hypercalls-(.-hypercall_args_table)
.byte 0 /* do_ni_hypercall */
.endr
-
-#ifdef CONFIG_COMPAT
-#include "compat/entry.S"
-#endif
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|