Changeset 45808 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Apr 29, 2013 12:41:07 PM (12 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r45799 r45808 2425 2425 * @param pVM Pointer to the VM. 2426 2426 */ 2427 #if defined(VBOX_STRICT) && defined(IN_RING3) 2428 int pgmLockDebug(PVM pVM, RT_SRC_POS_DECL) 2429 #else 2427 2430 int pgmLock(PVM pVM) 2428 { 2431 #endif 2432 { 2433 #if defined(VBOX_STRICT) && defined(IN_RING3) 2434 int rc = PDMCritSectEnterDebug(&pVM->pgm.s.CritSectX, VERR_SEM_BUSY, (uintptr_t)ASMReturnAddress(), RT_SRC_POS_ARGS); 2435 #else 2429 2436 int rc = PDMCritSectEnter(&pVM->pgm.s.CritSectX, VERR_SEM_BUSY); 2437 #endif 2430 2438 #if defined(IN_RC) || defined(IN_RING0) 2431 2439 if (rc == VERR_SEM_BUSY) -
trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp
r44528 r45808 118 118 AssertPtrReturn(pfnHandlerR3, VERR_INVALID_POINTER); 119 119 AssertReturn(pfnHandlerR0, VERR_INVALID_PARAMETER); 120 AssertReturn(pfnHandlerRC , VERR_INVALID_PARAMETER);120 AssertReturn(pfnHandlerRC || HMIsEnabled(pVM), VERR_INVALID_PARAMETER); 121 121 122 122 /* -
trunk/src/VBox/VMM/VMMR3/EM.cpp
r45693 r45808 2040 2040 */ 2041 2041 if ( !fFFDone 2042 && RT_SUCCESS(rc) 2042 2043 && rc != VINF_EM_TERMINATE 2043 2044 && rc != VINF_EM_OFF -
trunk/src/VBox/VMM/VMMR3/IOM.cpp
r45311 r45808 105 105 #include <VBox/vmm/pgm.h> 106 106 #include <VBox/sup.h> 107 #include <VBox/vmm/hm.h> 107 108 #include <VBox/vmm/mm.h> 108 109 #include <VBox/vmm/stam.h> … … 308 309 RTAvlroGCPhysDoWithAll(&pVM->iom.s.pTreesR3->MMIOTree, true, iomR3RelocateMMIOCallback, &offDelta); 309 310 310 if (pVM->iom.s.pfnMMIOHandlerRC )311 if (pVM->iom.s.pfnMMIOHandlerRC != NIL_RTRCPTR) 311 312 pVM->iom.s.pfnMMIOHandlerRC += offDelta; 312 313 … … 643 644 LogFlow(("IOMR3IOPortRegisterRC: pDevIns=%p PortStart=%#x cPorts=%#x pvUser=%RRv pfnOutCallback=%RRv pfnInCallback=%RRv pfnOutStrCallback=%RRv pfnInStrCallback=%RRv pszDesc=%s\n", 644 645 pDevIns, PortStart, cPorts, pvUser, pfnOutCallback, pfnInCallback, pfnOutStrCallback, pfnInStrCallback, pszDesc)); 646 AssertReturn(!HMIsEnabled(pVM), VERR_IOM_HM_IPE); 645 647 646 648 /* … … 1381 1383 if (pVM->iom.s.pfnMMIOHandlerR0 == NIL_RTR0PTR) 1382 1384 { 1383 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "IOMMMIOHandler", &pVM->iom.s.pfnMMIOHandlerRC); 1384 AssertLogRelRCReturn(rc, rc); 1385 if (!HMIsEnabled(pVM)) 1386 { 1387 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "IOMMMIOHandler", &pVM->iom.s.pfnMMIOHandlerRC); 1388 AssertLogRelRCReturn(rc, rc); 1389 } 1385 1390 rc = PDMR3LdrGetSymbolR0(pVM, NULL, "IOMMMIOHandler", &pVM->iom.s.pfnMMIOHandlerR0); 1386 1391 AssertLogRelRCReturn(rc, rc); … … 1479 1484 LogFlow(("IOMR3MmioRegisterRC: pDevIns=%p GCPhysStart=%RGp cbRange=%#x pvUser=%RGv pfnWriteCallback=%#x pfnReadCallback=%#x pfnFillCallback=%#x\n", 1480 1485 pDevIns, GCPhysStart, cbRange, pvUser, pfnWriteCallback, pfnReadCallback, pfnFillCallback)); 1486 AssertReturn(!HMIsEnabled(pVM), VERR_IOM_HM_IPE); 1481 1487 1482 1488 /* -
trunk/src/VBox/VMM/VMMR3/PDM.cpp
r45152 r45808 256 256 #include <VBox/vmm/pgm.h> 257 257 #include <VBox/vmm/ssm.h> 258 #include <VBox/vmm/hm.h> 258 259 #include <VBox/vmm/vm.h> 259 260 #include <VBox/vmm/uvm.h> … … 515 516 * Devices & Drivers. 516 517 */ 517 PCPDMDEVHLPRC pDevHlpRC; 518 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCDevHlp", &pDevHlpRC); 519 AssertReleaseMsgRC(rc, ("rc=%Rrc when resolving g_pdmRCDevHlp\n", rc)); 520 521 PCPDMDRVHLPRC pDrvHlpRC; 522 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCDevHlp", &pDrvHlpRC); 523 AssertReleaseMsgRC(rc, ("rc=%Rrc when resolving g_pdmRCDevHlp\n", rc)); 518 int rc; 519 PCPDMDEVHLPRC pDevHlpRC = NIL_RTRCPTR; 520 if (!HMIsEnabled(pVM)) 521 { 522 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCDevHlp", &pDevHlpRC); 523 AssertReleaseMsgRC(rc, ("rc=%Rrc when resolving g_pdmRCDevHlp\n", rc)); 524 } 525 526 PCPDMDRVHLPRC pDrvHlpRC = NIL_RTRCPTR; 527 if (!HMIsEnabled(pVM)) 528 { 529 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCDevHlp", &pDrvHlpRC); 530 AssertReleaseMsgRC(rc, ("rc=%Rrc when resolving g_pdmRCDevHlp\n", rc)); 531 } 524 532 525 533 for (PPDMDEVINS pDevIns = pVM->pdm.s.pDevInstances; pDevIns; pDevIns = pDevIns->Internal.s.pNextR3) -
trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp
r45749 r45808 24 24 #include <VBox/vmm/pdm.h> 25 25 #include <VBox/vmm/mm.h> 26 #include <VBox/vmm/hm.h> 26 27 #include <VBox/vmm/pgm.h> 27 28 #include <VBox/vmm/iom.h> … … 65 66 DECLINLINE(int) pdmR3DevGetSymbolRCLazy(PPDMDEVINS pDevIns, const char *pszSymbol, PRTRCPTR ppvValue) 66 67 { 67 return PDMR3LdrGetSymbolRCLazy(pDevIns->Internal.s.pVMR3, 68 PVM pVM = pDevIns->Internal.s.pVMR3; 69 if (HMIsEnabled(pVM)) 70 { 71 *ppvValue = NIL_RTRCPTR; 72 return VINF_SUCCESS; 73 } 74 return PDMR3LdrGetSymbolRCLazy(pVM, 68 75 pDevIns->Internal.s.pDevR3->pReg->szRCMod, 69 76 pDevIns->Internal.s.pDevR3->pszRCSearchPath, … … 121 128 { 122 129 PDMDEV_ASSERT_DEVINS(pDevIns); 123 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 130 PVM pVM = pDevIns->Internal.s.pVMR3; 131 VM_ASSERT_EMT(pVM); 124 132 LogFlow(("pdmR3DevHlp_IOPortRegisterRC: caller='%s'/%d: Port=%#x cPorts=%#x pvUser=%p pszOut=%p:{%s} pszIn=%p:{%s} pszOutStr=%p:{%s} pszInStr=%p:{%s} pszDesc=%p:{%s}\n", pDevIns->pReg->szName, pDevIns->iInstance, 125 133 Port, cPorts, pvUser, pszOut, pszOut, pszIn, pszIn, pszOutStr, pszOutStr, pszInStr, pszInStr, pszDesc, pszDesc)); … … 129 137 */ 130 138 int rc = VINF_SUCCESS; 131 if ( pDevIns->pReg->szRCMod[0] 132 && (pDevIns->pReg->fFlags & PDM_DEVREG_FLAGS_RC)) 139 if ( pDevIns->pReg->szRCMod[0] 140 && (pDevIns->pReg->fFlags & PDM_DEVREG_FLAGS_RC) 141 && !HMIsEnabled(pVM)) 133 142 { 134 143 RTRCPTR RCPtrIn = NIL_RTRCPTR; … … 168 177 #endif 169 178 170 rc = IOMR3IOPortRegisterRC(p DevIns->Internal.s.pVMR3, pDevIns, Port, cPorts, pvUser, RCPtrOut, RCPtrIn, RCPtrOutStr, RCPtrInStr, pszDesc);171 } 172 } 173 else 174 { 175 AssertMsgFailed(("No GC module for this driver!\n"));179 rc = IOMR3IOPortRegisterRC(pVM, pDevIns, Port, cPorts, pvUser, RCPtrOut, RCPtrIn, RCPtrOutStr, RCPtrInStr, pszDesc); 180 } 181 } 182 else if (!HMIsEnabled(pVM)) 183 { 184 AssertMsgFailed(("No RC module for this driver!\n")); 176 185 rc = VERR_INVALID_PARAMETER; 177 186 } … … 295 304 { 296 305 PDMDEV_ASSERT_DEVINS(pDevIns); 297 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 306 PVM pVM = pDevIns->Internal.s.pVMR3; 307 VM_ASSERT_EMT(pVM); 298 308 LogFlow(("pdmR3DevHlp_MMIORegisterRC: caller='%s'/%d: GCPhysStart=%RGp cbRange=%#x pvUser=%p pszWrite=%p:{%s} pszRead=%p:{%s} pszFill=%p:{%s}\n", 299 309 pDevIns->pReg->szName, pDevIns->iInstance, GCPhysStart, cbRange, pvUser, pszWrite, pszWrite, pszRead, pszRead, pszFill, pszFill)); … … 305 315 */ 306 316 int rc = VINF_SUCCESS; 307 if ( pDevIns->pReg->szRCMod[0] 308 && (pDevIns->pReg->fFlags & PDM_DEVREG_FLAGS_RC)) 317 if ( pDevIns->pReg->szRCMod[0] 318 && (pDevIns->pReg->fFlags & PDM_DEVREG_FLAGS_RC) 319 && !HMIsEnabled(pVM)) 309 320 { 310 321 RTRCPTR RCPtrWrite = NIL_RTRCPTR; … … 323 334 324 335 if (RT_SUCCESS(rc) && RT_SUCCESS(rc2) && RT_SUCCESS(rc3)) 325 rc = IOMR3MmioRegisterRC(p DevIns->Internal.s.pVMR3, pDevIns, GCPhysStart, cbRange, pvUser, RCPtrWrite, RCPtrRead, RCPtrFill);336 rc = IOMR3MmioRegisterRC(pVM, pDevIns, GCPhysStart, cbRange, pvUser, RCPtrWrite, RCPtrRead, RCPtrFill); 326 337 else 327 338 { … … 335 346 } 336 347 } 337 else 338 { 339 AssertMsgFailed(("No GC module for this driver!\n"));348 else if (!HMIsEnabled(pVM)) 349 { 350 AssertMsgFailed(("No RC module for this driver!\n")); 340 351 rc = VERR_INVALID_PARAMETER; 341 352 } -
trunk/src/VBox/VMM/VMMR3/PDMDevMiscHlp.cpp
r44528 r45808 24 24 #include <VBox/vmm/pdm.h> 25 25 #include <VBox/vmm/pgm.h> 26 #include <VBox/vmm/hm.h> 26 27 #ifdef VBOX_WITH_REM 27 28 # include <VBox/vmm/rem.h> … … 121 122 { 122 123 PDMDEV_ASSERT_DEVINS(pDevIns); 123 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 124 RTRCPTR pRCHelpers = 0; 125 int rc = PDMR3LdrGetSymbolRC(pDevIns->Internal.s.pVMR3, NULL, "g_pdmRCPicHlp", &pRCHelpers); 126 AssertReleaseRC(rc); 127 AssertRelease(pRCHelpers); 124 PVM pVM = pDevIns->Internal.s.pVMR3; 125 VM_ASSERT_EMT(pVM); 126 127 RTRCPTR pRCHelpers = NIL_RTRCPTR; 128 if (!HMIsEnabled(pVM)) 129 { 130 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCPicHlp", &pRCHelpers); 131 AssertReleaseRC(rc); 132 AssertRelease(pRCHelpers); 133 } 134 128 135 LogFlow(("pdmR3PicHlp_GetRCHelpers: caller='%s'/%d: returns %RRv\n", 129 136 pDevIns->pReg->szName, pDevIns->iInstance, pRCHelpers)); … … 136 143 { 137 144 PDMDEV_ASSERT_DEVINS(pDevIns); 138 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 145 PVM pVM = pDevIns->Internal.s.pVMR3; 146 VM_ASSERT_EMT(pVM); 139 147 PCPDMPICHLPR0 pR0Helpers = 0; 140 int rc = PDMR3LdrGetSymbolR0(p DevIns->Internal.s.pVMR3, NULL, "g_pdmR0PicHlp", &pR0Helpers);148 int rc = PDMR3LdrGetSymbolR0(pVM, NULL, "g_pdmR0PicHlp", &pR0Helpers); 141 149 AssertReleaseRC(rc); 142 150 AssertRelease(pR0Helpers); … … 316 324 { 317 325 PDMDEV_ASSERT_DEVINS(pDevIns); 318 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 319 RTRCPTR pRCHelpers = 0; 320 int rc = PDMR3LdrGetSymbolRC(pDevIns->Internal.s.pVMR3, NULL, "g_pdmRCApicHlp", &pRCHelpers); 321 AssertReleaseRC(rc); 322 AssertRelease(pRCHelpers); 326 PVM pVM = pDevIns->Internal.s.pVMR3; 327 VM_ASSERT_EMT(pVM); 328 329 RTRCPTR pRCHelpers = NIL_RTRCPTR; 330 if (!HMIsEnabled(pVM)) 331 { 332 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCApicHlp", &pRCHelpers); 333 AssertReleaseRC(rc); 334 AssertRelease(pRCHelpers); 335 } 336 323 337 LogFlow(("pdmR3ApicHlp_GetRCHelpers: caller='%s'/%d: returns %RRv\n", 324 338 pDevIns->pReg->szName, pDevIns->iInstance, pRCHelpers)); … … 331 345 { 332 346 PDMDEV_ASSERT_DEVINS(pDevIns); 333 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 347 PVM pVM = pDevIns->Internal.s.pVMR3; 348 VM_ASSERT_EMT(pVM); 334 349 PCPDMAPICHLPR0 pR0Helpers = 0; 335 int rc = PDMR3LdrGetSymbolR0(p DevIns->Internal.s.pVMR3, NULL, "g_pdmR0ApicHlp", &pR0Helpers);350 int rc = PDMR3LdrGetSymbolR0(pVM, NULL, "g_pdmR0ApicHlp", &pR0Helpers); 336 351 AssertReleaseRC(rc); 337 352 AssertRelease(pR0Helpers); … … 440 455 { 441 456 PDMDEV_ASSERT_DEVINS(pDevIns); 442 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 443 RTRCPTR pRCHelpers = 0; 444 int rc = PDMR3LdrGetSymbolRC(pDevIns->Internal.s.pVMR3, NULL, "g_pdmRCIoApicHlp", &pRCHelpers); 445 AssertReleaseRC(rc); 446 AssertRelease(pRCHelpers); 457 PVM pVM = pDevIns->Internal.s.pVMR3; 458 VM_ASSERT_EMT(pVM); 459 460 RTRCPTR pRCHelpers = NIL_RTRCPTR; 461 if (!HMIsEnabled(pVM)) 462 { 463 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCIoApicHlp", &pRCHelpers); 464 AssertReleaseRC(rc); 465 AssertRelease(pRCHelpers); 466 } 467 447 468 LogFlow(("pdmR3IoApicHlp_GetRCHelpers: caller='%s'/%d: returns %RRv\n", 448 469 pDevIns->pReg->szName, pDevIns->iInstance, pRCHelpers)); … … 455 476 { 456 477 PDMDEV_ASSERT_DEVINS(pDevIns); 457 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 478 PVM pVM = pDevIns->Internal.s.pVMR3; 479 VM_ASSERT_EMT(pVM); 458 480 PCPDMIOAPICHLPR0 pR0Helpers = 0; 459 int rc = PDMR3LdrGetSymbolR0(p DevIns->Internal.s.pVMR3, NULL, "g_pdmR0IoApicHlp", &pR0Helpers);481 int rc = PDMR3LdrGetSymbolR0(pVM, NULL, "g_pdmR0IoApicHlp", &pR0Helpers); 460 482 AssertReleaseRC(rc); 461 483 AssertRelease(pR0Helpers); … … 547 569 { 548 570 PDMDEV_ASSERT_DEVINS(pDevIns); 549 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 550 RTRCPTR pRCHelpers = 0; 551 int rc = PDMR3LdrGetSymbolRC(pDevIns->Internal.s.pVMR3, NULL, "g_pdmRCPciHlp", &pRCHelpers); 552 AssertReleaseRC(rc); 553 AssertRelease(pRCHelpers); 571 PVM pVM = pDevIns->Internal.s.pVMR3; 572 VM_ASSERT_EMT(pVM); 573 574 RTRCPTR pRCHelpers = NIL_RTRCPTR; 575 if (!HMIsEnabled(pVM)) 576 { 577 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCPciHlp", &pRCHelpers); 578 AssertReleaseRC(rc); 579 AssertRelease(pRCHelpers); 580 } 581 554 582 LogFlow(("pdmR3IoApicHlp_GetGCHelpers: caller='%s'/%d: returns %RRv\n", 555 583 pDevIns->pReg->szName, pDevIns->iInstance, pRCHelpers)); … … 562 590 { 563 591 PDMDEV_ASSERT_DEVINS(pDevIns); 564 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 592 PVM pVM = pDevIns->Internal.s.pVMR3; 593 VM_ASSERT_EMT(pVM); 565 594 PCPDMPCIHLPR0 pR0Helpers = 0; 566 int rc = PDMR3LdrGetSymbolR0(p DevIns->Internal.s.pVMR3, NULL, "g_pdmR0PciHlp", &pR0Helpers);595 int rc = PDMR3LdrGetSymbolR0(pVM, NULL, "g_pdmR0PciHlp", &pR0Helpers); 567 596 AssertReleaseRC(rc); 568 597 AssertRelease(pR0Helpers); … … 669 698 { 670 699 PDMDEV_ASSERT_DEVINS(pDevIns); 671 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 672 RTRCPTR pRCHelpers = 0; 673 int rc = PDMR3LdrGetSymbolRC(pDevIns->Internal.s.pVMR3, NULL, "g_pdmRCHpetHlp", &pRCHelpers); 674 AssertReleaseRC(rc); 675 AssertRelease(pRCHelpers); 700 PVM pVM = pDevIns->Internal.s.pVMR3; 701 VM_ASSERT_EMT(pVM); 702 703 RTRCPTR pRCHelpers = NIL_RTRCPTR; 704 if (!HMIsEnabled(pVM)) 705 { 706 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCHpetHlp", &pRCHelpers); 707 AssertReleaseRC(rc); 708 AssertRelease(pRCHelpers); 709 } 710 676 711 LogFlow(("pdmR3HpetHlp_GetGCHelpers: caller='%s'/%d: returns %RRv\n", 677 712 pDevIns->pReg->szName, pDevIns->iInstance, pRCHelpers)); … … 684 719 { 685 720 PDMDEV_ASSERT_DEVINS(pDevIns); 686 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 721 PVM pVM = pDevIns->Internal.s.pVMR3; 722 VM_ASSERT_EMT(pVM); 687 723 PCPDMHPETHLPR0 pR0Helpers = 0; 688 int rc = PDMR3LdrGetSymbolR0(p DevIns->Internal.s.pVMR3, NULL, "g_pdmR0HpetHlp", &pR0Helpers);724 int rc = PDMR3LdrGetSymbolR0(pVM, NULL, "g_pdmR0HpetHlp", &pR0Helpers); 689 725 AssertReleaseRC(rc); 690 726 AssertRelease(pR0Helpers); … … 719 755 { 720 756 PDMDEV_ASSERT_DEVINS(pDevIns); 721 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 757 PVM pVM = pDevIns->Internal.s.pVMR3; 758 VM_ASSERT_EMT(pVM); 759 722 760 RTRCPTR pRCHelpers = NIL_RTRCPTR; 723 int rc = PDMR3LdrGetSymbolRC(pDevIns->Internal.s.pVMR3, NULL, "g_pdmRCPciRawHlp", &pRCHelpers); 724 AssertReleaseRC(rc); 725 AssertRelease(pRCHelpers); 761 if (!HMIsEnabled(pVM)) 762 { 763 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCPciRawHlp", &pRCHelpers); 764 AssertReleaseRC(rc); 765 AssertRelease(pRCHelpers); 766 } 767 726 768 LogFlow(("pdmR3PciRawHlp_GetGCHelpers: caller='%s'/%d: returns %RRv\n", 727 769 pDevIns->pReg->szName, pDevIns->iInstance, pRCHelpers)); … … 734 776 { 735 777 PDMDEV_ASSERT_DEVINS(pDevIns); 736 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 778 PVM pVM = pDevIns->Internal.s.pVMR3; 779 VM_ASSERT_EMT(pVM); 737 780 PCPDMHPETHLPR0 pR0Helpers = NIL_RTR0PTR; 738 int rc = PDMR3LdrGetSymbolR0(p DevIns->Internal.s.pVMR3, NULL, "g_pdmR0PciRawHlp", &pR0Helpers);781 int rc = PDMR3LdrGetSymbolR0(pVM, NULL, "g_pdmR0PciRawHlp", &pR0Helpers); 739 782 AssertReleaseRC(rc); 740 783 AssertRelease(pR0Helpers); -
trunk/src/VBox/VMM/VMMR3/PDMDevice.cpp
r44528 r45808 26 26 #include <VBox/vmm/pgm.h> 27 27 #include <VBox/vmm/iom.h> 28 #include <VBox/vmm/hm.h> 28 29 #include <VBox/vmm/cfgm.h> 29 30 #ifdef VBOX_WITH_REM … … 130 131 * Get the RC & R0 devhlps and create the devhlp R3 task queue. 131 132 */ 132 PCPDMDEVHLPRC pHlpRC; 133 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCDevHlp", &pHlpRC); 134 AssertReleaseRCReturn(rc, rc); 133 PCPDMDEVHLPRC pHlpRC = NIL_RTRCPTR; 134 if (!HMIsEnabled(pVM)) 135 { 136 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "g_pdmRCDevHlp", &pHlpRC); 137 AssertReleaseRCReturn(rc, rc); 138 } 135 139 136 140 PCPDMDEVHLPR0 pHlpR0; -
trunk/src/VBox/VMM/VMMR3/PDMDriver.cpp
r45152 r45808 25 25 #include <VBox/vmm/mm.h> 26 26 #include <VBox/vmm/cfgm.h> 27 #include <VBox/vmm/hm.h> 27 28 #include <VBox/vmm/vmm.h> 28 29 #include <VBox/sup.h> … … 722 723 rc = PDMR3LdrGetSymbolR0(pVM, NULL, "g_pdmR0DrvHlp", &pNew->pHlpR0); 723 724 AssertReleaseRCReturn(rc, rc); 724 725 725 } 726 if (pDrv->pReg->fFlags & PDM_DRVREG_FLAGS_RC) 726 if ( (pDrv->pReg->fFlags & PDM_DRVREG_FLAGS_RC) 727 && !HMIsEnabled(pVM)) 727 728 { 728 729 pNew->pvInstanceDataR0 = MMHyperR3ToRC(pVM, &pNew->achInstanceData[0]); -
trunk/src/VBox/VMM/VMMR3/PDMLdr.cpp
r44528 r45808 320 320 } 321 321 322 323 322 #ifdef VBOX_WITH_RAW_MODE 323 324 324 /** 325 325 * Resolve an external symbol during RTLdrGetBits() of a RC module. … … 609 609 return rc; 610 610 } 611 611 612 #endif /* VBOX_WITH_RAW_MODE */ 612 613 613 614 614 /** … … 884 884 { 885 885 #if defined(PDMLDR_FAKE_MODE) || !defined(VBOX_WITH_RAW_MODE) 886 Assert(!HMIsEnabled(pVM)); 886 887 *pRCPtrValue = 0xfeedf00d; 887 888 return VINF_SUCCESS; … … 951 952 { 952 953 #if defined(PDMLDR_FAKE_MODE) || !defined(VBOX_WITH_RAW_MODE) 954 Assert(!HMIsEnabled(pVM)); 953 955 *pRCPtrValue = 0xfeedf00d; 954 956 return VINF_SUCCESS; -
trunk/src/VBox/VMM/VMMR3/PGMBth.h
r45103 r45808 65 65 int rc; 66 66 67 if (!HMIsEnabled(pVM)) 68 { 67 69 #if PGM_SHW_TYPE != PGM_TYPE_AMD64 && PGM_SHW_TYPE != PGM_TYPE_NESTED && PGM_SHW_TYPE != PGM_TYPE_EPT /* No AMD64 for traditional virtualization, only VT-x and AMD-V. */ 68 /* GC */69 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(Trap0eHandler), &pModeData->pfnRCBthTrap0eHandler);70 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(Trap0eHandler), rc), rc);71 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(InvalidatePage), &pModeData->pfnRCBthInvalidatePage);72 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(InvalidatePage), rc), rc);73 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(SyncCR3), &pModeData->pfnRCBthSyncCR3);74 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(SyncCR3), rc), rc);75 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(PrefetchPage), &pModeData->pfnRCBthPrefetchPage);76 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(PrefetchPage), rc), rc);77 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(VerifyAccessSyncPage),&pModeData->pfnRCBthVerifyAccessSyncPage);78 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(VerifyAccessSyncPage), rc), rc);70 /* RC */ 71 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(Trap0eHandler), &pModeData->pfnRCBthTrap0eHandler); 72 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(Trap0eHandler), rc), rc); 73 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(InvalidatePage), &pModeData->pfnRCBthInvalidatePage); 74 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(InvalidatePage), rc), rc); 75 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(SyncCR3), &pModeData->pfnRCBthSyncCR3); 76 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(SyncCR3), rc), rc); 77 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(PrefetchPage), &pModeData->pfnRCBthPrefetchPage); 78 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(PrefetchPage), rc), rc); 79 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(VerifyAccessSyncPage),&pModeData->pfnRCBthVerifyAccessSyncPage); 80 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(VerifyAccessSyncPage), rc), rc); 79 81 # ifdef VBOX_STRICT 80 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(AssertCR3), &pModeData->pfnRCBthAssertCR3);81 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(AssertCR3), rc), rc);82 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(AssertCR3), &pModeData->pfnRCBthAssertCR3); 83 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(AssertCR3), rc), rc); 82 84 # endif 83 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(MapCR3), &pModeData->pfnRCBthMapCR3);84 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(MapCR3), rc), rc);85 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(UnmapCR3), &pModeData->pfnRCBthUnmapCR3);86 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(UnmapCR3), rc), rc);85 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(MapCR3), &pModeData->pfnRCBthMapCR3); 86 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(MapCR3), rc), rc); 87 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_BTH_NAME_RC_STR(UnmapCR3), &pModeData->pfnRCBthUnmapCR3); 88 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_BTH_NAME_RC_STR(UnmapCR3), rc), rc); 87 89 #endif /* Not AMD64 shadow paging. */ 90 } 88 91 89 92 /* Ring 0 */ -
trunk/src/VBox/VMM/VMMR3/PGMGst.h
r44528 r45808 58 58 int rc; 59 59 60 if (!HMIsEnabled(pVM)) 61 { 60 62 #if PGM_SHW_TYPE != PGM_TYPE_AMD64 /* No AMD64 for traditional virtualization, only VT-x and AMD-V. */ 61 /* GC */62 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_GST_NAME_RC_STR(GetPage), &pModeData->pfnRCGstGetPage);63 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_GST_NAME_RC_STR(GetPage), rc), rc);64 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_GST_NAME_RC_STR(ModifyPage), &pModeData->pfnRCGstModifyPage);65 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_GST_NAME_RC_STR(ModifyPage), rc), rc);66 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_GST_NAME_RC_STR(GetPDE), &pModeData->pfnRCGstGetPDE);67 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_GST_NAME_RC_STR(GetPDE), rc), rc);63 /* RC */ 64 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_GST_NAME_RC_STR(GetPage), &pModeData->pfnRCGstGetPage); 65 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_GST_NAME_RC_STR(GetPage), rc), rc); 66 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_GST_NAME_RC_STR(ModifyPage), &pModeData->pfnRCGstModifyPage); 67 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_GST_NAME_RC_STR(ModifyPage), rc), rc); 68 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_GST_NAME_RC_STR(GetPDE), &pModeData->pfnRCGstGetPDE); 69 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_GST_NAME_RC_STR(GetPDE), rc), rc); 68 70 #endif /* Not AMD64 shadow paging. */ 71 } 69 72 70 73 /* Ring-0 */ -
trunk/src/VBox/VMM/VMMR3/PGMHandler.cpp
r45276 r45808 120 120 */ 121 121 RTRCPTR pfnHandlerRC = NIL_RTRCPTR; 122 rc = PDMR3LdrGetSymbolRCLazy(pVM, pszModRC, NULL /*pszSearchPath*/, pszHandlerRC, &pfnHandlerRC); 122 if (!HMIsEnabled(pVM)) 123 rc = PDMR3LdrGetSymbolRCLazy(pVM, pszModRC, NULL /*pszSearchPath*/, pszHandlerRC, &pfnHandlerRC); 123 124 if (RT_SUCCESS(rc)) 124 125 return PGMHandlerPhysicalRegisterEx(pVM, enmType, GCPhys, GCPhysLast, pfnHandlerR3, pvUserR3, … … 260 261 int rc = PDMR3LdrGetSymbolRCLazy(pVM, pszModRC, NULL /*pszSearchPath*/, pszHandlerRC, &pfnHandlerRC); 261 262 if (RT_SUCCESS(rc)) 262 return PGMR3HandlerVirtualRegisterEx(pVM, enmType, GCPtr, GCPtrLast, pfnInvalidateR3, pfnHandlerR3, pfnHandlerRC, pszDesc); 263 return PGMR3HandlerVirtualRegisterEx(pVM, enmType, GCPtr, GCPtrLast, pfnInvalidateR3, 264 pfnHandlerR3, pfnHandlerRC, pszDesc); 263 265 264 266 AssertMsgFailed(("Failed to resolve %s.%s, rc=%Rrc.\n", pszModRC, pszHandlerRC, rc)); -
trunk/src/VBox/VMM/VMMR3/PGMPool.cpp
r45103 r45808 411 411 pVM->pgm.s.pPoolR3->paUsersRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pPoolR3->paUsersR3); 412 412 pVM->pgm.s.pPoolR3->paPhysExtsRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pPoolR3->paPhysExtsR3); 413 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "pgmPoolAccessHandler", &pVM->pgm.s.pPoolR3->pfnAccessHandlerRC); 414 AssertReleaseRC(rc); 413 414 if (!HMIsEnabled(pVM)) 415 { 416 int rc = PDMR3LdrGetSymbolRC(pVM, NULL, "pgmPoolAccessHandler", &pVM->pgm.s.pPoolR3->pfnAccessHandlerRC); 417 AssertReleaseRC(rc); 418 } 419 415 420 /* init order hack. */ 416 421 if (!pVM->pgm.s.pPoolR3->pfnAccessHandlerR0) 417 422 { 418 rc = PDMR3LdrGetSymbolR0(pVM, NULL, "pgmPoolAccessHandler", &pVM->pgm.s.pPoolR3->pfnAccessHandlerR0);423 int rc = PDMR3LdrGetSymbolR0(pVM, NULL, "pgmPoolAccessHandler", &pVM->pgm.s.pPoolR3->pfnAccessHandlerR0); 419 424 AssertReleaseRC(rc); 420 425 } -
trunk/src/VBox/VMM/VMMR3/PGMShw.h
r45103 r45808 145 145 int rc; 146 146 147 if (!HMIsEnabled(pVM)) 148 { 147 149 #if PGM_SHW_TYPE != PGM_TYPE_AMD64 && PGM_SHW_TYPE != PGM_TYPE_NESTED && PGM_SHW_TYPE != PGM_TYPE_EPT /* No AMD64 for traditional virtualization, only VT-x and AMD-V. */ 148 /* GC */149 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_SHW_NAME_RC_STR(GetPage), &pModeData->pfnRCShwGetPage);150 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_SHW_NAME_RC_STR(GetPage), rc), rc);151 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_SHW_NAME_RC_STR(ModifyPage), &pModeData->pfnRCShwModifyPage);152 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_SHW_NAME_RC_STR(ModifyPage), rc), rc);150 /* GC */ 151 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_SHW_NAME_RC_STR(GetPage), &pModeData->pfnRCShwGetPage); 152 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_SHW_NAME_RC_STR(GetPage), rc), rc); 153 rc = PDMR3LdrGetSymbolRC(pVM, NULL, PGM_SHW_NAME_RC_STR(ModifyPage), &pModeData->pfnRCShwModifyPage); 154 AssertMsgRCReturn(rc, ("%s -> rc=%Rrc\n", PGM_SHW_NAME_RC_STR(ModifyPage), rc), rc); 153 155 #endif /* Not AMD64 shadow paging. */ 156 } 154 157 155 158 /* Ring-0 */ -
trunk/src/VBox/VMM/VMMR3/TM.cpp
r45436 r45808 125 125 #include <VBox/vmm/vmm.h> 126 126 #include <VBox/vmm/mm.h> 127 #include <VBox/vmm/hm.h> 127 128 #include <VBox/vmm/ssm.h> 128 129 #include <VBox/vmm/dbgf.h> … … 939 940 * Resolve symbols. 940 941 */ 941 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "tmVirtualNanoTSBad", &pVM->tm.s.VirtualGetRawDataRC.pfnBad); 942 AssertRCReturn(rc, rc); 943 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "tmVirtualNanoTSRediscover", &pVM->tm.s.VirtualGetRawDataRC.pfnRediscover); 944 AssertRCReturn(rc, rc); 945 if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLFenceSync) 946 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLFenceSync", &pVM->tm.s.pfnVirtualGetRawRC); 947 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLFenceAsync) 948 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLFenceAsync", &pVM->tm.s.pfnVirtualGetRawRC); 949 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLegacySync) 950 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLegacySync", &pVM->tm.s.pfnVirtualGetRawRC); 951 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLegacyAsync) 952 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLegacyAsync", &pVM->tm.s.pfnVirtualGetRawRC); 953 else 954 AssertFatalFailed(); 955 AssertRCReturn(rc, rc); 942 if (!HMIsEnabled(pVM)) 943 { 944 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "tmVirtualNanoTSBad", &pVM->tm.s.VirtualGetRawDataRC.pfnBad); 945 AssertRCReturn(rc, rc); 946 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "tmVirtualNanoTSRediscover", &pVM->tm.s.VirtualGetRawDataRC.pfnRediscover); 947 AssertRCReturn(rc, rc); 948 if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLFenceSync) 949 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLFenceSync", &pVM->tm.s.pfnVirtualGetRawRC); 950 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLFenceAsync) 951 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLFenceAsync", &pVM->tm.s.pfnVirtualGetRawRC); 952 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLegacySync) 953 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLegacySync", &pVM->tm.s.pfnVirtualGetRawRC); 954 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLegacyAsync) 955 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLegacyAsync", &pVM->tm.s.pfnVirtualGetRawRC); 956 else 957 AssertFatalFailed(); 958 AssertRCReturn(rc, rc); 959 } 956 960 957 961 rc = PDMR3LdrGetSymbolR0(pVM, NULL, "tmVirtualNanoTSBad", &pVM->tm.s.VirtualGetRawDataR0.pfnBad); … … 999 1003 NOREF(offDelta); 1000 1004 1001 pVM->tm.s.pvGIPRC = MMHyperR3ToRC(pVM, pVM->tm.s.pvGIPR3);1002 pVM->tm.s.paTimerQueuesRC = MMHyperR3ToRC(pVM, pVM->tm.s.paTimerQueuesR3);1003 1005 pVM->tm.s.paTimerQueuesR0 = MMHyperR3ToR0(pVM, pVM->tm.s.paTimerQueuesR3); 1004 1006 1005 pVM->tm.s.VirtualGetRawDataRC.pu64Prev = MMHyperR3ToRC(pVM, (void *)&pVM->tm.s.u64VirtualRawPrev); 1006 AssertFatal(pVM->tm.s.VirtualGetRawDataRC.pu64Prev); 1007 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "tmVirtualNanoTSBad", &pVM->tm.s.VirtualGetRawDataRC.pfnBad); 1008 AssertFatalRC(rc); 1009 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "tmVirtualNanoTSRediscover", &pVM->tm.s.VirtualGetRawDataRC.pfnRediscover); 1010 AssertFatalRC(rc); 1011 1012 if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLFenceSync) 1013 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLFenceSync", &pVM->tm.s.pfnVirtualGetRawRC); 1014 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLFenceAsync) 1015 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLFenceAsync", &pVM->tm.s.pfnVirtualGetRawRC); 1016 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLegacySync) 1017 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLegacySync", &pVM->tm.s.pfnVirtualGetRawRC); 1018 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLegacyAsync) 1019 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLegacyAsync", &pVM->tm.s.pfnVirtualGetRawRC); 1020 else 1021 AssertFatalFailed(); 1022 AssertFatalRC(rc); 1007 if (!HMIsEnabled(pVM)) 1008 { 1009 pVM->tm.s.pvGIPRC = MMHyperR3ToRC(pVM, pVM->tm.s.pvGIPR3); 1010 pVM->tm.s.paTimerQueuesRC = MMHyperR3ToRC(pVM, pVM->tm.s.paTimerQueuesR3); 1011 pVM->tm.s.VirtualGetRawDataRC.pu64Prev = MMHyperR3ToRC(pVM, (void *)&pVM->tm.s.u64VirtualRawPrev); 1012 AssertFatal(pVM->tm.s.VirtualGetRawDataRC.pu64Prev); 1013 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "tmVirtualNanoTSBad", &pVM->tm.s.VirtualGetRawDataRC.pfnBad); 1014 AssertFatalRC(rc); 1015 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "tmVirtualNanoTSRediscover", &pVM->tm.s.VirtualGetRawDataRC.pfnRediscover); 1016 AssertFatalRC(rc); 1017 1018 if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLFenceSync) 1019 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLFenceSync", &pVM->tm.s.pfnVirtualGetRawRC); 1020 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLFenceAsync) 1021 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLFenceAsync", &pVM->tm.s.pfnVirtualGetRawRC); 1022 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLegacySync) 1023 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLegacySync", &pVM->tm.s.pfnVirtualGetRawRC); 1024 else if (pVM->tm.s.pfnVirtualGetRawR3 == RTTimeNanoTSLegacyAsync) 1025 rc = PDMR3LdrGetSymbolRC(pVM, NULL, "RTTimeNanoTSLegacyAsync", &pVM->tm.s.pfnVirtualGetRawRC); 1026 else 1027 AssertFatalFailed(); 1028 AssertFatalRC(rc); 1029 } 1023 1030 1024 1031 /* -
trunk/src/VBox/VMM/VMMR3/TRPM.cpp
r45728 r45808 1176 1176 /* Only applies to raw mode which supports only 1 VCPU. */ 1177 1177 PVMCPU pVCpu = &pVM->aCpus[0]; 1178 Assert(!HMIsEnabled(pVM)); 1178 1179 1179 1180 /** @todo cleanup trpmR3ClearPassThroughHandler()! */ -
trunk/src/VBox/VMM/VMMR3/VMM.cpp
r45701 r45808 348 348 if (pLogger) 349 349 { 350 pVM->vmm.s.cbRCLogger = RT_OFFSETOF(RTLOGGERRC, afGroups[pLogger->cGroups]); 351 rc = MMR3HyperAllocOnceNoRel(pVM, pVM->vmm.s.cbRCLogger, 0, MM_TAG_VMM, (void **)&pVM->vmm.s.pRCLoggerR3); 352 if (RT_FAILURE(rc)) 353 return rc; 354 pVM->vmm.s.pRCLoggerRC = MMHyperR3ToRC(pVM, pVM->vmm.s.pRCLoggerR3); 350 if (!HMIsEnabled(pVM)) 351 { 352 pVM->vmm.s.cbRCLogger = RT_OFFSETOF(RTLOGGERRC, afGroups[pLogger->cGroups]); 353 rc = MMR3HyperAllocOnceNoRel(pVM, pVM->vmm.s.cbRCLogger, 0, MM_TAG_VMM, (void **)&pVM->vmm.s.pRCLoggerR3); 354 if (RT_FAILURE(rc)) 355 return rc; 356 pVM->vmm.s.pRCLoggerRC = MMHyperR3ToRC(pVM, pVM->vmm.s.pRCLoggerR3); 357 } 355 358 356 359 # ifdef VBOX_WITH_R0_LOGGING … … 376 379 * Allocate RC release logger instances (finalized in the relocator). 377 380 */ 378 PRTLOGGER pRelLogger = RTLogRelDefaultInstance(); 379 if (pRelLogger) 380 { 381 pVM->vmm.s.cbRCRelLogger = RT_OFFSETOF(RTLOGGERRC, afGroups[pRelLogger->cGroups]); 382 rc = MMR3HyperAllocOnceNoRel(pVM, pVM->vmm.s.cbRCRelLogger, 0, MM_TAG_VMM, (void **)&pVM->vmm.s.pRCRelLoggerR3); 383 if (RT_FAILURE(rc)) 384 return rc; 385 pVM->vmm.s.pRCRelLoggerRC = MMHyperR3ToRC(pVM, pVM->vmm.s.pRCRelLoggerR3); 381 if (!HMIsEnabled(pVM)) 382 { 383 PRTLOGGER pRelLogger = RTLogRelDefaultInstance(); 384 if (pRelLogger) 385 { 386 pVM->vmm.s.cbRCRelLogger = RT_OFFSETOF(RTLOGGERRC, afGroups[pRelLogger->cGroups]); 387 rc = MMR3HyperAllocOnceNoRel(pVM, pVM->vmm.s.cbRCRelLogger, 0, MM_TAG_VMM, (void **)&pVM->vmm.s.pRCRelLoggerR3); 388 if (RT_FAILURE(rc)) 389 return rc; 390 pVM->vmm.s.pRCRelLoggerRC = MMHyperR3ToRC(pVM, pVM->vmm.s.pRCRelLoggerR3); 391 } 386 392 } 387 393 #endif /* VBOX_WITH_RC_RELEASE_LOGGING */ … … 829 835 * Get other RC entry points. 830 836 */ 831 int rc = PDMR3LdrGetSymbolRC(pVM, VMMGC_MAIN_MODULE_NAME, "CPUMGCResumeGuest", &pVM->vmm.s.pfnCPUMRCResumeGuest); 832 AssertReleaseMsgRC(rc, ("CPUMGCResumeGuest not found! rc=%Rra\n", rc)); 833 834 rc = PDMR3LdrGetSymbolRC(pVM, VMMGC_MAIN_MODULE_NAME, "CPUMGCResumeGuestV86", &pVM->vmm.s.pfnCPUMRCResumeGuestV86); 835 AssertReleaseMsgRC(rc, ("CPUMGCResumeGuestV86 not found! rc=%Rra\n", rc)); 837 if (!HMIsEnabled(pVM)) 838 { 839 int rc = PDMR3LdrGetSymbolRC(pVM, VMMGC_MAIN_MODULE_NAME, "CPUMGCResumeGuest", &pVM->vmm.s.pfnCPUMRCResumeGuest); 840 AssertReleaseMsgRC(rc, ("CPUMGCResumeGuest not found! rc=%Rra\n", rc)); 841 842 rc = PDMR3LdrGetSymbolRC(pVM, VMMGC_MAIN_MODULE_NAME, "CPUMGCResumeGuestV86", &pVM->vmm.s.pfnCPUMRCResumeGuestV86); 843 AssertReleaseMsgRC(rc, ("CPUMGCResumeGuestV86 not found! rc=%Rra\n", rc)); 844 } 836 845 837 846 /* … … 856 865 RTRCPTR RCPtrLoggerFlush = 0; 857 866 858 if ( pVM->vmm.s.pRCLoggerR3867 if ( pVM->vmm.s.pRCLoggerR3 859 868 #ifdef VBOX_WITH_RC_RELEASE_LOGGING 860 869 || pVM->vmm.s.pRCRelLoggerR3 … … 862 871 ) 863 872 { 873 Assert(!HMIsEnabled(pVM)); 864 874 rc = PDMR3LdrGetSymbolRC(pVM, VMMGC_MAIN_MODULE_NAME, "vmmGCLoggerFlush", &RCPtrLoggerFlush); 865 875 AssertReleaseMsgRC(rc, ("vmmGCLoggerFlush not found! rc=%Rra\n", rc)); … … 868 878 if (pVM->vmm.s.pRCLoggerR3) 869 879 { 880 Assert(!HMIsEnabled(pVM)); 870 881 RTRCPTR RCPtrLoggerWrapper = 0; 871 882 rc = PDMR3LdrGetSymbolRC(pVM, VMMGC_MAIN_MODULE_NAME, "vmmGCLoggerWrapper", &RCPtrLoggerWrapper); … … 881 892 if (pVM->vmm.s.pRCRelLoggerR3) 882 893 { 894 Assert(!HMIsEnabled(pVM)); 883 895 RTRCPTR RCPtrLoggerWrapper = 0; 884 896 rc = PDMR3LdrGetSymbolRC(pVM, VMMGC_MAIN_MODULE_NAME, "vmmGCRelLoggerWrapper", &RCPtrLoggerWrapper); -
trunk/src/VBox/VMM/include/PGMInternal.h
r45798 r45808 3894 3894 RT_C_DECLS_BEGIN 3895 3895 3896 #if defined(VBOX_STRICT) && defined(IN_RING3) 3897 int pgmLockDebug(PVM pVM, RT_SRC_POS_DECL); 3898 # define pgmLock(a_pVM) pgmLockDebug(a_pVM, RT_SRC_POS) 3899 #else 3896 3900 int pgmLock(PVM pVM); 3901 #endif 3897 3902 void pgmUnlock(PVM pVM); 3898 3903 /**
Note:
See TracChangeset
for help on using the changeset viewer.