# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID d4d880fcef2860ebe3fd54b391147a57db06a5c7
# Parent b2f4823b6ff09017e21c0d44f73c58118f50ea46
Xen-ia64-specific changes to adapt to recent xen-unstable changes
Signed-off-by: Dan Magenheimer <dan.magenheimer@xxxxxx>
diff -r b2f4823b6ff0 -r d4d880fcef28 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c Fri Sep 9 16:30:54 2005
+++ b/xen/arch/ia64/xen/domain.c Fri Sep 9 16:31:36 2005
@@ -1101,3 +1101,19 @@
set_bit(_VCPUF_cpu_migrated, &v->vcpu_flags);
v->processor = newcpu;
}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+ ia64_save_fpu(v->arch._thread.fph);
+#ifdef CONFIG_VTI
+ if (VMX_DOMAIN(v))
+ vmx_save_state(v);
+#else
+ if (0) do {} while(0);
+#endif
+ else {
+ if (IA64_HAS_EXTRA_STATE(v))
+ ia64_save_extra(v);
+ }
+ // FIXME SMP: Anything else needed here for SMP?
+}
diff -r b2f4823b6ff0 -r d4d880fcef28 xen/arch/ia64/xen/hypercall.c
--- a/xen/arch/ia64/xen/hypercall.c Fri Sep 9 16:30:54 2005
+++ b/xen/arch/ia64/xen/hypercall.c Fri Sep 9 16:31:36 2005
@@ -151,7 +151,7 @@
regs->r8 = do_dom0_op(regs->r14);
break;
- case __HYPERVISOR_dom_mem_op:
+ case __HYPERVISOR_memory_op:
#ifdef CONFIG_VTI
regs->r8 = do_dom_mem_op(regs->r14, regs->r15, regs->r16,
regs->r17, regs->r18);
#else
diff -r b2f4823b6ff0 -r d4d880fcef28 xen/arch/ia64/xen/xensetup.c
--- a/xen/arch/ia64/xen/xensetup.c Fri Sep 9 16:30:54 2005
+++ b/xen/arch/ia64/xen/xensetup.c Fri Sep 9 16:31:36 2005
@@ -11,6 +11,7 @@
#include <xen/multiboot.h>
#include <xen/sched.h>
#include <xen/mm.h>
+#include <public/version.h>
//#include <xen/delay.h>
#include <xen/compile.h>
//#include <xen/console.h>
@@ -384,3 +385,17 @@
printk("About to call startup_cpu_idle_loop()\n");
startup_cpu_idle_loop();
}
+
+void arch_get_xen_caps(xen_capabilities_info_t *info)
+{
+ char *p=info->caps;
+
+ *p=0;
+
+ p+=sprintf(p,"xen_%d.%d_ia64 ",XEN_VERSION,XEN_SUBVERSION);
+
+ BUG_ON((p-info->caps)>sizeof(*info));
+
+ if(p>info->caps) *(p-1) = 0;
+}
+
diff -r b2f4823b6ff0 -r d4d880fcef28 xen/include/asm-ia64/mm.h
--- a/xen/include/asm-ia64/mm.h Fri Sep 9 16:30:54 2005
+++ b/xen/include/asm-ia64/mm.h Fri Sep 9 16:31:36 2005
@@ -415,7 +415,7 @@
/* If pmt table is provided by control pannel later, we need __get_user
* here. However if it's allocated by HV, we should access it directly
*/
-#define phys_to_machine_mapping(d, gpfn) \
+#define get_mfn_from_pfn(d, gpfn) \
((d) == dom0 ? gpfn : \
(gpfn <= d->arch.max_pfn ? (d)->arch.pmt[(gpfn)] : \
INVALID_MFN))
@@ -424,7 +424,7 @@
machine_to_phys_mapping[(mfn)]
#define __gpfn_to_mfn(_d, gpfn) \
- phys_to_machine_mapping((_d), (gpfn))
+ get_mfn_from_pfn((_d), (gpfn))
#define __gpfn_invalid(_d, gpfn) \
(__gpfn_to_mfn((_d), (gpfn)) & GPFN_INV_MASK)
diff -r b2f4823b6ff0 -r d4d880fcef28 xen/include/asm-ia64/xenpage.h
--- a/xen/include/asm-ia64/xenpage.h Fri Sep 9 16:30:54 2005
+++ b/xen/include/asm-ia64/xenpage.h Fri Sep 9 16:31:36 2005
@@ -29,6 +29,25 @@
unsigned long l;
void *p;
} xen_va;
+
+static inline int get_order_from_bytes(physaddr_t size)
+{
+ int order;
+ size = (size-1) >> PAGE_SHIFT;
+ for ( order = 0; size; order++ )
+ size >>= 1;
+ return order;
+}
+
+static inline int get_order_from_pages(unsigned long nr_pages)
+{
+ int order;
+ nr_pages--;
+ for ( order = 0; nr_pages; order++ )
+ nr_pages >>= 1;
+ return order;
+}
+
#endif
#undef __pa
diff -r b2f4823b6ff0 -r d4d880fcef28 xen/include/asm-ia64/xensystem.h
--- a/xen/include/asm-ia64/xensystem.h Fri Sep 9 16:30:54 2005
+++ b/xen/include/asm-ia64/xensystem.h Fri Sep 9 16:31:36 2005
@@ -22,6 +22,7 @@
#endif // CONFIG_VTI
#define XEN_START_ADDR 0xf000000000000000
+#define HYPERVISOR_VIRT_START 0xf000000000000000
#undef KERNEL_START
#define KERNEL_START 0xf000000004000000
#undef PERCPU_ADDR
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|