Changeset 91928 in vbox
- Timestamp:
- Oct 21, 2021 9:09:51 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 147733
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/pdmdev.h
r91927 r91928 2424 2424 2425 2425 /** Current PDMDEVHLPR3 version number. */ 2426 #define PDM_DEVHLPR3_VERSION PDM_VERSION_MAKE_PP(0xffe7, 5 4, 0)2426 #define PDM_DEVHLPR3_VERSION PDM_VERSION_MAKE_PP(0xffe7, 55, 0) 2427 2427 2428 2428 /** … … 4660 4660 4661 4661 /** 4662 * Register a access handler for a physical range. 4663 * 4664 * @returns VBox status code. 4665 * @retval VINF_SUCCESS when successfully installed. 4666 * @retval VINF_PGM_GCPHYS_ALIASED when the shadow PTs could be updated because 4667 * the guest page aliased or/and mapped by multiple PTs. A CR3 sync has been 4668 * flagged together with a pool clearing. 4669 * @retval VERR_PGM_HANDLER_PHYSICAL_CONFLICT if the range conflicts with an existing 4670 * one. A debug assertion is raised. 4671 * 4672 * @param pDevIns The device instance. 4673 * @param GCPhys Start physical address. 4674 * @param GCPhysLast Last physical address. (inclusive) 4675 * @param hType The handler type registration handle. 4676 * @param pvUserR3 User argument to the R3 handler. 4677 * @param pvUserR0 User argument to the R0 handler. 4678 * @param pvUserRC User argument to the RC handler. This can be a value 4679 * less that 0x10000 or a (non-null) pointer that is 4680 * automatically relocated. 4681 * @param pszDesc Description of this handler. If NULL, the type 4682 * description will be used instead. 4683 */ 4684 DECLR3CALLBACKMEMBER(int, pfnPGMHandlerPhysicalRegister, (PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysLast, 4685 PGMPHYSHANDLERTYPE hType, RTR3PTR pvUserR3, RTR0PTR pvUserR0, 4686 RTRCPTR pvUserRC, R3PTRTYPE(const char *) pszDesc)); 4687 4688 /** 4689 * Deregister a physical page access handler. 4690 * 4691 * @returns VBox status code. 4692 * @param pDevIns The device instance. 4693 * @param GCPhys Start physical address. 4694 */ 4695 DECLR3CALLBACKMEMBER(int, pfnPGMHandlerPhysicalDeregister,(PPDMDEVINS pDevIns, RTGCPHYS GCPhys)); 4696 4697 /** 4698 * Temporarily turns off the access monitoring of a page within a monitored 4699 * physical write/all page access handler region. 4700 * 4701 * Use this when no further \#PFs are required for that page. Be aware that 4702 * a page directory sync might reset the flags, and turn on access monitoring 4703 * for the page. 4704 * 4705 * The caller must do required page table modifications. 4706 * 4707 * @returns VBox status code. 4708 * @param pDevIns The device instance. 4709 * @param GCPhys The start address of the access handler. This 4710 * must be a fully page aligned range or we risk 4711 * messing up other handlers installed for the 4712 * start and end pages. 4713 * @param GCPhysPage The physical address of the page to turn off 4714 * access monitoring for. 4715 */ 4716 DECLR3CALLBACKMEMBER(int, pfnPGMHandlerPhysicalPageTempOff,(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysPage)); 4717 4718 /** 4719 * Resets any modifications to individual pages in a physical page access 4720 * handler region. 4721 * 4722 * This is used in pair with PGMHandlerPhysicalPageTempOff(), 4723 * PGMHandlerPhysicalPageAliasMmio2() or PGMHandlerPhysicalPageAliasHC(). 4724 * 4725 * @returns VBox status code. 4726 * @param pDevIns The device instance. 4727 * @param GCPhys The start address of the handler regions, i.e. what you 4728 * passed to PGMR3HandlerPhysicalRegister(), 4729 * PGMHandlerPhysicalRegisterEx() or 4730 * PGMHandlerPhysicalModify(). 4731 */ 4732 DECLR3CALLBACKMEMBER(int, pfnPGMHandlerPhysicalReset,(PPDMDEVINS pDevIns, RTGCPHYS GCPhys)); 4733 4734 /** 4662 4735 * Registers the guest memory range that can be used for patching. 4663 4736 * … … 5610 5683 DECLR0CALLBACKMEMBER(int, pfnHpetSetUpContext,(PPDMDEVINS pDevIns, PPDMHPETREG pHpetReg, PCPDMHPETHLPR0 *ppHpetHlp)); 5611 5684 5685 /** 5686 * Temporarily turns off the access monitoring of a page within a monitored 5687 * physical write/all page access handler region. 5688 * 5689 * Use this when no further \#PFs are required for that page. Be aware that 5690 * a page directory sync might reset the flags, and turn on access monitoring 5691 * for the page. 5692 * 5693 * The caller must do required page table modifications. 5694 * 5695 * @returns VBox status code. 5696 * @param pDevIns The device instance. 5697 * @param GCPhys The start address of the access handler. This 5698 * must be a fully page aligned range or we risk 5699 * messing up other handlers installed for the 5700 * start and end pages. 5701 * @param GCPhysPage The physical address of the page to turn off 5702 * access monitoring for. 5703 */ 5704 DECLR0CALLBACKMEMBER(int, pfnPGMHandlerPhysicalPageTempOff,(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysPage)); 5705 5612 5706 /** Space reserved for future members. 5613 5707 * @{ */ … … 5633 5727 5634 5728 /** Current PDMDEVHLP version number. */ 5635 #define PDM_DEVHLPR0_VERSION PDM_VERSION_MAKE(0xffe5, 2 2, 0)5729 #define PDM_DEVHLPR0_VERSION PDM_VERSION_MAKE(0xffe5, 23, 0) 5636 5730 5637 5731 … … 8904 8998 8905 8999 /** 9000 * @copydoc PDMDEVHLPR3::pfnPGMHandlerPhysicalRegister 9001 */ 9002 DECLINLINE(int) PDMDevHlpPGMHandlerPhysicalRegister(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysLast, 9003 PGMPHYSHANDLERTYPE hType, RTR3PTR pvUserR3, RTR0PTR pvUserR0, 9004 RTRCPTR pvUserRC, R3PTRTYPE(const char *) pszDesc) 9005 { 9006 return pDevIns->pHlpR3->pfnPGMHandlerPhysicalRegister(pDevIns, GCPhys, GCPhysLast, hType, 9007 pvUserR3, pvUserR0, pvUserRC, pszDesc); 9008 } 9009 9010 /** 9011 * @copydoc PDMDEVHLPR3::pfnPGMHandlerPhysicalDeregister 9012 */ 9013 DECLINLINE(int) PDMDevHlpPGMHandlerPhysicalDeregister(PPDMDEVINS pDevIns, RTGCPHYS GCPhys) 9014 { 9015 return pDevIns->pHlpR3->pfnPGMHandlerPhysicalDeregister(pDevIns, GCPhys); 9016 } 9017 #endif 9018 9019 /** 9020 * @copydoc PDMDEVHLPR3::pfnPGMHandlerPhysicalPageTempOff 9021 */ 9022 DECLINLINE(int) PDMDevHlpPGMHandlerPhysicalPageTempOff(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysPage) 9023 { 9024 return pDevIns->CTX_SUFF(pHlp)->pfnPGMHandlerPhysicalPageTempOff(pDevIns, GCPhys, GCPhysPage); 9025 } 9026 9027 #ifdef IN_RING3 9028 /** 9029 * @copydoc PDMDEVHLPR3::pfnPGMHandlerPhysicalReset 9030 */ 9031 DECLINLINE(int) PDMDevHlpPGMHandlerPhysicalReset(PPDMDEVINS pDevIns, RTGCPHYS GCPhys) 9032 { 9033 return pDevIns->pHlpR3->pfnPGMHandlerPhysicalReset(pDevIns, GCPhys); 9034 } 9035 9036 /** 8906 9037 * @copydoc PDMDEVHLPR3::pfnVMMRegisterPatchMemory 8907 9038 */ -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA-cmd.cpp
r91507 r91928 592 592 for (uint32_t i = 0; i < pGbo->cDescriptors; ++i) 593 593 { 594 rc = P GMHandlerPhysicalRegister(PDMDevHlpGetVM(pSvgaR3State->pDevIns),595 pGbo->paDescriptors[i].GCPhys, pGbo->paDescriptors[i].GCPhys + pGbo->paDescriptors[i].cPages * PAGE_SIZE - 1,596 pSvgaR3State->hGboAccessHandlerType, pSvgaR3State->pDevIns, NIL_RTR0PTR, NIL_RTRCPTR, "VMSVGA GBO");594 rc = PDMDevHlpPGMHandlerPhysicalRegister(pSvgaR3State->pDevIns, 595 pGbo->paDescriptors[i].GCPhys, pGbo->paDescriptors[i].GCPhys + pGbo->paDescriptors[i].cPages * PAGE_SIZE - 1, 596 pSvgaR3State->hGboAccessHandlerType, pSvgaR3State->pDevIns, NIL_RTR0PTR, NIL_RTRCPTR, "VMSVGA GBO"); 597 597 AssertRC(rc); 598 598 } … … 611 611 for (uint32_t i = 0; i < pGbo->cDescriptors; ++i) 612 612 { 613 int rc = P GMHandlerPhysicalDeregister(PDMDevHlpGetVM(pSvgaR3State->pDevIns), pGbo->paDescriptors[i].GCPhys);613 int rc = PDMDevHlpPGMHandlerPhysicalDeregister(pSvgaR3State->pDevIns, pGbo->paDescriptors[i].GCPhys); 614 614 AssertRC(rc); 615 615 } -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA.cpp
r91920 r91928 2861 2861 for (uint32_t i = 0; i < pGMR->numDescriptors; i++) 2862 2862 { 2863 rc = P GMHandlerPhysicalRegister(PDMDevHlpGetVM(pDevIns),2864 pGMR->paDesc[i].GCPhys, pGMR->paDesc[i].GCPhys + pGMR->paDesc[i].numPages * PAGE_SIZE - 1,2865 pThis->svga.hGmrAccessHandlerType, pThis, NIL_RTR0PTR, NIL_RTRCPTR, "VMSVGA GMR");2863 rc = PDMDevHlpPGMHandlerPhysicalRegister(pDevIns, 2864 pGMR->paDesc[i].GCPhys, pGMR->paDesc[i].GCPhys + pGMR->paDesc[i].numPages * PAGE_SIZE - 1, 2865 pThis->svga.hGmrAccessHandlerType, pThis, NIL_RTR0PTR, NIL_RTRCPTR, "VMSVGA GMR"); 2866 2866 AssertRC(rc); 2867 2867 } … … 2878 2878 for (uint32_t i = 0; i < pGMR->numDescriptors; i++) 2879 2879 { 2880 int rc = P GMHandlerPhysicalDeregister(PDMDevHlpGetVM(pDevIns), pGMR->paDesc[i].GCPhys);2880 int rc = PDMDevHlpPGMHandlerPhysicalDeregister(pDevIns, pGMR->paDesc[i].GCPhys); 2881 2881 AssertRC(rc); 2882 2882 } … … 2897 2897 for (uint32_t j = 0; j < pGMR->numDescriptors; j++) 2898 2898 { 2899 int rc = P GMHandlerPhysicalReset(PDMDevHlpGetVM(pDevIns), pGMR->paDesc[j].GCPhys);2899 int rc = PDMDevHlpPGMHandlerPhysicalReset(pDevIns, pGMR->paDesc[j].GCPhys); 2900 2900 AssertRC(rc); 2901 2901 } … … 4580 4580 { 4581 4581 # ifdef VMSVGA_USE_FIFO_ACCESS_HANDLER 4582 int rc2 = P GMHandlerPhysicalReset(PDMDevHlpGetVM(pDevIns), pThis->svga.GCPhysFIFO);4582 int rc2 = PDMDevHlpPGMHandlerPhysicalReset(pDevIns, pThis->svga.GCPhysFIFO); 4583 4583 AssertRC(rc2); /* No break. Racing EMTs unmapping and remapping the region. */ 4584 4584 # endif … … 5196 5196 if (RT_SUCCESS(rc)) 5197 5197 { 5198 rc = P GMHandlerPhysicalRegister(PDMDevHlpGetVM(pDevIns), GCPhysAddress,5198 rc = PDMDevHlpPGMHandlerPhysicalRegister(pDevIns, GCPhysAddress, 5199 5199 # ifdef DEBUG_FIFO_ACCESS 5200 GCPhysAddress + (pThis->svga.cbFIFO - 1),5200 GCPhysAddress + (pThis->svga.cbFIFO - 1), 5201 5201 # else 5202 GCPhysAddress + PAGE_SIZE - 1,5202 GCPhysAddress + PAGE_SIZE - 1, 5203 5203 # endif 5204 pThis->svga.hFifoAccessHandlerType, pThis, NIL_RTR0PTR, NIL_RTRCPTR,5205 "VMSVGA FIFO");5204 pThis->svga.hFifoAccessHandlerType, pThis, NIL_RTR0PTR, NIL_RTRCPTR, 5205 "VMSVGA FIFO"); 5206 5206 AssertRC(rc); 5207 5207 } … … 5218 5218 Assert(pThis->svga.GCPhysFIFO); 5219 5219 # if defined(VMSVGA_USE_FIFO_ACCESS_HANDLER) || defined(DEBUG_FIFO_ACCESS) 5220 rc = P GMHandlerPhysicalDeregister(PDMDevHlpGetVM(pDevIns), pThis->svga.GCPhysFIFO);5220 rc = PDMDevHlpPGMHandlerPhysicalDeregister(pDevIns, pThis->svga.GCPhysFIFO); 5221 5221 AssertRC(rc); 5222 5222 # else -
trunk/src/VBox/Devices/Graphics/DevVGA.cpp
r90447 r91928 3626 3626 static VBOXSTRICTRC vgaLFBAccess(PVMCC pVM, PPDMDEVINS pDevIns, PVGASTATE pThis, RTGCPHYS GCPhys, RTGCPTR GCPtr) 3627 3627 { 3628 RT_NOREF(pVM); 3629 3628 3630 VBOXSTRICTRC rc = PDMDevHlpCritSectEnter(pDevIns, &pThis->CritSect, VINF_EM_RAW_EMULATE_INSTR); 3629 3631 if (rc == VINF_SUCCESS) … … 3640 3642 * ASSUME: the guest always maps video memory RW. 3641 3643 */ 3642 rc = P GMHandlerPhysicalPageTempOff(pVM, pThis->GCPhysVRAM, GCPhys);3644 rc = PDMDevHlpPGMHandlerPhysicalPageTempOff(pDevIns, pThis->GCPhysVRAM, GCPhys); 3643 3645 if (RT_SUCCESS(rc)) 3644 3646 { … … 4785 4787 if (pThis->fHasDirtyBits && pThis->GCPhysVRAM && pThis->GCPhysVRAM != NIL_RTGCPHYS) 4786 4788 { 4787 P GMHandlerPhysicalReset(PDMDevHlpGetVM(pDevIns), pThis->GCPhysVRAM);4789 PDMDevHlpPGMHandlerPhysicalReset(pDevIns, pThis->GCPhysVRAM); 4788 4790 pThis->fHasDirtyBits = false; 4789 4791 } … … 4814 4816 /* The dirty bits array has been just cleared, reset handlers as well. */ 4815 4817 if (pThis->GCPhysVRAM && pThis->GCPhysVRAM != NIL_RTGCPHYS) 4816 P GMHandlerPhysicalReset(PDMDevHlpGetVM(pDevIns), pThis->GCPhysVRAM);4818 PDMDevHlpPGMHandlerPhysicalReset(pDevIns, pThis->GCPhysVRAM); 4817 4819 } 4818 4820 if (pThis->fRemappedVGA) … … 5499 5501 { 5500 5502 Assert(pThis->GCPhysVRAM); 5501 int rc = P GMHandlerPhysicalRegister(PDMDevHlpGetVM(pDevIns),5502 pThis->GCPhysVRAM, pThis->GCPhysVRAM + (cbFrameBuffer - 1),5503 pThis->hLfbAccessHandlerType, pDevIns, pDevIns->pDevInsR0RemoveMe,5504 pDevIns->pDevInsForRC, "VGA LFB");5503 int rc = PDMDevHlpPGMHandlerPhysicalRegister(pDevIns, 5504 pThis->GCPhysVRAM, pThis->GCPhysVRAM + (cbFrameBuffer - 1), 5505 pThis->hLfbAccessHandlerType, pDevIns, pDevIns->pDevInsR0RemoveMe, 5506 pDevIns->pDevInsForRC, "VGA LFB"); 5505 5507 5506 5508 AssertRC(rc); … … 5515 5517 { 5516 5518 Assert(pThis->GCPhysVRAM); 5517 int rc = P GMHandlerPhysicalDeregister(PDMDevHlpGetVM(pDevIns), pThis->GCPhysVRAM);5519 int rc = PDMDevHlpPGMHandlerPhysicalDeregister(pDevIns, pThis->GCPhysVRAM); 5518 5520 AssertRC(rc); 5519 5521 return rc; … … 5569 5571 # endif 5570 5572 { 5571 rc = P GMHandlerPhysicalRegister(PDMDevHlpGetVM(pDevIns), GCPhysAddress, GCPhysAddress + (pThis->vram_size - 1),5572 pThis->hLfbAccessHandlerType, pDevIns, pDevIns->pDevInsR0RemoveMe,5573 pDevIns->pDevInsForRC, "VGA LFB");5573 rc = PDMDevHlpPGMHandlerPhysicalRegister(pDevIns, GCPhysAddress, GCPhysAddress + (pThis->vram_size - 1), 5574 pThis->hLfbAccessHandlerType, pDevIns, pDevIns->pDevInsR0RemoveMe, 5575 pDevIns->pDevInsForRC, "VGA LFB"); 5574 5576 AssertLogRelRC(rc); 5575 5577 } … … 5596 5598 # endif 5597 5599 { 5598 rc = P GMHandlerPhysicalDeregister(PDMDevHlpGetVM(pDevIns), pThis->GCPhysVRAM);5600 rc = PDMDevHlpPGMHandlerPhysicalDeregister(pDevIns, pThis->GCPhysVRAM); 5599 5601 AssertRC(rc); 5600 5602 } … … 6053 6055 && pThis->GCPhysVRAM != NIL_RTGCPHYS) 6054 6056 { 6055 int rc = P GMHandlerPhysicalReset(PDMDevHlpGetVM(pDevIns), pThis->GCPhysVRAM);6057 int rc = PDMDevHlpPGMHandlerPhysicalReset(pDevIns, pThis->GCPhysVRAM); 6056 6058 AssertRC(rc); 6057 6059 } -
trunk/src/VBox/VMM/VMMR0/PDMR0DevHlp.cpp
r91906 r91928 1317 1317 LogFlow(("pdmR0DevHlp_HpetSetUpContext: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, VINF_SUCCESS)); 1318 1318 return VINF_SUCCESS; 1319 } 1320 1321 1322 /** @interface_method_impl{PDMDEVHLPR0,pfnPGMHandlerPhysicalPageTempOff} */ 1323 static DECLCALLBACK(int) pdmR0DevHlp_PGMHandlerPhysicalPageTempOff(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysPage) 1324 { 1325 PDMDEV_ASSERT_DEVINS(pDevIns); 1326 LogFlow(("pdmR0DevHlp_PGMHandlerPhysicalPageTempOff: caller='%s'/%d: GCPhys=%RGp\n", pDevIns->pReg->szName, pDevIns->iInstance, GCPhys)); 1327 1328 int rc = PGMHandlerPhysicalPageTempOff(pDevIns->Internal.s.pGVM, GCPhys, GCPhysPage); 1329 1330 Log(("pdmR0DevHlp_PGMHandlerPhysicalPageTempOff: caller='%s'/%d: returns %Rrc\n", 1331 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 1332 return rc; 1319 1333 } 1320 1334 … … 1412 1426 pdmR0DevHlp_IoApicSetUpContext, 1413 1427 pdmR0DevHlp_HpetSetUpContext, 1428 pdmR0DevHlp_PGMHandlerPhysicalPageTempOff, 1414 1429 NULL /*pfnReserved1*/, 1415 1430 NULL /*pfnReserved2*/, … … 1519 1534 pdmR0DevHlp_IoApicSetUpContext, 1520 1535 pdmR0DevHlp_HpetSetUpContext, 1536 pdmR0DevHlp_PGMHandlerPhysicalPageTempOff, 1521 1537 NULL /*pfnReserved1*/, 1522 1538 NULL /*pfnReserved2*/, -
trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp
r91926 r91928 763 763 764 764 Log(("pdmR3DevHlp_PGMHandlerPhysicalTypeRegister: caller='%s'/%d: returns %Rrc\n", 765 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 766 return rc; 767 } 768 769 770 /** @interface_method_impl{PDMDEVHLPR3,pfnPGMHandlerPhysicalRegister} */ 771 static DECLCALLBACK(int) pdmR3DevHlp_PGMHandlerPhysicalRegister(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysLast, 772 PGMPHYSHANDLERTYPE hType, RTR3PTR pvUserR3, RTR0PTR pvUserR0, 773 RTRCPTR pvUserRC, R3PTRTYPE(const char *) pszDesc) 774 { 775 PDMDEV_ASSERT_DEVINS(pDevIns); 776 PVM pVM = pDevIns->Internal.s.pVMR3; 777 LogFlow(("pdmR3DevHlp_PGMHandlerPhysicalRegister: caller='%s'/%d: GCPhys=%RGp GCPhysLast=%RGp hType=%u pvUserR3=%p pvUserR0=%llx pvUsereRC=%llx pszDesc=%p:{%s}\n", 778 pDevIns->pReg->szName, pDevIns->iInstance, GCPhys, GCPhysLast, hType, pvUserR3, pvUserR0, pvUserRC, pszDesc, pszDesc)); 779 780 int rc = PGMHandlerPhysicalRegister(pVM, GCPhys, GCPhysLast, hType, pvUserR3, pvUserR0, pvUserRC, pszDesc); 781 782 Log(("pdmR3DevHlp_PGMHandlerPhysicalRegister: caller='%s'/%d: returns %Rrc\n", 783 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 784 return rc; 785 } 786 787 788 /** @interface_method_impl{PDMDEVHLPR3,pfnPGMHandlerPhysicalDeregister} */ 789 static DECLCALLBACK(int) pdmR3DevHlp_PGMHandlerPhysicalDeregister(PPDMDEVINS pDevIns, RTGCPHYS GCPhys) 790 { 791 PDMDEV_ASSERT_DEVINS(pDevIns); 792 PVM pVM = pDevIns->Internal.s.pVMR3; 793 LogFlow(("pdmR3DevHlp_PGMHandlerPhysicalDeregister: caller='%s'/%d: GCPhys=%RGp\n", pDevIns->pReg->szName, pDevIns->iInstance, GCPhys)); 794 795 int rc = PGMHandlerPhysicalDeregister(pVM, GCPhys); 796 797 Log(("pdmR3DevHlp_PGMHandlerPhysicalDeregister: caller='%s'/%d: returns %Rrc\n", 798 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 799 return rc; 800 } 801 802 803 /** @interface_method_impl{PDMDEVHLPR3,pfnPGMHandlerPhysicalPageTempOff} */ 804 static DECLCALLBACK(int) pdmR3DevHlp_PGMHandlerPhysicalPageTempOff(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysPage) 805 { 806 PDMDEV_ASSERT_DEVINS(pDevIns); 807 PVM pVM = pDevIns->Internal.s.pVMR3; 808 LogFlow(("pdmR3DevHlp_PGMHandlerPhysicalPageTempOff: caller='%s'/%d: GCPhys=%RGp\n", pDevIns->pReg->szName, pDevIns->iInstance, GCPhys)); 809 810 int rc = PGMHandlerPhysicalPageTempOff(pVM, GCPhys, GCPhysPage); 811 812 Log(("pdmR3DevHlp_PGMHandlerPhysicalPageTempOff: caller='%s'/%d: returns %Rrc\n", 813 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 814 return rc; 815 } 816 817 818 /** @interface_method_impl{PDMDEVHLPR3,pfnPGMHandlerPhysicalReset} */ 819 static DECLCALLBACK(int) pdmR3DevHlp_PGMHandlerPhysicalReset(PPDMDEVINS pDevIns, RTGCPHYS GCPhys) 820 { 821 PDMDEV_ASSERT_DEVINS(pDevIns); 822 PVM pVM = pDevIns->Internal.s.pVMR3; 823 LogFlow(("pdmR3DevHlp_PGMHandlerPhysicalReset: caller='%s'/%d: GCPhys=%RGp\n", pDevIns->pReg->szName, pDevIns->iInstance, GCPhys)); 824 825 int rc = PGMHandlerPhysicalReset(pVM, GCPhys); 826 827 Log(("pdmR3DevHlp_PGMHandlerPhysicalReset: caller='%s'/%d: returns %Rrc\n", 765 828 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 766 829 return rc; … … 4845 4908 pdmR3DevHlp_QueryGenericUserObject, 4846 4909 pdmR3DevHlp_PGMHandlerPhysicalTypeRegister, 4910 pdmR3DevHlp_PGMHandlerPhysicalRegister, 4911 pdmR3DevHlp_PGMHandlerPhysicalDeregister, 4912 pdmR3DevHlp_PGMHandlerPhysicalPageTempOff, 4913 pdmR3DevHlp_PGMHandlerPhysicalReset, 4847 4914 pdmR3DevHlp_VMMRegisterPatchMemory, 4848 4915 pdmR3DevHlp_VMMDeregisterPatchMemory, … … 5220 5287 pdmR3DevHlp_QueryGenericUserObject, 5221 5288 pdmR3DevHlp_PGMHandlerPhysicalTypeRegister, 5289 pdmR3DevHlp_PGMHandlerPhysicalRegister, 5290 pdmR3DevHlp_PGMHandlerPhysicalDeregister, 5291 pdmR3DevHlp_PGMHandlerPhysicalPageTempOff, 5292 pdmR3DevHlp_PGMHandlerPhysicalReset, 5222 5293 pdmR3DevHlp_VMMRegisterPatchMemory, 5223 5294 pdmR3DevHlp_VMMDeregisterPatchMemory, … … 5382 5453 PDMDEV_ASSERT_DEVINS(pDevIns); 5383 5454 RT_NOREF(enmKind, pfnHandlerR3, pszHandlerR0, pszPfHandlerR0, pszHandlerRC, pszPfHandlerRC, pszDesc, phType); 5455 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", 5456 pDevIns->pReg->szName, pDevIns->iInstance)); 5457 return VERR_ACCESS_DENIED; 5458 } 5459 5460 5461 /** @interface_method_impl{PDMDEVHLPR3,pfnPGMHandlerPhysicalRegister} */ 5462 static DECLCALLBACK(int) pdmR3DevHlp_Untrusted_PGMHandlerPhysicalRegister(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysLast, 5463 PGMPHYSHANDLERTYPE hType, RTR3PTR pvUserR3, RTR0PTR pvUserR0, 5464 RTRCPTR pvUserRC, R3PTRTYPE(const char *) pszDesc) 5465 { 5466 PDMDEV_ASSERT_DEVINS(pDevIns); 5467 RT_NOREF(GCPhys, GCPhysLast, hType, pvUserR3, pvUserR0, pvUserRC, pszDesc); 5468 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", 5469 pDevIns->pReg->szName, pDevIns->iInstance)); 5470 return VERR_ACCESS_DENIED; 5471 } 5472 5473 5474 /** @interface_method_impl{PDMDEVHLPR3,pfnPGMHandlerPhysicalDeregister} */ 5475 static DECLCALLBACK(int) pdmR3DevHlp_Untrusted_PGMHandlerPhysicalDeregister(PPDMDEVINS pDevIns, RTGCPHYS GCPhys) 5476 { 5477 PDMDEV_ASSERT_DEVINS(pDevIns); 5478 RT_NOREF(GCPhys); 5479 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", 5480 pDevIns->pReg->szName, pDevIns->iInstance)); 5481 return VERR_ACCESS_DENIED; 5482 } 5483 5484 5485 /** @interface_method_impl{PDMDEVHLPR3,pfnPGMHandlerPhysicalPageTempOff} */ 5486 static DECLCALLBACK(int) pdmR3DevHlp_Untrusted_PGMHandlerPhysicalPageTempOff(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS GCPhysPage) 5487 { 5488 PDMDEV_ASSERT_DEVINS(pDevIns); 5489 RT_NOREF(GCPhys, GCPhysPage); 5490 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", 5491 pDevIns->pReg->szName, pDevIns->iInstance)); 5492 return VERR_ACCESS_DENIED; 5493 } 5494 5495 5496 /** @interface_method_impl{PDMDEVHLPR3,pfnPGMHandlerPhysicalReset} */ 5497 static DECLCALLBACK(int) pdmR3DevHlp_Untrusted_PGMHandlerPhysicalReset(PPDMDEVINS pDevIns, RTGCPHYS GCPhys) 5498 { 5499 PDMDEV_ASSERT_DEVINS(pDevIns); 5500 RT_NOREF(GCPhys); 5384 5501 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", 5385 5502 pDevIns->pReg->szName, pDevIns->iInstance)); … … 5820 5937 pdmR3DevHlp_Untrusted_QueryGenericUserObject, 5821 5938 pdmR3DevHlp_Untrusted_PGMHandlerPhysicalTypeRegister, 5939 pdmR3DevHlp_Untrusted_PGMHandlerPhysicalRegister, 5940 pdmR3DevHlp_Untrusted_PGMHandlerPhysicalDeregister, 5941 pdmR3DevHlp_Untrusted_PGMHandlerPhysicalPageTempOff, 5942 pdmR3DevHlp_Untrusted_PGMHandlerPhysicalReset, 5822 5943 pdmR3DevHlp_Untrusted_VMMRegisterPatchMemory, 5823 5944 pdmR3DevHlp_Untrusted_VMMDeregisterPatchMemory,
Note:
See TracChangeset
for help on using the changeset viewer.