#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/version.h>
+ #include <linux/errno.h>
#include <xen/interface/xen.h>
#include <xen/interface/dom0_ops.h>
+ #include <xen/interface/sched.h>
#include <asm/ptrace.h>
#include <asm/page.h>
+#include <asm/xen/privop.h> // for running_on_xen
extern shared_info_t *HYPERVISOR_shared_info;
extern start_info_t *xen_start_info;
break;
case __HYPERVISOR_multicall:
- regs->r8 = do_multicall(guest_handle_from_ptr(regs->r14, multicall_entry_t), (unsigned int) regs->r15);
+ 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();