summaryrefslogtreecommitdiff
path: root/components/lwp/syscall/syscall_dispatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'components/lwp/syscall/syscall_dispatch.c')
-rw-r--r--components/lwp/syscall/syscall_dispatch.c552
1 files changed, 552 insertions, 0 deletions
diff --git a/components/lwp/syscall/syscall_dispatch.c b/components/lwp/syscall/syscall_dispatch.c
new file mode 100644
index 0000000000..60ce5e316a
--- /dev/null
+++ b/components/lwp/syscall/syscall_dispatch.c
@@ -0,0 +1,552 @@
+/*
+ * Copyright (c) 2006-2025 RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <rtthread.h>
+#include "syscall_generic.h"
+
+#define DBG_TAG "lwp.syscall"
+#define DBG_LVL DBG_INFO
+#include <rtdbg.h>
+
+#if (defined(RT_USING_SAL) && defined(SAL_USING_POSIX))
+#define SYSCALL_NET(f) f
+#else
+#define SYSCALL_NET(f) SYSCALL_SIGN(sys_notimpl)
+#endif
+
+#if defined(RT_USING_DFS) && defined(ARCH_MM_MMU)
+#define SYSCALL_USPACE(f) f
+#else
+#define SYSCALL_USPACE(f) SYSCALL_SIGN(sys_notimpl)
+#endif
+
+extern int __sys_log_enable;
+extern void sys_accept();
+extern void sys_access();
+extern void sys_api();
+extern void sys_bind();
+extern void sys_brk();
+extern void sys_cacheflush();
+extern void sys_channel_close();
+extern void sys_channel_open();
+extern void sys_channel_recv_timeout();
+extern void sys_channel_reply();
+extern void sys_channel_send();
+extern void sys_channel_send_recv_timeout();
+extern void sys_chdir();
+extern void sys_chmod();
+extern void sys_chown();
+extern void sys_clock_getres();
+extern void sys_clock_gettime();
+extern void sys_clock_nanosleep();
+extern void sys_clock_settime();
+extern void sys_clone();
+extern void sys_close();
+extern void sys_closesocket();
+extern void sys_connect();
+extern void sys_device_close();
+extern void sys_device_control();
+extern void sys_device_find();
+extern void sys_device_init();
+extern void sys_device_open();
+extern void sys_device_read();
+extern void sys_device_register();
+extern void sys_device_write();
+extern void sys_dup();
+extern void sys_dup2();
+extern void sys_enter_critical();
+extern void sys_epoll_create1();
+extern void sys_epoll_ctl();
+extern void sys_epoll_pwait();
+extern void sys_event_create();
+extern void sys_event_delete();
+extern void sys_event_recv();
+extern void sys_event_send();
+extern void sys_eventfd2();
+extern void sys_exec();
+extern void sys_execve();
+extern void sys_exit();
+extern void sys_exit_critical();
+extern void sys_exit_group();
+extern void sys_fchdir();
+extern void sys_fchmod();
+extern void sys_fork();
+extern void sys_fstat();
+extern void sys_fstatfs();
+extern void sys_fstatfs64();
+extern void sys_fsync();
+extern void sys_ftruncate();
+extern void sys_futex();
+extern void sys_get_errno();
+extern void sys_get_robust_list();
+extern void sys_getaddrinfo();
+extern void sys_getcwd();
+extern void sys_getdents();
+extern void sys_gethostbyname2_r();
+extern void sys_getpeername();
+extern void sys_getpgid();
+extern void sys_getpid();
+extern void sys_getppid();
+extern void sys_getpriority();
+extern void sys_getrandom();
+extern void sys_getrlimit();
+extern void sys_getsid();
+extern void sys_getsockname();
+extern void sys_getsockopt();
+extern void sys_gettid();
+extern void sys_gettimeofday();
+extern void sys_hw_interrupt_disable();
+extern void sys_hw_interrupt_enable();
+extern void sys_ioctl();
+extern void sys_kill();
+extern void sys_link();
+extern void sys_listen();
+extern void sys_log();
+extern void sys_log_enable();
+extern void sys_lseek();
+extern void sys_lstat();
+extern void sys_lwp_sighandler_set();
+extern void sys_madvise();
+extern void sys_mb_create();
+extern void sys_mb_delete();
+extern void sys_mb_recv();
+extern void sys_mb_send();
+extern void sys_mb_send_wait();
+extern void sys_memfd_create();
+extern void sys_mkdir();
+extern void sys_mmap2();
+extern void sys_mount();
+extern void sys_mq_close();
+extern void sys_mq_create();
+extern void sys_mq_delete();
+extern void sys_mq_getsetattr();
+extern void sys_mq_notify();
+extern void sys_mq_open();
+extern void sys_mq_recv();
+extern void sys_mq_send();
+extern void sys_mq_timedreceive();
+extern void sys_mq_timedsend();
+extern void sys_mq_unlink();
+extern void sys_mq_urgent();
+extern void sys_mremap();
+extern void sys_munmap();
+extern void sys_mutex_create();
+extern void sys_mutex_delete();
+extern void sys_mutex_release();
+extern void sys_mutex_take();
+extern void sys_nanosleep();
+extern void sys_notimpl();
+extern void sys_open();
+extern void sys_openat();
+extern void sys_pipe();
+extern void sys_pmutex();
+extern void sys_poll();
+extern void sys_pread64();
+extern void sys_prlimit64();
+extern void sys_pwrite64();
+extern void sys_read();
+extern void sys_readlink();
+extern void sys_reboot();
+extern void sys_recv();
+extern void sys_recvfrom();
+extern void sys_recvmsg();
+extern void sys_rename();
+extern void sys_rmdir();
+extern void sys_rt_timer_control();
+extern void sys_rt_timer_create();
+extern void sys_rt_timer_delete();
+extern void sys_rt_timer_start();
+extern void sys_rt_timer_stop();
+extern void sys_sched_get_priority_max();
+extern void sys_sched_get_priority_min();
+extern void sys_sched_getaffinity();
+extern void sys_sched_getparam();
+extern void sys_sched_getscheduler();
+extern void sys_sched_setaffinity();
+extern void sys_sched_setparam();
+extern void sys_sched_setscheduler();
+extern void sys_sched_yield();
+extern void sys_select();
+extern void sys_sem_create();
+extern void sys_sem_delete();
+extern void sys_sem_release();
+extern void sys_sem_take();
+extern void sys_send();
+extern void sys_sendmsg();
+extern void sys_sendto();
+extern void sys_set_robust_list();
+extern void sys_set_thread_area();
+extern void sys_set_tid_address();
+extern void sys_setitimer();
+extern void sys_setpgid();
+extern void sys_setpriority();
+extern void sys_setrlimit();
+extern void sys_setsid();
+extern void sys_setsockopt();
+extern void sys_settimeofday();
+extern void sys_shm_alloc();
+extern void sys_shm_free();
+extern void sys_shm_retain();
+extern void sys_shmat();
+extern void sys_shmdt();
+extern void sys_shmget();
+extern void sys_shmrm();
+extern void sys_shutdown();
+extern void sys_sigaction();
+extern void sys_signalfd();
+extern void sys_sigpending();
+extern void sys_sigprocmask();
+extern void sys_sigtimedwait();
+extern void sys_socket();
+extern void sys_socketpair();
+extern void sys_stat();
+extern void sys_statfs();
+extern void sys_statfs64();
+extern void sys_symlink();
+extern void sys_sysinfo();
+extern void sys_syslog();
+extern void sys_thread_create();
+extern void sys_thread_delete();
+extern void sys_thread_find();
+extern void sys_thread_mdelay();
+extern void sys_thread_self();
+extern void sys_thread_sighandler_set();
+extern void sys_thread_sigprocmask();
+extern void sys_thread_startup();
+extern void sys_tick_get();
+extern void sys_timer_create();
+extern void sys_timer_delete();
+extern void sys_timer_getoverrun();
+extern void sys_timer_gettime();
+extern void sys_timer_settime();
+extern void sys_timerfd_create();
+extern void sys_timerfd_gettime();
+extern void sys_timerfd_settime();
+extern void sys_tkill();
+extern void sys_umount2();
+extern void sys_uname();
+extern void sys_unlink();
+extern void sys_utimensat();
+extern void sys_vfork();
+extern void sys_wait4();
+extern void sys_waitpid();
+extern void sys_write();
+const static struct rt_syscall_def func_table[] = {
+ SYSCALL_SIGN(sys_exit), /* 01 */
+ SYSCALL_SIGN(sys_read),
+ SYSCALL_SIGN(sys_write),
+ SYSCALL_SIGN(sys_lseek),
+ SYSCALL_SIGN(sys_open), /* 05 */
+ SYSCALL_SIGN(sys_close),
+ SYSCALL_SIGN(sys_ioctl),
+ SYSCALL_SIGN(sys_fstat),
+ SYSCALL_SIGN(sys_poll),
+ SYSCALL_SIGN(sys_nanosleep), /* 10 */
+ SYSCALL_SIGN(sys_gettimeofday),
+ SYSCALL_SIGN(sys_settimeofday),
+ SYSCALL_SIGN(sys_exec),
+ SYSCALL_SIGN(sys_kill),
+ SYSCALL_SIGN(sys_getpid), /* 15 */
+ SYSCALL_SIGN(sys_getpriority),
+ SYSCALL_SIGN(sys_setpriority),
+ SYSCALL_SIGN(sys_sem_create),
+ SYSCALL_SIGN(sys_sem_delete),
+ SYSCALL_SIGN(sys_sem_take), /* 20 */
+ SYSCALL_SIGN(sys_sem_release),
+ SYSCALL_SIGN(sys_mutex_create),
+ SYSCALL_SIGN(sys_mutex_delete),
+ SYSCALL_SIGN(sys_mutex_take),
+ SYSCALL_SIGN(sys_mutex_release), /* 25 */
+ SYSCALL_SIGN(sys_event_create),
+ SYSCALL_SIGN(sys_event_delete),
+ SYSCALL_SIGN(sys_event_send),
+ SYSCALL_SIGN(sys_event_recv),
+ SYSCALL_SIGN(sys_mb_create), /* 30 */
+ SYSCALL_SIGN(sys_mb_delete),
+ SYSCALL_SIGN(sys_mb_send),
+ SYSCALL_SIGN(sys_mb_send_wait),
+ SYSCALL_SIGN(sys_mb_recv),
+ SYSCALL_SIGN(sys_mq_create), /* 35 */
+ SYSCALL_SIGN(sys_mq_delete),
+ SYSCALL_SIGN(sys_mq_send),
+ SYSCALL_SIGN(sys_mq_urgent),
+ SYSCALL_SIGN(sys_mq_recv),
+ SYSCALL_SIGN(sys_thread_create), /* 40 */
+ SYSCALL_SIGN(sys_thread_delete),
+ SYSCALL_SIGN(sys_thread_startup),
+ SYSCALL_SIGN(sys_thread_self),
+ SYSCALL_SIGN(sys_channel_open),
+ SYSCALL_SIGN(sys_channel_close), /* 45 */
+ SYSCALL_SIGN(sys_channel_send),
+ SYSCALL_SIGN(sys_channel_send_recv_timeout),
+ SYSCALL_SIGN(sys_channel_reply),
+ SYSCALL_SIGN(sys_channel_recv_timeout),
+ SYSCALL_SIGN(sys_enter_critical), /* 50 */
+ SYSCALL_SIGN(sys_exit_critical),
+
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_brk)),
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_mmap2)),
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_munmap)),
+#ifdef ARCH_MM_MMU
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_shmget)), /* 55 */
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_shmrm)),
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_shmat)),
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_shmdt)),
+#else
+#ifdef RT_LWP_USING_SHM
+ SYSCALL_SIGN(sys_shm_alloc), /* 55 */
+ SYSCALL_SIGN(sys_shm_free),
+ SYSCALL_SIGN(sys_shm_retain),
+ SYSCALL_SIGN(sys_notimpl),
+#else
+ SYSCALL_SIGN(sys_notimpl), /* 55 */
+ SYSCALL_SIGN(sys_notimpl),
+ SYSCALL_SIGN(sys_notimpl),
+ SYSCALL_SIGN(sys_notimpl),
+#endif /* RT_LWP_USING_SHM */
+#endif /* ARCH_MM_MMU */
+ SYSCALL_SIGN(sys_device_init),
+ SYSCALL_SIGN(sys_device_register), /* 60 */
+ SYSCALL_SIGN(sys_device_control),
+ SYSCALL_SIGN(sys_device_find),
+ SYSCALL_SIGN(sys_device_open),
+ SYSCALL_SIGN(sys_device_close),
+ SYSCALL_SIGN(sys_device_read), /* 65 */
+ SYSCALL_SIGN(sys_device_write),
+
+ SYSCALL_SIGN(sys_stat),
+ SYSCALL_SIGN(sys_thread_find),
+
+ SYSCALL_NET(SYSCALL_SIGN(sys_accept)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_bind)), /* 70 */
+ SYSCALL_NET(SYSCALL_SIGN(sys_shutdown)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_getpeername)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_getsockname)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_getsockopt)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_setsockopt)), /* 75 */
+ SYSCALL_NET(SYSCALL_SIGN(sys_connect)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_listen)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_recv)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_recvfrom)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_send)), /* 80 */
+ SYSCALL_NET(SYSCALL_SIGN(sys_sendto)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_socket)),
+
+ SYSCALL_NET(SYSCALL_SIGN(sys_closesocket)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_getaddrinfo)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_gethostbyname2_r)), /* 85 */
+
+ SYSCALL_NET(SYSCALL_SIGN(sys_sendmsg)),
+ SYSCALL_NET(SYSCALL_SIGN(sys_recvmsg)),
+ SYSCALL_SIGN(sys_notimpl), /* network */
+ SYSCALL_SIGN(sys_notimpl), /* network */
+ SYSCALL_SIGN(sys_notimpl), /* network, 90 */
+ SYSCALL_SIGN(sys_notimpl), /* network */
+ SYSCALL_SIGN(sys_notimpl), /* network */
+ SYSCALL_SIGN(sys_notimpl), /* network */
+
+#ifdef RT_USING_DFS
+ SYSCALL_SIGN(sys_select),
+#else
+ SYSCALL_SIGN(sys_notimpl),
+#endif
+
+ SYSCALL_SIGN(sys_notimpl), /* SYSCALL_SIGN(sys_hw_interrupt_disable), 95 */
+ SYSCALL_SIGN(sys_notimpl), /* SYSCALL_SIGN(sys_hw_interrupt_enable) */
+
+ SYSCALL_SIGN(sys_tick_get),
+ SYSCALL_SIGN(sys_exit_group),
+
+ SYSCALL_SIGN(sys_notimpl), /* rt_delayed_work_init */
+ SYSCALL_SIGN(sys_notimpl), /* rt_work_submit, 100 */
+ SYSCALL_SIGN(sys_notimpl), /* rt_wqueue_wakeup */
+ SYSCALL_SIGN(sys_thread_mdelay),
+ SYSCALL_SIGN(sys_sigaction),
+ SYSCALL_SIGN(sys_sigprocmask),
+ SYSCALL_SIGN(sys_tkill), /* 105 */
+ SYSCALL_SIGN(sys_thread_sigprocmask),
+#ifdef ARCH_MM_MMU
+ SYSCALL_SIGN(sys_cacheflush),
+ SYSCALL_SIGN(sys_notimpl),
+ SYSCALL_SIGN(sys_notimpl),
+#else
+ SYSCALL_SIGN(sys_notimpl),
+ SYSCALL_SIGN(sys_lwp_sighandler_set),
+ SYSCALL_SIGN(sys_thread_sighandler_set),
+#endif
+ SYSCALL_SIGN(sys_waitpid), /* 110 */
+
+ SYSCALL_SIGN(sys_rt_timer_create),
+ SYSCALL_SIGN(sys_rt_timer_delete),
+ SYSCALL_SIGN(sys_rt_timer_start),
+ SYSCALL_SIGN(sys_rt_timer_stop),
+ SYSCALL_SIGN(sys_rt_timer_control), /* 115 */
+ SYSCALL_SIGN(sys_getcwd),
+ SYSCALL_SIGN(sys_chdir),
+ SYSCALL_SIGN(sys_unlink),
+ SYSCALL_SIGN(sys_mkdir),
+ SYSCALL_SIGN(sys_rmdir), /* 120 */
+ SYSCALL_SIGN(sys_getdents),
+ SYSCALL_SIGN(sys_get_errno),
+#ifdef ARCH_MM_MMU
+ SYSCALL_SIGN(sys_set_thread_area),
+ SYSCALL_SIGN(sys_set_tid_address),
+#else
+ SYSCALL_SIGN(sys_notimpl),
+ SYSCALL_SIGN(sys_notimpl),
+#endif
+ SYSCALL_SIGN(sys_access), /* 125 */
+ SYSCALL_SIGN(sys_pipe),
+ SYSCALL_SIGN(sys_clock_settime),
+ SYSCALL_SIGN(sys_clock_gettime),
+ SYSCALL_SIGN(sys_clock_getres),
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_clone)), /* 130 */
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_futex)),
+ SYSCALL_SIGN(sys_notimpl), /* discarded: sys_pmutex */
+ SYSCALL_SIGN(sys_dup),
+ SYSCALL_SIGN(sys_dup2),
+ SYSCALL_SIGN(sys_rename), /* 135 */
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_fork)),
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_execve)),
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_vfork)),
+ SYSCALL_SIGN(sys_gettid),
+ SYSCALL_SIGN(sys_prlimit64), /* 140 */
+ SYSCALL_SIGN(sys_getrlimit),
+ SYSCALL_SIGN(sys_setrlimit),
+ SYSCALL_SIGN(sys_setsid),
+ SYSCALL_SIGN(sys_getrandom),
+ SYSCALL_SIGN(sys_readlink), /* 145 */
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_mremap)),
+ SYSCALL_USPACE(SYSCALL_SIGN(sys_madvise)),
+ SYSCALL_SIGN(sys_sched_setparam),
+ SYSCALL_SIGN(sys_sched_getparam),
+ SYSCALL_SIGN(sys_sched_get_priority_max), /* 150 */
+ SYSCALL_SIGN(sys_sched_get_priority_min),
+ SYSCALL_SIGN(sys_sched_setscheduler),
+ SYSCALL_SIGN(sys_sched_getscheduler),
+ SYSCALL_SIGN(sys_sched_setaffinity),
+ SYSCALL_SIGN(sys_fsync), /* 155 */
+ SYSCALL_SIGN(sys_clock_nanosleep),
+ SYSCALL_SIGN(sys_timer_create),
+ SYSCALL_SIGN(sys_timer_delete),
+ SYSCALL_SIGN(sys_timer_settime),
+ SYSCALL_SIGN(sys_timer_gettime), /* 160 */
+ SYSCALL_SIGN(sys_timer_getoverrun),
+ SYSCALL_SIGN(sys_mq_open),
+ SYSCALL_SIGN(sys_mq_unlink),
+ SYSCALL_SIGN(sys_mq_timedsend),
+ SYSCALL_SIGN(sys_mq_timedreceive), /* 165 */
+ SYSCALL_SIGN(sys_mq_notify),
+ SYSCALL_SIGN(sys_mq_getsetattr),
+ SYSCALL_SIGN(sys_mq_close),
+ SYSCALL_SIGN(sys_lstat),
+ SYSCALL_SIGN(sys_uname), /* 170 */
+ SYSCALL_SIGN(sys_statfs),
+ SYSCALL_SIGN(sys_statfs64),
+ SYSCALL_SIGN(sys_fstatfs),
+ SYSCALL_SIGN(sys_fstatfs64),
+ SYSCALL_SIGN(sys_openat), /* 175 */
+ SYSCALL_SIGN(sys_mount),
+ SYSCALL_SIGN(sys_umount2),
+ SYSCALL_SIGN(sys_link),
+ SYSCALL_SIGN(sys_symlink),
+ SYSCALL_SIGN(sys_sched_getaffinity), /* 180 */
+ SYSCALL_SIGN(sys_sysinfo),
+ SYSCALL_SIGN(sys_chmod),
+ SYSCALL_SIGN(sys_reboot),
+ SYSCALL_SIGN(sys_sched_yield),
+ SYSCALL_SIGN(sys_pread64), /* 185 */
+ SYSCALL_SIGN(sys_pwrite64),
+ SYSCALL_SIGN(sys_sigpending),
+ SYSCALL_SIGN(sys_sigtimedwait),
+ SYSCALL_SIGN(sys_notimpl),
+ SYSCALL_SIGN(sys_notimpl), /* 190 */
+ SYSCALL_SIGN(sys_eventfd2),
+ SYSCALL_SIGN(sys_epoll_create1),
+ SYSCALL_SIGN(sys_epoll_ctl),
+ SYSCALL_SIGN(sys_epoll_pwait),
+ SYSCALL_SIGN(sys_notimpl), /* 195 */
+ SYSCALL_SIGN(sys_timerfd_create),
+ SYSCALL_SIGN(sys_timerfd_settime),
+ SYSCALL_SIGN(sys_timerfd_gettime),
+ SYSCALL_SIGN(sys_signalfd),
+ SYSCALL_SIGN(sys_memfd_create), /* 200 */
+ SYSCALL_SIGN(sys_ftruncate),
+ SYSCALL_SIGN(sys_setitimer),
+ SYSCALL_SIGN(sys_utimensat),
+#ifdef RT_USING_POSIX_SOCKET
+ SYSCALL_SIGN(sys_syslog),
+ SYSCALL_SIGN(sys_socketpair), /* 205 */
+#else
+ SYSCALL_SIGN(sys_notimpl),
+ SYSCALL_SIGN(sys_notimpl), /* 205 */
+#endif
+ SYSCALL_SIGN(sys_wait4),
+ SYSCALL_SIGN(sys_set_robust_list),
+ SYSCALL_SIGN(sys_get_robust_list),
+ SYSCALL_SIGN(sys_setpgid),
+ SYSCALL_SIGN(sys_getpgid), /* 210 */
+ SYSCALL_SIGN(sys_getsid),
+ SYSCALL_SIGN(sys_getppid),
+ SYSCALL_SIGN(sys_fchdir),
+ SYSCALL_SIGN(sys_chown),
+ SYSCALL_SIGN(sys_fchmod),
+};
+
+const void *lwp_get_sys_api(rt_uint32_t number)
+{
+ const void *func = (const void *)sys_notimpl;
+
+ if (number == 0xff)
+ {
+ func = (void *)sys_log;
+ }
+ else
+ {
+ number -= 1;
+ if (number < sizeof(func_table) / sizeof(func_table[0]))
+ {
+ func = func_table[number].func;
+ }
+ else
+ {
+ if (__sys_log_enable)
+ {
+ LOG_I("Unimplement syscall %d", number);
+ }
+ }
+ }
+
+ return func;
+}
+
+const char *lwp_get_syscall_name(rt_uint32_t number)
+{
+ const char *name = "sys_notimpl";
+
+ if (number == 0xff)
+ {
+ name = "sys_log";
+ }
+ else
+ {
+ number -= 1;
+ if (number < sizeof(func_table) / sizeof(func_table[0]))
+ {
+ name = (char *)func_table[number].name;
+ }
+ else
+ {
+ if (__sys_log_enable)
+ {
+ LOG_I("Unimplement syscall %d", number);
+ }
+ }
+ }
+
+ /* skip sys_ */
+ return name;
+}