X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/986ce23ace2f7875a1a561bd947f435a7594146c..b60166b327a9108b07e3069fa6568a451529ffd9:/lunaix-os/kernel/mm/dmm.c diff --git a/lunaix-os/kernel/mm/dmm.c b/lunaix-os/kernel/mm/dmm.c index 3da8501..a76b9de 100644 --- a/lunaix-os/kernel/mm/dmm.c +++ b/lunaix-os/kernel/mm/dmm.c @@ -24,17 +24,19 @@ create_heap(struct proc_mm* pvms, ptr_t addr) .mlen = PG_SIZE }; int status = 0; struct mm_region* heap; - if ((status = mem_map(NULL, &heap, addr, NULL, &map_param))) { + if ((status = mmap_user(NULL, &heap, addr, NULL, &map_param))) { return status; } heap->region_copied = __heap_copied; mm_index((void**)&pvms->heap, heap); + + return status; } __DEFINE_LXSYSCALL1(void*, sbrk, ssize_t, incr) { - struct proc_mm* pvms = &__current->mm; + struct proc_mm* pvms = vmspace(__current); struct mm_region* heap = pvms->heap; assert(heap); @@ -47,11 +49,11 @@ __DEFINE_LXSYSCALL1(void*, sbrk, ssize_t, incr) __DEFINE_LXSYSCALL1(int, brk, void*, addr) { - struct proc_mm* pvms = &__current->mm; + struct proc_mm* pvms = vmspace(__current); struct mm_region* heap = pvms->heap; if (!heap) { - return DO_STATUS(create_heap(pvms, addr)); + return DO_STATUS(create_heap(pvms, (ptr_t)addr)); } assert(heap);