VirtualBox

Changeset 92718 in vbox for trunk/src/VBox/HostDrivers


Ignore:
Timestamp:
Dec 2, 2021 9:44:14 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
148619
Message:

VMM/APIC,SUP: Driverless tweaks for the APIC code. bugref:10138

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/SUPLib.cpp

    r92697 r92718  
    11291129    if (g_supLibData.fDriverless)
    11301130    {
    1131         int rc = SUPR3PageAlloc(cPages * PAGE_SIZE, 0 /*fFlags*/, ppvPages);
     1131        int rc = SUPR3PageAlloc(cPages, 0 /*fFlags*/, ppvPages);
    11321132        if (pR0Ptr)
    11331133            *pR0Ptr = NIL_RTR0PTR;
     
    12221222    *pR0Ptr = NIL_RTR0PTR;
    12231223
    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);
    12271228
    12281229    /*
     
    12591260    AssertReturn(!(fProt & ~(RTMEM_PROT_NONE | RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC)), VERR_INVALID_PARAMETER);
    12601261
    1261     /* fake */
    1262     if (RT_UNLIKELY(g_uSupFakeMode))
     1262    /*
     1263     * Deal with driverless mode first.
     1264     */
     1265    if (g_supLibData.fDriverless)
    12631266        return RTMemProtect((uint8_t *)pvR3 + off, cb, fProt);
    12641267
     
    12991302    AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE);
    13001303
    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);
    13051310        return VINF_SUCCESS;
    13061311    }
     
    13481353    AssertMsgReturn(cPages > 0 && cPages < 256, ("cPages=%d must be > 0 and < 256\n", cPages), NULL);
    13491354
    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);
    13541362        if (pR0Ptr)
    1355             *pR0Ptr = (RTR0PTR)pv;
     1363            *pR0Ptr = NIL_RTR0PTR;
    13561364        if (pHCPhys)
    1357             *pHCPhys = (uintptr_t)pv + (PAGE_SHIFT * 1024);
    1358         return pv;
     1365            *pHCPhys = NIL_RTHCPHYS;
     1366        return RT_SUCCESS(rc) ? pvPages : NULL;
    13591367    }
    13601368
     
    13971405    AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE);
    13981406
    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);
    14051412
    14061413    /*
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