From 9d48a682c3e962c995c8eec8ba51fe560c840841 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 17 Jun 2002 17:31:43 +0000 Subject: Add support for sigtimedwait and sigwaitinfo -Erik --- libc/sysdeps/linux/common/syscalls.c | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/libc/sysdeps/linux/common/syscalls.c b/libc/sysdeps/linux/common/syscalls.c index 72b938c10..5d826927e 100644 --- a/libc/sysdeps/linux/common/syscalls.c +++ b/libc/sysdeps/linux/common/syscalls.c @@ -1516,6 +1516,45 @@ int sigpending(sigset_t *set) #endif //#define __NR_rt_sigtimedwait 177 +#ifdef L___rt_sigtimedwait +#ifdef __NR_rt_sigtimedwait +#define __NR___rt_sigtimedwait __NR_rt_sigtimedwait +#include +#define __need_NULL +#include +_syscall4(int, __rt_sigtimedwait, const sigset_t *, set, siginfo_t *, info, + const struct timespec *, timeout, size_t, setsize); + +int sigwaitinfo(const sigset_t *set, siginfo_t *info) +{ + return __rt_sigtimedwait (set, info, NULL, _NSIG/8); +} + +int sigtimedwait (const sigset_t *set, siginfo_t *info, const struct timespec *timeout) +{ + return __rt_sigtimedwait (set, info, timeout, _NSIG/8); +} +#else +int sigwaitinfo(const sigset_t *set, siginfo_t *info) +{ + if (set==NULL) + __set_errno (EINVAL); + else + __set_errno (ENOSYS); + return -1; +} + +int sigtimedwait (const sigset_t *set, siginfo_t *info, const struct timespec *timeout) +{ + if (set==NULL) + __set_errno (EINVAL); + else + __set_errno (ENOSYS); + return -1; +} +#endif +#endif + //#define __NR_rt_sigqueueinfo 178 //#define __NR_rt_sigsuspend 179 -- cgit v1.2.3