X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm.c;h=0597be115e45f50cc4099c11e40319ca35de2a41;hb=9a9c14099c09e9ed86d8ac2f73f7406d0ac8a90b;hp=d60e55a04dfbd80dc8bd9984acc9ded7945d5ec0;hpb=7b67d47d87463b237db5ad43941742c5a5d4b0bf;p=palacios.releases.git diff --git a/palacios/src/palacios/vmm.c b/palacios/src/palacios/vmm.c index d60e55a..0597be1 100644 --- a/palacios/src/palacios/vmm.c +++ b/palacios/src/palacios/vmm.c @@ -404,6 +404,32 @@ int v3_stop_vm(struct v3_vm_info * vm) { } +int v3_pause_vm(struct v3_vm_info * vm) { + + if (vm->run_state != VM_RUNNING) { + PrintError("Tried to pause a VM that was not running\n"); + return -1; + } + + while (v3_raise_barrier(vm, NULL) == -1); + + return 0; +} + + +int v3_continue_vm(struct v3_vm_info * vm) { + + if (vm->run_state != VM_RUNNING) { + PrintError("Tried to continue a VM that was not already running\n"); + return -1; + } + + v3_lower_barrier(vm); + + return 0; +} + + int v3_free_vm(struct v3_vm_info * vm) { int i = 0; // deinitialize guest (free memory, etc...)