Changeset 92713 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Dec 2, 2021 5:34:56 PM (3 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PDMAllQueue.cpp
r91895 r92713 161 161 { 162 162 AssertPtr(pQueue); 163 Assert(pQueue->pVMR3 && pQueue->pVMR0);163 Assert(pQueue->pVMR3); 164 164 #ifdef IN_RING0 165 AssertPtr(pQueue->pVMR0); 165 166 return pQueue; 166 167 #else 168 Assert(pQueue->pVMR0 || SUPR3IsDriverless()); 167 169 return MMHyperCCToR0(pQueue->CTX_SUFF(pVM), pQueue); 168 170 #endif -
trunk/src/VBox/VMM/VMMR3/GVMMR3.cpp
r92703 r92713 90 90 /* CPUs: */ 91 91 PVMCPU pVCpu = (PVMCPU)((uintptr_t)pVM + sizeof(VM) + PAGE_SIZE); 92 for (VMCPUID idxCpu = 0; idxCpu < cCpus; idxCpu++ , pVCpu++)92 for (VMCPUID idxCpu = 0; idxCpu < cCpus; idxCpu++) 93 93 { 94 94 pVM->apCpusR3[idxCpu] = pVCpu; -
trunk/src/VBox/VMM/VMMR3/VMM.cpp
r92493 r92713 275 275 * Register the Ring-0 VM handle with the session for fast ioctl calls. 276 276 */ 277 rc = SUPR3SetVMForFastIOCtl(VMCC_GET_VMR0_FOR_CALL(pVM)); 278 if (RT_FAILURE(rc)) 279 return rc; 277 bool const fDriverless = SUPR3IsDriverless(); 278 if (!fDriverless) 279 { 280 rc = SUPR3SetVMForFastIOCtl(VMCC_GET_VMR0_FOR_CALL(pVM)); 281 if (RT_FAILURE(rc)) 282 return rc; 283 } 280 284 281 285 #ifdef VBOX_WITH_NMI … … 291 295 * Start the log flusher thread. 292 296 */ 293 rc = RTThreadCreate(&pVM->vmm.s.hLogFlusherThread, vmmR3LogFlusher, pVM, 0 /*cbStack*/, 294 RTTHREADTYPE_IO, RTTHREADFLAGS_WAITABLE, "R0LogWrk"); 297 if (!fDriverless) 298 rc = RTThreadCreate(&pVM->vmm.s.hLogFlusherThread, vmmR3LogFlusher, pVM, 0 /*cbStack*/, 299 RTTHREADTYPE_IO, RTTHREADFLAGS_WAITABLE, "R0LogWrk"); 295 300 if (RT_SUCCESS(rc)) 296 301 { … … 320 325 { 321 326 RT_NOREF_PV(pVM); 327 328 /* Nothing to do here in driverless mode. */ 329 if (SUPR3IsDriverless()) 330 return; 322 331 323 332 /* … … 453 462 454 463 /* 464 * Nothing to do here in driverless mode. 465 */ 466 if (SUPR3IsDriverless()) 467 return VINF_SUCCESS; 468 469 /* 455 470 * Make sure the ring-0 loggers are up to date. 456 471 */ … … 558 573 * knowledge/information from HM initialization. 559 574 */ 575 /** @todo r=bird: This shouldn't be done from here, but rather from VM.cpp. There is no dependency on VMM here. */ 560 576 rc = GIMR3InitCompleted(pVM); 561 577 AssertRCReturn(rc, rc); … … 590 606 * Call Ring-0 entry with termination code. 591 607 */ 592 #ifdef NO_SUPCALLR0VMM593 //rc = VERR_GENERAL_FAILURE;594 608 int rc = VINF_SUCCESS; 595 #else 596 int rc = SUPR3CallVMMR0Ex(VMCC_GET_VMR0_FOR_CALL(pVM), 0 /*idCpu*/, VMMR0_DO_VMMR0_TERM, 0, NULL); 597 #endif 609 if (!SUPR3IsDriverless()) 610 { 611 #ifndef NO_SUPCALLR0VMM 612 rc = SUPR3CallVMMR0Ex(VMCC_GET_VMR0_FOR_CALL(pVM), 0 /*idCpu*/, VMMR0_DO_VMMR0_TERM, 0, NULL); 613 #endif 614 } 598 615 599 616 /* … … 723 740 VMMR3_INT_DECL(int) VMMR3UpdateLoggers(PVM pVM) 724 741 { 725 VM_ASSERT_EMT(pVM); 742 /* Nothing to do here if we're in driverless mode: */ 743 if (SUPR3IsDriverless()) 744 return VINF_SUCCESS; 745 726 746 PVMCPU pVCpu = VMMGetCpu(pVM); 727 747 AssertReturn(pVCpu, VERR_VM_THREAD_NOT_EMT);
Note:
See TracChangeset
for help on using the changeset viewer.