VirtualBox

Changeset 31407 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
Aug 5, 2010 1:36:39 PM (14 years ago)
Author:
vboxsync
Message:

VMMR0: Set VMCPU::hNativeThreadR0 in GVMMR0CreateVM and GVMMR0RegisterVCpu.

Location:
trunk/src/VBox/VMM/VMMR0
Files:
2 edited

Legend:

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

    r31326 r31407  
    588588                        pGVM->hSelf     = iHandle;
    589589                        pGVM->pVM       = NULL;
    590                         pGVM->cCpus     = cCpus;                       
     590                        pGVM->cCpus     = cCpus;
    591591
    592592                        gvmmR0InitPerVMData(pGVM);
     
    640640                                    for (uint32_t i = 0; i < cCpus; i++)
    641641                                    {
    642                                         pVM->aCpus[i].pVMR0     = pVM;
    643                                         pVM->aCpus[i].pVMR3     = pVM->pVMR3;
    644                                         pVM->aCpus[i].idHostCpu = NIL_RTCPUID;
     642                                        pVM->aCpus[i].pVMR0           = pVM;
     643                                        pVM->aCpus[i].pVMR3           = pVM->pVMR3;
     644                                        pVM->aCpus[i].idHostCpu       = NIL_RTCPUID;
     645                                        pVM->aCpus[i].hNativeThreadR0 = NIL_RTNATIVETHREAD;
    645646                                    }
    646647
     
    656657                                        AssertRC(rc);
    657658
    658                                         pHandle->pVM        = pVM;
    659                                         pHandle->pGVM       = pGVM;
    660                                         pHandle->hEMT0      = hEMT0;
    661                                         pHandle->ProcId     = ProcId;
    662                                         pGVM->pVM           = pVM;
    663                                         pGVM->aCpus[0].hEMT = hEMT0;
     659                                        pHandle->pVM                  = pVM;
     660                                        pHandle->pGVM                 = pGVM;
     661                                        pHandle->hEMT0                = hEMT0;
     662                                        pHandle->ProcId               = ProcId;
     663                                        pGVM->pVM                     = pVM;
     664                                        pGVM->aCpus[0].hEMT           = hEMT0;
     665                                        pVM->aCpus[0].hNativeThreadR0 = hEMT0;
    664666                                        pGVMM->cEMTs += cCpus;
    665667
     
    11041106        return rc;
    11051107
    1106     AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_CPU_ID);
     1108    AssertReturn(idCpu < pGVM->cCpus, VERR_INVALID_CPU_ID);
    11071109    AssertReturn(pGVM->aCpus[idCpu].hEMT == NIL_RTNATIVETHREAD, VERR_ACCESS_DENIED);
    1108 
    1109     pGVM->aCpus[idCpu].hEMT = RTThreadNativeSelf();
     1110    Assert(pGVM->cCpus == pVM->cCpus);
     1111    Assert(pVM->aCpus[idCpu].hNativeThreadR0 == NIL_RTNATIVETHREAD);
     1112
     1113    pVM->aCpus[idCpu].hNativeThreadR0 = pGVM->aCpus[idCpu].hEMT = RTThreadNativeSelf();
     1114
    11101115    return VINF_SUCCESS;
    11111116}
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r31369 r31407  
    964964
    965965            PVMCPU pVCpu = &pVM->aCpus[idCpu];
    966 
    967             /* Initialize the r0 native thread handle on the fly. */
    968             if (pVCpu->hNativeThreadR0 == NIL_RTNATIVETHREAD)
    969                 pVCpu->hNativeThreadR0 = RTThreadNativeSelf();
     966            Assert(pVCpu->hNativeThreadR0 == RTThreadNativeSelf());
    970967
    971968# ifdef DEBUG_sandervl
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