syscall_info.target_addr = (uint64_t) ((((uint64_t)src.hi) << 32) | src.lo);
PrintDebug("LSTAR Write: %p\n", (void*)syscall_info.target_addr);
- core->ctrl_regs.lstar = syscall_info.target_addr;
+ core->msrs.lstar = syscall_info.target_addr;
return 0;
}
core->vm_regs.rax = syscall_info.target_addr;
/* redirect syscalls henceforth */
- core->ctrl_regs.lstar = syscall_stub;
+ core->msrs.lstar = syscall_stub;
return 0;
}
static int syscall_cleanup (struct guest_info * core, unsigned int hcall_id, void * priv_data) {
- core->ctrl_regs.lstar = syscall_info.target_addr;
+ core->msrs.lstar = syscall_info.target_addr;
PrintDebug("original syscall entry point restored\n");
return 0;
}
// Set LSTAR value seen by hardware while the guest is running
PrintDebug("replacing with %lx\n", SYSCALL_MAGIC_ADDR);
- core->ctrl_regs.lstar = SYSCALL_MAGIC_ADDR;
+ core->msrs.lstar = SYSCALL_MAGIC_ADDR;
return 0;
}
#endif
#ifdef V3_CONFIG_EXT_SW_INTERRUPTS
-#include <interfaces/sw_intr.h>
+#include <gears/sw_intr.h>
#endif
int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_info1, addr_t exit_info2) {