(id: usize, args: [usize; 3])
| 31 | const SYSCALL_KEY_PRESSED: usize = 3001; |
| 32 | |
| 33 | fn syscall(id: usize, args: [usize; 3]) -> isize { |
| 34 | let mut ret: isize; |
| 35 | unsafe { |
| 36 | core::arch::asm!( |
| 37 | "ecall", |
| 38 | inlateout("x10") args[0] => ret, |
| 39 | in("x11") args[1], |
| 40 | in("x12") args[2], |
| 41 | in("x17") id |
| 42 | ); |
| 43 | } |
| 44 | ret |
| 45 | } |
| 46 | |
| 47 | pub fn sys_dup(fd: usize) -> isize { |
| 48 | syscall(SYSCALL_DUP, [fd, 0, 0]) |
no outgoing calls
no test coverage detected