3
3
use alloc:: sync:: Arc ;
4
4
5
5
use crate :: {
6
- config:: MAX_SYSCALL_NUM ,
7
6
fs:: { open_file, OpenFlags } ,
8
7
mm:: { translated_refmut, translated_str} ,
9
8
task:: {
10
9
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,
12
11
} ,
13
12
} ;
14
13
@@ -19,17 +18,6 @@ pub struct TimeVal {
19
18
pub usec : usize ,
20
19
}
21
20
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
-
33
21
pub fn sys_exit ( exit_code : i32 ) -> ! {
34
22
trace ! ( "kernel:pid[{}] sys_exit" , current_task( ) . unwrap( ) . pid. 0 ) ;
35
23
exit_current_and_run_next ( exit_code) ;
@@ -125,17 +113,6 @@ pub fn sys_get_time(_ts: *mut TimeVal, _tz: usize) -> isize {
125
113
-1
126
114
}
127
115
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
-
139
116
/// YOUR JOB: Implement mmap.
140
117
pub fn sys_mmap ( _start : usize , _len : usize , _port : usize ) -> isize {
141
118
trace ! (
0 commit comments