From: Kyle Hale Date: Fri, 13 Apr 2012 23:32:03 +0000 (-0500) Subject: Gears system call hijacking core changes X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=commitdiff_plain;h=1730c6edaa4ca2a0e1dfc6d0ec45c15970ed1bff;hp=df69e9f90c11f91a7bb3ccdf4218ef61124a5442;p=palacios.git Gears system call hijacking core changes --- diff --git a/palacios/src/gears/ext_syscall_hijack.c b/palacios/src/gears/ext_syscall_hijack.c index f688182..56e1d36 100644 --- a/palacios/src/gears/ext_syscall_hijack.c +++ b/palacios/src/gears/ext_syscall_hijack.c @@ -185,7 +185,7 @@ static int v3_handle_lstar_write (struct guest_info * core, uint_t msr, struct v 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; } @@ -217,14 +217,14 @@ static int syscall_setup (struct guest_info * core, unsigned int hcall_id, void 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; } @@ -278,7 +278,7 @@ static int v3_handle_lstar_write (struct guest_info * core, uint_t msr, struct v // 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; } diff --git a/palacios/src/palacios/svm_handler.c b/palacios/src/palacios/svm_handler.c index 1854c53..1fc0b7c 100644 --- a/palacios/src/palacios/svm_handler.c +++ b/palacios/src/palacios/svm_handler.c @@ -44,7 +44,7 @@ #endif #ifdef V3_CONFIG_EXT_SW_INTERRUPTS -#include +#include #endif int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_info1, addr_t exit_info2) {