int main() { try { int num_cpus = 1; vm_new(num_cpus); int cpu = 0; Registers* regs = cpu_map_registers(cpu); cpu_run(cpu); } catch (std::exception& e) { printf("error: %s\n", e.what()); } vm_cleanup(); return 0; }
int vm_reinit(struct vm *vm) { int error; /* * A virtual machine can be reset only if all vcpus are suspended. */ if (CPU_CMP(&vm->suspended_cpus, &vm->active_cpus) == 0) { vm_cleanup(vm, false); vm_init(vm, false); error = 0; } else { error = EBUSY; } return (error); }
void vm_destroy(struct vm *vm) { vm_cleanup(vm, true); free(vm); }