VirtualBox

Changeset 82861 in vbox for trunk/src/VBox/Runtime


Ignore:
Timestamp:
Jan 26, 2020 2:43:54 PM (5 years ago)
Author:
vboxsync
Message:

IPRT/memobj-r0drv-darwin.cpp: Prefault user mappings too when the kernel supports it.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp

    r82860 r82861  
    10481048    if (pMemToMapDarwin->pMemDesc)
    10491049    {
    1050 #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
     1050#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101000 /* The kIOMapPrefault option was added in 10.10.0. */
     1051         IOMemoryMap *pMemMap = pMemToMapDarwin->pMemDesc->createMappingInTask((task_t)R0Process,
     1052                                                                              0,
     1053                                                                              kIOMapAnywhere | kIOMapDefaultCache | kIOMapPrefault,
     1054                                                                              offSub,
     1055                                                                              cbSub);
     1056#elif MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
     1057        static uint32_t volatile s_fOptions = UINT32_MAX;
     1058        uint32_t fOptions = s_fOptions;
     1059        if (RT_UNLIKELY(fOptions == UINT32_MAX))
     1060            s_fOptions = fOptions = version_major >= 14 ? 0x10000000 /*kIOMapPrefault*/ : 0; /* Since 10.10.0. */
    10511061        IOMemoryMap *pMemMap = pMemToMapDarwin->pMemDesc->createMappingInTask((task_t)R0Process,
    10521062                                                                              0,
    1053                                                                               kIOMapAnywhere | kIOMapDefaultCache,
     1063                                                                              kIOMapAnywhere | kIOMapDefaultCache | fOptions,
    10541064                                                                              offSub,
    10551065                                                                              cbSub);
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