22use alloc:: sync:: Arc ;
33
44use crate :: {
5- config:: MAX_SYSCALL_NUM ,
65 loader:: get_app_data_by_name,
76 mm:: { translated_refmut, translated_str} ,
87 task:: {
98 add_task, current_task, current_user_token, exit_current_and_run_next,
10- suspend_current_and_run_next, TaskStatus ,
9+ suspend_current_and_run_next,
1110 } ,
1211} ;
1312
@@ -18,17 +17,6 @@ pub struct TimeVal {
1817 pub usec : usize ,
1918}
2019
21- /// Task information
22- #[ allow( dead_code) ]
23- pub struct TaskInfo {
24- /// Task status in it's life cycle
25- status : TaskStatus ,
26- /// The numbers of syscall called by task
27- syscall_times : [ u32 ; MAX_SYSCALL_NUM ] ,
28- /// Total running time of task
29- time : usize ,
30- }
31-
3220/// task exits and submit an exit code
3321pub fn sys_exit ( exit_code : i32 ) -> ! {
3422 trace ! ( "kernel:pid[{}] sys_exit" , current_task( ) . unwrap( ) . pid. 0 ) ;
@@ -125,17 +113,6 @@ pub fn sys_get_time(_ts: *mut TimeVal, _tz: usize) -> isize {
125113 -1
126114}
127115
128- /// YOUR JOB: Finish sys_task_info to pass testcases
129- /// HINT: You might reimplement it with virtual memory management.
130- /// HINT: What if [`TaskInfo`] is splitted by two pages ?
131- pub fn sys_task_info ( _ti : * mut TaskInfo ) -> isize {
132- trace ! (
133- "kernel:pid[{}] sys_task_info NOT IMPLEMENTED" ,
134- current_task( ) . unwrap( ) . pid. 0
135- ) ;
136- -1
137- }
138-
139116/// YOUR JOB: Implement mmap.
140117pub fn sys_mmap ( _start : usize , _len : usize , _port : usize ) -> isize {
141118 trace ! (
0 commit comments