@@ -27,18 +27,22 @@ const SYSCALL_CONDVAR_SIGNAL: usize = 1031;
2727const SYSCALL_CONDVAR_WAIT : usize = 1032 ;
2828const SYSCALL_CREATE_DESKTOP : usize = 2000 ;
2929mod fs;
30+ #[ cfg( feature = "board_qemu" ) ]
3031mod gui;
3132mod process;
3233mod sync;
3334mod thread;
34-
35+ # [ cfg ( feature = "board_qemu" ) ]
3536pub use self :: gui:: create_desktop;
3637use fs:: * ;
38+
39+ #[ cfg( feature = "board_qemu" ) ]
3740pub use gui:: PAD ;
3841use process:: * ;
3942use sync:: * ;
4043use thread:: * ;
4144
45+ #[ cfg( feature = "board_qemu" ) ]
4246pub fn syscall ( syscall_id : usize , args : [ usize ; 3 ] ) -> isize {
4347 match syscall_id {
4448 SYSCALL_DUP => sys_dup ( args[ 0 ] ) ,
@@ -72,3 +76,37 @@ pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize {
7276 _ => panic ! ( "Unsupported syscall_id: {}" , syscall_id) ,
7377 }
7478}
79+
80+ #[ cfg( feature = "board_k210" ) ]
81+ pub fn syscall ( syscall_id : usize , args : [ usize ; 3 ] ) -> isize {
82+ match syscall_id {
83+ SYSCALL_DUP => sys_dup ( args[ 0 ] ) ,
84+ SYSCALL_OPEN => sys_open ( args[ 0 ] as * const u8 , args[ 1 ] as u32 ) ,
85+ SYSCALL_CLOSE => sys_close ( args[ 0 ] ) ,
86+ SYSCALL_PIPE => sys_pipe ( args[ 0 ] as * mut usize ) ,
87+ SYSCALL_READ => sys_read ( args[ 0 ] , args[ 1 ] as * const u8 , args[ 2 ] ) ,
88+ SYSCALL_WRITE => sys_write ( args[ 0 ] , args[ 1 ] as * const u8 , args[ 2 ] ) ,
89+ SYSCALL_EXIT => sys_exit ( args[ 0 ] as i32 ) ,
90+ SYSCALL_SLEEP => sys_sleep ( args[ 0 ] ) ,
91+ SYSCALL_YIELD => sys_yield ( ) ,
92+ SYSCALL_KILL => sys_kill ( args[ 0 ] , args[ 1 ] as u32 ) ,
93+ SYSCALL_GET_TIME => sys_get_time ( ) ,
94+ SYSCALL_GETPID => sys_getpid ( ) ,
95+ SYSCALL_FORK => sys_fork ( ) ,
96+ SYSCALL_EXEC => sys_exec ( args[ 0 ] as * const u8 , args[ 1 ] as * const usize ) ,
97+ SYSCALL_WAITPID => sys_waitpid ( args[ 0 ] as isize , args[ 1 ] as * mut i32 ) ,
98+ SYSCALL_THREAD_CREATE => sys_thread_create ( args[ 0 ] , args[ 1 ] ) ,
99+ SYSCALL_GETTID => sys_gettid ( ) ,
100+ SYSCALL_WAITTID => sys_waittid ( args[ 0 ] ) as isize ,
101+ SYSCALL_MUTEX_CREATE => sys_mutex_create ( args[ 0 ] == 1 ) ,
102+ SYSCALL_MUTEX_LOCK => sys_mutex_lock ( args[ 0 ] ) ,
103+ SYSCALL_MUTEX_UNLOCK => sys_mutex_unlock ( args[ 0 ] ) ,
104+ SYSCALL_SEMAPHORE_CREATE => sys_semaphore_create ( args[ 0 ] ) ,
105+ SYSCALL_SEMAPHORE_UP => sys_semaphore_up ( args[ 0 ] ) ,
106+ SYSCALL_SEMAPHORE_DOWN => sys_semaphore_down ( args[ 0 ] ) ,
107+ SYSCALL_CONDVAR_CREATE => sys_condvar_create ( args[ 0 ] ) ,
108+ SYSCALL_CONDVAR_SIGNAL => sys_condvar_signal ( args[ 0 ] ) ,
109+ SYSCALL_CONDVAR_WAIT => sys_condvar_wait ( args[ 0 ] , args[ 1 ] ) ,
110+ _ => panic ! ( "Unsupported syscall_id: {}" , syscall_id) ,
111+ }
112+ }
0 commit comments