- Timestamp:
- Apr 17, 2015 1:38:38 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/pgm.h
r53615 r55331 355 355 VMMDECL(int) PGMHandlerPhysicalModify(PVM pVM, RTGCPHYS GCPhysCurrent, RTGCPHYS GCPhys, RTGCPHYS GCPhysLast); 356 356 VMMDECL(int) PGMHandlerPhysicalDeregister(PVM pVM, RTGCPHYS GCPhys); 357 VMMDECL(int) PGMHandlerPhysicalChangeCallbacks(PVM pVM, RTGCPHYS GCPhys, 358 R3PTRTYPE(PFNPGMR3PHYSHANDLER) pfnHandlerR3, RTR3PTR pvUserR3, 359 R0PTRTYPE(PFNPGMR0PHYSHANDLER) pfnHandlerR0, RTR0PTR pvUserR0, 360 RCPTRTYPE(PFNPGMRCPHYSHANDLER) pfnHandlerRC, RTRCPTR pvUserRC, 361 R3PTRTYPE(const char *) pszDesc); 357 VMMDECL(int) PGMHandlerPhysicalChangeUserArgs(PVM pVM, RTGCPHYS GCPhys, RTR3PTR pvUserR3, RTR0PTR pvUserR0, RTRCPTR pvUserRC); 362 358 VMMDECL(int) PGMHandlerPhysicalSplit(PVM pVM, RTGCPHYS GCPhys, RTGCPHYS GCPhysSplit); 363 359 VMMDECL(int) PGMHandlerPhysicalJoin(PVM pVM, RTGCPHYS GCPhys1, RTGCPHYS GCPhys2); -
trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp
r47786 r55331 642 642 643 643 /** 644 * Changes the callbacks associated with a physical access handler. 644 * Changes the user callback arguments associated with a physical access 645 * handler. 645 646 * 646 647 * @returns VBox status code. 647 648 * @param pVM Pointer to the VM. 648 * @param GCPhys Start physical address. 649 * @param pfnHandlerR3 The R3 handler. 649 * @param GCPhys Start physical address of the handler. 650 650 * @param pvUserR3 User argument to the R3 handler. 651 * @param pfnHandlerR0 The R0 handler.652 651 * @param pvUserR0 User argument to the R0 handler. 653 * @param pfnHandlerRC The RC handler.654 652 * @param pvUserRC User argument to the RC handler. Values larger or 655 653 * equal to 0x10000 will be relocated automatically. 656 * @param pszDesc Pointer to description string. This must not be freed. 657 */ 658 VMMDECL(int) PGMHandlerPhysicalChangeCallbacks(PVM pVM, RTGCPHYS GCPhys, 659 R3PTRTYPE(PFNPGMR3PHYSHANDLER) pfnHandlerR3, RTR3PTR pvUserR3, 660 R0PTRTYPE(PFNPGMR0PHYSHANDLER) pfnHandlerR0, RTR0PTR pvUserR0, 661 RCPTRTYPE(PFNPGMRCPHYSHANDLER) pfnHandlerRC, RTRCPTR pvUserRC, 662 R3PTRTYPE(const char *) pszDesc) 663 { 664 /* 665 * Get the handler. 654 */ 655 VMMDECL(int) PGMHandlerPhysicalChangeUserArgs(PVM pVM, RTGCPHYS GCPhys, RTR3PTR pvUserR3, RTR0PTR pvUserR0, RTRCPTR pvUserRC) 656 { 657 /* 658 * Find the handler. 666 659 */ 667 660 int rc = VINF_SUCCESS; … … 671 664 { 672 665 /* 673 * Change callbacks.666 * Change arguments. 674 667 */ 675 pCur->pfnHandlerR3 = pfnHandlerR3; 676 pCur->pvUserR3 = pvUserR3; 677 pCur->pfnHandlerR0 = pfnHandlerR0; 678 pCur->pvUserR0 = pvUserR0; 679 pCur->pfnHandlerRC = pfnHandlerRC; 680 pCur->pvUserRC = pvUserRC; 681 pCur->pszDesc = pszDesc; 668 pCur->pvUserR3 = pvUserR3; 669 pCur->pvUserR0 = pvUserR0; 670 pCur->pvUserRC = pvUserRC; 682 671 } 683 672 else -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r50819 r55331 2583 2583 PPGMPOOLPAGE pNewHead = &pPool->aPages[pPage->iMonitoredNext]; 2584 2584 pNewHead->iMonitoredPrev = NIL_PGMPOOL_IDX; 2585 rc = PGMHandlerPhysicalChangeCallbacks(pVM, pPage->GCPhys & ~(RTGCPHYS)PAGE_OFFSET_MASK, 2586 pPool->pfnAccessHandlerR3, MMHyperCCToR3(pVM, pNewHead), 2587 pPool->pfnAccessHandlerR0, MMHyperCCToR0(pVM, pNewHead), 2588 pPool->pfnAccessHandlerRC, MMHyperCCToRC(pVM, pNewHead), 2589 pPool->pszAccessHandler); 2585 rc = PGMHandlerPhysicalChangeUserArgs(pVM, pPage->GCPhys & ~(RTGCPHYS)PAGE_OFFSET_MASK, MMHyperCCToR3(pVM, pNewHead), 2586 MMHyperCCToR0(pVM, pNewHead), MMHyperCCToRC(pVM, pNewHead)); 2587 2590 2588 AssertFatalRCSuccess(rc); 2591 2589 pPage->iMonitoredNext = NIL_PGMPOOL_IDX;
Note:
See TracChangeset
for help on using the changeset viewer.