33use alloc:: sync:: Arc ;
44
55use crate :: {
6- config:: MAX_SYSCALL_NUM ,
76 fs:: { open_file, OpenFlags } ,
87 mm:: { translated_refmut, translated_str} ,
98 task:: {
109 add_task, current_task, current_user_token, exit_current_and_run_next,
11- suspend_current_and_run_next, TaskStatus ,
10+ suspend_current_and_run_next,
1211 } ,
1312} ;
1413
@@ -19,17 +18,6 @@ pub struct TimeVal {
1918 pub usec : usize ,
2019}
2120
22- /// Task information
23- #[ allow( dead_code) ]
24- pub struct TaskInfo {
25- /// Task status in it's life cycle
26- status : TaskStatus ,
27- /// The numbers of syscall called by task
28- syscall_times : [ u32 ; MAX_SYSCALL_NUM ] ,
29- /// Total running time of task
30- time : usize ,
31- }
32-
3321pub fn sys_exit ( exit_code : i32 ) -> ! {
3422 trace ! ( "kernel:pid[{}] sys_exit" , current_task( ) . unwrap( ) . pid. 0 ) ;
3523 exit_current_and_run_next ( exit_code) ;
@@ -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