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