GIMAllHv.cpp revision 2ac3892cdc8b16a0dee55e8b4510b8ecea83c95f
2668N/A * available from http://www.virtualbox.org. This file is free software;
2668N/A#include "GIMHvInternal.h"
2668N/A#include "GIMInternal.h"
2668N/A return VINF_SUCCESS;
VMM_INT_DECL(int) GIMHvReadMsr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue)
switch (idMsr)
return VINF_SUCCESS;
case MSR_GIM_HV_VP_INDEX:
return VINF_SUCCESS;
case MSR_GIM_HV_GUEST_OS_ID:
return VINF_SUCCESS;
case MSR_GIM_HV_HYPERCALL:
return VINF_SUCCESS;
case MSR_GIM_HV_REF_TSC:
return VINF_SUCCESS;
case MSR_GIM_HV_TSC_FREQ:
#ifndef IN_RING3
return VERR_EM_INTERPRETER;
return VINF_SUCCESS;
case MSR_GIM_HV_APIC_FREQ:
return VINF_SUCCESS;
case MSR_GIM_HV_RESET:
*puValue = 0;
return VINF_SUCCESS;
return VERR_CPUM_RAISE_GP_0;
VMM_INT_DECL(int) GIMHvWriteMsr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uRawValue)
switch (idMsr)
case MSR_GIM_HV_GUEST_OS_ID:
#ifndef IN_RING3
return VERR_EM_INTERPRETER;
if (!uRawValue)
return VINF_SUCCESS;
case MSR_GIM_HV_HYPERCALL:
#ifndef IN_RING3
return VERR_EM_INTERPRETER;
if ( fEnable
return VINF_SUCCESS;
if (!fEnable)
return VINF_SUCCESS;
return VINF_SUCCESS;
return VERR_CPUM_RAISE_GP_0;
case MSR_GIM_HV_REF_TSC:
#ifndef IN_RING3
return VERR_EM_INTERPRETER;
if (!fEnable)
return VINF_SUCCESS;
return VINF_SUCCESS;
return VERR_CPUM_RAISE_GP_0;
case MSR_GIM_HV_RESET:
#ifndef IN_RING3
return VERR_EM_INTERPRETER;
return VINF_SUCCESS;
case MSR_GIM_HV_VP_INDEX:
case MSR_GIM_HV_TSC_FREQ:
case MSR_GIM_HV_APIC_FREQ:
return VERR_CPUM_RAISE_GP_0;
#ifdef IN_RING3
LogRel(("GIM: Unknown/invalid WrMsr (%#x,%#x`%08x) -> #GP(0)\n", idMsr, uRawValue & UINT64_C(0xffffffff00000000),
return VERR_CPUM_RAISE_GP_0;