Changeset 91015 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Aug 31, 2021 1:08:43 AM (3 years ago)
- Location:
- trunk/src/VBox/VMM/VMMR0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp
r91014 r91015 97 97 #endif 98 98 99 100 /** @def GVMM_CHECK_SMAP_SETUP101 * SMAP check setup. */102 /** @def GVMM_CHECK_SMAP_CHECK103 * Checks that the AC flag is set if SMAP is enabled. If AC is not set,104 * it will be logged and @a a_BadExpr is executed. */105 /** @def GVMM_CHECK_SMAP_CHECK2106 * Checks that the AC flag is set if SMAP is enabled. If AC is not set, it will107 * be logged, written to the VMs assertion text buffer, and @a a_BadExpr is108 * executed. */109 #define GVMM_CHECK_SMAP_SETUP() uint32_t const fKernelFeatures = 0110 #define GVMM_CHECK_SMAP_CHECK(a_BadExpr) NOREF(fKernelFeatures)111 #define GVMM_CHECK_SMAP_CHECK2(a_pGVM, a_BadExpr) NOREF(fKernelFeatures)112 99 113 100 /** Special value that GVMMR0DeregisterVCpu sets. */ … … 2145 2132 LogFlow(("GVMMR0SchedHalt: pGVM=%p pGVCpu=%p(%d) u64ExpireGipTime=%#RX64\n", 2146 2133 pGVM, pGVCpu, pGVCpu->idCpu, u64ExpireGipTime)); 2147 GVMM_CHECK_SMAP_SETUP();2148 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2149 2150 2134 PGVMM pGVMM; 2151 2135 GVMM_GET_VALID_INSTANCE(pGVMM, VERR_GVMM_INSTANCE); … … 2163 2147 { 2164 2148 int rc2 = GVMMR0_USED_SHARED_LOCK(pGVMM); AssertRC(rc2); 2165 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2166 2149 } 2167 2150 … … 2174 2157 const uint64_t u64NowSys = RTTimeSystemNanoTS(); 2175 2158 const uint64_t u64NowGip = RTTimeNanoTS(); 2176 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2177 2159 2178 2160 if (fDoEarlyWakeUps) 2179 {2180 2161 pGVM->gvmm.s.StatsSched.cHaltWakeUps += gvmmR0SchedDoWakeUps(pGVMM, u64NowGip); 2181 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2182 }2183 2162 2184 2163 /* … … 2204 2183 GVMMR0_USED_SHARED_UNLOCK(pGVMM); 2205 2184 } 2206 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2207 2185 2208 2186 rc = RTSemEventMultiWaitEx(pGVCpu->gvmm.s.HaltEventMulti, 2209 2187 RTSEMWAIT_FLAGS_ABSOLUTE | RTSEMWAIT_FLAGS_NANOSECS | RTSEMWAIT_FLAGS_INTERRUPTIBLE, 2210 2188 u64NowGip > u64NowSys ? u64ExpireGipTime : u64NowSys + cNsInterval); 2211 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2212 2189 2213 2190 ASMAtomicWriteU64(&pGVCpu->gvmm.s.u64HaltExpire, 0); … … 2216 2193 /* Reset the semaphore to try prevent a few false wake-ups. */ 2217 2194 if (rc == VINF_SUCCESS) 2218 {2219 2195 RTSemEventMultiReset(pGVCpu->gvmm.s.HaltEventMulti); 2220 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2221 }2222 2196 else if (rc == VERR_TIMEOUT) 2223 2197 { … … 2231 2205 if (fDoEarlyWakeUps) 2232 2206 GVMMR0_USED_SHARED_UNLOCK(pGVMM); 2233 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2234 2207 RTSemEventMultiReset(pGVCpu->gvmm.s.HaltEventMulti); 2235 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2236 2208 rc = VINF_SUCCESS; 2237 2209 } … … 2253 2225 GVMMR0DECL(int) GVMMR0SchedHaltReq(PGVM pGVM, VMCPUID idCpu, uint64_t u64ExpireGipTime) 2254 2226 { 2255 GVMM_CHECK_SMAP_SETUP();2256 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2257 2227 PGVMM pGVMM; 2258 2228 int rc = gvmmR0ByGVMandEMT(pGVM, idCpu, &pGVMM); 2259 2229 if (RT_SUCCESS(rc)) 2260 {2261 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2262 2230 rc = GVMMR0SchedHalt(pGVM, &pGVM->aCpus[idCpu], u64ExpireGipTime); 2263 }2264 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2265 2231 return rc; 2266 2232 } … … 2324 2290 GVMMR0DECL(int) GVMMR0SchedWakeUpEx(PGVM pGVM, VMCPUID idCpu, bool fTakeUsedLock) 2325 2291 { 2326 GVMM_CHECK_SMAP_SETUP();2327 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2328 2329 2292 /* 2330 2293 * Validate input and take the UsedLock. … … 2332 2295 PGVMM pGVMM; 2333 2296 int rc = gvmmR0ByGVM(pGVM, &pGVMM, fTakeUsedLock); 2334 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2335 2297 if (RT_SUCCESS(rc)) 2336 2298 { … … 2341 2303 */ 2342 2304 rc = gvmmR0SchedWakeUpOne(pGVM, &pGVM->aCpus[idCpu]); 2343 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2344 2305 2345 2306 if (fTakeUsedLock && pGVMM->fDoEarlyWakeUps) … … 2351 2312 const uint64_t u64Now = RTTimeNanoTS(); /* (GIP time) */ 2352 2313 pGVM->gvmm.s.StatsSched.cWakeUpWakeUps += gvmmR0SchedDoWakeUps(pGVMM, u64Now); 2353 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2354 2314 } 2355 2315 } … … 2361 2321 int rc2 = GVMMR0_USED_SHARED_UNLOCK(pGVMM); 2362 2322 AssertRC(rc2); 2363 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2364 2323 } 2365 2324 } … … 2402 2361 GVMMR0DECL(int) GVMMR0SchedWakeUpNoGVMNoLock(PGVM pGVM, VMCPUID idCpu) 2403 2362 { 2404 GVMM_CHECK_SMAP_SETUP();2405 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2406 2363 PGVMM pGVMM; 2407 2364 int rc = gvmmR0ByGVM(pGVM, &pGVMM, false /*fTakeUsedLock*/); 2408 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2409 2365 if (RT_SUCCESS(rc)) 2410 2366 rc = GVMMR0SchedWakeUpEx(pGVM, idCpu, false /*fTakeUsedLock*/); … … 2536 2492 AssertPtrReturn(pSleepSet, VERR_INVALID_POINTER); 2537 2493 AssertPtrReturn(pPokeSet, VERR_INVALID_POINTER); 2538 GVMM_CHECK_SMAP_SETUP();2539 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2540 2494 RTNATIVETHREAD hSelf = RTThreadNativeSelf(); 2541 2495 … … 2545 2499 PGVMM pGVMM; 2546 2500 int rc = gvmmR0ByGVM(pGVM, &pGVMM, true /* fTakeUsedLock */); 2547 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2548 2501 if (RT_SUCCESS(rc)) 2549 2502 { … … 2558 2511 /* just ignore errors for now. */ 2559 2512 if (VMCPUSET_IS_PRESENT(pSleepSet, idCpu)) 2560 {2561 2513 gvmmR0SchedWakeUpOne(pGVM, &pGVM->aCpus[idCpu]); 2562 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2563 }2564 2514 else if (VMCPUSET_IS_PRESENT(pPokeSet, idCpu)) 2565 {2566 2515 gvmmR0SchedPokeOne(pGVM, &pGVM->aCpus[idCpu]); 2567 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2568 }2569 2516 } 2570 2517 2571 2518 int rc2 = GVMMR0_USED_SHARED_UNLOCK(pGVMM); 2572 2519 AssertRC(rc2); 2573 GVMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2574 2520 } 2575 2521 -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r91014 r91015 79 79 80 80 81 82 /*********************************************************************************************************************************83 * Defined Constants And Macros *84 *********************************************************************************************************************************/85 /** @def VMM_CHECK_SMAP_SETUP86 * SMAP check setup. */87 /** @def VMM_CHECK_SMAP_CHECK88 * Checks that the AC flag is set if SMAP is enabled. If AC is not set,89 * it will be logged and @a a_BadExpr is executed. */90 /** @def VMM_CHECK_SMAP_CHECK291 * Checks that the AC flag is set if SMAP is enabled. If AC is not set, it will92 * be logged, written to the VMs assertion text buffer, and @a a_BadExpr is93 * executed. */94 #define VMM_CHECK_SMAP_SETUP() uint32_t const fKernelFeatures = 095 #define VMM_CHECK_SMAP_CHECK(a_BadExpr) NOREF(fKernelFeatures)96 #define VMM_CHECK_SMAP_CHECK2(a_pGVM, a_BadExpr) NOREF(fKernelFeatures)97 98 99 81 /********************************************************************************************************************************* 100 82 * Internal Functions * … … 145 127 DECLEXPORT(int) ModuleInit(void *hMod) 146 128 { 147 VMM_CHECK_SMAP_SETUP();148 VMM_CHECK_SMAP_CHECK(RT_NOTHING);149 150 129 #ifdef VBOX_WITH_DTRACE_R0 151 130 /* … … 175 154 if (RT_SUCCESS(rc)) 176 155 { 177 VMM_CHECK_SMAP_CHECK(RT_NOTHING);178 156 rc = GVMMR0Init(); 179 157 if (RT_SUCCESS(rc)) 180 158 { 181 VMM_CHECK_SMAP_CHECK(RT_NOTHING);182 159 rc = GMMR0Init(); 183 160 if (RT_SUCCESS(rc)) 184 161 { 185 VMM_CHECK_SMAP_CHECK(RT_NOTHING);186 162 rc = HMR0Init(); 187 163 if (RT_SUCCESS(rc)) 188 164 { 189 VMM_CHECK_SMAP_CHECK(RT_NOTHING);190 191 165 PDMR0Init(hMod); 192 VMM_CHECK_SMAP_CHECK(RT_NOTHING);193 166 194 167 rc = PGMRegisterStringFormatTypes(); 195 168 if (RT_SUCCESS(rc)) 196 169 { 197 VMM_CHECK_SMAP_CHECK(RT_NOTHING);198 170 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE 199 171 rc = PGMR0DynMapInit(); … … 201 173 if (RT_SUCCESS(rc)) 202 174 { 203 VMM_CHECK_SMAP_CHECK(RT_NOTHING);204 175 rc = IntNetR0Init(); 205 176 if (RT_SUCCESS(rc)) 206 177 { 207 178 #ifdef VBOX_WITH_PCI_PASSTHROUGH 208 VMM_CHECK_SMAP_CHECK(RT_NOTHING);209 179 rc = PciRawR0Init(); 210 180 #endif 211 181 if (RT_SUCCESS(rc)) 212 182 { 213 VMM_CHECK_SMAP_CHECK(RT_NOTHING);214 183 rc = CPUMR0ModuleInit(); 215 184 if (RT_SUCCESS(rc)) 216 185 { 217 186 #ifdef VBOX_WITH_TRIPLE_FAULT_HACK 218 VMM_CHECK_SMAP_CHECK(RT_NOTHING);219 187 rc = vmmR0TripleFaultHackInit(); 220 188 if (RT_SUCCESS(rc)) 221 189 #endif 222 190 { 223 VMM_CHECK_SMAP_CHECK(rc = VERR_VMM_SMAP_BUT_AC_CLEAR);224 191 if (RT_SUCCESS(rc)) 225 192 { … … 387 354 static int vmmR0InitVM(PGVM pGVM, uint32_t uSvnRev, uint32_t uBuildType) 388 355 { 389 VMM_CHECK_SMAP_SETUP();390 VMM_CHECK_SMAP_CHECK(return VERR_VMM_SMAP_BUT_AC_CLEAR);391 392 356 /* 393 357 * Match the SVN revisions and build type. … … 472 436 * Initialize the per VM data for GVMM and GMM. 473 437 */ 474 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);475 438 rc = GVMMR0InitVM(pGVM); 476 439 if (RT_SUCCESS(rc)) … … 479 442 * Init HM, CPUM and PGM (Darwin only). 480 443 */ 481 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);482 444 rc = HMR0InitVM(pGVM); 483 if (RT_SUCCESS(rc))484 VMM_CHECK_SMAP_CHECK2(pGVM, rc = VERR_VMM_RING0_ASSERTION); /* CPUR0InitVM will otherwise panic the host */485 445 if (RT_SUCCESS(rc)) 486 446 { … … 488 448 if (RT_SUCCESS(rc)) 489 449 { 490 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);491 450 rc = PGMR0InitVM(pGVM); 492 451 if (RT_SUCCESS(rc)) 493 452 { 494 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);495 453 rc = EMR0InitVM(pGVM); 496 454 if (RT_SUCCESS(rc)) 497 455 { 498 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);499 456 #ifdef VBOX_WITH_PCI_PASSTHROUGH 500 457 rc = PciRawR0InitVM(pGVM); … … 502 459 if (RT_SUCCESS(rc)) 503 460 { 504 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);505 461 rc = GIMR0InitVM(pGVM); 506 462 if (RT_SUCCESS(rc)) 507 463 { 508 VMM_CHECK_SMAP_CHECK2(pGVM, rc = VERR_VMM_RING0_ASSERTION); 509 if (RT_SUCCESS(rc)) 510 { 511 GVMMR0DoneInitVM(pGVM); 512 513 /* 514 * Collect a bit of info for the VM release log. 515 */ 516 pGVM->vmm.s.fIsPreemptPendingApiTrusty = RTThreadPreemptIsPendingTrusty(); 517 pGVM->vmm.s.fIsPreemptPossible = RTThreadPreemptIsPossible();; 518 519 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING); 520 return rc; 521 } 464 GVMMR0DoneInitVM(pGVM); 465 466 /* 467 * Collect a bit of info for the VM release log. 468 */ 469 pGVM->vmm.s.fIsPreemptPendingApiTrusty = RTThreadPreemptIsPendingTrusty(); 470 pGVM->vmm.s.fIsPreemptPossible = RTThreadPreemptIsPossible();; 471 return rc; 522 472 523 473 /* bail out*/ 524 GIMR0TermVM(pGVM);474 //GIMR0TermVM(pGVM); 525 475 } 526 476 #ifdef VBOX_WITH_PCI_PASSTHROUGH … … 1432 1382 1433 1383 /* 1434 * SMAP fun.1435 */1436 VMM_CHECK_SMAP_SETUP();1437 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1438 1439 /*1440 1384 * Perform requested operation. 1441 1385 */ … … 1481 1425 if (pGVM->vmm.s.fUsePeriodicPreemptionTimers) 1482 1426 GVMMR0SchedUpdatePeriodicPreemptionTimer(pGVM, pGVCpu->idHostCpu, TMCalcHostTimerFrequency(pGVM, pGVCpu)); 1483 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1484 1427 1485 1428 #ifdef VMM_R0_TOUCH_FPU … … 1527 1470 * Setup the longjmp machinery and execute guest code (calls HMR0RunGuestCode). 1528 1471 */ 1529 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1530 1472 rc = vmmR0CallRing3SetJmp(&pGVCpu->vmm.s.CallRing3JmpBufR0, HMR0RunGuestCode, pGVM, pGVCpu); 1531 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1532 1473 1533 1474 /* … … 1657 1598 * Setup the longjmp machinery and execute guest code (calls NEMR0RunGuestCode). 1658 1599 */ 1659 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1660 1600 # ifdef VBOXSTRICTRC_STRICT_ENABLED 1661 1601 int rc = vmmR0CallRing3SetJmp2(&pGVCpu->vmm.s.CallRing3JmpBufR0, (PFNVMMR0SETJMP2)NEMR0RunGuestCode, pGVM, idCpu); … … 1663 1603 int rc = vmmR0CallRing3SetJmp2(&pGVCpu->vmm.s.CallRing3JmpBufR0, NEMR0RunGuestCode, pGVM, idCpu); 1664 1604 # endif 1665 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1666 1605 STAM_COUNTER_INC(&pGVM->vmm.s.StatRunGC); 1667 1606 … … 1695 1634 break; 1696 1635 } 1697 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1698 1636 } 1699 1637 … … 1783 1721 1784 1722 /* 1785 * SMAP fun.1786 */1787 VMM_CHECK_SMAP_SETUP();1788 VMM_CHECK_SMAP_CHECK(RT_NOTHING);1789 1790 /*1791 1723 * Process the request. 1792 1724 */ … … 1802 1734 else 1803 1735 rc = VERR_INVALID_PARAMETER; 1804 VMM_CHECK_SMAP_CHECK(RT_NOTHING);1805 1736 break; 1806 1737 … … 1810 1741 else 1811 1742 rc = VERR_INVALID_PARAMETER; 1812 VMM_CHECK_SMAP_CHECK(RT_NOTHING);1813 1743 break; 1814 1744 … … 1818 1748 else 1819 1749 rc = VERR_INVALID_PARAMETER; 1820 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1821 1750 break; 1822 1751 … … 1826 1755 else 1827 1756 rc = VERR_INVALID_PARAMETER; 1828 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1829 1757 break; 1830 1758 … … 1832 1760 if (pReqHdr) 1833 1761 return VERR_INVALID_PARAMETER; 1834 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1835 1762 rc = GVMMR0SchedHaltReq(pGVM, idCpu, u64Arg); 1836 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1837 1763 break; 1838 1764 … … 1840 1766 if (pReqHdr || u64Arg) 1841 1767 return VERR_INVALID_PARAMETER; 1842 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1843 1768 rc = GVMMR0SchedWakeUp(pGVM, idCpu); 1844 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1845 1769 break; 1846 1770 … … 1849 1773 return VERR_INVALID_PARAMETER; 1850 1774 rc = GVMMR0SchedPoke(pGVM, idCpu); 1851 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1852 1775 break; 1853 1776 … … 1856 1779 return VERR_INVALID_PARAMETER; 1857 1780 rc = GVMMR0SchedWakeUpAndPokeCpusReq(pGVM, (PGVMMSCHEDWAKEUPANDPOKECPUSREQ)pReqHdr); 1858 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1859 1781 break; 1860 1782 … … 1863 1785 return VERR_INVALID_PARAMETER; 1864 1786 rc = GVMMR0SchedPoll(pGVM, idCpu, !!u64Arg); 1865 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1866 1787 break; 1867 1788 … … 1870 1791 return VERR_INVALID_PARAMETER; 1871 1792 rc = GVMMR0QueryStatisticsReq(pGVM, (PGVMMQUERYSTATISTICSSREQ)pReqHdr, pSession); 1872 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1873 1793 break; 1874 1794 … … 1877 1797 return VERR_INVALID_PARAMETER; 1878 1798 rc = GVMMR0ResetStatisticsReq(pGVM, (PGVMMRESETSTATISTICSSREQ)pReqHdr, pSession); 1879 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1880 1799 break; 1881 1800 … … 1885 1804 case VMMR0_DO_VMMR0_INIT: 1886 1805 rc = vmmR0InitVM(pGVM, RT_LODWORD(u64Arg), RT_HIDWORD(u64Arg)); 1887 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1888 1806 break; 1889 1807 … … 1893 1811 case VMMR0_DO_VMMR0_INIT_EMT: 1894 1812 rc = vmmR0InitVMEmt(pGVM, idCpu); 1895 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1896 1813 break; 1897 1814 … … 1901 1818 case VMMR0_DO_VMMR0_TERM: 1902 1819 rc = VMMR0TermVM(pGVM, 0 /*idCpu*/); 1903 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1904 1820 break; 1905 1821 … … 1914 1830 else 1915 1831 return VERR_INVALID_PARAMETER; 1916 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1917 1832 break; 1918 1833 … … 1927 1842 else 1928 1843 return VERR_INVALID_PARAMETER; 1929 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1930 1844 break; 1931 1845 … … 1940 1854 else 1941 1855 return VERR_INVALID_PARAMETER; 1942 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1943 1856 break; 1944 1857 … … 1948 1861 case VMMR0_DO_HM_ENABLE: 1949 1862 rc = HMR0EnableAllCpus(pGVM); 1950 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1951 1863 break; 1952 1864 … … 1956 1868 case VMMR0_DO_HM_SETUP_VM: 1957 1869 rc = HMR0SetupVM(pGVM); 1958 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1959 1870 break; 1960 1871 … … 1966 1877 return VERR_INVALID_CPU_ID; 1967 1878 rc = PGMR0PhysAllocateHandyPages(pGVM, idCpu); 1968 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1969 1879 break; 1970 1880 … … 1973 1883 return VERR_INVALID_CPU_ID; 1974 1884 rc = PGMR0PhysFlushHandyPages(pGVM, idCpu); 1975 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1976 1885 break; 1977 1886 … … 1980 1889 return VERR_INVALID_CPU_ID; 1981 1890 rc = PGMR0PhysAllocateLargeHandyPage(pGVM, idCpu); 1982 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1983 1891 break; 1984 1892 … … 1987 1895 return VERR_INVALID_CPU_ID; 1988 1896 rc = PGMR0PhysSetupIoMmu(pGVM); 1989 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1990 1897 break; 1991 1898 … … 1994 1901 return VERR_INVALID_CPU_ID; 1995 1902 rc = PGMR0PoolGrow(pGVM); 1996 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);1997 1903 break; 1998 1904 … … 2004 1910 return VERR_INVALID_PARAMETER; 2005 1911 rc = GMMR0InitialReservationReq(pGVM, idCpu, (PGMMINITIALRESERVATIONREQ)pReqHdr); 2006 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2007 1912 break; 2008 1913 … … 2011 1916 return VERR_INVALID_PARAMETER; 2012 1917 rc = GMMR0UpdateReservationReq(pGVM, idCpu, (PGMMUPDATERESERVATIONREQ)pReqHdr); 2013 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2014 1918 break; 2015 1919 … … 2018 1922 return VERR_INVALID_PARAMETER; 2019 1923 rc = GMMR0AllocatePagesReq(pGVM, idCpu, (PGMMALLOCATEPAGESREQ)pReqHdr); 2020 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2021 1924 break; 2022 1925 … … 2025 1928 return VERR_INVALID_PARAMETER; 2026 1929 rc = GMMR0FreePagesReq(pGVM, idCpu, (PGMMFREEPAGESREQ)pReqHdr); 2027 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2028 1930 break; 2029 1931 … … 2032 1934 return VERR_INVALID_PARAMETER; 2033 1935 rc = GMMR0FreeLargePageReq(pGVM, idCpu, (PGMMFREELARGEPAGEREQ)pReqHdr); 2034 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2035 1936 break; 2036 1937 … … 2039 1940 return VERR_INVALID_PARAMETER; 2040 1941 rc = GMMR0QueryHypervisorMemoryStatsReq((PGMMMEMSTATSREQ)pReqHdr); 2041 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2042 1942 break; 2043 1943 … … 2048 1948 return VERR_INVALID_PARAMETER; 2049 1949 rc = GMMR0QueryMemoryStatsReq(pGVM, idCpu, (PGMMMEMSTATSREQ)pReqHdr); 2050 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2051 1950 break; 2052 1951 … … 2055 1954 return VERR_INVALID_PARAMETER; 2056 1955 rc = GMMR0BalloonedPagesReq(pGVM, idCpu, (PGMMBALLOONEDPAGESREQ)pReqHdr); 2057 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2058 1956 break; 2059 1957 … … 2062 1960 return VERR_INVALID_PARAMETER; 2063 1961 rc = GMMR0MapUnmapChunkReq(pGVM, (PGMMMAPUNMAPCHUNKREQ)pReqHdr); 2064 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2065 1962 break; 2066 1963 … … 2069 1966 return VERR_INVALID_PARAMETER; 2070 1967 rc = GMMR0SeedChunk(pGVM, idCpu, (RTR3PTR)u64Arg); 2071 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2072 1968 break; 2073 1969 … … 2078 1974 return VERR_INVALID_PARAMETER; 2079 1975 rc = GMMR0RegisterSharedModuleReq(pGVM, idCpu, (PGMMREGISTERSHAREDMODULEREQ)pReqHdr); 2080 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2081 1976 break; 2082 1977 … … 2087 1982 return VERR_INVALID_PARAMETER; 2088 1983 rc = GMMR0UnregisterSharedModuleReq(pGVM, idCpu, (PGMMUNREGISTERSHAREDMODULEREQ)pReqHdr); 2089 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2090 1984 break; 2091 1985 … … 2097 1991 return VERR_INVALID_PARAMETER; 2098 1992 rc = GMMR0ResetSharedModules(pGVM, idCpu); 2099 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2100 1993 break; 2101 1994 … … 2109 2002 return VERR_INVALID_PARAMETER; 2110 2003 rc = GMMR0CheckSharedModules(pGVM, idCpu); 2111 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2112 2004 break; 2113 2005 } … … 2119 2011 return VERR_INVALID_PARAMETER; 2120 2012 rc = GMMR0FindDuplicatePageReq(pGVM, (PGMMFINDDUPLICATEPAGEREQ)pReqHdr); 2121 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2122 2013 break; 2123 2014 #endif … … 2127 2018 return VERR_INVALID_PARAMETER; 2128 2019 rc = GMMR0QueryStatisticsReq(pGVM, (PGMMQUERYSTATISTICSSREQ)pReqHdr); 2129 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2130 2020 break; 2131 2021 … … 2134 2024 return VERR_INVALID_PARAMETER; 2135 2025 rc = GMMR0ResetStatisticsReq(pGVM, (PGMMRESETSTATISTICSSREQ)pReqHdr); 2136 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2137 2026 break; 2138 2027 … … 2161 2050 // rc = GMMR0QueryConfig(pReq->pSession, &pReq->szName[0], &pReq->u64Value); 2162 2051 } 2163 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2164 2052 break; 2165 2053 } … … 2173 2061 return VERR_INVALID_PARAMETER; 2174 2062 rc = PDMR0DriverCallReqHandler(pGVM, (PPDMDRIVERCALLREQHANDLERREQ)pReqHdr); 2175 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2176 2063 break; 2177 2064 } … … 2182 2069 return VERR_INVALID_PARAMETER; 2183 2070 rc = PDMR0DeviceCreateReqHandler(pGVM, (PPDMDEVICECREATEREQ)pReqHdr); 2184 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2185 2071 break; 2186 2072 } … … 2191 2077 return VERR_INVALID_PARAMETER; 2192 2078 rc = PDMR0DeviceGenCallReqHandler(pGVM, (PPDMDEVICEGENCALLREQ)pReqHdr, idCpu); 2193 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2194 2079 break; 2195 2080 } … … 2201 2086 return VERR_INVALID_PARAMETER; 2202 2087 rc = PDMR0DeviceCompatSetCritSectReqHandler(pGVM, (PPDMDEVICECOMPATSETCRITSECTREQ)pReqHdr); 2203 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2204 2088 break; 2205 2089 } … … 2214 2098 return VERR_INVALID_PARAMETER; 2215 2099 rc = IntNetR0OpenReq(pSession, pReq); 2216 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2217 2100 break; 2218 2101 } … … 2222 2105 return VERR_INVALID_PARAMETER; 2223 2106 rc = IntNetR0IfCloseReq(pSession, (PINTNETIFCLOSEREQ)pReqHdr); 2224 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2225 2107 break; 2226 2108 … … 2230 2112 return VERR_INVALID_PARAMETER; 2231 2113 rc = IntNetR0IfGetBufferPtrsReq(pSession, (PINTNETIFGETBUFFERPTRSREQ)pReqHdr); 2232 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2233 2114 break; 2234 2115 … … 2237 2118 return VERR_INVALID_PARAMETER; 2238 2119 rc = IntNetR0IfSetPromiscuousModeReq(pSession, (PINTNETIFSETPROMISCUOUSMODEREQ)pReqHdr); 2239 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2240 2120 break; 2241 2121 … … 2244 2124 return VERR_INVALID_PARAMETER; 2245 2125 rc = IntNetR0IfSetMacAddressReq(pSession, (PINTNETIFSETMACADDRESSREQ)pReqHdr); 2246 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2247 2126 break; 2248 2127 … … 2251 2130 return VERR_INVALID_PARAMETER; 2252 2131 rc = IntNetR0IfSetActiveReq(pSession, (PINTNETIFSETACTIVEREQ)pReqHdr); 2253 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2254 2132 break; 2255 2133 … … 2258 2136 return VERR_INVALID_PARAMETER; 2259 2137 rc = IntNetR0IfSendReq(pSession, (PINTNETIFSENDREQ)pReqHdr); 2260 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2261 2138 break; 2262 2139 … … 2265 2142 return VERR_INVALID_PARAMETER; 2266 2143 rc = IntNetR0IfWaitReq(pSession, (PINTNETIFWAITREQ)pReqHdr); 2267 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2268 2144 break; 2269 2145 … … 2272 2148 return VERR_INVALID_PARAMETER; 2273 2149 rc = IntNetR0IfAbortWaitReq(pSession, (PINTNETIFABORTWAITREQ)pReqHdr); 2274 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2275 2150 break; 2276 2151 … … 2283 2158 return VERR_INVALID_PARAMETER; 2284 2159 rc = PciRawR0ProcessReq(pGVM, pSession, (PPCIRAWSENDREQ)pReqHdr); 2285 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2286 2160 break; 2287 2161 #endif … … 2296 2170 return VERR_INVALID_PARAMETER; 2297 2171 rc = NEMR0InitVM(pGVM); 2298 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2299 2172 break; 2300 2173 … … 2303 2176 return VERR_INVALID_PARAMETER; 2304 2177 rc = NEMR0InitVMPart2(pGVM); 2305 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2306 2178 break; 2307 2179 … … 2310 2182 return VERR_INVALID_PARAMETER; 2311 2183 rc = NEMR0MapPages(pGVM, idCpu); 2312 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2313 2184 break; 2314 2185 … … 2317 2188 return VERR_INVALID_PARAMETER; 2318 2189 rc = NEMR0UnmapPages(pGVM, idCpu); 2319 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2320 2190 break; 2321 2191 … … 2324 2194 return VERR_INVALID_PARAMETER; 2325 2195 rc = NEMR0ExportState(pGVM, idCpu); 2326 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2327 2196 break; 2328 2197 … … 2331 2200 return VERR_INVALID_PARAMETER; 2332 2201 rc = NEMR0ImportState(pGVM, idCpu, u64Arg); 2333 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2334 2202 break; 2335 2203 … … 2338 2206 return VERR_INVALID_PARAMETER; 2339 2207 rc = NEMR0QueryCpuTick(pGVM, idCpu); 2340 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2341 2208 break; 2342 2209 … … 2345 2212 return VERR_INVALID_PARAMETER; 2346 2213 rc = NEMR0ResumeCpuTickOnAll(pGVM, idCpu, u64Arg); 2347 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2348 2214 break; 2349 2215 … … 2352 2218 return VERR_INVALID_PARAMETER; 2353 2219 rc = NEMR0UpdateStatistics(pGVM, idCpu); 2354 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2355 2220 break; 2356 2221 … … 2360 2225 return VERR_INVALID_PARAMETER; 2361 2226 rc = NEMR0DoExperiment(pGVM, idCpu, u64Arg); 2362 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2363 2227 break; 2364 2228 # endif … … 2374 2238 return VERR_INVALID_PARAMETER; 2375 2239 rc = IOMR0IoPortGrowRegistrationTables(pGVM, u64Arg); 2376 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2377 2240 break; 2378 2241 } … … 2383 2246 return VERR_INVALID_PARAMETER; 2384 2247 rc = IOMR0IoPortGrowStatisticsTable(pGVM, u64Arg); 2385 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2386 2248 break; 2387 2249 } … … 2392 2254 return VERR_INVALID_PARAMETER; 2393 2255 rc = IOMR0MmioGrowRegistrationTables(pGVM, u64Arg); 2394 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2395 2256 break; 2396 2257 } … … 2401 2262 return VERR_INVALID_PARAMETER; 2402 2263 rc = IOMR0MmioGrowStatisticsTable(pGVM, u64Arg); 2403 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2404 2264 break; 2405 2265 } … … 2412 2272 if (RT_SUCCESS(rc)) 2413 2273 rc = IOMR0MmioSyncStatisticsIndices(pGVM); 2414 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2415 2274 break; 2416 2275 } … … 2425 2284 return VERR_INVALID_PARAMETER; 2426 2285 rc = DBGFR0TracerCreateReqHandler(pGVM, (PDBGFTRACERCREATEREQ)pReqHdr); 2427 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2428 2286 break; 2429 2287 } … … 2438 2296 rc = VERR_NOT_IMPLEMENTED; 2439 2297 # endif 2440 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2441 2298 break; 2442 2299 } … … 2448 2305 return VERR_INVALID_PARAMETER; 2449 2306 rc = DBGFR0BpInitReqHandler(pGVM, (PDBGFBPINITREQ)pReqHdr); 2450 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2451 2307 break; 2452 2308 } … … 2457 2313 return VERR_INVALID_PARAMETER; 2458 2314 rc = DBGFR0BpChunkAllocReqHandler(pGVM, (PDBGFBPCHUNKALLOCREQ)pReqHdr); 2459 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2460 2315 break; 2461 2316 } … … 2466 2321 return VERR_INVALID_PARAMETER; 2467 2322 rc = DBGFR0BpL2TblChunkAllocReqHandler(pGVM, (PDBGFBPL2TBLCHUNKALLOCREQ)pReqHdr); 2468 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2469 2323 break; 2470 2324 } … … 2475 2329 return VERR_INVALID_PARAMETER; 2476 2330 rc = DBGFR0BpOwnerInitReqHandler(pGVM, (PDBGFBPOWNERINITREQ)pReqHdr); 2477 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2478 2331 break; 2479 2332 } … … 2484 2337 return VERR_INVALID_PARAMETER; 2485 2338 rc = DBGFR0BpPortIoInitReqHandler(pGVM, (PDBGFBPINITREQ)pReqHdr); 2486 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2487 2339 break; 2488 2340 } … … 2497 2349 return VERR_INVALID_PARAMETER; 2498 2350 rc = TMR0TimerQueueGrow(pGVM, RT_HI_U32(u64Arg), RT_LO_U32(u64Arg)); 2499 VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);2500 2351 break; 2501 2352 }
Note:
See TracChangeset
for help on using the changeset viewer.