X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_symbiotic.c;h=6ef8c44c0b33cee04a439799e82e6e2cf5875bba;hb=6fa605075d1944da0a88a389122ea24bbc583329;hp=239efdc3c8690eb33f1e5d3c5c833080249bee33;hpb=4a7e284362662dd76319c4d5843deb28fba82ba0;p=palacios.git diff --git a/palacios/src/palacios/vmm_symbiotic.c b/palacios/src/palacios/vmm_symbiotic.c index 239efdc..6ef8c44 100644 --- a/palacios/src/palacios/vmm_symbiotic.c +++ b/palacios/src/palacios/vmm_symbiotic.c @@ -32,11 +32,11 @@ static int cpuid_fn(struct guest_info * core, uint32_t cpuid, *eax = *(uint32_t *)"V3V"; - if ((v3_cpu_types[core->cpu_id] == V3_SVM_CPU) || - (v3_cpu_types[core->cpu_id] == V3_SVM_REV3_CPU)) { + if ((v3_cpu_types[0] == V3_SVM_CPU) || + (v3_cpu_types[0] == V3_SVM_REV3_CPU)) { *ebx = *(uint32_t *)"SVM"; - } else if ((v3_cpu_types[core->cpu_id] == V3_VMX_CPU) || - (v3_cpu_types[core->cpu_id] == V3_VMX_EPT_CPU)) { + } else if ((v3_cpu_types[0] == V3_VMX_CPU) || + (v3_cpu_types[0] == V3_VMX_EPT_CPU)) { *ebx = *(uint32_t *)"VMX"; } @@ -52,20 +52,20 @@ int v3_init_symbiotic_vm(struct v3_vm_info * vm) { v3_hook_cpuid(vm, SYM_CPUID_NUM, cpuid_fn, NULL); if (v3_init_symspy_vm(vm, &(vm_state->symspy_state)) == -1) { - PrintError("Error initializing global SymSpy state\n"); + PrintError(vm,VCORE_NONE, "Error initializing global SymSpy state\n"); return -1; } -#ifdef CONFIG_SYMCALL +#ifdef V3_CONFIG_SYMCALL if (v3_init_symcall_vm(vm) == -1) { - PrintError("Error intializing global SymCall state\n"); + PrintError(vm, VCORE_NONE, "Error intializing global SymCall state\n"); return -1; } #endif -#ifdef CONFIG_SYMMOD +#ifdef V3_CONFIG_SYMMOD if (v3_init_symmod_vm(vm, vm->cfg_data->cfg) == -1) { - PrintError("Error initializing global SymMod state\n"); + PrintError(vm, VCORE_NONE, "Error initializing global SymMod state\n"); return -1; } #endif @@ -75,6 +75,22 @@ int v3_init_symbiotic_vm(struct v3_vm_info * vm) { } +int v3_deinit_symbiotic_vm(struct v3_vm_info * vm) { + +#ifdef V3_CONFIG_SYMMOD + if (v3_deinit_symmod_vm(vm) == -1) { + PrintError(vm, VCORE_NONE, "Error deinitializing global SymMod state\n"); + return -1; + } +#endif + + v3_unhook_cpuid(vm, SYM_CPUID_NUM); + + + return 0; +} + + int v3_init_symbiotic_core(struct guest_info * core) { struct v3_sym_core_state * core_state = &(core->sym_core_state); @@ -82,9 +98,15 @@ int v3_init_symbiotic_core(struct guest_info * core) { if (v3_init_symspy_core(core, &(core_state->symspy_state)) == -1) { - PrintError("Error intializing local SymSpy state\n"); + PrintError(core->vm_info, core, "Error intializing local SymSpy state\n"); return -1; } return 0; } + + +int v3_deinit_symbiotic_core(struct guest_info * core) { + + return 0; +}