typedef enum {SHADOW_PAGING, NESTED_PAGING} v3_paging_mode_t;
-typedef enum {VM_RUNNING, VM_STOPPED, VM_SUSPENDED, VM_ERROR, VM_EMULATING} v3_vm_operating_mode_t;
+typedef enum {VM_RUNNING, VM_STOPPED, VM_PAUSED, VM_ERROR} v3_vm_operating_mode_t;
typedef enum {CORE_RUNNING, CORE_STOPPED} v3_core_operating_mode_t;
typedef enum {REAL, /*UNREAL,*/ PROTECTED, PROTECTED_PAE, LONG, LONG_32_COMPAT, LONG_16_COMPAT} v3_cpu_mode_t;
while (v3_raise_barrier(vm, NULL) == -1);
+ vm->run_state = VM_PAUSED;
+
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");
+ if (vm->run_state != VM_PAUSED) {
+ PrintError("Tried to continue a VM that was not paused\n");
return -1;
}
v3_lower_barrier(vm);
+ vm->run_state = VM_RUNNING;
+
return 0;
}