VirtualBox

Changeset 27545 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Mar 19, 2010 3:52:10 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
59058
Message:

VMM/PGMPhys: provide default RC/R0 physical memory handler in case the caller doesn't specify one when registering

Location:
trunk/src/VBox/VMM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PGMHandler.cpp

    r26150 r27545  
    100100    if (!pszModR0)
    101101        pszModR0 = VMMR0_MAIN_MODULE_NAME;
     102    if (!pszHandlerR0)
     103        pszHandlerR0 = "pgmPhysHandlerRedirectToHC";
     104    if (!pszHandlerRC)
     105        pszHandlerRC = "pgmPhysHandlerRedirectToHC";
    102106    AssertPtrReturn(pfnHandlerR3, VERR_INVALID_POINTER);
    103107    AssertPtrReturn(pszHandlerR0, VERR_INVALID_POINTER);
  • trunk/src/VBox/VMM/PGMInternal.h

    r27544 r27545  
    33643364int             pgmPhysGCPhys2CCPtrInternal(PVM pVM, PPGMPAGE pPage, RTGCPHYS GCPhys, void **ppv);
    33653365int             pgmPhysGCPhys2CCPtrInternalReadOnly(PVM pVM, PPGMPAGE pPage, RTGCPHYS GCPhys, const void **ppv);
     3366VMMDECL(int)    pgmPhysHandlerRedirectToHC(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser);
    33663367VMMDECL(int)    pgmPhysRomWriteHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser);
    33673368#ifdef IN_RING3
  • trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp

    r27540 r27545  
    5353
    5454#ifndef IN_RING3
     55
     56/**
     57 * \#PF Handler callback for physical memory accesses without a RC/R0 handler.
     58 * This simply pushes everything to the HC handler.
     59 *
     60 * @returns VBox status code (appropritate for trap handling and GC return).
     61 * @param   pVM         VM Handle.
     62 * @param   uErrorCode  CPU Error code.
     63 * @param   pRegFrame   Trap register frame.
     64 * @param   pvFault     The fault address (cr2).
     65 * @param   GCPhysFault The GC physical address corresponding to pvFault.
     66 * @param   pvUser      User argument.
     67 */
     68VMMDECL(int) pgmPhysHandlerRedirectToHC(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser)
     69{
     70    return (uErrorCode & X86_TRAP_PF_RW) ? VINF_IOM_HC_MMIO_WRITE : VINF_IOM_HC_MMIO_READ;
     71}
     72
    5573
    5674/**
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette