VirtualBox

Changeset 46510 in vbox for trunk


Ignore:
Timestamp:
Jun 12, 2013 2:56:47 PM (12 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: bits.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r46507 r46510  
    58815881    AssertRC(rc);
    58825882
    5883     /* Restore FPU state if necessary and resync on next R0 reentry .*/
     5883    /* Restore host FPU state if necessary and resync on next R0 reentry .*/
    58845884    if (CPUMIsGuestFPUStateActive(pVCpu))
    58855885    {
     
    58895889    }
    58905890
    5891     /* Restore debug registers if necessary and resync on next R0 reentry. */
     5891    /* Restore host debug registers if necessary and resync on next R0 reentry. */
    58925892    if (CPUMIsGuestDebugStateActive(pVCpu))
    58935893    {
     
    59855985
    59865986/**
    5987  *  VMMRZCallRing3 callback wrapper which saves the guest state before we
    5988  *  longjump to ring-3 and possibly get preempted.
     5987 * VMMRZCallRing3() callback wrapper which saves the guest state before we
     5988 * longjump to ring-3 and possibly get preempted.
    59895989 *
    59905990 * @param   pVCpu           Pointer to the VMCPU.
     
    59985998DECLCALLBACK(void) hmR0VmxCallRing3Callback(PVMCPU pVCpu, VMMCALLRING3 enmOperation, void *pvUser)
    59995999{
    6000     /* VMMRZCallRing3() already makes sure we never get called as a result of an longjmp due to an assertion, */
     6000    /* VMMRZCallRing3() already makes sure we never get called as a result of an longjmp due to an assertion. */
    60016001    Assert(pVCpu);
    60026002    Assert(pvUser);
     
    71607160#ifdef DEBUG
    71617161/* Is there some generic IPRT define for this that are not in Runtime/internal/\* ?? */
    7162 # define VMX_ASSERT_PREEMPT_CPUID_VAR() \
     7162# define HMVMX_ASSERT_PREEMPT_CPUID_VAR() \
    71637163    RTCPUID const idAssertCpu = RTThreadPreemptIsEnabled(NIL_RTTHREAD) ? NIL_RTCPUID : RTMpCpuId()
    7164 # define VMX_ASSERT_PREEMPT_CPUID() \
     7164
     7165# define HMVMX_ASSERT_PREEMPT_CPUID() \
    71657166   do \
    71667167   { \
     
    71697170   } while (0)
    71707171
    7171 # define VMX_VALIDATE_EXIT_HANDLER_PARAMS()                                  \
    7172             do {                                                             \
    7173                 AssertPtr(pVCpu);                                            \
    7174                 AssertPtr(pMixedCtx);                                        \
    7175                 AssertPtr(pVmxTransient);                                    \
    7176                 Assert(pVmxTransient->fVMEntryFailed == false);              \
    7177                 Assert(ASMIntAreEnabled());                                  \
    7178                 Assert(!RTThreadPreemptIsEnabled(NIL_RTTHREAD));             \
    7179                 VMX_ASSERT_PREEMPT_CPUID_VAR();                              \
    7180                 Log4Func(("vcpu[%u] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n", \
    7181                         (unsigned)pVCpu->idCpu));                            \
    7182                 Assert(!RTThreadPreemptIsEnabled(NIL_RTTHREAD));             \
    7183                 if (VMMR0IsLogFlushDisabled(pVCpu))                          \
    7184                     VMX_ASSERT_PREEMPT_CPUID();                              \
    7185                 HMVMX_STOP_EXIT_DISPATCH_PROF();                             \
     7172# define HMVMX_VALIDATE_EXIT_HANDLER_PARAMS() \
     7173            do { \
     7174                AssertPtr(pVCpu); \
     7175                AssertPtr(pMixedCtx); \
     7176                AssertPtr(pVmxTransient); \
     7177                Assert(pVmxTransient->fVMEntryFailed == false); \
     7178                Assert(ASMIntAreEnabled()); \
     7179                Assert(!RTThreadPreemptIsEnabled(NIL_RTTHREAD)); \
     7180                HMVMX_ASSERT_PREEMPT_CPUID_VAR(); \
     7181                Log4Func(("vcpu[%u] -v-v-v-v-v-v-v-v-v-v-v-v-v-v-v-v-v-v-v-v-v-\n", (uint32_t)pVCpu->idCpu)); \
     7182                Assert(!RTThreadPreemptIsEnabled(NIL_RTTHREAD)); \
     7183                if (VMMR0IsLogFlushDisabled(pVCpu)) \
     7184                    HMVMX_ASSERT_PREEMPT_CPUID(); \
     7185                HMVMX_STOP_EXIT_DISPATCH_PROF(); \
    71867186            } while (0)
    7187 # define VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS() \
    7188             do {                                 \
    7189                 Log4Func(("\n"));                \
     7187
     7188# define HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS() \
     7189            do { \
     7190                Log4Func(("\n")); \
    71907191            } while(0)
    71917192#else   /* Release builds */
    7192 # define VMX_VALIDATE_EXIT_HANDLER_PARAMS() do { HMVMX_STOP_EXIT_DISPATCH_PROF(); } while(0)
    7193 # define VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS() do { } while(0)
     7193# define HMVMX_VALIDATE_EXIT_HANDLER_PARAMS() do { HMVMX_STOP_EXIT_DISPATCH_PROF(); } while(0)
     7194# define HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS() do { } while(0)
    71947195#endif
    71957196
     
    72277228HMVMX_EXIT_DECL hmR0VmxExitExtInt(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    72287229{
    7229     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7230    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    72307231    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitExtInt);
    72317232    /* 32-bit Windows hosts (4 cores) has trouble with this; causes higher interrupt latency. */
     
    72447245HMVMX_EXIT_DECL hmR0VmxExitXcptNmi(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    72457246{
    7246     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7247    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    72477248    STAM_PROFILE_ADV_START(&pVCpu->hm.s.StatExitXcptNmi, y3);
    72487249
     
    73497350HMVMX_EXIT_DECL hmR0VmxExitIntWindow(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    73507351{
    7351     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7352    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    73527353
    73537354    /* Indicate that we no longer need to VM-exit when the guest is ready to receive interrupts, it is now ready. */
     
    73687369HMVMX_EXIT_DECL hmR0VmxExitNmiWindow(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    73697370{
    7370     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7371    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    73717372    AssertMsgFailed(("Unexpected NMI-window exit.\n"));
    73727373    return VERR_VMX_UNEXPECTED_EXIT_CODE;
     
    73797380HMVMX_EXIT_DECL hmR0VmxExitWbinvd(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    73807381{
    7381     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7382    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    73827383    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitWbinvd);
    73837384    return hmR0VmxAdvanceGuestRip(pVCpu, pMixedCtx, pVmxTransient);
     
    73907391HMVMX_EXIT_DECL hmR0VmxExitInvd(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    73917392{
    7392     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7393    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    73937394    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitInvd);
    73947395    return hmR0VmxAdvanceGuestRip(pVCpu, pMixedCtx, pVmxTransient);
     
    74017402HMVMX_EXIT_DECL hmR0VmxExitCpuid(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    74027403{
    7403     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7404    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    74047405    PVM pVM = pVCpu->CTX_SUFF(pVM);
    74057406    int rc = EMInterpretCpuId(pVM, pVCpu, CPUMCTX2CORE(pMixedCtx));
     
    74247425HMVMX_EXIT_DECL hmR0VmxExitGetsec(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    74257426{
    7426     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7427    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    74277428    int rc  = hmR0VmxSaveGuestCR4(pVCpu, pMixedCtx);
    74287429    AssertRCReturn(rc, rc);
     
    74417442HMVMX_EXIT_DECL hmR0VmxExitRdtsc(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    74427443{
    7443     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7444    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    74447445    int rc = hmR0VmxSaveGuestCR4(pVCpu, pMixedCtx);    /** @todo review if CR4 is really required by EM. */
    74457446    AssertRCReturn(rc, rc);
     
    74707471HMVMX_EXIT_DECL hmR0VmxExitRdtscp(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    74717472{
    7472     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7473    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    74737474    int rc = hmR0VmxSaveGuestCR4(pVCpu, pMixedCtx);                /** @todo review if CR4 is really required by EM. */
    74747475    rc    |= hmR0VmxSaveGuestAutoLoadStoreMsrs(pVCpu, pMixedCtx);  /* For MSR_K8_TSC_AUX */
     
    75007501HMVMX_EXIT_DECL hmR0VmxExitRdpmc(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    75017502{
    7502     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7503    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    75037504    int rc = hmR0VmxSaveGuestCR4(pVCpu, pMixedCtx);    /** @todo review if CR4 is really required by EM. */
    75047505    rc    |= hmR0VmxSaveGuestCR0(pVCpu, pMixedCtx);    /** @todo review if CR0 is really required by EM. */
     
    75277528HMVMX_EXIT_DECL hmR0VmxExitInvlpg(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    75287529{
    7529     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7530    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    75307531    PVM pVM = pVCpu->CTX_SUFF(pVM);
    75317532    Assert(!pVM->hm.s.fNestedPaging);
     
    75547555HMVMX_EXIT_DECL hmR0VmxExitMonitor(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    75557556{
    7556     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7557    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    75577558    int rc = hmR0VmxSaveGuestCR0(pVCpu, pMixedCtx);
    75587559    rc    |= hmR0VmxSaveGuestRflags(pVCpu, pMixedCtx);
     
    75797580HMVMX_EXIT_DECL hmR0VmxExitMwait(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    75807581{
    7581     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7582    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    75827583    int rc = hmR0VmxSaveGuestCR0(pVCpu, pMixedCtx);
    75837584    rc    |= hmR0VmxSaveGuestRflags(pVCpu, pMixedCtx);
     
    76807681     * still get these exits. See Intel spec. "23.8 Restrictions on VMX operation".
    76817682     */
    7682     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7683    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    76837684    return VINF_SUCCESS;    /** @todo r=ramshankar: correct?. */
    76847685}
     
    76917692HMVMX_EXIT_DECL hmR0VmxExitTripleFault(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    76927693{
    7693     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7694    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    76947695    return VINF_EM_RESET;
    76957696}
     
    77017702HMVMX_EXIT_DECL hmR0VmxExitHlt(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    77027703{
    7703     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7704    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    77047705    Assert(pVCpu->hm.s.vmx.u32ProcCtls & VMX_VMCS_CTRL_PROC_EXEC_HLT_EXIT);
    77057706    int rc = hmR0VmxSaveGuestRip(pVCpu, pMixedCtx);
     
    77247725HMVMX_EXIT_DECL hmR0VmxExitSetPendingXcptUD(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    77257726{
    7726     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7727    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    77277728    hmR0VmxSetPendingXcptUD(pVCpu, pMixedCtx);
    77287729    return VINF_SUCCESS;
     
    77357736HMVMX_EXIT_DECL hmR0VmxExitPreemptTimer(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    77367737{
    7737     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7738    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    77387739
    77397740    /* If the preemption-timer has expired, reinitialize the preemption timer on next VM-entry. */
     
    77537754HMVMX_EXIT_DECL hmR0VmxExitXsetbv(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    77547755{
    7755     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7756    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    77567757
    77577758    /* We expose XSETBV to the guest, fallback to the recompiler for emulation. */
     
    77667767HMVMX_EXIT_DECL hmR0VmxExitInvpcid(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    77677768{
    7768     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7769    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    77697770
    77707771    /* The guest should not invalidate the host CPU's TLBs, fallback to recompiler. */
     
    78577858HMVMX_EXIT_DECL hmR0VmxExitXdtrAccess(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    78587859{
    7859     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7860    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    78607861
    78617862    /* By default, we don't enable VMX_VMCS_CTRL_PROC_EXEC2_DESCRIPTOR_TABLE_EXIT. */
     
    78737874HMVMX_EXIT_DECL hmR0VmxExitRdrand(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    78747875{
    7875     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7876    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    78767877
    78777878    /* By default, we don't enable VMX_VMCS_CTRL_PROC_EXEC2_RDRAND_EXIT. */
     
    78897890HMVMX_EXIT_DECL hmR0VmxExitRdmsr(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    78907891{
    7891     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7892    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    78927893
    78937894    /* EMInterpretRdmsr() requires CR0, Eflags and SS segment register. */
     
    79177918HMVMX_EXIT_DECL hmR0VmxExitWrmsr(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    79187919{
    7919     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     7920    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    79207921    PVM pVM = pVCpu->CTX_SUFF(pVM);
    79217922    int rc = VINF_SUCCESS;
     
    80218022HMVMX_EXIT_DECL hmR0VmxExitPause(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    80228023{
    8023     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8024    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    80248025
    80258026    /* By default, we don't enable VMX_VMCS_CTRL_PROC_EXEC_PAUSE_EXIT. */
     
    80388039HMVMX_EXIT_DECL hmR0VmxExitTprBelowThreshold(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    80398040{
    8040     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8041    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    80418042    Assert(pVCpu->hm.s.vmx.u32ProcCtls & VMX_VMCS_CTRL_PROC_EXEC_USE_TPR_SHADOW);
    80428043
     
    80648065HMVMX_EXIT_DECL hmR0VmxExitMovCRx(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    80658066{
    8066     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8067    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    80678068    STAM_PROFILE_ADV_START(&pVCpu->hm.s.StatExitMovCRx, y2);
    80688069    int rc = hmR0VmxReadExitQualificationVmcs(pVCpu, pVmxTransient);
     
    81968197HMVMX_EXIT_DECL hmR0VmxExitIoInstr(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    81978198{
    8198     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8199    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    81998200    STAM_PROFILE_ADV_START(&pVCpu->hm.s.StatExitIO, y1);
    82008201
     
    83688369HMVMX_EXIT_DECL hmR0VmxExitTaskSwitch(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    83698370{
    8370     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8371    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    83718372
    83728373    /* Check if this task-switch occurred while delivery an event through the guest IDT. */
     
    84228423HMVMX_EXIT_DECL hmR0VmxExitMtf(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    84238424{
    8424     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8425    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    84258426    Assert(pVCpu->hm.s.vmx.u32ProcCtls & VMX_VMCS_CTRL_PROC_EXEC_MONITOR_TRAP_FLAG);
    84268427    pVCpu->hm.s.vmx.u32ProcCtls &= ~VMX_VMCS_CTRL_PROC_EXEC_MONITOR_TRAP_FLAG;
     
    84378438HMVMX_EXIT_DECL hmR0VmxExitApicAccess(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    84388439{
    8439     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8440    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    84408441
    84418442    /* If this VM-exit occurred while delivering an event through the guest IDT, handle it accordingly. */
     
    85128513HMVMX_EXIT_DECL hmR0VmxExitMovDRx(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    85138514{
    8514     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8515    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    85158516
    85168517    /* We should -not- get this VM-exit if the guest is debugging. */
     
    85908591HMVMX_EXIT_DECL hmR0VmxExitEptMisconfig(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    85918592{
    8592     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8593    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    85938594    Assert(pVCpu->CTX_SUFF(pVM)->hm.s.fNestedPaging);
    85948595
     
    86428643HMVMX_EXIT_DECL hmR0VmxExitEptViolation(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    86438644{
    8644     VMX_VALIDATE_EXIT_HANDLER_PARAMS();
     8645    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    86458646    Assert(pVCpu->CTX_SUFF(pVM)->hm.s.fNestedPaging);
    86468647
     
    87118712static int hmR0VmxExitXcptMF(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    87128713{
    8713     VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
     8714    HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
    87148715    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestMF);
    87158716
     
    87348735static int hmR0VmxExitXcptBP(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    87358736{
    8736     VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
     8737    HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
    87378738    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestBP);
    87388739
     
    87658766static int hmR0VmxExitXcptDB(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    87668767{
    8767     VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
     8768    HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
    87688769    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestDB);
    87698770
     
    88178818static int hmR0VmxExitXcptNM(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    88188819{
    8819     VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
     8820    HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
    88208821
    88218822#ifndef HMVMX_ALWAYS_TRAP_ALL_XCPTS
     
    88568857static int hmR0VmxExitXcptGP(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    88578858{
    8858     VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
     8859    HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
    88598860    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestGP);
    88608861
     
    91019102static int hmR0VmxExitXcptGeneric(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    91029103{
    9103     VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
     9104    HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
    91049105
    91059106    /* Re-inject the exception into the guest. This cannot be a double-fault condition which would have been handled in
     
    91209121static int hmR0VmxExitXcptPF(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)
    91219122{
    9122     VMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
     9123    HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS();
    91239124    PVM pVM = pVCpu->CTX_SUFF(pVM);
    91249125    int rc = hmR0VmxReadExitQualificationVmcs(pVCpu, pVmxTransient);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette