Changeset 22890 in vbox
- Timestamp:
- Sep 9, 2009 11:11:31 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 52146
- Location:
- trunk
- Files:
-
- 53 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/gvm.h
r21217 r22890 42 42 typedef struct GVMCPU 43 43 { 44 /** VCPU id (0 - (pVM->cC PUs - 1). */44 /** VCPU id (0 - (pVM->cCpus - 1). */ 45 45 VMCPUID idCpu; 46 46 … … 84 84 PVM pVM; 85 85 /** Number of Virtual CPUs, i.e. how many entries there are in aCpus. 86 * Same same as PVM::cCPUs. */86 * Same same as VM::cCpus. */ 87 87 uint32_t cCpus; 88 88 uint32_t padding; -
trunk/include/VBox/vm.h
r22889 r22890 698 698 uint32_t hSelf; 699 699 /** Number of virtual CPUs. */ 700 uint32_t cC PUs;700 uint32_t cCpus; 701 701 702 702 /** Size of the VM structure including the VMCPU array. */ -
trunk/include/VBox/vm.mac
r22888 r22890 56 56 .pVMRC RTRCPTR_RES 1 57 57 .hSelf resd 1 58 .cC PUs resd 158 .cCpus resd 1 59 59 .cbSelf resd 1 60 60 .offVMCPU resd 1 -
trunk/include/VBox/vmapi.h
r22784 r22890 349 349 350 350 351 VMMR3DECL(int) VMR3Create(uint32_t cC PUs, PFNVMATERROR pfnVMAtError, void *pvUserVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM, PVM *ppVM);351 VMMR3DECL(int) VMR3Create(uint32_t cCpus, PFNVMATERROR pfnVMAtError, void *pvUserVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM, PVM *ppVM); 352 352 VMMR3DECL(int) VMR3PowerOn(PVM pVM); 353 353 VMMR3DECL(int) VMR3Suspend(PVM pVM); -
trunk/src/VBox/VMM/CPUM.cpp
r22793 r22890 137 137 138 138 /* Calculate the offset from CPUMCPU to CPUM. */ 139 for ( unsigned i=0;i<pVM->cCPUs;i++)139 for (VMCPUID i = 0; i < pVM->cCpus; i++) 140 140 { 141 141 PVMCPU pVCpu = &pVM->aCpus[i]; … … 320 320 | X86_CPUID_FEATURE_ECX_SSE3 321 321 /* Can't properly emulate monitor & mwait with guest SMP; force the guest to use hlt for idling VCPUs. */ 322 | ((pVM->cC PUs == 1) ? X86_CPUID_FEATURE_ECX_MONITOR : 0)322 | ((pVM->cCpus == 1) ? X86_CPUID_FEATURE_ECX_MONITOR : 0) 323 323 //| X86_CPUID_FEATURE_ECX_CPLDS - no CPL qualified debug store. 324 324 //| X86_CPUID_FEATURE_ECX_VMX - not virtualized. … … 388 388 pCPUM->aGuestCpuIdStd[1].ebx &= 0x0000ffff; 389 389 #ifdef VBOX_WITH_MULTI_CORE 390 if (pVM->cC PUs > 1)390 if (pVM->cCpus > 1) 391 391 { 392 392 /* If CPUID Fn0000_0001_EDX[HTT] = 1 then LogicalProcessorCount is the number of threads per CPU core times the number of CPU cores per processor */ 393 pCPUM->aGuestCpuIdStd[1].ebx |= (pVM->cC PUs << 16);393 pCPUM->aGuestCpuIdStd[1].ebx |= (pVM->cCpus << 16); 394 394 pCPUM->aGuestCpuIdStd[1].edx |= X86_CPUID_FEATURE_EDX_HTT; /* necessary for hyper-threading *or* multi-core CPUs */ 395 395 } … … 423 423 pCPUM->aGuestCpuIdStd[4].eax = pCPUM->aGuestCpuIdStd[4].ebx = 0; 424 424 #ifdef VBOX_WITH_MULTI_CORE 425 if ( pVM->cC PUs > 1425 if ( pVM->cCpus > 1 426 426 && pVM->cpum.s.enmCPUVendor == CPUMCPUVENDOR_INTEL) 427 427 { 428 AssertReturn(pVM->cC PUs <= 64, VERR_TOO_MANY_CPUS);428 AssertReturn(pVM->cCpus <= 64, VERR_TOO_MANY_CPUS); 429 429 /* One logical processor with possibly multiple cores. */ 430 430 /* See http://www.intel.com/Assets/PDF/appnote/241618.pdf p. 29 */ 431 pCPUM->aGuestCpuIdStd[4].eax |= ((pVM->cC PUs - 1) << 26); /* 6 bits only -> 64 cores! */431 pCPUM->aGuestCpuIdStd[4].eax |= ((pVM->cCpus - 1) << 26); /* 6 bits only -> 64 cores! */ 432 432 } 433 433 #endif … … 517 517 pCPUM->aGuestCpuIdExt[8].ecx = 0; 518 518 #ifdef VBOX_WITH_MULTI_CORE 519 if ( pVM->cC PUs > 1519 if ( pVM->cCpus > 1 520 520 && pVM->cpum.s.enmCPUVendor == CPUMCPUVENDOR_AMD) 521 521 { 522 522 /* Legacy method to determine the number of cores. */ 523 523 pCPUM->aGuestCpuIdExt[1].ecx |= X86_CPUID_AMD_FEATURE_ECX_CMPL; 524 pCPUM->aGuestCpuIdExt[8].ecx |= (pVM->cC PUs - 1); /* NC: Number of CPU cores - 1; 8 bits */524 pCPUM->aGuestCpuIdExt[8].ecx |= (pVM->cCpus - 1); /* NC: Number of CPU cores - 1; 8 bits */ 525 525 526 526 } … … 565 565 * of processors from (cpuid(4).eax >> 26) + 1. 566 566 */ 567 if (pVM->cC PUs == 1)567 if (pVM->cCpus == 1) 568 568 pCPUM->aGuestCpuIdStd[4].eax = 0; 569 569 … … 686 686 { 687 687 LogFlow(("CPUMR3Relocate\n")); 688 for (unsigned i=0;i<pVM->cCPUs;i++) 689 { 690 PVMCPU pVCpu = &pVM->aCpus[i]; 688 for (VMCPUID i = 0; i < pVM->cCpus; i++) 689 { 691 690 /* 692 691 * Switcher pointers. 693 692 */ 693 PVMCPU pVCpu = &pVM->aCpus[i]; 694 694 pVCpu->cpum.s.pHyperCoreRC = MMHyperCCToRC(pVM, pVCpu->cpum.s.pHyperCoreR3); 695 695 Assert(pVCpu->cpum.s.pHyperCoreRC != NIL_RTRCPTR); … … 726 726 { 727 727 #ifdef VBOX_WITH_CRASHDUMP_MAGIC 728 for ( unsigned i=0;i<pVM->cCPUs;i++)729 { 730 PVMCPU pVCpu= &pVM->aCpus[i];731 PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVCpu);728 for (VMCPUID i = 0; i < pVM->cCpus; i++) 729 { 730 PVMCPU pVCpu = &pVM->aCpus[i]; 731 PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVCpu); 732 732 733 733 memset(pVCpu->cpum.s.aMagic, 0, sizeof(pVCpu->cpum.s.aMagic)); … … 825 825 VMMR3DECL(void) CPUMR3Reset(PVM pVM) 826 826 { 827 for ( unsigned i=0;i<pVM->cCPUs;i++)827 for (VMCPUID i = 0; i < pVM->cCpus; i++) 828 828 { 829 829 CPUMR3ResetCpu(&pVM->aCpus[i]); … … 853 853 * Save. 854 854 */ 855 for ( unsigned i=0;i<pVM->cCPUs;i++)855 for (VMCPUID i = 0; i < pVM->cCpus; i++) 856 856 { 857 857 PVMCPU pVCpu = &pVM->aCpus[i]; … … 860 860 } 861 861 862 SSMR3PutU32(pSSM, pVM->cC PUs);863 for ( unsigned i=0;i<pVM->cCPUs;i++)862 SSMR3PutU32(pSSM, pVM->cCpus); 863 for (VMCPUID i = 0; i < pVM->cCpus; i++) 864 864 { 865 865 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1019 1019 * Restore. 1020 1020 */ 1021 for (VMCPUID i = 0; i < pVM->cC PUs; i++)1021 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1022 1022 { 1023 1023 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1046 1046 if (uVersion >= CPUM_SAVED_STATE_VERSION_VER2_1_NOMSR) 1047 1047 { 1048 int rc = SSMR3GetU32(pSSM, &pVM->cCPUs); 1048 /** @todo r=bird: cCPUs: Why are we doing this?!? cCpus is a config value that 1049 * cannot be changed by a saved state. If the saved one differs we 1050 * fail. */ 1051 int rc = SSMR3GetU32(pSSM, &pVM->cCpus); 1049 1052 AssertRCReturn(rc, rc); 1050 1053 } 1051 1054 1052 if ( !pVM->cC PUs1053 || pVM->cC PUs > VMM_MAX_CPU_COUNT1055 if ( !pVM->cCpus 1056 || pVM->cCpus > VMM_MAX_CPU_COUNT 1054 1057 || ( uVersion == CPUM_SAVED_STATE_VERSION_VER2_0 1055 && pVM->cC PUs != 1))1058 && pVM->cCpus != 1)) 1056 1059 { 1057 AssertMsgFailed(("Unexpected number of VMCPUs (% d)\n", pVM->cCPUs));1060 AssertMsgFailed(("Unexpected number of VMCPUs (%u)\n", pVM->cCpus)); 1058 1061 return VERR_SSM_UNEXPECTED_DATA; 1059 1062 } 1060 1063 1061 for (VMCPUID i = 0; i < pVM->cC PUs; i++)1064 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1062 1065 { 1063 1066 SSMR3GetMem(pSSM, &pVM->aCpus[i].cpum.s.Guest, sizeof(pVM->aCpus[i].cpum.s.Guest)); -
trunk/src/VBox/VMM/DBGF.cpp
r21144 r22890 1075 1075 AssertReturn(pVM->dbgf.s.fAttached, VERR_DBGF_NOT_ATTACHED); 1076 1076 AssertReturn(RTSemPongIsSpeaker(&pVM->dbgf.s.PingPong), VERR_SEM_OUT_OF_TURN); 1077 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);1077 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 1078 1078 1079 1079 /* -
trunk/src/VBox/VMM/DBGFAddr.cpp
r22112 r22890 103 103 VMMR3DECL(int) DBGFR3AddrFromSelOff(PVM pVM, VMCPUID idCpu, PDBGFADDRESS pAddress, RTSEL Sel, RTUINTPTR off) 104 104 { 105 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);105 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 106 106 107 107 pAddress->Sel = Sel; … … 258 258 AssertReturn(DBGFADDRESS_IS_VALID(pAddress), VERR_INVALID_PARAMETER); 259 259 VM_ASSERT_VALID_EXT_RETURN(pVM, VERR_INVALID_STATE); 260 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);260 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 261 261 262 262 /* … … 324 324 AssertReturn(DBGFADDRESS_IS_VALID(pAddress), VERR_INVALID_PARAMETER); 325 325 VM_ASSERT_VALID_EXT_RETURN(pVM, VERR_INVALID_STATE); 326 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);326 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 327 327 328 328 /* … … 438 438 AssertReturn(DBGFADDRESS_IS_VALID(pAddress), VERR_INVALID_PARAMETER); 439 439 VM_ASSERT_VALID_EXT_RETURN(pVM, VERR_INVALID_STATE); 440 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);440 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 441 441 442 442 /* -
trunk/src/VBox/VMM/DBGFDisas.cpp
r22112 r22890 551 551 { 552 552 VM_ASSERT_VALID_EXT_RETURN(pVM, VERR_INVALID_VM_HANDLE); 553 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_CPU_ID);553 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_CPU_ID); 554 554 555 555 /* -
trunk/src/VBox/VMM/DBGFMem.cpp
r22105 r22890 122 122 VMMR3DECL(int) DBGFR3MemScan(PVM pVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, RTGCUINTPTR cbRange, const uint8_t *pabNeedle, size_t cbNeedle, PDBGFADDRESS pHitAddress) 123 123 { 124 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);124 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 125 125 126 126 PVMREQ pReq; … … 207 207 VMMR3DECL(int) DBGFR3MemRead(PVM pVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, void *pvBuf, size_t cbRead) 208 208 { 209 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);209 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 210 210 if ((pAddress->fFlags & DBGFADDRESS_FLAGS_TYPE_MASK) == DBGFADDRESS_FLAGS_RING0) 211 211 { … … 295 295 return VERR_INVALID_PARAMETER; 296 296 memset(pszBuf, 0, cchBuf); 297 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);297 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 298 298 299 299 /* … … 381 381 VMMR3DECL(int) DBGFR3MemWrite(PVM pVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, void const *pvBuf, size_t cbWrite) 382 382 { 383 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);383 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 384 384 385 385 PVMREQ pReq; … … 481 481 VMMR3DECL(int) DBGFR3SelQueryInfo(PVM pVM, VMCPUID idCpu, RTSEL Sel, uint32_t fFlags, PDBGFSELINFO pSelInfo) 482 482 { 483 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_PARAMETER);483 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_PARAMETER); 484 484 AssertReturn(!(fFlags & ~(DBGFSELQI_FLAGS_DT_GUEST | DBGFSELQI_FLAGS_DT_SHADOW | DBGFSELQI_FLAGS_DT_ADJ_64BIT_MODE)), VERR_INVALID_PARAMETER); 485 485 AssertReturn( (fFlags & (DBGFSELQI_FLAGS_DT_SHADOW | DBGFSELQI_FLAGS_DT_ADJ_64BIT_MODE)) -
trunk/src/VBox/VMM/DBGFStack.cpp
r22112 r22890 433 433 *ppFirstFrame = NULL; 434 434 VM_ASSERT_VALID_EXT_RETURN(pVM, VERR_INVALID_VM_HANDLE); 435 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_CPU_ID);435 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_CPU_ID); 436 436 if (pAddrFrame) 437 437 AssertReturn(DBGFR3AddrIsValid(pVM, pAddrFrame), VERR_INVALID_PARAMETER); -
trunk/src/VBox/VMM/EM.cpp
r22793 r22890 137 137 return rc; 138 138 139 for ( unsigned i=0;i<pVM->cCPUs;i++)139 for (VMCPUID i = 0; i < pVM->cCpus; i++) 140 140 { 141 141 PVMCPU pVCpu = &pVM->aCpus[i]; … … 428 428 { 429 429 LogFlow(("EMR3Relocate\n")); 430 for ( unsigned i=0;i<pVM->cCPUs;i++)430 for (VMCPUID i = 0; i < pVM->cCpus; i++) 431 431 { 432 432 PVMCPU pVCpu = &pVM->aCpus[i]; 433 434 433 if (pVCpu->em.s.pStatsR3) 435 434 pVCpu->em.s.pStatsRC = MMHyperR3ToRC(pVM, pVCpu->em.s.pStatsR3); … … 446 445 { 447 446 LogFlow(("EMR3Reset: \n")); 448 for ( unsigned i=0;i<pVM->cCPUs;i++)447 for (VMCPUID i = 0; i < pVM->cCpus; i++) 449 448 { 450 449 PVMCPU pVCpu = &pVM->aCpus[i]; 451 452 450 pVCpu->em.s.fForceRAW = false; 453 451 } … … 495 493 static DECLCALLBACK(int) emR3Save(PVM pVM, PSSMHANDLE pSSM) 496 494 { 497 for (VMCPUID i = 0; i < pVM->cC PUs; i++)495 for (VMCPUID i = 0; i < pVM->cCpus; i++) 498 496 { 499 497 PVMCPU pVCpu = &pVM->aCpus[i]; … … 536 534 * Load the saved state. 537 535 */ 538 for (VMCPUID i = 0; i < pVM->cC PUs; i++)536 for (VMCPUID i = 0; i < pVM->cCpus; i++) 539 537 { 540 538 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1365 1363 { 1366 1364 /* Try not to cause deadlocks. */ 1367 if ( pVM->cC PUs == 11365 if ( pVM->cCpus == 1 1368 1366 || ( !PGMIsLockOwner(pVM) 1369 1367 && !IOMIsLockOwner(pVM)) -
trunk/src/VBox/VMM/EMHwaccm.cpp
r22493 r22890 518 518 uint32_t cpl = CPUMGetGuestCPL(pVCpu, CPUMCTX2CORE(pCtx)); 519 519 520 if (pVM->cC PUs == 1)520 if (pVM->cCpus == 1) 521 521 { 522 522 if (pCtx->eflags.Bits.u1VM) -
trunk/src/VBox/VMM/HWACCM.cpp
r22793 r22890 398 398 LogFlow(("HWACCMR3InitCPU\n")); 399 399 400 for ( unsigned i=0;i<pVM->cCPUs;i++)400 for (VMCPUID i = 0; i < pVM->cCpus; i++) 401 401 { 402 402 PVMCPU pVCpu = &pVM->aCpus[i]; … … 414 414 * Statistics. 415 415 */ 416 for ( unsigned i=0;i<pVM->cCPUs;i++)416 for (VMCPUID i = 0; i < pVM->cCpus; i++) 417 417 { 418 418 PVMCPU pVCpu = &pVM->aCpus[i]; … … 573 573 #ifdef VBOX_WITH_CRASHDUMP_MAGIC 574 574 /* Magic marker for searching in crash dumps. */ 575 for ( unsigned i=0;i<pVM->cCPUs;i++)575 for (VMCPUID i = 0; i < pVM->cCpus; i++) 576 576 { 577 577 PVMCPU pVCpu = &pVM->aCpus[i]; … … 610 610 611 611 /* Reinit the paging mode to force the new shadow mode. */ 612 for ( unsigned i=0;i<pVM->cCPUs;i++)612 for (VMCPUID i = 0; i < pVM->cCpus; i++) 613 613 { 614 614 PVMCPU pVCpu = &pVM->aCpus[i]; … … 648 648 LogRel(("HWACCM: The host kernel does not support VT-x!\n")); 649 649 #endif 650 if ( pVM->cC PUs > 1650 if ( pVM->cCpus > 1 651 651 || VMMIsHwVirtExtForced(pVM)) 652 652 return rc; … … 981 981 AssertRelease(MSR_IA32_VMX_MISC_MAX_MSR(pVM->hwaccm.s.vmx.msr.vmx_misc) >= 512); 982 982 983 for ( unsigned i=0;i<pVM->cCPUs;i++)983 for (VMCPUID i = 0; i < pVM->cCpus; i++) 984 984 { 985 985 LogRel(("HWACCM: VCPU%d: MSR bitmap physaddr = %RHp\n", i, pVM->aCpus[i].hwaccm.s.vmx.pMSRBitmapPhys)); … … 1203 1203 if (VMR3GetState(pVM) == VMSTATE_LOADING) 1204 1204 { 1205 for ( unsigned i=0;i<pVM->cCPUs;i++)1205 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1206 1206 { 1207 1207 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1351 1351 VMMR3DECL(int) HWACCMR3TermCPU(PVM pVM) 1352 1352 { 1353 for ( unsigned i=0;i<pVM->cCPUs;i++)1353 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1354 1354 { 1355 1355 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1394 1394 hwaccmR3DisableRawMode(pVM); 1395 1395 1396 for ( unsigned i=0;i<pVM->cCPUs;i++)1396 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1397 1397 { 1398 1398 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1535 1535 return VERR_NOT_SUPPORTED; 1536 1536 1537 if (pVM->cC PUs > 1)1537 if (pVM->cCpus > 1) 1538 1538 { 1539 1539 /* We own the IOM lock here and could cause a deadlock by waiting for a VCPU that is blocking on the IOM lock. */ … … 2318 2318 VMMR3DECL(void) HWACCMR3CheckError(PVM pVM, int iStatusCode) 2319 2319 { 2320 for ( unsigned i=0;i<pVM->cCPUs;i++)2320 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2321 2321 { 2322 2322 switch(iStatusCode) … … 2367 2367 Log(("hwaccmR3Save:\n")); 2368 2368 2369 for ( unsigned i=0;i<pVM->cCPUs;i++)2369 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2370 2370 { 2371 2371 /* … … 2463 2463 return VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION; 2464 2464 } 2465 for (VMCPUID i = 0; i < pVM->cC PUs; i++)2465 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2466 2466 { 2467 2467 rc = SSMR3GetU32(pSSM, &pVM->aCpus[i].hwaccm.s.Event.fPending); -
trunk/src/VBox/VMM/MMHyper.cpp
r21992 r22890 80 80 if (rc == VERR_CFGM_NO_PARENT || rc == VERR_CFGM_VALUE_NOT_FOUND) 81 81 { 82 if (pVM->cC PUs > 1)83 cbHyperHeap = _2M + pVM->cC PUs * _64K;82 if (pVM->cCpus > 1) 83 cbHyperHeap = _2M + pVM->cCpus * _64K; 84 84 else 85 85 cbHyperHeap = VMMIsHwVirtExtForced(pVM) … … 109 109 * Map the VM structure into the hypervisor space. 110 110 */ 111 AssertRelease(pVM->cbSelf == RT_UOFFSETOF(VM, aCpus[pVM->cC PUs]));111 AssertRelease(pVM->cbSelf == RT_UOFFSETOF(VM, aCpus[pVM->cCpus])); 112 112 RTGCPTR GCPtr; 113 113 rc = MMR3HyperMapPages(pVM, pVM, pVM->pVMR0, RT_ALIGN_Z(pVM->cbSelf, PAGE_SIZE) >> PAGE_SHIFT, pVM->paVMPagesR3, "VM", &GCPtr); … … 115 115 { 116 116 pVM->pVMRC = (RTRCPTR)GCPtr; 117 for ( uint32_t i = 0; i < pVM->cCPUs; i++)117 for (VMCPUID i = 0; i < pVM->cCpus; i++) 118 118 pVM->aCpus[i].pVMRC = pVM->pVMRC; 119 119 … … 320 320 RTGCINTPTR offDelta = GCPtrNew - GCPtrOld; 321 321 pVM->pVMRC += offDelta; 322 for ( uint32_t i = 0; i < pVM->cCPUs; i++)322 for (VMCPUID i = 0; i < pVM->cCpus; i++) 323 323 pVM->aCpus[i].pVMRC = pVM->pVMRC; 324 324 -
trunk/src/VBox/VMM/PATM/CSAM.cpp
r22793 r22890 563 563 int rc; 564 564 R3PTRTYPE(void *) pHCPtr; 565 Assert(pVM->cC PUs == 1);565 Assert(pVM->cCpus == 1); 566 566 PVMCPU pVCpu = VMMGetCpu0(pVM); 567 567 … … 612 612 RTGCUINTPTR32 pInstrGC = (uintptr_t)pCpu->apvUserData[2]; 613 613 int orgsize = size; 614 Assert(pVM->cC PUs == 1);614 Assert(pVM->cCpus == 1); 615 615 PVMCPU pVCpu = VMMGetCpu0(pVM); 616 616 … … 1087 1087 R3PTRTYPE(uint8_t *) pCurInstrHC = 0; 1088 1088 int rc2; 1089 Assert(pVM->cC PUs == 1);1089 Assert(pVM->cCpus == 1); 1090 1090 PVMCPU pVCpu = VMMGetCpu0(pVM); 1091 1091 … … 1363 1363 uint32_t val[5]; 1364 1364 int rc; 1365 Assert(pVM->cC PUs == 1);1365 Assert(pVM->cCpus == 1); 1366 1366 PVMCPU pVCpu = VMMGetCpu0(pVM); 1367 1367 … … 1431 1431 RTGCPHYS GCPhys = 0; 1432 1432 uint64_t fFlags = 0; 1433 Assert(pVM->cC PUs == 1 || !CSAMIsEnabled(pVM));1433 Assert(pVM->cCpus == 1 || !CSAMIsEnabled(pVM)); 1434 1434 1435 1435 if (!CSAMIsEnabled(pVM)) … … 1624 1624 int rc; 1625 1625 bool ret; 1626 Assert(pVM->cC PUs == 1);1626 Assert(pVM->cCpus == 1); 1627 1627 PVMCPU pVCpu = VMMGetCpu0(pVM); 1628 1628 … … 1727 1727 int rc; 1728 1728 bool fMonitorInvalidation; 1729 Assert(pVM->cC PUs == 1);1729 Assert(pVM->cCpus == 1); 1730 1730 PVMCPU pVCpu = VMMGetCpu0(pVM); 1731 1731 … … 1873 1873 { 1874 1874 PCSAMPAGEREC pPageRec; 1875 Assert(pVM->cC PUs == 1);1875 Assert(pVM->cCpus == 1); 1876 1876 PVMCPU pVCpu = VMMGetCpu0(pVM); 1877 1877 … … 2194 2194 static int csamR3FlushDirtyPages(PVM pVM) 2195 2195 { 2196 Assert(pVM->cC PUs == 1);2196 Assert(pVM->cCpus == 1); 2197 2197 PVMCPU pVCpu = VMMGetCpu0(pVM); 2198 2198 … … 2245 2245 static int csamR3FlushCodePages(PVM pVM) 2246 2246 { 2247 Assert(pVM->cC PUs == 1);2247 Assert(pVM->cCpus == 1); 2248 2248 PVMCPU pVCpu = VMMGetCpu0(pVM); 2249 2249 … … 2289 2289 VMMR3DECL(int) CSAMR3CheckGates(PVM pVM, uint32_t iGate, uint32_t cGates) 2290 2290 { 2291 Assert(pVM->cC PUs == 1);2291 Assert(pVM->cCpus == 1); 2292 2292 PVMCPU pVCpu = VMMGetCpu0(pVM); 2293 2293 uint16_t cbIDT; -
trunk/src/VBox/VMM/PATM/PATM.cpp
r22480 r22890 6005 6005 PVMCPU pVCpu = VMMGetCpu0(pVM); 6006 6006 6007 Assert(pVM->cC PUs == 1);6007 Assert(pVM->cCpus == 1); 6008 6008 6009 6009 pNewEip = 0; -
trunk/src/VBox/VMM/PDM.cpp
r22793 r22890 637 637 * Save interrupt and DMA states. 638 638 */ 639 for ( unsigned idCpu = 0; idCpu < pVM->cCPUs; idCpu++)639 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 640 640 { 641 641 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 680 680 )); 681 681 #ifdef LOG_ENABLED 682 for ( unsigned idCpu=0;idCpu<pVM->cCPUs;idCpu++)682 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 683 683 { 684 684 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 698 698 699 699 /* Clear the FFs. */ 700 for ( unsigned idCpu=0;idCpu<pVM->cCPUs;idCpu++)700 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 701 701 { 702 702 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 741 741 * Load the interrupt and DMA states. 742 742 */ 743 for (VMCPUID idCpu = 0; idCpu < pVM->cC PUs; idCpu++)743 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 744 744 { 745 745 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 960 960 * Clear all pending interrupts and DMA operations. 961 961 */ 962 for ( unsigned idCpu=0;idCpu<pVM->cCPUs;idCpu++)962 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 963 963 { 964 964 PVMCPU pVCpu = &pVM->aCpus[idCpu]; -
trunk/src/VBox/VMM/PDMDevHlp.cpp
r22723 r22890 2355 2355 pDevIns->pDevReg->szDeviceName, pDevIns->iInstance)); 2356 2356 2357 if (pVM->cC PUs > 1)2357 if (pVM->cCpus > 1) 2358 2358 { 2359 2359 /* We own the IOM lock here and could cause a deadlock by waiting for a VCPU that is blocking on the IOM lock. */ … … 2382 2382 pDevIns->pDevReg->szDeviceName, pDevIns->iInstance)); 2383 2383 2384 if (pVM->cC PUs > 1)2384 if (pVM->cCpus > 1) 2385 2385 { 2386 2386 /* We own the IOM lock here and could cause a deadlock by waiting for a VCPU that is blocking on the IOM lock. */ -
trunk/src/VBox/VMM/PDMDevMiscHlp.cpp
r20902 r22890 151 151 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 152 152 153 AssertReturnVoid(idCpu < pVM->cC PUs);153 AssertReturnVoid(idCpu < pVM->cCpus); 154 154 155 155 LogFlow(("pdmR3ApicHlp_SetInterruptFF: caller='%s'/%d: VM_FF_INTERRUPT(%d) %d -> 1\n", … … 183 183 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 184 184 185 AssertReturnVoid(idCpu < pVM->cC PUs);185 AssertReturnVoid(idCpu < pVM->cCpus); 186 186 187 187 LogFlow(("pdmR3ApicHlp_ClearInterruptFF: caller='%s'/%d: VM_FF_INTERRUPT(%d) %d -> 0\n", -
trunk/src/VBox/VMM/PGM.cpp
r22793 r22890 1198 1198 1199 1199 /* Init the per-CPU part. */ 1200 for ( unsigned i=0;i<pVM->cCPUs;i++)1200 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1201 1201 { 1202 1202 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1340 1340 if (RT_SUCCESS(rc)) 1341 1341 { 1342 for ( unsigned i=0;i<pVM->cCPUs;i++)1342 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1343 1343 { 1344 1344 PVMCPU pVCpu = &pVM->aCpus[i]; 1345 1346 1345 rc = PGMR3ChangeMode(pVM, pVCpu, PGMMODE_REAL); 1347 1346 if (RT_FAILURE(rc)) … … 1426 1425 * Force a recalculation of modes and switcher so everyone gets notified. 1427 1426 */ 1428 for ( unsigned i=0;i<pVM->cCPUs;i++)1427 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1429 1428 { 1430 1429 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1674 1673 * Common - stats 1675 1674 */ 1676 for ( unsigned i=0;i<pVM->cCPUs;i++)1675 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1677 1676 { 1678 1677 PVMCPU pVCpu = &pVM->aCpus[i]; 1679 PPGMCPU pPGM = &pVCpu->pgm.s;1678 PPGMCPU pPGM = &pVCpu->pgm.s; 1680 1679 1681 1680 #define PGM_REG_COUNTER(a, b, c) \ … … 2009 2008 2010 2009 /* Shadow, guest and both mode switch & relocation for each VCPU. */ 2011 for ( unsigned i=0;i<pVM->cCPUs;i++)2010 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2012 2011 { 2013 2012 PVMCPU pVCpu = &pVM->aCpus[i]; … … 2180 2179 * Important to clean up the amd64 case. 2181 2180 */ 2182 for ( unsigned i=0;i<pVM->cCPUs;i++)2181 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2183 2182 { 2184 2183 PVMCPU pVCpu = &pVM->aCpus[i]; 2185 2186 2184 rc = PGM_GST_PFN(Exit, pVCpu)(pVCpu); 2187 2185 AssertRC(rc); … … 2196 2194 * Switch mode back to real mode. (before resetting the pgm pool!) 2197 2195 */ 2198 for ( unsigned i=0;i<pVM->cCPUs;i++)2196 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2199 2197 { 2200 2198 PVMCPU pVCpu = &pVM->aCpus[i]; … … 2211 2209 pgmR3PoolReset(pVM); 2212 2210 2213 for ( unsigned i=0;i<pVM->cCPUs;i++)2211 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2214 2212 { 2215 2213 PVMCPU pVCpu = &pVM->aCpus[i]; … … 2439 2437 SSMR3PutStruct(pSSM, pPGM, &s_aPGMFields[0]); 2440 2438 2441 for (i=0;i<pVM->cCPUs;i++) 2442 { 2443 PVMCPU pVCpu = &pVM->aCpus[i]; 2444 2439 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 2440 { 2441 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 2445 2442 SSMR3PutStruct(pSSM, &pVCpu->pgm.s, &s_aPGMCpuFields[0]); 2446 2443 } … … 2690 2687 AssertLogRelRCReturn(rc, rc); 2691 2688 2692 for (VMCPUID i = 0; i < pVM->cC PUs; i++)2689 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2693 2690 { 2694 2691 rc = SSMR3GetStruct(pSSM, &pVM->aCpus[i].pgm.s, &s_aPGMCpuFields[0]); … … 2698 2695 else if (uVersion >= PGM_SAVED_STATE_VERSION_RR_DESC) 2699 2696 { 2700 AssertRelease(pVM->cC PUs == 1);2697 AssertRelease(pVM->cCpus == 1); 2701 2698 2702 2699 PGMOLD pgmOld; … … 2714 2711 else 2715 2712 { 2716 AssertRelease(pVM->cC PUs == 1);2713 AssertRelease(pVM->cCpus == 1); 2717 2714 2718 2715 SSMR3GetBool(pSSM, &pPGM->fMappingsFixed); … … 3066 3063 * We require a full resync now. 3067 3064 */ 3068 for (VMCPUID i = 0; i < pVM->cC PUs; i++)3065 for (VMCPUID i = 0; i < pVM->cCpus; i++) 3069 3066 { 3070 3067 PVMCPU pVCpu = &pVM->aCpus[i]; … … 3077 3074 pgmR3HandlerPhysicalUpdateAll(pVM); 3078 3075 3079 for (VMCPUID i = 0; i < pVM->cC PUs; i++)3076 for (VMCPUID i = 0; i < pVM->cCpus; i++) 3080 3077 { 3081 3078 PVMCPU pVCpu = &pVM->aCpus[i]; -
trunk/src/VBox/VMM/PGMMap.cpp
r20796 r22890 214 214 } 215 215 216 for ( unsigned i=0;i<pVM->cCPUs;i++)216 for (VMCPUID i = 0; i < pVM->cCpus; i++) 217 217 { 218 218 PVMCPU pVCpu = &pVM->aCpus[i]; … … 271 271 MMHyperFree(pVM, pCur); 272 272 273 for ( unsigned i=0;i<pVM->cCPUs;i++)273 for (VMCPUID i = 0; i < pVM->cCpus; i++) 274 274 { 275 275 PVMCPU pVCpu = &pVM->aCpus[i]; … … 521 521 522 522 /* Only applies to VCPU 0 as we don't support SMP guests with raw mode. */ 523 Assert(pVM->cC PUs == 1);523 Assert(pVM->cCpus == 1); 524 524 525 525 PVMCPU pVCpu = &pVM->aCpus[0]; … … 653 653 pVM->pgm.s.cbMappingFixed = cb; 654 654 655 for ( unsigned i=0;i<pVM->cCPUs;i++)655 for (VMCPUID i = 0; i < pVM->cCpus; i++) 656 656 { 657 657 PVMCPU pVCpu = &pVM->aCpus[i]; 658 pVCpu->pgm.s.fSyncFlags 658 pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_MONITOR_CR3; 659 659 VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); 660 660 } … … 689 689 pVM->pgm.s.GCPtrMappingFixed = MM_HYPER_AREA_ADDRESS; 690 690 pVM->pgm.s.cbMappingFixed = cb; 691 for ( unsigned i=0;i<pVM->cCPUs;i++)691 for (VMCPUID i = 0; i < pVM->cCpus; i++) 692 692 { 693 693 PVMCPU pVCpu = &pVM->aCpus[i]; 694 695 pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_MONITOR_CR3; 694 pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_MONITOR_CR3; 696 695 VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); 697 696 } … … 718 717 pVM->pgm.s.GCPtrMappingFixed = 0; 719 718 pVM->pgm.s.cbMappingFixed = 0; 720 for ( unsigned i=0;i<pVM->cCPUs;i++)719 for (VMCPUID i = 0; i < pVM->cCpus; i++) 721 720 { 722 721 PVMCPU pVCpu = &pVM->aCpus[i]; 723 724 722 VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); 725 723 } … … 1161 1159 1162 1160 /* Raw mode only which implies one VCPU. */ 1163 Assert(pVM->cC PUs == 1);1161 Assert(pVM->cCpus == 1); 1164 1162 1165 1163 pMapping->aGCPtrConflicts[pMapping->cConflicts & (PGMMAPPING_CONFLICT_MAX-1)] = GCPtrOldMapping; … … 1237 1235 1238 1236 /* Raw mode only which implies one VCPU. */ 1239 Assert(pVM->cC PUs == 1);1237 Assert(pVM->cCpus == 1); 1240 1238 PVMCPU pVCpu = VMMGetCpu(pVM); 1241 1239 -
trunk/src/VBox/VMM/SELM.cpp
r22793 r22890 398 398 LogFlow(("SELMR3Relocate\n")); 399 399 400 for ( unsigned i=0;i<pVM->cCPUs;i++)400 for (VMCPUID i = 0; i < pVM->cCpus; i++) 401 401 { 402 402 PVMCPU pVCpu = &pVM->aCpus[i]; -
trunk/src/VBox/VMM/TM.cpp
r22808 r22890 201 201 202 202 pVM->tm.s.offVM = RT_OFFSETOF(VM, tm.s); 203 pVM->tm.s.idTimerCpu = pVM->cC PUs - 1; /* The last CPU. */203 pVM->tm.s.idTimerCpu = pVM->cCpus - 1; /* The last CPU. */ 204 204 pVM->tm.s.paTimerQueuesR3[TMCLOCK_VIRTUAL].enmClock = TMCLOCK_VIRTUAL; 205 205 pVM->tm.s.paTimerQueuesR3[TMCLOCK_VIRTUAL].u64Expire = INT64_MAX; … … 627 627 #endif /* VBOX_WITH_STATISTICS */ 628 628 629 for (VMCPUID i = 0; i < pVM->cC PUs; i++)629 for (VMCPUID i = 0; i < pVM->cCpus; i++) 630 630 STAMR3RegisterF(pVM, &pVM->aCpus[i].tm.s.offTSCRawSrc, STAMTYPE_U64, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS, "TSC offset relative the raw source", "/TM/TSC/offCPU%u", i); 631 631 … … 1046 1046 LogFlow(("tmR3Save:\n")); 1047 1047 #ifdef VBOX_STRICT 1048 for (VMCPUID i = 0; i < pVM->cC PUs; i++)1048 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1049 1049 { 1050 1050 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1072 1072 SSMR3PutU64(pSSM, TMCLOCK_FREQ_REAL); 1073 1073 1074 for (VMCPUID i = 0; i < pVM->cCPUs; i++) 1074 /* the cpu tick clock. */ 1075 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1075 1076 { 1076 1077 PVMCPU pVCpu = &pVM->aCpus[i]; 1077 1078 /* the cpu tick clock. */1079 1078 SSMR3PutU64(pSSM, TMCpuTickGet(pVCpu)); 1080 1079 } … … 1098 1097 Assert(uPass == SSM_PASS_FINAL); NOREF(uPass); 1099 1098 #ifdef VBOX_STRICT 1100 for (VMCPUID i = 0; i < pVM->cC PUs; i++)1099 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1101 1100 { 1102 1101 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1161 1160 1162 1161 /* the cpu tick clock. */ 1163 for (VMCPUID i = 0; i < pVM->cC PUs; i++)1162 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1164 1163 { 1165 1164 PVMCPU pVCpu = &pVM->aCpus[i]; … … 1748 1747 * (fRunningQueues is only used as an indicator.) 1749 1748 */ 1750 Assert(pVM->tm.s.idTimerCpu < pVM->cC PUs);1749 Assert(pVM->tm.s.idTimerCpu < pVM->cCpus); 1751 1750 PVMCPU pVCpuDst = &pVM->aCpus[pVM->tm.s.idTimerCpu]; 1752 1751 if (VMMGetCpu(pVM) != pVCpuDst) 1753 1752 { 1754 Assert(pVM->cC PUs > 1);1753 Assert(pVM->cCpus > 1); 1755 1754 return; 1756 1755 } … … 2686 2685 const uint64_t u64Real = TMRealGet(pVM); 2687 2686 2688 for ( unsigned i = 0; i < pVM->cCPUs; i++)2687 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2689 2688 { 2690 2689 PVMCPU pVCpu = &pVM->aCpus[i]; -
trunk/src/VBox/VMM/TRPM.cpp
r22793 r22890 467 467 pVM->trpm.s.offTRPMCPU = RT_OFFSETOF(VM, aCpus[0].trpm) - RT_OFFSETOF(VM, trpm); 468 468 469 for (VMCPUID i = 0; i < pVM->cC PUs; i++)469 for (VMCPUID i = 0; i < pVM->cCpus; i++) 470 470 { 471 471 PVMCPU pVCpu = &pVM->aCpus[i]; … … 744 744 * Reinitialize other members calling the relocator to get things right. 745 745 */ 746 for ( unsigned i=0;i<pVM->cCPUs;i++)746 for (VMCPUID i = 0; i < pVM->cCpus; i++) 747 747 { 748 748 PVMCPU pVCpu = &pVM->aCpus[i]; … … 776 776 * Active and saved traps. 777 777 */ 778 for ( unsigned i=0;i<pVM->cCPUs;i++)778 for (VMCPUID i = 0; i < pVM->cCpus; i++) 779 779 { 780 780 PTRPMCPU pTrpmCpu = &pVM->aCpus[i].trpm.s; 781 782 781 SSMR3PutUInt(pSSM, pTrpmCpu->uActiveVector); 783 782 SSMR3PutUInt(pSSM, pTrpmCpu->enmActiveType); … … 849 848 if (uVersion == TRPM_SAVED_STATE_VERSION) 850 849 { 851 for (VMCPUID i = 0; i < pVM->cC PUs; i++)850 for (VMCPUID i = 0; i < pVM->cCpus; i++) 852 851 { 853 852 PTRPMCPU pTrpmCpu = &pVM->aCpus[i].trpm.s; … … 1237 1236 { 1238 1237 /* Only valid in raw mode which implies 1 VCPU */ 1239 Assert(PATMIsEnabled(pVM) && pVM->cC PUs == 1);1238 Assert(PATMIsEnabled(pVM) && pVM->cCpus == 1); 1240 1239 PVMCPU pVCpu = &pVM->aCpus[0]; 1241 1240 … … 1360 1359 { 1361 1360 /* Only valid in raw mode which implies 1 VCPU */ 1362 Assert(PATMIsEnabled(pVM) && pVM->cC PUs == 1);1361 Assert(PATMIsEnabled(pVM) && pVM->cCpus == 1); 1363 1362 PVMCPU pVCpu = &pVM->aCpus[0]; 1364 1363 -
trunk/src/VBox/VMM/VM.cpp
r22885 r22890 124 124 * Internal Functions * 125 125 *******************************************************************************/ 126 static int vmR3CreateUVM(uint32_t cC PUs, PUVM *ppUVM);127 static int vmR3CreateU(PUVM pUVM, uint32_t cC PUs, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM);126 static int vmR3CreateUVM(uint32_t cCpus, PUVM *ppUVM); 127 static int vmR3CreateU(PUVM pUVM, uint32_t cCpus, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM); 128 128 static int vmR3InitRing3(PVM pVM, PUVM pUVM); 129 129 static int vmR3InitVMCpu(PVM pVM); … … 182 182 * @returns 0 on success. 183 183 * @returns VBox error code on failure. 184 * @param cC PUs Number of virtual CPUs for the new VM.184 * @param cCpus Number of virtual CPUs for the new VM. 185 185 * @param pfnVMAtError Pointer to callback function for setting VM 186 186 * errors. This was added as an implicit call to … … 195 195 * @param ppVM Where to store the 'handle' of the created VM. 196 196 */ 197 VMMR3DECL(int) VMR3Create(uint32_t cCPUs, PFNVMATERROR pfnVMAtError, void *pvUserVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM, PVM *ppVM) 198 { 199 LogFlow(("VMR3Create: cCPUs=%RU32 pfnVMAtError=%p pvUserVM=%p pfnCFGMConstructor=%p pvUserCFGM=%p ppVM=%p\n", cCPUs, pfnVMAtError, pvUserVM, pfnCFGMConstructor, pvUserCFGM, ppVM)); 197 VMMR3DECL(int) VMR3Create(uint32_t cCpus, PFNVMATERROR pfnVMAtError, void *pvUserVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM, PVM *ppVM) 198 { 199 LogFlow(("VMR3Create: cCpus=%RU32 pfnVMAtError=%p pvUserVM=%p pfnCFGMConstructor=%p pvUserCFGM=%p ppVM=%p\n", 200 cCpus, pfnVMAtError, pvUserVM, pfnCFGMConstructor, pvUserCFGM, ppVM)); 200 201 201 202 /* … … 216 217 * Validate input. 217 218 */ 218 AssertLogRelMsgReturn(cC PUs > 0 && cCPUs <= VMM_MAX_CPU_COUNT, ("%RU32\n", cCPUs), VERR_TOO_MANY_CPUS);219 AssertLogRelMsgReturn(cCpus > 0 && cCpus <= VMM_MAX_CPU_COUNT, ("%RU32\n", cCpus), VERR_TOO_MANY_CPUS); 219 220 220 221 /* … … 223 224 */ 224 225 PUVM pUVM = NULL; /* shuts up gcc */ 225 int rc = vmR3CreateUVM(cC PUs, &pUVM);226 int rc = vmR3CreateUVM(cCpus, &pUVM); 226 227 if (RT_FAILURE(rc)) 227 228 return rc; … … 246 247 PVMREQ pReq; 247 248 rc = VMR3ReqCallU(pUVM, VMCPUID_ANY, &pReq, RT_INDEFINITE_WAIT, 0, (PFNRT)vmR3CreateU, 4, 248 pUVM, cC PUs, pfnCFGMConstructor, pvUserCFGM);249 pUVM, cCpus, pfnCFGMConstructor, pvUserCFGM); 249 250 if (RT_SUCCESS(rc)) 250 251 { … … 555 556 AssertRelease(pVM->pVMR0 == CreateVMReq.pVMR0); 556 557 AssertRelease(pVM->pSession == pUVM->vm.s.pSession); 557 AssertRelease(pVM->cC PUs == cCpus);558 AssertRelease(pVM->cCpus == cCpus); 558 559 AssertRelease(pVM->offVMCPU == RT_UOFFSETOF(VM, aCpus)); 559 560 560 Log(("VMR3Create: Created pUVM=%p pVM=%p pVMR0=%p hSelf=%#x cC PUs=%RU32\n",561 pUVM, pVM, pVM->pVMR0, pVM->hSelf, pVM->cC PUs));561 Log(("VMR3Create: Created pUVM=%p pVM=%p pVMR0=%p hSelf=%#x cCpus=%RU32\n", 562 pUVM, pVM, pVM->pVMR0, pVM->hSelf, pVM->cCpus)); 562 563 563 564 /* … … 566 567 pVM->pUVM = pUVM; 567 568 568 for ( uint32_t i = 0; i < pVM->cCPUs; i++)569 for (VMCPUID i = 0; i < pVM->cCpus; i++) 569 570 { 570 571 pVM->aCpus[i].pUVCpu = &pUVM->aCpus[i]; … … 610 611 if (RT_SUCCESS(rc) && cCPUsCfg != cCpus) 611 612 { 612 AssertLogRelMsgFailed(("Configuration error: \"NumCPUs\"=%RU32 and VMR3CreateVM::cC PUs=%RU32 does not match!\n",613 AssertLogRelMsgFailed(("Configuration error: \"NumCPUs\"=%RU32 and VMR3CreateVM::cCpus=%RU32 does not match!\n", 613 614 cCPUsCfg, cCpus)); 614 615 rc = VERR_INVALID_PARAMETER; … … 756 757 * Register the other EMTs with GVM. 757 758 */ 758 for (VMCPUID idCpu = 1; idCpu < pVM->cC PUs; idCpu++)759 for (VMCPUID idCpu = 1; idCpu < pVM->cCpus; idCpu++) 759 760 { 760 761 PVMREQ pReq; … … 789 790 STAM_REG(pVM, &pVM->StatSwitcherRstrRegs, STAMTYPE_PROFILE_ADV, "/VM/Switcher/ToGC/RstrRegs", STAMUNIT_TICKS_PER_CALL,"Profiling switching to GC."); 790 791 791 for ( unsigned iCpu=0;iCpu<pVM->cCPUs;iCpu++)792 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 792 793 { 793 rc = STAMR3RegisterF(pVM, &pUVM->aCpus[i Cpu].vm.s.StatHaltYield, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling halted state yielding.", "/PROF/VM/CPU%d/Halt/Yield", iCpu);794 rc = STAMR3RegisterF(pVM, &pUVM->aCpus[idCpu].vm.s.StatHaltYield, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling halted state yielding.", "/PROF/VM/CPU%d/Halt/Yield", idCpu); 794 795 AssertRC(rc); 795 rc = STAMR3RegisterF(pVM, &pUVM->aCpus[i Cpu].vm.s.StatHaltBlock, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling halted state blocking.", "/PROF/VM/CPU%d/Halt/Block", iCpu);796 rc = STAMR3RegisterF(pVM, &pUVM->aCpus[idCpu].vm.s.StatHaltBlock, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling halted state blocking.", "/PROF/VM/CPU%d/Halt/Block", idCpu); 796 797 AssertRC(rc); 797 rc = STAMR3RegisterF(pVM, &pUVM->aCpus[i Cpu].vm.s.StatHaltTimers, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling halted state timer tasks.", "/PROF/VM/CPU%d/Halt/Timers", iCpu);798 rc = STAMR3RegisterF(pVM, &pUVM->aCpus[idCpu].vm.s.StatHaltTimers, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling halted state timer tasks.", "/PROF/VM/CPU%d/Halt/Timers", idCpu); 798 799 AssertRC(rc); 799 800 } … … 1788 1789 1789 1790 /* Inform all other VCPUs too. */ 1790 for (VMCPUID idCpu = 1; idCpu < pVM->cC PUs; idCpu++)1791 for (VMCPUID idCpu = 1; idCpu < pVM->cCpus; idCpu++) 1791 1792 { 1792 1793 /* -
trunk/src/VBox/VMM/VMM.cpp
r22793 r22890 248 248 #endif 249 249 250 for (VMCPUID idCpu = 0; idCpu < pVM->cC PUs; idCpu++)250 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 251 251 { 252 252 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 306 306 307 307 # ifdef VBOX_WITH_R0_LOGGING 308 for (VMCPUID i = 0; i < pVM->cC PUs; i++)308 for (VMCPUID i = 0; i < pVM->cCpus; i++) 309 309 { 310 310 PVMCPU pVCpu = &pVM->aCpus[i]; … … 404 404 405 405 #ifdef VBOX_WITH_STATISTICS 406 for (VMCPUID i = 0; i < pVM->cC PUs; i++)406 for (VMCPUID i = 0; i < pVM->cCpus; i++) 407 407 { 408 408 STAMR3RegisterF(pVM, &pVM->aCpus[i].vmm.s.CallRing3JmpBufR0.cbUsedMax, STAMTYPE_U32_RESET, STAMVISIBILITY_ALWAYS, STAMUNIT_BYTES, "Max amount of stack used.", "/VMM/Stack/CPU%u/Max", i); … … 437 437 int rc = VINF_SUCCESS; 438 438 439 for (VMCPUID idCpu = 0; idCpu < pVM->cC PUs; idCpu++)439 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 440 440 { 441 441 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 559 559 return VINF_SUCCESS; 560 560 561 AssertReturn(pVM->cC PUs == 1, VERR_RAW_MODE_INVALID_SMP);561 AssertReturn(pVM->cCpus == 1, VERR_RAW_MODE_INVALID_SMP); 562 562 563 563 /* … … 681 681 * Make the two stack guard pages present again. 682 682 */ 683 for (VMCPUID i = 0; i < pVM->cC PUs; i++)683 for (VMCPUID i = 0; i < pVM->cCpus; i++) 684 684 { 685 685 MMR3HyperSetGuard(pVM, pVM->aCpus[i].vmm.s.pbEMTStackR3 - PAGE_SIZE, PAGE_SIZE, false /*fSet*/); … … 728 728 * The stack. 729 729 */ 730 for (VMCPUID i = 0; i < pVM->cC PUs; i++)730 for (VMCPUID i = 0; i < pVM->cCpus; i++) 731 731 { 732 732 PVMCPU pVCpu = &pVM->aCpus[i]; … … 814 814 * in ring-0. Only initialize it once. 815 815 */ 816 for (VMCPUID i = 0; i < pVM->cC PUs; i++)816 for (VMCPUID i = 0; i < pVM->cCpus; i++) 817 817 { 818 818 PVMCPU pVCpu = &pVM->aCpus[i]; … … 922 922 * be running. This avoids breaking the saved state version. :-) 923 923 */ 924 for (VMCPUID i = 1; i < pVM->cC PUs; i++)924 for (VMCPUID i = 1; i < pVM->cCpus; i++) 925 925 SSMR3PutBool(pSSM, VMCPUSTATE_IS_STARTED(VMCPU_GET_STATE(&pVM->aCpus[i]))); 926 926 … … 969 969 /* Restore the VMCPU states. VCPU 0 is always started. */ 970 970 VMCPU_SET_STATE(&pVM->aCpus[0], VMCPUSTATE_STARTED); 971 for (VMCPUID i = 1; i < pVM->cC PUs; i++)971 for (VMCPUID i = 1; i < pVM->cCpus; i++) 972 972 { 973 973 bool fStarted; … … 1129 1129 Log2(("VMMR3RawRunGC: (cs:eip=%04x:%08x)\n", CPUMGetGuestCS(pVCpu), CPUMGetGuestEIP(pVCpu))); 1130 1130 1131 AssertReturn(pVM->cC PUs == 1, VERR_RAW_MODE_INVALID_SMP);1131 AssertReturn(pVM->cCpus == 1, VERR_RAW_MODE_INVALID_SMP); 1132 1132 1133 1133 /* … … 1289 1289 VMMR3DECL(void) VMMR3SendSipi(PVM pVM, VMCPUID idCpu, uint32_t uVector) 1290 1290 { 1291 AssertReturnVoid(idCpu < pVM->cC PUs);1291 AssertReturnVoid(idCpu < pVM->cCpus); 1292 1292 1293 1293 PVMREQ pReq; … … 1305 1305 VMMR3DECL(void) VMMR3SendInitIpi(PVM pVM, VMCPUID idCpu) 1306 1306 { 1307 AssertReturnVoid(idCpu < pVM->cC PUs);1307 AssertReturnVoid(idCpu < pVM->cCpus); 1308 1308 1309 1309 PVMREQ pReq; … … 1379 1379 1380 1380 /* Shortcut for the uniprocessor case. */ 1381 if (pVM->cC PUs == 1)1381 if (pVM->cCpus == 1) 1382 1382 return pfnHandler(pVM, pvUser); 1383 1383 1384 1384 RTCritSectEnter(&pVM->vmm.s.CritSectSync); 1385 for (VMCPUID idCpu = 0; idCpu < pVM->cC PUs; idCpu++)1385 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 1386 1386 { 1387 1387 if (idCpu != pVCpu->idCpu) … … 1393 1393 } 1394 1394 /* Wait until all other VCPUs are waiting for us. */ 1395 while (RTCritSectGetWaiters(&pVM->vmm.s.CritSectSync) != (int32_t)(pVM->cC PUs - 1))1395 while (RTCritSectGetWaiters(&pVM->vmm.s.CritSectSync) != (int32_t)(pVM->cCpus - 1)) 1396 1396 RTThreadSleep(1); 1397 1397 … … 1410 1410 { 1411 1411 uint32_t cReturned = ASMAtomicIncU32(&pVM->vmm.s.cRendezvousEmtsReturned); 1412 if (cReturned == pVM->cC PUs - 1U)1412 if (cReturned == pVM->cCpus - 1U) 1413 1413 { 1414 1414 int rc = RTSemEventSignal(pVM->vmm.s.hEvtRendezvousDoneCaller); … … 1438 1438 */ 1439 1439 uint32_t cEntered = ASMAtomicIncU32(&pVM->vmm.s.cRendezvousEmtsEntered); 1440 if (cEntered != pVM->cC PUs)1440 if (cEntered != pVM->cCpus) 1441 1441 { 1442 1442 if ((fFlags & VMMEMTRENDEZVOUS_FLAGS_TYPE_MASK) == VMMEMTRENDEZVOUS_FLAGS_TYPE_ONE_BY_ONE) … … 1514 1514 */ 1515 1515 uint32_t cDone = ASMAtomicIncU32(&pVM->vmm.s.cRendezvousEmtsDone); 1516 if ( cDone != pVM->cC PUs1516 if ( cDone != pVM->cCpus 1517 1517 && (fFlags & VMMEMTRENDEZVOUS_FLAGS_TYPE_MASK) != VMMEMTRENDEZVOUS_FLAGS_TYPE_ONCE) 1518 1518 { … … 1587 1587 1588 1588 int rc; 1589 if (pVM->cC PUs == 1)1589 if (pVM->cCpus == 1) 1590 1590 /* 1591 1591 * Shortcut for the single EMT case. … … 1706 1706 { 1707 1707 /* Raw mode implies 1 VCPU. */ 1708 AssertReturn(pVM->cC PUs == 1, VERR_RAW_MODE_INVALID_SMP);1708 AssertReturn(pVM->cCpus == 1, VERR_RAW_MODE_INVALID_SMP); 1709 1709 PVMCPU pVCpu = &pVM->aCpus[0]; 1710 1710 … … 1832 1832 { 1833 1833 Log(("VMMR3ResumeHyper: eip=%RRv esp=%RRv\n", CPUMGetHyperEIP(pVCpu), CPUMGetHyperESP(pVCpu))); 1834 AssertReturn(pVM->cC PUs == 1, VERR_RAW_MODE_INVALID_SMP);1834 AssertReturn(pVM->cCpus == 1, VERR_RAW_MODE_INVALID_SMP); 1835 1835 1836 1836 /* … … 2109 2109 * Per CPU flags. 2110 2110 */ 2111 for (VMCPUID i = 0; i < pVM->cC PUs; i++)2111 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2112 2112 { 2113 2113 const uint32_t fLocalForcedActions = pVM->aCpus[i].fLocalForcedActions; -
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r22070 r22890 1073 1073 1074 1074 if ( iLeaf == 1 1075 && pVM->cC PUs > 1)1075 && pVM->cCpus > 1) 1076 1076 { 1077 1077 /* Bits 31-24: Initial APIC ID */ … … 1311 1311 break; 1312 1312 } 1313 for ( unsigned i=0;i<pVM->cCPUs;i++)1313 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1314 1314 { 1315 1315 PVMCPU pVCpu = &pVM->aCpus[i]; 1316 1317 1316 pVCpu->cpum.s.fChanged |= CPUM_CHANGED_CPUID; 1318 1317 } … … 1431 1430 break; 1432 1431 } 1433 for ( unsigned i=0;i<pVM->cCPUs;i++)1432 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1434 1433 { 1435 1434 PVMCPU pVCpu = &pVM->aCpus[i]; 1436 1437 1435 pVCpu->cpum.s.fChanged |= CPUM_CHANGED_CPUID; 1438 1436 } -
trunk/src/VBox/VMM/VMMAll/HWACCMAll.cpp
r20981 r22890 116 116 VMCPUID idCurCpu = VMMGetCpuId(pVM); 117 117 118 for ( unsigned idCpu = 0; idCpu < pVM->cCPUs; idCpu++)118 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 119 119 { 120 120 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 154 154 VMMDECL(int) HWACCMFlushTLBOnAllVCpus(PVM pVM) 155 155 { 156 if (pVM->cC PUs == 1)156 if (pVM->cCpus == 1) 157 157 return HWACCMFlushTLB(&pVM->aCpus[0]); 158 158 159 159 VMCPUID idThisCpu = VMMGetCpuId(pVM); 160 160 161 for ( unsigned idCpu = 0; idCpu < pVM->cCPUs; idCpu++)161 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 162 162 { 163 163 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 231 231 VMCPUID idThisCpu = VMMGetCpuId(pVM); 232 232 233 for ( unsigned idCpu = 0; idCpu < pVM->cCPUs; idCpu++)233 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 234 234 { 235 235 PVMCPU pVCpu = &pVM->aCpus[idCpu]; -
trunk/src/VBox/VMM/VMMAll/IOMAll.cpp
r22493 r22890 50 50 int iomLock(PVM pVM) 51 51 { 52 Assert(pVM->cC PUs == 1 || !PGMIsLockOwner(pVM));52 Assert(pVM->cCpus == 1 || !PGMIsLockOwner(pVM)); 53 53 int rc = PDMCritSectEnter(&pVM->iom.s.EmtLock, VERR_SEM_BUSY); 54 54 return rc; -
trunk/src/VBox/VMM/VMMAll/PDMAllCritSect.cpp
r22039 r22890 493 493 PVM pVM = pCritSect->s.CTX_SUFF(pVM); 494 494 AssertPtr(pVM); 495 Assert(idCpu < pVM->cC PUs);495 Assert(idCpu < pVM->cCpus); 496 496 return pCritSect->s.Core.NativeThreadOwner == pVM->aCpus[idCpu].hNativeThread 497 497 && (pCritSect->s.Core.fFlags & PDMCRITSECT_FLAGS_PENDING_UNLOCK) == 0; -
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r22545 r22890 460 460 # ifdef IN_RING0 461 461 /* Note: hack alert for difficult to reproduce problem. */ 462 if ( pVM->cC PUs > 1462 if ( pVM->cCpus > 1 463 463 && rc == VERR_PAGE_TABLE_NOT_PRESENT) 464 464 { … … 2518 2518 2519 2519 /* Only applies to raw mode -> 1 VPCU */ 2520 Assert(pVM->cC PUs == 1);2520 Assert(pVM->cCpus == 1); 2521 2521 PVMCPU pVCpu = &pVM->aCpus[0]; 2522 2522 -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r22600 r22890 856 856 uint64_t fPageShw; 857 857 rc = PGMShwGetPage(pVCpu, pvFault, &fPageShw, NULL); 858 AssertMsg((RT_SUCCESS(rc) && (fPageShw & X86_PTE_RW)) || pVM->cC PUs > 1 /* new monitor can be installed/page table flushed between the trap exit and PGMTrap0eHandler */, ("rc=%Rrc fPageShw=%RX64\n", rc, fPageShw));858 AssertMsg((RT_SUCCESS(rc) && (fPageShw & X86_PTE_RW)) || pVM->cCpus > 1 /* new monitor can be installed/page table flushed between the trap exit and PGMTrap0eHandler */, ("rc=%Rrc fPageShw=%RX64\n", rc, fPageShw)); 859 859 # endif /* VBOX_STRICT */ 860 860 STAM_PROFILE_STOP(&pVCpu->pgm.s.StatRZTrap0eTimeOutOfSync, c); … … 1729 1729 if (!PdeDst.n.u1Present) 1730 1730 { 1731 AssertMsg(pVM->cC PUs > 1, ("%Unexpected missing PDE p=%llx\n", pPdeDst, (uint64_t)PdeDst.u));1731 AssertMsg(pVM->cCpus > 1, ("%Unexpected missing PDE p=%llx\n", pPdeDst, (uint64_t)PdeDst.u)); 1732 1732 Log(("CPU%d: SyncPage: Pde at %RGv changed behind our back!\n", GCPtrPage)); 1733 1733 return VINF_SUCCESS; /* force the instruction to be executed again. */ … … 2255 2255 else 2256 2256 /* Check for stale TLB entry; only applies to the SMP guest case. */ 2257 if ( pVM->cC PUs > 12257 if ( pVM->cCpus > 1 2258 2258 && pPdeDst->n.u1Write 2259 2259 && pPdeDst->n.u1Accessed) … … 2395 2395 else 2396 2396 /* Check for stale TLB entry; only applies to the SMP guest case. */ 2397 if ( pVM->cC PUs > 12397 if ( pVM->cCpus > 1 2398 2398 && pPteDst->n.u1Write == 1 2399 2399 && pPteDst->n.u1Accessed == 1) … … 4471 4471 4472 4472 /* Clean up the old CR3 root. */ 4473 if ( pOldShwPageCR3 4473 if ( pOldShwPageCR3 4474 4474 && pOldShwPageCR3 != pNewShwPageCR3 /* @todo can happen due to incorrect syncing between REM & PGM; find the real cause */) 4475 4475 { -
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r20374 r22890 484 484 STAM_PROFILE_START(&pVM->pgm.s.CTX_MID_Z(Stat,SyncCR3HandlerVirtualUpdate), a); 485 485 486 for ( unsigned i=0;i<pVM->cCPUs;i++)486 for (VMCPUID i = 0; i < pVM->cCpus; i++) 487 487 { 488 488 PGMHVUSTATE State; … … 509 509 RTAvlroGCPtrDoWithAll(&pVM->pgm.s.CTX_SUFF(pTrees)->VirtHandlers, true, pgmHandlerVirtualResetOne, pVM); 510 510 511 for ( unsigned i=0;i<pVM->cCPUs;i++)511 for (VMCPUID i = 0; i < pVM->cCpus; i++) 512 512 { 513 513 PVMCPU pVCpu = &pVM->aCpus[i]; -
trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp
r22756 r22890 1542 1542 for (unsigned iPage = 0; iPage < pVirt->cPages; iPage++, GCPtr += PAGE_SIZE) 1543 1543 { 1544 for ( unsigned i=0;i<pVM->cCPUs;i++)1544 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1545 1545 { 1546 1546 PVMCPU pVCpu = &pVM->aCpus[i]; -
trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp
r21964 r22890 222 222 223 223 if ( !pgmMapAreMappingsEnabled(&pVM->pgm.s) 224 || pVM->cC PUs > 1)224 || pVM->cCpus > 1) 225 225 return; 226 226 … … 390 390 391 391 if ( !pgmMapAreMappingsEnabled(&pVM->pgm.s) 392 || pVM->cC PUs > 1)392 || pVM->cCpus > 1) 393 393 return; 394 394 … … 602 602 return; 603 603 604 Assert(pVM->cC PUs == 1);604 Assert(pVM->cCpus == 1); 605 605 606 606 /* This only applies to raw mode where we only support 1 VCPU. */ … … 636 636 */ 637 637 if ( !pgmMapAreMappingsEnabled(&pVM->pgm.s) 638 || pVM->cC PUs > 1)638 || pVM->cCpus > 1) 639 639 return VINF_SUCCESS; 640 640 … … 672 672 */ 673 673 if ( !pgmMapAreMappingsEnabled(&pVM->pgm.s) 674 || pVM->cC PUs > 1)674 || pVM->cCpus > 1) 675 675 return VINF_SUCCESS; 676 676 … … 705 705 return false; 706 706 707 Assert(pVM->cC PUs == 1);707 Assert(pVM->cCpus == 1); 708 708 709 709 /* This only applies to raw mode where we only support 1 VCPU. */ … … 801 801 return VINF_SUCCESS; 802 802 803 Assert(pVM->cC PUs == 1);803 Assert(pVM->cCpus == 1); 804 804 805 805 /* This only applies to raw mode where we only support 1 VCPU. */ -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r22788 r22890 885 885 return false; 886 886 } 887 if ( ( (pDis->param1.flags & USE_REG_GEN32) 887 if ( ( (pDis->param1.flags & USE_REG_GEN32) 888 888 || (pDis->param1.flags & USE_REG_GEN64)) 889 889 && (pDis->param1.base.reg_gen == USE_REG_ESP)) … … 1226 1226 if (fReused) 1227 1227 goto flushPage; 1228 1228 1229 1229 /* A mov instruction to change the first page table entry will be remembered so we can detect 1230 1230 * full page table changes early on. This will reduce the amount of unnecessary traps we'll take. … … 1315 1315 && !fForcedFlush 1316 1316 && pPage->enmKind == PGMPOOLKIND_PAE_PT_FOR_PAE_PT 1317 && ( fNotReusedNotForking 1317 && ( fNotReusedNotForking 1318 1318 || ( !pgmPoolMonitorIsReused(pVM, pVCpu, pRegFrame, pDis, pvFault) 1319 1319 && !pgmPoolMonitorIsForking(pPool, pDis, GCPhysFault & PAGE_OFFSET_MASK)) … … 1362 1362 { 1363 1363 rc = PGMShwModifyPage(pVCpu, pvFault, 1, X86_PTE_RW, ~(uint64_t)X86_PTE_RW); 1364 AssertMsg(rc == VINF_SUCCESS 1364 AssertMsg(rc == VINF_SUCCESS 1365 1365 /* In the SMP case the page table might be removed while we wait for the PGM lock in the trap handler. */ 1366 || rc == VERR_PAGE_TABLE_NOT_PRESENT 1367 || rc == VERR_PAGE_NOT_PRESENT, 1366 || rc == VERR_PAGE_TABLE_NOT_PRESENT 1367 || rc == VERR_PAGE_NOT_PRESENT, 1368 1368 ("PGMShwModifyPage -> GCPtr=%RGv rc=%d\n", pvFault, rc)); 1369 1369 1370 1370 pgmPoolAddDirtyPage(pVM, pPool, pPage); 1371 1371 pPage->pvDirtyFault = pvFault; 1372 1372 1373 1373 STAM_PROFILE_STOP(&pVM->pgm.s.CTX_SUFF(pPool)->CTX_SUFF_Z(StatMonitor), a); 1374 1374 pgmUnlock(pVM); … … 1388 1388 * interpret then. This may be a bit risky, in which case 1389 1389 * the reuse detection must be fixed. 1390 */ 1390 */ 1391 1391 rc = pgmPoolAccessHandlerFlush(pVM, pVCpu, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault); 1392 1392 if (rc == VINF_EM_RAW_EMULATE_INSTR && fReused) … … 1423 1423 RTHCPHYS HCPhys = -1; 1424 1424 int rc = PGMPhysGCPhys2HCPhys(pPool->CTX_SUFF(pVM), pGstPT->a[i].u & X86_PTE_PAE_PG_MASK, &HCPhys); 1425 if ( rc != VINF_SUCCESS 1425 if ( rc != VINF_SUCCESS 1426 1426 || (pShwPT->a[i].u & X86_PTE_PAE_PG_MASK) != HCPhys) 1427 1427 { … … 1555 1555 RTHCPHYS HCPhys; 1556 1556 rc = PGMShwGetPage(VMMGetCpu(pVM), pPage->pvDirtyFault, &fFlags, &HCPhys); 1557 AssertMsg( ( rc == VINF_SUCCESS 1557 AssertMsg( ( rc == VINF_SUCCESS 1558 1558 && (!(fFlags & X86_PTE_RW) || HCPhys != pPage->Core.Key)) 1559 1559 /* In the SMP case the page table might be removed while we wait for the PGM lock in the trap handler. */ 1560 || rc == VERR_PAGE_TABLE_NOT_PRESENT 1561 || rc == VERR_PAGE_NOT_PRESENT, 1560 || rc == VERR_PAGE_TABLE_NOT_PRESENT 1561 || rc == VERR_PAGE_NOT_PRESENT, 1562 1562 ("PGMShwGetPage -> GCPtr=%RGv rc=%d flags=%RX64\n", pPage->pvDirtyFault, rc, fFlags)); 1563 1563 #endif … … 1828 1828 1829 1829 /* 1830 * Found a usable page, flush it and return. 1830 * Found a usable page, flush it and return. 1831 1831 */ 1832 1832 return pgmPoolFlushPage(pPool, pPage); … … 2635 2635 2636 2636 /* Clear the PGM_SYNC_CLEAR_PGM_POOL flag on all VCPUs to prevent redundant flushes. */ 2637 for ( unsigned idCpu = 0; idCpu < pVM->cCPUs; idCpu++)2637 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 2638 2638 { 2639 2639 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 2640 2641 2640 pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_CLEAR_PGM_POOL; 2642 2641 } … … 4911 4910 * including the root page. 4912 4911 */ 4913 for ( unsigned i=0;i<pVM->cCPUs;i++)4912 for (VMCPUID i = 0; i < pVM->cCpus; i++) 4914 4913 { 4915 4914 PVMCPU pVCpu = &pVM->aCpus[i]; … … 5067 5066 } 5068 5067 5069 for (unsigned i=0;i<pVM->cCPUs;i++) 5070 { 5071 PVMCPU pVCpu = &pVM->aCpus[i]; 5068 for (VMCPUID i = 0; i < pVM->cCpus; i++) 5069 { 5072 5070 /* 5073 5071 * Re-enter the shadowing mode and assert Sync CR3 FF. 5074 5072 */ 5073 PVMCPU pVCpu = &pVM->aCpus[i]; 5075 5074 pgmR3ReEnterShadowModeAfterPoolFlush(pVM, pVCpu); 5076 5075 VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); -
trunk/src/VBox/VMM/VMMAll/REMAll.cpp
r22707 r22890 211 211 VMMDECL(void) REMNotifyHandlerPhysicalFlushIfAlmostFull(PVM pVM, PVMCPU pVCpu) 212 212 { 213 Assert(pVM->cC PUs == 1);213 Assert(pVM->cCpus == 1); 214 214 215 215 /* -
trunk/src/VBox/VMM/VMMAll/SELMAll.cpp
r19334 r22890 56 56 VMMDECL(RTGCPTR) SELMToFlatBySel(PVM pVM, RTSEL Sel, RTGCPTR Addr) 57 57 { 58 Assert(pVM->cC PUs == 1 && !CPUMIsGuestInLongMode(VMMGetCpu(pVM))); /* DON'T USE! */58 Assert(pVM->cCpus == 1 && !CPUMIsGuestInLongMode(VMMGetCpu(pVM))); /* DON'T USE! */ 59 59 60 60 /** @todo check the limit. */ … … 835 835 VMMDECL(int) SELMValidateAndConvertCSAddrGCTrap(PVM pVM, X86EFLAGS eflags, RTSEL SelCPL, RTSEL SelCS, RTGCPTR Addr, PRTGCPTR ppvFlat, uint32_t *pcBits) 836 836 { 837 Assert(pVM->cC PUs == 1);837 Assert(pVM->cCpus == 1); 838 838 PVMCPU pVCpu = &pVM->aCpus[0]; 839 839 … … 996 996 VMMDECL(int) SELMGetRing1Stack(PVM pVM, uint32_t *pSS, PRTGCPTR32 pEsp) 997 997 { 998 Assert(pVM->cC PUs == 1);998 Assert(pVM->cCpus == 1); 999 999 PVMCPU pVCpu = &pVM->aCpus[0]; 1000 1000 -
trunk/src/VBox/VMM/VMMAll/TMAllVirtual.cpp
r22808 r22890 828 828 { 829 829 uint32_t c = ASMAtomicDecU32(&pVM->tm.s.cVirtualTicking); 830 AssertMsgReturn(c < pVM->cC PUs, ("%u vs %u\n", c, pVM->cCPUs), VERR_INTERNAL_ERROR);830 AssertMsgReturn(c < pVM->cCpus, ("%u vs %u\n", c, pVM->cCpus), VERR_INTERNAL_ERROR); 831 831 if (c == 0) 832 832 { … … 848 848 { 849 849 uint32_t c = ASMAtomicIncU32(&pVM->tm.s.cVirtualTicking); 850 AssertMsgReturn(c <= pVM->cC PUs, ("%u vs %u\n", c, pVM->cCPUs), VERR_INTERNAL_ERROR);850 AssertMsgReturn(c <= pVM->cCpus, ("%u vs %u\n", c, pVM->cCpus), VERR_INTERNAL_ERROR); 851 851 if (c == 1) 852 852 { -
trunk/src/VBox/VMM/VMMAll/TRPMAll.cpp
r20840 r22890 366 366 PVM pVM = pVCpu->CTX_SUFF(pVM); 367 367 X86EFLAGS eflags; 368 Assert(pVM->cC PUs == 1);368 Assert(pVM->cCpus == 1); 369 369 370 370 STAM_PROFILE_ADV_START(&pVM->trpm.s.CTX_SUFF_Z(StatForwardProf), a); -
trunk/src/VBox/VMM/VMMAll/VMMAll.cpp
r22823 r22890 65 65 66 66 #elif defined(IN_RING0) 67 if (pVM->cC PUs == 1)67 if (pVM->cCpus == 1) 68 68 return 0; 69 69 return HWACCMR0GetVMCPUId(pVM); … … 88 88 if (idCpu == NIL_VMCPUID) 89 89 return NULL; 90 Assert(idCpu < pVM->cC PUs);90 Assert(idCpu < pVM->cCpus); 91 91 return &pVM->aCpus[VMR3GetVMCPUId(pVM)]; 92 92 93 93 #elif defined(IN_RING0) 94 if (pVM->cC PUs == 1)94 if (pVM->cCpus == 1) 95 95 return &pVM->aCpus[0]; 96 96 return HWACCMR0GetVMCPU(pVM); … … 110 110 VMMDECL(PVMCPU) VMMGetCpu0(PVM pVM) 111 111 { 112 Assert(pVM->cC PUs == 1);112 Assert(pVM->cCpus == 1); 113 113 return &pVM->aCpus[0]; 114 114 } … … 125 125 VMMDECL(PVMCPU) VMMGetCpuById(PVM pVM, RTCPUID idCpu) 126 126 { 127 AssertReturn(idCpu < pVM->cC PUs, NULL);127 AssertReturn(idCpu < pVM->cCpus, NULL); 128 128 return &pVM->aCpus[idCpu]; 129 129 } -
trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp
r20902 r22890 418 418 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 419 419 420 AssertReturnVoid(idCpu < pVM->cC PUs);420 AssertReturnVoid(idCpu < pVM->cCpus); 421 421 422 422 LogFlow(("pdmRCApicHlp_SetInterruptFF: caller=%p/%d: VM_FF_INTERRUPT %d -> 1\n", … … 447 447 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 448 448 449 AssertReturnVoid(idCpu < pVM->cC PUs);449 AssertReturnVoid(idCpu < pVM->cCpus); 450 450 451 451 LogFlow(("pdmRCApicHlp_ClearInterruptFF: caller=%p/%d: VM_FF_INTERRUPT %d -> 0\n", -
trunk/src/VBox/VMM/VMMR0/CPUMR0.cpp
r21942 r22890 144 144 if (u32DR7 & X86_DR7_ENABLED_MASK) 145 145 { 146 for ( unsigned i=0;i<pVM->cCPUs;i++)146 for (VMCPUID i = 0; i < pVM->cCpus; i++) 147 147 pVM->aCpus[i].cpum.s.fUseFlags |= CPUM_USE_DEBUG_REGS_HOST; 148 148 Log(("CPUMR0Init: host uses debug registers (dr7=%x)\n", u32DR7)); -
trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp
r21915 r22890 610 610 pVM->hSelf = iHandle; 611 611 pVM->cbSelf = cbVM; 612 pVM->cC PUs = cCpus;612 pVM->cCpus = cCpus; 613 613 pVM->offVMCPU = RT_UOFFSETOF(VM, aCpus); 614 614 … … 1100 1100 return rc; 1101 1101 1102 AssertReturn(idCpu < pVM->cC PUs, VERR_INVALID_CPU_ID);1102 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_CPU_ID); 1103 1103 AssertReturn(pGVM->aCpus[idCpu].hEMT == NIL_RTNATIVETHREAD, VERR_ACCESS_DENIED); 1104 1104 -
trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp
r22615 r22890 847 847 } 848 848 849 for ( unsigned i=0;i<pVM->cCPUs;i++)849 for (VMCPUID i = 0; i < pVM->cCpus; i++) 850 850 { 851 851 PVMCPU pVCpu = &pVM->aCpus[i]; … … 932 932 ASMAtomicWriteBool(&pCpu->fInUse, true); 933 933 934 for ( unsigned i=0;i<pVM->cCPUs;i++)934 for (VMCPUID i = 0; i < pVM->cCpus; i++) 935 935 { 936 936 /* On first entry we'll sync everything. */ … … 1196 1196 1197 1197 /** @todo optimize for large number of VCPUs when that becomes more common. */ 1198 for ( unsigned idCpu=0;idCpu<pVM->cCPUs;idCpu++)1198 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 1199 1199 { 1200 1200 PVMCPU pVCpu = &pVM->aCpus[idCpu]; -
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r22493 r22890 175 175 176 176 /* Allocate VMCBs for all guest CPUs. */ 177 for ( unsigned i=0;i<pVM->cCPUs;i++)177 for (VMCPUID i = 0; i < pVM->cCpus; i++) 178 178 { 179 179 PVMCPU pVCpu = &pVM->aCpus[i]; … … 223 223 VMMR0DECL(int) SVMR0TermVM(PVM pVM) 224 224 { 225 for ( unsigned i=0;i<pVM->cCPUs;i++)225 for (VMCPUID i = 0; i < pVM->cCpus; i++) 226 226 { 227 227 PVMCPU pVCpu = &pVM->aCpus[i]; … … 274 274 Assert(pVM->hwaccm.s.svm.fSupported); 275 275 276 for ( unsigned i=0;i<pVM->cCPUs;i++)276 for (VMCPUID i = 0; i < pVM->cCpus; i++) 277 277 { 278 278 PVMCPU pVCpu = &pVM->aCpus[i]; … … 2778 2778 2779 2779 /* @todo This code is not guest SMP safe (hyper stack and switchers) */ 2780 AssertReturn(pVM->cC PUs == 1, VERR_TOO_MANY_CPUS);2780 AssertReturn(pVM->cCpus == 1, VERR_TOO_MANY_CPUS); 2781 2781 Assert(pfnHandler); 2782 2782 -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r22493 r22890 216 216 217 217 /* Allocate VMCBs for all guest CPUs. */ 218 for ( unsigned i=0;i<pVM->cCPUs;i++)218 for (VMCPUID i = 0; i < pVM->cCpus; i++) 219 219 { 220 220 PVMCPU pVCpu = &pVM->aCpus[i]; … … 299 299 VMMR0DECL(int) VMXR0TermVM(PVM pVM) 300 300 { 301 for ( unsigned i=0;i<pVM->cCPUs;i++)301 for (VMCPUID i = 0; i < pVM->cCpus; i++) 302 302 { 303 303 PVMCPU pVCpu = &pVM->aCpus[i]; … … 374 374 AssertReturn(pVM, VERR_INVALID_PARAMETER); 375 375 376 for ( unsigned i=0;i<pVM->cCPUs;i++)376 for (VMCPUID i = 0; i < pVM->cCpus; i++) 377 377 { 378 378 PVMCPU pVCpu = &pVM->aCpus[i]; … … 4447 4447 4448 4448 /* @todo This code is not guest SMP safe (hyper stack and switchers) */ 4449 AssertReturn(pVM->cC PUs == 1, VERR_TOO_MANY_CPUS);4449 AssertReturn(pVM->cCpus == 1, VERR_TOO_MANY_CPUS); 4450 4450 AssertReturn(pVM->hwaccm.s.pfnHost32ToGuest64R0, VERR_INTERNAL_ERROR); 4451 4451 Assert(pVCpu->hwaccm.s.vmx.VMCSCache.Write.cValidEntries <= RT_ELEMENTS(pVCpu->hwaccm.s.vmx.VMCSCache.Write.aField)); -
trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp
r21016 r22890 433 433 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 434 434 435 AssertReturnVoid(idCpu < pVM->cC PUs);435 AssertReturnVoid(idCpu < pVM->cCpus); 436 436 437 437 LogFlow(("pdmR0ApicHlp_SetInterruptFF: CPU%d=caller=%p/%d: VM_FF_INTERRUPT %d -> 1 (CPU%d)\n", … … 481 481 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 482 482 483 AssertReturnVoid(idCpu < pVM->cC PUs);483 AssertReturnVoid(idCpu < pVM->cCpus); 484 484 485 485 LogFlow(("pdmR0ApicHlp_ClearInterruptFF: caller=%p/%d: VM_FF_INTERRUPT %d -> 0\n", -
trunk/src/VBox/VMM/VMMR0/PGMR0DynMap.cpp
r22869 r22890 355 355 * Initialize the auto sets. 356 356 */ 357 VMCPUID idCpu = pVM->cC PUs;357 VMCPUID idCpu = pVM->cCpus; 358 358 AssertReturn(idCpu > 0 && idCpu <= VMM_MAX_CPU_COUNT, VERR_INTERNAL_ERROR); 359 359 while (idCpu-- > 0) … … 443 443 * Clean up and check the auto sets. 444 444 */ 445 VMCPUID idCpu = pVM->cC PUs;445 VMCPUID idCpu = pVM->cCpus; 446 446 while (idCpu-- > 0) 447 447 { -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r21653 r22890 512 512 VMMR0DECL(void) VMMR0EntryFast(PVM pVM, VMCPUID idCpu, VMMR0OPERATION enmOperation) 513 513 { 514 if (RT_UNLIKELY(idCpu >= pVM->cC PUs))514 if (RT_UNLIKELY(idCpu >= pVM->cCpus)) 515 515 return; 516 516 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 531 531 bool fVTxDisabled; 532 532 533 if (RT_UNLIKELY(pVM->cC PUs > 1))533 if (RT_UNLIKELY(pVM->cCpus > 1)) 534 534 { 535 535 pVCpu->vmm.s.iLastGZRc = VERR_RAW_MODE_INVALID_SMP; … … 728 728 } 729 729 730 if (RT_UNLIKELY(idCpu >= pVM->cC PUs && idCpu != NIL_VMCPUID))731 { 732 SUPR0Printf("vmmR0EntryExWorker: Invalid idCpu (%u vs cC PUs=%u)\n", idCpu, pVM->cCPUs);730 if (RT_UNLIKELY(idCpu >= pVM->cCpus && idCpu != NIL_VMCPUID)) 731 { 732 SUPR0Printf("vmmR0EntryExWorker: Invalid idCpu (%u vs cCpus=%u)\n", idCpu, pVM->cCpus); 733 733 return VERR_INVALID_PARAMETER; 734 734 } … … 1090 1090 if ( VALID_PTR(pVM) 1091 1091 && pVM->pVMR0 1092 && idCpu < pVM->cC PUs)1092 && idCpu < pVM->cCpus) 1093 1093 { 1094 1094 switch (enmOperation) -
trunk/src/VBox/VMM/testcase/tstMMHyperHeap.cpp
r20864 r22890 73 73 pVM->pUVM = pUVM; 74 74 75 pVM->cC PUs = NUM_CPUS;76 pVM->cbSelf = RT_UOFFSETOF(VM, aCpus[pVM->cC PUs]);75 pVM->cCpus = NUM_CPUS; 76 pVM->cbSelf = RT_UOFFSETOF(VM, aCpus[pVM->cCpus]); 77 77 78 78 rc = STAMR3InitUVM(pUVM); -
trunk/src/VBox/VMM/testcase/tstSSM.cpp
r22793 r22890 654 654 pVM->pVMR3 = pVM; 655 655 pVM->pUVM = pUVM; 656 pVM->cC PUs = 1;656 pVM->cCpus = 1; 657 657 pVM->aCpus[0].pVMR3 = pVM; 658 658 pVM->aCpus[0].hNativeThread = RTThreadNativeSelf(); -
trunk/src/recompiler/VBoxRecompiler.c
r22793 r22890 668 668 uint32_t fRawRing0 = false; 669 669 uint32_t u32Sep; 670 u nsignedi;670 uint32_t i; 671 671 int rc; 672 672 PREM pRem; … … 777 777 * Sync the whole CPU state when executing code in the recompiler. 778 778 */ 779 for (i =0;i<pVM->cCPUs;i++)779 for (i = 0; i < pVM->cCpus; i++) 780 780 { 781 781 PVMCPU pVCpu = &pVM->aCpus[i]; 782 783 782 CPUMSetChangedFlags(pVCpu, CPUM_CHANGED_ALL); 784 783 } … … 2827 2826 2828 2827 #ifdef VBOX_STRICT 2829 if (pVM->cC PUs == 1)2828 if (pVM->cCpus == 1) 2830 2829 { 2831 2830 /* Check that all records are now on the free list. */
Note:
See TracChangeset
for help on using the changeset viewer.