X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/d251b620d312e819923e55e223e0eb43b72a3bc6..9b8e0c494de6b447b44454112748f702dffec90d:/lunaix-os/kernel/mm/dmm.c diff --git a/lunaix-os/kernel/mm/dmm.c b/lunaix-os/kernel/mm/dmm.c index 44f0f9e..4bf0439 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, VMAP_NULL) != NULL; + return vmm_set_mapping(VMS_SELF, + heap->brk, + 0, + PG_WRITE | PG_ALLOW_USER, + VMAP_NULL) != NULL; } int @@ -90,7 +86,7 @@ lxsbrk(heap_context_t* heap, size_t size, int user) if (diff) { // if next do require new pages to be mapped for (size_t i = 0; i < diff; i += PG_SIZE) { - vmm_set_mapping(PD_REFERENCED, + vmm_set_mapping(VMS_SELF, PG_ALIGN(current_brk) + PG_SIZE + i, 0, PG_WRITE | user,