Changeset 90329 in vbox
- Timestamp:
- Jul 26, 2021 12:47:26 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 145892
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/pdmdrv.h
r89949 r90329 647 647 DECLRCCALLBACKMEMBER(bool, pfnAssertOther,(PPDMDRVINS pDrvIns, const char *pszFile, unsigned iLine, const char *pszFunction)); 648 648 649 /** @name Exported PDM Critical Section Functions 650 * @{ */ 651 DECLRCCALLBACKMEMBER(int, pfnCritSectEnter,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy)); 652 DECLRCCALLBACKMEMBER(int, pfnCritSectEnterDebug,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy, RTHCUINTPTR uId, RT_SRC_POS_DECL)); 653 DECLRCCALLBACKMEMBER(int, pfnCritSectTryEnter,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect)); 654 DECLRCCALLBACKMEMBER(int, pfnCritSectTryEnterDebug,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, RTHCUINTPTR uId, RT_SRC_POS_DECL)); 655 DECLRCCALLBACKMEMBER(int, pfnCritSectLeave,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect)); 656 DECLRCCALLBACKMEMBER(bool, pfnCritSectIsOwner,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 657 DECLRCCALLBACKMEMBER(bool, pfnCritSectIsInitialized,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 658 DECLRCCALLBACKMEMBER(bool, pfnCritSectHasWaiters,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 659 DECLRCCALLBACKMEMBER(uint32_t, pfnCritSectGetRecursion,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 660 /** @} */ 661 649 662 /** Just a safety precaution. */ 650 663 uint32_t u32TheEnd; 651 664 } PDMDRVHLPRC; 652 665 /** Current PDMDRVHLPRC version number. */ 653 #define PDM_DRVHLPRC_VERSION PDM_VERSION_MAKE(0xf0f9, 3, 0)666 #define PDM_DRVHLPRC_VERSION PDM_VERSION_MAKE(0xf0f9, 4, 0) 654 667 655 668 … … 738 751 DECLR0CALLBACKMEMBER(bool, pfnAssertOther,(PPDMDRVINS pDrvIns, const char *pszFile, unsigned iLine, const char *pszFunction)); 739 752 753 /** @name Exported PDM Critical Section Functions 754 * @{ */ 755 DECLR0CALLBACKMEMBER(int, pfnCritSectEnter,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy)); 756 DECLR0CALLBACKMEMBER(int, pfnCritSectEnterDebug,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy, RTHCUINTPTR uId, RT_SRC_POS_DECL)); 757 DECLR0CALLBACKMEMBER(int, pfnCritSectTryEnter,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect)); 758 DECLR0CALLBACKMEMBER(int, pfnCritSectTryEnterDebug,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, RTHCUINTPTR uId, RT_SRC_POS_DECL)); 759 DECLR0CALLBACKMEMBER(int, pfnCritSectLeave,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect)); 760 DECLR0CALLBACKMEMBER(bool, pfnCritSectIsOwner,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 761 DECLR0CALLBACKMEMBER(bool, pfnCritSectIsInitialized,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 762 DECLR0CALLBACKMEMBER(bool, pfnCritSectHasWaiters,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 763 DECLR0CALLBACKMEMBER(uint32_t, pfnCritSectGetRecursion,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 764 DECLR0CALLBACKMEMBER(int, pfnCritSectScheduleExitEvent,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, SUPSEMEVENT hEventToSignal)); 765 /** @} */ 766 740 767 /** Just a safety precaution. */ 741 768 uint32_t u32TheEnd; 742 769 } PDMDRVHLPR0; 743 770 /** Current DRVHLP version number. */ 744 #define PDM_DRVHLPR0_VERSION PDM_VERSION_MAKE(0xf0f8, 3, 0)771 #define PDM_DRVHLPR0_VERSION PDM_VERSION_MAKE(0xf0f8, 4, 0) 745 772 746 773 … … 1264 1291 DECLR3CALLBACKMEMBER(int, pfnCritSectInit,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, RT_SRC_POS_DECL, const char *pszName)); 1265 1292 1293 /** @name Exported PDM Critical Section Functions 1294 * @{ */ 1295 DECLR3CALLBACKMEMBER(bool, pfnCritSectYield,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect)); 1296 DECLR3CALLBACKMEMBER(int, pfnCritSectEnter,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy)); 1297 DECLR3CALLBACKMEMBER(int, pfnCritSectEnterDebug,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy, RTHCUINTPTR uId, RT_SRC_POS_DECL)); 1298 DECLR3CALLBACKMEMBER(int, pfnCritSectTryEnter,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect)); 1299 DECLR3CALLBACKMEMBER(int, pfnCritSectTryEnterDebug,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, RTHCUINTPTR uId, RT_SRC_POS_DECL)); 1300 DECLR3CALLBACKMEMBER(int, pfnCritSectLeave,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect)); 1301 DECLR3CALLBACKMEMBER(bool, pfnCritSectIsOwner,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 1302 DECLR3CALLBACKMEMBER(bool, pfnCritSectIsInitialized,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 1303 DECLR3CALLBACKMEMBER(bool, pfnCritSectHasWaiters,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 1304 DECLR3CALLBACKMEMBER(uint32_t, pfnCritSectGetRecursion,(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect)); 1305 DECLR3CALLBACKMEMBER(int, pfnCritSectScheduleExitEvent,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, SUPSEMEVENT hEventToSignal)); 1306 DECLR3CALLBACKMEMBER(int, pfnCritSectDelete,(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect)); 1307 /** @} */ 1308 1266 1309 /** 1267 1310 * Call the ring-0 request handler routine of the driver. … … 1358 1401 } PDMDRVHLPR3; 1359 1402 /** Current DRVHLP version number. */ 1360 #define PDM_DRVHLPR3_VERSION PDM_VERSION_MAKE(0xf0fb, 5, 2)1403 #define PDM_DRVHLPR3_VERSION PDM_VERSION_MAKE(0xf0fb, 6, 0) 1361 1404 1362 1405 #endif /* IN_RING3 */ … … 1837 1880 } 1838 1881 1882 #endif /* IN_RING3 */ 1883 1884 /** 1885 * @copydoc PDMCritSectEnter 1886 * @param pDrvIns The device instance. 1887 */ 1888 DECLINLINE(int) PDMDrvHlpCritSectEnter(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy) 1889 { 1890 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectEnter(pDrvIns, pCritSect, rcBusy); 1891 } 1892 1893 /** 1894 * @copydoc PDMCritSectEnterDebug 1895 * @param pDrvIns The device instance. 1896 */ 1897 DECLINLINE(int) PDMDrvHlpCritSectEnterDebug(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy, RTHCUINTPTR uId, RT_SRC_POS_DECL) 1898 { 1899 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectEnterDebug(pDrvIns, pCritSect, rcBusy, uId, RT_SRC_POS_ARGS); 1900 } 1901 1902 /** 1903 * @copydoc PDMCritSectTryEnter 1904 * @param pDrvIns The device instance. 1905 */ 1906 DECLINLINE(int) PDMDrvHlpCritSectTryEnter(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 1907 { 1908 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectTryEnter(pDrvIns, pCritSect); 1909 } 1910 1911 /** 1912 * @copydoc PDMCritSectTryEnterDebug 1913 * @param pDrvIns The device instance. 1914 */ 1915 DECLINLINE(int) PDMDrvHlpCritSectTryEnterDebug(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, RTHCUINTPTR uId, RT_SRC_POS_DECL) 1916 { 1917 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectTryEnterDebug(pDrvIns, pCritSect, uId, RT_SRC_POS_ARGS); 1918 } 1919 1920 /** 1921 * @copydoc PDMCritSectLeave 1922 * @param pDrvIns The device instance. 1923 */ 1924 DECLINLINE(int) PDMDrvHlpCritSectLeave(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 1925 { 1926 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectLeave(pDrvIns, pCritSect); 1927 } 1928 1929 /** 1930 * @copydoc PDMCritSectIsOwner 1931 * @param pDrvIns The device instance. 1932 */ 1933 DECLINLINE(bool) PDMDrvHlpCritSectIsOwner(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 1934 { 1935 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectIsOwner(pDrvIns, pCritSect); 1936 } 1937 1938 /** 1939 * @copydoc PDMCritSectIsInitialized 1940 * @param pDrvIns The device instance. 1941 */ 1942 DECLINLINE(bool) PDMDrvHlpCritSectIsInitialized(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 1943 { 1944 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectIsInitialized(pDrvIns, pCritSect); 1945 } 1946 1947 /** 1948 * @copydoc PDMCritSectHasWaiters 1949 * @param pDrvIns The device instance. 1950 */ 1951 DECLINLINE(bool) PDMDrvHlpCritSectHasWaiters(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 1952 { 1953 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectHasWaiters(pDrvIns, pCritSect); 1954 } 1955 1956 /** 1957 * @copydoc PDMCritSectGetRecursion 1958 * @param pDrvIns The device instance. 1959 */ 1960 DECLINLINE(uint32_t) PDMDrvHlpCritSectGetRecursion(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 1961 { 1962 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectGetRecursion(pDrvIns, pCritSect); 1963 } 1964 1965 #if defined(IN_RING3) || defined(IN_RING0) 1966 /** 1967 * @copydoc PDMHCCritSectScheduleExitEvent 1968 * @param pDrvIns The device instance. 1969 */ 1970 DECLINLINE(int) PDMDrvHlpCritSectScheduleExitEvent(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, SUPSEMEVENT hEventToSignal) 1971 { 1972 return pDrvIns->CTX_SUFF(pHlp)->pfnCritSectScheduleExitEvent(pDrvIns, pCritSect, hEventToSignal); 1973 } 1974 #endif 1975 1976 /* Strict build: Remap the two enter calls to the debug versions. */ 1977 #ifdef VBOX_STRICT 1978 # ifdef IPRT_INCLUDED_asm_h 1979 # define PDMDrvHlpCritSectEnter(pDrvIns, pCritSect, rcBusy) PDMDrvHlpCritSectEnterDebug((pDrvIns), (pCritSect), (rcBusy), (uintptr_t)ASMReturnAddress(), RT_SRC_POS) 1980 # define PDMDrvHlpCritSectTryEnter(pDrvIns, pCritSect) PDMDrvHlpCritSectTryEnterDebug((pDrvIns), (pCritSect), (uintptr_t)ASMReturnAddress(), RT_SRC_POS) 1981 # else 1982 # define PDMDrvHlpCritSectEnter(pDrvIns, pCritSect, rcBusy) PDMDrvHlpCritSectEnterDebug((pDrvIns), (pCritSect), (rcBusy), 0, RT_SRC_POS) 1983 # define PDMDrvHlpCritSectTryEnter(pDrvIns, pCritSect) PDMDrvHlpCritSectTryEnterDebug((pDrvIns), (pCritSect), 0, RT_SRC_POS) 1984 # endif 1985 #endif 1986 1987 #if defined(IN_RING3) || defined(DOXYGEN_RUNNING) 1988 1989 /** 1990 * @copydoc PDMR3CritSectDelete 1991 * @param pDrvIns The device instance. 1992 */ 1993 DECLINLINE(int) PDMDrvHlpCritSectDelete(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 1994 { 1995 return pDrvIns->pHlpR3->pfnCritSectDelete(pDrvIns, pCritSect); 1996 } 1997 1839 1998 /** 1840 1999 * @copydoc PDMDRVHLPR3::pfnCallR0 -
trunk/src/VBox/VMM/VMMAll/PDMAllCritSect.cpp
r87935 r90329 290 290 #else 291 291 # ifdef IN_RING0 292 /* 293 * In ring-0 context we have to take the special VT-x/AMD-V HM context into 294 * account when waiting on contended locks. 295 * 296 * While we usually (it can be VINF_SUCCESS) have to option via the rcBusy 297 * parameter of going to back to ring-3 and to re-start the work there, it's 298 * almost always more efficient to try wait for the lock here. The rcBusy 299 * will be used if we encounter an VERR_INTERRUPTED situation though. 300 * 301 * We must never block if VMMRZCallRing3Disable is active. 302 */ 303 292 304 /** @todo If preemption is disabled it means we're in VT-x/AMD-V context 293 305 * and would be better off switching out of that while waiting for … … 333 345 return pdmR3R0CritSectEnterContended(pCritSect, hNativeSelf, pSrcPos); 334 346 # endif 335 # endif /* IN_RING0 */347 # endif /* IN_RING0 */ 336 348 337 349 STAM_REL_COUNTER_INC(&pCritSect->s.StatContentionRZLock); -
trunk/src/VBox/VMM/VMMR0/PDMR0Driver.cpp
r84071 r90329 113 113 114 114 115 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectEnter} */ 116 static DECLCALLBACK(int) pdmR0DrvHlp_CritSectEnter(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy) 117 { 118 PDMDRV_ASSERT_DRVINS(pDrvIns); 119 NOREF(pDrvIns); 120 return PDMCritSectEnter(pCritSect, rcBusy); 121 } 122 123 124 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectEnterDebug} */ 125 static DECLCALLBACK(int) pdmR0DrvHlp_CritSectEnterDebug(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy, 126 RTHCUINTPTR uId, RT_SRC_POS_DECL) 127 { 128 PDMDRV_ASSERT_DRVINS(pDrvIns); 129 NOREF(pDrvIns); 130 return PDMCritSectEnterDebug(pCritSect, rcBusy, uId, RT_SRC_POS_ARGS); 131 } 132 133 134 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectTryEnter} */ 135 static DECLCALLBACK(int) pdmR0DrvHlp_CritSectTryEnter(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 136 { 137 PDMDRV_ASSERT_DRVINS(pDrvIns); 138 NOREF(pDrvIns); 139 return PDMCritSectTryEnter(pCritSect); 140 } 141 142 143 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectTryEnterDebug} */ 144 static DECLCALLBACK(int) pdmR0DrvHlp_CritSectTryEnterDebug(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, 145 RTHCUINTPTR uId, RT_SRC_POS_DECL) 146 { 147 PDMDRV_ASSERT_DRVINS(pDrvIns); 148 NOREF(pDrvIns); 149 return PDMCritSectTryEnterDebug(pCritSect, uId, RT_SRC_POS_ARGS); 150 } 151 152 153 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectLeave} */ 154 static DECLCALLBACK(int) pdmR0DrvHlp_CritSectLeave(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 155 { 156 PDMDRV_ASSERT_DRVINS(pDrvIns); 157 NOREF(pDrvIns); 158 return PDMCritSectLeave(pCritSect); 159 } 160 161 162 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectIsOwner} */ 163 static DECLCALLBACK(bool) pdmR0DrvHlp_CritSectIsOwner(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 164 { 165 PDMDRV_ASSERT_DRVINS(pDrvIns); 166 NOREF(pDrvIns); 167 return PDMCritSectIsOwner(pCritSect); 168 } 169 170 171 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectIsInitialized} */ 172 static DECLCALLBACK(bool) pdmR0DrvHlp_CritSectIsInitialized(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 173 { 174 PDMDRV_ASSERT_DRVINS(pDrvIns); 175 NOREF(pDrvIns); 176 return PDMCritSectIsInitialized(pCritSect); 177 } 178 179 180 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectHasWaiters} */ 181 static DECLCALLBACK(bool) pdmR0DrvHlp_CritSectHasWaiters(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 182 { 183 PDMDRV_ASSERT_DRVINS(pDrvIns); 184 NOREF(pDrvIns); 185 return PDMCritSectHasWaiters(pCritSect); 186 } 187 188 189 /** @interface_method_impl{PDMDRVHLPR0,pfnCritSectGetRecursion} */ 190 static DECLCALLBACK(uint32_t) pdmR0DrvHlp_CritSectGetRecursion(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 191 { 192 PDMDRV_ASSERT_DRVINS(pDrvIns); 193 NOREF(pDrvIns); 194 return PDMCritSectGetRecursion(pCritSect); 195 } 196 197 198 /** @interface_method_impl{PDMDRVHLPR0,pfn} */ 199 static DECLCALLBACK(int) pdmR0DrvHlp_CritSectScheduleExitEvent(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, 200 SUPSEMEVENT hEventToSignal) 201 { 202 PDMDRV_ASSERT_DRVINS(pDrvIns); 203 NOREF(pDrvIns); 204 return PDMHCCritSectScheduleExitEvent(pCritSect, hEventToSignal); 205 } 206 207 208 /** @interface_method_impl{PDMDRVHLPR0,pfn} */ 209 210 115 211 /** 116 212 * The Ring-0 Context Driver Helper Callbacks. … … 125 221 pdmR0DrvHlp_AssertEMT, 126 222 pdmR0DrvHlp_AssertOther, 223 pdmR0DrvHlp_CritSectEnter, 224 pdmR0DrvHlp_CritSectEnterDebug, 225 pdmR0DrvHlp_CritSectTryEnter, 226 pdmR0DrvHlp_CritSectTryEnterDebug, 227 pdmR0DrvHlp_CritSectLeave, 228 pdmR0DrvHlp_CritSectIsOwner, 229 pdmR0DrvHlp_CritSectIsInitialized, 230 pdmR0DrvHlp_CritSectHasWaiters, 231 pdmR0DrvHlp_CritSectGetRecursion, 232 pdmR0DrvHlp_CritSectScheduleExitEvent, 127 233 PDM_DRVHLPRC_VERSION 128 234 }; -
trunk/src/VBox/VMM/VMMR3/PDMDriver.cpp
r89949 r90329 1783 1783 } 1784 1784 1785 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectYield} */ 1786 static DECLCALLBACK(bool) pdmR3DrvHlp_CritSectYield(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 1787 { 1788 PDMDRV_ASSERT_DRVINS(pDrvIns); 1789 RT_NOREF(pDrvIns); 1790 return PDMR3CritSectYield(pDrvIns->Internal.s.pVMR3, pCritSect); 1791 } 1792 1793 1794 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectEnter} */ 1795 static DECLCALLBACK(int) pdmR3DrvHlp_CritSectEnter(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy) 1796 { 1797 PDMDRV_ASSERT_DRVINS(pDrvIns); 1798 RT_NOREF(pDrvIns); 1799 return PDMCritSectEnter(pCritSect, rcBusy); 1800 } 1801 1802 1803 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectEnterDebug} */ 1804 static DECLCALLBACK(int) pdmR3DrvHlp_CritSectEnterDebug(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, int rcBusy, 1805 RTHCUINTPTR uId, RT_SRC_POS_DECL) 1806 { 1807 PDMDRV_ASSERT_DRVINS(pDrvIns); 1808 RT_NOREF(pDrvIns); 1809 return PDMCritSectEnterDebug(pCritSect, rcBusy, uId, RT_SRC_POS_ARGS); 1810 } 1811 1812 1813 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectTryEnter} */ 1814 static DECLCALLBACK(int) pdmR3DrvHlp_CritSectTryEnter(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 1815 { 1816 PDMDRV_ASSERT_DRVINS(pDrvIns); 1817 RT_NOREF(pDrvIns); 1818 return PDMCritSectTryEnter(pCritSect); 1819 } 1820 1821 1822 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectTryEnterDebug} */ 1823 static DECLCALLBACK(int) pdmR3DrvHlp_CritSectTryEnterDebug(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, 1824 RTHCUINTPTR uId, RT_SRC_POS_DECL) 1825 { 1826 PDMDRV_ASSERT_DRVINS(pDrvIns); 1827 RT_NOREF(pDrvIns); 1828 return PDMCritSectTryEnterDebug(pCritSect, uId, RT_SRC_POS_ARGS); 1829 } 1830 1831 1832 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectLeave} */ 1833 static DECLCALLBACK(int) pdmR3DrvHlp_CritSectLeave(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 1834 { 1835 PDMDRV_ASSERT_DRVINS(pDrvIns); 1836 RT_NOREF(pDrvIns); 1837 return PDMCritSectLeave(pCritSect); 1838 } 1839 1840 1841 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectIsOwner} */ 1842 static DECLCALLBACK(bool) pdmR3DrvHlp_CritSectIsOwner(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 1843 { 1844 PDMDRV_ASSERT_DRVINS(pDrvIns); 1845 RT_NOREF(pDrvIns); 1846 return PDMCritSectIsOwner(pCritSect); 1847 } 1848 1849 1850 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectIsInitialized} */ 1851 static DECLCALLBACK(bool) pdmR3DrvHlp_CritSectIsInitialized(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 1852 { 1853 PDMDRV_ASSERT_DRVINS(pDrvIns); 1854 RT_NOREF(pDrvIns); 1855 return PDMCritSectIsInitialized(pCritSect); 1856 } 1857 1858 1859 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectHasWaiters} */ 1860 static DECLCALLBACK(bool) pdmR3DrvHlp_CritSectHasWaiters(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 1861 { 1862 PDMDRV_ASSERT_DRVINS(pDrvIns); 1863 RT_NOREF(pDrvIns); 1864 return PDMCritSectHasWaiters(pCritSect); 1865 } 1866 1867 1868 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectGetRecursion} */ 1869 static DECLCALLBACK(uint32_t) pdmR3DrvHlp_CritSectGetRecursion(PPDMDRVINS pDrvIns, PCPDMCRITSECT pCritSect) 1870 { 1871 PDMDRV_ASSERT_DRVINS(pDrvIns); 1872 RT_NOREF(pDrvIns); 1873 return PDMCritSectGetRecursion(pCritSect); 1874 } 1875 1876 1877 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectScheduleExitEvent} */ 1878 static DECLCALLBACK(int) pdmR3DrvHlp_CritSectScheduleExitEvent(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect, 1879 SUPSEMEVENT hEventToSignal) 1880 { 1881 PDMDRV_ASSERT_DRVINS(pDrvIns); 1882 RT_NOREF(pDrvIns); 1883 return PDMHCCritSectScheduleExitEvent(pCritSect, hEventToSignal); 1884 } 1885 1886 1887 /** @interface_method_impl{PDMDRVHLPR3,pfnCritSectDelete} */ 1888 static DECLCALLBACK(int) pdmR3DrvHlp_CritSectDelete(PPDMDRVINS pDrvIns, PPDMCRITSECT pCritSect) 1889 { 1890 PDMDRV_ASSERT_DRVINS(pDrvIns); 1891 RT_NOREF(pDrvIns); 1892 return PDMR3CritSectDelete(pCritSect); 1893 } 1894 1785 1895 1786 1896 /** @interface_method_impl{PDMDRVHLPR3,pfnCallR0} */ … … 1941 2051 pdmR3DrvHlp_LdrGetR0InterfaceSymbols, 1942 2052 pdmR3DrvHlp_CritSectInit, 2053 pdmR3DrvHlp_CritSectYield, 2054 pdmR3DrvHlp_CritSectEnter, 2055 pdmR3DrvHlp_CritSectEnterDebug, 2056 pdmR3DrvHlp_CritSectTryEnter, 2057 pdmR3DrvHlp_CritSectTryEnterDebug, 2058 pdmR3DrvHlp_CritSectLeave, 2059 pdmR3DrvHlp_CritSectIsOwner, 2060 pdmR3DrvHlp_CritSectIsInitialized, 2061 pdmR3DrvHlp_CritSectHasWaiters, 2062 pdmR3DrvHlp_CritSectGetRecursion, 2063 pdmR3DrvHlp_CritSectScheduleExitEvent, 2064 pdmR3DrvHlp_CritSectDelete, 1943 2065 pdmR3DrvHlp_CallR0, 1944 2066 pdmR3DrvHlp_BlkCacheRetain,
Note:
See TracChangeset
for help on using the changeset viewer.