VirtualBox

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


Ignore:
Timestamp:
Jul 16, 2009 9:30:14 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
50163
Message:

vbi/memobj-r0drv-solaris.c: reserving kernel address space. (Same as r50146.) Fixes #4110.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r0drv/solaris/vbi/memobj-r0drv-solaris.c

    r21497 r21633  
    8989            break;
    9090
     91        case RTR0MEMOBJTYPE_RES_VIRT:
     92        {
     93            if (pMemSolaris->Core.u.ResVirt.R0Process == NIL_RTR0PROCESS)
     94                vmem_xfree(heap_arena, pMemSolaris->Core.pv, pMemSolaris->Core.cb);
     95            else
     96                AssertFailed();
     97            break;
     98        }
     99
    91100        /* unused */
    92101        case RTR0MEMOBJTYPE_PHYS:
    93         case RTR0MEMOBJTYPE_RES_VIRT:
    94102        default:
    95103            AssertMsgFailed(("enmType=%d\n", pMemSolaris->Core.enmType));
     
    253261int rtR0MemObjNativeReserveKernel(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment)
    254262{
    255     return VERR_NOT_IMPLEMENTED;
     263    PRTR0MEMOBJSOLARIS  pMemSolaris;
     264    void               *pv;
     265
     266    /*
     267     * Use xalloc.
     268     */
     269    pv = vmem_xalloc(heap_arena, cb, uAlignment, 0 /*phase*/, 0 /*nocross*/,
     270                     NULL /*minaddr*/, NULL /*maxaddr*/, VM_SLEEP);
     271    if (!pv)
     272        return VERR_NO_MEMORY;
     273    pMemSolaris = (PRTR0MEMOBJSOLARIS)rtR0MemObjNew(sizeof(*pMemSolaris), RTR0MEMOBJTYPE_RES_VIRT, pv, cb);
     274    if (!pMemSolaris)
     275    {
     276        vmem_xfree(heap_arena, pv, cb);
     277        return VERR_NO_MEMORY;
     278    }
     279
     280    pMemSolaris->Core.u.ResVirt.R0Process = NIL_RTR0PROCESS;
     281    *ppMem = &pMemSolaris->Core;
     282    return VINF_SUCCESS;
    256283}
    257284
     
    268295    return VERR_NOT_IMPLEMENTED;
    269296}
     297
    270298
    271299int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, PRTR0MEMOBJINTERNAL pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process)
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