.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);
__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);