VirtualBox

Changeset 90346 in vbox for trunk/include


Ignore:
Timestamp:
Jul 26, 2021 7:55:53 PM (4 years ago)
Author:
vboxsync
Message:
  • VMM: Pass pVM to PDMCritSect APIs. bugref:9218 bugref:10074
  • DrvNetShaper: Do bandwidth allocation via PDMDrvHlp. bugref:10074
Location:
trunk/include/VBox/vmm
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/pdmcritsect.h

    r82968 r90346  
    5757VMMR3_INT_DECL(int)     PDMR3CritSectBothTerm(PVM pVM);
    5858VMMR3_INT_DECL(void)    PDMR3CritSectLeaveAll(PVM pVM);
    59 VMM_INT_DECL(void)      PDMCritSectBothFF(PVMCPUCC pVCpu);
     59VMM_INT_DECL(void)      PDMCritSectBothFF(PVMCC pVM, PVMCPUCC pVCpu);
    6060
    6161
     
    6464VMMR3DECL(int)      PDMR3CritSectInit(PVM pVM, PPDMCRITSECT pCritSect, RT_SRC_POS_DECL,
    6565                                      const char *pszNameFmt, ...) RT_IPRT_FORMAT_ATTR(6, 7);
    66 VMMR3DECL(int)      PDMR3CritSectEnterEx(PPDMCRITSECT pCritSect, bool fCallRing3);
     66VMMR3DECL(int)      PDMR3CritSectEnterEx(PVM pVM, PPDMCRITSECT pCritSect, bool fCallRing3);
    6767VMMR3DECL(bool)     PDMR3CritSectYield(PVM pVM, PPDMCRITSECT pCritSect);
    6868VMMR3DECL(const char *) PDMR3CritSectName(PCPDMCRITSECT pCritSect);
     
    7272#endif
    7373
    74 VMMDECL(int)        PDMCritSectEnter(PPDMCRITSECT pCritSect, int rcBusy);
    75 VMMDECL(int)        PDMCritSectEnterDebug(PPDMCRITSECT pCritSect, int rcBusy, RTHCUINTPTR uId, RT_SRC_POS_DECL);
    76 VMMDECL(int)        PDMCritSectTryEnter(PPDMCRITSECT pCritSect);
    77 VMMDECL(int)        PDMCritSectTryEnterDebug(PPDMCRITSECT pCritSect, RTHCUINTPTR uId, RT_SRC_POS_DECL);
    78 VMMDECL(int)        PDMCritSectLeave(PPDMCRITSECT pCritSect);
     74VMMDECL(int)        PDMCritSectEnter(PVMCC pVM, PPDMCRITSECT pCritSect, int rcBusy);
     75VMMDECL(int)        PDMCritSectEnterDebug(PVMCC pVM, PPDMCRITSECT pCritSect, int rcBusy, RTHCUINTPTR uId, RT_SRC_POS_DECL);
     76VMMDECL(int)        PDMCritSectTryEnter(PVMCC pVM, PPDMCRITSECT pCritSect);
     77VMMDECL(int)        PDMCritSectTryEnterDebug(PVMCC pVM, PPDMCRITSECT pCritSect, RTHCUINTPTR uId, RT_SRC_POS_DECL);
     78VMMDECL(int)        PDMCritSectLeave(PVMCC pVM, PPDMCRITSECT pCritSect);
    7979
    80 VMMDECL(bool)       PDMCritSectIsOwner(PCPDMCRITSECT pCritSect);
    81 VMMDECL(bool)       PDMCritSectIsOwnerEx(PCPDMCRITSECT pCritSect, PVMCPUCC pVCpu);
     80VMMDECL(bool)       PDMCritSectIsOwner(PVMCC pVM, PCPDMCRITSECT pCritSect);
     81VMMDECL(bool)       PDMCritSectIsOwnerEx(PVMCPUCC pVCpu, PCPDMCRITSECT pCritSect);
    8282VMMDECL(bool)       PDMCritSectIsInitialized(PCPDMCRITSECT pCritSect);
    83 VMMDECL(bool)       PDMCritSectHasWaiters(PCPDMCRITSECT pCritSect);
     83VMMDECL(bool)       PDMCritSectHasWaiters(PVMCC pVM, PCPDMCRITSECT pCritSect);
    8484VMMDECL(uint32_t)   PDMCritSectGetRecursion(PCPDMCRITSECT pCritSect);
    8585
     
    9191#ifdef VBOX_STRICT
    9292# ifdef IPRT_INCLUDED_asm_h
    93 #  define PDMCritSectEnter(pCritSect, rcBusy)   PDMCritSectEnterDebug((pCritSect), (rcBusy), (uintptr_t)ASMReturnAddress(), RT_SRC_POS)
    94 #  define PDMCritSectTryEnter(pCritSect)        PDMCritSectTryEnterDebug((pCritSect), (uintptr_t)ASMReturnAddress(), RT_SRC_POS)
     93#  define PDMCritSectEnter(a_pVM, pCritSect, rcBusy)   PDMCritSectEnterDebug((a_pVM), (pCritSect), (rcBusy), (uintptr_t)ASMReturnAddress(), RT_SRC_POS)
     94#  define PDMCritSectTryEnter(a_pVM, pCritSect)        PDMCritSectTryEnterDebug((a_pVM), (pCritSect), (uintptr_t)ASMReturnAddress(), RT_SRC_POS)
    9595# else
    96 #  define PDMCritSectEnter(pCritSect, rcBusy)   PDMCritSectEnterDebug((pCritSect), (rcBusy), 0, RT_SRC_POS)
    97 #  define PDMCritSectTryEnter(pCritSect)        PDMCritSectTryEnterDebug((pCritSect), 0, RT_SRC_POS)
     96#  define PDMCritSectEnter(a_pVM, pCritSect, rcBusy)   PDMCritSectEnterDebug((a_pVM), (pCritSect), (rcBusy), 0, RT_SRC_POS)
     97#  define PDMCritSectTryEnter(a_pVM, pCritSect)        PDMCritSectTryEnterDebug((a_pVM), (pCritSect), 0, RT_SRC_POS)
    9898# endif
    9999#endif
  • trunk/include/VBox/vmm/pdmdrv.h

    r90329 r90346  
    660660    /** @} */
    661661
     662    /**
     663     * Obtains bandwidth in a bandwidth group.
     664     *
     665     * @returns True if bandwidth was allocated, false if not.
     666     * @param   pDrvIns         The driver instance.
     667     * @param   pFilter         Pointer to the filter that allocates bandwidth.
     668     * @param   cbTransfer      Number of bytes to allocate.
     669     */
     670    DECLRCCALLBACKMEMBER(bool, pfnNetShaperAllocateBandwidth,(PPDMDRVINS pDrvIns, PPDMNSFILTER pFilter, size_t cbTransfer));
     671
    662672    /** Just a safety precaution. */
    663673    uint32_t                        u32TheEnd;
    664674} PDMDRVHLPRC;
    665675/** Current PDMDRVHLPRC version number. */
    666 #define PDM_DRVHLPRC_VERSION                    PDM_VERSION_MAKE(0xf0f9, 4, 0)
     676#define PDM_DRVHLPRC_VERSION                    PDM_VERSION_MAKE(0xf0f9, 5, 0)
    667677
    668678
     
    765775    /** @} */
    766776
     777    /**
     778     * Obtains bandwidth in a bandwidth group.
     779     *
     780     * @returns True if bandwidth was allocated, false if not.
     781     * @param   pDrvIns         The driver instance.
     782     * @param   pFilter         Pointer to the filter that allocates bandwidth.
     783     * @param   cbTransfer      Number of bytes to allocate.
     784     */
     785    DECLR0CALLBACKMEMBER(bool, pfnNetShaperAllocateBandwidth,(PPDMDRVINS pDrvIns, PPDMNSFILTER pFilter, size_t cbTransfer));
     786
    767787    /** Just a safety precaution. */
    768788    uint32_t                        u32TheEnd;
    769789} PDMDRVHLPR0;
    770790/** Current DRVHLP version number. */
    771 #define PDM_DRVHLPR0_VERSION                    PDM_VERSION_MAKE(0xf0f8, 4, 0)
     791#define PDM_DRVHLPR0_VERSION                    PDM_VERSION_MAKE(0xf0f8, 5, 0)
    772792
    773793
     
    12341254     */
    12351255    DECLR3CALLBACKMEMBER(int, pfnNetShaperDetach,(PPDMDRVINS pDrvIns, PPDMNSFILTER pFilter));
     1256
     1257    /**
     1258     * Obtains bandwidth in a bandwidth group.
     1259     *
     1260     * @returns True if bandwidth was allocated, false if not.
     1261     * @param   pDrvIns         The driver instance.
     1262     * @param   pFilter         Pointer to the filter that allocates bandwidth.
     1263     * @param   cbTransfer      Number of bytes to allocate.
     1264     */
     1265    DECLR3CALLBACKMEMBER(bool, pfnNetShaperAllocateBandwidth,(PPDMDRVINS pDrvIns, PPDMNSFILTER pFilter, size_t cbTransfer));
    12361266
    12371267    /**
     
    14011431} PDMDRVHLPR3;
    14021432/** Current DRVHLP version number. */
    1403 #define PDM_DRVHLPR3_VERSION                    PDM_VERSION_MAKE(0xf0fb, 6, 0)
     1433#define PDM_DRVHLPR3_VERSION                    PDM_VERSION_MAKE(0xf0fb, 7, 0)
    14041434
    14051435#endif /* IN_RING3 */
     
    18541884# endif
    18551885
    1856 # ifdef VBOX_WITH_NETSHAPER
     1886#endif /* IN_RING3 */
     1887
     1888#ifdef VBOX_WITH_NETSHAPER
     1889# ifdef IN_RING3
     1890
    18571891/**
    18581892 * @copydoc PDMDRVHLPR3::pfnNetShaperAttach
     
    18701904    return pDrvIns->pHlpR3->pfnNetShaperDetach(pDrvIns, pFilter);
    18711905}
    1872 # endif
    1873 
     1906
     1907# endif /* IN_RING3 */
     1908
     1909/**
     1910 * @copydoc PDMDRVHLPR3::pfnNetShaperAllocateBandwidth
     1911 */
     1912DECLINLINE(bool) PDMDrvHlpNetShaperAllocateBandwidth(PPDMDRVINS pDrvIns, PPDMNSFILTER pFilter, size_t cbTransfer)
     1913{
     1914    return pDrvIns->CTX_SUFF(pHlp)->pfnNetShaperAllocateBandwidth(pDrvIns, pFilter, cbTransfer);
     1915}
     1916
     1917#endif /* VBOX_WITH_NETSHAPER*/
     1918
     1919#ifdef IN_RING3
    18741920/**
    18751921 * @copydoc PDMDRVHLPR3::pfnCritSectInit
     
    18791925    return pDrvIns->pHlpR3->pfnCritSectInit(pDrvIns, pCritSect, RT_SRC_POS_ARGS, pszName);
    18801926}
    1881 
    18821927#endif /* IN_RING3 */
    18831928
  • trunk/include/VBox/vmm/pdmnetshaper.h

    r82968 r90346  
    6262} PDMNSFILTER;
    6363
    64 VMMDECL(bool)       PDMNsAllocateBandwidth(PPDMNSFILTER pFilter, size_t cbTransfer);
    65 VMMR3_INT_DECL(int) PDMR3NsAttach(PUVM pUVM, PPDMDRVINS pDrvIns, const char *pcszBwGroup, PPDMNSFILTER pFilter);
    66 VMMR3_INT_DECL(int) PDMR3NsDetach(PUVM pUVM, PPDMDRVINS pDrvIns, PPDMNSFILTER pFilter);
    67 VMMR3DECL(int)      PDMR3NsBwGroupSetLimit(PUVM pUVM, const char *pszBwGroup, uint64_t cbPerSecMax);
     64VMM_INT_DECL(bool)      PDMNetShaperAllocateBandwidth(PVMCC pVM, PPDMNSFILTER pFilter, size_t cbTransfer);
     65VMMR3_INT_DECL(int)     PDMR3NsAttach(PUVM pUVM, PPDMDRVINS pDrvIns, const char *pcszBwGroup, PPDMNSFILTER pFilter);
     66VMMR3_INT_DECL(int)     PDMR3NsDetach(PUVM pUVM, PPDMDRVINS pDrvIns, PPDMNSFILTER pFilter);
     67VMMR3DECL(int)          PDMR3NsBwGroupSetLimit(PUVM pUVM, const char *pszBwGroup, uint64_t cbPerSecMax);
    6868
    6969/** @} */
  • trunk/include/VBox/vmm/pgm.h

    r87141 r90346  
    309309
    310310
    311 VMMDECL(bool)           PGMIsLockOwner(PVM pVM);
     311VMMDECL(bool)           PGMIsLockOwner(PVMCC pVM);
    312312
    313313VMMDECL(int)            PGMRegisterStringFormatTypes(void);
     
    640640
    641641#ifdef VBOX_STRICT
    642 VMMDECL(unsigned)   PGMAssertHandlerAndFlagsInSync(PVM pVM);
     642VMMDECL(unsigned)   PGMAssertHandlerAndFlagsInSync(PVMCC pVM);
    643643VMMDECL(unsigned)   PGMAssertNoMappingConflicts(PVM pVM);
    644644VMMDECL(unsigned)   PGMAssertCR3(PVMCC pVM, PVMCPUCC pVCpu, uint64_t cr3, uint64_t cr4);
Note: See TracChangeset for help on using the changeset viewer.

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