Changeset 13742 in vbox
- Timestamp:
- Nov 3, 2008 12:19:40 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 38714
- Location:
- trunk
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/gvmm.h
r12653 r13742 125 125 GVMMR0DECL(int) GVMMR0QueryConfig(PSUPDRVSESSION pSession, const char *pszName, uint64_t *pu64Value); 126 126 127 GVMMR0DECL(int) GVMMR0CreateVM(PSUPDRVSESSION pSession, PVM *ppVM);127 GVMMR0DECL(int) GVMMR0CreateVM(PSUPDRVSESSION pSession, uint32_t cCPUs, PVM *ppVM); 128 128 GVMMR0DECL(int) GVMMR0InitVM(PVM pVM); 129 129 GVMMR0DECL(int) GVMMR0DestroyVM(PVM pVM); … … 149 149 /** The support driver session. (IN) */ 150 150 PSUPDRVSESSION pSession; 151 /** Number of virtual CPUs for the new VM. (IN) */ 152 uint32_t cCPUs; 151 153 /** Pointer to the ring-3 mapping of the shared VM structure on return. (OUT) */ 152 154 PVMR3 pVMR3; -
trunk/include/VBox/vm.h
r13652 r13742 43 43 */ 44 44 45 46 #define VMCPU_MAX_CPU_COUNT 255 45 47 46 48 /** … … 80 82 /** Per CPU forced action. 81 83 * See the VMCPU_FF_* \#defines. Updated atomically. */ 82 uint32_t volatile fForcedActions;84 uint32_t volatile fForcedActions; 83 85 /** The CPU state. */ 84 VMCPUSTATE volatile enmState;86 VMCPUSTATE volatile enmState; 85 87 86 88 /** Ring-3 Host Context VM Pointer. */ 87 PVMR3 pVMR3;89 PVMR3 pVMR3; 88 90 /** Ring-0 Host Context VM Pointer. */ 89 PVMR0 pVMR0;91 PVMR0 pVMR0; 90 92 /** Raw-mode Context VM Pointer. */ 91 PVMRC pVMRC;93 PVMRC pVMRC; 92 94 /** The CPU ID. 93 95 * This is the index into the VM::aCpus array. */ 94 VMCPUID idCpu;96 VMCPUID idCpu; 95 97 /** The ring-3 thread handle of the emulation thread for this CPU. 96 98 * @todo Use the VM_IS_EMT() macro to check if executing in EMT? */ 97 RTTHREAD hThreadR3;99 RTTHREAD hThreadR3; 98 100 /** The native ring-3 handle. */ 99 RTNATIVETHREAD hNativeThreadR3;101 RTNATIVETHREAD hNativeThreadR3; 100 102 /** The native ring-0 handle. */ 101 RTNATIVETHREAD hNativeThreadR0;102 103 /** Align the next bit on a 64-byte bound rary. */104 uint32_t au32Alignment[HC_ARCH_BITS == 32 ? 7 : 2];103 RTNATIVETHREAD hNativeThreadR0; 104 105 /** Align the next bit on a 64-byte boundary. */ 106 uint32_t au32Alignment[HC_ARCH_BITS == 32 ? 7 : 2]; 105 107 106 108 /** CPUM part. */ 107 109 union 108 110 { 109 #if 0 /*def ___CPUMInternal_h */110 struct VMCPUCPUMs;111 #endif 112 char padding[ 64];111 #ifdef ___CPUMInternal_h 112 struct CPUMCPU s; 113 #endif 114 char padding[4096]; /* multiple of 32 */ 113 115 } cpum; 116 /** VMM part. */ 117 union 118 { 119 #ifdef ___VMMInternal_h 120 struct VMMCPU s; 121 #endif 122 char padding[32]; /* multiple of 32 */ 123 } vmm; 124 125 /** PGM part. */ 126 union 127 { 128 #ifdef ___PGMInternal_h 129 struct PGMCPU s; 130 #endif 131 char padding[32]; /* multiple of 32 */ 132 } pgm; 133 134 /** HWACCM part. */ 135 union 136 { 137 #ifdef ___HWACCMInternal_h 138 struct HWACCMCPU s; 139 #endif 140 char padding[32]; /* multiple of 32 */ 141 } hwaccm; 142 143 /** EM part. */ 144 union 145 { 146 #ifdef ___EMInternal_h 147 struct EMCPU s; 148 #endif 149 char padding[32]; /* multiple of 32 */ 150 } em; 151 152 /** TM part. */ 153 union 154 { 155 #ifdef ___TMInternal_h 156 struct TMCPU s; 157 #endif 158 char padding[32]; /* multiple of 32 */ 159 } tm; 114 160 } VMCPU; 115 161 162 /** Pointer to a VMCPU. */ 163 #ifndef ___VBox_types_h 164 typedef struct VMCPU *PVMCPU; 165 #endif 116 166 117 167 /** The name of the Guest Context VMM Core module. */ … … 416 466 /** Number of virtual CPUs. */ 417 467 uint32_t cCPUs; 468 469 /** Offset to the VMCPU array starting from beginning of this structure. */ 470 uint32_t offVMCPU; 471 418 472 /** Reserved; alignment. */ 419 uint32_t u32Reserved[ 7];473 uint32_t u32Reserved[6]; 420 474 421 475 /** @name Public VMM Switcher APIs … … 715 769 716 770 /** Padding for aligning the cpu array on a 64 byte boundrary. */ 717 uint32_t u32Reserved2[8]; 718 719 /** 720 * Per virtual CPU state. 721 */ 722 VMCPU aCpus[1]; 771 uint32_t u32Reserved2[8]; 772 773 /** VMCPU array for the configured number of virtual CPUs. */ 774 VMCPU aCpus[1]; 723 775 } VM; 724 776 -
trunk/include/VBox/vm.mac
r12794 r13742 58 58 .hSelf resd 1 59 59 .cCPUs resd 1 60 .u32Reserved resd 7 60 .offVMCPU resd 1 61 .u32Reserved resd 6 61 62 62 63 .pfnVMMGCGuestToHostAsmGuestCtx RTGCPTR32_RES 1 -
trunk/include/VBox/vmapi.h
r12989 r13742 342 342 343 343 344 VMMR3DECL(int) VMR3Create( PFNVMATERROR pfnVMAtError, void *pvUserVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM, PVM *ppVM);344 VMMR3DECL(int) VMR3Create(uint32_t cCPUs, PFNVMATERROR pfnVMAtError, void *pvUserVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM, PVM *ppVM); 345 345 VMMR3DECL(int) VMR3PowerOn(PVM pVM); 346 346 VMMR3DECL(int) VMR3Suspend(PVM pVM); -
trunk/src/VBox/Frontends/VBoxBFE/VBoxBFE.cpp
r12320 r13742 1167 1167 * Create empty VM. 1168 1168 */ 1169 rc = VMR3Create( setVMErrorCallback, NULL, vboxbfeConfigConstructor, NULL, &pVM);1169 rc = VMR3Create(1, setVMErrorCallback, NULL, vboxbfeConfigConstructor, NULL, &pVM); 1170 1170 if (VBOX_FAILURE(rc)) 1171 1171 { -
trunk/src/VBox/Main/ConsoleImpl.cpp
r13690 r13742 6610 6610 #endif /* VBOX_WITH_VRDP */ 6611 6611 6612 ULONG cCpus = 1; 6613 #ifdef VBOX_WITH_SMP_GUESTS 6614 pMachine->COMGETTER(CPUCount)(&cCpus); 6615 #endif 6616 6612 6617 /* 6613 6618 * Create the VM … … 6620 6625 alock.leave(); 6621 6626 6622 vrc = VMR3Create ( task->mSetVMErrorCallback, task.get(),6627 vrc = VMR3Create (cCpus, task->mSetVMErrorCallback, task.get(), 6623 6628 task->mConfigConstructor, static_cast <Console *> (console), 6624 6629 &pVM); -
trunk/src/VBox/VMM/CPUMInternal.h
r12989 r13742 268 268 CPUMCTX Guest; 269 269 270 271 270 /** Pointer to the current hypervisor core context - R3Ptr. */ 272 271 R3PTRTYPE(PCPUMCTXCORE) pHyperCoreR3; 273 /** Pointer to the current hypervisor core context - R 3Ptr. */272 /** Pointer to the current hypervisor core context - R0Ptr. */ 274 273 R0PTRTYPE(PCPUMCTXCORE) pHyperCoreR0; 275 274 /** Pointer to the current hypervisor core context - RCPtr. */ … … 345 344 typedef CPUM *PCPUM; 346 345 346 /** 347 * CPUM Data (part of VMCPU) 348 */ 349 typedef struct CPUMCPU 350 { 351 /** 352 * Guest context. 353 * Aligned on a 64-byte boundrary. 354 */ 355 CPUMCTX Guest; 356 } CPUMCPU; 357 /** Pointer to the CPUMCPU instance data residing in the shared VMCPU structure. */ 358 typedef CPUMCPU *PCPUMCPU; 359 347 360 __BEGIN_DECLS 348 361 -
trunk/src/VBox/VMM/EMInternal.h
r13565 r13742 371 371 372 372 373 /** 374 * EM VMCPU Instance data. 375 */ 376 typedef struct EMCPU 377 { 378 /** Offset to the VM structure. 379 * See EMCPU2VM(). */ 380 RTUINT offVMCPU; 381 } EMCPU; 382 /** Pointer to EM VM instance data. */ 383 typedef EMCPU *PEMCPU; 373 384 374 385 /** @} */ -
trunk/src/VBox/VMM/HWACCMInternal.h
r13542 r13742 506 506 typedef HWACCM *PHWACCM; 507 507 508 /** 509 * HWACCM VMCPU Instance data. 510 */ 511 typedef struct HWACCMCPU 512 { 513 /** Offset to the VM structure. 514 * See HWACCMCPU2VM(). */ 515 RTUINT offVMCPU; 516 } HWACCMCPU; 517 /** Pointer to HWACCM VM instance data. */ 518 typedef HWACCMCPU *PHWACCMCPU; 519 520 508 521 #ifdef IN_RING0 509 522 -
trunk/src/VBox/VMM/PGMInternal.h
r13236 r13742 2611 2611 2612 2612 2613 /** 2614 * PGMCPU Data (part of VMCPU) 2615 */ 2616 typedef struct PGMCPU 2617 { 2618 /** Offset to the VMCPU structure. */ 2619 RTINT offVMCPU; 2620 } PGMCPU, *PPGMCPU; 2621 2613 2622 /** @name PGM::fSyncFlags Flags 2614 2623 * @{ -
trunk/src/VBox/VMM/TMInternal.h
r13633 r13742 499 499 typedef TM *PTM; 500 500 501 /** 502 * TM VMCPU Instance data. 503 * Changes to this must checked against the padding of the tm union in VM! 504 */ 505 typedef struct TMCPU 506 { 507 /** Offset to the VMCPU structure. 508 * See TMCPU2VM(). */ 509 RTUINT offVMCPU; 510 } TMCPU; 511 /** Pointer to TM VMCPU instance data. */ 512 typedef TMCPU *PTMCPU; 501 513 502 514 const char *tmTimerState(TMTIMERSTATE enmState); -
trunk/src/VBox/VMM/VM.cpp
r13697 r13742 125 125 *******************************************************************************/ 126 126 static int vmR3CreateUVM(PUVM *ppUVM); 127 static int vmR3CreateU(PUVM pUVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM);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 vmR3InitRing0(PVM pVM); … … 180 180 * @returns 0 on success. 181 181 * @returns VBox error code on failure. 182 * @param cCPUs Number of virtual CPUs for the new VM. 182 183 * @param pfnVMAtError Pointer to callback function for setting VM errors. 183 184 * This is called in the EM. … … 188 189 * @param ppVM Where to store the 'handle' of the created VM. 189 190 */ 190 VMMR3DECL(int) VMR3Create( PFNVMATERROR pfnVMAtError, void *pvUserVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM, PVM *ppVM)191 { 192 LogFlow(("VMR3Create: pfnVMAtError=%p pvUserVM=%p pfnCFGMConstructor=%p pvUserCFGM=%p ppVM=%p\n", pfnVMAtError, pvUserVM, pfnCFGMConstructor, pvUserCFGM, ppVM));191 VMMR3DECL(int) VMR3Create(uint32_t cCPUs, PFNVMATERROR pfnVMAtError, void *pvUserVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM, PVM *ppVM) 192 { 193 LogFlow(("VMR3Create: cCPUs=%d pfnVMAtError=%p pvUserVM=%p pfnCFGMConstructor=%p pvUserCFGM=%p ppVM=%p\n", cCPUs, pfnVMAtError, pvUserVM, pfnCFGMConstructor, pvUserCFGM, ppVM)); 193 194 194 195 /* … … 229 230 PVMREQ pReq; 230 231 rc = VMR3ReqCallU(pUVM, &pReq, RT_INDEFINITE_WAIT, 0, (PFNRT)vmR3CreateU, 231 3, pUVM, pfnCFGMConstructor, pvUserCFGM);232 4, pUVM, cCPUs, pfnCFGMConstructor, pvUserCFGM); 232 233 if (RT_SUCCESS(rc)) 233 234 { … … 422 423 * @thread EMT 423 424 */ 424 static int vmR3CreateU(PUVM pUVM, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM)425 static int vmR3CreateU(PUVM pUVM, uint32_t cCPUs, PFNCFGMCONSTRUCTOR pfnCFGMConstructor, void *pvUserCFGM) 425 426 { 426 427 int rc = VINF_SUCCESS; … … 448 449 CreateVMReq.pVMR0 = NIL_RTR0PTR; 449 450 CreateVMReq.pVMR3 = NULL; 451 CreateVMReq.cCPUs = cCPUs; 450 452 rc = SUPCallVMMR0Ex(NIL_RTR0PTR, VMMR0_DO_GVMM_CREATE_VM, 0, &CreateVMReq.Hdr); 451 453 if (RT_SUCCESS(rc)) … … 483 485 } 484 486 485 /* 486 * Init the Ring-3 components and do a round of relocations with 0 delta. 487 */ 488 rc = vmR3InitRing3(pVM, pUVM); 489 if (VBOX_SUCCESS(rc)) 487 /* Calculate the offset to the VMCPU array. */ 488 pVM->offVMCPU = RT_OFFSETOF(VM, aCpus); 489 490 /* Make sure the CPU count in the config data matches. */ 491 rc = CFGMR3QueryU32Def(CFGMR3GetRoot(pVM), "NumCPUs", &pVM->cCPUs, 1); 492 AssertLogRelMsgRCReturn(rc, ("Configuration error: Querying \"NumCPUs\" as integer failed, rc=%Vrc\n", rc), rc); 493 Assert(pVM->cCPUs == cCPUs); 494 495 #ifdef VBOX_WITH_SMP_GUESTS 496 AssertLogRelMsgReturn(pVM->cCPUs > 0 && pVM->cCPUs <= VMCPU_MAX_CPU_COUNT, 497 ("Configuration error: \"NumCPUs\"=%RU32 is out of range [1..255]\n", pVM->cCPUs), VERR_INVALID_PARAMETER); 498 #else 499 AssertLogRelMsgReturn(pVM->cCPUs != 0, 500 ("Configuration error: \"NumCPUs\"=%RU32, expected 1\n", pVM->cCPUs), VERR_INVALID_PARAMETER); 501 #endif 502 if (pVM->cCPUs == cCPUs) 490 503 { 491 VMR3Relocate(pVM, 0);492 LogFlow(("Ring-3 init succeeded\n"));493 494 504 /* 495 * Init the Ring- 0 components.505 * Init the Ring-3 components and do a round of relocations with 0 delta. 496 506 */ 497 rc = vmR3InitRing 0(pVM);507 rc = vmR3InitRing3(pVM, pUVM); 498 508 if (VBOX_SUCCESS(rc)) 499 509 { 500 /* Relocate again, because some switcher fixups depends on R0 init results. */501 510 VMR3Relocate(pVM, 0); 511 LogFlow(("Ring-3 init succeeded\n")); 512 513 /* 514 * Init the Ring-0 components. 515 */ 516 rc = vmR3InitRing0(pVM); 517 if (VBOX_SUCCESS(rc)) 518 { 519 /* Relocate again, because some switcher fixups depends on R0 init results. */ 520 VMR3Relocate(pVM, 0); 502 521 503 522 #ifdef VBOX_WITH_DEBUGGER 504 /*505 * Init the tcp debugger console if we're building506 * with debugger support.507 */508 void *pvUser = NULL;509 rc = DBGCTcpCreate(pVM, &pvUser);510 if ( VBOX_SUCCESS(rc)511 || rc == VERR_NET_ADDRESS_IN_USE)512 {513 pUVM->vm.s.pvDBGC = pvUser;523 /* 524 * Init the tcp debugger console if we're building 525 * with debugger support. 526 */ 527 void *pvUser = NULL; 528 rc = DBGCTcpCreate(pVM, &pvUser); 529 if ( VBOX_SUCCESS(rc) 530 || rc == VERR_NET_ADDRESS_IN_USE) 531 { 532 pUVM->vm.s.pvDBGC = pvUser; 514 533 #endif 515 /*516 * Init the Guest Context components.517 */518 rc = vmR3InitGC(pVM);519 if (VBOX_SUCCESS(rc))520 {521 534 /* 522 * Now we can safely set the VM halt method to default.523 524 rc = vmR3 SetHaltMethodU(pUVM, VMHALTMETHOD_DEFAULT);525 if ( RT_SUCCESS(rc))535 * Init the Guest Context components. 536 */ 537 rc = vmR3InitGC(pVM); 538 if (VBOX_SUCCESS(rc)) 526 539 { 527 540 /* 528 * Set the state and link into the global list.541 * Now we can safely set the VM halt method to default. 529 542 */ 530 vmR3SetState(pVM, VMSTATE_CREATED); 531 pUVM->pNext = g_pUVMsHead; 532 g_pUVMsHead = pUVM; 533 return VINF_SUCCESS; 543 rc = vmR3SetHaltMethodU(pUVM, VMHALTMETHOD_DEFAULT); 544 if (RT_SUCCESS(rc)) 545 { 546 /* 547 * Set the state and link into the global list. 548 */ 549 vmR3SetState(pVM, VMSTATE_CREATED); 550 pUVM->pNext = g_pUVMsHead; 551 g_pUVMsHead = pUVM; 552 return VINF_SUCCESS; 553 } 534 554 } 555 #ifdef VBOX_WITH_DEBUGGER 556 DBGCTcpTerminate(pVM, pUVM->vm.s.pvDBGC); 557 pUVM->vm.s.pvDBGC = NULL; 535 558 } 536 #ifdef VBOX_WITH_DEBUGGER 537 DBGCTcpTerminate(pVM, pUVM->vm.s.pvDBGC); 538 pUVM->vm.s.pvDBGC = NULL; 559 #endif 560 //.. 539 561 } 540 #endif 541 //.. 562 vmR3Destroy(pVM); 542 563 } 543 vmR3Destroy(pVM);544 564 } 545 565 //.. -
trunk/src/VBox/VMM/VMM.cpp
r13717 r13742 178 178 /* GC switchers are enabled by default. Turned off by HWACCM. */ 179 179 pVM->vmm.s.fSwitcherDisabled = false; 180 181 /* Get the CPU count.*/182 rc = CFGMR3QueryU32Def(CFGMR3GetRoot(pVM), "NumCPUs", &pVM->cCPUs, 1);183 AssertLogRelMsgRCReturn(rc, ("Configuration error: Querying \"NumCPUs\" as integer failed, rc=%Vrc\n", rc), rc);184 #ifdef VBOX_WITH_SMP_GUESTS185 AssertLogRelMsgReturn(pVM->cCPUs > 0 && pVM->cCPUs <= 256,186 ("Configuration error: \"NumCPUs\"=%RU32 is out of range [1..256]\n", pVM->cCPUs), VERR_INVALID_PARAMETER);187 #else188 AssertLogRelMsgReturn(pVM->cCPUs != 0,189 ("Configuration error: \"NumCPUs\"=%RU32, expected 1\n", pVM->cCPUs), VERR_INVALID_PARAMETER);190 #endif191 192 #ifdef VBOX_WITH_SMP_GUESTS193 LogRel(("[SMP] VMM with %RU32 CPUs\n", pVM->cCPUs));194 #endif195 180 196 181 /* -
trunk/src/VBox/VMM/VMMInternal.h
r13719 r13742 157 157 158 158 /** 159 * VMM Data (part of VM M)159 * VMM Data (part of VM) 160 160 */ 161 161 typedef struct VMM … … 351 351 typedef VMM *PVMM; 352 352 353 /** 354 * VMMCPU Data (part of VMCPU) 355 */ 356 typedef struct VMMCPU 357 { 358 /** Offset to the VMCPU structure. 359 * See VMM2VMCPU(). */ 360 RTINT offVMCPU; 361 } VMMCPU; 362 /** Pointer to VMMCPU. */ 363 typedef VMMCPU *PVMMCPU; 364 353 365 354 366 /** -
trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp
r13001 r13742 470 470 if (!VALID_PTR(pReq->pSession)) 471 471 return VERR_INVALID_POINTER; 472 if ( pReq->cCPUs == 0 473 || pReq->cCPUs > VMCPU_MAX_CPU_COUNT) 474 return VERR_INVALID_PARAMETER; 472 475 473 476 /* … … 477 480 pReq->pVMR0 = NULL; 478 481 pReq->pVMR3 = NIL_RTR3PTR; 479 int rc = GVMMR0CreateVM(pReq->pSession, &pVM);482 int rc = GVMMR0CreateVM(pReq->pSession, pReq->cCPUs, &pVM); 480 483 if (RT_SUCCESS(rc)) 481 484 { … … 494 497 * @returns VBox status code. 495 498 * @param pSession The support driver session. 499 * @param cCPUs Number of virtual CPUs for the new VM. 496 500 * @param ppVM Where to store the pointer to the VM structure. 497 501 * 498 502 * @thread EMT. 499 503 */ 500 GVMMR0DECL(int) GVMMR0CreateVM(PSUPDRVSESSION pSession, PVM *ppVM)504 GVMMR0DECL(int) GVMMR0CreateVM(PSUPDRVSESSION pSession, uint32_t cCPUs, PVM *ppVM) 501 505 { 502 506 LogFlow(("GVMMR0CreateVM: pSession=%p\n", pSession)); … … 571 575 * Allocate the shared VM structure and associated page array. 572 576 */ 573 const size_t cPages = RT_ALIGN(sizeof(VM) , PAGE_SIZE) >> PAGE_SHIFT;577 const size_t cPages = RT_ALIGN(sizeof(VM) + sizeof(VMCPU) * (cCPUs - 1), PAGE_SIZE) >> PAGE_SHIFT; 574 578 rc = RTR0MemObjAllocLow(&pGVM->gvmm.s.VMMemObj, cPages << PAGE_SHIFT, false /* fExecutable */); 575 579 if (RT_SUCCESS(rc)) -
trunk/src/VBox/VMM/testcase/tstAnimate.cpp
r11822 r13742 828 828 */ 829 829 PVM pVM; 830 rc = VMR3Create( NULL, NULL, cfgmR3CreateDefault, &cbMem, &pVM);830 rc = VMR3Create(1, NULL, NULL, cfgmR3CreateDefault, &cbMem, &pVM); 831 831 if (VBOX_SUCCESS(rc)) 832 832 { -
trunk/src/VBox/VMM/testcase/tstMicro.cpp
r12975 r13742 347 347 */ 348 348 PVM pVM; 349 int rc = VMR3Create( NULL, NULL, NULL, NULL, &pVM);349 int rc = VMR3Create(1, NULL, NULL, NULL, NULL, &pVM); 350 350 if (VBOX_SUCCESS(rc)) 351 351 { -
trunk/src/VBox/VMM/testcase/tstVMM-2.cpp
r11822 r13742 354 354 */ 355 355 PVM pVM; 356 int rc = VMR3Create( NULL, NULL, Args.pszFilename ? ConfigConstructor : NULL, &Args, &pVM);356 int rc = VMR3Create(1, NULL, NULL, Args.pszFilename ? ConfigConstructor : NULL, &Args, &pVM); 357 357 if (VBOX_SUCCESS(rc)) 358 358 { -
trunk/src/VBox/VMM/testcase/tstVMM-HwAccm.cpp
r11822 r13742 86 86 RTPrintf(TESTCASE ": Initializing...\n"); 87 87 PVM pVM; 88 int rc = VMR3Create( NULL, NULL, CFGMConstructor, NULL, &pVM);88 int rc = VMR3Create(1, NULL, NULL, CFGMConstructor, NULL, &pVM); 89 89 if (VBOX_SUCCESS(rc)) 90 90 { -
trunk/src/VBox/VMM/testcase/tstVMM.cpp
r11822 r13742 54 54 RTPrintf(TESTCASE ": Initializing...\n"); 55 55 PVM pVM; 56 int rc = VMR3Create( NULL, NULL, NULL, NULL, &pVM);56 int rc = VMR3Create(1, NULL, NULL, NULL, NULL, &pVM); 57 57 if (VBOX_SUCCESS(rc)) 58 58 { -
trunk/src/VBox/VMM/testcase/tstVMMFork.cpp
r11822 r13742 71 71 RTPrintf(TESTCASE ": Initializing...\n"); 72 72 PVM pVM; 73 int rc = VMR3Create( NULL, NULL, NULL, NULL, &pVM);73 int rc = VMR3Create(1, NULL, NULL, NULL, NULL, &pVM); 74 74 if (VBOX_SUCCESS(rc)) 75 75 { -
trunk/src/VBox/VMM/testcase/tstVMREQ.cpp
r11822 r13742 226 226 */ 227 227 PVM pVM; 228 int rc = VMR3Create( NULL, NULL, NULL, NULL, &pVM);228 int rc = VMR3Create(1, NULL, NULL, NULL, NULL, &pVM); 229 229 if (VBOX_SUCCESS(rc)) 230 230 { -
trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp
r13701 r13742 177 177 /* vmcpu */ 178 178 CHECK_MEMBER_ALIGNMENT(VMCPU, cpum, 64); 179 CHECK_SIZE_ALIGNMENT(VMCPU, 64); 179 CHECK_MEMBER_ALIGNMENT(VMCPU, vmm, 32); 180 CHECK_MEMBER_ALIGNMENT(VMCPU, pgm, 32); 181 CHECK_MEMBER_ALIGNMENT(VMCPU, em, 32); 182 CHECK_MEMBER_ALIGNMENT(VMCPU, hwaccm, 32); 183 CHECK_MEMBER_ALIGNMENT(VMCPU, tm, 32); 184 CHECK_SIZE_ALIGNMENT(VMCPU, 32); 180 185 181 186 /* cpumctx */
Note:
See TracChangeset
for help on using the changeset viewer.