X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/61bcf0c65dac58d2f29ab40e016489c89ec8eec0..f4c2f90eddf42f1cc73a2a12ff1435cd4357fa60:/lunaix-os/kernel/mm/dmm.c diff --git a/lunaix-os/kernel/mm/dmm.c b/lunaix-os/kernel/mm/dmm.c index cb87202..edc28ef 100644 --- a/lunaix-os/kernel/mm/dmm.c +++ b/lunaix-os/kernel/mm/dmm.c @@ -24,8 +24,6 @@ #include #include -extern void __kernel_heap_start; - __DEFINE_LXSYSCALL1(int, sbrk, size_t, size) { heap_context_t* uheap = &__current->mm.u_heap; @@ -52,13 +50,11 @@ dmm_init(heap_context_t* heap) heap->brk = heap->start; mutex_init(&heap->lock); - int perm = PG_ALLOW_USER; - if (heap->brk >= &__kernel_heap_start) { - perm = 0; - } - - return vmm_set_mapping(PD_REFERENCED, heap->brk, 0, PG_WRITE | perm) != - NULL; + return vmm_set_mapping(PD_REFERENCED, + heap->brk, + 0, + PG_WRITE | PG_ALLOW_USER, + VMAP_NULL) != NULL; } int @@ -93,7 +89,8 @@ lxsbrk(heap_context_t* heap, size_t size, int user) vmm_set_mapping(PD_REFERENCED, PG_ALIGN(current_brk) + PG_SIZE + i, 0, - PG_WRITE | user); + PG_WRITE | user, + VMAP_NULL); } }