diff options
author | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2013-05-01 20:32:27 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-05-08 13:01:22 +0100 |
commit | 8968bafa3170d46d21d8f6ee2d0856f270c864ad (patch) | |
tree | 5eeaa17493fde3cd64faa45c48280cf24a233f94 | |
parent | b5af4d48157d0206bcd515cb2ba4f3d4a3290d69 (diff) | |
download | xen-8968bafa3170d46d21d8f6ee2d0856f270c864ad.tar.gz xen-8968bafa3170d46d21d8f6ee2d0856f270c864ad.tar.bz2 xen-8968bafa3170d46d21d8f6ee2d0856f270c864ad.zip |
xen: move VCPUOP_register_runstate_memory_area to common code
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
-rw-r--r-- | xen/arch/x86/domain.c | 28 | ||||
-rw-r--r-- | xen/common/domain.c | 28 |
2 files changed, 28 insertions, 28 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 0228db2ad9..161d1b34d7 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -966,34 +966,6 @@ arch_do_vcpu_op( switch ( cmd ) { - case VCPUOP_register_runstate_memory_area: - { - struct vcpu_register_runstate_memory_area area; - struct vcpu_runstate_info runstate; - - rc = -EFAULT; - if ( copy_from_guest(&area, arg, 1) ) - break; - - if ( !guest_handle_okay(area.addr.h, 1) ) - break; - - rc = 0; - runstate_guest(v) = area.addr.h; - - if ( v == current ) - { - __copy_to_guest(runstate_guest(v), &v->runstate, 1); - } - else - { - vcpu_runstate_get(v, &runstate); - __copy_to_guest(runstate_guest(v), &runstate, 1); - } - - break; - } - /* * XXX Disable for 4.0.0: __update_vcpu_system_time() writes to the given * virtual address even when running in another domain's address space. diff --git a/xen/common/domain.c b/xen/common/domain.c index d0b2f2eab0..fac3470a33 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -1105,6 +1105,34 @@ long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg) break; } + case VCPUOP_register_runstate_memory_area: + { + struct vcpu_register_runstate_memory_area area; + struct vcpu_runstate_info runstate; + + rc = -EFAULT; + if ( copy_from_guest(&area, arg, 1) ) + break; + + if ( !guest_handle_okay(area.addr.h, 1) ) + break; + + rc = 0; + runstate_guest(v) = area.addr.h; + + if ( v == current ) + { + __copy_to_guest(runstate_guest(v), &v->runstate, 1); + } + else + { + vcpu_runstate_get(v, &runstate); + __copy_to_guest(runstate_guest(v), &runstate, 1); + } + + break; + } + #ifdef VCPU_TRAP_NMI case VCPUOP_send_nmi: if ( !guest_handle_is_null(arg) ) |