VirtualBox

Changeset 80387 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Aug 22, 2019 2:44:42 PM (5 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:9180 Renamed u64GuestPendingDbgXcpt to u64GuestPendingDbgXcpts to better match the spec.

Location:
trunk/src/VBox/VMM
Files:
4 edited

Legend:

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

    r80364 r80387  
    949949        LogRel(("  %srip                        = %#RX64\n",   pszPrefix, pVmcs->u64GuestRip.u));
    950950        LogRel(("  %srflags                     = %#RX64\n",   pszPrefix, pVmcs->u64GuestRFlags.u));
    951         LogRel(("  %sPending debug xcpts        = %#RX64\n",   pszPrefix, pVmcs->u64GuestPendingDbgXcpt.u));
     951        LogRel(("  %sPending debug xcpts        = %#RX64\n",   pszPrefix, pVmcs->u64GuestPendingDbgXcpts.u));
    952952        LogRel(("  %sSysEnter ESP               = %#RX64\n",   pszPrefix, pVmcs->u64GuestSysenterEsp.u));
    953953        LogRel(("  %sSysEnter EIP               = %#RX64\n",   pszPrefix, pVmcs->u64GuestSysenterEip.u));
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h

    r80386 r80387  
    416416        /*    15 */ RT_UOFFSETOF(VMXVVMCS, u64GuestRip),
    417417        /*    16 */ RT_UOFFSETOF(VMXVVMCS, u64GuestRFlags),
    418         /*    17 */ RT_UOFFSETOF(VMXVVMCS, u64GuestPendingDbgXcpt),
     418        /*    17 */ RT_UOFFSETOF(VMXVVMCS, u64GuestPendingDbgXcpts),
    419419        /*    18 */ RT_UOFFSETOF(VMXVVMCS, u64GuestSysenterEsp),
    420420        /*    19 */ RT_UOFFSETOF(VMXVVMCS, u64GuestSysenterEip),
     
    791791    PVMXVVMCS pVmcs = pVCpu->cpum.GstCtx.hwvirt.vmx.CTX_SUFF(pVmcs);
    792792    Assert(!(uGuestPendingDbgXcpts & VMX_VMCS_GUEST_PENDING_DEBUG_VALID_MASK));
    793     pVmcs->u64GuestPendingDbgXcpt.u = uGuestPendingDbgXcpts;
     793    pVmcs->u64GuestPendingDbgXcpts.u = uGuestPendingDbgXcpts;
    794794}
    795795
     
    15091509        /** @todo NSTVMX: also must exclude VM-exits caused by debug exceptions when
    15101510         *        block-by-MovSS is in effect. */
    1511         pVmcs->u64GuestPendingDbgXcpt.u = 0;
     1511        pVmcs->u64GuestPendingDbgXcpts.u = 0;
    15121512    }
    15131513
     
    55975597     * Pending debug exceptions.
    55985598     */
    5599     uint64_t const uPendingDbgXcpt = IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fLongMode
    5600                                    ? pVmcs->u64GuestPendingDbgXcpt.u
    5601                                    : pVmcs->u64GuestPendingDbgXcpt.s.Lo;
    5602     if (!(uPendingDbgXcpt & ~VMX_VMCS_GUEST_PENDING_DEBUG_VALID_MASK))
     5599    uint64_t const uPendingDbgXcpts = IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fLongMode
     5600                                    ? pVmcs->u64GuestPendingDbgXcpts.u
     5601                                    : pVmcs->u64GuestPendingDbgXcpts.s.Lo;
     5602    if (!(uPendingDbgXcpts & ~VMX_VMCS_GUEST_PENDING_DEBUG_VALID_MASK))
    56035603    { /* likely */ }
    56045604    else
     
    56105610        if (   (pVmcs->u64GuestRFlags.u & X86_EFL_TF)
    56115611            && !(pVmcs->u64GuestDebugCtlMsr.u & MSR_IA32_DEBUGCTL_BTF)
    5612             && !(uPendingDbgXcpt & VMX_VMCS_GUEST_PENDING_DEBUG_XCPT_BS))
     5612            && !(uPendingDbgXcpts & VMX_VMCS_GUEST_PENDING_DEBUG_XCPT_BS))
    56135613            IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestPndDbgXcptBsTf);
    56145614
    56155615        if (   (   !(pVmcs->u64GuestRFlags.u & X86_EFL_TF)
    56165616                ||  (pVmcs->u64GuestDebugCtlMsr.u & MSR_IA32_DEBUGCTL_BTF))
    5617             && (uPendingDbgXcpt & VMX_VMCS_GUEST_PENDING_DEBUG_XCPT_BS))
     5617            && (uPendingDbgXcpts & VMX_VMCS_GUEST_PENDING_DEBUG_XCPT_BS))
    56185618            IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestPndDbgXcptBsNoTf);
    56195619    }
    56205620
    56215621    /* We don't support RTM (Real-time Transactional Memory) yet. */
    5622     if (!(uPendingDbgXcpt & VMX_VMCS_GUEST_PENDING_DEBUG_RTM))
     5622    if (!(uPendingDbgXcpts & VMX_VMCS_GUEST_PENDING_DEBUG_RTM))
    56235623    { /* likely */ }
    56245624    else
     
    68606860    Assert(pVmcs);
    68616861
    6862     bool fPendingDbgXcpt = RT_BOOL(pVmcs->u64GuestPendingDbgXcpt.u & (  VMX_VMCS_GUEST_PENDING_DEBUG_XCPT_BS
    6863                                                                       | VMX_VMCS_GUEST_PENDING_DEBUG_XCPT_EN_BP));
     6862    bool fPendingDbgXcpt = RT_BOOL(pVmcs->u64GuestPendingDbgXcpts.u & (  VMX_VMCS_GUEST_PENDING_DEBUG_XCPT_BS
     6863                                                                       | VMX_VMCS_GUEST_PENDING_DEBUG_XCPT_EN_BP));
    68646864    if (fPendingDbgXcpt)
    68656865    {
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r80364 r80387  
    99859985     * Currently just copy whatever the nested-guest provides us.
    99869986     */
    9987     uint64_t const uPendingDbgXcpt = pVmcsNstGst->u64GuestPendingDbgXcpt.u;
     9987    uint64_t const uPendingDbgXcpts = pVmcsNstGst->u64GuestPendingDbgXcpts.u;
    99889988
    99899989    /*
     
    1012010120    if (u32ProcCtls2 & VMX_PROC_CTLS2_VIRT_APIC_ACCESS)
    1012110121        rc |= VMXWriteVmcs64(VMX_VMCS64_CTRL_APIC_ACCESSADDR_FULL, HCPhysApicAccess);
    10122     rc |= VMXWriteVmcsNw(VMX_VMCS_GUEST_PENDING_DEBUG_XCPTS, uPendingDbgXcpt);
     10122    rc |= VMXWriteVmcsNw(VMX_VMCS_GUEST_PENDING_DEBUG_XCPTS, uPendingDbgXcpts);
    1012310123    AssertRC(rc);
    1012410124
  • trunk/src/VBox/VMM/VMMR3/CPUM.cpp

    r80364 r80387  
    504504    SSMFIELD_ENTRY(       VMXVVMCS, u64GuestRip),
    505505    SSMFIELD_ENTRY(       VMXVVMCS, u64GuestRFlags),
    506     SSMFIELD_ENTRY(       VMXVVMCS, u64GuestPendingDbgXcpt),
     506    SSMFIELD_ENTRY(       VMXVVMCS, u64GuestPendingDbgXcpts),
    507507    SSMFIELD_ENTRY(       VMXVVMCS, u64GuestSysenterEsp),
    508508    SSMFIELD_ENTRY(       VMXVVMCS, u64GuestSysenterEip),
     
    38593859        pHlp->pfnPrintf(pHlp, "  %srip                        = %#RX64\n",   pszPrefix, pVmcs->u64GuestRip.u);
    38603860        pHlp->pfnPrintf(pHlp, "  %srflags                     = %#RX64 %31s\n",pszPrefix, pVmcs->u64GuestRFlags.u, szEFlags);
    3861         pHlp->pfnPrintf(pHlp, "  %sPending debug xcpts        = %#RX64\n",   pszPrefix, pVmcs->u64GuestPendingDbgXcpt.u);
     3861        pHlp->pfnPrintf(pHlp, "  %sPending debug xcpts        = %#RX64\n",   pszPrefix, pVmcs->u64GuestPendingDbgXcpts.u);
    38623862        pHlp->pfnPrintf(pHlp, "  %sSysEnter ESP               = %#RX64\n",   pszPrefix, pVmcs->u64GuestSysenterEsp.u);
    38633863        pHlp->pfnPrintf(pHlp, "  %sSysEnter EIP               = %#RX64\n",   pszPrefix, pVmcs->u64GuestSysenterEip.u);
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