aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-04-02 09:49:17 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-04-02 09:49:17 +0100
commit10daa80b938a274eec3e471ad8891ffcb49d065b (patch)
tree4efe0467bcda57eec60bf9b96f34ae0eaf7de166
parent8adde1d0c5aa2783455226fec6cd1b679dcaecab (diff)
downloadxen-10daa80b938a274eec3e471ad8891ffcb49d065b.tar.gz
xen-10daa80b938a274eec3e471ad8891ffcb49d065b.tar.bz2
xen-10daa80b938a274eec3e471ad8891ffcb49d065b.zip
Enable HYPERVISOR_sched_op() and HYPERVISOR_sched_opt_compat() for ia64.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
-rw-r--r--xen/arch/ia64/xen/hypercall.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/xen/arch/ia64/xen/hypercall.c b/xen/arch/ia64/xen/hypercall.c
index 971007cbf7..286f1a42ff 100644
--- a/xen/arch/ia64/xen/hypercall.c
+++ b/xen/arch/ia64/xen/hypercall.c
@@ -38,7 +38,7 @@ hypercall_t ia64_hypercall_table[] =
(hypercall_t)do_ni_hypercall, /* do_stack_switch */
(hypercall_t)do_ni_hypercall, /* do_set_callbacks */
(hypercall_t)do_ni_hypercall, /* do_fpu_taskswitch */ /* 5 */
- (hypercall_t)do_ni_hypercall, /* do_sched_op_compat */
+ (hypercall_t)do_sched_op_compat,
(hypercall_t)do_dom0_op,
(hypercall_t)do_ni_hypercall, /* do_set_debugreg */
(hypercall_t)do_ni_hypercall, /* do_get_debugreg */
@@ -61,7 +61,7 @@ hypercall_t ia64_hypercall_table[] =
(hypercall_t)do_ni_hypercall, /* do_mmuext_op */
(hypercall_t)do_ni_hypercall, /* do_acm_op */
(hypercall_t)do_ni_hypercall, /* do_nmi_op */
- (hypercall_t)do_ni_hypercall, /* */
+ (hypercall_t)do_sched_op,
(hypercall_t)do_ni_hypercall, /* */ /* 30 */
(hypercall_t)do_ni_hypercall /* */
};
@@ -70,6 +70,11 @@ static int
xen_hypercall (struct pt_regs *regs)
{
switch (regs->r2) {
+ case __HYPERVISOR_sched_op_compat:
+ regs->r8 = do_sched_op_compat((int) regs->r14,
+ (unsigned long) regs->r15);
+ break;
+
case __HYPERVISOR_dom0_op:
regs->r8 = do_dom0_op(guest_handle_from_ptr(regs->r14,
dom0_op_t));
@@ -117,6 +122,11 @@ xen_hypercall (struct pt_regs *regs)
regs->r8 = do_multicall(guest_handle_from_ptr(regs->r14, multicall_entry_t), (unsigned int) regs->r15);
break;
+ case __HYPERVISOR_sched_op:
+ regs->r8 = do_sched_op((int) regs->r14,
+ guest_handle_from_ptr(regs->r15, void));
+ break;
+
default:
printf("unknown xen hypercall %lx\n", regs->r2);
regs->r8 = do_ni_hypercall();