From: Jack Lange Date: Fri, 29 Oct 2010 23:04:26 +0000 (-0500) Subject: minor fixes. Can now successfully boot up when Qemu rarely exposes a plausible TSC... X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=30434aee50c56ff4a23400191562c5c9ffaff830 minor fixes. Can now successfully boot up when Qemu rarely exposes a plausible TSC rate. --- diff --git a/palacios/include/palacios/vmcs_gen.h b/palacios/include/palacios/vmcs_gen.h deleted file mode 100644 index a78990b..0000000 --- a/palacios/include/palacios/vmcs_gen.h +++ /dev/null @@ -1,809 +0,0 @@ -/* - * This file is part of the Palacios Virtual Machine Monitor developed - * by the V3VEE Project with funding from the United States National - * Science Foundation and the Department of Energy. - * - * The V3VEE Project is a joint project between Northwestern University - * and the University of New Mexico. You can find out more at - * http://www.v3vee.org - * - * Copyright (c) 2008, The V3VEE Project - * All rights reserved. - * - * Author: Automatically Generated File - * - * This is free software. You are permitted to use, - * redistribute, and modify it as specified in the file "V3VEE_LICENSE". - */ - -#ifndef __VMCS_GEN__ -#define __VMCS_GEN__ - -#ifdef __V3VEE__ - - -#include -#include - -void Set_VMCS_GUEST_ES_SELECTOR(uint_t val); -uint_t Get_VMCS_GUEST_ES_SELECTOR(); - -void PrintTrace_VMCS_GUEST_ES_SELECTOR(); - - -void Set_VMCS_GUEST_CS_SELECTOR(uint_t val); -uint_t Get_VMCS_GUEST_CS_SELECTOR(); - -void PrintTrace_VMCS_GUEST_CS_SELECTOR(); - - -void Set_VMCS_GUEST_SS_SELECTOR(uint_t val); -uint_t Get_VMCS_GUEST_SS_SELECTOR(); - -void PrintTrace_VMCS_GUEST_SS_SELECTOR(); - - -void Set_VMCS_GUEST_DS_SELECTOR(uint_t val); -uint_t Get_VMCS_GUEST_DS_SELECTOR(); - -void PrintTrace_VMCS_GUEST_DS_SELECTOR(); - - -void Set_VMCS_GUEST_FS_SELECTOR(uint_t val); -uint_t Get_VMCS_GUEST_FS_SELECTOR(); - -void PrintTrace_VMCS_GUEST_FS_SELECTOR(); - - -void Set_VMCS_GUEST_GS_SELECTOR(uint_t val); -uint_t Get_VMCS_GUEST_GS_SELECTOR(); - -void PrintTrace_VMCS_GUEST_GS_SELECTOR(); - - -void Set_VMCS_GUEST_LDTR_SELECTOR(uint_t val); -uint_t Get_VMCS_GUEST_LDTR_SELECTOR(); - -void PrintTrace_VMCS_GUEST_LDTR_SELECTOR(); - - -void Set_VMCS_GUEST_TR_SELECTOR(uint_t val); -uint_t Get_VMCS_GUEST_TR_SELECTOR(); - -void PrintTrace_VMCS_GUEST_TR_SELECTOR(); - - -void Set_VMCS_HOST_ES_SELECTOR(uint_t val); -uint_t Get_VMCS_HOST_ES_SELECTOR(); - -void PrintTrace_VMCS_HOST_ES_SELECTOR(); - - -void Set_VMCS_HOST_CS_SELECTOR(uint_t val); -uint_t Get_VMCS_HOST_CS_SELECTOR(); - -void PrintTrace_VMCS_HOST_CS_SELECTOR(); - - -void Set_VMCS_HOST_SS_SELECTOR(uint_t val); -uint_t Get_VMCS_HOST_SS_SELECTOR(); - -void PrintTrace_VMCS_HOST_SS_SELECTOR(); - - -void Set_VMCS_HOST_DS_SELECTOR(uint_t val); -uint_t Get_VMCS_HOST_DS_SELECTOR(); - -void PrintTrace_VMCS_HOST_DS_SELECTOR(); - - -void Set_VMCS_HOST_FS_SELECTOR(uint_t val); -uint_t Get_VMCS_HOST_FS_SELECTOR(); - -void PrintTrace_VMCS_HOST_FS_SELECTOR(); - - -void Set_VMCS_HOST_GS_SELECTOR(uint_t val); -uint_t Get_VMCS_HOST_GS_SELECTOR(); - -void PrintTrace_VMCS_HOST_GS_SELECTOR(); - - -void Set_VMCS_HOST_TR_SELECTOR(uint_t val); -uint_t Get_VMCS_HOST_TR_SELECTOR(); - -void PrintTrace_VMCS_HOST_TR_SELECTOR(); - - -void Set_IO_BITMAP_A_ADDR(uint_t val); -uint_t Get_IO_BITMAP_A_ADDR(); - -void PrintTrace_IO_BITMAP_A_ADDR(); - - -void Set_IO_BITMAP_A_ADDR_HIGH(uint_t val); -uint_t Get_IO_BITMAP_A_ADDR_HIGH(); - -void PrintTrace_IO_BITMAP_A_ADDR_HIGH(); - - -void Set_IO_BITMAP_B_ADDR(uint_t val); -uint_t Get_IO_BITMAP_B_ADDR(); - -void PrintTrace_IO_BITMAP_B_ADDR(); - - -void Set_IO_BITMAP_B_ADDR_HIGH(uint_t val); -uint_t Get_IO_BITMAP_B_ADDR_HIGH(); - -void PrintTrace_IO_BITMAP_B_ADDR_HIGH(); - - -void Set_MSR_BITMAPS(uint_t val); -uint_t Get_MSR_BITMAPS(); - -void PrintTrace_MSR_BITMAPS(); - - -void Set_MSR_BITMAPS_HIGH(uint_t val); -uint_t Get_MSR_BITMAPS_HIGH(); - -void PrintTrace_MSR_BITMAPS_HIGH(); - - -void Set_VM_EXIT_MSR_STORE_ADDR(uint_t val); -uint_t Get_VM_EXIT_MSR_STORE_ADDR(); - -void PrintTrace_VM_EXIT_MSR_STORE_ADDR(); - - -void Set_VM_EXIT_MSR_STORE_ADDR_HIGH(uint_t val); -uint_t Get_VM_EXIT_MSR_STORE_ADDR_HIGH(); - -void PrintTrace_VM_EXIT_MSR_STORE_ADDR_HIGH(); - - -void Set_VM_EXIT_MSR_LOAD_ADDR(uint_t val); -uint_t Get_VM_EXIT_MSR_LOAD_ADDR(); - -void PrintTrace_VM_EXIT_MSR_LOAD_ADDR(); - - -void Set_VM_EXIT_MSR_LOAD_ADDR_HIGH(uint_t val); -uint_t Get_VM_EXIT_MSR_LOAD_ADDR_HIGH(); - -void PrintTrace_VM_EXIT_MSR_LOAD_ADDR_HIGH(); - - -void Set_VM_ENTRY_MSR_LOAD_ADDR(uint_t val); -uint_t Get_VM_ENTRY_MSR_LOAD_ADDR(); - -void PrintTrace_VM_ENTRY_MSR_LOAD_ADDR(); - - -void Set_VM_ENTRY_MSR_LOAD_ADDR_HIGH(uint_t val); -uint_t Get_VM_ENTRY_MSR_LOAD_ADDR_HIGH(); - -void PrintTrace_VM_ENTRY_MSR_LOAD_ADDR_HIGH(); - - -void Set_VMCS_EXEC_PTR(uint_t val); -uint_t Get_VMCS_EXEC_PTR(); - -void PrintTrace_VMCS_EXEC_PTR(); - - -void Set_VMCS_EXEC_PTR_HIGH(uint_t val); -uint_t Get_VMCS_EXEC_PTR_HIGH(); - -void PrintTrace_VMCS_EXEC_PTR_HIGH(); - - -void Set_TSC_OFFSET(uint_t val); -uint_t Get_TSC_OFFSET(); - -void PrintTrace_TSC_OFFSET(); - - -void Set_TSC_OFFSET_HIGH(uint_t val); -uint_t Get_TSC_OFFSET_HIGH(); - -void PrintTrace_TSC_OFFSET_HIGH(); - - -void Set_VIRT_APIC_PAGE_ADDR(uint_t val); -uint_t Get_VIRT_APIC_PAGE_ADDR(); - -void PrintTrace_VIRT_APIC_PAGE_ADDR(); - - -void Set_VIRT_APIC_PAGE_ADDR_HIGH(uint_t val); -uint_t Get_VIRT_APIC_PAGE_ADDR_HIGH(); - -void PrintTrace_VIRT_APIC_PAGE_ADDR_HIGH(); - - -void Set_VMCS_LINK_PTR(uint_t val); -uint_t Get_VMCS_LINK_PTR(); - -void PrintTrace_VMCS_LINK_PTR(); - - -void Set_VMCS_LINK_PTR_HIGH(uint_t val); -uint_t Get_VMCS_LINK_PTR_HIGH(); - -void PrintTrace_VMCS_LINK_PTR_HIGH(); - - -void Set_GUEST_IA32_DEBUGCTL(uint_t val); -uint_t Get_GUEST_IA32_DEBUGCTL(); - -void PrintTrace_GUEST_IA32_DEBUGCTL(); - - -void Set_GUEST_IA32_DEBUGCTL_HIGH(uint_t val); -uint_t Get_GUEST_IA32_DEBUGCTL_HIGH(); - -void PrintTrace_GUEST_IA32_DEBUGCTL_HIGH(); - - -void Set_PIN_VM_EXEC_CTRLS(uint_t val); -uint_t Get_PIN_VM_EXEC_CTRLS(); - -void PrintTrace_PIN_VM_EXEC_CTRLS(); - - -void Set_PROC_VM_EXEC_CTRLS(uint_t val); -uint_t Get_PROC_VM_EXEC_CTRLS(); - -void PrintTrace_PROC_VM_EXEC_CTRLS(); - - -void Set_EXCEPTION_BITMAP(uint_t val); -uint_t Get_EXCEPTION_BITMAP(); - -void PrintTrace_EXCEPTION_BITMAP(); - - -void Set_PAGE_FAULT_ERROR_MASK(uint_t val); -uint_t Get_PAGE_FAULT_ERROR_MASK(); - -void PrintTrace_PAGE_FAULT_ERROR_MASK(); - - -void Set_PAGE_FAULT_ERROR_MATCH(uint_t val); -uint_t Get_PAGE_FAULT_ERROR_MATCH(); - -void PrintTrace_PAGE_FAULT_ERROR_MATCH(); - - -void Set_CR3_TARGET_COUNT(uint_t val); -uint_t Get_CR3_TARGET_COUNT(); - -void PrintTrace_CR3_TARGET_COUNT(); - - -void Set_VM_EXIT_CTRLS(uint_t val); -uint_t Get_VM_EXIT_CTRLS(); - -void PrintTrace_VM_EXIT_CTRLS(); - - -void Set_VM_EXIT_MSR_STORE_COUNT(uint_t val); -uint_t Get_VM_EXIT_MSR_STORE_COUNT(); - -void PrintTrace_VM_EXIT_MSR_STORE_COUNT(); - - -void Set_VM_EXIT_MSR_LOAD_COUNT(uint_t val); -uint_t Get_VM_EXIT_MSR_LOAD_COUNT(); - -void PrintTrace_VM_EXIT_MSR_LOAD_COUNT(); - - -void Set_VM_ENTRY_CTRLS(uint_t val); -uint_t Get_VM_ENTRY_CTRLS(); - -void PrintTrace_VM_ENTRY_CTRLS(); - - -void Set_VM_ENTRY_MSR_LOAD_COUNT(uint_t val); -uint_t Get_VM_ENTRY_MSR_LOAD_COUNT(); - -void PrintTrace_VM_ENTRY_MSR_LOAD_COUNT(); - - -void Set_VM_ENTRY_INT_INFO_FIELD(uint_t val); -uint_t Get_VM_ENTRY_INT_INFO_FIELD(); - -void PrintTrace_VM_ENTRY_INT_INFO_FIELD(); - - -void Set_VM_ENTRY_EXCEPTION_ERROR(uint_t val); -uint_t Get_VM_ENTRY_EXCEPTION_ERROR(); - -void PrintTrace_VM_ENTRY_EXCEPTION_ERROR(); - - -void Set_VM_ENTRY_INSTR_LENGTH(uint_t val); -uint_t Get_VM_ENTRY_INSTR_LENGTH(); - -void PrintTrace_VM_ENTRY_INSTR_LENGTH(); - - -void Set_TPR_THRESHOLD(uint_t val); -uint_t Get_TPR_THRESHOLD(); - -void PrintTrace_TPR_THRESHOLD(); - - -void Set_VM_INSTR_ERROR(uint_t val); -uint_t Get_VM_INSTR_ERROR(); - -void PrintTrace_VM_INSTR_ERROR(); - - -void Set_EXIT_REASON(uint_t val); -uint_t Get_EXIT_REASON(); - -void PrintTrace_EXIT_REASON(); - - -void Set_VM_EXIT_INT_INFO(uint_t val); -uint_t Get_VM_EXIT_INT_INFO(); - -void PrintTrace_VM_EXIT_INT_INFO(); - - -void Set_VM_EXIT_INT_ERROR(uint_t val); -uint_t Get_VM_EXIT_INT_ERROR(); - -void PrintTrace_VM_EXIT_INT_ERROR(); - - -void Set_IDT_VECTOR_INFO(uint_t val); -uint_t Get_IDT_VECTOR_INFO(); - -void PrintTrace_IDT_VECTOR_INFO(); - - -void Set_IDT_VECTOR_ERROR(uint_t val); -uint_t Get_IDT_VECTOR_ERROR(); - -void PrintTrace_IDT_VECTOR_ERROR(); - - -void Set_VM_EXIT_INSTR_LENGTH(uint_t val); -uint_t Get_VM_EXIT_INSTR_LENGTH(); - -void PrintTrace_VM_EXIT_INSTR_LENGTH(); - - -void Set_VMX_INSTR_INFO(uint_t val); -uint_t Get_VMX_INSTR_INFO(); - -void PrintTrace_VMX_INSTR_INFO(); - - -void Set_GUEST_ES_LIMIT(uint_t val); -uint_t Get_GUEST_ES_LIMIT(); - -void PrintTrace_GUEST_ES_LIMIT(); - - -void Set_GUEST_CS_LIMIT(uint_t val); -uint_t Get_GUEST_CS_LIMIT(); - -void PrintTrace_GUEST_CS_LIMIT(); - - -void Set_GUEST_SS_LIMIT(uint_t val); -uint_t Get_GUEST_SS_LIMIT(); - -void PrintTrace_GUEST_SS_LIMIT(); - - -void Set_GUEST_DS_LIMIT(uint_t val); -uint_t Get_GUEST_DS_LIMIT(); - -void PrintTrace_GUEST_DS_LIMIT(); - - -void Set_GUEST_FS_LIMIT(uint_t val); -uint_t Get_GUEST_FS_LIMIT(); - -void PrintTrace_GUEST_FS_LIMIT(); - - -void Set_GUEST_GS_LIMIT(uint_t val); -uint_t Get_GUEST_GS_LIMIT(); - -void PrintTrace_GUEST_GS_LIMIT(); - - -void Set_GUEST_LDTR_LIMIT(uint_t val); -uint_t Get_GUEST_LDTR_LIMIT(); - -void PrintTrace_GUEST_LDTR_LIMIT(); - - -void Set_GUEST_TR_LIMIT(uint_t val); -uint_t Get_GUEST_TR_LIMIT(); - -void PrintTrace_GUEST_TR_LIMIT(); - - -void Set_GUEST_GDTR_LIMIT(uint_t val); -uint_t Get_GUEST_GDTR_LIMIT(); - -void PrintTrace_GUEST_GDTR_LIMIT(); - - -void Set_GUEST_IDTR_LIMIT(uint_t val); -uint_t Get_GUEST_IDTR_LIMIT(); - -void PrintTrace_GUEST_IDTR_LIMIT(); - - -void Set_GUEST_ES_ACCESS(uint_t val); -uint_t Get_GUEST_ES_ACCESS(); - -void PrintTrace_GUEST_ES_ACCESS(); - - -void Set_GUEST_CS_ACCESS(uint_t val); -uint_t Get_GUEST_CS_ACCESS(); - -void PrintTrace_GUEST_CS_ACCESS(); - - -void Set_GUEST_SS_ACCESS(uint_t val); -uint_t Get_GUEST_SS_ACCESS(); - -void PrintTrace_GUEST_SS_ACCESS(); - - -void Set_GUEST_DS_ACCESS(uint_t val); -uint_t Get_GUEST_DS_ACCESS(); - -void PrintTrace_GUEST_DS_ACCESS(); - - -void Set_GUEST_FS_ACCESS(uint_t val); -uint_t Get_GUEST_FS_ACCESS(); - -void PrintTrace_GUEST_FS_ACCESS(); - - -void Set_GUEST_GS_ACCESS(uint_t val); -uint_t Get_GUEST_GS_ACCESS(); - -void PrintTrace_GUEST_GS_ACCESS(); - - -void Set_GUEST_LDTR_ACCESS(uint_t val); -uint_t Get_GUEST_LDTR_ACCESS(); - -void PrintTrace_GUEST_LDTR_ACCESS(); - - -void Set_GUEST_TR_ACCESS(uint_t val); -uint_t Get_GUEST_TR_ACCESS(); - -void PrintTrace_GUEST_TR_ACCESS(); - - -void Set_GUEST_INT_STATE(uint_t val); -uint_t Get_GUEST_INT_STATE(); - -void PrintTrace_GUEST_INT_STATE(); - - -void Set_GUEST_ACTIVITY_STATE(uint_t val); -uint_t Get_GUEST_ACTIVITY_STATE(); - -void PrintTrace_GUEST_ACTIVITY_STATE(); - - -void Set_GUEST_SMBASE(uint_t val); -uint_t Get_GUEST_SMBASE(); - -void PrintTrace_GUEST_SMBASE(); - - -void Set_GUEST_IA32_SYSENTER_CS(uint_t val); -uint_t Get_GUEST_IA32_SYSENTER_CS(); - -void PrintTrace_GUEST_IA32_SYSENTER_CS(); - - -void Set_HOST_IA32_SYSENTER_CS(uint_t val); -uint_t Get_HOST_IA32_SYSENTER_CS(); - -void PrintTrace_HOST_IA32_SYSENTER_CS(); - - -void Set_CR0_GUEST_HOST_MASK(uint_t val); -uint_t Get_CR0_GUEST_HOST_MASK(); - -void PrintTrace_CR0_GUEST_HOST_MASK(); - - -void Set_CR4_GUEST_HOST_MASK(uint_t val); -uint_t Get_CR4_GUEST_HOST_MASK(); - -void PrintTrace_CR4_GUEST_HOST_MASK(); - - -void Set_CR0_READ_SHADOW(uint_t val); -uint_t Get_CR0_READ_SHADOW(); - -void PrintTrace_CR0_READ_SHADOW(); - - -void Set_CR4_READ_SHADOW(uint_t val); -uint_t Get_CR4_READ_SHADOW(); - -void PrintTrace_CR4_READ_SHADOW(); - - -void Set_CR3_TARGET_VALUE_0(uint_t val); -uint_t Get_CR3_TARGET_VALUE_0(); - -void PrintTrace_CR3_TARGET_VALUE_0(); - - -void Set_CR3_TARGET_VALUE_1(uint_t val); -uint_t Get_CR3_TARGET_VALUE_1(); - -void PrintTrace_CR3_TARGET_VALUE_1(); - - -void Set_CR3_TARGET_VALUE_2(uint_t val); -uint_t Get_CR3_TARGET_VALUE_2(); - -void PrintTrace_CR3_TARGET_VALUE_2(); - - -void Set_CR3_TARGET_VALUE_3(uint_t val); -uint_t Get_CR3_TARGET_VALUE_3(); - -void PrintTrace_CR3_TARGET_VALUE_3(); - - -void Set_EXIT_QUALIFICATION(uint_t val); -uint_t Get_EXIT_QUALIFICATION(); - -void PrintTrace_EXIT_QUALIFICATION(); - - -void Set_IO_RCX(uint_t val); -uint_t Get_IO_RCX(); - -void PrintTrace_IO_RCX(); - - -void Set_IO_RSI(uint_t val); -uint_t Get_IO_RSI(); - -void PrintTrace_IO_RSI(); - - -void Set_IO_RDI(uint_t val); -uint_t Get_IO_RDI(); - -void PrintTrace_IO_RDI(); - - -void Set_IO_RIP(uint_t val); -uint_t Get_IO_RIP(); - -void PrintTrace_IO_RIP(); - - -void Set_GUEST_LINEAR_ADDR(uint_t val); -uint_t Get_GUEST_LINEAR_ADDR(); - -void PrintTrace_GUEST_LINEAR_ADDR(); - - -void Set_GUEST_CR0(uint_t val); -uint_t Get_GUEST_CR0(); - -void PrintTrace_GUEST_CR0(); - - -void Set_GUEST_CR3(uint_t val); -uint_t Get_GUEST_CR3(); - -void PrintTrace_GUEST_CR3(); - - -void Set_GUEST_CR4(uint_t val); -uint_t Get_GUEST_CR4(); - -void PrintTrace_GUEST_CR4(); - - -void Set_GUEST_ES_BASE(uint_t val); -uint_t Get_GUEST_ES_BASE(); - -void PrintTrace_GUEST_ES_BASE(); - - -void Set_GUEST_CS_BASE(uint_t val); -uint_t Get_GUEST_CS_BASE(); - -void PrintTrace_GUEST_CS_BASE(); - - -void Set_GUEST_SS_BASE(uint_t val); -uint_t Get_GUEST_SS_BASE(); - -void PrintTrace_GUEST_SS_BASE(); - - -void Set_GUEST_DS_BASE(uint_t val); -uint_t Get_GUEST_DS_BASE(); - -void PrintTrace_GUEST_DS_BASE(); - - -void Set_GUEST_FS_BASE(uint_t val); -uint_t Get_GUEST_FS_BASE(); - -void PrintTrace_GUEST_FS_BASE(); - - -void Set_GUEST_GS_BASE(uint_t val); -uint_t Get_GUEST_GS_BASE(); - -void PrintTrace_GUEST_GS_BASE(); - - -void Set_GUEST_LDTR_BASE(uint_t val); -uint_t Get_GUEST_LDTR_BASE(); - -void PrintTrace_GUEST_LDTR_BASE(); - - -void Set_GUEST_TR_BASE(uint_t val); -uint_t Get_GUEST_TR_BASE(); - -void PrintTrace_GUEST_TR_BASE(); - - -void Set_GUEST_GDTR_BASE(uint_t val); -uint_t Get_GUEST_GDTR_BASE(); - -void PrintTrace_GUEST_GDTR_BASE(); - - -void Set_GUEST_IDTR_BASE(uint_t val); -uint_t Get_GUEST_IDTR_BASE(); - -void PrintTrace_GUEST_IDTR_BASE(); - - -void Set_GUEST_DR7(uint_t val); -uint_t Get_GUEST_DR7(); - -void PrintTrace_GUEST_DR7(); - - -void Set_GUEST_RSP(uint_t val); -uint_t Get_GUEST_RSP(); - -void PrintTrace_GUEST_RSP(); - - -void Set_GUEST_RIP(uint_t val); -uint_t Get_GUEST_RIP(); - -void PrintTrace_GUEST_RIP(); - - -void Set_GUEST_RFLAGS(uint_t val); -uint_t Get_GUEST_RFLAGS(); - -void PrintTrace_GUEST_RFLAGS(); - - -void Set_GUEST_PENDING_DEBUG_EXCS(uint_t val); -uint_t Get_GUEST_PENDING_DEBUG_EXCS(); - -void PrintTrace_GUEST_PENDING_DEBUG_EXCS(); - - -void Set_GUEST_IA32_SYSENTER_ESP(uint_t val); -uint_t Get_GUEST_IA32_SYSENTER_ESP(); - -void PrintTrace_GUEST_IA32_SYSENTER_ESP(); - - -void Set_GUEST_IA32_SYSENTER_EIP(uint_t val); -uint_t Get_GUEST_IA32_SYSENTER_EIP(); - -void PrintTrace_GUEST_IA32_SYSENTER_EIP(); - - -void Set_HOST_CR0(uint_t val); -uint_t Get_HOST_CR0(); - -void PrintTrace_HOST_CR0(); - - -void Set_HOST_CR3(uint_t val); -uint_t Get_HOST_CR3(); - -void PrintTrace_HOST_CR3(); - - -void Set_HOST_CR4(uint_t val); -uint_t Get_HOST_CR4(); - -void PrintTrace_HOST_CR4(); - - -void Set_HOST_FS_BASE(uint_t val); -uint_t Get_HOST_FS_BASE(); - -void PrintTrace_HOST_FS_BASE(); - - -void Set_HOST_GS_BASE(uint_t val); -uint_t Get_HOST_GS_BASE(); - -void PrintTrace_HOST_GS_BASE(); - - -void Set_HOST_TR_BASE(uint_t val); -uint_t Get_HOST_TR_BASE(); - -void PrintTrace_HOST_TR_BASE(); - - -void Set_HOST_GDTR_BASE(uint_t val); -uint_t Get_HOST_GDTR_BASE(); - -void PrintTrace_HOST_GDTR_BASE(); - - -void Set_HOST_IDTR_BASE(uint_t val); -uint_t Get_HOST_IDTR_BASE(); - -void PrintTrace_HOST_IDTR_BASE(); - - -void Set_HOST_IA32_SYSENTER_ESP(uint_t val); -uint_t Get_HOST_IA32_SYSENTER_ESP(); - -void PrintTrace_HOST_IA32_SYSENTER_ESP(); - - -void Set_HOST_IA32_SYSENTER_EIP(uint_t val); -uint_t Get_HOST_IA32_SYSENTER_EIP(); - -void PrintTrace_HOST_IA32_SYSENTER_EIP(); - - -void Set_HOST_RSP(uint_t val); -uint_t Get_HOST_RSP(); - -void PrintTrace_HOST_RSP(); - - -void Set_HOST_RIP(uint_t val); -uint_t Get_HOST_RIP(); - -void PrintTrace_HOST_RIP(); - -void PrintTrace_VMCS_ALL(); - - -#endif // !__V3VEE - -#endif - - - diff --git a/palacios/src/devices/apic.c b/palacios/src/devices/apic.c index ee42756..234c2fc 100644 --- a/palacios/src/devices/apic.c +++ b/palacios/src/devices/apic.c @@ -155,7 +155,9 @@ struct apic_msr { -typedef enum {INIT_ST, SIPI, STARTED} ipi_state_t; +typedef enum {INIT_ST, + SIPI, + STARTED} ipi_state_t; struct apic_dev_state; @@ -348,22 +350,23 @@ static int activate_apic_irq(struct apic_state * apic, uint32_t irq_num) { if (irq_num <= 15) { - PrintError("apic %u: core ?: Attempting to raise an invalid interrupt: %d\n", apic->lapic_id.val,irq_num); + PrintError("apic %u: core %d: Attempting to raise an invalid interrupt: %d\n", + apic->lapic_id.val, apic->core->cpu_id, irq_num); return -1; } - PrintDebug("apic %u: core ?: Raising APIC IRQ %d\n", apic->lapic_id.val, irq_num); + PrintDebug("apic %u: core %d: Raising APIC IRQ %d\n", apic->lapic_id.val, apic->core->cpu_id, irq_num); if (*req_location & flag) { - //V3_Print("Interrupts coallescing\n"); + PrintDebug("Interrupt %d coallescing\n", irq_num); } if (*en_location & flag) { *req_location |= flag; } else { - PrintDebug("apic %u: core ?: Interrupt not enabled... %.2x\n", - apic->lapic_id.val, *en_location); + PrintDebug("apic %u: core %d: Interrupt not enabled... %.2x\n", + apic->lapic_id.val, apic->core->cpu_id,*en_location); return 0; } @@ -584,7 +587,7 @@ static int deliver_ipi(struct apic_state * src_apic, case 0: //fixed case 1: // lowest priority - PrintDebug(" delivering IRQ to core %u\n", dst_core->cpu_id); + PrintDebug("delivering IRQ %d to core %u\n", vector, dst_core->cpu_id); activate_apic_irq(dst_apic, vector); @@ -609,7 +612,7 @@ static int deliver_ipi(struct apic_state * src_apic, // Sanity check if (dst_apic->ipi_state != INIT_ST) { PrintError(" Warning: core %u is not in INIT state (mode = %d), ignored\n", - dst_core->cpu_id, dst_core->cpu_mode); + dst_core->cpu_id, dst_apic->ipi_state); // Only a warning, since INIT INIT SIPI is common break; } @@ -632,7 +635,7 @@ static int deliver_ipi(struct apic_state * src_apic, // Sanity check if (dst_apic->ipi_state != SIPI) { PrintError(" core %u is not in SIPI state (mode = %d), ignored!\n", - dst_core->cpu_id, dst_core->cpu_mode); + dst_core->cpu_id, dst_apic->ipi_state); break; } @@ -684,8 +687,8 @@ static int route_ipi(struct apic_dev_state * apic_dev, struct int_cmd_reg * icr) { struct apic_state * dest_apic = NULL; - PrintDebug("route_ipi: src_apic=%p, icr_data=%x", - src_apic, icr_val); + PrintDebug("route_ipi: src_apic=%p, icr_data=%p\n", + src_apic, (void *)(addr_t)icr->val); if ((icr->dst_mode == 0) && (icr->dst >= apic_dev->num_apics)) { @@ -757,7 +760,7 @@ static int route_ipi(struct apic_dev_state * apic_dev, } } else { // logical delivery - PrintError("icc_bus: use of logical delivery in self is not yet supported.\n"); + PrintError("use of logical delivery in self is not yet supported.\n"); return -1; } break; @@ -1307,8 +1310,7 @@ int v3_apic_send_ipi(struct v3_vm_info * vm, struct vm_device * dev, tmp_icr.dst = ipi->dst; - route_ipi(apic_dev, NULL, &tmp_icr); - return -1; + return route_ipi(apic_dev, NULL, &tmp_icr); } diff --git a/palacios/src/devices/io_apic.c b/palacios/src/devices/io_apic.c index 8888530..35187af 100644 --- a/palacios/src/devices/io_apic.c +++ b/palacios/src/devices/io_apic.c @@ -245,7 +245,7 @@ static int ioapic_write(struct guest_info * core, addr_t guest_addr, void * src, return -1; } if (hi_val) { - PrintDebug("ioapic %u: Writing to hi of pin %d\n", ioapic->ioapic_id.val, redir_index); + PrintDebug("ioapic %u: Writing to hi of pin %d\n", ioapic->ioapic_id.id, redir_index); ioapic->redir_tbl[redir_index].hi = op_val; } else { PrintDebug("ioapic %u: Writing to lo of pin %d\n", ioapic->ioapic_id.id, redir_index); @@ -288,7 +288,10 @@ static int ioapic_raise_irq(struct v3_vm_info * vm, void * private_data, int irq ipi.dst_shorthand = 0; // Need to add destination argument here... - v3_apic_send_ipi(vm, ioapic->apic_dev, &ipi); + if (v3_apic_send_ipi(vm, ioapic->apic_dev, &ipi) == -1) { + PrintError("Error sending IPI to apic %d\n", ipi.dst); + return -1; + } } return 0; diff --git a/palacios/src/palacios/svm.c b/palacios/src/palacios/svm.c index f66d90e..4ba619b 100644 --- a/palacios/src/palacios/svm.c +++ b/palacios/src/palacios/svm.c @@ -87,7 +87,6 @@ static void Init_VMCB_BIOS(vmcb_t * vmcb, struct guest_info * core) { ctrl_area->svm_instrs.STGI = 1; ctrl_area->svm_instrs.CLGI = 1; ctrl_area->svm_instrs.SKINIT = 1; - ctrl_area->svm_instrs.RDTSCP = 1; ctrl_area->svm_instrs.ICEBP = 1; ctrl_area->svm_instrs.WBINVD = 1; ctrl_area->svm_instrs.MONITOR = 1; @@ -99,8 +98,8 @@ static void Init_VMCB_BIOS(vmcb_t * vmcb, struct guest_info * core) { ctrl_area->instrs.HLT = 1; #ifdef CONFIG_TIME_VIRTUALIZE_TSC - ctrl_area->instrs.rdtsc = 1; - ctrl_area->svm_instrs.rdtscp = 1; + ctrl_area->instrs.RDTSC = 1; + ctrl_area->svm_instrs.RDTSCP = 1; #endif // guest_state->cr0 = 0x00000001; // PE