VirtualBox

Changeset 43468 in vbox


Ignore:
Timestamp:
Sep 28, 2012 3:21:24 PM (12 years ago)
Author:
vboxsync
Message:

VMM: HM bits. More renaming in prepartion of

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

Legend:

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

    r43466 r43468  
    224224#endif
    225225
    226     pVM->hm.s.vmx.hMemObjAPIC = NIL_RTR0MEMOBJ;
     226    pVM->hm.s.vmx.hMemObjApicAccess = NIL_RTR0MEMOBJ;
    227227
    228228    if (pVM->hm.s.vmx.msr.vmx_proc_ctls.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_USE_TPR_SHADOW)
    229229    {
    230230        /* Allocate one page for the APIC physical page (serves for filtering accesses). */
    231         rc = RTR0MemObjAllocCont(&pVM->hm.s.vmx.hMemObjAPIC, PAGE_SIZE, false /* fExecutable */);
     231        rc = RTR0MemObjAllocCont(&pVM->hm.s.vmx.hMemObjApicAccess, PAGE_SIZE, false /* fExecutable */);
    232232        AssertRC(rc);
    233233        if (RT_FAILURE(rc))
    234234            return rc;
    235235
    236         pVM->hm.s.vmx.pbAPIC     = (uint8_t *)RTR0MemObjAddress(pVM->hm.s.vmx.hMemObjAPIC);
    237         pVM->hm.s.vmx.HCPhysAPIC = RTR0MemObjGetPagePhysAddr(pVM->hm.s.vmx.hMemObjAPIC, 0);
    238         ASMMemZero32(pVM->hm.s.vmx.pbAPIC, PAGE_SIZE);
     236        pVM->hm.s.vmx.pbApicAccess     = (uint8_t *)RTR0MemObjAddress(pVM->hm.s.vmx.hMemObjApicAccess);
     237        pVM->hm.s.vmx.HCPhysApicAccess = RTR0MemObjGetPagePhysAddr(pVM->hm.s.vmx.hMemObjApicAccess, 0);
     238        ASMMemZero32(pVM->hm.s.vmx.pbApicAccess, PAGE_SIZE);
    239239    }
    240240    else
    241241    {
    242         pVM->hm.s.vmx.hMemObjAPIC = 0;
    243         pVM->hm.s.vmx.pbAPIC       = 0;
    244         pVM->hm.s.vmx.HCPhysAPIC   = 0;
     242        pVM->hm.s.vmx.hMemObjApicAccess = 0;
     243        pVM->hm.s.vmx.pbApicAccess       = 0;
     244        pVM->hm.s.vmx.HCPhysApicAccess   = 0;
    245245    }
    246246
     
    390390#endif /* VBOX_WITH_AUTO_MSR_LOAD_RESTORE */
    391391    }
    392     if (pVM->hm.s.vmx.hMemObjAPIC != NIL_RTR0MEMOBJ)
    393     {
    394         RTR0MemObjFree(pVM->hm.s.vmx.hMemObjAPIC, false);
    395         pVM->hm.s.vmx.hMemObjAPIC = NIL_RTR0MEMOBJ;
    396         pVM->hm.s.vmx.pbAPIC       = 0;
    397         pVM->hm.s.vmx.HCPhysAPIC   = 0;
     392    if (pVM->hm.s.vmx.hMemObjApicAccess != NIL_RTR0MEMOBJ)
     393    {
     394        RTR0MemObjFree(pVM->hm.s.vmx.hMemObjApicAccess, false);
     395        pVM->hm.s.vmx.hMemObjApicAccess = NIL_RTR0MEMOBJ;
     396        pVM->hm.s.vmx.pbApicAccess       = 0;
     397        pVM->hm.s.vmx.HCPhysApicAccess   = 0;
    398398    }
    399399#ifdef VBOX_WITH_CRASHDUMP_MAGIC
     
    562562            /* CR8 reads from the APIC shadow page; writes cause an exit is they lower the TPR below the threshold */
    563563            val |= VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_USE_TPR_SHADOW;
    564             Assert(pVM->hm.s.vmx.pbAPIC);
     564            Assert(pVM->hm.s.vmx.pbApicAccess);
    565565        }
    566566        else
     
    703703        if (pVM->hm.s.vmx.msr.vmx_proc_ctls.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_USE_TPR_SHADOW)
    704704        {
    705             Assert(pVM->hm.s.vmx.hMemObjAPIC);
     705            Assert(pVM->hm.s.vmx.hMemObjApicAccess);
    706706            /* Optional */
    707707            rc  = VMXWriteVMCS(VMX_VMCS_CTRL_TPR_THRESHOLD, 0);
     
    709709
    710710            if (pVM->hm.s.vmx.msr.vmx_proc_ctls2.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_VIRT_APIC)
    711                 rc |= VMXWriteVMCS64(VMX_VMCS_CTRL_APIC_ACCESSADDR_FULL, pVM->hm.s.vmx.HCPhysAPIC);
     711                rc |= VMXWriteVMCS64(VMX_VMCS_CTRL_APIC_ACCESSADDR_FULL, pVM->hm.s.vmx.HCPhysApicAccess);
    712712
    713713            AssertRC(rc);
     
    27752775
    27762776    Assert(!(pVM->hm.s.vmx.msr.vmx_proc_ctls2.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_VIRT_APIC)
    2777            || (pVCpu->hm.s.vmx.pbVAPIC && pVM->hm.s.vmx.pbAPIC));
     2777           || (pVCpu->hm.s.vmx.pbVAPIC && pVM->hm.s.vmx.pbApicAccess));
    27782778
    27792779    /*
     
    35043504                    {
    35053505                        Log(("Enable VT-x virtual APIC access filtering\n"));
    3506                         rc2 = IOMMMIOMapMMIOHCPage(pVM, GCPhysApicBase, pVM->hm.s.vmx.HCPhysAPIC, X86_PTE_RW | X86_PTE_P);
     3506                        rc2 = IOMMMIOMapMMIOHCPage(pVM, GCPhysApicBase, pVM->hm.s.vmx.HCPhysApicAccess, X86_PTE_RW | X86_PTE_P);
    35073507                        AssertRC(rc2);
    35083508                    }
     
    40104010                {
    40114011                    Log(("Enable VT-x virtual APIC access filtering\n"));
    4012                     rc2 = IOMMMIOMapMMIOHCPage(pVM, GCPhysApicBase, pVM->hm.s.vmx.HCPhysAPIC, X86_PTE_RW | X86_PTE_P);
     4012                    rc2 = IOMMMIOMapMMIOHCPage(pVM, GCPhysApicBase, pVM->hm.s.vmx.HCPhysApicAccess, X86_PTE_RW | X86_PTE_P);
    40134013                    AssertRC(rc2);
    40144014                }
     
    40714071            {
    40724072                Log(("Enable VT-x virtual APIC access filtering\n"));
    4073                 rc2 = IOMMMIOMapMMIOHCPage(pVM, GCPhysApicBase, pVM->hm.s.vmx.HCPhysAPIC, X86_PTE_RW | X86_PTE_P);
     4073                rc2 = IOMMMIOMapMMIOHCPage(pVM, GCPhysApicBase, pVM->hm.s.vmx.HCPhysApicAccess, X86_PTE_RW | X86_PTE_P);
    40744074                AssertRC(rc2);
    40754075            }
  • trunk/src/VBox/VMM/VMMR3/HM.cpp

    r43466 r43468  
    11071107            LogRel(("HM: MSR_IA32_VMX_VMCS_ENUM        = %RX64\n", pVM->hm.s.vmx.msr.vmx_vmcs_enum));
    11081108
    1109             LogRel(("HM: TPR shadow physaddr           = %RHp\n", pVM->hm.s.vmx.HCPhysAPIC));
     1109            LogRel(("HM: APIC-access page physaddr     = %RHp\n", pVM->hm.s.vmx.HCPhysApicAccess));
    11101110
    11111111            /* Paranoia */
  • trunk/src/VBox/VMM/include/HMInternal.h

    r43466 r43468  
    329329        R3PTRTYPE(PX86PD)           pNonPagingModeEPTPageTable;
    330330
    331         /** R0 memory object for the APIC physical page (serves for filtering accesses). */
    332         RTR0MEMOBJ                  hMemObjAPIC;
    333         /** Physical address of the APIC physical page (serves for filtering accesses). */
    334         RTHCPHYS                    HCPhysAPIC;
    335         /** Virtual address of the APIC physical page (serves for filtering accesses). */
    336         R0PTRTYPE(uint8_t *)        pbAPIC;
     331        /** R0 memory object for the APIC-access page. */
     332        RTR0MEMOBJ                  hMemObjApicAccess;
     333        /** Physical address of the APIC-access page. */
     334        RTHCPHYS                    HCPhysApicAccess;
     335        /** Virtual address of the APIC-access page. */
     336        R0PTRTYPE(uint8_t *)        pbApicAccess;
    337337
    338338        /** R0 memory object for the MSR entry load page (guest MSRs). */
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