add sbrk and a usertest

This commit is contained in:
闭浩扬 2023-02-04 22:15:17 +08:00
parent aaa42cfeb2
commit f45e14bfeb
8 changed files with 153 additions and 1 deletions

View file

@ -1,6 +1,6 @@
//! Process management syscalls
use crate::task::{exit_current_and_run_next, suspend_current_and_run_next};
use crate::task::{exit_current_and_run_next, suspend_current_and_run_next, change_program_brk};
use crate::timer::get_time_ms;
/// task exits and submit an exit code
@ -20,3 +20,12 @@ pub fn sys_yield() -> isize {
pub fn sys_get_time() -> isize {
get_time_ms() as isize
}
/// change data segment size
pub fn sys_sbrk(size: i32) -> isize {
if let Some(old_brk) = change_program_brk(size) {
old_brk as isize
} else {
-1
}
}