add sbrk and a usertest
This commit is contained in:
parent
aaa42cfeb2
commit
f45e14bfeb
8 changed files with 153 additions and 1 deletions
|
@ -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
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue