diff options
| author | skychen123 <[email protected]> | 2023-10-08 13:30:04 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-10-08 13:30:04 +0800 |
| commit | fcd0fecd3e545fcf4ff58197666b65a878b8f921 (patch) | |
| tree | d8762483d7e3c9175425471e37a6ad326283a052 | |
| parent | 847b71e76799afe58844ccf71be45b22a8d32425 (diff) | |
add sys_setitimer syscall (#8096)
| -rw-r--r-- | components/lwp/lwp_syscall.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/components/lwp/lwp_syscall.c b/components/lwp/lwp_syscall.c index ab577a276d..11ecdb7e48 100644 --- a/components/lwp/lwp_syscall.c +++ b/components/lwp/lwp_syscall.c @@ -6408,6 +6408,21 @@ sysret_t sys_memfd_create() { return 0; } +sysret_t sys_setitimer(int which, const struct itimerspec *restrict new, struct itimerspec *restrict old) +{ + int ret = 0; + timer_t timerid = 0; + struct sigevent sevp_k = {0}; + + sevp_k.sigev_notify = SIGEV_SIGNAL; + sevp_k.sigev_signo = SIGALRM; + ret = timer_create(CLOCK_REALTIME_ALARM, &sevp_k, &timerid); + if (ret != 0) + { + return GET_ERRNO(); + } + return sys_timer_settime(timerid,0,new,old); +} const static struct rt_syscall_def func_table[] = { @@ -6651,6 +6666,7 @@ const static struct rt_syscall_def func_table[] = SYSCALL_SIGN(sys_signalfd), SYSCALL_SIGN(sys_memfd_create), /* 200 */ SYSCALL_SIGN(sys_ftruncate), + SYSCALL_SIGN(sys_setitimer), }; const void *lwp_get_sys_api(rt_uint32_t number) |
