PrintError("SVM Returned:(VMCB=%p)\n", (void *)(info->vmm_data));
- PrintError("RIP: %p\n", (void *)(guest_state->rip));
- PrintError("RIP Linear: %p\n", (void *)(rip_addr));
+ PrintError("RIP: %p\n", (void *)(addr_t)(guest_state->rip));
+ PrintError("RIP Linear: %p\n", (void *)(addr_t)(rip_addr));
- PrintError("SVM Returned: Exit Code: %p\n", (void *)exit_code);
+ PrintError("SVM Returned: Exit Code: %p\n", (void *)(addr_t)exit_code);
PrintError("io_info1 low = 0x%.8x\n", *(uint_t*)&(guest_ctrl->exit_info1));
PrintError("io_info1 high = 0x%.8x\n", *(uint_t *)(((uchar_t *)&(guest_ctrl->exit_info1)) + 4));
if (info->mem_mode == PHYSICAL_MEM) {
- if (guest_pa_to_host_pa(info, guest_state->rip, &host_addr) == -1) {
+ if (guest_pa_to_host_va(info, guest_state->rip, &host_addr) == -1) {
PrintError("Could not translate guest_state->rip to host address\n");
return -1;
}
} else if (info->mem_mode == VIRTUAL_MEM) {
- if (guest_va_to_host_pa(info, guest_state->rip, &host_addr) == -1) {
+ if (guest_va_to_host_va(info, guest_state->rip, &host_addr) == -1) {
PrintError("Could not translate guest_state->rip to host address\n");
return -1;
}
#ifdef DEBUG_INTERRUPTS
PrintDebug("Injecting Interrupt %d (EIP=%p)\n",
guest_ctrl->guest_ctrl.V_INTR_VECTOR,
- (void *)info->rip);
+ (void *)(addr_t)info->rip);
#endif
v3_injecting_intr(info, irq, EXTERNAL_IRQ);
#ifdef DEBUG_INTERRUPTS
PrintDebug("Injecting Interrupt %d (EIP=%p)\n",
guest_ctrl->EVENTINJ.vector,
- (void *)info->rip);
+ (void *)(addr_t)info->rip);
#endif
v3_injecting_intr(info, excp, EXCEPTION);
break;