X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/45e1f8b055043e54be35462852ab6649d634da7c..28c176b668c841a3b7fb093faccf0efa39257603:/lunaix-os/kernel/mm/dmm.c diff --git a/lunaix-os/kernel/mm/dmm.c b/lunaix-os/kernel/mm/dmm.c index 0fc2b68..50804db 100644 --- a/lunaix-os/kernel/mm/dmm.c +++ b/lunaix-os/kernel/mm/dmm.c @@ -21,10 +21,10 @@ create_heap(struct proc_mm* pvms, ptr_t addr) .flags = MAP_ANON | MAP_PRIVATE, .type = REGION_TYPE_HEAP, .proct = PROT_READ | PROT_WRITE, - .mlen = PG_SIZE }; + .mlen = PAGE_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; } @@ -36,20 +36,20 @@ create_heap(struct proc_mm* pvms, ptr_t addr) __DEFINE_LXSYSCALL1(void*, sbrk, ssize_t, incr) { - struct proc_mm* pvms = (struct proc_mm*)&__current->mm; + struct proc_mm* pvms = vmspace(__current); struct mm_region* heap = pvms->heap; assert(heap); int err = mem_adjust_inplace(&pvms->regions, heap, heap->end + incr); if (err) { - return (void*)DO_STATUS(err); + return (void*)__ptr(DO_STATUS(err)); } return (void*)heap->end; } __DEFINE_LXSYSCALL1(int, brk, void*, addr) { - struct proc_mm* pvms = (struct proc_mm*)&__current->mm; + struct proc_mm* pvms = vmspace(__current); struct mm_region* heap = pvms->heap; if (!heap) {