#include <palacios/vm_guest_mem.h>
#include <palacios/vmm_lowlevel.h>
#include <palacios/vmm_sprintf.h>
-
+#include <palacios/vmm_muxer.h>
v3_cpu_mode_t v3_get_vm_cpu_mode(struct guest_info * info) {
int v3_init_vm(struct v3_vm_info * vm) {
v3_cpu_arch_t cpu_type = v3_get_cpu_type(v3_get_cpu_id());
+
+ if (v3_get_foreground_vm() == NULL) {
+ v3_set_foreground_vm(vm);
+ }
+
#ifdef CONFIG_TELEMETRY
v3_init_telemetry(vm);
#endif
return -1;
}
-#ifdef CONFIG_SYMBIOTIC
- v3_init_sym_iface(vm);
-#endif
- v3_init_dev_mgr(vm);
+ if (v3_init_shdw_impl(vm) == -1) {
+ PrintError("VM initialization error in shadow implementaion\n");
+ return -1;
+ }
-#ifdef CONFIG_SYMBIOTIC_SWAP
- PrintDebug("initializing symbiotic swap\n");
- v3_init_sym_swap(vm);
+
+#ifdef CONFIG_SYMBIOTIC
+ v3_init_symbiotic_vm(vm);
#endif
+ v3_init_dev_mgr(vm);
// init SVM/VMX
#endif
if (core->shdw_pg_mode == SHADOW_PAGING) {
- v3_init_shadow_page_state(core);
+ v3_init_shdw_pg_state(core);
}
v3_init_time(core);
#ifdef CONFIG_SYMBIOTIC
- v3_init_sym_core(core);
+ v3_init_symbiotic_core(core);
#endif
// init SVM/VMX