*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";
}
return -1;
}
-#ifdef CONFIG_SYMCALL
+#ifdef V3_CONFIG_SYMCALL
if (v3_init_symcall_vm(vm) == -1) {
PrintError("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");
+ return -1;
+ }
+#endif
+
+
+ return 0;
+}
+
+
+int v3_deinit_symbiotic_vm(struct v3_vm_info * vm) {
+#ifdef V3_CONFIG_SYMMOD
+ if (v3_deinit_symmod_vm(vm) == -1) {
+ PrintError("Error deinitializing global SymMod state\n");
+ return -1;
+ }
#endif
+ v3_unhook_cpuid(vm, SYM_CPUID_NUM);
+
return 0;
}
return 0;
}
+
+
+int v3_deinit_symbiotic_core(struct guest_info * core) {
+
+ return 0;
+}