VirtualBox

Changeset 80673 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
Sep 9, 2019 2:02:22 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
133205
Message:

PDM/DevHlp: Need to wrap the crit sect methods so we can pass on pVM to the crit sect code later, as we won't be able to sore pointers in the internal critical section data anymore. bugref:9218

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp

    r80641 r80673  
    658658}
    659659
     660
    660661/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectGetNop} */
    661662static DECLCALLBACK(PPDMCRITSECT) pdmR0DevHlp_CritSectGetNop(PPDMDEVINS pDevIns)
     
    668669    return pCritSect;
    669670}
     671
    670672
    671673/** @interface_method_impl{PDMDEVHLPR0,pfnSetDeviceCritSect} */
     
    699701}
    700702
     703
     704/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectEnter} */
     705static DECLCALLBACK(int)      pdmR0DevHlp_CritSectEnter(PPDMDEVINS pDevIns, PPDMCRITSECT pCritSect, int rcBusy)
     706{
     707    PDMDEV_ASSERT_DEVINS(pDevIns);
     708    RT_NOREF(pDevIns); /** @todo pass pDevIns->Internal.s.pGVM to the crit sect code.   */
     709    return PDMCritSectEnter(pCritSect, rcBusy);
     710}
     711
     712
     713/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectEnterDebug} */
     714static DECLCALLBACK(int)      pdmR0DevHlp_CritSectEnterDebug(PPDMDEVINS pDevIns, PPDMCRITSECT pCritSect, int rcBusy, RTHCUINTPTR uId, RT_SRC_POS_DECL)
     715{
     716    PDMDEV_ASSERT_DEVINS(pDevIns);
     717    RT_NOREF(pDevIns); /** @todo pass pDevIns->Internal.s.pGVM to the crit sect code.   */
     718    return PDMCritSectEnterDebug(pCritSect, rcBusy, uId, RT_SRC_POS_ARGS);
     719}
     720
     721
     722/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectTryEnter} */
     723static DECLCALLBACK(int)      pdmR0DevHlp_CritSectTryEnter(PPDMDEVINS pDevIns, PPDMCRITSECT pCritSect)
     724{
     725    PDMDEV_ASSERT_DEVINS(pDevIns);
     726    RT_NOREF(pDevIns); /** @todo pass pDevIns->Internal.s.pGVM to the crit sect code.   */
     727    return PDMCritSectTryEnter(pCritSect);
     728}
     729
     730
     731/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectTryEnterDebug} */
     732static DECLCALLBACK(int)      pdmR0DevHlp_CritSectTryEnterDebug(PPDMDEVINS pDevIns, PPDMCRITSECT pCritSect, RTHCUINTPTR uId, RT_SRC_POS_DECL)
     733{
     734    PDMDEV_ASSERT_DEVINS(pDevIns);
     735    RT_NOREF(pDevIns); /** @todo pass pDevIns->Internal.s.pGVM to the crit sect code.   */
     736    return PDMCritSectTryEnterDebug(pCritSect, uId, RT_SRC_POS_ARGS);
     737}
     738
     739
     740/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectLeave} */
     741static DECLCALLBACK(int)      pdmR0DevHlp_CritSectLeave(PPDMDEVINS pDevIns, PPDMCRITSECT pCritSect)
     742{
     743    PDMDEV_ASSERT_DEVINS(pDevIns);
     744    RT_NOREF(pDevIns); /** @todo pass pDevIns->Internal.s.pGVM to the crit sect code.   */
     745    return PDMCritSectLeave(pCritSect);
     746}
     747
     748
     749/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectIsOwner} */
     750static DECLCALLBACK(bool)     pdmR0DevHlp_CritSectIsOwner(PPDMDEVINS pDevIns, PCPDMCRITSECT pCritSect)
     751{
     752    PDMDEV_ASSERT_DEVINS(pDevIns);
     753    RT_NOREF(pDevIns); /** @todo pass pDevIns->Internal.s.pGVM to the crit sect code.   */
     754    return PDMCritSectIsOwner(pCritSect);
     755}
     756
     757
     758/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectIsOwnerEx} */
     759static DECLCALLBACK(bool)     pdmR0DevHlp_CritSectIsOwnerEx(PPDMDEVINS pDevIns, PCPDMCRITSECT pCritSect, PVMCPUCC pVCpu)
     760{
     761    PDMDEV_ASSERT_DEVINS(pDevIns);
     762    RT_NOREF(pDevIns); /** @todo pass pDevIns->Internal.s.pGVM to the crit sect code.   */
     763    return PDMCritSectIsOwnerEx(pCritSect, pVCpu);
     764}
     765
     766
     767/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectIsInitialized} */
     768static DECLCALLBACK(bool)     pdmR0DevHlp_CritSectIsInitialized(PPDMDEVINS pDevIns, PCPDMCRITSECT pCritSect)
     769{
     770    PDMDEV_ASSERT_DEVINS(pDevIns);
     771    RT_NOREF(pDevIns);
     772    return PDMCritSectIsInitialized(pCritSect);
     773}
     774
     775
     776/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectHasWaiters} */
     777static DECLCALLBACK(bool)     pdmR0DevHlp_CritSectHasWaiters(PPDMDEVINS pDevIns, PCPDMCRITSECT pCritSect)
     778{
     779    PDMDEV_ASSERT_DEVINS(pDevIns);
     780    RT_NOREF(pDevIns);
     781    return PDMCritSectHasWaiters(pCritSect);
     782}
     783
     784
     785/** @interface_method_impl{PDMDEVHLPR0,pfnCritSectGetRecursion} */
     786static DECLCALLBACK(uint32_t) pdmR0DevHlp_CritSectGetRecursion(PPDMDEVINS pDevIns, PCPDMCRITSECT pCritSect)
     787{
     788    PDMDEV_ASSERT_DEVINS(pDevIns);
     789    RT_NOREF(pDevIns);
     790    return PDMCritSectGetRecursion(pCritSect);
     791}
     792
     793
    701794/** @interface_method_impl{PDMDEVHLPR0,pfnDBGFTraceBuf} */
    702795static DECLCALLBACK(RTTRACEBUF) pdmR0DevHlp_DBGFTraceBuf(PPDMDEVINS pDevIns)
     
    704797    PDMDEV_ASSERT_DEVINS(pDevIns);
    705798    RTTRACEBUF hTraceBuf = pDevIns->Internal.s.pGVM->hTraceBufR0;
    706     LogFlow(("pdmR3DevHlp_DBGFTraceBuf: caller='%p'/%d: returns %p\n", pDevIns, pDevIns->iInstance, hTraceBuf));
     799    LogFlow(("pdmR0DevHlp_DBGFTraceBuf: caller='%p'/%d: returns %p\n", pDevIns, pDevIns->iInstance, hTraceBuf));
    707800    return hTraceBuf;
    708801}
     
    756849    pdmR0DevHlp_CritSectGetNop,
    757850    pdmR0DevHlp_SetDeviceCritSect,
    758     PDMCritSectEnter,
    759     PDMCritSectEnterDebug,
    760     PDMCritSectTryEnter,
    761     PDMCritSectTryEnterDebug,
    762     PDMCritSectLeave,
    763     PDMCritSectIsOwner,
    764     PDMCritSectIsInitialized,
    765     PDMCritSectHasWaiters,
    766     PDMCritSectGetRecursion,
     851    pdmR0DevHlp_CritSectEnter,
     852    pdmR0DevHlp_CritSectEnterDebug,
     853    pdmR0DevHlp_CritSectTryEnter,
     854    pdmR0DevHlp_CritSectTryEnterDebug,
     855    pdmR0DevHlp_CritSectLeave,
     856    pdmR0DevHlp_CritSectIsOwner,
     857    pdmR0DevHlp_CritSectIsInitialized,
     858    pdmR0DevHlp_CritSectHasWaiters,
     859    pdmR0DevHlp_CritSectGetRecursion,
    767860    pdmR0DevHlp_DBGFTraceBuf,
    768861    NULL /*pfnReserved1*/,
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