VirtualBox

Ignore:
Timestamp:
Jun 6, 2018 2:24:04 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
122946
Message:

EM,IEM,HM: Consolidated VMMHypercallsDisable/VMMHypercallsEnable into EMSetHypercallInstructionsEnabled and made the information available thru EMAreHypercallInstructionsEnabled(). Adjusted the vmmcall implementation so it works without HM. bugref:9044

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h

    r72453 r72462  
    2222IEM_CIMPL_DEF_0(iemCImpl_vmcall)
    2323{
    24     if (true /*EMAreHypercallsEnabled(pVCpu)*/)
    25     {
    26         VBOXSTRICTRC rcStrict = GIMHypercall(pVCpu, IEM_GET_CTX(pVCpu));
    27         if (RT_SUCCESS(rcStrict))
    28         {
    29             if (rcStrict == VINF_SUCCESS)
    30                 iemRegAddToRipAndClearRF(pVCpu, cbInstr);
    31             if (   rcStrict == VINF_SUCCESS
    32                 || rcStrict == VINF_GIM_HYPERCALL_CONTINUING)
    33                 return VINF_SUCCESS;
    34             AssertMsgReturn(rcStrict == VINF_GIM_R3_HYPERCALL, ("%Rrc\n", VBOXSTRICTRC_VAL(rcStrict)), VERR_IEM_IPE_4);
    35             return rcStrict;
    36         }
    37         AssertMsgReturn(   rcStrict == VERR_GIM_HYPERCALL_ACCESS_DENIED
    38                         || rcStrict == VERR_GIM_HYPERCALLS_NOT_AVAILABLE
    39                         || rcStrict == VERR_GIM_NOT_ENABLED
    40                         || rcStrict == VERR_GIM_HYPERCALL_MEMORY_READ_FAILED
    41                         || rcStrict == VERR_GIM_HYPERCALL_MEMORY_WRITE_FAILED,
    42                         ("%Rrc\n", VBOXSTRICTRC_VAL(rcStrict)), VERR_IEM_IPE_4);
     24    /** @todo intercept. */
    4325
    44         /* Raise #UD on all failures. */
    45     }
    46     return iemRaiseUndefinedOpcode(pVCpu);
     26    /* Join forces with vmmcall. */
     27    return IEM_CIMPL_CALL_0(iemCImpl_Hypercall);
    4728}
    4829
Note: See TracChangeset for help on using the changeset viewer.

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