(syscall_id: usize, args: [usize; 3])
| 45 | use thread::*; |
| 46 | |
| 47 | pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize { |
| 48 | match syscall_id { |
| 49 | SYSCALL_DUP => sys_dup(args[0]), |
| 50 | SYSCALL_OPEN => sys_open(args[0] as *const u8, args[1] as u32), |
| 51 | SYSCALL_CLOSE => sys_close(args[0]), |
| 52 | SYSCALL_PIPE => sys_pipe(args[0] as *mut usize), |
| 53 | SYSCALL_READ => sys_read(args[0], args[1] as *const u8, args[2]), |
| 54 | SYSCALL_WRITE => sys_write(args[0], args[1] as *const u8, args[2]), |
| 55 | SYSCALL_EXIT => sys_exit(args[0] as i32), |
| 56 | SYSCALL_SLEEP => sys_sleep(args[0]), |
| 57 | SYSCALL_YIELD => sys_yield(), |
| 58 | SYSCALL_KILL => sys_kill(args[0], args[1] as u32), |
| 59 | SYSCALL_GET_TIME => sys_get_time(), |
| 60 | SYSCALL_GETPID => sys_getpid(), |
| 61 | SYSCALL_FORK => sys_fork(), |
| 62 | SYSCALL_EXEC => sys_exec(args[0] as *const u8, args[1] as *const usize), |
| 63 | SYSCALL_WAITPID => sys_waitpid(args[0] as isize, args[1] as *mut i32), |
| 64 | SYSCALL_THREAD_CREATE => sys_thread_create(args[0], args[1]), |
| 65 | SYSCALL_GETTID => sys_gettid(), |
| 66 | SYSCALL_WAITTID => sys_waittid(args[0]) as isize, |
| 67 | SYSCALL_MUTEX_CREATE => sys_mutex_create(args[0] == 1), |
| 68 | SYSCALL_MUTEX_LOCK => sys_mutex_lock(args[0]), |
| 69 | SYSCALL_MUTEX_UNLOCK => sys_mutex_unlock(args[0]), |
| 70 | SYSCALL_SEMAPHORE_CREATE => sys_semaphore_create(args[0]), |
| 71 | SYSCALL_SEMAPHORE_UP => sys_semaphore_up(args[0]), |
| 72 | SYSCALL_SEMAPHORE_DOWN => sys_semaphore_down(args[0]), |
| 73 | SYSCALL_CONDVAR_CREATE => sys_condvar_create(args[0]), |
| 74 | SYSCALL_CONDVAR_SIGNAL => sys_condvar_signal(args[0]), |
| 75 | SYSCALL_CONDVAR_WAIT => sys_condvar_wait(args[0], args[1]), |
| 76 | SYSCALL_FRAMEBUFFER => sys_framebuffer(), |
| 77 | SYSCALL_FRAMEBUFFER_FLUSH => sys_framebuffer_flush(), |
| 78 | SYSCALL_EVENT_GET => sys_event_get(), |
| 79 | SYSCALL_KEY_PRESSED => sys_key_pressed(), |
| 80 | _ => panic!("Unsupported syscall_id: {}", syscall_id), |
| 81 | } |
| 82 | } |
no test coverage detected