diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-04-02 09:49:17 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-04-02 09:49:17 +0100 |
commit | 10daa80b938a274eec3e471ad8891ffcb49d065b (patch) | |
tree | 4efe0467bcda57eec60bf9b96f34ae0eaf7de166 | |
parent | 8adde1d0c5aa2783455226fec6cd1b679dcaecab (diff) | |
download | xen-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.c | 14 |
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(); |