[USER] brk syscall
This commit is contained in:
19
kernel/syscall/sys_mem.c
Normal file
19
kernel/syscall/sys_mem.c
Normal file
@@ -0,0 +1,19 @@
|
||||
#include <syscall.h>
|
||||
#include <scheduler.h>
|
||||
#include <debug.h>
|
||||
|
||||
|
||||
SYSCALL_DEF(brk)
|
||||
{
|
||||
SYSCALL_INIT(uint64_t, addr);
|
||||
procmm_area_t *brk = get_current_process()->mmap->brk;
|
||||
|
||||
if(addr)
|
||||
{
|
||||
size_t len = addr - brk->start;
|
||||
procmm_resize(get_current_process(), brk, len);
|
||||
return brk->end;
|
||||
} else {
|
||||
return brk->end;
|
||||
}
|
||||
}
|
||||
@@ -57,6 +57,7 @@ void syscall_init()
|
||||
|
||||
SYSCALL_REGISTER(debug, SYS_DEBUG);
|
||||
SYSCALL_REGISTER(write, SYS_WRITE);
|
||||
SYSCALL_REGISTER(brk, SYS_BRK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user