-
-__DEFINE_LXSYSCALL1(int, sbrk, void*, addr) {
- heap_context_t* uheap = &__current->mm.u_heap;
- mutex_lock(&uheap->lock);
- int r = lxsbrk(uheap, addr);
- mutex_unlock(&uheap->lock);
- return r;
-}
-
-__DEFINE_LXSYSCALL1(void*, brk, size_t, size) {
- heap_context_t* uheap = &__current->mm.u_heap;
- mutex_lock(&uheap->lock);
- void* r = lxbrk(uheap, size);
- mutex_unlock(&uheap->lock);
- return r;
-}
-
-int
-dmm_init(heap_context_t* heap)
-{
- assert((uintptr_t)heap->start % BOUNDARY == 0);
-
- heap->brk = heap->start;
- mutex_init(&heap->lock);
-
- return vmm_alloc_page(__current->pid, heap->brk, NULL, PG_PREM_RW, 0) != NULL;
-}
-
-int
-lxsbrk(heap_context_t* heap, void* addr)