#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) {
return -1;
}
- if (guest_va_to_host_va(info, gdt->base, &gdt_addr) == -1) {
+ if (v3_gva_to_hva(info, gdt->base, &gdt_addr) == -1) {
PrintError("Unable to translate GDT address\n");
return -1;
}
}
v3_print_GPRs(info);
+ v3_print_mem_map(info->vm_info);
+
v3_print_stack(info);
}
V3_Print("Stack at %p:\n", (void *)linear_addr);
if (info->mem_mode == PHYSICAL_MEM) {
- if (guest_pa_to_host_va(info, linear_addr, &host_addr) == -1) {
+ if (v3_gpa_to_hva(info, linear_addr, &host_addr) == -1) {
PrintError("Could not translate Stack address\n");
return;
}
} else if (info->mem_mode == VIRTUAL_MEM) {
- if (guest_va_to_host_va(info, linear_addr, &host_addr) == -1) {
+ if (v3_gva_to_hva(info, linear_addr, &host_addr) == -1) {
PrintError("Could not translate Virtual Stack address\n");
return;
}
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;
}
+ v3_init_mem_hooks(vm);
if (v3_init_shdw_impl(vm) == -1) {
PrintError("VM initialization error in shadow implementaion\n");
v3_init_dev_mgr(vm);
-#ifdef CONFIG_SYMBIOTIC_SWAP
- PrintDebug("initializing symbiotic swap\n");
- v3_init_sym_swap(vm);
-#endif
-
-
-
// init SVM/VMX
#ifdef CONFIG_SVM
if ((cpu_type == V3_SVM_CPU) || (cpu_type == V3_SVM_REV3_CPU)) {