Changeset 92718 in vbox for trunk/src/VBox/HostDrivers
- Timestamp:
- Dec 2, 2021 9:44:14 PM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 148619
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/SUPLib.cpp
r92697 r92718 1129 1129 if (g_supLibData.fDriverless) 1130 1130 { 1131 int rc = SUPR3PageAlloc(cPages * PAGE_SIZE, 0 /*fFlags*/, ppvPages);1131 int rc = SUPR3PageAlloc(cPages, 0 /*fFlags*/, ppvPages); 1132 1132 if (pR0Ptr) 1133 1133 *pR0Ptr = NIL_RTR0PTR; … … 1222 1222 *pR0Ptr = NIL_RTR0PTR; 1223 1223 1224 /* fake */ 1225 if (RT_UNLIKELY(g_uSupFakeMode)) 1226 return VERR_NOT_SUPPORTED; 1224 /* 1225 * Not a valid operation in driverless mode. 1226 */ 1227 AssertReturn(g_supLibData.fDriverless, VERR_SUP_DRIVERLESS); 1227 1228 1228 1229 /* … … 1259 1260 AssertReturn(!(fProt & ~(RTMEM_PROT_NONE | RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC)), VERR_INVALID_PARAMETER); 1260 1261 1261 /* fake */ 1262 if (RT_UNLIKELY(g_uSupFakeMode)) 1262 /* 1263 * Deal with driverless mode first. 1264 */ 1265 if (g_supLibData.fDriverless) 1263 1266 return RTMemProtect((uint8_t *)pvR3 + off, cb, fProt); 1264 1267 … … 1299 1302 AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE); 1300 1303 1301 /* fake */ 1302 if (RT_UNLIKELY(g_uSupFakeMode)) 1303 { 1304 RTMemPageFree(pvPages, cPages * PAGE_SIZE); 1304 /* 1305 * Deal with driverless mode first. 1306 */ 1307 if (g_supLibData.fDriverless) 1308 { 1309 SUPR3PageFree(pvPages, cPages); 1305 1310 return VINF_SUCCESS; 1306 1311 } … … 1348 1353 AssertMsgReturn(cPages > 0 && cPages < 256, ("cPages=%d must be > 0 and < 256\n", cPages), NULL); 1349 1354 1350 /* fake */ 1351 if (RT_UNLIKELY(g_uSupFakeMode)) 1352 { 1353 void *pv = RTMemPageAllocZ(cPages * PAGE_SIZE); 1355 /* 1356 * Deal with driverless mode first. 1357 */ 1358 if (g_supLibData.fDriverless) 1359 { 1360 void *pvPages = NULL; 1361 int rc = SUPR3PageAlloc(cPages, 0 /*fFlags*/, &pvPages); 1354 1362 if (pR0Ptr) 1355 *pR0Ptr = (RTR0PTR)pv;1363 *pR0Ptr = NIL_RTR0PTR; 1356 1364 if (pHCPhys) 1357 *pHCPhys = (uintptr_t)pv + (PAGE_SHIFT * 1024);1358 return pv;1365 *pHCPhys = NIL_RTHCPHYS; 1366 return RT_SUCCESS(rc) ? pvPages : NULL; 1359 1367 } 1360 1368 … … 1397 1405 AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE); 1398 1406 1399 /* fake */ 1400 if (RT_UNLIKELY(g_uSupFakeMode)) 1401 { 1402 RTMemPageFree(pv, cPages * PAGE_SIZE); 1403 return VINF_SUCCESS; 1404 } 1407 /* 1408 * Deal with driverless mode first. 1409 */ 1410 if (g_supLibData.fDriverless) 1411 return SUPR3PageFree(pv, cPages); 1405 1412 1406 1413 /*
Note:
See TracChangeset
for help on using the changeset viewer.