aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-01-19 15:23:41 +0000
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-01-19 15:23:41 +0000
commite105919b0120a0eccfe59ece2ce545ddd6f0881f (patch)
tree216cb735cbd311c4e62840e37c64763f2f0960a3 /xen/common
parent6b23fd229a317c9504cd19968329597f8f149e7e (diff)
downloadxen-e105919b0120a0eccfe59ece2ce545ddd6f0881f.tar.gz
xen-e105919b0120a0eccfe59ece2ce545ddd6f0881f.tar.bz2
xen-e105919b0120a0eccfe59ece2ce545ddd6f0881f.zip
Add resumedomain domctl to resume a domain after checkpoint.
Export resumedomain domctl to libxc, xend. Signed-off-by: Brendan Cully <brendan@cs.ubc.ca>
Diffstat (limited to 'xen/common')
-rw-r--r--xen/common/domctl.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 230d204912..a374b1ca32 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -286,6 +286,23 @@ ret_t do_domctl(XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
}
break;
+ case XEN_DOMCTL_resumedomain:
+ {
+ struct domain *d = find_domain_by_id(op->domain);
+ struct vcpu *v;
+
+ ret = -ESRCH;
+ if ( d != NULL )
+ {
+ ret = 0;
+ if ( test_and_clear_bit(_DOMF_shutdown, &d->domain_flags) )
+ for_each_vcpu ( d, v )
+ vcpu_wake(v);
+ put_domain(d);
+ }
+ }
+ break;
+
case XEN_DOMCTL_createdomain:
{
struct domain *d;